@provoly/dashboard 0.14.5 → 0.14.7

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 (127) hide show
  1. package/admin/admin.module.d.ts +2 -1
  2. package/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.d.ts +5 -2
  3. package/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.d.ts +7 -3
  4. package/admin/i18n/en.translations.d.ts +15 -0
  5. package/admin/i18n/fr.translations.d.ts +15 -0
  6. package/components/metadata-editor/metadata-editor.component.d.ts +3 -1
  7. package/esm2022/admin/admin.module.mjs +8 -4
  8. package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +3 -3
  9. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +19 -14
  10. package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +1 -1
  11. package/esm2022/admin/components/admin-dataset/shared/admin-form-dataset/admin-form-dataset.component.mjs +3 -5
  12. package/esm2022/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.mjs +23 -12
  13. package/esm2022/admin/components/admin-user/admin-user-select/admin-user-select.component.mjs +1 -1
  14. package/esm2022/admin/i18n/en.translations.mjs +17 -2
  15. package/esm2022/admin/i18n/fr.translations.mjs +19 -4
  16. package/esm2022/components/metadata-editor/metadata-editor.component.mjs +30 -9
  17. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +4 -3
  18. package/esm2022/import/components/import.component.mjs +12 -5
  19. package/esm2022/import/i18n/en.translations.mjs +3 -2
  20. package/esm2022/import/i18n/fr.translations.mjs +3 -2
  21. package/esm2022/import/import.module.mjs +7 -4
  22. package/esm2022/import/store/import.actions.mjs +1 -1
  23. package/esm2022/import/store/import.effects.mjs +2 -2
  24. package/esm2022/import/store/import.service.mjs +3 -2
  25. package/esm2022/lib/core/components/translate-id/translate-id.pipe.mjs +9 -9
  26. package/esm2022/lib/core/i18n/en.translations.mjs +4 -2
  27. package/esm2022/lib/core/i18n/fr.translations.mjs +4 -2
  28. package/esm2022/lib/core/model/admin-api.model.mjs +66 -14
  29. package/esm2022/lib/core/model/widget-map-manifest.interface.mjs +1 -1
  30. package/esm2022/lib/core/store/field/field.interface.mjs +10 -1
  31. package/esm2022/lib/core/symbol/symbol.service.mjs +7 -3
  32. package/esm2022/lib/core/toolbox/toolbox-manifest.service.mjs +17 -1
  33. package/esm2022/lib/core/toolbox/toolbox-menu.service.mjs +2 -1
  34. package/esm2022/lib/dashboard/components/dashboard.component.mjs +5 -5
  35. package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +9 -3
  36. package/esm2022/lib/dashboard/public-api.mjs +2 -2
  37. package/esm2022/lib/dashboard/store/dashboard.actions.mjs +6 -2
  38. package/esm2022/lib/dashboard/store/dashboard.effects.mjs +20 -13
  39. package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +11 -2
  40. package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +4 -2
  41. package/esm2022/lib/dashboard/store/manifest.service.mjs +11 -1
  42. package/esm2022/lib/dashboard/store/wms.service.mjs +54 -0
  43. package/esm2022/pipeline/components/pipeline-list/pipeline-list.component.mjs +25 -13
  44. package/esm2022/pipeline/pipeline.module.mjs +8 -4
  45. package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +19 -3
  46. package/esm2022/presentation/presentation.module.mjs +8 -4
  47. package/esm2022/presentation/style/css.component.mjs +2 -2
  48. package/esm2022/supervision/store/supervision.reducer.mjs +2 -7
  49. package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +35 -3
  50. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +99 -39
  51. package/esm2022/widgets/widget-map/i18n/en.translations.mjs +3 -2
  52. package/esm2022/widgets/widget-map/i18n/fr.translations.mjs +3 -2
  53. package/esm2022/widgets/widget-map/pipe/widget-map-legend-url.pipe.mjs +3 -4
  54. package/esm2022/widgets/widget-map/public-api.mjs +1 -2
  55. package/esm2022/widgets/widget-map/utils/widget-map.utils.mjs +14 -8
  56. package/esm2022/widgets/widget-map/utils/xml-utils.class.mjs +20 -1
  57. package/fesm2022/provoly-dashboard-admin.mjs +81 -33
  58. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  59. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +29 -8
  60. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
  61. package/fesm2022/provoly-dashboard-dataset.mjs +3 -2
  62. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  63. package/fesm2022/provoly-dashboard-import.mjs +23 -10
  64. package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
  65. package/fesm2022/provoly-dashboard-pipeline.mjs +27 -11
  66. package/fesm2022/provoly-dashboard-pipeline.mjs.map +1 -1
  67. package/fesm2022/provoly-dashboard-presentation.mjs +26 -7
  68. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  69. package/fesm2022/provoly-dashboard-supervision.mjs +1 -6
  70. package/fesm2022/provoly-dashboard-supervision.mjs.map +1 -1
  71. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +380 -323
  72. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  73. package/fesm2022/provoly-dashboard.mjs +266 -133
  74. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  75. package/import/components/import.component.d.ts +1 -0
  76. package/import/i18n/en.translations.d.ts +1 -0
  77. package/import/i18n/fr.translations.d.ts +1 -0
  78. package/import/import.module.d.ts +2 -1
  79. package/import/store/import.actions.d.ts +2 -0
  80. package/import/store/import.service.d.ts +1 -1
  81. package/lib/core/components/translate-id/translate-id.pipe.d.ts +1 -1
  82. package/lib/core/i18n/en.translations.d.ts +2 -0
  83. package/lib/core/i18n/fr.translations.d.ts +2 -0
  84. package/lib/core/model/admin-api.model.d.ts +1 -0
  85. package/lib/core/model/widget-map-manifest.interface.d.ts +12 -1
  86. package/lib/core/store/field/field.interface.d.ts +1 -0
  87. package/lib/core/symbol/symbol.service.d.ts +1 -1
  88. package/lib/dashboard/components/dashboard.component.d.ts +1 -1
  89. package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +3 -1
  90. package/lib/dashboard/public-api.d.ts +1 -1
  91. package/lib/dashboard/store/dashboard.actions.d.ts +31 -0
  92. package/lib/dashboard/store/dashboard.effects.d.ts +9 -3
  93. package/lib/dashboard/store/dashboard.reducers.d.ts +4 -0
  94. package/lib/dashboard/store/dashboard.selectors.d.ts +5 -0
  95. package/lib/dashboard/store/manifest.service.d.ts +2 -0
  96. package/{widgets/widget-map/component → lib/dashboard/store}/wms.service.d.ts +4 -4
  97. package/package.json +30 -30
  98. package/pipeline/components/pipeline-list/pipeline-list.component.d.ts +1 -0
  99. package/pipeline/pipeline.module.d.ts +2 -1
  100. package/presentation/components/add-edit-presentation/add-edit-presentation.component.d.ts +3 -0
  101. package/presentation/presentation.module.d.ts +2 -1
  102. package/presentation/style/_o-pry-new-presentation.scss +18 -5
  103. package/schematics/migration.json +5 -0
  104. package/schematics/ng-update/utils/replaceStrings.function.d.ts +7 -0
  105. package/schematics/ng-update/utils/replaceStrings.function.js +15 -0
  106. package/schematics/ng-update/utils/replaceStrings.function.js.map +1 -0
  107. package/schematics/ng-update/version-0-13/index.spec.js +11 -0
  108. package/schematics/ng-update/version-0-13/index.spec.js.map +1 -1
  109. package/schematics/ng-update/version-0-14/index.d.ts +2 -0
  110. package/schematics/ng-update/version-0-14/index.js +49 -0
  111. package/schematics/ng-update/version-0-14/index.js.map +1 -0
  112. package/schematics/ng-update/version-0-14/index.spec.d.ts +1 -0
  113. package/schematics/ng-update/version-0-14/index.spec.js +51 -0
  114. package/schematics/ng-update/version-0-14/index.spec.js.map +1 -0
  115. package/styles/components/_m-context-menu.scss +4 -0
  116. package/styles/components/_o-pry-admin-classes-customize.scss +48 -0
  117. package/widgets/widget-map/component/widget-map-layer.service.d.ts +6 -1
  118. package/widgets/widget-map/component/widget-map.component.d.ts +14 -9
  119. package/widgets/widget-map/i18n/en.translations.d.ts +1 -0
  120. package/widgets/widget-map/i18n/fr.translations.d.ts +1 -0
  121. package/widgets/widget-map/pipe/widget-map-legend-url.pipe.d.ts +4 -3
  122. package/widgets/widget-map/public-api.d.ts +0 -1
  123. package/widgets/widget-map/utils/widget-map.utils.d.ts +2 -5
  124. package/widgets/widget-map/utils/xml-utils.class.d.ts +1 -0
  125. package/esm2022/lib/dashboard/store/geocoding.service.mjs +0 -44
  126. package/esm2022/widgets/widget-map/component/wms.service.mjs +0 -67
  127. package/lib/dashboard/store/geocoding.service.d.ts +0 -56
@@ -23,11 +23,15 @@ export class PryMetadataEditorComponent extends SubscriptionnerDirective {
23
23
  }
24
24
  this._metadata$.next(metadata);
25
25
  }
26
+ set initialMetadataSelection(metadataName) {
27
+ this._initialMetadataSelection$.next(metadataName);
28
+ }
26
29
  constructor(store, formBuilder) {
27
30
  super();
28
31
  this.store = store;
29
32
  this.formBuilder = formBuilder;
30
33
  this._metadata$ = new BehaviorSubject([]);
34
+ this._initialMetadataSelection$ = new BehaviorSubject('');
31
35
  this.isSubmitted = false;
32
36
  this.targetId = '';
33
37
  this.editable = false;
@@ -43,12 +47,27 @@ export class PryMetadataEditorComponent extends SubscriptionnerDirective {
43
47
  let datasetMetadataIds = metadata?.map((u) => this.type === 'meta' ? u.metadataDef.id : u.userProfile);
44
48
  return metaDefs.filter((meta) => !datasetMetadataIds?.includes(meta.id));
45
49
  }));
46
- this.subscriptions.add(this.availableMetadata$.subscribe((meta) => {
47
- this.form.patchValue({
48
- metadata: meta[0]
49
- });
50
- this.onMetaChange(meta[0]);
51
- this.form.patchValue({ value: '' });
50
+ this.subscriptions.add(combineLatest([
51
+ this.metadataDefs$,
52
+ this.availableMetadata$,
53
+ this._metadata$,
54
+ this._initialMetadataSelection$
55
+ ]).subscribe(([allMeta, availableMeta, inputMeta, initiallySelectedMeta]) => {
56
+ let initiallySelectedMetaAvailable = availableMeta.find((metadata) => metadata.name === initiallySelectedMeta);
57
+ if (!!initiallySelectedMetaAvailable) {
58
+ this.form.patchValue({
59
+ metadata: initiallySelectedMetaAvailable ?? availableMeta[0]
60
+ });
61
+ this.onMetaChange(initiallySelectedMetaAvailable ?? availableMeta[0]);
62
+ this.form.patchValue({ value: '' });
63
+ }
64
+ else {
65
+ this.store.dispatch(MetadataActions.isEditable({ editable: true }));
66
+ this.form.patchValue({
67
+ metadata: allMeta.find((metadata) => metadata.name === initiallySelectedMeta),
68
+ value: inputMeta.find((meta) => this.metaDefinition(meta).name === initiallySelectedMeta)?.value
69
+ });
70
+ }
52
71
  }));
53
72
  }
54
73
  onMetaChange(metadata) {
@@ -92,11 +111,11 @@ export class PryMetadataEditorComponent extends SubscriptionnerDirective {
92
111
  }
93
112
  }
94
113
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryMetadataEditorComponent, deps: [{ token: i1.Store }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
95
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: { targetId: "targetId", editable: "editable", metadata: "metadata" }, outputs: { addMeta: "addMeta", removeMeta: "removeMeta" }, usesInheritance: true, ngImport: i0, template: "<div *ngFor=\"let metadata of (_metadata$ | async) ?? []\">\n <div class=\"o-tabs__panel__content__actions\">\n <div class=\"o-tabs__panel__content__actions__text\">\n <span class=\"o-tabs__panel__content__actions__text__label\">{{ metaDefinition(metadata).name }} :</span>\n <span class=\"o-tabs__panel__content__actions__text__value\">{{ metadata.value }}</span>\n </div>\n\n <div class=\"o-tabs__panel__content__actions__buttons\">\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.edit' | i18n }} {{ metaDefinition(metadata).name }}</span>\n <pry-icon\n class=\"edit-icon\"\n iconSvg=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"editMetadata(metadata)\"\n ></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.delete' | i18n }} {{ metaDefinition(metadata).name }}</span>\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadata(metadata)\"\n ></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <ng-container *ngIf=\"form.value.metadata\">\n <form class=\"o-form -border-top\" [formGroup]=\"form\" (ngSubmit)=\"addDatasetMetadata()\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.action.editProfil' | i18n }}</legend>\n\n <div class=\"m-form-label-field\">\n <label for=\"metadata\" id=\"metadata-label\" class=\"a-label\">Data</label>\n <pry-select\n id=\"metadata\"\n class=\"a-pry-select\"\n formControlName=\"metadata\"\n [items]=\"availableMetadata$ | async\"\n (ngModelChange)=\"onMetaChange($event)\"\n [isForm]=\"true\"\n [itemsAsOption]=\"true\"\n bindLabel=\"name\"\n [readonly]=\"editable\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('metadata')?.invalid ? 'metadata-label metadata-error' : 'metadata-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('metadata')?.invalid\"\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && form.get('metadata')?.invalid\"\n id=\"metadata-error\"\n for=\"metadata\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'DATE'; else inputList\">\n <div class=\"m-form-label-field\">\n <label id=\"form_date-label\" for=\"form_date\" class=\"a-label\">\n {{ '@pry.action.selectDate' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"form_date\"\n type=\"date\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'form-date-label form-date-error' : 'form-date-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"form_date-error\"\n for=\"form_date\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n </ng-container>\n\n <ng-template #inputList>\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'LIST'; else inputText\">\n <div class=\"m-form-label-field\">\n <label id=\"list-label\" class=\"a-label\" for=\"list\">{{ '@pry.action.choiceInList' | i18n }}</label>\n <pry-select\n id=\"list\"\n class=\"a-pry-select\"\n formControlName=\"value\"\n [items]=\"form.value['metadata']['allowedValues']\"\n [isForm]=\"true\"\n aria-labelledby=\"list-label\"\n ></pry-select>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #inputText>\n <div class=\"m-form-label-field\">\n <label id=\"text-label\" class=\"a-label\" for=\"text\">\n {{ '@pry.action.text' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"text\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'text-label text-error' : 'text-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"test-error\"\n for=\"text\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"form.get('value')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <ng-container *ngIf=\"form.get('value')?.hasError('pattern')\">\n <span *ngIf=\"form.value['metadata']['type'] === 'DOUBLE'\">\n {{ '@pry.admin.environment.formatDouble' | i18n }}\n </span>\n <span *ngIf=\"form.value['metadata']['type'] === 'INTEGER'\">\n {{ '@pry.admin.environment.formatInt' | i18n }}\n </span>\n </ng-container>\n </label>\n </div>\n </ng-template>\n </fieldset>\n\n <div class=\"m-btn-group -end\">\n <button type=\"submit\" class=\"a-btn a-btn--primary\">\n {{ (editable ? '@pry.admin.userInfo.editMetadata' : '@pry.admin.userInfo.addMetadata') | i18n }}\n </button>\n </div>\n </form>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.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: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
114
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: { targetId: "targetId", editable: "editable", metadata: "metadata", initialMetadataSelection: "initialMetadataSelection" }, outputs: { addMeta: "addMeta", removeMeta: "removeMeta" }, usesInheritance: true, ngImport: i0, template: "<div *ngFor=\"let metadata of (_metadata$ | async) ?? []\">\n <div class=\"o-tabs__panel__content__actions\">\n <div class=\"o-tabs__panel__content__actions__text\">\n <span class=\"o-tabs__panel__content__actions__text__label\">{{ metaDefinition(metadata).name }} :</span>\n <span class=\"o-tabs__panel__content__actions__text__value\">{{ metadata.value }}</span>\n </div>\n\n <div class=\"o-tabs__panel__content__actions__buttons\">\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.edit' | i18n }} {{ metaDefinition(metadata).name }}</span>\n <pry-icon\n class=\"edit-icon\"\n iconSvg=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"editMetadata(metadata)\"\n ></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.delete' | i18n }} {{ metaDefinition(metadata).name }}</span>\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadata(metadata)\"\n ></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <ng-container *ngIf=\"form.value.metadata\">\n <form class=\"o-form -border-top\" [formGroup]=\"form\" (ngSubmit)=\"addDatasetMetadata()\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.action.editProfil' | i18n }}</legend>\n\n <div class=\"m-form-label-field\">\n <label for=\"metadata\" id=\"metadata-label\" class=\"a-label\">Data</label>\n <pry-select\n id=\"metadata\"\n class=\"a-pry-select\"\n formControlName=\"metadata\"\n [items]=\"availableMetadata$ | async\"\n (ngModelChange)=\"onMetaChange($event)\"\n [isForm]=\"true\"\n [itemsAsOption]=\"true\"\n bindLabel=\"name\"\n [readonly]=\"editable\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('metadata')?.invalid ? 'metadata-label metadata-error' : 'metadata-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('metadata')?.invalid\"\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && form.get('metadata')?.invalid\"\n id=\"metadata-error\"\n for=\"metadata\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'DATE'; else inputList\">\n <div class=\"m-form-label-field\">\n <label id=\"form_date-label\" for=\"form_date\" class=\"a-label\">\n {{ '@pry.action.selectDate' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"form_date\"\n type=\"date\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'form-date-label form-date-error' : 'form-date-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"form_date-error\"\n for=\"form_date\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n </ng-container>\n\n <ng-template #inputList>\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'LIST'; else inputText\">\n <div class=\"m-form-label-field\">\n <label id=\"list-label\" class=\"a-label\" for=\"list\">{{ '@pry.action.choiceInList' | i18n }}</label>\n <pry-select\n id=\"list\"\n class=\"a-pry-select\"\n formControlName=\"value\"\n [items]=\"form.value['metadata']['allowedValues']\"\n [isForm]=\"true\"\n aria-labelledby=\"list-label\"\n ></pry-select>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #inputText>\n <div class=\"m-form-label-field\">\n <label id=\"text-label\" class=\"a-label\" for=\"text\">\n {{ '@pry.action.text' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"text\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'text-label text-error' : 'text-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"test-error\"\n for=\"text\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"form.get('value')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <ng-container *ngIf=\"form.get('value')?.hasError('pattern')\">\n <span *ngIf=\"form.value['metadata']['type'] === 'DOUBLE'\">\n {{ '@pry.admin.environment.formatDouble' | i18n }}\n </span>\n <span *ngIf=\"form.value['metadata']['type'] === 'INTEGER'\">\n {{ '@pry.admin.environment.formatInt' | i18n }}\n </span>\n </ng-container>\n </label>\n </div>\n </ng-template>\n </fieldset>\n\n <div class=\"m-btn-group -end\">\n <button type=\"submit\" class=\"a-btn a-btn--primary\">\n {{ (editable ? '@pry.action.editMetadata' : '@pry.action.addMetadata') | i18n }}\n </button>\n </div>\n </form>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.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: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
96
115
  }
97
116
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryMetadataEditorComponent, decorators: [{
98
117
  type: Component,
99
- args: [{ selector: 'pry-metadata-editor', template: "<div *ngFor=\"let metadata of (_metadata$ | async) ?? []\">\n <div class=\"o-tabs__panel__content__actions\">\n <div class=\"o-tabs__panel__content__actions__text\">\n <span class=\"o-tabs__panel__content__actions__text__label\">{{ metaDefinition(metadata).name }} :</span>\n <span class=\"o-tabs__panel__content__actions__text__value\">{{ metadata.value }}</span>\n </div>\n\n <div class=\"o-tabs__panel__content__actions__buttons\">\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.edit' | i18n }} {{ metaDefinition(metadata).name }}</span>\n <pry-icon\n class=\"edit-icon\"\n iconSvg=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"editMetadata(metadata)\"\n ></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.delete' | i18n }} {{ metaDefinition(metadata).name }}</span>\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadata(metadata)\"\n ></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <ng-container *ngIf=\"form.value.metadata\">\n <form class=\"o-form -border-top\" [formGroup]=\"form\" (ngSubmit)=\"addDatasetMetadata()\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.action.editProfil' | i18n }}</legend>\n\n <div class=\"m-form-label-field\">\n <label for=\"metadata\" id=\"metadata-label\" class=\"a-label\">Data</label>\n <pry-select\n id=\"metadata\"\n class=\"a-pry-select\"\n formControlName=\"metadata\"\n [items]=\"availableMetadata$ | async\"\n (ngModelChange)=\"onMetaChange($event)\"\n [isForm]=\"true\"\n [itemsAsOption]=\"true\"\n bindLabel=\"name\"\n [readonly]=\"editable\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('metadata')?.invalid ? 'metadata-label metadata-error' : 'metadata-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('metadata')?.invalid\"\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && form.get('metadata')?.invalid\"\n id=\"metadata-error\"\n for=\"metadata\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'DATE'; else inputList\">\n <div class=\"m-form-label-field\">\n <label id=\"form_date-label\" for=\"form_date\" class=\"a-label\">\n {{ '@pry.action.selectDate' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"form_date\"\n type=\"date\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'form-date-label form-date-error' : 'form-date-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"form_date-error\"\n for=\"form_date\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n </ng-container>\n\n <ng-template #inputList>\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'LIST'; else inputText\">\n <div class=\"m-form-label-field\">\n <label id=\"list-label\" class=\"a-label\" for=\"list\">{{ '@pry.action.choiceInList' | i18n }}</label>\n <pry-select\n id=\"list\"\n class=\"a-pry-select\"\n formControlName=\"value\"\n [items]=\"form.value['metadata']['allowedValues']\"\n [isForm]=\"true\"\n aria-labelledby=\"list-label\"\n ></pry-select>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #inputText>\n <div class=\"m-form-label-field\">\n <label id=\"text-label\" class=\"a-label\" for=\"text\">\n {{ '@pry.action.text' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"text\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'text-label text-error' : 'text-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"test-error\"\n for=\"text\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"form.get('value')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <ng-container *ngIf=\"form.get('value')?.hasError('pattern')\">\n <span *ngIf=\"form.value['metadata']['type'] === 'DOUBLE'\">\n {{ '@pry.admin.environment.formatDouble' | i18n }}\n </span>\n <span *ngIf=\"form.value['metadata']['type'] === 'INTEGER'\">\n {{ '@pry.admin.environment.formatInt' | i18n }}\n </span>\n </ng-container>\n </label>\n </div>\n </ng-template>\n </fieldset>\n\n <div class=\"m-btn-group -end\">\n <button type=\"submit\" class=\"a-btn a-btn--primary\">\n {{ (editable ? '@pry.admin.userInfo.editMetadata' : '@pry.admin.userInfo.addMetadata') | i18n }}\n </button>\n </div>\n </form>\n </ng-container>\n</ng-container>\n" }]
118
+ args: [{ selector: 'pry-metadata-editor', template: "<div *ngFor=\"let metadata of (_metadata$ | async) ?? []\">\n <div class=\"o-tabs__panel__content__actions\">\n <div class=\"o-tabs__panel__content__actions__text\">\n <span class=\"o-tabs__panel__content__actions__text__label\">{{ metaDefinition(metadata).name }} :</span>\n <span class=\"o-tabs__panel__content__actions__text__value\">{{ metadata.value }}</span>\n </div>\n\n <div class=\"o-tabs__panel__content__actions__buttons\">\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.edit' | i18n }} {{ metaDefinition(metadata).name }}</span>\n <pry-icon\n class=\"edit-icon\"\n iconSvg=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"editMetadata(metadata)\"\n ></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.delete' | i18n }} {{ metaDefinition(metadata).name }}</span>\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadata(metadata)\"\n ></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <ng-container *ngIf=\"form.value.metadata\">\n <form class=\"o-form -border-top\" [formGroup]=\"form\" (ngSubmit)=\"addDatasetMetadata()\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.action.editProfil' | i18n }}</legend>\n\n <div class=\"m-form-label-field\">\n <label for=\"metadata\" id=\"metadata-label\" class=\"a-label\">Data</label>\n <pry-select\n id=\"metadata\"\n class=\"a-pry-select\"\n formControlName=\"metadata\"\n [items]=\"availableMetadata$ | async\"\n (ngModelChange)=\"onMetaChange($event)\"\n [isForm]=\"true\"\n [itemsAsOption]=\"true\"\n bindLabel=\"name\"\n [readonly]=\"editable\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('metadata')?.invalid ? 'metadata-label metadata-error' : 'metadata-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('metadata')?.invalid\"\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && form.get('metadata')?.invalid\"\n id=\"metadata-error\"\n for=\"metadata\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'DATE'; else inputList\">\n <div class=\"m-form-label-field\">\n <label id=\"form_date-label\" for=\"form_date\" class=\"a-label\">\n {{ '@pry.action.selectDate' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"form_date\"\n type=\"date\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'form-date-label form-date-error' : 'form-date-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"form_date-error\"\n for=\"form_date\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n </ng-container>\n\n <ng-template #inputList>\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'LIST'; else inputText\">\n <div class=\"m-form-label-field\">\n <label id=\"list-label\" class=\"a-label\" for=\"list\">{{ '@pry.action.choiceInList' | i18n }}</label>\n <pry-select\n id=\"list\"\n class=\"a-pry-select\"\n formControlName=\"value\"\n [items]=\"form.value['metadata']['allowedValues']\"\n [isForm]=\"true\"\n aria-labelledby=\"list-label\"\n ></pry-select>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #inputText>\n <div class=\"m-form-label-field\">\n <label id=\"text-label\" class=\"a-label\" for=\"text\">\n {{ '@pry.action.text' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"text\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'text-label text-error' : 'text-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"test-error\"\n for=\"text\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"form.get('value')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <ng-container *ngIf=\"form.get('value')?.hasError('pattern')\">\n <span *ngIf=\"form.value['metadata']['type'] === 'DOUBLE'\">\n {{ '@pry.admin.environment.formatDouble' | i18n }}\n </span>\n <span *ngIf=\"form.value['metadata']['type'] === 'INTEGER'\">\n {{ '@pry.admin.environment.formatInt' | i18n }}\n </span>\n </ng-container>\n </label>\n </div>\n </ng-template>\n </fieldset>\n\n <div class=\"m-btn-group -end\">\n <button type=\"submit\" class=\"a-btn a-btn--primary\">\n {{ (editable ? '@pry.action.editMetadata' : '@pry.action.addMetadata') | i18n }}\n </button>\n </div>\n </form>\n </ng-container>\n</ng-container>\n" }]
100
119
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.FormBuilder }]; }, propDecorators: { targetId: [{
101
120
  type: Input
102
121
  }], editable: [{
@@ -107,5 +126,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
107
126
  type: Output
108
127
  }], metadata: [{
109
128
  type: Input
129
+ }], initialMetadataSelection: [{
130
+ type: Input
110
131
  }] } });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvbWV0YWRhdGEtZWRpdG9yL21ldGFkYXRhLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9jb21wb25lbnRzL21ldGFkYXRhLWVkaXRvci9tZXRhZGF0YS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBMEMsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7QUFJOUQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsZUFBZSxDQUFDO0FBQ3RELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLHlCQUF5QixDQUFDO0FBSy9ELE1BQU0sT0FBTywwQkFBMkIsU0FBUSx3QkFBd0I7SUFZdEUsSUFBYSxRQUFRLENBQUMsUUFBMEM7UUFDOUQsYUFBYTtRQUNiLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEtBQUssU0FBUyxDQUFDO1FBQ3BGLElBQUksYUFBYSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1NBQ3BCO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztTQUNwQjtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxZQUFvQixLQUFZLEVBQVUsV0FBd0I7UUFDaEUsS0FBSyxFQUFFLENBQUM7UUFEVSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUF0QmxFLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBbUMsRUFBRSxDQUFDLENBQUM7UUFFdkUsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDWCxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2QsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUcxQixTQUFJLEdBQW9CLE1BQU0sQ0FBQztRQUNyQixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFDNUMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO1FBZ0J2RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ2pDLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO1NBQy9FLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNqRixHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQzNCLElBQUksa0JBQWtCLEdBQUcsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQzNDLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBRSxDQUFtQixDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFFLENBQWtCLENBQUMsV0FBVyxDQUM3RixDQUFDO1lBQ0YsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRSxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3BCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDbkIsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDbEIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQW1CO1FBQzlCLElBQUksUUFBUSxFQUFFO1lBQ1osSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzlHO2lCQUFNLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM3RztpQkFBTTtnQkFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQzthQUNsRTtTQUNGO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxlQUE2QztRQUN4RCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwRSxJQUFJLEtBQUssR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDO1FBQ2xDLElBQUksa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUU5RCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNuQixRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxjQUFjLENBQUMsUUFBc0M7UUFDbkQsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUUsUUFBeUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFFLFFBQTBCLENBQUMsV0FBVyxDQUFDO0lBQ2pILENBQUM7SUFFRCxjQUFjLENBQUMsUUFBc0M7UUFDbkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDaEIsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUNqQixVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUM3QyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO2FBQ2hDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs4R0E5RlUsMEJBQTBCO2tHQUExQiwwQkFBMEIsMk5DaEJ2Qyxva05BNkpBOzsyRkQ3SWEsMEJBQTBCO2tCQUp0QyxTQUFTOytCQUNFLHFCQUFxQjtzSEFPdEIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlJLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFFTSxRQUFRO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IElNZXRhZGF0YSwgTWV0YWRhdGFVc2VyLCBNZXRhZGF0YVZhbHVlLCBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1ldGFkYXRhQWN0aW9ucyB9IGZyb20gJy4vc3RvcmUvbWV0YWRhdGEuYWN0aW9uJztcbmltcG9ydCB7IE1ldGFkYXRhU2VsZWN0b3JzIH0gZnJvbSAnLi9zdG9yZS9tZXRhZGF0YS5zZWxlY3Rvcic7XG5cbmV4cG9ydCB0eXBlIE1ldGFFdmVudFR5cGUgPSB7IGlkOiBzdHJpbmc7IG1ldGFkYXRhSWQ6IHN0cmluZzsgdmFsdWU/OiBzdHJpbmcgfTtcblxuZXhwb3J0IGNvbnN0IElOVEVHRVJfUkVHRVhQX1BBVFRFUk4gPSAnXlsrLV0/WzAtOV0qJCc7XG5leHBvcnQgY29uc3QgRE9VQkxFX1JFR0VYUF9QQVRURVJOID0gJ1srLV0/KFswLTldKlsuXSk/WzAtOV0rJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1tZXRhZGF0YS1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJ21ldGFkYXRhLWVkaXRvci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5TWV0YWRhdGFFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUge1xuICBfbWV0YWRhdGEkID0gbmV3IEJlaGF2aW9yU3ViamVjdDwoTWV0YWRhdGFWYWx1ZSB8IE1ldGFkYXRhVXNlcilbXT4oW10pO1xuICBmb3JtOiBGb3JtR3JvdXA7XG4gIGlzU3VibWl0dGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRhcmdldElkID0gJyc7XG4gIEBJbnB1dCgpIGVkaXRhYmxlID0gZmFsc2U7XG4gIG1ldGFkYXRhRGVmcyQ6IE9ic2VydmFibGU8SU1ldGFkYXRhW10+O1xuICBhdmFpbGFibGVNZXRhZGF0YSQ6IE9ic2VydmFibGU8SU1ldGFkYXRhW10+O1xuICB0eXBlOiAnbWV0YScgfCAndXNlcicgPSAnbWV0YSc7XG4gIEBPdXRwdXQoKSBhZGRNZXRhID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhRXZlbnRUeXBlPigpO1xuICBAT3V0cHV0KCkgcmVtb3ZlTWV0YSA9IG5ldyBFdmVudEVtaXR0ZXI8TWV0YUV2ZW50VHlwZT4oKTtcblxuICBASW5wdXQoKSBzZXQgbWV0YWRhdGEobWV0YWRhdGE6IE1ldGFkYXRhVmFsdWVbXSB8IE1ldGFkYXRhVXNlcltdKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGlzVXNlclByb2ZpbGUgPSBtZXRhZGF0YS5sZW5ndGggPj0gMSAmJiBtZXRhZGF0YVswXS51c2VyUHJvZmlsZSAhPT0gdW5kZWZpbmVkO1xuICAgIGlmIChpc1VzZXJQcm9maWxlKSB7XG4gICAgICB0aGlzLnR5cGUgPSAndXNlcic7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudHlwZSA9ICdtZXRhJztcbiAgICB9XG4gICAgdGhpcy5fbWV0YWRhdGEkLm5leHQobWV0YWRhdGEpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUsIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgbWV0YWRhdGE6IFt7fSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHZhbHVlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oSU5URUdFUl9SRUdFWFBfUEFUVEVSTildXVxuICAgIH0pO1xuXG4gICAgdGhpcy5tZXRhZGF0YURlZnMkID0gdGhpcy5zdG9yZS5zZWxlY3QoTWV0YWRhdGFTZWxlY3RvcnMubWV0YWRhdGEpO1xuICAgIHRoaXMuYXZhaWxhYmxlTWV0YWRhdGEkID0gY29tYmluZUxhdGVzdChbdGhpcy5fbWV0YWRhdGEkLCB0aGlzLm1ldGFkYXRhRGVmcyRdKS5waXBlKFxuICAgICAgbWFwKChbbWV0YWRhdGEsIG1ldGFEZWZzXSkgPT4ge1xuICAgICAgICBsZXQgZGF0YXNldE1ldGFkYXRhSWRzID0gbWV0YWRhdGE/Lm1hcCgodSkgPT5cbiAgICAgICAgICB0aGlzLnR5cGUgPT09ICdtZXRhJyA/ICh1IGFzIE1ldGFkYXRhVmFsdWUpLm1ldGFkYXRhRGVmLmlkIDogKHUgYXMgTWV0YWRhdGFVc2VyKS51c2VyUHJvZmlsZVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gbWV0YURlZnMuZmlsdGVyKChtZXRhKSA9PiAhZGF0YXNldE1ldGFkYXRhSWRzPy5pbmNsdWRlcyhtZXRhLmlkKSk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5hdmFpbGFibGVNZXRhZGF0YSQuc3Vic2NyaWJlKChtZXRhKSA9PiB7XG4gICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICBtZXRhZGF0YTogbWV0YVswXVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vbk1ldGFDaGFuZ2UobWV0YVswXSk7XG4gICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHsgdmFsdWU6ICcnIH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgb25NZXRhQ2hhbmdlKG1ldGFkYXRhOiBJTWV0YWRhdGEpIHtcbiAgICBpZiAobWV0YWRhdGEpIHtcbiAgICAgIGlmIChtZXRhZGF0YS50eXBlID09PSAnSU5URUdFUicpIHtcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzWyd2YWx1ZSddLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybihJTlRFR0VSX1JFR0VYUF9QQVRURVJOKV0pO1xuICAgICAgfSBlbHNlIGlmIChtZXRhZGF0YS50eXBlID09PSAnRE9VQkxFJykge1xuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbJ3ZhbHVlJ10uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKERPVUJMRV9SRUdFWFBfUEFUVEVSTildKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1sndmFsdWUnXS5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZWRpdE1ldGFkYXRhKGN1cnJlbnRNZXRhZGF0YTogTWV0YWRhdGFWYWx1ZSB8IE1ldGFkYXRhVXNlcikge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTWV0YWRhdGFBY3Rpb25zLmlzRWRpdGFibGUoeyBlZGl0YWJsZTogdHJ1ZSB9KSk7XG4gICAgbGV0IHZhbHVlID0gY3VycmVudE1ldGFkYXRhLnZhbHVlO1xuICAgIGxldCBkYXRhc2V0TWV0YWRhdGFEZWYgPSB0aGlzLm1ldGFEZWZpbml0aW9uKGN1cnJlbnRNZXRhZGF0YSk7XG5cbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICBtZXRhZGF0YTogZGF0YXNldE1ldGFkYXRhRGVmLFxuICAgICAgdmFsdWU6IHZhbHVlXG4gICAgfSk7XG4gICAgdGhpcy5vbk1ldGFDaGFuZ2UoZGF0YXNldE1ldGFkYXRhRGVmKTtcbiAgfVxuXG4gIG1ldGFEZWZpbml0aW9uKG1ldGFkYXRhOiBNZXRhZGF0YVVzZXIgfCBNZXRhZGF0YVZhbHVlKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ3VzZXInID8gKG1ldGFkYXRhIGFzIE1ldGFkYXRhVXNlcikudXNlclByb2ZpbGUgOiAobWV0YWRhdGEgYXMgTWV0YWRhdGFWYWx1ZSkubWV0YWRhdGFEZWY7XG4gIH1cblxuICByZW1vdmVNZXRhZGF0YShtZXRhZGF0YTogTWV0YWRhdGFVc2VyIHwgTWV0YWRhdGFWYWx1ZSkge1xuICAgIHRoaXMucmVtb3ZlTWV0YS5lbWl0KHsgaWQ6IHRoaXMudGFyZ2V0SWQsIG1ldGFkYXRhSWQ6IHRoaXMubWV0YURlZmluaXRpb24obWV0YWRhdGEpLmlkIH0pO1xuICB9XG5cbiAgYWRkRGF0YXNldE1ldGFkYXRhKCkge1xuICAgIHRoaXMuaXNTdWJtaXR0ZWQgPSB0cnVlO1xuICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMuaXNTdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuYWRkTWV0YS5lbWl0KHtcbiAgICAgICAgaWQ6IHRoaXMudGFyZ2V0SWQsXG4gICAgICAgIG1ldGFkYXRhSWQ6IHRoaXMuZm9ybS52YWx1ZVsnbWV0YWRhdGEnXVsnaWQnXSxcbiAgICAgICAgdmFsdWU6IHRoaXMuZm9ybS52YWx1ZVsndmFsdWUnXVxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICpuZ0Zvcj1cImxldCBtZXRhZGF0YSBvZiAoX21ldGFkYXRhJCB8IGFzeW5jKSA/PyBbXVwiPlxuICA8ZGl2IGNsYXNzPVwiby10YWJzX19wYW5lbF9fY29udGVudF9fYWN0aW9uc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJvLXRhYnNfX3BhbmVsX19jb250ZW50X19hY3Rpb25zX190ZXh0XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cIm8tdGFic19fcGFuZWxfX2NvbnRlbnRfX2FjdGlvbnNfX3RleHRfX2xhYmVsXCI+e3sgbWV0YURlZmluaXRpb24obWV0YWRhdGEpLm5hbWUgfX0gOjwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiby10YWJzX19wYW5lbF9fY29udGVudF9fYWN0aW9uc19fdGV4dF9fdmFsdWVcIj57eyBtZXRhZGF0YS52YWx1ZSB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJvLXRhYnNfX3BhbmVsX19jb250ZW50X19hY3Rpb25zX19idXR0b25zXCI+XG4gICAgICA8bmctY29udGFpbmVyICpwcnlBY2Nlc3M9XCJ7IG1vZHVsZTogJ2FkbWluJywgcGFnZTogJ2RhdGFzZXQnLCBhY3Rpb246ICd3cml0ZScgfVwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIiBhcmlhLXByZXNzZWQ9XCJmYWxzZVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS5hY3Rpb24uZWRpdCcgfCBpMThuIH19IHt7IG1ldGFEZWZpbml0aW9uKG1ldGFkYXRhKS5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgIDxwcnktaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0LWljb25cIlxuICAgICAgICAgICAgaWNvblN2Zz1cImVkaXRcIlxuICAgICAgICAgICAgW3dpZHRoXT1cIjE1XCJcbiAgICAgICAgICAgIFtoZWlnaHRdPVwiMTVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRNZXRhZGF0YShtZXRhZGF0YSlcIlxuICAgICAgICAgID48L3ByeS1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi1vbmx5XCIgYXJpYS1wcmVzc2VkPVwiZmFsc2VcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkuYWN0aW9uLmRlbGV0ZScgfCBpMThuIH19IHt7IG1ldGFEZWZpbml0aW9uKG1ldGFkYXRhKS5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgIDxwcnktaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJkZWxldGUtaWNvblwiXG4gICAgICAgICAgICBpY29uU3ZnPVwiZGVsZXRlXCJcbiAgICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVNZXRhZGF0YShtZXRhZGF0YSlcIlxuICAgICAgICAgID48L3ByeS1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctY29udGFpbmVyICpwcnlBY2Nlc3M9XCJ7IG1vZHVsZTogJ2FkbWluJywgcGFnZTogJ2RhdGFzZXQnLCBhY3Rpb246ICd3cml0ZScgfVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybS52YWx1ZS5tZXRhZGF0YVwiPlxuICAgIDxmb3JtIGNsYXNzPVwiby1mb3JtIC1ib3JkZXItdG9wXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgKG5nU3VibWl0KT1cImFkZERhdGFzZXRNZXRhZGF0YSgpXCI+XG4gICAgICA8ZmllbGRzZXQ+XG4gICAgICAgIDxsZWdlbmQgY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LmFjdGlvbi5lZGl0UHJvZmlsJyB8IGkxOG4gfX08L2xlZ2VuZD5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cIm1ldGFkYXRhXCIgaWQ9XCJtZXRhZGF0YS1sYWJlbFwiIGNsYXNzPVwiYS1sYWJlbFwiPkRhdGE8L2xhYmVsPlxuICAgICAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgICAgICBpZD1cIm1ldGFkYXRhXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1wcnktc2VsZWN0XCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm1ldGFkYXRhXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJhdmFpbGFibGVNZXRhZGF0YSQgfCBhc3luY1wiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk1ldGFDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICBbaXNGb3JtXT1cInRydWVcIlxuICAgICAgICAgICAgW2l0ZW1zQXNPcHRpb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJuYW1lXCJcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJlZGl0YWJsZVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiXG4gICAgICAgICAgICAgIGlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCdtZXRhZGF0YScpPy5pbnZhbGlkID8gJ21ldGFkYXRhLWxhYmVsIG1ldGFkYXRhLWVycm9yJyA6ICdtZXRhZGF0YS1sYWJlbCdcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaXNTdWJtaXR0ZWQgJiYgZm9ybS5nZXQoJ21ldGFkYXRhJyk/LmludmFsaWRcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3ByeS1zZWxlY3Q+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAqbmdJZj1cImlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCdtZXRhZGF0YScpPy5pbnZhbGlkXCJcbiAgICAgICAgICAgIGlkPVwibWV0YWRhdGEtZXJyb3JcIlxuICAgICAgICAgICAgZm9yPVwibWV0YWRhdGFcIlxuICAgICAgICAgICAgY2xhc3M9XCJhLWxhYmVsIGEtbGFiZWwtLWhlbHAgLWVycm9yXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnQHByeS5hZG1pbi5yZXF1aXJlZCcgfCBpMThuIH19XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm0udmFsdWVbJ21ldGFkYXRhJ11bJ3R5cGUnXSA9PT0gJ0RBVEUnOyBlbHNlIGlucHV0TGlzdFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICAgIDxsYWJlbCBpZD1cImZvcm1fZGF0ZS1sYWJlbFwiIGZvcj1cImZvcm1fZGF0ZVwiIGNsYXNzPVwiYS1sYWJlbFwiPlxuICAgICAgICAgICAgICB7eyAnQHByeS5hY3Rpb24uc2VsZWN0RGF0ZScgfCBpMThuIH19ICpcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPih7eyAnQHByeS5hZG1pbi5yZXF1aXJlZCcgfCBpMThuIH19KTwvc3Bhbj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgaWQ9XCJmb3JtX2RhdGVcIlxuICAgICAgICAgICAgICB0eXBlPVwiZGF0ZVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiXG4gICAgICAgICAgICAgICAgaXNTdWJtaXR0ZWQgJiYgZm9ybS5nZXQoJ3ZhbHVlJyk/LmludmFsaWQgPyAnZm9ybS1kYXRlLWxhYmVsIGZvcm0tZGF0ZS1lcnJvcicgOiAnZm9ybS1kYXRlLWxhYmVsJ1xuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaXNTdWJtaXR0ZWQgJiYgZm9ybS5nZXQoJ3ZhbHVlJyk/LmludmFsaWRcIlxuICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAqbmdJZj1cImlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCd2YWx1ZScpPy5pbnZhbGlkXCJcbiAgICAgICAgICAgICAgaWQ9XCJmb3JtX2RhdGUtZXJyb3JcIlxuICAgICAgICAgICAgICBmb3I9XCJmb3JtX2RhdGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnQHByeS5hZG1pbi5yZXF1aXJlZCcgfCBpMThuIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI2lucHV0TGlzdD5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybS52YWx1ZVsnbWV0YWRhdGEnXVsndHlwZSddID09PSAnTElTVCc7IGVsc2UgaW5wdXRUZXh0XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBpZD1cImxpc3QtbGFiZWxcIiBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJsaXN0XCI+e3sgJ0BwcnkuYWN0aW9uLmNob2ljZUluTGlzdCcgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgICAgICAgICBpZD1cImxpc3RcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1wcnktc2VsZWN0XCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgW2l0ZW1zXT1cImZvcm0udmFsdWVbJ21ldGFkYXRhJ11bJ2FsbG93ZWRWYWx1ZXMnXVwiXG4gICAgICAgICAgICAgICAgW2lzRm9ybV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJsaXN0LWxhYmVsXCJcbiAgICAgICAgICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaW5wdXRUZXh0PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICAgIDxsYWJlbCBpZD1cInRleHQtbGFiZWxcIiBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJ0ZXh0XCI+XG4gICAgICAgICAgICAgIHt7ICdAcHJ5LmFjdGlvbi50ZXh0JyB8IGkxOG4gfX0gKlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+KHt7ICdAcHJ5LmFkbWluLnJlcXVpcmVkJyB8IGkxOG4gfX0pPC9zcGFuPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBpZD1cInRleHRcIlxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiXG4gICAgICAgICAgICAgICAgaXNTdWJtaXR0ZWQgJiYgZm9ybS5nZXQoJ3ZhbHVlJyk/LmludmFsaWQgPyAndGV4dC1sYWJlbCB0ZXh0LWVycm9yJyA6ICd0ZXh0LWxhYmVsJ1xuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaXNTdWJtaXR0ZWQgJiYgZm9ybS5nZXQoJ3ZhbHVlJyk/LmludmFsaWRcIlxuICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAqbmdJZj1cImlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCd2YWx1ZScpPy5pbnZhbGlkXCJcbiAgICAgICAgICAgICAgaWQ9XCJ0ZXN0LWVycm9yXCJcbiAgICAgICAgICAgICAgZm9yPVwidGV4dFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZm9ybS5nZXQoJ3ZhbHVlJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+e3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm0uZ2V0KCd2YWx1ZScpPy5oYXNFcnJvcigncGF0dGVybicpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJmb3JtLnZhbHVlWydtZXRhZGF0YSddWyd0eXBlJ10gPT09ICdET1VCTEUnXCI+XG4gICAgICAgICAgICAgICAgICB7eyAnQHByeS5hZG1pbi5lbnZpcm9ubWVudC5mb3JtYXREb3VibGUnIHwgaTE4biB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImZvcm0udmFsdWVbJ21ldGFkYXRhJ11bJ3R5cGUnXSA9PT0gJ0lOVEVHRVInXCI+XG4gICAgICAgICAgICAgICAgICB7eyAnQHByeS5hZG1pbi5lbnZpcm9ubWVudC5mb3JtYXRJbnQnIHwgaTE4biB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9maWVsZHNldD5cblxuICAgICAgPGRpdiBjbGFzcz1cIm0tYnRuLWdyb3VwIC1lbmRcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiPlxuICAgICAgICAgIHt7IChlZGl0YWJsZSA/ICdAcHJ5LmFkbWluLnVzZXJJbmZvLmVkaXRNZXRhZGF0YScgOiAnQHByeS5hZG1pbi51c2VySW5mby5hZGRNZXRhZGF0YScpIHwgaTE4biB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvbWV0YWRhdGEtZWRpdG9yL21ldGFkYXRhLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9jb21wb25lbnRzL21ldGFkYXRhLWVkaXRvci9tZXRhZGF0YS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBMEMsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7QUFJOUQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsZUFBZSxDQUFDO0FBQ3RELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLHlCQUF5QixDQUFDO0FBSy9ELE1BQU0sT0FBTywwQkFBMkIsU0FBUSx3QkFBd0I7SUFhdEUsSUFBYSxRQUFRLENBQUMsUUFBMEM7UUFDOUQsYUFBYTtRQUNiLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEtBQUssU0FBUyxDQUFDO1FBQ3BGLElBQUksYUFBYSxFQUFF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LENBQUM7SUFDNUYsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNoQixFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ2pCLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQzdDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7YUFDaEMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOzhHQWpIVSwwQkFBMEI7a0dBQTFCLDBCQUEwQixpUkNoQnZDLG9qTkE2SkE7OzJGRDdJYSwwQkFBMEI7a0JBSnRDLFNBQVM7K0JBQ0UscUJBQXFCO3NIQVF0QixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUVNLFFBQVE7c0JBQXBCLEtBQUs7Z0JBV08sd0JBQXdCO3NCQUFwQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IElNZXRhZGF0YSwgTWV0YWRhdGFVc2VyLCBNZXRhZGF0YVZhbHVlLCBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1ldGFkYXRhQWN0aW9ucyB9IGZyb20gJy4vc3RvcmUvbWV0YWRhdGEuYWN0aW9uJztcbmltcG9ydCB7IE1ldGFkYXRhU2VsZWN0b3JzIH0gZnJvbSAnLi9zdG9yZS9tZXRhZGF0YS5zZWxlY3Rvcic7XG5cbmV4cG9ydCB0eXBlIE1ldGFFdmVudFR5cGUgPSB7IGlkOiBzdHJpbmc7IG1ldGFkYXRhSWQ6IHN0cmluZzsgdmFsdWU/OiBzdHJpbmcgfTtcblxuZXhwb3J0IGNvbnN0IElOVEVHRVJfUkVHRVhQX1BBVFRFUk4gPSAnXlsrLV0/WzAtOV0qJCc7XG5leHBvcnQgY29uc3QgRE9VQkxFX1JFR0VYUF9QQVRURVJOID0gJ1srLV0/KFswLTldKlsuXSk/WzAtOV0rJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1tZXRhZGF0YS1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJ21ldGFkYXRhLWVkaXRvci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5TWV0YWRhdGFFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUge1xuICBfbWV0YWRhdGEkID0gbmV3IEJlaGF2aW9yU3ViamVjdDwoTWV0YWRhdGFWYWx1ZSB8IE1ldGFkYXRhVXNlcilbXT4oW10pO1xuICBfaW5pdGlhbE1ldGFkYXRhU2VsZWN0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gIGZvcm06IEZvcm1Hcm91cDtcbiAgaXNTdWJtaXR0ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgdGFyZ2V0SWQgPSAnJztcbiAgQElucHV0KCkgZWRpdGFibGUgPSBmYWxzZTtcbiAgbWV0YWRhdGFEZWZzJDogT2JzZXJ2YWJsZTxJTWV0YWRhdGFbXT47XG4gIGF2YWlsYWJsZU1ldGFkYXRhJDogT2JzZXJ2YWJsZTxJTWV0YWRhdGFbXT47XG4gIHR5cGU6ICdtZXRhJyB8ICd1c2VyJyA9ICdtZXRhJztcbiAgQE91dHB1dCgpIGFkZE1ldGEgPSBuZXcgRXZlbnRFbWl0dGVyPE1ldGFFdmVudFR5cGU+KCk7XG4gIEBPdXRwdXQoKSByZW1vdmVNZXRhID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhRXZlbnRUeXBlPigpO1xuXG4gIEBJbnB1dCgpIHNldCBtZXRhZGF0YShtZXRhZGF0YTogTWV0YWRhdGFWYWx1ZVtdIHwgTWV0YWRhdGFVc2VyW10pIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgaXNVc2VyUHJvZmlsZSA9IG1ldGFkYXRhLmxlbmd0aCA+PSAxICYmIG1ldGFkYXRhWzBdLnVzZXJQcm9maWxlICE9PSB1bmRlZmluZWQ7XG4gICAgaWYgKGlzVXNlclByb2ZpbGUpIHtcbiAgICAgIHRoaXMudHlwZSA9ICd1c2VyJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50eXBlID0gJ21ldGEnO1xuICAgIH1cbiAgICB0aGlzLl9tZXRhZGF0YSQubmV4dChtZXRhZGF0YSk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgaW5pdGlhbE1ldGFkYXRhU2VsZWN0aW9uKG1ldGFkYXRhTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5faW5pdGlhbE1ldGFkYXRhU2VsZWN0aW9uJC5uZXh0KG1ldGFkYXRhTmFtZSk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZSwgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBtZXRhZGF0YTogW3t9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgdmFsdWU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybihJTlRFR0VSX1JFR0VYUF9QQVRURVJOKV1dXG4gICAgfSk7XG5cbiAgICB0aGlzLm1ldGFkYXRhRGVmcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChNZXRhZGF0YVNlbGVjdG9ycy5tZXRhZGF0YSk7XG4gICAgdGhpcy5hdmFpbGFibGVNZXRhZGF0YSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl9tZXRhZGF0YSQsIHRoaXMubWV0YWRhdGFEZWZzJF0pLnBpcGUoXG4gICAgICBtYXAoKFttZXRhZGF0YSwgbWV0YURlZnNdKSA9PiB7XG4gICAgICAgIGxldCBkYXRhc2V0TWV0YWRhdGFJZHMgPSBtZXRhZGF0YT8ubWFwKCh1KSA9PlxuICAgICAgICAgIHRoaXMudHlwZSA9PT0gJ21ldGEnID8gKHUgYXMgTWV0YWRhdGFWYWx1ZSkubWV0YWRhdGFEZWYuaWQgOiAodSBhcyBNZXRhZGF0YVVzZXIpLnVzZXJQcm9maWxlXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBtZXRhRGVmcy5maWx0ZXIoKG1ldGEpID0+ICFkYXRhc2V0TWV0YWRhdGFJZHM/LmluY2x1ZGVzKG1ldGEuaWQpKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5tZXRhZGF0YURlZnMkLFxuICAgICAgICB0aGlzLmF2YWlsYWJsZU1ldGFkYXRhJCxcbiAgICAgICAgdGhpcy5fbWV0YWRhdGEkLFxuICAgICAgICB0aGlzLl9pbml0aWFsTWV0YWRhdGFTZWxlY3Rpb24kXG4gICAgICBdKS5zdWJzY3JpYmUoKFthbGxNZXRhLCBhdmFpbGFibGVNZXRhLCBpbnB1dE1ldGEsIGluaXRpYWxseVNlbGVjdGVkTWV0YV0pID0+IHtcbiAgICAgICAgbGV0IGluaXRpYWxseVNlbGVjdGVkTWV0YUF2YWlsYWJsZSA9IGF2YWlsYWJsZU1ldGEuZmluZCgobWV0YWRhdGEpID0+IG1ldGFkYXRhLm5hbWUgPT09IGluaXRpYWxseVNlbGVjdGVkTWV0YSk7XG4gICAgICAgIGlmICghIWluaXRpYWxseVNlbGVjdGVkTWV0YUF2YWlsYWJsZSkge1xuICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgIG1ldGFkYXRhOiBpbml0aWFsbHlTZWxlY3RlZE1ldGFBdmFpbGFibGUgPz8gYXZhaWxhYmxlTWV0YVswXVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMub25NZXRhQ2hhbmdlKGluaXRpYWxseVNlbGVjdGVkTWV0YUF2YWlsYWJsZSA/PyBhdmFpbGFibGVNZXRhWzBdKTtcbiAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IHZhbHVlOiAnJyB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKE1ldGFkYXRhQWN0aW9ucy5pc0VkaXRhYmxlKHsgZWRpdGFibGU6IHRydWUgfSkpO1xuICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgIG1ldGFkYXRhOiBhbGxNZXRhLmZpbmQoKG1ldGFkYXRhKSA9PiBtZXRhZGF0YS5uYW1lID09PSBpbml0aWFsbHlTZWxlY3RlZE1ldGEpLFxuICAgICAgICAgICAgdmFsdWU6IGlucHV0TWV0YS5maW5kKChtZXRhKSA9PiB0aGlzLm1ldGFEZWZpbml0aW9uKG1ldGEpLm5hbWUgPT09IGluaXRpYWxseVNlbGVjdGVkTWV0YSk/LnZhbHVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG9uTWV0YUNoYW5nZShtZXRhZGF0YTogSU1ldGFkYXRhKSB7XG4gICAgaWYgKG1ldGFkYXRhKSB7XG4gICAgICBpZiAobWV0YWRhdGEudHlwZSA9PT0gJ0lOVEVHRVInKSB7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1sndmFsdWUnXS5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oSU5URUdFUl9SRUdFWFBfUEFUVEVSTildKTtcbiAgICAgIH0gZWxzZSBpZiAobWV0YWRhdGEudHlwZSA9PT0gJ0RPVUJMRScpIHtcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzWyd2YWx1ZSddLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybihET1VCTEVfUkVHRVhQX1BBVFRFUk4pXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbJ3ZhbHVlJ10uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGVkaXRNZXRhZGF0YShjdXJyZW50TWV0YWRhdGE6IE1ldGFkYXRhVmFsdWUgfCBNZXRhZGF0YVVzZXIpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKE1ldGFkYXRhQWN0aW9ucy5pc0VkaXRhYmxlKHsgZWRpdGFibGU6IHRydWUgfSkpO1xuICAgIGxldCB2YWx1ZSA9IGN1cnJlbnRNZXRhZGF0YS52YWx1ZTtcbiAgICBsZXQgZGF0YXNldE1ldGFkYXRhRGVmID0gdGhpcy5tZXRhRGVmaW5pdGlvbihjdXJyZW50TWV0YWRhdGEpO1xuXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgbWV0YWRhdGE6IGRhdGFzZXRNZXRhZGF0YURlZixcbiAgICAgIHZhbHVlOiB2YWx1ZVxuICAgIH0pO1xuICAgIHRoaXMub25NZXRhQ2hhbmdlKGRhdGFzZXRNZXRhZGF0YURlZik7XG4gIH1cblxuICBtZXRhRGVmaW5pdGlvbihtZXRhZGF0YTogTWV0YWRhdGFVc2VyIHwgTWV0YWRhdGFWYWx1ZSkge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09ICd1c2VyJyA/IChtZXRhZGF0YSBhcyBNZXRhZGF0YVVzZXIpLnVzZXJQcm9maWxlIDogKG1ldGFkYXRhIGFzIE1ldGFkYXRhVmFsdWUpLm1ldGFkYXRhRGVmO1xuICB9XG5cbiAgcmVtb3ZlTWV0YWRhdGEobWV0YWRhdGE6IE1ldGFkYXRhVXNlciB8IE1ldGFkYXRhVmFsdWUpIHtcbiAgICB0aGlzLnJlbW92ZU1ldGEuZW1pdCh7IGlkOiB0aGlzLnRhcmdldElkLCBtZXRhZGF0YUlkOiB0aGlzLm1ldGFEZWZpbml0aW9uKG1ldGFkYXRhKS5pZCB9KTtcbiAgfVxuXG4gIGFkZERhdGFzZXRNZXRhZGF0YSgpIHtcbiAgICB0aGlzLmlzU3VibWl0dGVkID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLmlzU3VibWl0dGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmFkZE1ldGEuZW1pdCh7XG4gICAgICAgIGlkOiB0aGlzLnRhcmdldElkLFxuICAgICAgICBtZXRhZGF0YUlkOiB0aGlzLmZvcm0udmFsdWVbJ21ldGFkYXRhJ11bJ2lkJ10sXG4gICAgICAgIHZhbHVlOiB0aGlzLmZvcm0udmFsdWVbJ3ZhbHVlJ11cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdGb3I9XCJsZXQgbWV0YWRhdGEgb2YgKF9tZXRhZGF0YSQgfCBhc3luYykgPz8gW11cIj5cbiAgPGRpdiBjbGFzcz1cIm8tdGFic19fcGFuZWxfX2NvbnRlbnRfX2FjdGlvbnNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiby10YWJzX19wYW5lbF9fY29udGVudF9fYWN0aW9uc19fdGV4dFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJvLXRhYnNfX3BhbmVsX19jb250ZW50X19hY3Rpb25zX190ZXh0X19sYWJlbFwiPnt7IG1ldGFEZWZpbml0aW9uKG1ldGFkYXRhKS5uYW1lIH19IDo8L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cIm8tdGFic19fcGFuZWxfX2NvbnRlbnRfX2FjdGlvbnNfX3RleHRfX3ZhbHVlXCI+e3sgbWV0YWRhdGEudmFsdWUgfX08L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiby10YWJzX19wYW5lbF9fY29udGVudF9fYWN0aW9uc19fYnV0dG9uc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6ICdhZG1pbicsIHBhZ2U6ICdkYXRhc2V0JywgYWN0aW9uOiAnd3JpdGUnIH1cIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi1vbmx5XCIgYXJpYS1wcmVzc2VkPVwiZmFsc2VcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkuYWN0aW9uLmVkaXQnIHwgaTE4biB9fSB7eyBtZXRhRGVmaW5pdGlvbihtZXRhZGF0YSkubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8cHJ5LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdC1pY29uXCJcbiAgICAgICAgICAgIGljb25Tdmc9XCJlZGl0XCJcbiAgICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICAgIChjbGljayk9XCJlZGl0TWV0YWRhdGEobWV0YWRhdGEpXCJcbiAgICAgICAgICA+PC9wcnktaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiIGFyaWEtcHJlc3NlZD1cImZhbHNlXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LmFjdGlvbi5kZWxldGUnIHwgaTE4biB9fSB7eyBtZXRhRGVmaW5pdGlvbihtZXRhZGF0YSkubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8cHJ5LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwiZGVsZXRlLWljb25cIlxuICAgICAgICAgICAgaWNvblN2Zz1cImRlbGV0ZVwiXG4gICAgICAgICAgICBbd2lkdGhdPVwiMTVcIlxuICAgICAgICAgICAgW2hlaWdodF09XCIxNVwiXG4gICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlTWV0YWRhdGEobWV0YWRhdGEpXCJcbiAgICAgICAgICA+PC9wcnktaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLWNvbnRhaW5lciAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6ICdhZG1pbicsIHBhZ2U6ICdkYXRhc2V0JywgYWN0aW9uOiAnd3JpdGUnIH1cIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm0udmFsdWUubWV0YWRhdGFcIj5cbiAgICA8Zm9ybSBjbGFzcz1cIm8tZm9ybSAtYm9yZGVyLXRvcFwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJhZGREYXRhc2V0TWV0YWRhdGEoKVwiPlxuICAgICAgPGZpZWxkc2V0PlxuICAgICAgICA8bGVnZW5kIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS5hY3Rpb24uZWRpdFByb2ZpbCcgfCBpMThuIH19PC9sZWdlbmQ+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJtZXRhZGF0YVwiIGlkPVwibWV0YWRhdGEtbGFiZWxcIiBjbGFzcz1cImEtbGFiZWxcIj5EYXRhPC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgaWQ9XCJtZXRhZGF0YVwiXG4gICAgICAgICAgICBjbGFzcz1cImEtcHJ5LXNlbGVjdFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJtZXRhZGF0YVwiXG4gICAgICAgICAgICBbaXRlbXNdPVwiYXZhaWxhYmxlTWV0YWRhdGEkIHwgYXN5bmNcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25NZXRhQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgW2lzRm9ybV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtpdGVtc0FzT3B0aW9uXT1cInRydWVcIlxuICAgICAgICAgICAgYmluZExhYmVsPVwibmFtZVwiXG4gICAgICAgICAgICBbcmVhZG9ubHldPVwiZWRpdGFibGVcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIlxuICAgICAgICAgICAgICBpc1N1Ym1pdHRlZCAmJiBmb3JtLmdldCgnbWV0YWRhdGEnKT8uaW52YWxpZCA/ICdtZXRhZGF0YS1sYWJlbCBtZXRhZGF0YS1lcnJvcicgOiAnbWV0YWRhdGEtbGFiZWwnXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCdtZXRhZGF0YScpPy5pbnZhbGlkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9wcnktc2VsZWN0PlxuICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgKm5nSWY9XCJpc1N1Ym1pdHRlZCAmJiBmb3JtLmdldCgnbWV0YWRhdGEnKT8uaW52YWxpZFwiXG4gICAgICAgICAgICBpZD1cIm1ldGFkYXRhLWVycm9yXCJcbiAgICAgICAgICAgIGZvcj1cIm1ldGFkYXRhXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtLnZhbHVlWydtZXRhZGF0YSddWyd0eXBlJ10gPT09ICdEQVRFJzsgZWxzZSBpbnB1dExpc3RcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgICA8bGFiZWwgaWQ9XCJmb3JtX2RhdGUtbGFiZWxcIiBmb3I9XCJmb3JtX2RhdGVcIiBjbGFzcz1cImEtbGFiZWxcIj5cbiAgICAgICAgICAgICAge3sgJ0BwcnkuYWN0aW9uLnNlbGVjdERhdGUnIHwgaTE4biB9fSAqXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj4oe3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fSk8L3NwYW4+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGlkPVwiZm9ybV9kYXRlXCJcbiAgICAgICAgICAgICAgdHlwZT1cImRhdGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIlxuICAgICAgICAgICAgICAgIGlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCd2YWx1ZScpPy5pbnZhbGlkID8gJ2Zvcm0tZGF0ZS1sYWJlbCBmb3JtLWRhdGUtZXJyb3InIDogJ2Zvcm0tZGF0ZS1sYWJlbCdcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCd2YWx1ZScpPy5pbnZhbGlkXCJcbiAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgKm5nSWY9XCJpc1N1Ym1pdHRlZCAmJiBmb3JtLmdldCgndmFsdWUnKT8uaW52YWxpZFwiXG4gICAgICAgICAgICAgIGlkPVwiZm9ybV9kYXRlLWVycm9yXCJcbiAgICAgICAgICAgICAgZm9yPVwiZm9ybV9kYXRlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhLWxhYmVsIGEtbGFiZWwtLWhlbHAgLWVycm9yXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNpbnB1dExpc3Q+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm0udmFsdWVbJ21ldGFkYXRhJ11bJ3R5cGUnXSA9PT0gJ0xJU1QnOyBlbHNlIGlucHV0VGV4dFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJsaXN0LWxhYmVsXCIgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwibGlzdFwiPnt7ICdAcHJ5LmFjdGlvbi5jaG9pY2VJbkxpc3QnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgICAgICAgICAgaWQ9XCJsaXN0XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImEtcHJ5LXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgIFtpdGVtc109XCJmb3JtLnZhbHVlWydtZXRhZGF0YSddWydhbGxvd2VkVmFsdWVzJ11cIlxuICAgICAgICAgICAgICAgIFtpc0Zvcm1dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwibGlzdC1sYWJlbFwiXG4gICAgICAgICAgICAgID48L3ByeS1zZWxlY3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI2lucHV0VGV4dD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgICA8bGFiZWwgaWQ9XCJ0ZXh0LWxhYmVsXCIgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwidGV4dFwiPlxuICAgICAgICAgICAgICB7eyAnQHByeS5hY3Rpb24udGV4dCcgfCBpMThuIH19ICpcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPih7eyAnQHByeS5hZG1pbi5yZXF1aXJlZCcgfCBpMThuIH19KTwvc3Bhbj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgaWQ9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIlxuICAgICAgICAgICAgICAgIGlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCd2YWx1ZScpPy5pbnZhbGlkID8gJ3RleHQtbGFiZWwgdGV4dC1lcnJvcicgOiAndGV4dC1sYWJlbCdcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCd2YWx1ZScpPy5pbnZhbGlkXCJcbiAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgKm5nSWY9XCJpc1N1Ym1pdHRlZCAmJiBmb3JtLmdldCgndmFsdWUnKT8uaW52YWxpZFwiXG4gICAgICAgICAgICAgIGlkPVwidGVzdC1lcnJvclwiXG4gICAgICAgICAgICAgIGZvcj1cInRleHRcIlxuICAgICAgICAgICAgICBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImZvcm0uZ2V0KCd2YWx1ZScpPy5oYXNFcnJvcigncmVxdWlyZWQnKVwiPnt7ICdAcHJ5LmFkbWluLnJlcXVpcmVkJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtLmdldCgndmFsdWUnKT8uaGFzRXJyb3IoJ3BhdHRlcm4nKVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZm9ybS52YWx1ZVsnbWV0YWRhdGEnXVsndHlwZSddID09PSAnRE9VQkxFJ1wiPlxuICAgICAgICAgICAgICAgICAge3sgJ0BwcnkuYWRtaW4uZW52aXJvbm1lbnQuZm9ybWF0RG91YmxlJyB8IGkxOG4gfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJmb3JtLnZhbHVlWydtZXRhZGF0YSddWyd0eXBlJ10gPT09ICdJTlRFR0VSJ1wiPlxuICAgICAgICAgICAgICAgICAge3sgJ0BwcnkuYWRtaW4uZW52aXJvbm1lbnQuZm9ybWF0SW50JyB8IGkxOG4gfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZmllbGRzZXQ+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cCAtZW5kXCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIj5cbiAgICAgICAgICB7eyAoZWRpdGFibGUgPyAnQHByeS5hY3Rpb24uZWRpdE1ldGFkYXRhJyA6ICdAcHJ5LmFjdGlvbi5hZGRNZXRhZGF0YScpIHwgaTE4biB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -25,8 +25,9 @@ export class PryDatasetDetailComponent {
25
25
  type: 'map',
26
26
  layout: { x: 1, y: 1, height: 12, width: 12 },
27
27
  options: {
28
- layers: [{ type: 'marker' }],
29
- fit: true
28
+ layers: [],
29
+ fit: true,
30
+ automaticLayers: true
30
31
  },
31
32
  datasource: ['']
32
33
  }
@@ -107,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
107
108
  }], goToCatalog: [{
108
109
  type: Output
109
110
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNldC1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvZGF0YXNldC9jb21wb25lbnRzL2RhdGFzZXQtZGV0YWlsL2RhdGFzZXQtZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2RhdGFzZXQvY29tcG9uZW50cy9kYXRhc2V0LWRldGFpbC9kYXRhc2V0LWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBR2xCLGlCQUFpQixFQUNqQixtQkFBbUIsRUFHbkIsYUFBYSxFQUNiLFFBQVEsRUFFVCxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7Ozs7OztBQUV2QyxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFNbkIsTUFBTSxPQUFPLHlCQUF5QjtJQWdDcEMsWUFBb0IsS0FBWTtRQUFaLFVBQUssR0FBTCxLQUFLLENBQU87UUE5QnRCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQyxtQkFBYyxHQUFHO1lBQ2YsS0FBSyxFQUFFO2dCQUNMLE1BQU0sRUFBRSxJQUFJO2dCQUNaLE1BQU0sRUFBRSxJQUFJO2dCQUNaLElBQUksRUFBRSxPQUFPO2dCQUNiLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7Z0JBQzdDLE9BQU8sRUFBRSxFQUFF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LENBQUMsc0JBQXNCLENBQUM7WUFDL0MsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMxQixTQUFTLEVBQUUsT0FBTyxDQUFDLEVBQUU7U0FDdEIsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVksRUFBRSxFQUFFLFFBQVEsRUFBZ0M7UUFDN0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUM7SUFDdkMsQ0FBQzs4R0E5R1UseUJBQXlCO2tHQUF6Qix5QkFBeUIsbUlDdkJ0Qyx1b0xBNklBOzsyRkR0SGEseUJBQXlCO2tCQUpyQyxTQUFTOytCQUNFLG9CQUFvQjs0RkFJckIsT0FBTztzQkFBZixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIERhc2hib2FyZEFjdGlvbnMsXG4gIERhc2hib2FyZFNlbGVjdG9ycyxcbiAgRGF0YXNldCxcbiAgRGF0YXNldFZlcnNpb24sXG4gIERhdGFTb3VyY2VBY3Rpb25zLFxuICBEYXRhU291cmNlU2VsZWN0b3JzLFxuICBHbG9iYWxNYW5pZmVzdCxcbiAgUmVzdWx0U2V0cyxcbiAgU2VhcmNoQWN0aW9ucyxcbiAgVmlld01vZGUsXG4gIFdpZGdldE1hbmlmZXN0XG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxubGV0IG5leHRDb21wSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktZGF0YXNldC1kZXRhaWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YXNldC1kZXRhaWwuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByeURhdGFzZXREZXRhaWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBkYXRhc2V0ITogRGF0YXNldDtcbiAgQE91dHB1dCgpIGdvVG9DYXRhbG9nID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICB3aWRnZXRNYW5pZmVzdCA9IHtcbiAgICB0YWJsZToge1xuICAgICAgaGVhZGVyOiB0cnVlLFxuICAgICAgbG9ja2VkOiB0cnVlLFxuICAgICAgdHlwZTogJ3RhYmxlJyxcbiAgICAgIGxheW91dDogeyB4OiAxLCB5OiAxLCBoZWlnaHQ6IDEyLCB3aWR0aDogMTIgfSxcbiAgICAgIG9wdGlvbnM6IHt9LFxuICAgICAgZGF0YXNvdXJjZTogWycnXVxuICAgIH0sXG4gICAgbWFwOiB7XG4gICAgICBoZWFkZXI6IGZhbHNlLFxuICAgICAgdHlwZTogJ21hcCcsXG4gICAgICBsYXlvdXQ6IHsgeDogMSwgeTogMSwgaGVpZ2h0OiAxMiwgd2lkdGg6IDEyIH0sXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGxheWVyczogW3sgdHlwZTogJ21hcmtlcicgfV0sXG4gICAgICAgIGZpdDogdHJ1ZVxuICAgICAgfSxcbiAgICAgIGRhdGFzb3VyY2U6IFsnJ11cbiAgICB9XG4gIH0gYXMgeyBba2V5OiBzdHJpbmddOiBXaWRnZXRNYW5pZmVzdCB9O1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgVmlld01vZGUgPSBWaWV3TW9kZTtcbiAgY29tcElkOiBudW1iZXIgPSAwO1xuICB0YWI6IG51bWJlciA9IDA7XG4gIGRhdGFzZXRJdGVtcyQ6IE9ic2VydmFibGU8UmVzdWx0U2V0cyB8IG51bGw+IHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgZGF0YXNldFZlcnNpb25zJCE6IE9ic2VydmFibGU8RGF0YXNldFZlcnNpb25bXT47XG4gIHNob3dNb2RhbFN0YXR1czogYm9vbGVhbiA9IGZhbHNlO1xuICBzZWxlY3RlZERhdGFzZXRWZXJzaW9uPzogRGF0YXNldFZlcnNpb247XG4gIHNlbGVjdGVkTW9kZTogVmlld01vZGUgPSBWaWV3TW9kZS5DT05TVUxUO1xuICBhY3RpdmVWZXJzaW9uJCE6IE9ic2VydmFibGU8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUpIHtcbiAgICB0aGlzLmNvbXBJZCA9IG5leHRDb21wSWQrKztcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5saXN0VmVyc2lvbnNCeURhdGFzZXRJZCh7IGlkOiB0aGlzLmRhdGFzZXQuaWQgfSkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5yZW1vdmVGaWx0ZXJzKCkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goU2VhcmNoQWN0aW9ucy5nZXREYXRhc291cmNlSXRlbXMoeyBpZDogdGhpcy5kYXRhc2V0LmlkIH0pKTtcbiAgICB0aGlzLmRhdGFzZXRJdGVtcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMucmVzdWx0U2V0cyk7XG4gICAgdGhpcy5kYXRhc2V0VmVyc2lvbnMkID0gdGhpcy5zdG9yZVxuICAgICAgLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLm1hdGNoaW5nRGF0YXNldFZlcnNpb25zKHRoaXMuZGF0YXNldC5pZCkpXG4gICAgICAucGlwZShtYXAoKHJlcykgPT4gWy4uLnJlc10uc29ydCgoYSwgYikgPT4gYi52ZXJzaW9uIC0gYS52ZXJzaW9uKSkpO1xuICAgIHRoaXMud2lkZ2V0TWFuaWZlc3RbJ3RhYmxlJ10uZGF0YXNvdXJjZSA9IFt0aGlzLmRhdGFzZXQuaWRdO1xuICAgIHRoaXMud2lkZ2V0TWFuaWZlc3RbJ21hcCddLmRhdGFzb3VyY2UgPSBbdGhpcy5kYXRhc2V0LmlkXTtcbiAgICB0aGlzLmFjdGl2ZVZlcnNpb24kID0gdGhpcy5kYXRhc2V0VmVyc2lvbnMkLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgICh2ZXJzaW9ucykgPT5cbiAgICAgICAgICB2ZXJzaW9ucy5zb3J0KCh2MSwgdjIpID0+IHYyLnZlcnNpb24gLSB2MS52ZXJzaW9uKS5maW5kKCh2ZXJzaW9uKSA9PiB2ZXJzaW9uLnN0YXRlID09PSAnQUNUSVZFJyk/LmlkXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGdvQmFjaygpIHtcbiAgICB0aGlzLmdvVG9DYXRhbG9nLmVtaXQoKTtcbiAgfVxuXG4gIGdvVG9Db25zdWx0KHZlcnNpb246IERhdGFzZXRWZXJzaW9uIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGFzZXRWZXJzaW9uID0gdmVyc2lvbjtcbiAgICB0aGlzLnNob3dNb2RhbFN0YXR1cyA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0ZWRNb2RlID0gVmlld01vZGUuQ09OU1VMVDtcbiAgfVxuXG4gIHN3aXRjaChudW1iZXI6IG51bWJlcikge1xuICAgIHRoaXMudGFiID0gbnVtYmVyO1xuICB9XG5cbiAgaGFuZGxlQnV0dG9uQWN0aW9uKHZlcnNpb246IERhdGFzZXRWZXJzaW9uKSB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGFzZXRWZXJzaW9uID0gdmVyc2lvbjtcbiAgICBzd2l0Y2ggKHZlcnNpb24uc3RhdGUpIHtcbiAgICAgIGNhc2UgJ0VSUk9SJzpcbiAgICAgICAgdGhpcy5jb25zdWx0RXJyb3JzKHZlcnNpb24pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0FDVElWRSc6XG4gICAgICAgIHRoaXMuZGVhY3RpdmF0ZVZlcnNpb24odmVyc2lvbik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnSU5BQ1RJVkUnOlxuICAgICAgICB0aGlzLmFjdGl2YXRlVmVyc2lvbih2ZXJzaW9uKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBjb25zdWx0RXJyb3JzKHZlcnNpb246IERhdGFzZXRWZXJzaW9uKSB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGFzZXRWZXJzaW9uID0gdmVyc2lvbjtcbiAgICB0aGlzLnNob3dNb2RhbFN0YXR1cyA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIGRlYWN0aXZhdGVWZXJzaW9uKHZlcnNpb246IERhdGFzZXRWZXJzaW9uKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZGVhY3RpdmF0ZURhdGFzZXRWZXJzaW9uKHtcbiAgICAgICAgZGF0YXNldElkOiB0aGlzLmRhdGFzZXQuaWQsXG4gICAgICAgIHZlcnNpb25JZDogdmVyc2lvbi5pZFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhY3RpdmF0ZVZlcnNpb24odmVyc2lvbjogRGF0YXNldFZlcnNpb24pIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5hY3RpdmF0ZURhdGFzZXRWZXJzaW9uKHtcbiAgICAgICAgZGF0YXNldElkOiB0aGlzLmRhdGFzZXQuaWQsXG4gICAgICAgIHZlcnNpb25JZDogdmVyc2lvbi5pZFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbW9kaWZ5KHR5cGU6IHN0cmluZywgeyBtYW5pZmVzdCB9OiB7IG1hbmlmZXN0OiBXaWRnZXRNYW5pZmVzdCB9KSB7XG4gICAgdGhpcy53aWRnZXRNYW5pZmVzdFt0eXBlXSA9IG1hbmlmZXN0O1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXRfX3Rvb2xib3hcIj5cbiAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgKGNsaWNrKT1cImdvQmFjaygpXCI+e3sgJ0BwcnkuZGF0YXNldC5yZXR1cm5Ub0xpc3QnIHwgaTE4biB9fTwvYnV0dG9uPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJkYXRhc2V0LWxheW91dF9fY29udGVudFwiPlxuICA8aDEgY2xhc3M9XCJhLWgxXCI+e3sgZGF0YXNldC5uYW1lIH19PC9oMT5cbiAgPGRpdiBjbGFzcz1cImRhdGFzZXQtZGV0YWlsXCI+XG4gICAgPHByeS10YWItZ3JvdXAgdHJhbnNsYXRpb25TdHJpbmdCYXNlPVwiQHByeS5kYXRhc2V0LlwiPlxuICAgICAgPHByeS10YWIgW3RlbXBsYXRlUmVmXT1cInRhYmxlXCIgbmFtZT1cImRhdGFcIj48L3ByeS10YWI+XG4gICAgICA8cHJ5LXRhYiBbdGVtcGxhdGVSZWZdPVwibWFwXCIgbmFtZT1cIm1hcFwiPjwvcHJ5LXRhYj5cbiAgICAgIDxwcnktdGFiIFt0ZW1wbGF0ZVJlZl09XCJkYXRhc2V0VmVyc2lvbnNcIiBuYW1lPVwidmVyc2lvbkhpc3RvcnlcIj48L3ByeS10YWI+XG4gICAgPC9wcnktdGFiLWdyb3VwPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3RhYmxlPlxuICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWNvbnRhaW5lclwiPlxuICAgIDxwcnktZGFzaGJvYXJkIFtzdGF0aWNEYXNoYm9hcmRdPVwieyB3aWRnZXRzOiBbd2lkZ2V0TWFuaWZlc3RbJ3RhYmxlJ11dIH1cIj48L3ByeS1kYXNoYm9hcmQ+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbWFwPlxuICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWNvbnRhaW5lclwiPlxuICAgIDxwcnktZGFzaGJvYXJkIFtzdGF0aWNEYXNoYm9hcmRdPVwieyB3aWRnZXRzOiBbd2lkZ2V0TWFuaWZlc3RbJ21hcCddXSB9XCI+PC9wcnktZGFzaGJvYXJkPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2RhdGFzZXRWZXJzaW9ucz5cbiAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbnRhaW5lclwiPlxuICAgIDx0YWJsZSBjbGFzcz1cImEtdGFibGVcIj5cbiAgICAgIDxjYXB0aW9uPlxuICAgICAgICB7e1xuICAgICAgICAgICdAcHJ5LmFkbWluLmRhdGFzZXQudGl0bGUnIHwgaTE4blxuICAgICAgICB9fSxcbiAgICAgICAge3tcbiAgICAgICAgICAnQHByeS5hY3Rpb24uc29ydGFibGVDb2x1bW5IZWFkZXInIHwgaTE4blxuICAgICAgICB9fVxuICAgICAgPC9jYXB0aW9uPlxuICAgICAgPHRoZWFkPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRoPnt7ICdAcHJ5LmRhdGFzZXQudmVyc2lvbi50aXRsZScgfCBpMThuIH19PC90aD5cbiAgICAgICAgICA8dGg+e3sgJ0BwcnkuZGF0YXNldC5kYXRlJyB8IGkxOG4gfX08L3RoPlxuICAgICAgICAgIDx0aD57eyAnQHByeS5kYXRhc2V0LnN0YXR1cycgfCBpMThuIH19PC90aD5cbiAgICAgICAgICA8dGg+PC90aD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGhlYWQ+XG4gICAgICA8dGJvZHk+XG4gICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgdmVyc2lvbiBvZiBkYXRhc2V0VmVyc2lvbnMkIHwgYXN5bmNcIj5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICB7eyB2ZXJzaW9uLnZlcnNpb24gfX1cbiAgICAgICAgICAgIDxwcnktaWNvbiAqbmdJZj1cIihhY3RpdmVWZXJzaW9uJCB8IGFzeW5jKSA9PT0gdmVyc2lvbi5pZFwiIGljb25Tdmc9XCJjaGVja1wiIGNsYXNzPVwiY2hlY2tcIj48L3ByeS1pY29uPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPHRkIFtwcnlUb29sdGlwXT1cImRhdGVUb29sdGlwXCI+XG4gICAgICAgICAgICB7eyB2ZXJzaW9uLmxhc3RNb2RpZmllZCB8IHNpbmNlRGF0ZSB9fVxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkYXRlVG9vbHRpcD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tdG9vbHRpcFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHJvbGU9XCJ0b29sdGlwXCIgaWQ9XCJkYXRlVG9vbHRpcFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibS10b29sdGlwX190ZXh0XCI+IHt7IHZlcnNpb24ubGFzdE1vZGlmaWVkIHwgc2luY2VEYXRlIDogeyBvbmx5TG9jYWxlOiB0cnVlIH0gfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICgoYWN0aXZlVmVyc2lvbiQgfCBhc3luYykgPT09IHZlcnNpb24uaWRcbiAgICAgICAgICAgICAgICA/ICdAcHJ5LmRhdGFzZXQudmVyc2lvbi5jdXJyZW50bHlBY3RpdmUnXG4gICAgICAgICAgICAgICAgOiAnQHByeS5kYXRhc2V0LnZlcnNpb24uJyArIHZlcnNpb24uc3RhdGVcbiAgICAgICAgICAgICAgKSB8IGkxOG5cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1pY29uIGRlc2NyaXB0aW9uLWNvbnRhaW5lciBkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5mby10ZXh0XCI+aTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvbi10b29sdGlwXCI+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJhLXBcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInZlcnNpb24uc3RhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0VSUk9SJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmRhdGFzZXQudG9vbHRpcC5lcnJvcicgfCBpMThuIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInQUNUSVZFJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAoKGFjdGl2ZVZlcnNpb24kIHwgYXN5bmMpID09PSB2ZXJzaW9uLmlkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gJ0BwcnkuZGF0YXNldC50b29sdGlwLmFjdGl2ZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnQHByeS5kYXRhc2V0LnRvb2x0aXAuaW5hY3RpdmUnXG4gICAgICAgICAgICAgICAgICAgICAgICApIHwgaTE4blxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInTE9BRElORydcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyAnQHByeS5kYXRhc2V0LnRvb2x0aXAubG9hZGluZycgfCBpMThuIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInSU5ERVhJTkcnXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgJ0BwcnkuZGF0YXNldC50b29sdGlwLmxvYWRpbmcnIHwgaTE4biB9fVxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0lOQUNUSVZFJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmRhdGFzZXQudG9vbHRpcC5pbnZhbGlkJyB8IGkxOG4gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmVyc2lvbi5zdGF0ZSAhPT0gJ0xPQURJTkcnICYmIHZlcnNpb24uc3RhdGUgIT09ICdJTkRFWElORydcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnkgYS1idG4tLWljb24tdGV4dCBuZy1zdGFyLWluc2VydGVkXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQnV0dG9uQWN0aW9uKHZlcnNpb24pXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmRhdGFzZXQuYnV0dG9uQWN0aW9uLicgKyB2ZXJzaW9uLnN0YXRlIHwgaTE4biB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZlcnNpb24uc3RhdGUgPT09ICdBQ1RJVkUnIHx8IHZlcnNpb24uc3RhdGUgPT09ICdJTkFDVElWRSdcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1pY29uIGRlc2NyaXB0aW9uLWNvbnRhaW5lciBkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmZvLXRleHRcIj5pPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvbi10b29sdGlwIHZhbGlkYXRlLXRvb2x0aXBcIj5cbiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiYS1wXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgKHZlcnNpb24uc3RhdGUgPT09ICdBQ1RJVkUnXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdAcHJ5LmRhdGFzZXQudG9vbHRpcC5pblZhbGlkYXRlQnV0dG9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnQHByeS5kYXRhc2V0LnRvb2x0aXAudmFsaWRhdGVCdXR0b24nXG4gICAgICAgICAgICAgICAgICAgICAgKSB8IGkxOG5cbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2ZXJzaW9uLmhhc1dhcm5pbmdzICYmIHZlcnNpb24uc3RhdGUgIT09ICdFUlJPUidcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeSBhLWJ0bi0taWNvbi10ZXh0IG5nLXN0YXItaW5zZXJ0ZWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjb25zdWx0RXJyb3JzKHZlcnNpb24pXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmRhdGFzZXQuYnV0dG9uQWN0aW9uLldBUk5JTkcnIHwgaTE4biB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dNb2RhbFN0YXR1c1wiPlxuICA8cHJ5LW1vZGFsLXN0YXR1cyBbdmVyc2lvbl09XCJzZWxlY3RlZERhdGFzZXRWZXJzaW9uXCIgKGdvdG9Db25zdWx0KT1cImdvVG9Db25zdWx0KCRldmVudClcIj48L3ByeS1tb2RhbC1zdGF0dXM+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNldC1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvZGF0YXNldC9jb21wb25lbnRzL2RhdGFzZXQtZGV0YWlsL2RhdGFzZXQtZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2RhdGFzZXQvY29tcG9uZW50cy9kYXRhc2V0LWRldGFpbC9kYXRhc2V0LWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBR2xCLGlCQUFpQixFQUNqQixtQkFBbUIsRUFFbkIsYUFBYSxFQUNiLFFBQVEsRUFFVCxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7Ozs7OztBQUV2QyxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFNbkIsTUFBTSxPQUFPLHlCQUF5QjtJQWtDcEMsWUFBb0IsS0FBWTtRQUFaLFVBQUssR0FBTCxLQUFLLENBQU87UUFoQ3RCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQyxtQkFBYyxHQUFHO1lBQ2YsS0FBSyxFQUFFO2dCQUNMLE1BQU0sRUFBRSxJQUFJO2dCQUNaLE1BQU0sRUFBRSxJQUFJO2dCQUNaLElBQUksRUFBRSxPQUFPO2dCQUNiLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7Z0JBQzdDLE9BQU8sRUFBRSxFQUFF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QXNCLENBQUM7WUFDL0MsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMxQixTQUFTLEVBQUUsT0FBTyxDQUFDLEVBQUU7U0FDdEIsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVksRUFBRSxFQUFFLFFBQVEsRUFBZ0M7UUFDN0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUM7SUFDdkMsQ0FBQzs4R0FoSFUseUJBQXlCO2tHQUF6Qix5QkFBeUIsbUlDdEJ0Qyx1b0xBNklBOzsyRkR2SGEseUJBQXlCO2tCQUpyQyxTQUFTOytCQUNFLG9CQUFvQjs0RkFJckIsT0FBTztzQkFBZixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIERhc2hib2FyZEFjdGlvbnMsXG4gIERhc2hib2FyZFNlbGVjdG9ycyxcbiAgRGF0YXNldCxcbiAgRGF0YXNldFZlcnNpb24sXG4gIERhdGFTb3VyY2VBY3Rpb25zLFxuICBEYXRhU291cmNlU2VsZWN0b3JzLFxuICBSZXN1bHRTZXRzLFxuICBTZWFyY2hBY3Rpb25zLFxuICBWaWV3TW9kZSxcbiAgV2lkZ2V0TWFuaWZlc3Rcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5sZXQgbmV4dENvbXBJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1kYXRhc2V0LWRldGFpbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhc2V0LWRldGFpbC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5RGF0YXNldERldGFpbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGRhdGFzZXQhOiBEYXRhc2V0O1xuICBAT3V0cHV0KCkgZ29Ub0NhdGFsb2cgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHdpZGdldE1hbmlmZXN0ID0ge1xuICAgIHRhYmxlOiB7XG4gICAgICBoZWFkZXI6IHRydWUsXG4gICAgICBsb2NrZWQ6IHRydWUsXG4gICAgICB0eXBlOiAndGFibGUnLFxuICAgICAgbGF5b3V0OiB7IHg6IDEsIHk6IDEsIGhlaWdodDogMTIsIHdpZHRoOiAxMiB9LFxuICAgICAgb3B0aW9uczoge30sXG4gICAgICBkYXRhc291cmNlOiBbJyddXG4gICAgfSxcbiAgICBtYXA6IHtcbiAgICAgIGhlYWRlcjogZmFsc2UsXG4gICAgICB0eXBlOiAnbWFwJyxcbiAgICAgIGxheW91dDogeyB4OiAxLCB5OiAxLCBoZWlnaHQ6IDEyLCB3aWR0aDogMTIgfSxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgbGF5ZXJzOiBbXSxcbiAgICAgICAgZml0OiB0cnVlLFxuICAgICAgICBhdXRvbWF0aWNMYXllcnM6IHRydWVcbiAgICAgIH0sXG4gICAgICBkYXRhc291cmNlOiBbJyddXG4gICAgfVxuICB9IGFzIHsgW2tleTogc3RyaW5nXTogV2lkZ2V0TWFuaWZlc3QgfTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IFZpZXdNb2RlID0gVmlld01vZGU7XG4gIGNvbXBJZDogbnVtYmVyID0gMDtcbiAgdGFiOiBudW1iZXIgPSAwO1xuICBkYXRhc2V0SXRlbXMkOiBPYnNlcnZhYmxlPFJlc3VsdFNldHMgfCBudWxsPiB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGRhdGFzZXRWZXJzaW9ucyQhOiBPYnNlcnZhYmxlPERhdGFzZXRWZXJzaW9uW10+O1xuICBzaG93TW9kYWxTdGF0dXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2VsZWN0ZWREYXRhc2V0VmVyc2lvbj86IERhdGFzZXRWZXJzaW9uO1xuICBzZWxlY3RlZE1vZGU6IFZpZXdNb2RlID0gVmlld01vZGUuQ09OU1VMVDtcbiAgYWN0aXZlVmVyc2lvbiQhOiBPYnNlcnZhYmxlPHN0cmluZyB8IHVuZGVmaW5lZD47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUpIHtcbiAgICB0aGlzLmNvbXBJZCA9IG5leHRDb21wSWQrKztcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5saXN0VmVyc2lvbnNCeURhdGFzZXRJZCh7IGlkOiB0aGlzLmRhdGFzZXQuaWQgfSkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5yZW1vdmVGaWx0ZXJzKCkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goU2VhcmNoQWN0aW9ucy5nZXREYXRhc291cmNlSXRlbXMoeyBpZDogdGhpcy5kYXRhc2V0LmlkIH0pKTtcbiAgICB0aGlzLmRhdGFzZXRJdGVtcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMucmVzdWx0U2V0cyk7XG4gICAgdGhpcy5kYXRhc2V0VmVyc2lvbnMkID0gdGhpcy5zdG9yZVxuICAgICAgLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLm1hdGNoaW5nRGF0YXNldFZlcnNpb25zKHRoaXMuZGF0YXNldC5pZCkpXG4gICAgICAucGlwZShtYXAoKHJlcykgPT4gWy4uLnJlc10uc29ydCgoYSwgYikgPT4gYi52ZXJzaW9uIC0gYS52ZXJzaW9uKSkpO1xuICAgIHRoaXMud2lkZ2V0TWFuaWZlc3RbJ3RhYmxlJ10uZGF0YXNvdXJjZSA9IFt0aGlzLmRhdGFzZXQuaWRdO1xuICAgIHRoaXMud2lkZ2V0TWFuaWZlc3RbJ21hcCddLmRhdGFzb3VyY2UgPSBbdGhpcy5kYXRhc2V0LmlkXTtcbiAgICB0aGlzLmFjdGl2ZVZlcnNpb24kID0gdGhpcy5kYXRhc2V0VmVyc2lvbnMkLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgICh2ZXJzaW9ucykgPT5cbiAgICAgICAgICB2ZXJzaW9ucy5zb3J0KCh2MSwgdjIpID0+IHYyLnZlcnNpb24gLSB2MS52ZXJzaW9uKS5maW5kKCh2ZXJzaW9uKSA9PiB2ZXJzaW9uLnN0YXRlID09PSAnQUNUSVZFJyk/LmlkXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGdvQmFjaygpIHtcbiAgICB0aGlzLmdvVG9DYXRhbG9nLmVtaXQoKTtcbiAgfVxuXG4gIGdvVG9Db25zdWx0KHZlcnNpb246IERhdGFzZXRWZXJzaW9uIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGFzZXRWZXJzaW9uID0gdmVyc2lvbjtcbiAgICB0aGlzLnNob3dNb2RhbFN0YXR1cyA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0ZWRNb2RlID0gVmlld01vZGUuQ09OU1VMVDtcbiAgfVxuXG4gIHN3aXRjaChudW1iZXI6IG51bWJlcikge1xuICAgIHRoaXMudGFiID0gbnVtYmVyO1xuICB9XG5cbiAgaGFuZGxlQnV0dG9uQWN0aW9uKHZlcnNpb246IERhdGFzZXRWZXJzaW9uKSB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGFzZXRWZXJzaW9uID0gdmVyc2lvbjtcbiAgICBzd2l0Y2ggKHZlcnNpb24uc3RhdGUpIHtcbiAgICAgIGNhc2UgJ0VSUk9SJzpcbiAgICAgICAgdGhpcy5jb25zdWx0RXJyb3JzKHZlcnNpb24pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0FDVElWRSc6XG4gICAgICAgIHRoaXMuZGVhY3RpdmF0ZVZlcnNpb24odmVyc2lvbik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnSU5BQ1RJVkUnOlxuICAgICAgICB0aGlzLmFjdGl2YXRlVmVyc2lvbih2ZXJzaW9uKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBjb25zdWx0RXJyb3JzKHZlcnNpb246IERhdGFzZXRWZXJzaW9uKSB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGFzZXRWZXJzaW9uID0gdmVyc2lvbjtcbiAgICB0aGlzLnNob3dNb2RhbFN0YXR1cyA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIGRlYWN0aXZhdGVWZXJzaW9uKHZlcnNpb246IERhdGFzZXRWZXJzaW9uKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZGVhY3RpdmF0ZURhdGFzZXRWZXJzaW9uKHtcbiAgICAgICAgZGF0YXNldElkOiB0aGlzLmRhdGFzZXQuaWQsXG4gICAgICAgIHZlcnNpb25JZDogdmVyc2lvbi5pZFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhY3RpdmF0ZVZlcnNpb24odmVyc2lvbjogRGF0YXNldFZlcnNpb24pIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5hY3RpdmF0ZURhdGFzZXRWZXJzaW9uKHtcbiAgICAgICAgZGF0YXNldElkOiB0aGlzLmRhdGFzZXQuaWQsXG4gICAgICAgIHZlcnNpb25JZDogdmVyc2lvbi5pZFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbW9kaWZ5KHR5cGU6IHN0cmluZywgeyBtYW5pZmVzdCB9OiB7IG1hbmlmZXN0OiBXaWRnZXRNYW5pZmVzdCB9KSB7XG4gICAgdGhpcy53aWRnZXRNYW5pZmVzdFt0eXBlXSA9IG1hbmlmZXN0O1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXRfX3Rvb2xib3hcIj5cbiAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgKGNsaWNrKT1cImdvQmFjaygpXCI+e3sgJ0BwcnkuZGF0YXNldC5yZXR1cm5Ub0xpc3QnIHwgaTE4biB9fTwvYnV0dG9uPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJkYXRhc2V0LWxheW91dF9fY29udGVudFwiPlxuICA8aDEgY2xhc3M9XCJhLWgxXCI+e3sgZGF0YXNldC5uYW1lIH19PC9oMT5cbiAgPGRpdiBjbGFzcz1cImRhdGFzZXQtZGV0YWlsXCI+XG4gICAgPHByeS10YWItZ3JvdXAgdHJhbnNsYXRpb25TdHJpbmdCYXNlPVwiQHByeS5kYXRhc2V0LlwiPlxuICAgICAgPHByeS10YWIgW3RlbXBsYXRlUmVmXT1cInRhYmxlXCIgbmFtZT1cImRhdGFcIj48L3ByeS10YWI+XG4gICAgICA8cHJ5LXRhYiBbdGVtcGxhdGVSZWZdPVwibWFwXCIgbmFtZT1cIm1hcFwiPjwvcHJ5LXRhYj5cbiAgICAgIDxwcnktdGFiIFt0ZW1wbGF0ZVJlZl09XCJkYXRhc2V0VmVyc2lvbnNcIiBuYW1lPVwidmVyc2lvbkhpc3RvcnlcIj48L3ByeS10YWI+XG4gICAgPC9wcnktdGFiLWdyb3VwPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3RhYmxlPlxuICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWNvbnRhaW5lclwiPlxuICAgIDxwcnktZGFzaGJvYXJkIFtzdGF0aWNEYXNoYm9hcmRdPVwieyB3aWRnZXRzOiBbd2lkZ2V0TWFuaWZlc3RbJ3RhYmxlJ11dIH1cIj48L3ByeS1kYXNoYm9hcmQ+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbWFwPlxuICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWNvbnRhaW5lclwiPlxuICAgIDxwcnktZGFzaGJvYXJkIFtzdGF0aWNEYXNoYm9hcmRdPVwieyB3aWRnZXRzOiBbd2lkZ2V0TWFuaWZlc3RbJ21hcCddXSB9XCI+PC9wcnktZGFzaGJvYXJkPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2RhdGFzZXRWZXJzaW9ucz5cbiAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbnRhaW5lclwiPlxuICAgIDx0YWJsZSBjbGFzcz1cImEtdGFibGVcIj5cbiAgICAgIDxjYXB0aW9uPlxuICAgICAgICB7e1xuICAgICAgICAgICdAcHJ5LmFkbWluLmRhdGFzZXQudGl0bGUnIHwgaTE4blxuICAgICAgICB9fSxcbiAgICAgICAge3tcbiAgICAgICAgICAnQHByeS5hY3Rpb24uc29ydGFibGVDb2x1bW5IZWFkZXInIHwgaTE4blxuICAgICAgICB9fVxuICAgICAgPC9jYXB0aW9uPlxuICAgICAgPHRoZWFkPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRoPnt7ICdAcHJ5LmRhdGFzZXQudmVyc2lvbi50aXRsZScgfCBpMThuIH19PC90aD5cbiAgICAgICAgICA8dGg+e3sgJ0BwcnkuZGF0YXNldC5kYXRlJyB8IGkxOG4gfX08L3RoPlxuICAgICAgICAgIDx0aD57eyAnQHByeS5kYXRhc2V0LnN0YXR1cycgfCBpMThuIH19PC90aD5cbiAgICAgICAgICA8dGg+PC90aD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGhlYWQ+XG4gICAgICA8dGJvZHk+XG4gICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgdmVyc2lvbiBvZiBkYXRhc2V0VmVyc2lvbnMkIHwgYXN5bmNcIj5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICB7eyB2ZXJzaW9uLnZlcnNpb24gfX1cbiAgICAgICAgICAgIDxwcnktaWNvbiAqbmdJZj1cIihhY3RpdmVWZXJzaW9uJCB8IGFzeW5jKSA9PT0gdmVyc2lvbi5pZFwiIGljb25Tdmc9XCJjaGVja1wiIGNsYXNzPVwiY2hlY2tcIj48L3ByeS1pY29uPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPHRkIFtwcnlUb29sdGlwXT1cImRhdGVUb29sdGlwXCI+XG4gICAgICAgICAgICB7eyB2ZXJzaW9uLmxhc3RNb2RpZmllZCB8IHNpbmNlRGF0ZSB9fVxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkYXRlVG9vbHRpcD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tdG9vbHRpcFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHJvbGU9XCJ0b29sdGlwXCIgaWQ9XCJkYXRlVG9vbHRpcFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibS10b29sdGlwX190ZXh0XCI+IHt7IHZlcnNpb24ubGFzdE1vZGlmaWVkIHwgc2luY2VEYXRlIDogeyBvbmx5TG9jYWxlOiB0cnVlIH0gfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICgoYWN0aXZlVmVyc2lvbiQgfCBhc3luYykgPT09IHZlcnNpb24uaWRcbiAgICAgICAgICAgICAgICA/ICdAcHJ5LmRhdGFzZXQudmVyc2lvbi5jdXJyZW50bHlBY3RpdmUnXG4gICAgICAgICAgICAgICAgOiAnQHByeS5kYXRhc2V0LnZlcnNpb24uJyArIHZlcnNpb24uc3RhdGVcbiAgICAgICAgICAgICAgKSB8IGkxOG5cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1pY29uIGRlc2NyaXB0aW9uLWNvbnRhaW5lciBkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5mby10ZXh0XCI+aTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvbi10b29sdGlwXCI+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJhLXBcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInZlcnNpb24uc3RhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0VSUk9SJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmRhdGFzZXQudG9vbHRpcC5lcnJvcicgfCBpMThuIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInQUNUSVZFJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAoKGFjdGl2ZVZlcnNpb24kIHwgYXN5bmMpID09PSB2ZXJzaW9uLmlkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gJ0BwcnkuZGF0YXNldC50b29sdGlwLmFjdGl2ZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnQHByeS5kYXRhc2V0LnRvb2x0aXAuaW5hY3RpdmUnXG4gICAgICAgICAgICAgICAgICAgICAgICApIHwgaTE4blxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInTE9BRElORydcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyAnQHByeS5kYXRhc2V0LnRvb2x0aXAubG9hZGluZycgfCBpMThuIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInSU5ERVhJTkcnXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgJ0BwcnkuZGF0YXNldC50b29sdGlwLmxvYWRpbmcnIHwgaTE4biB9fVxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0lOQUNUSVZFJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmRhdGFzZXQudG9vbHRpcC5pbnZhbGlkJyB8IGkxOG4gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmVyc2lvbi5zdGF0ZSAhPT0gJ0xPQURJTkcnICYmIHZlcnNpb24uc3RhdGUgIT09ICdJTkRFWElORydcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnkgYS1idG4tLWljb24tdGV4dCBuZy1zdGFyLWluc2VydGVkXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQnV0dG9uQWN0aW9uKHZlcnNpb24pXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmRhdGFzZXQuYnV0dG9uQWN0aW9uLicgKyB2ZXJzaW9uLnN0YXRlIHwgaTE4biB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZlcnNpb24uc3RhdGUgPT09ICdBQ1RJVkUnIHx8IHZlcnNpb24uc3RhdGUgPT09ICdJTkFDVElWRSdcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1pY29uIGRlc2NyaXB0aW9uLWNvbnRhaW5lciBkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmZvLXRleHRcIj5pPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvbi10b29sdGlwIHZhbGlkYXRlLXRvb2x0aXBcIj5cbiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiYS1wXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgKHZlcnNpb24uc3RhdGUgPT09ICdBQ1RJVkUnXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdAcHJ5LmRhdGFzZXQudG9vbHRpcC5pblZhbGlkYXRlQnV0dG9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnQHByeS5kYXRhc2V0LnRvb2x0aXAudmFsaWRhdGVCdXR0b24nXG4gICAgICAgICAgICAgICAgICAgICAgKSB8IGkxOG5cbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2ZXJzaW9uLmhhc1dhcm5pbmdzICYmIHZlcnNpb24uc3RhdGUgIT09ICdFUlJPUidcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeSBhLWJ0bi0taWNvbi10ZXh0IG5nLXN0YXItaW5zZXJ0ZWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjb25zdWx0RXJyb3JzKHZlcnNpb24pXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmRhdGFzZXQuYnV0dG9uQWN0aW9uLldBUk5JTkcnIHwgaTE4biB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dNb2RhbFN0YXR1c1wiPlxuICA8cHJ5LW1vZGFsLXN0YXR1cyBbdmVyc2lvbl09XCJzZWxlY3RlZERhdGFzZXRWZXJzaW9uXCIgKGdvdG9Db25zdWx0KT1cImdvVG9Db25zdWx0KCRldmVudClcIj48L3ByeS1tb2RhbC1zdGF0dXM+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -8,11 +8,13 @@ import * as i1 from "@ngrx/store";
8
8
  import * as i2 from "@provoly/dashboard";
9
9
  import * as i3 from "@angular/common";
10
10
  import * as i4 from "@angular/forms";
11
- import * as i5 from "../style/css.component";
11
+ import * as i5 from "@provoly/dashboard/components/checkbox";
12
+ import * as i6 from "../style/css.component";
12
13
  export class PryImportComponent {
13
14
  constructor(store) {
14
15
  this.store = store;
15
16
  this.selectedFileType = 'csv';
17
+ this.normalizeGeoShape = false;
16
18
  this.fileTypes = [
17
19
  {
18
20
  label: 'Csv',
@@ -51,7 +53,12 @@ export class PryImportComponent {
51
53
  }
52
54
  submit() {
53
55
  if (this.file && this.datasetSelected && this.selectedFileType) {
54
- this.store.dispatch(ImportActions.upload({ file: this.file, dataset: this.datasetSelected, fileType: this.selectedFileType }));
56
+ this.store.dispatch(ImportActions.upload({
57
+ file: this.file,
58
+ dataset: this.datasetSelected,
59
+ fileType: this.selectedFileType,
60
+ normalizeGeo: this.normalizeGeoShape
61
+ }));
55
62
  this.showMessage = true;
56
63
  this.file = undefined;
57
64
  }
@@ -72,10 +79,10 @@ export class PryImportComponent {
72
79
  this.selectedFileType = fileType;
73
80
  }
74
81
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryImportComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
75
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryImportComponent, selector: "pry-import", ngImport: i0, template: "<pry-import-css></pry-import-css>\n<div class=\"o-import\">\n <h1 class=\"a-h1\">{{ '@pry.import.title' | i18n }}</h1>\n <div class=\"o-import__container\">\n <div class=\"o-import__container__input\">\n <div class=\"m-form-label-field\">\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"datasets\">{{ '@pry.import.fileType' | i18n }}</label>\n <pry-select\n class=\"a-pry-select\"\n id=\"fileType\"\n [items]=\"fileTypes\"\n [itemsAsOption]=\"true\"\n [ngModel]=\"fileTypes[0].value\"\n [disabled]=\"false\"\n (ngModelChange)=\"onFileTypeChange($event)\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n </div>\n <label class=\"a-h3\" for=\"upload_input\">\n {{ ('@pry.import.uploadTitle' + selectedFileType | i18n) }}\n </label>\n <div class=\"o-file-input\">\n <div *ngIf=\"file\" class=\"o-import__container__input__file\">\n <pry-icon iconSvg=\"download\"></pry-icon>\n <h3>{{ file.name }}</h3>\n <span>{{ getFileSize(file.size) }}</span>\n </div>\n <pry-upload\n id=\"upload_input\"\n [accept]=\"fileExtension[selectedFileType]\"\n mode=\"files\"\n (uploadedFile)=\"uploadedChange($event)\"\n labelTranslate=\"@pry.import.selectFile\"\n ></pry-upload>\n </div>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"datasets\">{{ '@pry.import.datasetImport' | i18n }}</label>\n <pry-select\n class=\"a-pry-select\"\n id=\"datasets\"\n [items]=\"datasets$ | async\"\n [itemsAsOption]=\"true\"\n [(ngModel)]=\"datasetSelected\"\n [placeholder]=\"'@pry.import.dataset' | i18n\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></pry-select>\n </div>\n <div class=\"o-import__container__input__actions\">\n <button class=\"a-btn a-btn--primary\" (click)=\"submit()\" [disabled]=\"isSubmitDisabled()\">\n {{ '@pry.import.import' | i18n }}\n </button>\n </div>\n </div>\n <ng-container *ngIf=\"showMessage\">\n <div class=\"o-import__result\">\n <h1>\n {{\n '@pry.import.consultDataset'\n | i18n\n : { parameter: datasetSelected ?? '' | translateId : { type: 'datasource', output: 'name' } | async }\n }}\n </h1>\n </div>\n </ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i2.PryUploadComponent, selector: "pry-upload", inputs: ["mode", "accept", "labelTranslate"], outputs: ["uploaded", "uploadedFile"] }, { kind: "component", type: i2.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: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.PryImportCssComponent, selector: "pry-import-css" }, { kind: "pipe", type: i2.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
82
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryImportComponent, selector: "pry-import", ngImport: i0, template: "<pry-import-css></pry-import-css>\n<div class=\"o-import\">\n <h1 class=\"a-h1\">{{ '@pry.import.title' | i18n }}</h1>\n <div class=\"o-import__container\">\n <div class=\"o-import__container__input\">\n <div class=\"m-form-label-field\">\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"datasets\">{{ '@pry.import.fileType' | i18n }}</label>\n <pry-select\n class=\"a-pry-select\"\n id=\"fileType\"\n [items]=\"fileTypes\"\n [itemsAsOption]=\"true\"\n [ngModel]=\"fileTypes[0].value\"\n [disabled]=\"false\"\n (ngModelChange)=\"onFileTypeChange($event)\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n </div>\n <label class=\"a-h3\" for=\"upload_input\">\n {{ '@pry.import.uploadTitle' + selectedFileType | i18n }}\n </label>\n <div class=\"o-file-input\">\n <div *ngIf=\"file\" class=\"o-import__container__input__file\">\n <pry-icon iconSvg=\"download\"></pry-icon>\n <h3>{{ file.name }}</h3>\n <span>{{ getFileSize(file.size) }}</span>\n </div>\n <pry-upload\n id=\"upload_input\"\n [accept]=\"fileExtension[selectedFileType]\"\n mode=\"files\"\n (uploadedFile)=\"uploadedChange($event)\"\n labelTranslate=\"@pry.import.selectFile\"\n ></pry-upload>\n </div>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"datasets\">{{ '@pry.import.datasetImport' | i18n }}</label>\n <pry-select\n class=\"a-pry-select\"\n id=\"datasets\"\n [items]=\"datasets$ | async\"\n [itemsAsOption]=\"true\"\n [(ngModel)]=\"datasetSelected\"\n [placeholder]=\"'@pry.import.dataset' | i18n\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></pry-select>\n </div>\n <pry-checkbox [(ngModel)]=\"normalizeGeoShape\">{{ '@pry.import.normalize' | i18n }}</pry-checkbox>\n <div class=\"o-import__container__input__actions\">\n <button class=\"a-btn a-btn--primary\" (click)=\"submit()\" [disabled]=\"isSubmitDisabled()\">\n {{ '@pry.import.import' | i18n }}\n </button>\n </div>\n </div>\n <ng-container *ngIf=\"showMessage\">\n <div class=\"o-import__result\">\n <h1>\n {{\n '@pry.import.consultDataset'\n | i18n\n : { parameter: datasetSelected ?? '' | translateId : { type: 'datasource', output: 'name' } | async }\n }}\n </h1>\n </div>\n </ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i2.PryUploadComponent, selector: "pry-upload", inputs: ["mode", "accept", "labelTranslate"], outputs: ["uploaded", "uploadedFile"] }, { kind: "component", type: i2.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: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "component", type: i6.PryImportCssComponent, selector: "pry-import-css" }, { kind: "pipe", type: i2.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
76
83
  }
77
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryImportComponent, decorators: [{
78
85
  type: Component,
79
- args: [{ selector: 'pry-import', template: "<pry-import-css></pry-import-css>\n<div class=\"o-import\">\n <h1 class=\"a-h1\">{{ '@pry.import.title' | i18n }}</h1>\n <div class=\"o-import__container\">\n <div class=\"o-import__container__input\">\n <div class=\"m-form-label-field\">\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"datasets\">{{ '@pry.import.fileType' | i18n }}</label>\n <pry-select\n class=\"a-pry-select\"\n id=\"fileType\"\n [items]=\"fileTypes\"\n [itemsAsOption]=\"true\"\n [ngModel]=\"fileTypes[0].value\"\n [disabled]=\"false\"\n (ngModelChange)=\"onFileTypeChange($event)\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n </div>\n <label class=\"a-h3\" for=\"upload_input\">\n {{ ('@pry.import.uploadTitle' + selectedFileType | i18n) }}\n </label>\n <div class=\"o-file-input\">\n <div *ngIf=\"file\" class=\"o-import__container__input__file\">\n <pry-icon iconSvg=\"download\"></pry-icon>\n <h3>{{ file.name }}</h3>\n <span>{{ getFileSize(file.size) }}</span>\n </div>\n <pry-upload\n id=\"upload_input\"\n [accept]=\"fileExtension[selectedFileType]\"\n mode=\"files\"\n (uploadedFile)=\"uploadedChange($event)\"\n labelTranslate=\"@pry.import.selectFile\"\n ></pry-upload>\n </div>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"datasets\">{{ '@pry.import.datasetImport' | i18n }}</label>\n <pry-select\n class=\"a-pry-select\"\n id=\"datasets\"\n [items]=\"datasets$ | async\"\n [itemsAsOption]=\"true\"\n [(ngModel)]=\"datasetSelected\"\n [placeholder]=\"'@pry.import.dataset' | i18n\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></pry-select>\n </div>\n <div class=\"o-import__container__input__actions\">\n <button class=\"a-btn a-btn--primary\" (click)=\"submit()\" [disabled]=\"isSubmitDisabled()\">\n {{ '@pry.import.import' | i18n }}\n </button>\n </div>\n </div>\n <ng-container *ngIf=\"showMessage\">\n <div class=\"o-import__result\">\n <h1>\n {{\n '@pry.import.consultDataset'\n | i18n\n : { parameter: datasetSelected ?? '' | translateId : { type: 'datasource', output: 'name' } | async }\n }}\n </h1>\n </div>\n </ng-container>\n </div>\n</div>\n" }]
86
+ args: [{ selector: 'pry-import', template: "<pry-import-css></pry-import-css>\n<div class=\"o-import\">\n <h1 class=\"a-h1\">{{ '@pry.import.title' | i18n }}</h1>\n <div class=\"o-import__container\">\n <div class=\"o-import__container__input\">\n <div class=\"m-form-label-field\">\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"datasets\">{{ '@pry.import.fileType' | i18n }}</label>\n <pry-select\n class=\"a-pry-select\"\n id=\"fileType\"\n [items]=\"fileTypes\"\n [itemsAsOption]=\"true\"\n [ngModel]=\"fileTypes[0].value\"\n [disabled]=\"false\"\n (ngModelChange)=\"onFileTypeChange($event)\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n </div>\n <label class=\"a-h3\" for=\"upload_input\">\n {{ '@pry.import.uploadTitle' + selectedFileType | i18n }}\n </label>\n <div class=\"o-file-input\">\n <div *ngIf=\"file\" class=\"o-import__container__input__file\">\n <pry-icon iconSvg=\"download\"></pry-icon>\n <h3>{{ file.name }}</h3>\n <span>{{ getFileSize(file.size) }}</span>\n </div>\n <pry-upload\n id=\"upload_input\"\n [accept]=\"fileExtension[selectedFileType]\"\n mode=\"files\"\n (uploadedFile)=\"uploadedChange($event)\"\n labelTranslate=\"@pry.import.selectFile\"\n ></pry-upload>\n </div>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"datasets\">{{ '@pry.import.datasetImport' | i18n }}</label>\n <pry-select\n class=\"a-pry-select\"\n id=\"datasets\"\n [items]=\"datasets$ | async\"\n [itemsAsOption]=\"true\"\n [(ngModel)]=\"datasetSelected\"\n [placeholder]=\"'@pry.import.dataset' | i18n\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></pry-select>\n </div>\n <pry-checkbox [(ngModel)]=\"normalizeGeoShape\">{{ '@pry.import.normalize' | i18n }}</pry-checkbox>\n <div class=\"o-import__container__input__actions\">\n <button class=\"a-btn a-btn--primary\" (click)=\"submit()\" [disabled]=\"isSubmitDisabled()\">\n {{ '@pry.import.import' | i18n }}\n </button>\n </div>\n </div>\n <ng-container *ngIf=\"showMessage\">\n <div class=\"o-import__result\">\n <h1>\n {{\n '@pry.import.consultDataset'\n | i18n\n : { parameter: datasetSelected ?? '' | translateId : { type: 'datasource', output: 'name' } | async }\n }}\n </h1>\n </div>\n </ng-container>\n </div>\n</div>\n" }]
80
87
  }], ctorParameters: function () { return [{ type: i1.Store }]; } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2ltcG9ydC9jb21wb25lbnRzL2ltcG9ydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9pbXBvcnQvY29tcG9uZW50cy9pbXBvcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQTJCLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JILE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7OztBQVE1RCxNQUFNLE9BQU8sa0JBQWtCO0lBc0I3QixZQUFvQixLQUFZO1FBQVosVUFBSyxHQUFMLEtBQUssQ0FBTztRQWxCaEMscUJBQWdCLEdBQWtCLEtBQUssQ0FBQztRQUV4QyxjQUFTLEdBQThDO1lBQ3JEO2dCQUNFLEtBQUssRUFBRSxLQUFLO2dCQUNaLEtBQUssRUFBRSxLQUFLO2FBQ2I7WUFDRDtnQkFDRSxLQUFLLEVBQUUsV0FBVztnQkFDbEIsS0FBSyxFQUFFLEtBQUs7YUFDYjtTQUNGLENBQUM7UUFFRixrQkFBYSxHQUFrQztZQUM3QyxHQUFHLEVBQUUsTUFBTTtZQUNYLEdBQUcsRUFBRSxNQUFNO1NBQ1osQ0FBQztRQUNGLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTNCLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFD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bnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgRGF0YXNldCwgRGF0YXNldFZlcnNpb24sIERhdGFTb3VyY2VBY3Rpb25zLCBEYXRhU291cmNlU2VsZWN0b3JzLCBQcnlEYXRhc2V0VHlwZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEltcG9ydEFjdGlvbnMgfSBmcm9tICcuLi9zdG9yZS9pbXBvcnQuYWN0aW9ucyc7XG5pbXBvcnQgeyBJbXBvcnRTZWxlY3RvcnMgfSBmcm9tICcuLi9zdG9yZS9pbXBvcnQuc2VsZWN0b3JzJztcblxudHlwZSBGaWxlRXh0ZW5zaW9uID0gJ2NzdicgfCAnemlwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWltcG9ydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbXBvcnQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByeUltcG9ydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGRhdGFzZXRzJDogT2JzZXJ2YWJsZTxEYXRhc2V0W10+O1xuICBmaWxlPzogRmlsZTtcbiAgZGF0YXNldFNlbGVjdGVkPzogc3RyaW5nO1xuICBzZWxlY3RlZEZpbGVUeXBlOiBGaWxlRXh0ZW5zaW9uID0gJ2Nzdic7XG4gIGxvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBmaWxlVHlwZXM6IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IEZpbGVFeHRlbnNpb24gfVtdID0gW1xuICAgIHtcbiAgICAgIGxhYmVsOiAnQ3N2JyxcbiAgICAgIHZhbHVlOiAnY3N2J1xuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdTaGFwZWZpbGUnLFxuICAgICAgdmFsdWU6ICd6aXAnXG4gICAgfVxuICBdO1xuXG4gIGZpbGVFeHRlbnNpb246IFJlY29yZDxGaWxlRXh0ZW5zaW9uLCBzdHJpbmc+ID0ge1xuICAgIGNzdjogJy5jc3YnLFxuICAgIHppcDogJy56aXAnXG4gIH07XG4gIHNob3dNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7XG4gICAgc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5sb2FkRGF0YXNldCgpKTtcbiAgICB0aGlzLmRhdGFzZXRzJCA9IHN0b3JlXG4gICAgICAuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZGF0YXNldHMpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChkYXRhc2V0cykgPT5cbiAgICAgICAgICBkYXRhc2V0c1xuICAgICAgICAgICAgLmZpbHRlcigoZGF0YXNldCkgPT4gZGF0YXNldC50eXBlID09PSBQcnlEYXRhc2V0VHlwZS5DTE9TRUQpXG4gICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gKGEubmFtZS50b0xvd2VyQ2FzZSgpID4gYi5uYW1lLnRvTG93ZXJDYXNlKCkgPyAxIDogLTEpKVxuICAgICAgICApXG4gICAgICApO1xuICAgIHRoaXMubG9hZGluZyQgPSBzdG9yZS5zZWxlY3QoSW1wb3J0U2VsZWN0b3JzLmxvYWRpbmcpO1xuICB9XG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc2hvd01lc3NhZ2UgPSBmYWxzZTtcbiAgfVxuXG4gIHNvcnRPYmplY3RFbnRyaWVzKG9iajogYW55KSB7XG4gICAgbGV0IGFycmF5U29ydGVkOiBhbnkgPSBbXTtcbiAgICBPYmplY3Qua2V5cyhvYmopXG4gICAgICAuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IGEgLSBiKVxuICAgICAgLmZvckVhY2goKGVsKSA9PiAoYXJyYXlTb3J0ZWRbZWxdID0gb2JqW2VsXSkpO1xuICAgIHJldHVybiBhcnJheVNvcnRlZDtcbiAgfVxuXG4gIHVwbG9hZGVkQ2hhbmdlKCRldmVudDogRmlsZSkge1xuICAgIHRoaXMuZmlsZSA9ICRldmVudDtcbiAgfVxuXG4gIHN1Ym1pdCgpIHtcbiAgICBpZiAodGhpcy5maWxlICYmIHRoaXMuZGF0YXNldFNlbGVjdGVkICYmIHRoaXMuc2VsZWN0ZWRGaWxlVHlwZSkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgSW1wb3J0QWN0aW9ucy51cGxvYWQoeyBmaWxlOiB0aGlzLmZpbGUsIGRhdGFzZXQ6IHRoaXMuZGF0YXNldFNlbGVjdGVkLCBmaWxlVHlwZTogdGhpcy5zZWxlY3RlZEZpbGVUeXBlIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5zaG93TWVzc2FnZSA9IHRydWU7XG4gICAgICB0aGlzLmZpbGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgaXNTdWJtaXREaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5maWxlID09PSB1bmRlZmluZWQgfHwgdGhpcy5kYXRhc2V0U2VsZWN0ZWQgPT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldEZpbGVTaXplKHNpemU6IG51bWJlcikge1xuICAgIGlmIChzaXplID49IDEwMDAgJiYgc2l6ZSA8IDEwMDAwMDApIHtcbiAgICAgIHJldHVybiBgJHsoc2l6ZSAvIDEwMDApLnRvRml4ZWQoMSl9IEtCYDtcbiAgICB9IGVsc2UgaWYgKHNpemUgPj0gMTAwMDAwMCkge1xuICAgICAgcmV0dXJuIGAkeyhzaXplIC8gMTAwMDAwMCkudG9GaXhlZCgxKX0gTUJgO1xuICAgIH1cbiAgICByZXR1cm4gYCR7c2l6ZX0gYnl0ZXNgO1xuICB9XG5cbiAgb25GaWxlVHlwZUNoYW5nZShmaWxlVHlwZTogRmlsZUV4dGVuc2lvbikge1xuICAgIHRoaXMuc2VsZWN0ZWRGaWxlVHlwZSA9IGZpbGVUeXBlO1xuICB9XG59XG4iLCI8cHJ5LWltcG9ydC1jc3M+PC9wcnktaW1wb3J0LWNzcz5cbjxkaXYgY2xhc3M9XCJvLWltcG9ydFwiPlxuICA8aDEgY2xhc3M9XCJhLWgxXCI+e3sgJ0BwcnkuaW1wb3J0LnRpdGxlJyB8IGkxOG4gfX08L2gxPlxuICA8ZGl2IGNsYXNzPVwiby1pbXBvcnRfX2NvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJvLWltcG9ydF9fY29udGFpbmVyX19pbnB1dFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1oM1wiIGZvcj1cImRhdGFzZXRzXCI+e3sgJ0BwcnkuaW1wb3J0LmZpbGVUeXBlJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgICAgICBjbGFzcz1cImEtcHJ5LXNlbGVjdFwiXG4gICAgICAgICAgICBpZD1cImZpbGVUeXBlXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJmaWxlVHlwZXNcIlxuICAgICAgICAgICAgW2l0ZW1zQXNPcHRpb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJmaWxlVHlwZXNbMF0udmFsdWVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRmlsZVR5cGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICBiaW5kVmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJsYWJlbFwiXG4gICAgICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtaDNcIiBmb3I9XCJ1cGxvYWRfaW5wdXRcIj5cbiAgICAgICAgICB7eyAoJ0BwcnkuaW1wb3J0LnVwbG9hZFRpdGxlJyArIHNlbGVjdGVkRmlsZVR5cGUgfCBpMThuKSB9fVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiby1maWxlLWlucHV0XCI+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImZpbGVcIiBjbGFzcz1cIm8taW1wb3J0X19jb250YWluZXJfX2lucHV0X19maWxlXCI+XG4gICAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImRvd25sb2FkXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgIDxoMz57eyBmaWxlLm5hbWUgfX08L2gzPlxuICAgICAgICAgICAgPHNwYW4+e3sgZ2V0RmlsZVNpemUoZmlsZS5zaXplKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8cHJ5LXVwbG9hZFxuICAgICAgICAgICAgaWQ9XCJ1cGxvYWRfaW5wdXRcIlxuICAgICAgICAgICAgW2FjY2VwdF09XCJmaWxlRXh0ZW5zaW9uW3NlbGVjdGVkRmlsZVR5cGVdXCJcbiAgICAgICAgICAgIG1vZGU9XCJmaWxlc1wiXG4gICAgICAgICAgICAodXBsb2FkZWRGaWxlKT1cInVwbG9hZGVkQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgbGFiZWxUcmFuc2xhdGU9XCJAcHJ5LmltcG9ydC5zZWxlY3RGaWxlXCJcbiAgICAgICAgICA+PC9wcnktdXBsb2FkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWgzXCIgZm9yPVwiZGF0YXNldHNcIj57eyAnQHByeS5pbXBvcnQuZGF0YXNldEltcG9ydCcgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgICBjbGFzcz1cImEtcHJ5LXNlbGVjdFwiXG4gICAgICAgICAgaWQ9XCJkYXRhc2V0c1wiXG4gICAgICAgICAgW2l0ZW1zXT1cImRhdGFzZXRzJCB8IGFzeW5jXCJcbiAgICAgICAgICBbaXRlbXNBc09wdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImRhdGFzZXRTZWxlY3RlZFwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidAcHJ5LmltcG9ydC5kYXRhc2V0JyB8IGkxOG5cIlxuICAgICAgICAgIGJpbmRWYWx1ZT1cImlkXCJcbiAgICAgICAgICBiaW5kTGFiZWw9XCJuYW1lXCJcbiAgICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm8taW1wb3J0X19jb250YWluZXJfX2lucHV0X19hY3Rpb25zXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiIChjbGljayk9XCJzdWJtaXQoKVwiIFtkaXNhYmxlZF09XCJpc1N1Ym1pdERpc2FibGVkKClcIj5cbiAgICAgICAgICB7eyAnQHByeS5pbXBvcnQuaW1wb3J0JyB8IGkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd01lc3NhZ2VcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLWltcG9ydF9fcmVzdWx0XCI+XG4gICAgICAgIDxoMT5cbiAgICAgICAgICB7e1xuICAgICAgICAgICAgJ0BwcnkuaW1wb3J0LmNvbnN1bHREYXRhc2V0J1xuICAgICAgICAgICAgICB8IGkxOG5cbiAgICAgICAgICAgICAgICA6IHsgcGFyYW1ldGVyOiBkYXRhc2V0U2VsZWN0ZWQgPz8gJycgfCB0cmFuc2xhdGVJZCA6IHsgdHlwZTogJ2RhdGFzb3VyY2UnLCBvdXRwdXQ6ICduYW1lJyB9IHwgYXN5bmMgfVxuICAgICAgICAgIH19XG4gICAgICAgIDwvaDE+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2ltcG9ydC9jb21wb25lbnRzL2ltcG9ydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9pbXBvcnQvY29tcG9uZW50cy9pbXBvcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQVcsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckcsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQVE1RCxNQUFNLE9BQU8sa0JBQWtCO0lBdUI3QixZQUFvQixLQUFZO1FBQVosVUFBSyxHQUFMLEtBQUssQ0FBTztRQW5CaEMscUJBQWdCLEdBQWtCLEtBQUssQ0FBQztRQUV4QyxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsY0FBUyxHQUE4QztZQUNyRDtnQkFDRSxLQUFLLEVBQUUsS0FBSztnQkFDWixLQUFLLEVBQUUsS0FBSzthQUNiO1lBQ0Q7Z0JBQ0UsS0FBSyxFQUFFLFdBQVc7Z0JBQ2xCLEtBQUssRUFBRSxLQUFLO2FBQ2I7U0FDRixDQUFDO1FBRUYsa0JBQWEsR0FBa0M7WUFDN0MsR0FBRyxFQUFFLE1BQU07WUFDWCxHQUFHLEVBQUUsTUFBTTtTQUNaLENBQUM7UUFDRixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUUzQixLQUFLLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLE9BQU8s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a0RDYi9CLG1zRkF1RUE7OzJGRDFEYSxrQkFBa0I7a0JBSjlCLFNBQVM7K0JBQ0UsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IERhdGFzZXQsIERhdGFTb3VyY2VBY3Rpb25zLCBEYXRhU291cmNlU2VsZWN0b3JzLCBQcnlEYXRhc2V0VHlwZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEltcG9ydEFjdGlvbnMgfSBmcm9tICcuLi9zdG9yZS9pbXBvcnQuYWN0aW9ucyc7XG5pbXBvcnQgeyBJbXBvcnRTZWxlY3RvcnMgfSBmcm9tICcuLi9zdG9yZS9pbXBvcnQuc2VsZWN0b3JzJztcblxudHlwZSBGaWxlRXh0ZW5zaW9uID0gJ2NzdicgfCAnemlwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWltcG9ydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbXBvcnQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByeUltcG9ydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGRhdGFzZXRzJDogT2JzZXJ2YWJsZTxEYXRhc2V0W10+O1xuICBmaWxlPzogRmlsZTtcbiAgZGF0YXNldFNlbGVjdGVkPzogc3RyaW5nO1xuICBzZWxlY3RlZEZpbGVUeXBlOiBGaWxlRXh0ZW5zaW9uID0gJ2Nzdic7XG4gIGxvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBub3JtYWxpemVHZW9TaGFwZSA9IGZhbHNlO1xuICBmaWxlVHlwZXM6IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IEZpbGVFeHRlbnNpb24gfVtdID0gW1xuICAgIHtcbiAgICAgIGxhYmVsOiAnQ3N2JyxcbiAgICAgIHZhbHVlOiAnY3N2J1xuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdTaGFwZWZpbGUnLFxuICAgICAgdmFsdWU6ICd6aXAnXG4gICAgfVxuICBdO1xuXG4gIGZpbGVFeHRlbnNpb246IFJlY29yZDxGaWxlRXh0ZW5zaW9uLCBzdHJpbmc+ID0ge1xuICAgIGNzdjogJy5jc3YnLFxuICAgIHppcDogJy56aXAnXG4gIH07XG4gIHNob3dNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7XG4gICAgc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5sb2FkRGF0YXNldCgpKTtcbiAgICB0aGlzLmRhdGFzZXRzJCA9IHN0b3JlXG4gICAgICAuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZGF0YXNldHMpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChkYXRhc2V0cykgPT5cbiAgICAgICAgICBkYXRhc2V0c1xuICAgICAgICAgICAgLmZpbHRlcigoZGF0YXNldCkgPT4gZGF0YXNldC50eXBlID09PSBQcnlEYXRhc2V0VHlwZS5DTE9TRUQpXG4gICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gKGEubmFtZS50b0xvd2VyQ2FzZSgpID4gYi5uYW1lLnRvTG93ZXJDYXNlKCkgPyAxIDogLTEpKVxuICAgICAgICApXG4gICAgICApO1xuICAgIHRoaXMubG9hZGluZyQgPSBzdG9yZS5zZWxlY3QoSW1wb3J0U2VsZWN0b3JzLmxvYWRpbmcpO1xuICB9XG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc2hvd01lc3NhZ2UgPSBmYWxzZTtcbiAgfVxuXG4gIHNvcnRPYmplY3RFbnRyaWVzKG9iajogYW55KSB7XG4gICAgbGV0IGFycmF5U29ydGVkOiBhbnkgPSBbXTtcbiAgICBPYmplY3Qua2V5cyhvYmopXG4gICAgICAuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IGEgLSBiKVxuICAgICAgLmZvckVhY2goKGVsKSA9PiAoYXJyYXlTb3J0ZWRbZWxdID0gb2JqW2VsXSkpO1xuICAgIHJldHVybiBhcnJheVNvcnRlZDtcbiAgfVxuXG4gIHVwbG9hZGVkQ2hhbmdlKCRldmVudDogRmlsZSkge1xuICAgIHRoaXMuZmlsZSA9ICRldmVudDtcbiAgfVxuXG4gIHN1Ym1pdCgpIHtcbiAgICBpZiAodGhpcy5maWxlICYmIHRoaXMuZGF0YXNldFNlbGVjdGVkICYmIHRoaXMuc2VsZWN0ZWRGaWxlVHlwZSkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgSW1wb3J0QWN0aW9ucy51cGxvYWQoe1xuICAgICAgICAgIGZpbGU6IHRoaXMuZmlsZSxcbiAgICAgICAgICBkYXRhc2V0OiB0aGlzLmRhdGFzZXRTZWxlY3RlZCxcbiAgICAgICAgICBmaWxlVHlwZTogdGhpcy5zZWxlY3RlZEZpbGVUeXBlLFxuICAgICAgICAgIG5vcm1hbGl6ZUdlbzogdGhpcy5ub3JtYWxpemVHZW9TaGFwZVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHRoaXMuc2hvd01lc3NhZ2UgPSB0cnVlO1xuICAgICAgdGhpcy5maWxlID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIGlzU3VibWl0RGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuZGF0YXNldFNlbGVjdGVkID09PSB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXRGaWxlU2l6ZShzaXplOiBudW1iZXIpIHtcbiAgICBpZiAoc2l6ZSA+PSAxMDAwICYmIHNpemUgPCAxMDAwMDAwKSB7XG4gICAgICByZXR1cm4gYCR7KHNpemUgLyAxMDAwKS50b0ZpeGVkKDEpfSBLQmA7XG4gICAgfSBlbHNlIGlmIChzaXplID49IDEwMDAwMDApIHtcbiAgICAgIHJldHVybiBgJHsoc2l6ZSAvIDEwMDAwMDApLnRvRml4ZWQoMSl9IE1CYDtcbiAgICB9XG4gICAgcmV0dXJuIGAke3NpemV9IGJ5dGVzYDtcbiAgfVxuXG4gIG9uRmlsZVR5cGVDaGFuZ2UoZmlsZVR5cGU6IEZpbGVFeHRlbnNpb24pIHtcbiAgICB0aGlzLnNlbGVjdGVkRmlsZVR5cGUgPSBmaWxlVHlwZTtcbiAgfVxufVxuIiwiPHByeS1pbXBvcnQtY3NzPjwvcHJ5LWltcG9ydC1jc3M+XG48ZGl2IGNsYXNzPVwiby1pbXBvcnRcIj5cbiAgPGgxIGNsYXNzPVwiYS1oMVwiPnt7ICdAcHJ5LmltcG9ydC50aXRsZScgfCBpMThuIH19PC9oMT5cbiAgPGRpdiBjbGFzcz1cIm8taW1wb3J0X19jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiby1pbXBvcnRfX2NvbnRhaW5lcl9faW5wdXRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImEtaDNcIiBmb3I9XCJkYXRhc2V0c1wiPnt7ICdAcHJ5LmltcG9ydC5maWxlVHlwZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgY2xhc3M9XCJhLXByeS1zZWxlY3RcIlxuICAgICAgICAgICAgaWQ9XCJmaWxlVHlwZVwiXG4gICAgICAgICAgICBbaXRlbXNdPVwiZmlsZVR5cGVzXCJcbiAgICAgICAgICAgIFtpdGVtc0FzT3B0aW9uXT1cInRydWVcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwiZmlsZVR5cGVzWzBdLnZhbHVlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkZpbGVUeXBlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgYmluZFZhbHVlPVwidmFsdWVcIlxuICAgICAgICAgICAgYmluZExhYmVsPVwibGFiZWxcIlxuICAgICAgICAgID48L3ByeS1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWgzXCIgZm9yPVwidXBsb2FkX2lucHV0XCI+XG4gICAgICAgICAge3sgJ0BwcnkuaW1wb3J0LnVwbG9hZFRpdGxlJyArIHNlbGVjdGVkRmlsZVR5cGUgfCBpMThuIH19XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvLWZpbGUtaW5wdXRcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZmlsZVwiIGNsYXNzPVwiby1pbXBvcnRfX2NvbnRhaW5lcl9faW5wdXRfX2ZpbGVcIj5cbiAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiZG93bmxvYWRcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgPGgzPnt7IGZpbGUubmFtZSB9fTwvaDM+XG4gICAgICAgICAgICA8c3Bhbj57eyBnZXRGaWxlU2l6ZShmaWxlLnNpemUpIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxwcnktdXBsb2FkXG4gICAgICAgICAgICBpZD1cInVwbG9hZF9pbnB1dFwiXG4gICAgICAgICAgICBbYWNjZXB0XT1cImZpbGVFeHRlbnNpb25bc2VsZWN0ZWRGaWxlVHlwZV1cIlxuICAgICAgICAgICAgbW9kZT1cImZpbGVzXCJcbiAgICAgICAgICAgICh1cGxvYWRlZEZpbGUpPVwidXBsb2FkZWRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICBsYWJlbFRyYW5zbGF0ZT1cIkBwcnkuaW1wb3J0LnNlbGVjdEZpbGVcIlxuICAgICAgICAgID48L3ByeS11cGxvYWQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtaDNcIiBmb3I9XCJkYXRhc2V0c1wiPnt7ICdAcHJ5LmltcG9ydC5kYXRhc2V0SW1wb3J0JyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgIGNsYXNzPVwiYS1wcnktc2VsZWN0XCJcbiAgICAgICAgICBpZD1cImRhdGFzZXRzXCJcbiAgICAgICAgICBbaXRlbXNdPVwiZGF0YXNldHMkIHwgYXN5bmNcIlxuICAgICAgICAgIFtpdGVtc0FzT3B0aW9uXT1cInRydWVcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiZGF0YXNldFNlbGVjdGVkXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0BwcnkuaW1wb3J0LmRhdGFzZXQnIHwgaTE4blwiXG4gICAgICAgICAgYmluZFZhbHVlPVwiaWRcIlxuICAgICAgICAgIGJpbmRMYWJlbD1cIm5hbWVcIlxuICAgICAgICA+PC9wcnktc2VsZWN0PlxuICAgICAgPC9kaXY+XG4gICAgICA8cHJ5LWNoZWNrYm94IFsobmdNb2RlbCldPVwibm9ybWFsaXplR2VvU2hhcGVcIj57eyAnQHByeS5pbXBvcnQubm9ybWFsaXplJyB8IGkxOG4gfX08L3ByeS1jaGVja2JveD5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLWltcG9ydF9fY29udGFpbmVyX19pbnB1dF9fYWN0aW9uc1wiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiAoY2xpY2spPVwic3VibWl0KClcIiBbZGlzYWJsZWRdPVwiaXNTdWJtaXREaXNhYmxlZCgpXCI+XG4gICAgICAgICAge3sgJ0BwcnkuaW1wb3J0LmltcG9ydCcgfCBpMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dNZXNzYWdlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1pbXBvcnRfX3Jlc3VsdFwiPlxuICAgICAgICA8aDE+XG4gICAgICAgICAge3tcbiAgICAgICAgICAgICdAcHJ5LmltcG9ydC5jb25zdWx0RGF0YXNldCdcbiAgICAgICAgICAgICAgfCBpMThuXG4gICAgICAgICAgICAgICAgOiB7IHBhcmFtZXRlcjogZGF0YXNldFNlbGVjdGVkID8/ICcnIHwgdHJhbnNsYXRlSWQgOiB7IHR5cGU6ICdkYXRhc291cmNlJywgb3V0cHV0OiAnbmFtZScgfSB8IGFzeW5jIH1cbiAgICAgICAgICB9fVxuICAgICAgICA8L2gxPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -23,8 +23,9 @@ export const enTranslations = {
23
23
  NB_ATTRIBUTES: 'The number of columns in the file does not match the number of attributes in the chosen dataset',
24
24
  CAST: 'Value {{name}} could not be casted to type "{{type}}"',
25
25
  ELASTIC_SEARCH: 'Elastic Search error: {{elasticError}}'
26
- }
26
+ },
27
+ normalize: 'Standardize geographic shapes'
27
28
  }
28
29
  }
29
30
  };
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4udHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvaW1wb3J0L2kxOG4vZW4udHJhbnNsYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsYUFBYTtZQUNwQixhQUFhLEVBQUUsYUFBYTtZQUM1QixNQUFNLEVBQUUsUUFBUTtZQUNoQixVQUFVLEVBQUUsZUFBZTtZQUMzQixZQUFZLEVBQUUsbUJBQW1CO1lBQ2pDLGNBQWMsRUFBRSxvQkFBb0I7WUFDcEMsY0FBYyxFQUFFLG9CQUFvQjtZQUNwQyxVQUFVLEVBQUUsYUFBYTtZQUN6QixhQUFhLEVBQUUsZ0JBQWdCO1lBQy9CLGNBQWMsRUFBRSx3RkFBd0Y7WUFDeEcsTUFBTSxFQUFFLFFBQVE7WUFDaEIsS0FBSyxFQUFFLDBCQUEwQjtZQUNqQyxJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLFdBQVcsRUFBRSxpQkFBaUI7WUFDOUIsT0FBTyxFQUFFLFNBQVM7WUFDbEIsUUFBUSxFQUFFLGtCQUFrQjtZQUM1QixJQUFJLEVBQUU7Z0JBQ0osWUFBWSxFQUFFLHdGQUF3RjtnQkFDdEcsY0FBYyxFQUFFLHNCQUFzQjtnQkFDdEMsYUFBYSxFQUNYLGlHQUFpRztnQkFDbkcsSUFBSSxFQUFFLHVEQUF1RDtnQkFDN0QsY0FBYyxFQUFFLHdDQUF3QzthQUN6RDtTQUNGO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVuVHJhbnNsYXRpb25zID0ge1xuICAnQHByeSc6IHtcbiAgICBpbXBvcnQ6IHtcbiAgICAgIHRpdGxlOiAnSW1wb3J0IGRhdGEnLFxuICAgICAgZGF0YXNldEltcG9ydDogJ0ltcG9ydCBpbiA6JyxcbiAgICAgIGltcG9ydDogJ0ltcG9ydCcsXG4gICAgICBlcnJvclRpdGxlOiAnSW1wb3J0IGZhaWxlZCcsXG4gICAgICBzdWNjZXNzVGl0bGU6ICdJbXBvcnQgc3VjY2Vzc2Z1bCcsXG4gICAgICB1cGxvYWRUaXRsZXppcDogJ0Nob29zZSBhIC56aXAgZmlsZScsXG4gICAgICB1cGxvYWRUaXRsZWNzdjogJ0Nob29zZSBhIC5jc3YgZmlsZScsXG4gICAgICBzZWxlY3RGaWxlOiAnU2VsZWN0IGZpbGUnLFxuICAgICAgaW1wb3J0ZWRMaW5lczogJ2ltcG9ydGVkIGxpbmVzJyxcbiAgICAgIGNvbnN1bHREYXRhc2V0OiAnVGhlIGltcG9ydCBpcyBpbiBwcm9ncmVzcywgc2VlIHRoZSB7eyBwYXJhbWV0ZXIgfX0gZGF0YXNldCBwYWdlIHRvIGNoZWNrIGl0cyBjb25kaXRpb24nLFxuICAgICAgZXJyb3JzOiAnZXJyb3JzJyxcbiAgICAgIGVycm9yOiAnRXJyb3Igb24gaW1wb3J0OiB7e21zZ319JyxcbiAgICAgIGxpbmU6ICdMaW5lIHt7bGluZX19OiAnLFxuICAgICAgd2l0aG91dExpbmU6ICdHbG9iYWwgZXJyb3JzOiAnLFxuICAgICAgZGF0YXNldDogJ0RhdGFzZXQnLFxuICAgICAgZmlsZVR5cGU6ICdTZWxlY3QgZmlsZSB0eXBlJyxcbiAgICAgIGNvZGU6IHtcbiAgICAgICAgVU5SRUNPR05JWkVEOiAnUHJvdmlkZWQgZmlsZSBjb250YWlucyBhIGNvbHVtbiBcInt7bmFtZX19XCIsIHdoaWNoIGlzIG5vdCBwcmVzZW50IGluIHRoZSBjaG9zZW4gZGF0YXNldCcsXG4gICAgICAgIEZJTEVfTUFOREFUT1JZOiAnTm8gZmlsZSB3YXMgcHJvdmlkZWQnLFxuICAgICAgICBOQl9BVFRSSUJVVEVTOlxuICAgICAgICAgICdUaGUgbnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGZpbGUgZG9lcyBub3QgbWF0Y2ggdGhlIG51bWJlciBvZiBhdHRyaWJ1dGVzIGluIHRoZSBjaG9zZW4gZGF0YXNldCcsXG4gICAgICAgIENBU1Q6ICdWYWx1ZSB7e25hbWV9fSBjb3VsZCBub3QgYmUgY2FzdGVkIHRvIHR5cGUgXCJ7e3R5cGV9fVwiJyxcbiAgICAgICAgRUxBU1RJQ19TRUFSQ0g6ICdFbGFzdGljIFNlYXJjaCBlcnJvcjoge3tlbGFzdGljRXJyb3J9fSdcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4udHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvaW1wb3J0L2kxOG4vZW4udHJhbnNsYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsYUFBYTtZQUNwQixhQUFhLEVBQUUsYUFBYTtZQUM1QixNQUFNLEVBQUUsUUFBUTtZQUNoQixVQUFVLEVBQUUsZUFBZTtZQUMzQixZQUFZLEVBQUUsbUJBQW1CO1lBQ2pDLGNBQWMsRUFBRSxvQkFBb0I7WUFDcEMsY0FBYyxFQUFFLG9CQUFvQjtZQUNwQyxVQUFVLEVBQUUsYUFBYTtZQUN6QixhQUFhLEVBQUUsZ0JBQWdCO1lBQy9CLGNBQWMsRUFBRSx3RkFBd0Y7WUFDeEcsTUFBTSxFQUFFLFFBQVE7WUFDaEIsS0FBSyxFQUFFLDBCQUEwQjtZQUNqQyxJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLFdBQVcsRUFBRSxpQkFBaUI7WUFDOUIsT0FBTyxFQUFFLFNBQVM7WUFDbEIsUUFBUSxFQUFFLGtCQUFrQjtZQUM1QixJQUFJLEVBQUU7Z0JBQ0osWUFBWSxFQUFFLHdGQUF3RjtnQkFDdEcsY0FBYyxFQUFFLHNCQUFzQjtnQkFDdEMsYUFBYSxFQUNYLGlHQUFpRztnQkFDbkcsSUFBSSxFQUFFLHVEQUF1RDtnQkFDN0QsY0FBYyxFQUFFLHdDQUF3QzthQUN6RDtZQUNELFNBQVMsRUFBRSwrQkFBK0I7U0FDM0M7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW5UcmFuc2xhdGlvbnMgPSB7XG4gICdAcHJ5Jzoge1xuICAgIGltcG9ydDoge1xuICAgICAgdGl0bGU6ICdJbXBvcnQgZGF0YScsXG4gICAgICBkYXRhc2V0SW1wb3J0OiAnSW1wb3J0IGluIDonLFxuICAgICAgaW1wb3J0OiAnSW1wb3J0JyxcbiAgICAgIGVycm9yVGl0bGU6ICdJbXBvcnQgZmFpbGVkJyxcbiAgICAgIHN1Y2Nlc3NUaXRsZTogJ0ltcG9ydCBzdWNjZXNzZnVsJyxcbiAgICAgIHVwbG9hZFRpdGxlemlwOiAnQ2hvb3NlIGEgLnppcCBmaWxlJyxcbiAgICAgIHVwbG9hZFRpdGxlY3N2OiAnQ2hvb3NlIGEgLmNzdiBmaWxlJyxcbiAgICAgIHNlbGVjdEZpbGU6ICdTZWxlY3QgZmlsZScsXG4gICAgICBpbXBvcnRlZExpbmVzOiAnaW1wb3J0ZWQgbGluZXMnLFxuICAgICAgY29uc3VsdERhdGFzZXQ6ICdUaGUgaW1wb3J0IGlzIGluIHByb2dyZXNzLCBzZWUgdGhlIHt7IHBhcmFtZXRlciB9fSBkYXRhc2V0IHBhZ2UgdG8gY2hlY2sgaXRzIGNvbmRpdGlvbicsXG4gICAgICBlcnJvcnM6ICdlcnJvcnMnLFxuICAgICAgZXJyb3I6ICdFcnJvciBvbiBpbXBvcnQ6IHt7bXNnfX0nLFxuICAgICAgbGluZTogJ0xpbmUge3tsaW5lfX06ICcsXG4gICAgICB3aXRob3V0TGluZTogJ0dsb2JhbCBlcnJvcnM6ICcsXG4gICAgICBkYXRhc2V0OiAnRGF0YXNldCcsXG4gICAgICBmaWxlVHlwZTogJ1NlbGVjdCBmaWxlIHR5cGUnLFxuICAgICAgY29kZToge1xuICAgICAgICBVTlJFQ09HTklaRUQ6ICdQcm92aWRlZCBmaWxlIGNvbnRhaW5zIGEgY29sdW1uIFwie3tuYW1lfX1cIiwgd2hpY2ggaXMgbm90IHByZXNlbnQgaW4gdGhlIGNob3NlbiBkYXRhc2V0JyxcbiAgICAgICAgRklMRV9NQU5EQVRPUlk6ICdObyBmaWxlIHdhcyBwcm92aWRlZCcsXG4gICAgICAgIE5CX0FUVFJJQlVURVM6XG4gICAgICAgICAgJ1RoZSBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZmlsZSBkb2VzIG5vdCBtYXRjaCB0aGUgbnVtYmVyIG9mIGF0dHJpYnV0ZXMgaW4gdGhlIGNob3NlbiBkYXRhc2V0JyxcbiAgICAgICAgQ0FTVDogJ1ZhbHVlIHt7bmFtZX19IGNvdWxkIG5vdCBiZSBjYXN0ZWQgdG8gdHlwZSBcInt7dHlwZX19XCInLFxuICAgICAgICBFTEFTVElDX1NFQVJDSDogJ0VsYXN0aWMgU2VhcmNoIGVycm9yOiB7e2VsYXN0aWNFcnJvcn19J1xuICAgICAgfSxcbiAgICAgIG5vcm1hbGl6ZTogJ1N0YW5kYXJkaXplIGdlb2dyYXBoaWMgc2hhcGVzJ1xuICAgIH1cbiAgfVxufTtcbiJdfQ==
@@ -24,8 +24,9 @@ export const frTranslations = {
24
24
  NB_ATTRIBUTES: "Le nombre des colonnes dans le fichier fourni ne correspond pas au nombre d'attributs dans le jeu de données choisi",
25
25
  CAST: "La valeur «\u00A0{{name}}\u00A0», n'a pas pu être convertie en type «\u00A0{{type}}\u00A0»,",
26
26
  ELASTIC_SEARCH: 'Elastic Search stack trace error: {{elasticError}}'
27
- }
27
+ },
28
+ normalize: 'Normaliser les formes géographiques'
28
29
  }
29
30
  }
30
31
  };
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnIudHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvaW1wb3J0L2kxOG4vZnIudHJhbnNsYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsbUJBQW1CO1lBQzFCLGFBQWEsRUFBRSxrQ0FBa0M7WUFDakQsTUFBTSxFQUFFLFVBQVU7WUFDbEIsVUFBVSxFQUFFLG1CQUFtQjtZQUMvQixZQUFZLEVBQUUsMEJBQTBCO1lBQ3hDLGNBQWMsRUFBRSx5QkFBeUI7WUFDekMsY0FBYyxFQUFFLHlCQUF5QjtZQUN6QyxVQUFVLEVBQUUseUJBQXlCO1lBQ3JDLGFBQWEsRUFBRSxvQkFBb0I7WUFDbkMsY0FBYyxFQUFFLGlHQUFpRztZQUNqSCxjQUFjLEVBQUUseUJBQXlCO1lBQ3pDLEtBQUssRUFBRSxrQ0FBa0M7WUFDekMsTUFBTSxFQUFFLFdBQVc7WUFDbkIsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixXQUFXLEVBQUUsb0JBQW9CO1lBQ2pDLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsUUFBUSxFQUFFLGlDQUFpQztZQUMzQyxJQUFJLEVBQUU7Z0JBQ0osWUFBWSxFQUNWLHFIQUFxSDtnQkFDdkgsY0FBYyxFQUFFLHNCQUFzQjtnQkFDdEMsYUFBYSxFQUNYLHFIQUFxSDtnQkFDdkgsSUFBSSxFQUFFLDZGQUE2RjtnQkFDbkcsY0FBYyxFQUFFLG9EQUFvRDthQUNyRTtTQUNGO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGZyVHJhbnNsYXRpb25zID0ge1xuICAnQHByeSc6IHtcbiAgICBpbXBvcnQ6IHtcbiAgICAgIHRpdGxlOiAnSW1wb3J0IGRlIGRvbm7DqWVzJyxcbiAgICAgIGRhdGFzZXRJbXBvcnQ6ICdJbXBvcnRlciBkYW5zIHVuIGpldSBkZSBkb25uw6llczonLFxuICAgICAgaW1wb3J0OiAnSW1wb3J0ZXInLFxuICAgICAgZXJyb3JUaXRsZTogXCJMJ2ltcG9ydCBhIMOpY2hvdcOpXCIsXG4gICAgICBzdWNjZXNzVGl0bGU6ICdJbXBvcnQgZGUgZG9ubsOpZXMgcsOpdXNzaScsXG4gICAgICB1cGxvYWRUaXRsZXppcDogJ0Nob2lzaXIgdW4gZmljaGllciAuemlwJyxcbiAgICAgIHVwbG9hZFRpdGxlY3N2OiAnQ2hvaXNpciB1biBmaWNoaWVyIC5jc3YnLFxuICAgICAgc2VsZWN0RmlsZTogJ1PDqWxlY3Rpb25uZXIgdW4gZmljaGllcicsXG4gICAgICBpbXBvcnRlZExpbmVzOiAnbGlnbmVzIGltcG9ydMOpZShzKScsXG4gICAgICBjb25zdWx0RGF0YXNldDogXCJMJ2ltcG9ydCBlc3QgZW4gY291cnMsIGNvbnN1bHRleiBsYSBwYWdlIGR1IGpldSBkZSBkb25uw6llcyB7e3BhcmFtZXRlcn19IHBvdXIgdsOpcmlmaWVyIHNvbiDDqXRhdFwiLFxuICAgICAgc2hhcGVmaWxlU3RhdGU6ICcgcG91ciB2w6lyaWZpZXIgc29uIMOpdGF0JyxcbiAgICAgIGVycm9yOiBcIkVycmV1ciBsb3JzIGRlIGwnaW1wb3J0OiB7e21zZ319XCIsXG4gICAgICBlcnJvcnM6ICdlcnJldXIocyknLFxuICAgICAgbGluZTogJ0xpZ25lIHt7bGluZX19OiAnLFxuICAgICAgd2l0aG91dExpbmU6ICdFcnJldXJzIGdsb2JhbGVzOiAnLFxuICAgICAgZGF0YXNldDogJ0pldSBkZSBkb25uw6llcycsXG4gICAgICBmaWxlVHlwZTogJ1PDqWxlY3Rpb25uZXIgdW4gdHlwZSBkZSBmaWNoaWVyJyxcbiAgICAgIGNvZGU6IHtcbiAgICAgICAgVU5SRUNPR05JWkVEOlxuICAgICAgICAgIFwiTGUgZmljaGllciBmb3VybmkgY29udGllbnQgdW5lIGNvbG9ubmUgwqtcXHUwMEEwe3tuYW1lfX1cXHUwMEEwwrssIHF1aSBuJ2VzdCBwYXMgcHLDqXNlbnRlIGRhbnMgbGUgamV1IGRlIGRvbm7DqWVzIGNob2lzaVwiLFxuICAgICAgICBGSUxFX01BTkRBVE9SWTogJ0F1Y3VuIGZpY2hpZXIgZm91cm5pJyxcbiAgICAgICAgTkJfQVRUUklCVVRFUzpcbiAgICAgICAgICBcIkxlIG5vbWJyZSBkZXMgY29sb25uZXMgZGFucyBsZSBmaWNoaWVyIGZvdXJuaSBuZSBjb3JyZXNwb25kIHBhcyBhdSBub21icmUgZCdhdHRyaWJ1dHMgZGFucyBsZSBqZXUgZGUgZG9ubsOpZXMgY2hvaXNpXCIsXG4gICAgICAgIENBU1Q6IFwiTGEgdmFsZXVyIMKrXFx1MDBBMHt7bmFtZX19XFx1MDBBMMK7LCBuJ2EgcGFzIHB1IMOqdHJlIGNvbnZlcnRpZSBlbiB0eXBlIMKrXFx1MDBBMHt7dHlwZX19XFx1MDBBMMK7LFwiLFxuICAgICAgICBFTEFTVElDX1NFQVJDSDogJ0VsYXN0aWMgU2VhcmNoIHN0YWNrIHRyYWNlIGVycm9yOiB7e2VsYXN0aWNFcnJvcn19J1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcbiJdfQ==
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnIudHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvaW1wb3J0L2kxOG4vZnIudHJhbnNsYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsbUJBQW1CO1lBQzFCLGFBQWEsRUFBRSxrQ0FBa0M7WUFDakQsTUFBTSxFQUFFLFVBQVU7WUFDbEIsVUFBVSxFQUFFLG1CQUFtQjtZQUMvQixZQUFZLEVBQUUsMEJBQTBCO1lBQ3hDLGNBQWMsRUFBRSx5QkFBeUI7WUFDekMsY0FBYyxFQUFFLHlCQUF5QjtZQUN6QyxVQUFVLEVBQUUseUJBQXlCO1lBQ3JDLGFBQWEsRUFBRSxvQkFBb0I7WUFDbkMsY0FBYyxFQUFFLGlHQUFpRztZQUNqSCxjQUFjLEVBQUUseUJBQXlCO1lBQ3pDLEtBQUssRUFBRSxrQ0FBa0M7WUFDekMsTUFBTSxFQUFFLFdBQVc7WUFDbkIsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixXQUFXLEVBQUUsb0JBQW9CO1lBQ2pDLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsUUFBUSxFQUFFLGlDQUFpQztZQUMzQyxJQUFJLEVBQUU7Z0JBQ0osWUFBWSxFQUNWLHFIQUFxSDtnQkFDdkgsY0FBYyxFQUFFLHNCQUFzQjtnQkFDdEMsYUFBYSxFQUNYLHFIQUFxSDtnQkFDdkgsSUFBSSxFQUFFLDZGQUE2RjtnQkFDbkcsY0FBYyxFQUFFLG9EQUFvRDthQUNyRTtZQUNELFNBQVMsRUFBRSxxQ0FBcUM7U0FDakQ7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZnJUcmFuc2xhdGlvbnMgPSB7XG4gICdAcHJ5Jzoge1xuICAgIGltcG9ydDoge1xuICAgICAgdGl0bGU6ICdJbXBvcnQgZGUgZG9ubsOpZXMnLFxuICAgICAgZGF0YXNldEltcG9ydDogJ0ltcG9ydGVyIGRhbnMgdW4gamV1IGRlIGRvbm7DqWVzOicsXG4gICAgICBpbXBvcnQ6ICdJbXBvcnRlcicsXG4gICAgICBlcnJvclRpdGxlOiBcIkwnaW1wb3J0IGEgw6ljaG91w6lcIixcbiAgICAgIHN1Y2Nlc3NUaXRsZTogJ0ltcG9ydCBkZSBkb25uw6llcyByw6l1c3NpJyxcbiAgICAgIHVwbG9hZFRpdGxlemlwOiAnQ2hvaXNpciB1biBmaWNoaWVyIC56aXAnLFxuICAgICAgdXBsb2FkVGl0bGVjc3Y6ICdDaG9pc2lyIHVuIGZpY2hpZXIgLmNzdicsXG4gICAgICBzZWxlY3RGaWxlOiAnU8OpbGVjdGlvbm5lciB1biBmaWNoaWVyJyxcbiAgICAgIGltcG9ydGVkTGluZXM6ICdsaWduZXMgaW1wb3J0w6llKHMpJyxcbiAgICAgIGNvbnN1bHREYXRhc2V0OiBcIkwnaW1wb3J0IGVzdCBlbiBjb3VycywgY29uc3VsdGV6IGxhIHBhZ2UgZHUgamV1IGRlIGRvbm7DqWVzIHt7cGFyYW1ldGVyfX0gcG91ciB2w6lyaWZpZXIgc29uIMOpdGF0XCIsXG4gICAgICBzaGFwZWZpbGVTdGF0ZTogJyBwb3VyIHbDqXJpZmllciBzb24gw6l0YXQnLFxuICAgICAgZXJyb3I6IFwiRXJyZXVyIGxvcnMgZGUgbCdpbXBvcnQ6IHt7bXNnfX1cIixcbiAgICAgIGVycm9yczogJ2VycmV1cihzKScsXG4gICAgICBsaW5lOiAnTGlnbmUge3tsaW5lfX06ICcsXG4gICAgICB3aXRob3V0TGluZTogJ0VycmV1cnMgZ2xvYmFsZXM6ICcsXG4gICAgICBkYXRhc2V0OiAnSmV1IGRlIGRvbm7DqWVzJyxcbiAgICAgIGZpbGVUeXBlOiAnU8OpbGVjdGlvbm5lciB1biB0eXBlIGRlIGZpY2hpZXInLFxuICAgICAgY29kZToge1xuICAgICAgICBVTlJFQ09HTklaRUQ6XG4gICAgICAgICAgXCJMZSBmaWNoaWVyIGZvdXJuaSBjb250aWVudCB1bmUgY29sb25uZSDCq1xcdTAwQTB7e25hbWV9fVxcdTAwQTDCuywgcXVpIG4nZXN0IHBhcyBwcsOpc2VudGUgZGFucyBsZSBqZXUgZGUgZG9ubsOpZXMgY2hvaXNpXCIsXG4gICAgICAgIEZJTEVfTUFOREFUT1JZOiAnQXVjdW4gZmljaGllciBmb3VybmknLFxuICAgICAgICBOQl9BVFRSSUJVVEVTOlxuICAgICAgICAgIFwiTGUgbm9tYnJlIGRlcyBjb2xvbm5lcyBkYW5zIGxlIGZpY2hpZXIgZm91cm5pIG5lIGNvcnJlc3BvbmQgcGFzIGF1IG5vbWJyZSBkJ2F0dHJpYnV0cyBkYW5zIGxlIGpldSBkZSBkb25uw6llcyBjaG9pc2lcIixcbiAgICAgICAgQ0FTVDogXCJMYSB2YWxldXIgwqtcXHUwMEEwe3tuYW1lfX1cXHUwMEEwwrssIG4nYSBwYXMgcHUgw6p0cmUgY29udmVydGllIGVuIHR5cGUgwqtcXHUwMEEwe3t0eXBlfX1cXHUwMEEwwrssXCIsXG4gICAgICAgIEVMQVNUSUNfU0VBUkNIOiAnRWxhc3RpYyBTZWFyY2ggc3RhY2sgdHJhY2UgZXJyb3I6IHt7ZWxhc3RpY0Vycm9yfX0nXG4gICAgICB9LFxuICAgICAgbm9ybWFsaXplOiAnTm9ybWFsaXNlciBsZXMgZm9ybWVzIGfDqW9ncmFwaGlxdWVzJ1xuICAgIH1cbiAgfVxufTtcbiJdfQ==