@provoly/dashboard 0.14.14 → 0.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.d.ts +9 -0
  2. package/admin/i18n/en.translations.d.ts +4 -4
  3. package/admin/i18n/fr.translations.d.ts +5 -4
  4. package/dataset/components/dataset-detail/dataset-detail.component.d.ts +0 -3
  5. package/dataset/i18n/en.translations.d.ts +1 -1
  6. package/dataset/i18n/fr.translations.d.ts +1 -1
  7. package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +2 -2
  8. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +3 -3
  9. package/esm2022/admin/components/admin-classes/store/admin-class.actions.mjs +1 -1
  10. package/esm2022/admin/components/admin-classes/store/admin-class.reducer.mjs +2 -2
  11. package/esm2022/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.mjs +21 -5
  12. package/esm2022/admin/i18n/en.translations.mjs +5 -5
  13. package/esm2022/admin/i18n/fr.translations.mjs +6 -5
  14. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +1 -4
  15. package/esm2022/dataset/i18n/en.translations.mjs +2 -2
  16. package/esm2022/dataset/i18n/fr.translations.mjs +2 -2
  17. package/esm2022/lib/core/model/filter.interface.mjs +1 -1
  18. package/esm2022/lib/core/public-api.mjs +2 -2
  19. package/esm2022/lib/core/store/data-source/data-source.selectors.mjs +3 -3
  20. package/esm2022/lib/core/store/data-source/datasource-utils.mjs +18 -0
  21. package/esm2022/lib/core/symbol/symbol.service.mjs +7 -9
  22. package/esm2022/lib/core/toolbox/toolbox-manifest.service.mjs +2 -2
  23. package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.mjs +3 -3
  24. package/esm2022/restitution/components/restitution/restitution.component.mjs +2 -2
  25. package/esm2022/search/components/edit-named-query/edit-named-query.component.mjs +3 -3
  26. package/esm2022/search/components/save-query-button/save-query-button.component.mjs +3 -3
  27. package/esm2022/search/search-home/search-home.component.mjs +3 -3
  28. package/esm2022/search/search-mono-class/store/search-mono-class.effects.mjs +3 -3
  29. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +3 -3
  30. package/esm2022/widgets/widget-map/utils/cql-utils.class.mjs +2 -2
  31. package/fesm2022/provoly-dashboard-admin.mjs +33 -16
  32. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  33. package/fesm2022/provoly-dashboard-dataset.mjs +2 -5
  34. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  35. package/fesm2022/provoly-dashboard-restitution.mjs +1 -1
  36. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  37. package/fesm2022/provoly-dashboard-search.mjs +5 -5
  38. package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
  39. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +3 -3
  40. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  41. package/fesm2022/provoly-dashboard.mjs +27 -24
  42. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  43. package/lib/core/model/filter.interface.d.ts +1 -1
  44. package/lib/core/public-api.d.ts +1 -1
  45. package/lib/core/store/data-source/{named-query-utils.d.ts → datasource-utils.d.ts} +3 -1
  46. package/lib/core/symbol/symbol.service.d.ts +1 -3
  47. package/package.json +15 -15
  48. package/schematics/ng-add/index.js +5 -5
  49. package/schematics/ng-add/index.js.map +1 -1
  50. package/styles/components/_a-pry-select.scss +4 -0
  51. package/styles/components/_o-pry-admin-classes-customize.scss +19 -0
  52. package/styles-theme/components-theme/_o-pry-admin-classes-customize.theme.scss +5 -0
  53. package/esm2022/lib/core/store/data-source/named-query-utils.mjs +0 -13
@@ -5,6 +5,10 @@ import { Store } from '@ngrx/store';
5
5
  import { Field, PryI18nService } from '@provoly/dashboard';
6
6
  import { Observable, Subscription } from 'rxjs';
7
7
  import * as i0 from "@angular/core";
8
+ export declare const CRS_OPTIONS: {
9
+ label: string;
10
+ code: string;
11
+ }[];
8
12
  export declare class AdminFieldsFormComponent implements OnInit, OnDestroy {
9
13
  private store;
10
14
  private router;
@@ -25,10 +29,15 @@ export declare class AdminFieldsFormComponent implements OnInit, OnDestroy {
25
29
  currentField?: Field;
26
30
  constructor(store: Store<any>, router: Router, route: ActivatedRoute, formBuilder: UntypedFormBuilder, i18nService: PryI18nService);
27
31
  ngOnInit(): void;
32
+ get isGeographicType(): boolean;
28
33
  ngOnDestroy(): void;
29
34
  goBack(): void;
30
35
  addField(): void;
31
36
  private getPath;
37
+ protected readonly CRS_OPTIONS: {
38
+ label: string;
39
+ code: string;
40
+ }[];
32
41
  static ɵfac: i0.ɵɵFactoryDeclaration<AdminFieldsFormComponent, never>;
33
42
  static ɵcmp: i0.ɵɵComponentDeclaration<AdminFieldsFormComponent, "pry-admin-fields-form", never, { "currentField": { "alias": "currentField"; "required": false; }; }, {}, never, never, false, never>;
34
43
  }
@@ -345,12 +345,12 @@ export declare const enTranslations: {
345
345
  storage: {
346
346
  label: string;
347
347
  description: {
348
- postgis: string;
349
- elastic: string;
348
+ POSTGIS: string;
349
+ ELASTIC: string;
350
350
  };
351
351
  options: {
352
- postgis: string;
353
- elastic: string;
352
+ POSTGIS: string;
353
+ ELASTIC: string;
354
354
  };
355
355
  };
356
356
  };
@@ -253,6 +253,7 @@ export declare const frTranslations: {
253
253
  };
254
254
  fields: {
255
255
  add: string;
256
+ crs: string;
256
257
  info: string;
257
258
  list: string;
258
259
  edit: string;
@@ -346,12 +347,12 @@ export declare const frTranslations: {
346
347
  storage: {
347
348
  label: string;
348
349
  description: {
349
- postgis: string;
350
- elastic: string;
350
+ POSTGIS: string;
351
+ ELASTIC: string;
351
352
  };
352
353
  options: {
353
- postgis: string;
354
- elastic: string;
354
+ POSTGIS: string;
355
+ ELASTIC: string;
355
356
  };
356
357
  };
357
358
  };
@@ -29,9 +29,6 @@ export declare class PryDatasetDetailComponent implements OnInit {
29
29
  consultErrors(version: DatasetVersion): void;
30
30
  private deactivateVersion;
31
31
  private activateVersion;
32
- modify(type: string, { manifest }: {
33
- manifest: WidgetManifest;
34
- }): void;
35
32
  static ɵfac: i0.ɵɵFactoryDeclaration<PryDatasetDetailComponent, never>;
36
33
  static ɵcmp: i0.ɵɵComponentDeclaration<PryDatasetDetailComponent, "pry-dataset-detail", never, { "dataset": { "alias": "dataset"; "required": false; }; }, { "goToCatalog": "goToCatalog"; }, never, never, false, never>;
37
34
  }
@@ -47,7 +47,7 @@ export declare const enTranslations: {
47
47
  code: {
48
48
  UNRECOGNIZED: string;
49
49
  FORMAT: string;
50
- ELASTIC_SEARCH: string;
50
+ STORAGE: string;
51
51
  NO_VALUES: string;
52
52
  FORMAT_FILE_ERROR: string;
53
53
  NO_ATTRIBUTES: string;
@@ -49,7 +49,7 @@ export declare const frTranslations: {
49
49
  code: {
50
50
  UNRECOGNIZED: string;
51
51
  FORMAT: string;
52
- ELASTIC_SEARCH: string;
52
+ STORAGE: string;
53
53
  NO_VALUES: string;
54
54
  FORMAT_FILE_ERROR: string;
55
55
  NO_ATTRIBUTES: string;
@@ -28,7 +28,7 @@ export class AdminClassesFormComponent extends SubscriptionnerDirective {
28
28
  id: [uuid()],
29
29
  name: ['', [Validators.required, Validators.minLength(3), Validators.maxLength(100), noWhitespaceValidator]],
30
30
  description: [{ value: '', disabled: true }],
31
- storage: ['elastic']
31
+ storage: ['ELASTIC']
32
32
  });
33
33
  this.store.dispatch(AdminClassActions.getStorageOptions());
34
34
  this.storageOptions$ = this.store.select(AdminClassSelectors.storageOptions);
@@ -92,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
92
92
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.UntypedFormBuilder }]; }, propDecorators: { currentClass: [{
93
93
  type: Input
94
94
  }] } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tY2xhc3Nlcy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLWZvcm0vYWRtaW4tY2xhc3Nlcy1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLWZvcm0vYWRtaW4tY2xhc3Nlcy1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQXdDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2xGLE9BQU8sRUFBUyxZQUFZLEVBQUUsY0FBYyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkcsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7O0FBTXJFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx3QkFBd0I7SUFXckUsSUFBYSxZQUFZLENBQUMsR0FBVTtRQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQztJQUMzQixDQUFDO0lB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QyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDbEc7aUJBQU07Z0JBQ0wsV0FBVyxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7Z0JBQzVCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDekYsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3ZHO1NBQ0Y7SUFDSCxDQUFDOzhHQXZGVSx5QkFBeUI7a0dBQXpCLHlCQUF5QiwrSENmdEMsc3lGQXNFQTs7MkZEdkRhLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSx3QkFBd0I7K0tBY3JCLFlBQVk7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IENsYXNzLCBDbGFzc0FjdGlvbnMsIENsYXNzU2VsZWN0b3JzLCBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IG5vV2hpdGVzcGFjZVZhbGlkYXRvciB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvYWRtaW4uY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQ2xhc3NBY3Rpb25zIH0gZnJvbSAnLi4vc3RvcmUvYWRtaW4tY2xhc3MuYWN0aW9ucyc7XG5pbXBvcnQgeyBBZG1pbkNsYXNzU2VsZWN0b3JzIH0gZnJvbSAnLi4vc3RvcmUvYWRtaW4tY2xhc3Muc2VsZWN0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWFkbWluLWNsYXNzZXMtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZG1pbi1jbGFzc2VzLWZvcm0uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFkbWluQ2xhc3Nlc0Zvcm1Db21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIGNsYXNzTmFtZXMkPzogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG4gIG5hbWVBbHJlYWR5RXhpc3RzJD86IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHN0b3JhZ2VPcHRpb25zJDogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG5cbiAgc3ViID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGlzU3VibWl0dGVkID0gZmFsc2U7XG4gIGNsYXNzRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgX2N1cnJlbnRDbGFzcz86IENsYXNzO1xuXG4gIEBJbnB1dCgpIHNldCBjdXJyZW50Q2xhc3ModmFsOiBDbGFzcykge1xuICAgIHRoaXMuX2N1cnJlbnRDbGFzcyA9IHZhbDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGFueT4sXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmNsYXNzRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgaWQ6IFt1dWlkKCldLFxuICAgICAgbmFtZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMyksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEwMCksIG5vV2hpdGVzcGFjZVZhbGlkYXRvcl1dLFxuICAgICAgZGVzY3JpcHRpb246IFt7IHZhbHVlOiAnJywgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICBzdG9yYWdlOiBbJ2VsYXN0aWMnXVxuICAgIH0pO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5DbGFzc0FjdGlvbnMuZ2V0U3RvcmFnZU9wdGlvbnMoKSk7XG4gICAgdGhpcy5zdG9yYWdlT3B0aW9ucyQgPSB0aGlzLnN0b3JlLnNlbGVjdChBZG1pbkNsYXNzU2VsZWN0b3JzLnN0b3JhZ2VPcHRpb25zKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ2xhc3NBY3Rpb25zLmxvYWQoKSk7XG4gICAgdGhpcy5jbGFzc05hbWVzJCA9IHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3QoQ2xhc3NTZWxlY3RvcnMuY2xhc3NlcylcbiAgICAgIC5waXBlKG1hcCgoY2xhc3NlczogQ2xhc3NbXSkgPT4gY2xhc3Nlcy5tYXAoKGNsYXp6OiBDbGFzcykgPT4gY2xhenoubmFtZS50b0xvd2VyQ2FzZSgpKSkpO1xuICAgIHRoaXMubmFtZUFscmVhZHlFeGlzdHMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNsYXNzRm9ybS5nZXQoJ25hbWUnKT8udmFsdWVDaGFuZ2VzIGFzIE9ic2VydmFibGU8c3RyaW5nPixcbiAgICAgIHRoaXMuY2xhc3NOYW1lcyRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbdmFsdWUsIGNsYXNzTmFtZXNdKSA9PiBjbGFzc05hbWVzLmluY2x1ZGVzKHZhbHVlLnRvTG93ZXJDYXNlKCkpICYmIHZhbHVlICE9IHRoaXMuX2N1cnJlbnRDbGFzcz8ubmFtZSlcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLm5hbWVBbHJlYWR5RXhpc3RzJC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIHRoaXMuY2xhc3NGb3JtLmNvbnRyb2xzWyduYW1lJ10uc2V0RXJyb3JzKHsgJ3NhbWUtbmFtZSc6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuX2N1cnJlbnRDbGFzcykge1xuICAgICAgdGhpcy5jbGFzc0Zvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgIGlkOiB0aGlzLl9jdXJyZW50Q2xhc3MuaWQsXG4gICAgICAgIG5hbWU6IHRoaXMuX2N1cnJlbnRDbGFzcy5uYW1lXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBnb0JhY2soKSB7XG4gICAgY29uc3QgcmVkaXJlY3RQYXRoID0gdGhpcy5fY3VycmVudENsYXNzID8gJy4uLy4uJyA6ICcuLic7XG4gICAgY29uc3QgcGF0aCA9IHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoW3JlZGlyZWN0UGF0aF0sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQ2xhc3NBY3Rpb25zLmJhY2soeyBwYXRoOiBwYXRoLnRvU3RyaW5nKCkgfSkpO1xuICB9XG5cbiAgYWRkQ2xhc3MoKSB7XG4gICAgdGhpcy5jbGFzc0Zvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICBuYW1lOiB0aGlzLmNsYXNzRm9ybS52YWx1ZS5uYW1lLnRyaW0oKVxuICAgIH0pO1xuICAgIHRoaXMuaXNTdWJtaXR0ZWQgPSB0cnVlO1xuICAgIGlmICh0aGlzLmNsYXNzRm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5pc1N1Ym1pdHRlZCA9IGZhbHNlO1xuICAgICAgbGV0IGNsYXNzVG9TYXZlID0gdGhpcy5jbGFzc0Zvcm0uZ2V0UmF3VmFsdWUoKTtcbiAgICAgIGlmICh0aGlzLl9jdXJyZW50Q2xhc3MpIHtcbiAgICAgICAgY2xhc3NUb1NhdmUgPSB7XG4gICAgICAgICAgLi4udGhpcy5fY3VycmVudENsYXNzLFxuICAgICAgICAgIG5hbWU6IHRoaXMuY2xhc3NGb3JtLnZhbHVlLm5hbWVcbiAgICAgICAgfSBhcyBDbGFzcztcbiAgICAgICAgbGV0IHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLi4vLi4nXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVDbGFzcyh7IGNsYXNzOiBjbGFzc1RvU2F2ZSwgcm91dGU6IHBhdGgudG9TdHJpbmcoKSB9KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbGFzc1RvU2F2ZS5hdHRyaWJ1dGVzID0gW107XG4gICAgICAgIGxldCBwYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4uJywgY2xhc3NUb1NhdmUuaWRdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5DbGFzc0FjdGlvbnMuc2F2ZUludGVyQ2xhc3MoeyBjbGFzczogY2xhc3NUb1NhdmUsIHJvdXRlOiBwYXRoLnRvU3RyaW5nKCkgfSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGZvcm0gY2xhc3M9XCJvLWZvcm1cIiBbZm9ybUdyb3VwXT1cImNsYXNzRm9ybVwiIChuZ1N1Ym1pdCk9XCJhZGRDbGFzcygpXCI+XG4gIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgLXdpZHRoLXNtXCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGlkPVwibmFtZS1sYWJlbFwiIGZvcj1cIm5hbWVcIj5cbiAgICAgIHt7ICdAcHJ5LmFkbWluLmNsYXNzZXMubmFtZScgfCBpMThuIH19ICpcbiAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj4oe3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fSk8L3NwYW4+XG4gICAgPC9sYWJlbD5cbiAgICA8aW5wdXRcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpc1N1Ym1pdHRlZCAmJiBjbGFzc0Zvcm0uZ2V0KCduYW1lJyk/LmludmFsaWQgPyAnbmFtZS1sYWJlbCBuYW1lLWVycm9yJyA6ICduYW1lLWxhYmVsJ1wiXG4gICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCJcbiAgICAgIGlkPVwibmFtZVwiXG4gICAgICByZXF1aXJlZFxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImlzU3VibWl0dGVkICYmIGNsYXNzRm9ybS5nZXQoJ25hbWUnKT8uaW52YWxpZFwiXG4gICAgLz5cbiAgICA8bGFiZWxcbiAgICAgICpuZ0lmPVwiaXNTdWJtaXR0ZWQgJiYgY2xhc3NGb3JtLmdldCgnbmFtZScpPy5pbnZhbGlkXCJcbiAgICAgIGlkPVwibmFtZS1lcnJvclwiXG4gICAgICBmb3I9XCJuYW1lXCJcbiAgICAgIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiXG4gICAgPlxuICAgICAgPHNwYW4gKm5nSWY9XCJjbGFzc0Zvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCdzYW1lLW5hbWUnKVwiPnt7ICdAcHJ5LmFkbWluLmV4aXN0cycgfCBpMThuIH19PC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJjbGFzc0Zvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+e3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiY2xhc3NGb3JtLmdldCgnbmFtZScpPy5oYXNFcnJvcignbWlubGVuZ3RoJylcIj57eyAnQHByeS5hZG1pbi5taW5MZW5ndGgnIHwgaTE4biA6IHsgbGVuOiAzIH0gfX08L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cImNsYXNzRm9ybS5nZXQoJ25hbWUnKT8uaGFzRXJyb3IoJ21heGxlbmd0aCcpXCI+e3tcbiAgICAgICAgJ0BwcnkuYWRtaW4ubWF4TGVuZ3RoJyB8IGkxOG4gOiB7IGxlbjogMTAwIH1cbiAgICAgIH19PC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJjbGFzc0Zvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCd3aGl0ZXNwYWNlJylcIj57eyAnQHByeS5hZG1pbi5ub1doaXRlc3BhY2UnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInUtZGlzcGxheS1mbGV4IC1yb3cgLW5vLWdhcCAtYWxpZ24tY2VudGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtc21cIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJzdG9yYWdlX29wdGlvbnNcIj5cbiAgICAgICAge3sgJ0BwcnkuYWRtaW4uc3RvcmFnZS5sYWJlbCcgfCBpMThuIH19XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj4oe3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fSk8L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgW2l0ZW1zXT1cInN0b3JhZ2VPcHRpb25zJCB8IGFzeW5jXCJcbiAgICAgICAgW2xhYmVsVHJhbnNsYXRlXT1cInRydWVcIlxuICAgICAgICBiYXNlVHJhbnNsYXRlPVwiQHByeS5hZG1pbi5zdG9yYWdlLm9wdGlvbnMuXCJcbiAgICAgICAgW2JpbmREYXRhXT1cInRydWVcIlxuICAgICAgICBbaXRlbXNBc09wdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic3RvcmFnZVwiXG4gICAgICAgIGNsYXNzPVwiYS1wcnktc2VsZWN0XCJcbiAgICAgICAgaWQ9XCJzdG9yYWdlX29wdGlvbnNcIlxuICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5mby1pY29uIGRlc2NyaXB0aW9uLWNvbnRhaW5lciBkZXNjcmlwdGlvblwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJpbmZvLXRleHRcIj5pPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvbi10b29sdGlwXCI+XG4gICAgICA8cCBjbGFzcz1cImEtcFwiPlxuICAgICAgICB7eyAnQHByeS5hZG1pbi5zdG9yYWdlLmRlc2NyaXB0aW9uLicgKyBjbGFzc0Zvcm0uZ2V0KCdzdG9yYWdlJyk/LnZhbHVlIHwgaTE4biB9fVxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm0tYnRuLWdyb3VwIC13aWR0aC1zbVwiPlxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCJcbiAgICAgIChjbGljayk9XCJnb0JhY2soKVwiXG4gICAgICBbaW5uZXJIVE1MXT1cIidAcHJ5LmFkbWluLmNhbmNlbCcgfCBpMThuXCJcbiAgICA+PC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgIFtpbm5lckhUTUxdPVwiKF9jdXJyZW50Q2xhc3MgPyAnQHByeS5hZG1pbi5lZGl0JyA6ICdAcHJ5LmFkbWluLm5leHQnKSB8IGkxOG5cIlxuICAgID48L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tY2xhc3Nlcy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLWZvcm0vYWRtaW4tY2xhc3Nlcy1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLWZvcm0vYWRtaW4tY2xhc3Nlcy1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQXdDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2xGLE9BQU8sRUFBUyxZQUFZLEVBQUUsY0FBYyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkcsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7O0FBTXJFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx3QkFBd0I7SUFXckUsSUFBYSxZQUFZLENBQUMsR0FBVTtRQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQztJQUMzQixDQUFDO0lB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QyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDbEc7aUJBQU07Z0JBQ0wsV0FBVyxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7Z0JBQzVCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDekYsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3ZHO1NBQ0Y7SUFDSCxDQUFDOzhHQXZGVSx5QkFBeUI7a0dBQXpCLHlCQUF5QiwrSENmdEMsc3lGQXNFQTs7MkZEdkRhLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSx3QkFBd0I7K0tBY3JCLFlBQVk7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IENsYXNzLCBDbGFzc0FjdGlvbnMsIENsYXNzU2VsZWN0b3JzLCBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IG5vV2hpdGVzcGFjZVZhbGlkYXRvciB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvYWRtaW4uY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQ2xhc3NBY3Rpb25zIH0gZnJvbSAnLi4vc3RvcmUvYWRtaW4tY2xhc3MuYWN0aW9ucyc7XG5pbXBvcnQgeyBBZG1pbkNsYXNzU2VsZWN0b3JzIH0gZnJvbSAnLi4vc3RvcmUvYWRtaW4tY2xhc3Muc2VsZWN0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWFkbWluLWNsYXNzZXMtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZG1pbi1jbGFzc2VzLWZvcm0uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFkbWluQ2xhc3Nlc0Zvcm1Db21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIGNsYXNzTmFtZXMkPzogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG4gIG5hbWVBbHJlYWR5RXhpc3RzJD86IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHN0b3JhZ2VPcHRpb25zJDogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG5cbiAgc3ViID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGlzU3VibWl0dGVkID0gZmFsc2U7XG4gIGNsYXNzRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgX2N1cnJlbnRDbGFzcz86IENsYXNzO1xuXG4gIEBJbnB1dCgpIHNldCBjdXJyZW50Q2xhc3ModmFsOiBDbGFzcykge1xuICAgIHRoaXMuX2N1cnJlbnRDbGFzcyA9IHZhbDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGFueT4sXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmNsYXNzRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgaWQ6IFt1dWlkKCldLFxuICAgICAgbmFtZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMyksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEwMCksIG5vV2hpdGVzcGFjZVZhbGlkYXRvcl1dLFxuICAgICAgZGVzY3JpcHRpb246IFt7IHZhbHVlOiAnJywgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICBzdG9yYWdlOiBbJ0VMQVNUSUMnXVxuICAgIH0pO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5DbGFzc0FjdGlvbnMuZ2V0U3RvcmFnZU9wdGlvbnMoKSk7XG4gICAgdGhpcy5zdG9yYWdlT3B0aW9ucyQgPSB0aGlzLnN0b3JlLnNlbGVjdChBZG1pbkNsYXNzU2VsZWN0b3JzLnN0b3JhZ2VPcHRpb25zKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ2xhc3NBY3Rpb25zLmxvYWQoKSk7XG4gICAgdGhpcy5jbGFzc05hbWVzJCA9IHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3QoQ2xhc3NTZWxlY3RvcnMuY2xhc3NlcylcbiAgICAgIC5waXBlKG1hcCgoY2xhc3NlczogQ2xhc3NbXSkgPT4gY2xhc3Nlcy5tYXAoKGNsYXp6OiBDbGFzcykgPT4gY2xhenoubmFtZS50b0xvd2VyQ2FzZSgpKSkpO1xuICAgIHRoaXMubmFtZUFscmVhZHlFeGlzdHMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNsYXNzRm9ybS5nZXQoJ25hbWUnKT8udmFsdWVDaGFuZ2VzIGFzIE9ic2VydmFibGU8c3RyaW5nPixcbiAgICAgIHRoaXMuY2xhc3NOYW1lcyRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbdmFsdWUsIGNsYXNzTmFtZXNdKSA9PiBjbGFzc05hbWVzLmluY2x1ZGVzKHZhbHVlLnRvTG93ZXJDYXNlKCkpICYmIHZhbHVlICE9IHRoaXMuX2N1cnJlbnRDbGFzcz8ubmFtZSlcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLm5hbWVBbHJlYWR5RXhpc3RzJC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIHRoaXMuY2xhc3NGb3JtLmNvbnRyb2xzWyduYW1lJ10uc2V0RXJyb3JzKHsgJ3NhbWUtbmFtZSc6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuX2N1cnJlbnRDbGFzcykge1xuICAgICAgdGhpcy5jbGFzc0Zvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgIGlkOiB0aGlzLl9jdXJyZW50Q2xhc3MuaWQsXG4gICAgICAgIG5hbWU6IHRoaXMuX2N1cnJlbnRDbGFzcy5uYW1lXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBnb0JhY2soKSB7XG4gICAgY29uc3QgcmVkaXJlY3RQYXRoID0gdGhpcy5fY3VycmVudENsYXNzID8gJy4uLy4uJyA6ICcuLic7XG4gICAgY29uc3QgcGF0aCA9IHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoW3JlZGlyZWN0UGF0aF0sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQ2xhc3NBY3Rpb25zLmJhY2soeyBwYXRoOiBwYXRoLnRvU3RyaW5nKCkgfSkpO1xuICB9XG5cbiAgYWRkQ2xhc3MoKSB7XG4gICAgdGhpcy5jbGFzc0Zvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICBuYW1lOiB0aGlzLmNsYXNzRm9ybS52YWx1ZS5uYW1lLnRyaW0oKVxuICAgIH0pO1xuICAgIHRoaXMuaXNTdWJtaXR0ZWQgPSB0cnVlO1xuICAgIGlmICh0aGlzLmNsYXNzRm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5pc1N1Ym1pdHRlZCA9IGZhbHNlO1xuICAgICAgbGV0IGNsYXNzVG9TYXZlID0gdGhpcy5jbGFzc0Zvcm0uZ2V0UmF3VmFsdWUoKTtcbiAgICAgIGlmICh0aGlzLl9jdXJyZW50Q2xhc3MpIHtcbiAgICAgICAgY2xhc3NUb1NhdmUgPSB7XG4gICAgICAgICAgLi4udGhpcy5fY3VycmVudENsYXNzLFxuICAgICAgICAgIG5hbWU6IHRoaXMuY2xhc3NGb3JtLnZhbHVlLm5hbWVcbiAgICAgICAgfSBhcyBDbGFzcztcbiAgICAgICAgbGV0IHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLi4vLi4nXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVDbGFzcyh7IGNsYXNzOiBjbGFzc1RvU2F2ZSwgcm91dGU6IHBhdGgudG9TdHJpbmcoKSB9KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbGFzc1RvU2F2ZS5hdHRyaWJ1dGVzID0gW107XG4gICAgICAgIGxldCBwYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4uJywgY2xhc3NUb1NhdmUuaWRdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5DbGFzc0FjdGlvbnMuc2F2ZUludGVyQ2xhc3MoeyBjbGFzczogY2xhc3NUb1NhdmUsIHJvdXRlOiBwYXRoLnRvU3RyaW5nKCkgfSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGZvcm0gY2xhc3M9XCJvLWZvcm1cIiBbZm9ybUdyb3VwXT1cImNsYXNzRm9ybVwiIChuZ1N1Ym1pdCk9XCJhZGRDbGFzcygpXCI+XG4gIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgLXdpZHRoLXNtXCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGlkPVwibmFtZS1sYWJlbFwiIGZvcj1cIm5hbWVcIj5cbiAgICAgIHt7ICdAcHJ5LmFkbWluLmNsYXNzZXMubmFtZScgfCBpMThuIH19ICpcbiAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj4oe3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fSk8L3NwYW4+XG4gICAgPC9sYWJlbD5cbiAgICA8aW5wdXRcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpc1N1Ym1pdHRlZCAmJiBjbGFzc0Zvcm0uZ2V0KCduYW1lJyk/LmludmFsaWQgPyAnbmFtZS1sYWJlbCBuYW1lLWVycm9yJyA6ICduYW1lLWxhYmVsJ1wiXG4gICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCJcbiAgICAgIGlkPVwibmFtZVwiXG4gICAgICByZXF1aXJlZFxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImlzU3VibWl0dGVkICYmIGNsYXNzRm9ybS5nZXQoJ25hbWUnKT8uaW52YWxpZFwiXG4gICAgLz5cbiAgICA8bGFiZWxcbiAgICAgICpuZ0lmPVwiaXNTdWJtaXR0ZWQgJiYgY2xhc3NGb3JtLmdldCgnbmFtZScpPy5pbnZhbGlkXCJcbiAgICAgIGlkPVwibmFtZS1lcnJvclwiXG4gICAgICBmb3I9XCJuYW1lXCJcbiAgICAgIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiXG4gICAgPlxuICAgICAgPHNwYW4gKm5nSWY9XCJjbGFzc0Zvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCdzYW1lLW5hbWUnKVwiPnt7ICdAcHJ5LmFkbWluLmV4aXN0cycgfCBpMThuIH19PC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJjbGFzc0Zvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+e3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiY2xhc3NGb3JtLmdldCgnbmFtZScpPy5oYXNFcnJvcignbWlubGVuZ3RoJylcIj57eyAnQHByeS5hZG1pbi5taW5MZW5ndGgnIHwgaTE4biA6IHsgbGVuOiAzIH0gfX08L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cImNsYXNzRm9ybS5nZXQoJ25hbWUnKT8uaGFzRXJyb3IoJ21heGxlbmd0aCcpXCI+e3tcbiAgICAgICAgJ0BwcnkuYWRtaW4ubWF4TGVuZ3RoJyB8IGkxOG4gOiB7IGxlbjogMTAwIH1cbiAgICAgIH19PC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJjbGFzc0Zvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCd3aGl0ZXNwYWNlJylcIj57eyAnQHByeS5hZG1pbi5ub1doaXRlc3BhY2UnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInUtZGlzcGxheS1mbGV4IC1yb3cgLW5vLWdhcCAtYWxpZ24tY2VudGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtc21cIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJzdG9yYWdlX29wdGlvbnNcIj5cbiAgICAgICAge3sgJ0BwcnkuYWRtaW4uc3RvcmFnZS5sYWJlbCcgfCBpMThuIH19XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj4oe3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fSk8L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgW2l0ZW1zXT1cInN0b3JhZ2VPcHRpb25zJCB8IGFzeW5jXCJcbiAgICAgICAgW2xhYmVsVHJhbnNsYXRlXT1cInRydWVcIlxuICAgICAgICBiYXNlVHJhbnNsYXRlPVwiQHByeS5hZG1pbi5zdG9yYWdlLm9wdGlvbnMuXCJcbiAgICAgICAgW2JpbmREYXRhXT1cInRydWVcIlxuICAgICAgICBbaXRlbXNBc09wdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic3RvcmFnZVwiXG4gICAgICAgIGNsYXNzPVwiYS1wcnktc2VsZWN0XCJcbiAgICAgICAgaWQ9XCJzdG9yYWdlX29wdGlvbnNcIlxuICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5mby1pY29uIGRlc2NyaXB0aW9uLWNvbnRhaW5lciBkZXNjcmlwdGlvblwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJpbmZvLXRleHRcIj5pPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvbi10b29sdGlwXCI+XG4gICAgICA8cCBjbGFzcz1cImEtcFwiPlxuICAgICAgICB7eyAnQHByeS5hZG1pbi5zdG9yYWdlLmRlc2NyaXB0aW9uLicgKyBjbGFzc0Zvcm0uZ2V0KCdzdG9yYWdlJyk/LnZhbHVlIHwgaTE4biB9fVxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm0tYnRuLWdyb3VwIC13aWR0aC1zbVwiPlxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCJcbiAgICAgIChjbGljayk9XCJnb0JhY2soKVwiXG4gICAgICBbaW5uZXJIVE1MXT1cIidAcHJ5LmFkbWluLmNhbmNlbCcgfCBpMThuXCJcbiAgICA+PC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgIFtpbm5lckhUTUxdPVwiKF9jdXJyZW50Q2xhc3MgPyAnQHByeS5hZG1pbi5lZGl0JyA6ICdAcHJ5LmFkbWluLm5leHQnKSB8IGkxOG5cIlxuICAgID48L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
@@ -138,11 +138,11 @@ export class AdminAttributesFormComponent {
138
138
  this.closeCategory();
139
139
  }
140
140
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminAttributesFormComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.UntypedFormBuilder }, { token: i4.Overlay }, { token: i0.ViewContainerRef }, { token: i5.PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
141
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AdminAttributesFormComponent, selector: "pry-admin-attributes-form", inputs: { selectedClass: "selectedClass", interClass: "interClass", selectedAttribute: "selectedAttribute" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<form class=\"o-form\" [formGroup]=\"attrForm\" (ngSubmit)=\"addAttribute()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"attr_name\">{{ '@pry.admin.classes.attributes.name' | i18n }}</label>\n <input id=\"attr_name\" type=\"text\" class=\"a-form-field\" formControlName=\"name\" required />\n <label class=\"a-label a-label--help -error\" *ngIf=\"nameAlreadyExists$ | async\">{{\n '@pry.admin.exists' | i18n\n }}</label>\n <div *ngIf=\"attrForm.get('name')?.invalid\">\n <div *ngIf=\"attrForm.get('name')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('minlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{\n '@pry.admin.minLength' | i18n : { len: 2 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('maxlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{\n '@pry.admin.maxLength' | i18n : { len: 100 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('whitespace') && !attrForm.get('name')?.hasError('minlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{ '@pry.admin.noWhitespace' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"type\">{{ '@pry.admin.classes.attributes.field' | i18n }}</label>\n <div class=\"title-container\">\n <pry-select\n id=\"type\"\n class=\"a-pry-select\"\n formControlName=\"field\"\n [labelTranslate]=\"true\"\n [items]=\"fields$ | async\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n required=\"true\"\n ></pry-select>\n <ng-container *ngIf=\"selectedFieldTypeDescription$ | async as description\">\n <div class=\"info-icon description-container description\">\n <span class=\"info-text\">i</span>\n </div>\n <div class=\"description-tooltip title-tooltip\">\n <p class=\"a-p -date\">{{ description }}</p>\n </div>\n </ng-container>\n </div>\n <div *ngIf=\"attrForm.get('field')?.invalid\">\n <div *ngIf=\"attrForm.get('field')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"category\">{{ '@pry.admin.classes.attributes.category' | i18n }}</label>\n <pry-select\n id=\"category\"\n class=\"form-control\"\n formControlName=\"category\"\n [labelTranslate]=\"true\"\n [items]=\"categories$ | async\"\n (click)=\"showCategory()\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n [readonly]=\"true\"\n ></pry-select>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n *pryAccess=\"{ module: 'admin', page: 'classes', action: 'add_attribute' }\"\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [disabled]=\"attrForm.invalid || nameAlreadyExists\"\n [innerHTML]=\"(selectedAttribute ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n\n<ng-template #template>\n <div class=\"o-modal o-modal--selector\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.admin.classes.category.select' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeCategory()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <form (ngSubmit)=\"addCategory()\">\n <div class=\"m-form-label-field selector\">\n <label class=\"a-label\" for=\"name-search\">{{ '@pry.admin.classes.category.searchOrCreate' | i18n }}</label>\n <input\n type=\"text\"\n class=\"a-form-field\"\n (input)=\"search($event)\"\n [(ngModel)]=\"catToAdd.name\"\n name=\"name\"\n id=\"name-search\"\n />\n </div>\n\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.classes.category.name' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th scole=\"col\">{{ '@pry.admin.classes.category.name' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let cat of categories$ | async\">\n <td>\n <button type=\"button\" class=\"a-btn a-btn--ghost select-it\" (click)=\"setCategory(cat)\">\n <span class=\"u-visually-hidden\">{{ '@pry.admin.classes.category.selectIt' | i18n }}</span>\n {{ cat.name }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n <ng-container *ngIf=\"(categories$ | async)?.length === 0\">\n <p class=\"a-p a-p--create\">\n <strong>{{ catToAdd.name }} </strong>\n <span [innerHTML]=\"'@pry.admin.classes.category.add' | i18n\"></span>\n </p>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"'@pry.admin.classes.category.create' | i18n\"\n ></button>\n </ng-container>\n </form>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i5.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.PrySelectComponent, selector: "pry-select", inputs: ["labelTranslate", "baseTranslate", "translationFn", "translationFnArgs", "clearable", "multiple", "multipleClearRight", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "items", "itemsAsOption", "bindData", "bindValue", "bindLabel", "bindIcon", "iconSize", "templateLabel", "templateOption", "autocomplete"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }] }); }
141
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AdminAttributesFormComponent, selector: "pry-admin-attributes-form", inputs: { selectedClass: "selectedClass", interClass: "interClass", selectedAttribute: "selectedAttribute" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<form class=\"o-form\" [formGroup]=\"attrForm\" (ngSubmit)=\"addAttribute()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"attr_name\">{{ '@pry.admin.classes.attributes.name' | i18n }}</label>\n <input id=\"attr_name\" type=\"text\" class=\"a-form-field\" formControlName=\"name\" required />\n <label class=\"a-label a-label--help -error\" *ngIf=\"nameAlreadyExists$ | async\">{{\n '@pry.admin.exists' | i18n\n }}</label>\n <div *ngIf=\"attrForm.get('name')?.invalid\">\n <div *ngIf=\"attrForm.get('name')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('minlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{\n '@pry.admin.minLength' | i18n : { len: 2 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('maxlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{\n '@pry.admin.maxLength' | i18n : { len: 100 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('whitespace') && !attrForm.get('name')?.hasError('minlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{ '@pry.admin.noWhitespace' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"type\">{{ '@pry.admin.classes.attributes.field' | i18n }}</label>\n <div class=\"title-container\">\n <pry-select\n id=\"type\"\n class=\"a-pry-select\"\n formControlName=\"field\"\n [items]=\"fields$ | async\"\n [itemsAsOption]=\"true\"\n bindValue=\"id\"\n [isForm]=\"true\"\n required=\"true\"\n [templateLabel]=\"templateOption\"\n [templateOption]=\"templateOption\"\n ></pry-select>\n <ng-template #templateOption let-item=\"item\">\n <div class=\"aligned-option\">\n <p>{{ item.name }}</p>\n <div class=\"chips\" *ngIf=\"item.crs\">{{ item.crs }}</div>\n </div>\n </ng-template>\n <ng-container *ngIf=\"selectedFieldTypeDescription$ | async as description\">\n <div class=\"info-icon description-container description\">\n <span class=\"info-text\">i</span>\n </div>\n <div class=\"description-tooltip title-tooltip\">\n <p class=\"a-p -date\">{{ description }}</p>\n </div>\n </ng-container>\n </div>\n <div *ngIf=\"attrForm.get('field')?.invalid\">\n <div *ngIf=\"attrForm.get('field')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"category\">{{ '@pry.admin.classes.attributes.category' | i18n }}</label>\n <pry-select\n id=\"category\"\n class=\"form-control\"\n formControlName=\"category\"\n [labelTranslate]=\"true\"\n [items]=\"categories$ | async\"\n (click)=\"showCategory()\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n [readonly]=\"true\"\n ></pry-select>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n *pryAccess=\"{ module: 'admin', page: 'classes', action: 'add_attribute' }\"\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [disabled]=\"attrForm.invalid || nameAlreadyExists\"\n [innerHTML]=\"(selectedAttribute ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n\n<ng-template #template>\n <div class=\"o-modal o-modal--selector\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.admin.classes.category.select' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeCategory()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <form (ngSubmit)=\"addCategory()\">\n <div class=\"m-form-label-field selector\">\n <label class=\"a-label\" for=\"name-search\">{{ '@pry.admin.classes.category.searchOrCreate' | i18n }}</label>\n <input\n type=\"text\"\n class=\"a-form-field\"\n (input)=\"search($event)\"\n [(ngModel)]=\"catToAdd.name\"\n name=\"name\"\n id=\"name-search\"\n />\n </div>\n\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.classes.category.name' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th scole=\"col\">{{ '@pry.admin.classes.category.name' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let cat of categories$ | async\">\n <td>\n <button type=\"button\" class=\"a-btn a-btn--ghost select-it\" (click)=\"setCategory(cat)\">\n <span class=\"u-visually-hidden\">{{ '@pry.admin.classes.category.selectIt' | i18n }}</span>\n {{ cat.name }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n <ng-container *ngIf=\"(categories$ | async)?.length === 0\">\n <p class=\"a-p a-p--create\">\n <strong>{{ catToAdd.name }} </strong>\n <span [innerHTML]=\"'@pry.admin.classes.category.add' | i18n\"></span>\n </p>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"'@pry.admin.classes.category.create' | i18n\"\n ></button>\n </ng-container>\n </form>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i5.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.PrySelectComponent, selector: "pry-select", inputs: ["labelTranslate", "baseTranslate", "translationFn", "translationFnArgs", "clearable", "multiple", "multipleClearRight", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "items", "itemsAsOption", "bindData", "bindValue", "bindLabel", "bindIcon", "iconSize", "templateLabel", "templateOption", "autocomplete"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }] }); }
142
142
  }
143
143
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminAttributesFormComponent, decorators: [{
144
144
  type: Component,
145
- args: [{ selector: 'pry-admin-attributes-form', template: "<form class=\"o-form\" [formGroup]=\"attrForm\" (ngSubmit)=\"addAttribute()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"attr_name\">{{ '@pry.admin.classes.attributes.name' | i18n }}</label>\n <input id=\"attr_name\" type=\"text\" class=\"a-form-field\" formControlName=\"name\" required />\n <label class=\"a-label a-label--help -error\" *ngIf=\"nameAlreadyExists$ | async\">{{\n '@pry.admin.exists' | i18n\n }}</label>\n <div *ngIf=\"attrForm.get('name')?.invalid\">\n <div *ngIf=\"attrForm.get('name')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('minlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{\n '@pry.admin.minLength' | i18n : { len: 2 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('maxlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{\n '@pry.admin.maxLength' | i18n : { len: 100 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('whitespace') && !attrForm.get('name')?.hasError('minlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{ '@pry.admin.noWhitespace' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"type\">{{ '@pry.admin.classes.attributes.field' | i18n }}</label>\n <div class=\"title-container\">\n <pry-select\n id=\"type\"\n class=\"a-pry-select\"\n formControlName=\"field\"\n [labelTranslate]=\"true\"\n [items]=\"fields$ | async\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n required=\"true\"\n ></pry-select>\n <ng-container *ngIf=\"selectedFieldTypeDescription$ | async as description\">\n <div class=\"info-icon description-container description\">\n <span class=\"info-text\">i</span>\n </div>\n <div class=\"description-tooltip title-tooltip\">\n <p class=\"a-p -date\">{{ description }}</p>\n </div>\n </ng-container>\n </div>\n <div *ngIf=\"attrForm.get('field')?.invalid\">\n <div *ngIf=\"attrForm.get('field')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"category\">{{ '@pry.admin.classes.attributes.category' | i18n }}</label>\n <pry-select\n id=\"category\"\n class=\"form-control\"\n formControlName=\"category\"\n [labelTranslate]=\"true\"\n [items]=\"categories$ | async\"\n (click)=\"showCategory()\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n [readonly]=\"true\"\n ></pry-select>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n *pryAccess=\"{ module: 'admin', page: 'classes', action: 'add_attribute' }\"\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [disabled]=\"attrForm.invalid || nameAlreadyExists\"\n [innerHTML]=\"(selectedAttribute ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n\n<ng-template #template>\n <div class=\"o-modal o-modal--selector\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.admin.classes.category.select' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeCategory()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <form (ngSubmit)=\"addCategory()\">\n <div class=\"m-form-label-field selector\">\n <label class=\"a-label\" for=\"name-search\">{{ '@pry.admin.classes.category.searchOrCreate' | i18n }}</label>\n <input\n type=\"text\"\n class=\"a-form-field\"\n (input)=\"search($event)\"\n [(ngModel)]=\"catToAdd.name\"\n name=\"name\"\n id=\"name-search\"\n />\n </div>\n\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.classes.category.name' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th scole=\"col\">{{ '@pry.admin.classes.category.name' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let cat of categories$ | async\">\n <td>\n <button type=\"button\" class=\"a-btn a-btn--ghost select-it\" (click)=\"setCategory(cat)\">\n <span class=\"u-visually-hidden\">{{ '@pry.admin.classes.category.selectIt' | i18n }}</span>\n {{ cat.name }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n <ng-container *ngIf=\"(categories$ | async)?.length === 0\">\n <p class=\"a-p a-p--create\">\n <strong>{{ catToAdd.name }} </strong>\n <span [innerHTML]=\"'@pry.admin.classes.category.add' | i18n\"></span>\n </p>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"'@pry.admin.classes.category.create' | i18n\"\n ></button>\n </ng-container>\n </form>\n </div>\n</ng-template>\n" }]
145
+ args: [{ selector: 'pry-admin-attributes-form', template: "<form class=\"o-form\" [formGroup]=\"attrForm\" (ngSubmit)=\"addAttribute()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"attr_name\">{{ '@pry.admin.classes.attributes.name' | i18n }}</label>\n <input id=\"attr_name\" type=\"text\" class=\"a-form-field\" formControlName=\"name\" required />\n <label class=\"a-label a-label--help -error\" *ngIf=\"nameAlreadyExists$ | async\">{{\n '@pry.admin.exists' | i18n\n }}</label>\n <div *ngIf=\"attrForm.get('name')?.invalid\">\n <div *ngIf=\"attrForm.get('name')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('minlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{\n '@pry.admin.minLength' | i18n : { len: 2 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('maxlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{\n '@pry.admin.maxLength' | i18n : { len: 100 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('whitespace') && !attrForm.get('name')?.hasError('minlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{ '@pry.admin.noWhitespace' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"type\">{{ '@pry.admin.classes.attributes.field' | i18n }}</label>\n <div class=\"title-container\">\n <pry-select\n id=\"type\"\n class=\"a-pry-select\"\n formControlName=\"field\"\n [items]=\"fields$ | async\"\n [itemsAsOption]=\"true\"\n bindValue=\"id\"\n [isForm]=\"true\"\n required=\"true\"\n [templateLabel]=\"templateOption\"\n [templateOption]=\"templateOption\"\n ></pry-select>\n <ng-template #templateOption let-item=\"item\">\n <div class=\"aligned-option\">\n <p>{{ item.name }}</p>\n <div class=\"chips\" *ngIf=\"item.crs\">{{ item.crs }}</div>\n </div>\n </ng-template>\n <ng-container *ngIf=\"selectedFieldTypeDescription$ | async as description\">\n <div class=\"info-icon description-container description\">\n <span class=\"info-text\">i</span>\n </div>\n <div class=\"description-tooltip title-tooltip\">\n <p class=\"a-p -date\">{{ description }}</p>\n </div>\n </ng-container>\n </div>\n <div *ngIf=\"attrForm.get('field')?.invalid\">\n <div *ngIf=\"attrForm.get('field')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"category\">{{ '@pry.admin.classes.attributes.category' | i18n }}</label>\n <pry-select\n id=\"category\"\n class=\"form-control\"\n formControlName=\"category\"\n [labelTranslate]=\"true\"\n [items]=\"categories$ | async\"\n (click)=\"showCategory()\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n [readonly]=\"true\"\n ></pry-select>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n *pryAccess=\"{ module: 'admin', page: 'classes', action: 'add_attribute' }\"\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [disabled]=\"attrForm.invalid || nameAlreadyExists\"\n [innerHTML]=\"(selectedAttribute ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n\n<ng-template #template>\n <div class=\"o-modal o-modal--selector\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.admin.classes.category.select' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeCategory()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <form (ngSubmit)=\"addCategory()\">\n <div class=\"m-form-label-field selector\">\n <label class=\"a-label\" for=\"name-search\">{{ '@pry.admin.classes.category.searchOrCreate' | i18n }}</label>\n <input\n type=\"text\"\n class=\"a-form-field\"\n (input)=\"search($event)\"\n [(ngModel)]=\"catToAdd.name\"\n name=\"name\"\n id=\"name-search\"\n />\n </div>\n\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.classes.category.name' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th scole=\"col\">{{ '@pry.admin.classes.category.name' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let cat of categories$ | async\">\n <td>\n <button type=\"button\" class=\"a-btn a-btn--ghost select-it\" (click)=\"setCategory(cat)\">\n <span class=\"u-visually-hidden\">{{ '@pry.admin.classes.category.selectIt' | i18n }}</span>\n {{ cat.name }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n <ng-container *ngIf=\"(categories$ | async)?.length === 0\">\n <p class=\"a-p a-p--create\">\n <strong>{{ catToAdd.name }} </strong>\n <span [innerHTML]=\"'@pry.admin.classes.category.add' | i18n\"></span>\n </p>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"'@pry.admin.classes.category.create' | i18n\"\n ></button>\n </ng-container>\n </form>\n </div>\n</ng-template>\n" }]
146
146
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.UntypedFormBuilder }, { type: i4.Overlay }, { type: i0.ViewContainerRef }, { type: i5.PryI18nService }]; }, propDecorators: { selectedClass: [{
147
147
  type: Input
148
148
  }], interClass: [{
@@ -153,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
153
153
  type: ViewChild,
154
154
  args: ['template', { read: TemplateRef }]
155
155
  }] } });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tYXR0cmlidXRlcy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLXZpZXcvYWRtaW4tYXR0cmlidXRlcy1mb3JtL2FkbWluLWF0dHJpYnV0ZXMtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9hZG1pbi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvYWRtaW4tY2xhc3Nlcy12aWV3L2FkbWluLWF0dHJpYnV0ZXMtZm9ybS9hZG1pbi1hdHRyaWJ1dGVzLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsV0FBVyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUF3QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdsRixPQUFPLEVBR0wsZUFBZSxFQUNmLGlCQUFpQixFQUVqQixhQUFhLEVBQ2IscUJBQXFCLEVBRXJCLGFBQWEsRUFDYixZQUFZLEVBQ1osY0FBYyxFQUVmLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLEdBQUcsRUFFSCxFQUFFLEVBQ0YsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxNQUFN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QUM7SUFDdkIsQ0FBQzs4R0ExS1UsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsZ1FBa0JSLFdBQVcsNkJDMUQ1Qyw2MExBMEpBOzsyRkRsSGEsNEJBQTRCO2tCQUp4QyxTQUFTOytCQUNFLDJCQUEyQjtpUUFnQjVCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR3dDLFFBQVE7c0JBQXJELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBBdHRyaWJ1dGUsXG4gIENhdGVnb3J5LFxuICBDYXRlZ29yeUFjdGlvbnMsXG4gIENhdGVnb3J5U2VsZWN0b3JzLFxuICBDbGFzcyxcbiAgQ29uZmlnQWN0aW9ucyxcbiAgREVGQVVMVF9DQVRFR09SWV9VVUlELFxuICBGaWVsZCxcbiAgRklFTERfT1BUSU9OUyxcbiAgRmllbGRBY3Rpb25zLFxuICBGaWVsZFNlbGVjdG9ycyxcbiAgUHJ5STE4blNlcnZpY2Vcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHN0YXJ0V2l0aCxcbiAgU3Vic2NyaXB0aW9uLFxuICBzd2l0Y2hNYXBcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBub1doaXRlc3BhY2VWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL2FkbWluLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9hZG1pbi5hY3Rpb25zJztcbmltcG9ydCB7IEFkbWluQ2xhc3NBY3Rpb25zIH0gZnJvbSAnLi4vLi4vc3RvcmUvYWRtaW4tY2xhc3MuYWN0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1hZG1pbi1hdHRyaWJ1dGVzLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRtaW4tYXR0cmlidXRlcy1mb3JtLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZG1pbkF0dHJpYnV0ZXNGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBhdHRyRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgc3ViID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBuYW1lQWxyZWFkeUV4aXN0cyQ/OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBhdHRyaWJ1dGVOYW1lcz86IHN0cmluZ1tdO1xuICBmaWVsZHMkOiBPYnNlcnZhYmxlPEZpZWxkW10+O1xuICBzZWxlY3RlZEZpZWxkVHlwZURlc2NyaXB0aW9uJD86IE9ic2VydmFibGU8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgZmllbGRUeXBlRGVzY3JpcHRpb24gPSBGSUVMRF9PUFRJT05TO1xuICBjYXRlZ29yaWVzJDogT2JzZXJ2YWJsZTxDYXRlZ29yeVtdPjtcbiAgbmFtZUFscmVhZHlFeGlzdHMgPSBmYWxzZTtcbiAgaXNTaG93ZWRDYXRlZ29yeSA9IGZhbHNlO1xuICBjYXRUb0FkZCA9IHt9IGFzIENhdGVnb3J5O1xuXG4gIEBJbnB1dCgpIHNlbGVjdGVkQ2xhc3M/OiBDbGFzcztcbiAgQElucHV0KCkgaW50ZXJDbGFzcz86IENsYXNzO1xuICBASW5wdXQoKSBzZWxlY3RlZEF0dHJpYnV0ZT86IEF0dHJpYnV0ZTtcblxuICBwcml2YXRlIG92ZXJsYXlSZWY/OiBPdmVybGF5UmVmO1xuICBAVmlld0NoaWxkKCd0ZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgdGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBwcml2YXRlIGZpbHRlckNhdGVnb3JpZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgaTE4blNlcnZpY2U6IFByeUkxOG5TZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRmllbGRBY3Rpb25zLmxvYWQoKSk7XG4gICAgdGhpcy5maWVsZHMkID0gdGhpcy5zdG9yZS5zZWxlY3QoRmllbGRTZWxlY3RvcnMuZmllbGRzKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENhdGVnb3J5QWN0aW9ucy5sb2FkKCkpO1xuICAgIHRoaXMuY2F0ZWdvcmllcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnN0b3JlLnNlbGVjdChDYXRlZ29yeVNlbGVjdG9ycy5jYXRlZ29yaWVzKSwgdGhpcy5maWx0ZXJDYXRlZ29yaWVzJF0pLnBpcGUoXG4gICAgICBtYXAoKFtjYXRlZ29yaWVzLCBmaWx0ZXJdKSA9PlxuICAgICAgICBjYXRlZ29yaWVzLmZpbHRlcigoY2F0KSA9PiAhZmlsdGVyIHx8IGNhdC5uYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyLnRvTG9jYWxlTG93ZXJDYXNlKCkpKVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLmF0dHJGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBpZDogW3V1aWQoKV0sXG4gICAgICBuYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgyKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTAwKSwgbm9XaGl0ZXNwYWNlVmFsaWRhdG9yXV0sXG4gICAgICBkZXNjcmlwdGlvbjogW3sgdmFsdWU6ICcnLCBkaXNhYmxlZDogdHJ1ZSB9XSxcbiAgICAgIGZpZWxkOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBjYXRlZ29yeTogW0RFRkFVTFRfQ0FURUdPUllfVVVJRF0sXG4gICAgICBtdWx0aVZhbHVlZDogW2ZhbHNlXVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hdHRyaWJ1dGVOYW1lcyA9IHRoaXMuaW50ZXJDbGFzcz8uYXR0cmlidXRlcy5tYXAoKGF0dHI6IEF0dHJpYnV0ZSkgPT4gYXR0ci5uYW1lKTtcblxuICAgIGlmICh0aGlzLnNlbGVjdGVkQ2xhc3MpIHtcbiAgICAgIHRoaXMuYXR0cmlidXRlTmFtZXMgPSB0aGlzLnNlbGVjdGVkQ2xhc3MuYXR0cmlidXRlcy5tYXAoKGF0dHI6IEF0dHJpYnV0ZSkgPT4gYXR0ci5uYW1lKTtcblxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUpIHtcbiAgICAgICAgdGhpcy5hdHRyRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICBpZDogdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZS5pZCxcbiAgICAgICAgICBuYW1lOiB0aGlzLnNlbGVjdGVkQXR0cmlidXRlLm5hbWUsXG4gICAgICAgICAgZmllbGQ6IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUuZmllbGQsXG4gICAgICAgICAgY2F0ZWdvcnk6IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUuY2F0ZWdvcnlcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYXR0ckZvcm0uY29udHJvbHNbJ2ZpZWxkJ10uZGlzYWJsZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmF0dHJpYnV0ZU5hbWVzKSB7XG4gICAgICB0aGlzLm5hbWVBbHJlYWR5RXhpc3RzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLmF0dHJGb3JtLmdldCgnbmFtZScpPy52YWx1ZUNoYW5nZXMgYXMgT2JzZXJ2YWJsZTxzdHJpbmc+LFxuICAgICAgICBvZih0aGlzLmF0dHJpYnV0ZU5hbWVzKVxuICAgICAgXSkucGlwZShcbiAgICAgICAgbWFwKChbdmFsdWUsIGF0dHJpYnV0ZU5hbWVzXSkgPT4gYXR0cmlidXRlTmFtZXMuaW5jbHVkZXModmFsdWUpICYmIHZhbHVlICE9IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGU/Lm5hbWUpXG4gICAgICApO1xuICAgICAgdGhpcy5zdWIuYWRkKHRoaXMubmFtZUFscmVhZHlFeGlzdHMkLnN1YnNjcmliZSgodmFsdWUpID0+ICh0aGlzLm5hbWVBbHJlYWR5RXhpc3RzID0gdmFsdWUpKSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZEZpZWxkVHlwZURlc2NyaXB0aW9uJCA9IHRoaXMuYXR0ckZvcm0uZ2V0KCdmaWVsZCcpPy52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLmF0dHJGb3JtLmdldCgnZmllbGQnKT8udmFsdWUpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcCgoc2VsZWN0ZWRGaWVsZElkKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkcyQucGlwZShcbiAgICAgICAgICBtYXAoKGZpZWxkcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmllbGREZXNjcmlwdGlvbiA9IHRoaXMuZmllbGRUeXBlRGVzY3JpcHRpb24uZmluZChcbiAgICAgICAgICAgICAgKGZpZWxkVHlwZSkgPT4gZmllbGRUeXBlLnZhclR5cGUgPT09IGZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGQuaWQgPT09IHNlbGVjdGVkRmllbGRJZCk/LnR5cGVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gZmllbGREZXNjcmlwdGlvbiA/IHRoaXMuaTE4blNlcnZpY2UuaW5zdGFudChmaWVsZERlc2NyaXB0aW9uLmRlc2NyaXB0aW9uKSA6ICcnO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ29CYWNrKCkge1xuICAgIGNvbnN0IHJlZGlyZWN0UGF0aCA9IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUgPyAnLi4vLi4nIDogJy4uJztcbiAgICBjb25zdCBwYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbcmVkaXJlY3RQYXRoXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5BY3Rpb25zLnJvdXRlVG8oeyBwYXRoOiBwYXRoLnRvU3RyaW5nKCkgfSkpO1xuICB9XG5cbiAgYWRkQXR0cmlidXRlKCkge1xuICAgIHRoaXMuYXR0ckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICBuYW1lOiB0aGlzLmF0dHJGb3JtLnZhbHVlLm5hbWUudHJpbSgpXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5hdHRyRm9ybS52YWxpZCkge1xuICAgICAgbGV0IGF0dHJUb1NhdmUgPSB0aGlzLmF0dHJGb3JtLmdldFJhd1ZhbHVlKCkgYXMgQXR0cmlidXRlO1xuICAgICAgbGV0IHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLi4nXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEF0dHJpYnV0ZSkge1xuICAgICAgICBwYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4uLy4uJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDbGFzcykge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgIEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVBdHRyaWJ1dGVGb3JDbGFzcyh7XG4gICAgICAgICAgICBjbGFzc0lkOiB0aGlzLnNlbGVjdGVkQ2xhc3MuaWQsXG4gICAgICAgICAgICBhdHRyaWJ1dGU6IGF0dHJUb1NhdmUsXG4gICAgICAgICAgICByb3V0ZTogcGF0aC50b1N0cmluZygpXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pbnRlckNsYXNzKSB7XG4gICAgICAgIGxldCBpbnRlckF0dHJpYnV0ZSA9IE9iamVjdC5hc3NpZ24oW10sIHRoaXMuaW50ZXJDbGFzcy5hdHRyaWJ1dGVzKTtcbiAgICAgICAgbGV0IGludGVyQ2xhc3NVcGRhdGVkID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5pbnRlckNsYXNzKTtcbiAgICAgICAgaW50ZXJBdHRyaWJ1dGUucHVzaChhdHRyVG9TYXZlKTtcbiAgICAgICAgaW50ZXJDbGFzc1VwZGF0ZWQuYXR0cmlidXRlcyA9IGludGVyQXR0cmlidXRlO1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVJbnRlckNsYXNzKHsgY2xhc3M6IGludGVyQ2xhc3NVcGRhdGVkLCByb3V0ZTogcGF0aC50b1N0cmluZygpIH0pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzaG93Q2F0ZWdvcnkoKSB7XG4gICAgdGhpcy5pc1Nob3dlZENhdGVnb3J5ID0gdHJ1ZTtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgcGFuZWxDbGFzczogWydvLW1vZGFsLXdyYXBwZXInXSxcbiAgICAgICAgYmFja2Ryb3BDbGFzczogJ2JhY2tkcm9wJ1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5hZGRpbmdPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKF8pID0+IHRoaXMuY2xvc2VDYXRlZ29yeSgpKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgfVxuXG4gIGNsb3NlQ2F0ZWdvcnkoKSB7XG4gICAgdGhpcy5pc1Nob3dlZENhdGVnb3J5ID0gZmFsc2U7XG4gICAgdGhpcy5jYXRUb0FkZCA9IHt9IGFzIENhdGVnb3J5O1xuICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgIHRoaXMuY2F0ZWdvcmllcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChDYXRlZ29yeVNlbGVjdG9ycy5jYXRlZ29yaWVzKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gIH1cblxuICBzZWFyY2goZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZmlsdGVyQ2F0ZWdvcmllcyQubmV4dChldmVudC50YXJnZXQudmFsdWUpO1xuICB9XG5cbiAgYWRkQ2F0ZWdvcnkoKSB7XG4gICAgdGhpcy5jYXRUb0FkZC5pZCA9IHV1aWQoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVDYXRlZ29yeSh7IGNhdGVnb3J5OiB0aGlzLmNhdFRvQWRkIH0pKTtcbiAgICB0aGlzLnNldENhdGVnb3J5KHRoaXMuY2F0VG9BZGQpO1xuICB9XG5cbiAgc2V0Q2F0ZWdvcnkoY2F0OiBDYXRlZ29yeSkge1xuICAgIHRoaXMuYXR0ckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICBjYXRlZ29yeTogY2F0LmlkXG4gICAgfSk7XG4gICAgdGhpcy5jbG9zZUNhdGVnb3J5KCk7XG4gIH1cbn1cbiIsIjxmb3JtIGNsYXNzPVwiby1mb3JtXCIgW2Zvcm1Hcm91cF09XCJhdHRyRm9ybVwiIChuZ1N1Ym1pdCk9XCJhZGRBdHRyaWJ1dGUoKVwiPlxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1zbVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJhdHRyX25hbWVcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmF0dHJpYnV0ZXMubmFtZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICA8aW5wdXQgaWQ9XCJhdHRyX25hbWVcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHJlcXVpcmVkIC8+XG4gICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiICpuZ0lmPVwibmFtZUFscmVhZHlFeGlzdHMkIHwgYXN5bmNcIj57e1xuICAgICAgJ0BwcnkuYWRtaW4uZXhpc3RzJyB8IGkxOG5cbiAgICB9fTwvbGFiZWw+XG4gICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgnbmFtZScpPy5pbnZhbGlkXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIiBmb3I9XCJhdHRyX25hbWVcIj57eyAnQHByeS5hZG1pbi5yZXF1aXJlZCcgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgnbmFtZScpPy5oYXNFcnJvcignbWlubGVuZ3RoJylcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiIGZvcj1cImF0dHJfbmFtZVwiPnt7XG4gICAgICAgICAgJ0BwcnkuYWRtaW4ubWluTGVuZ3RoJyB8IGkxOG4gOiB7IGxlbjogMiB9XG4gICAgICAgIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgnbmFtZScpPy5oYXNFcnJvcignbWF4bGVuZ3RoJylcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiIGZvcj1cImF0dHJfbmFtZVwiPnt7XG4gICAgICAgICAgJ0BwcnkuYWRtaW4ubWF4TGVuZ3RoJyB8IGkxOG4gOiB7IGxlbjogMTAwIH1cbiAgICAgICAgfX08L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCd3aGl0ZXNwYWNlJykgJiYgIWF0dHJGb3JtLmdldCgnbmFtZScpPy5oYXNFcnJvcignbWlubGVuZ3RoJylcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiIGZvcj1cImF0dHJfbmFtZVwiPnt7ICdAcHJ5LmFkbWluLm5vV2hpdGVzcGFjZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1zbVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJ0eXBlXCI+e3sgJ0BwcnkuYWRtaW4uY2xhc3Nlcy5hdHRyaWJ1dGVzLmZpZWxkJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1jb250YWluZXJcIj5cbiAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgIGlkPVwidHlwZVwiXG4gICAgICAgIGNsYXNzPVwiYS1wcnktc2VsZWN0XCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZmllbGRcIlxuICAgICAgICBbbGFiZWxUcmFuc2xhdGVdPVwidHJ1ZVwiXG4gICAgICAgIFtpdGVtc109XCJmaWVsZHMkIHwgYXN5bmNcIlxuICAgICAgICBiaW5kVmFsdWU9XCJpZFwiXG4gICAgICAgIGJpbmRMYWJlbD1cIm5hbWVcIlxuICAgICAgICBbaXNGb3JtXT1cInRydWVcIlxuICAgICAgICByZXF1aXJlZD1cInRydWVcIlxuICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZEZpZWxkVHlwZURlc2NyaXB0aW9uJCB8IGFzeW5jIGFzIGRlc2NyaXB0aW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWljb24gZGVzY3JpcHRpb24tY29udGFpbmVyIGRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmZvLXRleHRcIj5pPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uLXRvb2x0aXAgdGl0bGUtdG9vbHRpcFwiPlxuICAgICAgICAgIDxwIGNsYXNzPVwiYS1wIC1kYXRlXCI+e3sgZGVzY3JpcHRpb24gfX08L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgnZmllbGQnKT8uaW52YWxpZFwiPlxuICAgICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgnZmllbGQnKT8uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiPnt7ICdAcHJ5LmFkbWluLnJlcXVpcmVkJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgLXdpZHRoLXNtXCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cImNhdGVnb3J5XCI+e3sgJ0BwcnkuYWRtaW4uY2xhc3Nlcy5hdHRyaWJ1dGVzLmNhdGVnb3J5JyB8IGkxOG4gfX08L2xhYmVsPlxuICAgIDxwcnktc2VsZWN0XG4gICAgICBpZD1cImNhdGVnb3J5XCJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImNhdGVnb3J5XCJcbiAgICAgIFtsYWJlbFRyYW5zbGF0ZV09XCJ0cnVlXCJcbiAgICAgIFtpdGVtc109XCJjYXRlZ29yaWVzJCB8IGFzeW5jXCJcbiAgICAgIChjbGljayk9XCJzaG93Q2F0ZWdvcnkoKVwiXG4gICAgICBiaW5kVmFsdWU9XCJpZFwiXG4gICAgICBiaW5kTGFiZWw9XCJuYW1lXCJcbiAgICAgIFtpc0Zvcm1dPVwidHJ1ZVwiXG4gICAgICBbcmVhZG9ubHldPVwidHJ1ZVwiXG4gICAgPjwvcHJ5LXNlbGVjdD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm0tYnRuLWdyb3VwIC13aWR0aC1zbVwiPlxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCJcbiAgICAgIChjbGljayk9XCJnb0JhY2soKVwiXG4gICAgICBbaW5uZXJIVE1MXT1cIidAcHJ5LmFkbWluLmNhbmNlbCcgfCBpMThuXCJcbiAgICA+PC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgKnByeUFjY2Vzcz1cInsgbW9kdWxlOiAnYWRtaW4nLCBwYWdlOiAnY2xhc3NlcycsIGFjdGlvbjogJ2FkZF9hdHRyaWJ1dGUnIH1cIlxuICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgIFtkaXNhYmxlZF09XCJhdHRyRm9ybS5pbnZhbGlkIHx8IG5hbWVBbHJlYWR5RXhpc3RzXCJcbiAgICAgIFtpbm5lckhUTUxdPVwiKHNlbGVjdGVkQXR0cmlidXRlID8gJ0BwcnkuYWRtaW4uZWRpdCcgOiAnQHByeS5hZG1pbi5jcmVhdGUnKSB8IGkxOG5cIlxuICAgID48L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Zvcm0+XG5cbjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJvLW1vZGFsIG8tbW9kYWwtLXNlbGVjdG9yXCI+XG4gICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcF9fdGl0bGVcIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiYS1oMlwiIGlkPVwiZGlhbG9nX3RpdGxlXCI+XG4gICAgICAgICAge3sgJ0BwcnkuYWRtaW4uY2xhc3Nlcy5jYXRlZ29yeS5zZWxlY3QnIHwgaTE4biB9fVxuICAgICAgICA8L2gyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1tb2RhbF9fdG9wX19jbG9zZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiIChjbGljayk9XCJjbG9zZUNhdGVnb3J5KClcIj5cbiAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImNsb3NlXCIgW2hlaWdodF09XCIzNVwiIFt3aWR0aF09XCIzNVwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LnRvb2xib3guY2xvc2UnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8Zm9ybSAobmdTdWJtaXQpPVwiYWRkQ2F0ZWdvcnkoKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCBzZWxlY3RvclwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwibmFtZS1zZWFyY2hcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmNhdGVnb3J5LnNlYXJjaE9yQ3JlYXRlJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgIChpbnB1dCk9XCJzZWFyY2goJGV2ZW50KVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYXRUb0FkZC5uYW1lXCJcbiAgICAgICAgICBuYW1lPVwibmFtZVwiXG4gICAgICAgICAgaWQ9XCJuYW1lLXNlYXJjaFwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPHRhYmxlIGNsYXNzPVwiYS10YWJsZVwiPlxuICAgICAgICA8Y2FwdGlvbj5cbiAgICAgICAgICB7e1xuICAgICAgICAgICAgJ0BwcnkuYWRtaW4uY2xhc3Nlcy5jYXRlZ29yeS5uYW1lJyB8IGkxOG5cbiAgICAgICAgICB9fVxuICAgICAgICA8L2NhcHRpb24+XG4gICAgICAgIDx0aGVhZD5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggc2NvbGU9XCJjb2xcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmNhdGVnb3J5Lm5hbWUnIHwgaTE4biB9fTwvdGg+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC90aGVhZD5cbiAgICAgICAgPHRib2R5PlxuICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgY2F0IG9mIGNhdGVnb3JpZXMkIHwgYXN5bmNcIj5cbiAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tZ2hvc3Qgc2VsZWN0LWl0XCIgKGNsaWNrKT1cInNldENhdGVnb3J5KGNhdClcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkuYWRtaW4uY2xhc3Nlcy5jYXRlZ29yeS5zZWxlY3RJdCcgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIHt7IGNhdC5uYW1lIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoY2F0ZWdvcmllcyQgfCBhc3luYyk/Lmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICA8cCBjbGFzcz1cImEtcCBhLXAtLWNyZWF0ZVwiPlxuICAgICAgICAgIDxzdHJvbmc+e3sgY2F0VG9BZGQubmFtZSB9fSA8L3N0cm9uZz5cbiAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cIidAcHJ5LmFkbWluLmNsYXNzZXMuY2F0ZWdvcnkuYWRkJyB8IGkxOG5cIj48L3NwYW4+XG4gICAgICAgIDwvcD5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgICAgIFtpbm5lckhUTUxdPVwiJ0BwcnkuYWRtaW4uY2xhc3Nlcy5jYXRlZ29yeS5jcmVhdGUnIHwgaTE4blwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZm9ybT5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tYXR0cmlidXRlcy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLXZpZXcvYWRtaW4tYXR0cmlidXRlcy1mb3JtL2FkbWluLWF0dHJpYnV0ZXMtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9hZG1pbi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvYWRtaW4tY2xhc3Nlcy12aWV3L2FkbWluLWF0dHJpYnV0ZXMtZm9ybS9hZG1pbi1hdHRyaWJ1dGVzLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsV0FBVyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUF3QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdsRixPQUFPLEVBR0wsZUFBZSxFQUNmLGlCQUFpQixFQUVqQixhQUFhLEVBQ2IscUJBQXFCLEVBRXJCLGFBQWEsRUFDYixZQUFZLEVBQ1osY0FBYyxFQUVmLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLEdBQUcsRUFFSCxFQUFFLEVBQ0YsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxNQUFN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QUM7SUFDdkIsQ0FBQzs4R0ExS1UsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsZ1FBa0JSLFdBQVcsNkJDMUQ1Qyx3bk1BaUtBOzsyRkR6SGEsNEJBQTRCO2tCQUp4QyxTQUFTOytCQUNFLDJCQUEyQjtpUUFnQjVCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR3dDLFFBQVE7c0JBQXJELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBBdHRyaWJ1dGUsXG4gIENhdGVnb3J5LFxuICBDYXRlZ29yeUFjdGlvbnMsXG4gIENhdGVnb3J5U2VsZWN0b3JzLFxuICBDbGFzcyxcbiAgQ29uZmlnQWN0aW9ucyxcbiAgREVGQVVMVF9DQVRFR09SWV9VVUlELFxuICBGaWVsZCxcbiAgRklFTERfT1BUSU9OUyxcbiAgRmllbGRBY3Rpb25zLFxuICBGaWVsZFNlbGVjdG9ycyxcbiAgUHJ5STE4blNlcnZpY2Vcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHN0YXJ0V2l0aCxcbiAgU3Vic2NyaXB0aW9uLFxuICBzd2l0Y2hNYXBcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBub1doaXRlc3BhY2VWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL2FkbWluLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9hZG1pbi5hY3Rpb25zJztcbmltcG9ydCB7IEFkbWluQ2xhc3NBY3Rpb25zIH0gZnJvbSAnLi4vLi4vc3RvcmUvYWRtaW4tY2xhc3MuYWN0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1hZG1pbi1hdHRyaWJ1dGVzLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRtaW4tYXR0cmlidXRlcy1mb3JtLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZG1pbkF0dHJpYnV0ZXNGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBhdHRyRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgc3ViID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBuYW1lQWxyZWFkeUV4aXN0cyQ/OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBhdHRyaWJ1dGVOYW1lcz86IHN0cmluZ1tdO1xuICBmaWVsZHMkOiBPYnNlcnZhYmxlPEZpZWxkW10+O1xuICBzZWxlY3RlZEZpZWxkVHlwZURlc2NyaXB0aW9uJD86IE9ic2VydmFibGU8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgZmllbGRUeXBlRGVzY3JpcHRpb24gPSBGSUVMRF9PUFRJT05TO1xuICBjYXRlZ29yaWVzJDogT2JzZXJ2YWJsZTxDYXRlZ29yeVtdPjtcbiAgbmFtZUFscmVhZHlFeGlzdHMgPSBmYWxzZTtcbiAgaXNTaG93ZWRDYXRlZ29yeSA9IGZhbHNlO1xuICBjYXRUb0FkZCA9IHt9IGFzIENhdGVnb3J5O1xuXG4gIEBJbnB1dCgpIHNlbGVjdGVkQ2xhc3M/OiBDbGFzcztcbiAgQElucHV0KCkgaW50ZXJDbGFzcz86IENsYXNzO1xuICBASW5wdXQoKSBzZWxlY3RlZEF0dHJpYnV0ZT86IEF0dHJpYnV0ZTtcblxuICBwcml2YXRlIG92ZXJsYXlSZWY/OiBPdmVybGF5UmVmO1xuICBAVmlld0NoaWxkKCd0ZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgdGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBwcml2YXRlIGZpbHRlckNhdGVnb3JpZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgaTE4blNlcnZpY2U6IFByeUkxOG5TZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRmllbGRBY3Rpb25zLmxvYWQoKSk7XG4gICAgdGhpcy5maWVsZHMkID0gdGhpcy5zdG9yZS5zZWxlY3QoRmllbGRTZWxlY3RvcnMuZmllbGRzKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENhdGVnb3J5QWN0aW9ucy5sb2FkKCkpO1xuICAgIHRoaXMuY2F0ZWdvcmllcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnN0b3JlLnNlbGVjdChDYXRlZ29yeVNlbGVjdG9ycy5jYXRlZ29yaWVzKSwgdGhpcy5maWx0ZXJDYXRlZ29yaWVzJF0pLnBpcGUoXG4gICAgICBtYXAoKFtjYXRlZ29yaWVzLCBmaWx0ZXJdKSA9PlxuICAgICAgICBjYXRlZ29yaWVzLmZpbHRlcigoY2F0KSA9PiAhZmlsdGVyIHx8IGNhdC5uYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyLnRvTG9jYWxlTG93ZXJDYXNlKCkpKVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLmF0dHJGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBpZDogW3V1aWQoKV0sXG4gICAgICBuYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgyKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTAwKSwgbm9XaGl0ZXNwYWNlVmFsaWRhdG9yXV0sXG4gICAgICBkZXNjcmlwdGlvbjogW3sgdmFsdWU6ICcnLCBkaXNhYmxlZDogdHJ1ZSB9XSxcbiAgICAgIGZpZWxkOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBjYXRlZ29yeTogW0RFRkFVTFRfQ0FURUdPUllfVVVJRF0sXG4gICAgICBtdWx0aVZhbHVlZDogW2ZhbHNlXVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hdHRyaWJ1dGVOYW1lcyA9IHRoaXMuaW50ZXJDbGFzcz8uYXR0cmlidXRlcy5tYXAoKGF0dHI6IEF0dHJpYnV0ZSkgPT4gYXR0ci5uYW1lKTtcblxuICAgIGlmICh0aGlzLnNlbGVjdGVkQ2xhc3MpIHtcbiAgICAgIHRoaXMuYXR0cmlidXRlTmFtZXMgPSB0aGlzLnNlbGVjdGVkQ2xhc3MuYXR0cmlidXRlcy5tYXAoKGF0dHI6IEF0dHJpYnV0ZSkgPT4gYXR0ci5uYW1lKTtcblxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUpIHtcbiAgICAgICAgdGhpcy5hdHRyRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICBpZDogdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZS5pZCxcbiAgICAgICAgICBuYW1lOiB0aGlzLnNlbGVjdGVkQXR0cmlidXRlLm5hbWUsXG4gICAgICAgICAgZmllbGQ6IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUuZmllbGQsXG4gICAgICAgICAgY2F0ZWdvcnk6IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUuY2F0ZWdvcnlcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYXR0ckZvcm0uY29udHJvbHNbJ2ZpZWxkJ10uZGlzYWJsZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmF0dHJpYnV0ZU5hbWVzKSB7XG4gICAgICB0aGlzLm5hbWVBbHJlYWR5RXhpc3RzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLmF0dHJGb3JtLmdldCgnbmFtZScpPy52YWx1ZUNoYW5nZXMgYXMgT2JzZXJ2YWJsZTxzdHJpbmc+LFxuICAgICAgICBvZih0aGlzLmF0dHJpYnV0ZU5hbWVzKVxuICAgICAgXSkucGlwZShcbiAgICAgICAgbWFwKChbdmFsdWUsIGF0dHJpYnV0ZU5hbWVzXSkgPT4gYXR0cmlidXRlTmFtZXMuaW5jbHVkZXModmFsdWUpICYmIHZhbHVlICE9IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGU/Lm5hbWUpXG4gICAgICApO1xuICAgICAgdGhpcy5zdWIuYWRkKHRoaXMubmFtZUFscmVhZHlFeGlzdHMkLnN1YnNjcmliZSgodmFsdWUpID0+ICh0aGlzLm5hbWVBbHJlYWR5RXhpc3RzID0gdmFsdWUpKSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZEZpZWxkVHlwZURlc2NyaXB0aW9uJCA9IHRoaXMuYXR0ckZvcm0uZ2V0KCdmaWVsZCcpPy52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLmF0dHJGb3JtLmdldCgnZmllbGQnKT8udmFsdWUpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcCgoc2VsZWN0ZWRGaWVsZElkKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkcyQucGlwZShcbiAgICAgICAgICBtYXAoKGZpZWxkcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmllbGREZXNjcmlwdGlvbiA9IHRoaXMuZmllbGRUeXBlRGVzY3JpcHRpb24uZmluZChcbiAgICAgICAgICAgICAgKGZpZWxkVHlwZSkgPT4gZmllbGRUeXBlLnZhclR5cGUgPT09IGZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGQuaWQgPT09IHNlbGVjdGVkRmllbGRJZCk/LnR5cGVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gZmllbGREZXNjcmlwdGlvbiA/IHRoaXMuaTE4blNlcnZpY2UuaW5zdGFudChmaWVsZERlc2NyaXB0aW9uLmRlc2NyaXB0aW9uKSA6ICcnO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ29CYWNrKCkge1xuICAgIGNvbnN0IHJlZGlyZWN0UGF0aCA9IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUgPyAnLi4vLi4nIDogJy4uJztcbiAgICBjb25zdCBwYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbcmVkaXJlY3RQYXRoXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5BY3Rpb25zLnJvdXRlVG8oeyBwYXRoOiBwYXRoLnRvU3RyaW5nKCkgfSkpO1xuICB9XG5cbiAgYWRkQXR0cmlidXRlKCkge1xuICAgIHRoaXMuYXR0ckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICBuYW1lOiB0aGlzLmF0dHJGb3JtLnZhbHVlLm5hbWUudHJpbSgpXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5hdHRyRm9ybS52YWxpZCkge1xuICAgICAgbGV0IGF0dHJUb1NhdmUgPSB0aGlzLmF0dHJGb3JtLmdldFJhd1ZhbHVlKCkgYXMgQXR0cmlidXRlO1xuICAgICAgbGV0IHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLi4nXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEF0dHJpYnV0ZSkge1xuICAgICAgICBwYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4uLy4uJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDbGFzcykge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgIEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVBdHRyaWJ1dGVGb3JDbGFzcyh7XG4gICAgICAgICAgICBjbGFzc0lkOiB0aGlzLnNlbGVjdGVkQ2xhc3MuaWQsXG4gICAgICAgICAgICBhdHRyaWJ1dGU6IGF0dHJUb1NhdmUsXG4gICAgICAgICAgICByb3V0ZTogcGF0aC50b1N0cmluZygpXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pbnRlckNsYXNzKSB7XG4gICAgICAgIGxldCBpbnRlckF0dHJpYnV0ZSA9IE9iamVjdC5hc3NpZ24oW10sIHRoaXMuaW50ZXJDbGFzcy5hdHRyaWJ1dGVzKTtcbiAgICAgICAgbGV0IGludGVyQ2xhc3NVcGRhdGVkID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5pbnRlckNsYXNzKTtcbiAgICAgICAgaW50ZXJBdHRyaWJ1dGUucHVzaChhdHRyVG9TYXZlKTtcbiAgICAgICAgaW50ZXJDbGFzc1VwZGF0ZWQuYXR0cmlidXRlcyA9IGludGVyQXR0cmlidXRlO1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVJbnRlckNsYXNzKHsgY2xhc3M6IGludGVyQ2xhc3NVcGRhdGVkLCByb3V0ZTogcGF0aC50b1N0cmluZygpIH0pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzaG93Q2F0ZWdvcnkoKSB7XG4gICAgdGhpcy5pc1Nob3dlZENhdGVnb3J5ID0gdHJ1ZTtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgcGFuZWxDbGFzczogWydvLW1vZGFsLXdyYXBwZXInXSxcbiAgICAgICAgYmFja2Ryb3BDbGFzczogJ2JhY2tkcm9wJ1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5hZGRpbmdPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKF8pID0+IHRoaXMuY2xvc2VDYXRlZ29yeSgpKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgfVxuXG4gIGNsb3NlQ2F0ZWdvcnkoKSB7XG4gICAgdGhpcy5pc1Nob3dlZENhdGVnb3J5ID0gZmFsc2U7XG4gICAgdGhpcy5jYXRUb0FkZCA9IHt9IGFzIENhdGVnb3J5O1xuICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgIHRoaXMuY2F0ZWdvcmllcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChDYXRlZ29yeVNlbGVjdG9ycy5jYXRlZ29yaWVzKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gIH1cblxuICBzZWFyY2goZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZmlsdGVyQ2F0ZWdvcmllcyQubmV4dChldmVudC50YXJnZXQudmFsdWUpO1xuICB9XG5cbiAgYWRkQ2F0ZWdvcnkoKSB7XG4gICAgdGhpcy5jYXRUb0FkZC5pZCA9IHV1aWQoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVDYXRlZ29yeSh7IGNhdGVnb3J5OiB0aGlzLmNhdFRvQWRkIH0pKTtcbiAgICB0aGlzLnNldENhdGVnb3J5KHRoaXMuY2F0VG9BZGQpO1xuICB9XG5cbiAgc2V0Q2F0ZWdvcnkoY2F0OiBDYXRlZ29yeSkge1xuICAgIHRoaXMuYXR0ckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICBjYXRlZ29yeTogY2F0LmlkXG4gICAgfSk7XG4gICAgdGhpcy5jbG9zZUNhdGVnb3J5KCk7XG4gIH1cbn1cbiIsIjxmb3JtIGNsYXNzPVwiby1mb3JtXCIgW2Zvcm1Hcm91cF09XCJhdHRyRm9ybVwiIChuZ1N1Ym1pdCk9XCJhZGRBdHRyaWJ1dGUoKVwiPlxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1zbVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJhdHRyX25hbWVcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmF0dHJpYnV0ZXMubmFtZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICA8aW5wdXQgaWQ9XCJhdHRyX25hbWVcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHJlcXVpcmVkIC8+XG4gICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiICpuZ0lmPVwibmFtZUFscmVhZHlFeGlzdHMkIHwgYXN5bmNcIj57e1xuICAgICAgJ0BwcnkuYWRtaW4uZXhpc3RzJyB8IGkxOG5cbiAgICB9fTwvbGFiZWw+XG4gICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgnbmFtZScpPy5pbnZhbGlkXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIiBmb3I9XCJhdHRyX25hbWVcIj57eyAnQHByeS5hZG1pbi5yZXF1aXJlZCcgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgnbmFtZScpPy5oYXNFcnJvcignbWlubGVuZ3RoJylcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiIGZvcj1cImF0dHJfbmFtZVwiPnt7XG4gICAgICAgICAgJ0BwcnkuYWRtaW4ubWluTGVuZ3RoJyB8IGkxOG4gOiB7IGxlbjogMiB9XG4gICAgICAgIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgnbmFtZScpPy5oYXNFcnJvcignbWF4bGVuZ3RoJylcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiIGZvcj1cImF0dHJfbmFtZVwiPnt7XG4gICAgICAgICAgJ0BwcnkuYWRtaW4ubWF4TGVuZ3RoJyB8IGkxOG4gOiB7IGxlbjogMTAwIH1cbiAgICAgICAgfX08L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCd3aGl0ZXNwYWNlJykgJiYgIWF0dHJGb3JtLmdldCgnbmFtZScpPy5oYXNFcnJvcignbWlubGVuZ3RoJylcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiIGZvcj1cImF0dHJfbmFtZVwiPnt7ICdAcHJ5LmFkbWluLm5vV2hpdGVzcGFjZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1zbVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJ0eXBlXCI+e3sgJ0BwcnkuYWRtaW4uY2xhc3Nlcy5hdHRyaWJ1dGVzLmZpZWxkJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1jb250YWluZXJcIj5cbiAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgIGlkPVwidHlwZVwiXG4gICAgICAgIGNsYXNzPVwiYS1wcnktc2VsZWN0XCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZmllbGRcIlxuICAgICAgICBbaXRlbXNdPVwiZmllbGRzJCB8IGFzeW5jXCJcbiAgICAgICAgW2l0ZW1zQXNPcHRpb25dPVwidHJ1ZVwiXG4gICAgICAgIGJpbmRWYWx1ZT1cImlkXCJcbiAgICAgICAgW2lzRm9ybV09XCJ0cnVlXCJcbiAgICAgICAgcmVxdWlyZWQ9XCJ0cnVlXCJcbiAgICAgICAgW3RlbXBsYXRlTGFiZWxdPVwidGVtcGxhdGVPcHRpb25cIlxuICAgICAgICBbdGVtcGxhdGVPcHRpb25dPVwidGVtcGxhdGVPcHRpb25cIlxuICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVPcHRpb24gbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGlnbmVkLW9wdGlvblwiPlxuICAgICAgICAgIDxwPnt7IGl0ZW0ubmFtZSB9fTwvcD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcHNcIiAqbmdJZj1cIml0ZW0uY3JzXCI+e3sgaXRlbS5jcnMgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkRmllbGRUeXBlRGVzY3JpcHRpb24kIHwgYXN5bmMgYXMgZGVzY3JpcHRpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImluZm8taWNvbiBkZXNjcmlwdGlvbi1jb250YWluZXIgZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImluZm8tdGV4dFwiPmk8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb24tdG9vbHRpcCB0aXRsZS10b29sdGlwXCI+XG4gICAgICAgICAgPHAgY2xhc3M9XCJhLXAgLWRhdGVcIj57eyBkZXNjcmlwdGlvbiB9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCdmaWVsZCcpPy5pbnZhbGlkXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCdmaWVsZCcpPy5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsIGEtbGFiZWwtLWhlbHAgLWVycm9yXCI+e3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtc21cIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwiY2F0ZWdvcnlcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmF0dHJpYnV0ZXMuY2F0ZWdvcnknIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgPHByeS1zZWxlY3RcbiAgICAgIGlkPVwiY2F0ZWdvcnlcIlxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY2F0ZWdvcnlcIlxuICAgICAgW2xhYmVsVHJhbnNsYXRlXT1cInRydWVcIlxuICAgICAgW2l0ZW1zXT1cImNhdGVnb3JpZXMkIHwgYXN5bmNcIlxuICAgICAgKGNsaWNrKT1cInNob3dDYXRlZ29yeSgpXCJcbiAgICAgIGJpbmRWYWx1ZT1cImlkXCJcbiAgICAgIGJpbmRMYWJlbD1cIm5hbWVcIlxuICAgICAgW2lzRm9ybV09XCJ0cnVlXCJcbiAgICAgIFtyZWFkb25seV09XCJ0cnVlXCJcbiAgICA+PC9wcnktc2VsZWN0PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXAgLXdpZHRoLXNtXCI+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIlxuICAgICAgKGNsaWNrKT1cImdvQmFjaygpXCJcbiAgICAgIFtpbm5lckhUTUxdPVwiJ0BwcnkuYWRtaW4uY2FuY2VsJyB8IGkxOG5cIlxuICAgID48L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6ICdhZG1pbicsIHBhZ2U6ICdjbGFzc2VzJywgYWN0aW9uOiAnYWRkX2F0dHJpYnV0ZScgfVwiXG4gICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCJcbiAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgW2Rpc2FibGVkXT1cImF0dHJGb3JtLmludmFsaWQgfHwgbmFtZUFscmVhZHlFeGlzdHNcIlxuICAgICAgW2lubmVySFRNTF09XCIoc2VsZWN0ZWRBdHRyaWJ1dGUgPyAnQHByeS5hZG1pbi5lZGl0JyA6ICdAcHJ5LmFkbWluLmNyZWF0ZScpIHwgaTE4blwiXG4gICAgPjwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZm9ybT5cblxuPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cIm8tbW9kYWwgby1tb2RhbC0tc2VsZWN0b3JcIj5cbiAgICA8ZGl2IGNsYXNzPVwiby1tb2RhbF9fdG9wXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1tb2RhbF9fdG9wX190aXRsZVwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJhLWgyXCIgaWQ9XCJkaWFsb2dfdGl0bGVcIj5cbiAgICAgICAgICB7eyAnQHByeS5hZG1pbi5jbGFzc2VzLmNhdGVnb3J5LnNlbGVjdCcgfCBpMThuIH19XG4gICAgICAgIDwvaDI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BfX2Nsb3NlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi1vbmx5XCIgKGNsaWNrKT1cImNsb3NlQ2F0ZWdvcnkoKVwiPlxuICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIiBbaGVpZ2h0XT1cIjM1XCIgW3dpZHRoXT1cIjM1XCI+PC9wcnktaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkudG9vbGJveC5jbG9zZScgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxmb3JtIChuZ1N1Ym1pdCk9XCJhZGRDYXRlZ29yeSgpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIHNlbGVjdG9yXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJuYW1lLXNlYXJjaFwiPnt7ICdAcHJ5LmFkbWluLmNsYXNzZXMuY2F0ZWdvcnkuc2VhcmNoT3JDcmVhdGUnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgKGlucHV0KT1cInNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhdFRvQWRkLm5hbWVcIlxuICAgICAgICAgIG5hbWU9XCJuYW1lXCJcbiAgICAgICAgICBpZD1cIm5hbWUtc2VhcmNoXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8dGFibGUgY2xhc3M9XCJhLXRhYmxlXCI+XG4gICAgICAgIDxjYXB0aW9uPlxuICAgICAgICAgIHt7XG4gICAgICAgICAgICAnQHByeS5hZG1pbi5jbGFzc2VzLmNhdGVnb3J5Lm5hbWUnIHwgaTE4blxuICAgICAgICAgIH19XG4gICAgICAgIDwvY2FwdGlvbj5cbiAgICAgICAgPHRoZWFkPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCBzY29sZT1cImNvbFwiPnt7ICdAcHJ5LmFkbWluLmNsYXNzZXMuY2F0ZWdvcnkubmFtZScgfCBpMThuIH19PC90aD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBjYXQgb2YgY2F0ZWdvcmllcyQgfCBhc3luY1wiPlxuICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1naG9zdCBzZWxlY3QtaXRcIiAoY2xpY2spPVwic2V0Q2F0ZWdvcnkoY2F0KVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmNhdGVnb3J5LnNlbGVjdEl0JyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAge3sgY2F0Lm5hbWUgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGJvZHk+XG4gICAgICA8L3RhYmxlPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihjYXRlZ29yaWVzJCB8IGFzeW5jKT8ubGVuZ3RoID09PSAwXCI+XG4gICAgICAgIDxwIGNsYXNzPVwiYS1wIGEtcC0tY3JlYXRlXCI+XG4gICAgICAgICAgPHN0cm9uZz57eyBjYXRUb0FkZC5uYW1lIH19IDwvc3Ryb25nPlxuICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiJ0BwcnkuYWRtaW4uY2xhc3Nlcy5jYXRlZ29yeS5hZGQnIHwgaTE4blwiPjwvc3Bhbj5cbiAgICAgICAgPC9wPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgICAgICAgW2lubmVySFRNTF09XCInQHByeS5hZG1pbi5jbGFzc2VzLmNhdGVnb3J5LmNyZWF0ZScgfCBpMThuXCJcbiAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9mb3JtPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -32,4 +32,4 @@ export const AdminClassActions = {
32
32
  getStorageOptionsSuccess: createAction('[Admin/Classes] Get Storage Options List Success', props()),
33
33
  getStorageOptionsFailure: createAction('[Admin/Classes] Get Storage Options List Failure', props())
34
34
  };
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tY2xhc3MuYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9zdG9yZS9hZG1pbi1jbGFzcy5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2xELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLGFBQWEsRUFBRSxZQUFZLENBQUMsc0NBQXNDLENBQUM7SUFFbkUsY0FBYyxFQUFFLFlBQVksQ0FBQyxrQ0FBa0MsRUFBRSxLQUFLLEVBQW1DLENBQUM7SUFDMUcsZUFBZSxFQUFFLFlBQVksQ0FBQyxtQ0FBbUMsQ0FBQztJQUVsRSxTQUFTLEVBQUUsWUFBWSxDQUFDLDRCQUE0QixFQUFFLEtBQUssRUFBbUMsQ0FBQztJQUMvRixnQkFBZ0IsRUFBRSxZQUFZLENBQUMsd0NBQXdDLEVBQUUsS0FBSyxFQUFxQixDQUFDO0lBQ3BHLGdCQUFnQixFQUFFLFlBQVksQ0FBQyx3Q0FBd0MsRUFBRSxLQUFLLEVBQWtCLENBQUM7SUFFakcsWUFBWSxFQUFFLFlBQVksQ0FBQywrQkFBK0IsRUFBRSxLQUFLLEVBQTBCLENBQUM7SUFDNUYsbUJBQW1CLEVBQUUsWUFBWSxDQUFDLDJDQUEyQyxDQUFDO0lBQzlFLG1CQUFtQixFQUFFLFlBQVksQ0FBQywyQ0FBMkMsRUFBRSxLQUFLLEVBQWtCLENBQUM7SUFFdkcsV0FBVyxFQUFFLFlBQVksQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLEVBQW9CLENBQUM7SUFDcEYsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLDBDQUEwQyxFQUFFLEtBQUssRUFBa0IsQ0FBQztJQUVyRyxhQUFhLEVBQUUsWUFBWSxDQUFDLGdDQUFnQyxDQUFDO0lBRTdELFdBQVcsRUFBRSxZQUFZLENBQUMsOEJBQThCLEVBQUUsS0FBSyxFQUFpQyxDQUFDO0lBQ2pHLGtCQUFrQixFQUFFLFlBQVksQ0FBQywwQ0FBMEMsRUFBRSxLQUFLLEVBQXFCLENBQUM7SUFDeEcsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLDBDQUEwQyxFQUFFLEtBQUssRUFBa0IsQ0FBQztJQUVyRyx1QkFBdUIsRUFBRSxZQUFZLENBQ25DLDRDQUE0QyxFQUM1QyxLQUFLLEVBQThFLENBQ3BGO0lBQ0QsOEJBQThCLEVBQUUsWUFBWSxDQUMxQyx3REFBd0QsRUFDeEQsS0FBSyxFQUE4RCxDQUNwRTtJQUNELDhCQUE4QixFQUFFLFlBQVksQ0FDMUMsd0RBQXdELEVBQ3hELEtBQUssRUFBa0IsQ0FDeEI7SUFFRCxlQUFlLEVBQUUsWUFBWSxDQUMzQiwwQ0FBMEMsRUFDMUMsS0FBSyxFQUF1QyxDQUM3QztJQUNELGlCQUFpQixFQUFFLFlBQVksQ0FBQyw0Q0FBNEMsQ0FBQztJQUU3RSxxQkFBcUIsRUFBRSxZQUFZLENBQ2pDLG1EQUFtRCxFQUNuRCxLQUFLLEVBQTRELENBQ2xFO0lBQ0QsNEJBQTRCLEVBQUUsWUFBWSxDQUN4QywrREFBK0QsRUFDL0QsS0FBSyxFQUFxQixDQUMzQjtJQUNELDRCQUE0QixFQUFFLFlBQVksQ0FDeEMsK0RBQStELEVBQy9ELEtBQUssRUFBa0IsQ0FDeEI7SUFDRCxJQUFJLEVBQUUsWUFBWSxDQUFDLHNCQUFzQixFQUFFLEtBQUssRUFBb0IsQ0FBQztJQUNyRSxTQUFTLEVBQUUsWUFBWSxDQUFDLG9CQUFvQixDQUFDO0lBQzdDLFVBQVUsRUFBRSxZQUFZLENBQUMscUJBQXFCLENBQUM7SUFDL0Msb0JBQW9CLEVBQUUsWUFBWSxDQUFDLHVDQUF1QyxFQUFFLEtBQUssRUFBZ0MsQ0FBQztJQUNsSCx3QkFBd0IsRUFBRSxZQUFZLENBQ3BDLDJDQUEyQyxFQUMzQyxLQUFLLEVBS0QsQ0FDTDtJQUNELGlCQUFpQixFQUFFLFlBQVksQ0FBQywwQ0FBMEMsQ0FBQztJQUMzRSx3QkFBd0IsRUFBRSxZQUFZLENBQ3BDLGtEQUFrRCxFQUNsRCxLQUFLLEVBQWdDLENBQ3RDO0lBQ0Qsd0JBQXdCLEVBQUUsWUFBWSxDQUFDLGtEQUFrRCxFQUFFLEtBQUssRUFBa0IsQ0FBQztDQUNwSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQWN0aW9uLCBwcm9wcyB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEF0dHJpYnV0ZSwgQXR0cmlidXRlRXh0ZW5kZWQsIENhdGVnb3J5LCBDbGFzcywgQXNzb2NpYXRpb25zIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcblxuZXhwb3J0IGNvbnN0IEFkbWluQ2xhc3NBY3Rpb25zID0ge1xuICB1cGRhdGVUb29sYm94OiBjcmVhdGVBY3Rpb24oJ1tBZG1pbi9DbGFzc2VzXSBVcGRhdGUgVG9vbGJveCBDbGFzcycpLFxuXG4gIHNhdmVJbnRlckNsYXNzOiBjcmVhdGVBY3Rpb24oJ1tBZG1pbi9DbGFzc2VzXSBTYXZlIEludGVyIENsYXNzJywgcHJvcHM8eyBjbGFzczogQ2xhc3M7IHJvdXRlOiBzdHJpbmcgfT4oKSksXG4gIHJlc2V0SW50ZXJDbGFzczogY3JlYXRlQWN0aW9uKCdbQWRtaW4vQ2xhc3Nlc10gUmVzZXQgSW50ZXIgQ2xhc3MnKSxcblxuICBzYXZlQ2xhc3M6IGNyZWF0ZUFjdGlvbignW0FkbWluL0NsYXNzZXNdIFNhdmUgQ2xhc3MnLCBwcm9wczx7IGNsYXNzOiBDbGFzczsgcm91dGU6IHN0cmluZyB9PigpKSxcbiAgc2F2ZUNsYXNzU3VjY2VzczogY3JlYXRlQWN0aW9uKCdbQWRtaW4vQ2xhc3NlcyBBcGldIFNhdmUgQ2xhc3MgU3VjY2VzcycsIHByb3BzPHsgcm91dGU6IHN0cmluZyB9PigpKSxcbiAgc2F2ZUNsYXNzRmFpbHVyZTogY3JlYXRlQWN0aW9uKCdbQWRtaW4vQ2xhc3NlcyBBcGldIFNhdmUgQ2xhc3MgRmFpbHVyZScsIHByb3BzPHsgZXJyb3I6IGFueSB9PigpKSxcblxuICBzYXZlQ2F0ZWdvcnk6IGNyZWF0ZUFjdGlvbignW0FkbWluL0NsYXNzZXNdIFNhdmUgQ2F0ZWdvcnknLCBwcm9wczx7IGNhdGVnb3J5OiBDYXRlZ29yeSB9PigpKSxcbiAgc2F2ZUNhdGVnb3J5U3VjY2VzczogY3JlYXRlQWN0aW9uKCdbQWRtaW4vQ2xhc3NlcyBBcGldIFNhdmUgQ2F0ZWdvcnkgU3VjY2VzcycpLFxuICBzYXZlQ2F0ZWdvcnlGYWlsdXJlOiBjcmVhdGVBY3Rpb24oJ1tBZG1pbi9DbGFzc2VzIEFwaV0gU2F2ZSBDYXRlZ29yeSBGYWlsdXJlJywgcHJvcHM8eyBlcnJvcjogYW55IH0+KCkpLFxuXG4gIHNlbGVjdENsYXNzOiBjcmVhdGVBY3Rpb24oJ1tBZG1pbi9DbGFzc2VzXSBTZWxlY3QgQ2xhc3MnLCBwcm9wczx7IGNsYXp6OiBDbGFzcyB9PigpKSxcbiAgc2VsZWN0Q2xhc3NGYWlsdXJlOiBjcmVhdGVBY3Rpb24oJ1tBZG1pbi9DbGFzc2VzIEFwaV0gU2VsZWN0IENsYXNzIEZhaWx1cmUnLCBwcm9wczx7IGVycm9yOiBhbnkgfT4oKSksXG5cbiAgdW5zZWxlY3RDbGFzczogY3JlYXRlQWN0aW9uKCdbQWRtaW4vQ2xhc3Nlc10gVW5zZWxlY3QgQ2xhc3MnKSxcblxuICBkZWxldGVDbGFzczogY3JlYXRlQWN0aW9uKCdbQWRtaW4vQ2xhc3Nlc10gRGVsZXRlIENsYXNzJywgcHJvcHM8eyBpZDogc3RyaW5nOyByb3V0ZTogc3RyaW5nIH0+KCkpLFxuICBkZWxldGVDbGFzc1N1Y2Nlc3M6IGNyZWF0ZUFjdGlvbignW0FkbWluL0NsYXNzZXMgQXBpXSBEZWxldGUgQ2xhc3MgU3VjY2VzcycsIHByb3BzPHsgcm91dGU6IHN0cmluZyB9PigpKSxcbiAgZGVsZXRlQ2xhc3NGYWlsdXJlOiBjcmVhdGVBY3Rpb24oJ1tBZG1pbi9DbGFzc2VzIEFwaV0gRGVsZXRlIENsYXNzIEZhaWx1cmUnLCBwcm9wczx7IGVycm9yOiBhbnkgfT4oKSksXG5cbiAgZGVsZXRlQXR0cmlidXRlRm9yQ2xhc3M6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0FkbWluL0NsYXNzZXNdIERlbGV0ZSBBdHRyaWJ1dGUgZm9yIENsYXNzJyxcbiAgICBwcm9wczx7IGNsYXNzSWQ6IHN0cmluZzsgYXR0cklkOiBzdHJpbmc7IGJhY2tQYXRoOiBzdHJpbmc7IGFkZEF0dHJQYXRoOiBzdHJpbmcgfT4oKVxuICApLFxuICBkZWxldGVBdHRyaWJ1dGVGb3JDbGFzc1N1Y2Nlc3M6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0FkbWluL0NsYXNzZXMgQXBpXSBEZWxldGUgQXR0cmlidXRlIGZvciBDbGFzcyBTdWNjZXNzJyxcbiAgICBwcm9wczx7IGNsYXNzSWQ6IHN0cmluZzsgYmFja1BhdGg6IHN0cmluZzsgYWRkQXR0clBhdGg6IHN0cmluZyB9PigpXG4gICksXG4gIGRlbGV0ZUF0dHJpYnV0ZUZvckNsYXNzRmFpbHVyZTogY3JlYXRlQWN0aW9uKFxuICAgICdbQWRtaW4vQ2xhc3NlcyBBcGldIERlbGV0ZSBBdHRyaWJ1dGUgZm9yIENsYXNzIEZhaWx1cmUnLFxuICAgIHByb3BzPHsgZXJyb3I6IGFueSB9PigpXG4gICksXG5cbiAgc2VsZWN0QXR0cmlidXRlOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tBZG1pbi9DbGFzc2VzXSBTZWxlY3QgY3VycmVudCBBdHRyaWJ1dGUnLFxuICAgIHByb3BzPHsgYXR0ckV4dGVuZGVkOiBBdHRyaWJ1dGVFeHRlbmRlZCB9PigpXG4gICksXG4gIHVuc2VsZWN0QXR0cmlidXRlOiBjcmVhdGVBY3Rpb24oJ1tBZG1pbi9DbGFzc2VzXSBVbnNlbGVjdCBjdXJyZW50IEF0dHJpYnV0ZScpLFxuXG4gIHNhdmVBdHRyaWJ1dGVGb3JDbGFzczogY3JlYXRlQWN0aW9uKFxuICAgICdbQWRtaW4vQ2xhc3Nlc10gU2F2ZSBBdHRyaWJ1dGUgZm9yIFNlbGVjdGVkIENsYXNzJyxcbiAgICBwcm9wczx7IGNsYXNzSWQ6IHN0cmluZzsgYXR0cmlidXRlOiBBdHRyaWJ1dGU7IHJvdXRlOiBzdHJpbmcgfT4oKVxuICApLFxuICBzYXZlQXR0cmlidXRlRm9yQ2xhc3NTdWNjZXNzOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tBZG1pbi9DbGFzc2VzIEFwaV0gU2F2ZSBBdHRyaWJ1dGUgZm9yIFNlbGVjdGVkIENsYXNzIFN1Y2Nlc3MnLFxuICAgIHByb3BzPHsgcm91dGU6IHN0cmluZyB9PigpXG4gICksXG4gIHNhdmVBdHRyaWJ1dGVGb3JDbGFzc0ZhaWx1cmU6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0FkbWluL0NsYXNzZXMgQXBpXSBTYXZlIEF0dHJpYnV0ZSBmb3IgU2VsZWN0ZWQgQ2xhc3MgRmFpbHVyZScsXG4gICAgcHJvcHM8eyBlcnJvcjogYW55IH0+KClcbiAgKSxcbiAgYmFjazogY3JlYXRlQWN0aW9uKCdbQWRtaW4vQ2xhc3Nlc10gYmFjaycsIHByb3BzPHsgcGF0aDogc3RyaW5nIH0+KCkpLFxuICBvcGVuTW9kYWw6IGNyZWF0ZUFjdGlvbignW0NsYXNzXSBPcGVuIG1vZGFsJyksXG4gIGNsb3NlTW9kYWw6IGNyZWF0ZUFjdGlvbignW0NsYXNzXSBDbG9zZSBtb2RhbCcpLFxuICBjb25maXJtQ2xhc3NEZWxldGlvbjogY3JlYXRlQWN0aW9uKCdbQ2xhc3NdIE9wZW4gbW9kYWwgZm9yIGRlbGV0aW5nIGNsYXNzJywgcHJvcHM8eyBpZDogc3RyaW5nOyBwYXRoOiBzdHJpbmcgfT4oKSksXG4gIGNvbmZpcm1BdHRyaWJ1dGVEZWxldGlvbjogY3JlYXRlQWN0aW9uKFxuICAgICdbQ2xhc3NdIE9wZW4gbW9kYWwgZm9yIGF0dHJpYnV0ZSBkZWxldGlvbicsXG4gICAgcHJvcHM8e1xuICAgICAgY2xhc3NJZDogc3RyaW5nO1xuICAgICAgYXR0cklkOiBzdHJpbmc7XG4gICAgICBiYWNrUGF0aDogc3RyaW5nO1xuICAgICAgYWRkQXR0clBhdGg6IHN0cmluZztcbiAgICB9PigpXG4gICksXG4gIGdldFN0b3JhZ2VPcHRpb25zOiBjcmVhdGVBY3Rpb24oJ1tBZG1pbi9DbGFzc2VzXSBHZXQgU3RvcmFnZSBPcHRpb25zIExpc3QnKSxcbiAgZ2V0U3RvcmFnZU9wdGlvbnNTdWNjZXNzOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tBZG1pbi9DbGFzc2VzXSBHZXQgU3RvcmFnZSBPcHRpb25zIExpc3QgU3VjY2VzcycsXG4gICAgcHJvcHM8eyBzdG9yYWdlT3B0aW9uczogc3RyaW5nW10gfT4oKVxuICApLFxuICBnZXRTdG9yYWdlT3B0aW9uc0ZhaWx1cmU6IGNyZWF0ZUFjdGlvbignW0FkbWluL0NsYXNzZXNdIEdldCBTdG9yYWdlIE9wdGlvbnMgTGlzdCBGYWlsdXJlJywgcHJvcHM8eyBlcnJvcjogYW55IH0+KCkpXG59O1xuIl19
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tY2xhc3MuYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9zdG9yZS9hZG1pbi1jbGFzcy5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2xELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLGFBQWEsRUFBRSxZQUFZLENBQUMsc0NBQXNDLENBQUM7SUFFbkUsY0FBYyxFQUFFLFlBQVksQ0FBQyxrQ0FBa0MsRUFBRSxLQUFLLEVBQW1DLENBQUM7SUFDMUcsZUFBZSxFQUFFLFlBQVksQ0FBQyxtQ0FBbUMsQ0FBQztJQUVsRSxTQUFTLEVBQUUsWUFBWSxDQUFDLDRCQUE0QixFQUFFLEtBQUssRUFBbUMsQ0FBQztJQUMvRixnQkFBZ0IsRUFBRSxZQUFZLENBQUMsd0NBQXdDLEVBQUUsS0FBSyxFQUFxQixDQUFDO0lBQ3BHLGdCQUFnQixFQUFFLFlBQVksQ0FBQyx3Q0FBd0MsRUFBRSxLQUFLLEVBQWtCLENBQUM7SUFFakcsWUFBWSxFQUFFLFlBQVksQ0FBQywrQkFBK0IsRUFBRSxLQUFLLEVBQTBCLENBQUM7SUFDNUYsbUJBQW1CLEVBQUUsWUFBWSxDQUFDLDJDQUEyQyxDQUFDO0lBQzlFLG1CQUFtQixFQUFFLFlBQVksQ0FBQywyQ0FBMkMsRUFBRSxLQUFLLEVBQWtCLENBQUM7SUFFdkcsV0FBVyxFQUFFLFlBQVksQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLEVBQW9CLENBQUM7SUFDcEYsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLDBDQUEwQyxFQUFFLEtBQUssRUFBa0IsQ0FBQztJQUVyRyxhQUFhLEVBQUUsWUFBWSxDQUFDLGdDQUFnQyxDQUFDO0lBRTdELFdBQVcsRUFBRSxZQUFZLENBQUMsOEJBQThCLEVBQUUsS0FBSyxFQUFpQyxDQUFDO0lBQ2pHLGtCQUFrQixFQUFFLFlBQVksQ0FBQywwQ0FBMEMsRUFBRSxLQUFLLEVBQXFCLENBQUM7SUFDeEcsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLDBDQUEwQyxFQUFFLEtBQUssRUFBa0IsQ0FBQztJQUVyRyx1QkFBdUIsRUFBRSxZQUFZLENBQ25DLDRDQUE0QyxFQUM1QyxLQUFLLEVBQThFLENBQ3BGO0lBQ0QsOEJBQThCLEVBQUUsWUFBWSxDQUMxQyx3REFBd0QsRUFDeEQsS0FBSyxFQUE4RCxDQUNwRTtJQUNELDhCQUE4QixFQUFFLFlBQVksQ0FDMUMsd0RBQXdELEVBQ3hELEtBQUssRUFBa0IsQ0FDeEI7SUFFRCxlQUFlLEVBQUUsWUFBWSxDQUMzQiwwQ0FBMEMsRUFDMUMsS0FBSyxFQUF1QyxDQUM3QztJQUNELGlCQUFpQixFQUFFLFlBQVksQ0FBQyw0Q0FBNEMsQ0FBQztJQUU3RSxxQkFBcUIsRUFBRSxZQUFZLENBQ2pDLG1EQUFtRCxFQUNuRCxLQUFLLEVBQTRELENBQ2xFO0lBQ0QsNEJBQTRCLEVBQUUsWUFBWSxDQUN4QywrREFBK0QsRUFDL0QsS0FBSyxFQUFxQixDQUMzQjtJQUNELDRCQUE0QixFQUFFLFlBQVksQ0FDeEMsK0RBQStELEVBQy9ELEtBQUssRUFBa0IsQ0FDeEI7SUFDRCxJQUFJLEVBQUUsWUFBWSxDQUFDLHNCQUFzQixFQUFFLEtBQUssRUFBb0IsQ0FBQztJQUNyRSxTQUFTLEVBQUUsWUFBWSxDQUFDLG9CQUFvQixDQUFDO0lBQzdDLFVBQVUsRUFBRSxZQUFZLENBQUMscUJBQXFCLENBQUM7SUFDL0Msb0JBQW9CLEVBQUUsWUFBWSxDQUFDLHVDQUF1QyxFQUFFLEtBQUssRUFBZ0MsQ0FBQztJQUNsSCx3QkFBd0IsRUFBRSxZQUFZLENBQ3BDLDJDQUEyQyxFQUMzQyxLQUFLLEVBS0QsQ0FDTDtJQUNELGlCQUFpQixFQUFFLFlBQVksQ0FBQywwQ0FBMEMsQ0FBQztJQUMzRSx3QkFBd0IsRUFBRSxZQUFZLENBQ3BDLGtEQUFrRCxFQUNsRCxLQUFLLEVBQWdDLENBQ3RDO0lBQ0Qsd0JBQXdCLEVBQUUsWUFBWSxDQUFDLGtEQUFrRCxFQUFFLEtBQUssRUFBa0IsQ0FBQztDQUNwSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQWN0aW9uLCBwcm9wcyB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEF0dHJpYnV0ZSwgQXR0cmlidXRlRXh0ZW5kZWQsIENhdGVnb3J5LCBDbGFzcyB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5cbmV4cG9ydCBjb25zdCBBZG1pbkNsYXNzQWN0aW9ucyA9IHtcbiAgdXBkYXRlVG9vbGJveDogY3JlYXRlQWN0aW9uKCdbQWRtaW4vQ2xhc3Nlc10gVXBkYXRlIFRvb2xib3ggQ2xhc3MnKSxcblxuICBzYXZlSW50ZXJDbGFzczogY3JlYXRlQWN0aW9uKCdbQWRtaW4vQ2xhc3Nlc10gU2F2ZSBJbnRlciBDbGFzcycsIHByb3BzPHsgY2xhc3M6IENsYXNzOyByb3V0ZTogc3RyaW5nIH0+KCkpLFxuICByZXNldEludGVyQ2xhc3M6IGNyZWF0ZUFjdGlvbignW0FkbWluL0NsYXNzZXNdIFJlc2V0IEludGVyIENsYXNzJyksXG5cbiAgc2F2ZUNsYXNzOiBjcmVhdGVBY3Rpb24oJ1tBZG1pbi9DbGFzc2VzXSBTYXZlIENsYXNzJywgcHJvcHM8eyBjbGFzczogQ2xhc3M7IHJvdXRlOiBzdHJpbmcgfT4oKSksXG4gIHNhdmVDbGFzc1N1Y2Nlc3M6IGNyZWF0ZUFjdGlvbignW0FkbWluL0NsYXNzZXMgQXBpXSBTYXZlIENsYXNzIFN1Y2Nlc3MnLCBwcm9wczx7IHJvdXRlOiBzdHJpbmcgfT4oKSksXG4gIHNhdmVDbGFzc0ZhaWx1cmU6IGNyZWF0ZUFjdGlvbignW0FkbWluL0NsYXNzZXMgQXBpXSBTYXZlIENsYXNzIEZhaWx1cmUnLCBwcm9wczx7IGVycm9yOiBhbnkgfT4oKSksXG5cbiAgc2F2ZUNhdGVnb3J5OiBjcmVhdGVBY3Rpb24oJ1tBZG1pbi9DbGFzc2VzXSBTYXZlIENhdGVnb3J5JywgcHJvcHM8eyBjYXRlZ29yeTogQ2F0ZWdvcnkgfT4oKSksXG4gIHNhdmVDYXRlZ29yeVN1Y2Nlc3M6IGNyZWF0ZUFjdGlvbignW0FkbWluL0NsYXNzZXMgQXBpXSBTYXZlIENhdGVnb3J5IFN1Y2Nlc3MnKSxcbiAgc2F2ZUNhdGVnb3J5RmFpbHVyZTogY3JlYXRlQWN0aW9uKCdbQWRtaW4vQ2xhc3NlcyBBcGldIFNhdmUgQ2F0ZWdvcnkgRmFpbHVyZScsIHByb3BzPHsgZXJyb3I6IGFueSB9PigpKSxcblxuICBzZWxlY3RDbGFzczogY3JlYXRlQWN0aW9uKCdbQWRtaW4vQ2xhc3Nlc10gU2VsZWN0IENsYXNzJywgcHJvcHM8eyBjbGF6ejogQ2xhc3MgfT4oKSksXG4gIHNlbGVjdENsYXNzRmFpbHVyZTogY3JlYXRlQWN0aW9uKCdbQWRtaW4vQ2xhc3NlcyBBcGldIFNlbGVjdCBDbGFzcyBGYWlsdXJlJywgcHJvcHM8eyBlcnJvcjogYW55IH0+KCkpLFxuXG4gIHVuc2VsZWN0Q2xhc3M6IGNyZWF0ZUFjdGlvbignW0FkbWluL0NsYXNzZXNdIFVuc2VsZWN0IENsYXNzJyksXG5cbiAgZGVsZXRlQ2xhc3M6IGNyZWF0ZUFjdGlvbignW0FkbWluL0NsYXNzZXNdIERlbGV0ZSBDbGFzcycsIHByb3BzPHsgaWQ6IHN0cmluZzsgcm91dGU6IHN0cmluZyB9PigpKSxcbiAgZGVsZXRlQ2xhc3NTdWNjZXNzOiBjcmVhdGVBY3Rpb24oJ1tBZG1pbi9DbGFzc2VzIEFwaV0gRGVsZXRlIENsYXNzIFN1Y2Nlc3MnLCBwcm9wczx7IHJvdXRlOiBzdHJpbmcgfT4oKSksXG4gIGRlbGV0ZUNsYXNzRmFpbHVyZTogY3JlYXRlQWN0aW9uKCdbQWRtaW4vQ2xhc3NlcyBBcGldIERlbGV0ZSBDbGFzcyBGYWlsdXJlJywgcHJvcHM8eyBlcnJvcjogYW55IH0+KCkpLFxuXG4gIGRlbGV0ZUF0dHJpYnV0ZUZvckNsYXNzOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tBZG1pbi9DbGFzc2VzXSBEZWxldGUgQXR0cmlidXRlIGZvciBDbGFzcycsXG4gICAgcHJvcHM8eyBjbGFzc0lkOiBzdHJpbmc7IGF0dHJJZDogc3RyaW5nOyBiYWNrUGF0aDogc3RyaW5nOyBhZGRBdHRyUGF0aDogc3RyaW5nIH0+KClcbiAgKSxcbiAgZGVsZXRlQXR0cmlidXRlRm9yQ2xhc3NTdWNjZXNzOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tBZG1pbi9DbGFzc2VzIEFwaV0gRGVsZXRlIEF0dHJpYnV0ZSBmb3IgQ2xhc3MgU3VjY2VzcycsXG4gICAgcHJvcHM8eyBjbGFzc0lkOiBzdHJpbmc7IGJhY2tQYXRoOiBzdHJpbmc7IGFkZEF0dHJQYXRoOiBzdHJpbmcgfT4oKVxuICApLFxuICBkZWxldGVBdHRyaWJ1dGVGb3JDbGFzc0ZhaWx1cmU6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0FkbWluL0NsYXNzZXMgQXBpXSBEZWxldGUgQXR0cmlidXRlIGZvciBDbGFzcyBGYWlsdXJlJyxcbiAgICBwcm9wczx7IGVycm9yOiBhbnkgfT4oKVxuICApLFxuXG4gIHNlbGVjdEF0dHJpYnV0ZTogY3JlYXRlQWN0aW9uKFxuICAgICdbQWRtaW4vQ2xhc3Nlc10gU2VsZWN0IGN1cnJlbnQgQXR0cmlidXRlJyxcbiAgICBwcm9wczx7IGF0dHJFeHRlbmRlZDogQXR0cmlidXRlRXh0ZW5kZWQgfT4oKVxuICApLFxuICB1bnNlbGVjdEF0dHJpYnV0ZTogY3JlYXRlQWN0aW9uKCdbQWRtaW4vQ2xhc3Nlc10gVW5zZWxlY3QgY3VycmVudCBBdHRyaWJ1dGUnKSxcblxuICBzYXZlQXR0cmlidXRlRm9yQ2xhc3M6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0FkbWluL0NsYXNzZXNdIFNhdmUgQXR0cmlidXRlIGZvciBTZWxlY3RlZCBDbGFzcycsXG4gICAgcHJvcHM8eyBjbGFzc0lkOiBzdHJpbmc7IGF0dHJpYnV0ZTogQXR0cmlidXRlOyByb3V0ZTogc3RyaW5nIH0+KClcbiAgKSxcbiAgc2F2ZUF0dHJpYnV0ZUZvckNsYXNzU3VjY2VzczogY3JlYXRlQWN0aW9uKFxuICAgICdbQWRtaW4vQ2xhc3NlcyBBcGldIFNhdmUgQXR0cmlidXRlIGZvciBTZWxlY3RlZCBDbGFzcyBTdWNjZXNzJyxcbiAgICBwcm9wczx7IHJvdXRlOiBzdHJpbmcgfT4oKVxuICApLFxuICBzYXZlQXR0cmlidXRlRm9yQ2xhc3NGYWlsdXJlOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tBZG1pbi9DbGFzc2VzIEFwaV0gU2F2ZSBBdHRyaWJ1dGUgZm9yIFNlbGVjdGVkIENsYXNzIEZhaWx1cmUnLFxuICAgIHByb3BzPHsgZXJyb3I6IGFueSB9PigpXG4gICksXG4gIGJhY2s6IGNyZWF0ZUFjdGlvbignW0FkbWluL0NsYXNzZXNdIGJhY2snLCBwcm9wczx7IHBhdGg6IHN0cmluZyB9PigpKSxcbiAgb3Blbk1vZGFsOiBjcmVhdGVBY3Rpb24oJ1tDbGFzc10gT3BlbiBtb2RhbCcpLFxuICBjbG9zZU1vZGFsOiBjcmVhdGVBY3Rpb24oJ1tDbGFzc10gQ2xvc2UgbW9kYWwnKSxcbiAgY29uZmlybUNsYXNzRGVsZXRpb246IGNyZWF0ZUFjdGlvbignW0NsYXNzXSBPcGVuIG1vZGFsIGZvciBkZWxldGluZyBjbGFzcycsIHByb3BzPHsgaWQ6IHN0cmluZzsgcGF0aDogc3RyaW5nIH0+KCkpLFxuICBjb25maXJtQXR0cmlidXRlRGVsZXRpb246IGNyZWF0ZUFjdGlvbihcbiAgICAnW0NsYXNzXSBPcGVuIG1vZGFsIGZvciBhdHRyaWJ1dGUgZGVsZXRpb24nLFxuICAgIHByb3BzPHtcbiAgICAgIGNsYXNzSWQ6IHN0cmluZztcbiAgICAgIGF0dHJJZDogc3RyaW5nO1xuICAgICAgYmFja1BhdGg6IHN0cmluZztcbiAgICAgIGFkZEF0dHJQYXRoOiBzdHJpbmc7XG4gICAgfT4oKVxuICApLFxuICBnZXRTdG9yYWdlT3B0aW9uczogY3JlYXRlQWN0aW9uKCdbQWRtaW4vQ2xhc3Nlc10gR2V0IFN0b3JhZ2UgT3B0aW9ucyBMaXN0JyksXG4gIGdldFN0b3JhZ2VPcHRpb25zU3VjY2VzczogY3JlYXRlQWN0aW9uKFxuICAgICdbQWRtaW4vQ2xhc3Nlc10gR2V0IFN0b3JhZ2UgT3B0aW9ucyBMaXN0IFN1Y2Nlc3MnLFxuICAgIHByb3BzPHsgc3RvcmFnZU9wdGlvbnM6IHN0cmluZ1tdIH0+KClcbiAgKSxcbiAgZ2V0U3RvcmFnZU9wdGlvbnNGYWlsdXJlOiBjcmVhdGVBY3Rpb24oJ1tBZG1pbi9DbGFzc2VzXSBHZXQgU3RvcmFnZSBPcHRpb25zIExpc3QgRmFpbHVyZScsIHByb3BzPHsgZXJyb3I6IGFueSB9PigpKVxufTtcbiJdfQ==
@@ -4,7 +4,7 @@ export const classesFeatureKey = '@pry/admin/classes';
4
4
  export const initialClassState = {
5
5
  loading: false,
6
6
  openModal: false,
7
- storageOptions: []
7
+ storageOptions: ['ELASTIC']
8
8
  };
9
9
  export const classReducer = createReducer(initialClassState, on(AdminClassActions.selectClass, (state, action) => ({
10
10
  ...state,
@@ -44,4 +44,4 @@ export const classReducer = createReducer(initialClassState, on(AdminClassAction
44
44
  ...state,
45
45
  storageOptions: action.storageOptions
46
46
  })));
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tY2xhc3MucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9zdG9yZS9hZG1pbi1jbGFzcy5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWhELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLG9CQUFvQixDQUFDO0FBV3RELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFvQjtJQUNoRCxPQUFPLEVBQUUsS0FBSztJQUNkLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLGNBQWMsRUFBRSxFQUFFO0NBQ25CLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUN2QyxpQkFBaUIsRUFDakIsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEQsR0FBRyxLQUFLO0lBQ1IsYUFBYSxFQUFFLE1BQU0sQ0FBQyxLQUFLO0NBQzVCLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELEdBQUcsS0FBSztJQUNSLGFBQWEsRUFBRSxTQUFTO0NBQ3pCLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELEdBQUcsS0FBSztJQUNSLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxZQUFZO0NBQ3ZDLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDMUQsR0FBRyxLQUFLO0lBQ1IsaUJBQWlCLEVBQUUsU0FBUztDQUM3QixDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN2RCxHQUFHLEtBQUs7SUFDUixVQUFVLEVBQUUsTUFBTSxDQUFDLEtBQUs7Q0FDekIsQ0FBQyxDQUFDLEVBQ0gsRUFBRSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6RCxHQUFHLEtBQUs7SUFDUixVQUFVLEVBQUUsU0FBUztDQUN0QixDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLEdBQUcsS0FBSztJQUNSLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLGFBQWEsRUFBRSxTQUFTO0NBQ3pCLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDaEQsR0FBRyxLQUFLO0lBQ1IsVUFBVSxFQUFFLFNBQVM7Q0FDdEIsQ0FBQyxDQUFDLEVBQ0gsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxQyxHQUFHLEtBQUs7SUFDUixTQUFTLEVBQUUsSUFBSTtDQUNoQixDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLEdBQUcsS0FBSztJQUNSLFNBQVMsRUFBRSxLQUFLO0NBQ2pCLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4RCxHQUFHLEtBQUs7SUFDUixpQkFBaUIsRUFBRSxTQUFTO0NBQzdCLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDakUsR0FBRyxLQUFLO0lBQ1IsY0FBYyxFQUFFLE1BQU0sQ0FBQyxjQUFjO0NBQ3RDLENBQUMsQ0FBQyxDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZWR1Y2VyLCBvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEFzc29jaWF0aW9ucywgQXR0cmlidXRlRXh0ZW5kZWQsIENsYXNzfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc0FjdGlvbnMgfSBmcm9tICcuL2FkbWluLWNsYXNzLmFjdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgY2xhc3Nlc0ZlYXR1cmVLZXkgPSAnQHByeS9hZG1pbi9jbGFzc2VzJztcblxuZXhwb3J0IGludGVyZmFjZSBBZG1pbkNsYXNzU3RhdGUge1xuICBsb2FkaW5nOiBib29sZWFuO1xuICBzZWxlY3RlZENsYXNzPzogQ2xhc3M7XG4gIHNlbGVjdGVkQXR0cmlidXRlPzogQXR0cmlidXRlRXh0ZW5kZWQ7XG4gIGludGVyQ2xhc3M/OiBDbGFzcztcbiAgb3Blbk1vZGFsOiBib29sZWFuO1xuICBzdG9yYWdlT3B0aW9uczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsQ2xhc3NTdGF0ZTogQWRtaW5DbGFzc1N0YXRlID0ge1xuICBsb2FkaW5nOiBmYWxzZSxcbiAgb3Blbk1vZGFsOiBmYWxzZSxcbiAgc3RvcmFnZU9wdGlvbnM6IFtdXG59O1xuXG5leHBvcnQgY29uc3QgY2xhc3NSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcihcbiAgaW5pdGlhbENsYXNzU3RhdGUsXG4gIG9uKEFkbWluQ2xhc3NBY3Rpb25zLnNlbGVjdENsYXNzLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBzZWxlY3RlZENsYXNzOiBhY3Rpb24uY2xhenpcbiAgfSkpLFxuICBvbihBZG1pbkNsYXNzQWN0aW9ucy51bnNlbGVjdENsYXNzLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBzZWxlY3RlZENsYXNzOiB1bmRlZmluZWRcbiAgfSkpLFxuICBvbihBZG1pbkNsYXNzQWN0aW9ucy5zZWxlY3RBdHRyaWJ1dGUsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHNlbGVjdGVkQXR0cmlidXRlOiBhY3Rpb24uYXR0ckV4dGVuZGVkXG4gIH0pKSxcbiAgb24oQWRtaW5DbGFzc0FjdGlvbnMudW5zZWxlY3RBdHRyaWJ1dGUsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHNlbGVjdGVkQXR0cmlidXRlOiB1bmRlZmluZWRcbiAgfSkpLFxuICBvbihBZG1pbkNsYXNzQWN0aW9ucy5zYXZlSW50ZXJDbGFzcywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgaW50ZXJDbGFzczogYWN0aW9uLmNsYXNzXG4gIH0pKSxcbiAgb24oQWRtaW5DbGFzc0FjdGlvbnMuc2F2ZUNsYXNzU3VjY2VzcywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgaW50ZXJDbGFzczogdW5kZWZpbmVkXG4gIH0pKSxcbiAgb24oQWRtaW5DbGFzc0FjdGlvbnMuYmFjaywgKHN0YXRlKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGludGVyQ2xhc3M6IHVuZGVmaW5lZCxcbiAgICBzZWxlY3RlZENsYXNzOiB1bmRlZmluZWRcbiAgfSkpLFxuICBvbihBZG1pbkNsYXNzQWN0aW9ucy5yZXNldEludGVyQ2xhc3MsIChzdGF0ZSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBpbnRlckNsYXNzOiB1bmRlZmluZWRcbiAgfSkpLFxuICBvbihBZG1pbkNsYXNzQWN0aW9ucy5vcGVuTW9kYWwsIChzdGF0ZSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBvcGVuTW9kYWw6IHRydWVcbiAgfSkpLFxuICBvbihBZG1pbkNsYXNzQWN0aW9ucy5jbG9zZU1vZGFsLCAoc3RhdGUpID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgb3Blbk1vZGFsOiBmYWxzZVxuICB9KSksXG4gIG9uKEFkbWluQ2xhc3NBY3Rpb25zLmRlbGV0ZUF0dHJpYnV0ZUZvckNsYXNzLCAoc3RhdGUpID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgc2VsZWN0ZWRBdHRyaWJ1dGU6IHVuZGVmaW5lZFxuICB9KSksXG4gIG9uKEFkbWluQ2xhc3NBY3Rpb25zLmdldFN0b3JhZ2VPcHRpb25zU3VjY2VzcywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgc3RvcmFnZU9wdGlvbnM6IGFjdGlvbi5zdG9yYWdlT3B0aW9uc1xuICB9KSlcbik7XG4iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tY2xhc3MucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9zdG9yZS9hZG1pbi1jbGFzcy5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWhELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLG9CQUFvQixDQUFDO0FBV3RELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFvQjtJQUNoRCxPQUFPLEVBQUUsS0FBSztJQUNkLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLGNBQWMsRUFBRSxDQUFDLFNBQVMsQ0FBQztDQUM1QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FDdkMsaUJBQWlCLEVBQ2pCLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELEdBQUcsS0FBSztJQUNSLGFBQWEsRUFBRSxNQUFNLENBQUMsS0FBSztDQUM1QixDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0RCxHQUFHLEtBQUs7SUFDUixhQUFhLEVBQUUsU0FBUztDQUN6QixDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4RCxHQUFHLEtBQUs7SUFDUixpQkFBaUIsRUFBRSxNQUFNLENBQUMsWUFBWTtDQUN2QyxDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFELEdBQUcsS0FBSztJQUNSLGlCQUFpQixFQUFFLFNBQVM7Q0FDN0IsQ0FBQyxDQUFDLEVBQ0gsRUFBRSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdkQsR0FBRyxLQUFLO0lBQ1IsVUFBVSxFQUFFLE1BQU0sQ0FBQyxLQUFLO0NBQ3pCLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDekQsR0FBRyxLQUFLO0lBQ1IsVUFBVSxFQUFFLFNBQVM7Q0FDdEIsQ0FBQyxDQUFDLEVBQ0gsRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNyQyxHQUFHLEtBQUs7SUFDUixVQUFVLEVBQUUsU0FBUztJQUNyQixhQUFhLEVBQUUsU0FBUztDQUN6QixDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELEdBQUcsS0FBSztJQUNSLFVBQVUsRUFBRSxTQUFTO0NBQ3RCLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDMUMsR0FBRyxLQUFLO0lBQ1IsU0FBUyxFQUFFLElBQUk7Q0FDaEIsQ0FBQyxDQUFDLEVBQ0gsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzQyxHQUFHLEtBQUs7SUFDUixTQUFTLEVBQUUsS0FBSztDQUNqQixDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsaUJBQWlCLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDeEQsR0FBRyxLQUFLO0lBQ1IsaUJBQWlCLEVBQUUsU0FBUztDQUM3QixDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsaUJBQWlCLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLEdBQUcsS0FBSztJQUNSLGNBQWMsRUFBRSxNQUFNLENBQUMsY0FBYztDQUN0QyxDQUFDLENBQUMsQ0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUmVkdWNlciwgb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBBdHRyaWJ1dGVFeHRlbmRlZCwgQ2xhc3MgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc0FjdGlvbnMgfSBmcm9tICcuL2FkbWluLWNsYXNzLmFjdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgY2xhc3Nlc0ZlYXR1cmVLZXkgPSAnQHByeS9hZG1pbi9jbGFzc2VzJztcblxuZXhwb3J0IGludGVyZmFjZSBBZG1pbkNsYXNzU3RhdGUge1xuICBsb2FkaW5nOiBib29sZWFuO1xuICBzZWxlY3RlZENsYXNzPzogQ2xhc3M7XG4gIHNlbGVjdGVkQXR0cmlidXRlPzogQXR0cmlidXRlRXh0ZW5kZWQ7XG4gIGludGVyQ2xhc3M/OiBDbGFzcztcbiAgb3Blbk1vZGFsOiBib29sZWFuO1xuICBzdG9yYWdlT3B0aW9uczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsQ2xhc3NTdGF0ZTogQWRtaW5DbGFzc1N0YXRlID0ge1xuICBsb2FkaW5nOiBmYWxzZSxcbiAgb3Blbk1vZGFsOiBmYWxzZSxcbiAgc3RvcmFnZU9wdGlvbnM6IFsnRUxBU1RJQyddXG59O1xuXG5leHBvcnQgY29uc3QgY2xhc3NSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcihcbiAgaW5pdGlhbENsYXNzU3RhdGUsXG4gIG9uKEFkbWluQ2xhc3NBY3Rpb25zLnNlbGVjdENsYXNzLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBzZWxlY3RlZENsYXNzOiBhY3Rpb24uY2xhenpcbiAgfSkpLFxuICBvbihBZG1pbkNsYXNzQWN0aW9ucy51bnNlbGVjdENsYXNzLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBzZWxlY3RlZENsYXNzOiB1bmRlZmluZWRcbiAgfSkpLFxuICBvbihBZG1pbkNsYXNzQWN0aW9ucy5zZWxlY3RBdHRyaWJ1dGUsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHNlbGVjdGVkQXR0cmlidXRlOiBhY3Rpb24uYXR0ckV4dGVuZGVkXG4gIH0pKSxcbiAgb24oQWRtaW5DbGFzc0FjdGlvbnMudW5zZWxlY3RBdHRyaWJ1dGUsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHNlbGVjdGVkQXR0cmlidXRlOiB1bmRlZmluZWRcbiAgfSkpLFxuICBvbihBZG1pbkNsYXNzQWN0aW9ucy5zYXZlSW50ZXJDbGFzcywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgaW50ZXJDbGFzczogYWN0aW9uLmNsYXNzXG4gIH0pKSxcbiAgb24oQWRtaW5DbGFzc0FjdGlvbnMuc2F2ZUNsYXNzU3VjY2VzcywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgaW50ZXJDbGFzczogdW5kZWZpbmVkXG4gIH0pKSxcbiAgb24oQWRtaW5DbGFzc0FjdGlvbnMuYmFjaywgKHN0YXRlKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGludGVyQ2xhc3M6IHVuZGVmaW5lZCxcbiAgICBzZWxlY3RlZENsYXNzOiB1bmRlZmluZWRcbiAgfSkpLFxuICBvbihBZG1pbkNsYXNzQWN0aW9ucy5yZXNldEludGVyQ2xhc3MsIChzdGF0ZSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBpbnRlckNsYXNzOiB1bmRlZmluZWRcbiAgfSkpLFxuICBvbihBZG1pbkNsYXNzQWN0aW9ucy5vcGVuTW9kYWwsIChzdGF0ZSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBvcGVuTW9kYWw6IHRydWVcbiAgfSkpLFxuICBvbihBZG1pbkNsYXNzQWN0aW9ucy5jbG9zZU1vZGFsLCAoc3RhdGUpID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgb3Blbk1vZGFsOiBmYWxzZVxuICB9KSksXG4gIG9uKEFkbWluQ2xhc3NBY3Rpb25zLmRlbGV0ZUF0dHJpYnV0ZUZvckNsYXNzLCAoc3RhdGUpID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgc2VsZWN0ZWRBdHRyaWJ1dGU6IHVuZGVmaW5lZFxuICB9KSksXG4gIG9uKEFkbWluQ2xhc3NBY3Rpb25zLmdldFN0b3JhZ2VPcHRpb25zU3VjY2VzcywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgc3RvcmFnZU9wdGlvbnM6IGFjdGlvbi5zdG9yYWdlT3B0aW9uc1xuICB9KSlcbik7XG4iXX0=