nuxeo-development-framework 5.3.3 → 5.3.5

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 (129) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +2694 -292
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.js +5 -2
  4. package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.js +5 -2
  5. package/esm2015/lib/components/filter/filter/filter.component.js +1 -1
  6. package/esm2015/lib/components/ndf-config-editor/components/config-editor-actions/config-editor-actions.component.js +35 -0
  7. package/esm2015/lib/components/ndf-config-editor/components/editor-mode-switch.component.js +43 -0
  8. package/esm2015/lib/components/ndf-config-editor/components/index.js +4 -0
  9. package/esm2015/lib/components/ndf-config-editor/components/info-dialog/info-dialog.component.js +27 -0
  10. package/esm2015/lib/components/ndf-config-editor/config.token.js +3 -0
  11. package/esm2015/lib/components/ndf-config-editor/constants/index.js +4 -0
  12. package/esm2015/lib/components/ndf-config-editor/constants/mode.js +5 -0
  13. package/esm2015/lib/components/ndf-config-editor/constants/query.js +5 -0
  14. package/esm2015/lib/components/ndf-config-editor/constants/type.js +5 -0
  15. package/esm2015/lib/components/ndf-config-editor/containers/config-preview/config-preview.component.js +28 -0
  16. package/esm2015/lib/components/ndf-config-editor/containers/editor-settings/editor-settings.component.js +73 -0
  17. package/esm2015/lib/components/ndf-config-editor/containers/index.js +5 -0
  18. package/esm2015/lib/components/ndf-config-editor/containers/monaco-editor.component.js +195 -0
  19. package/esm2015/lib/components/ndf-config-editor/containers/ndf-config-editor/ndf-config-editor.component.js +133 -0
  20. package/esm2015/lib/components/ndf-config-editor/index.js +2 -0
  21. package/esm2015/lib/components/ndf-config-editor/models/config.js +2 -0
  22. package/esm2015/lib/components/ndf-config-editor/models/dialog-data.js +2 -0
  23. package/esm2015/lib/components/ndf-config-editor/models/editor-model.js +2 -0
  24. package/esm2015/lib/components/ndf-config-editor/models/index.js +5 -0
  25. package/esm2015/lib/components/ndf-config-editor/models/type-helper.js +2 -0
  26. package/esm2015/lib/components/ndf-config-editor/ndf-config-editor.module.js +118 -0
  27. package/esm2015/lib/components/ndf-config-editor/pipes/index.js +3 -0
  28. package/esm2015/lib/components/ndf-config-editor/pipes/is-valid-json.pipe.js +17 -0
  29. package/esm2015/lib/components/ndf-config-editor/pipes/validate-object.pipe.js +16 -0
  30. package/esm2015/lib/components/ndf-config-editor/public/editor-navigate-button.js +104 -0
  31. package/esm2015/lib/components/ndf-config-editor/public/index.js +2 -0
  32. package/esm2015/lib/components/ndf-config-editor/public-api.js +7 -0
  33. package/esm2015/lib/components/ndf-config-editor/services/data-access.service.js +26 -0
  34. package/esm2015/lib/components/ndf-config-editor/services/data-store.service.js +52 -0
  35. package/esm2015/lib/components/ndf-config-editor/services/dummy-data.js +1321 -0
  36. package/esm2015/lib/components/ndf-config-editor/services/index.js +4 -0
  37. package/esm2015/lib/components/ndf-config-editor/services/monaco.loader.service.js +51 -0
  38. package/esm2015/lib/components/ndf-config-editor/utility/index.js +2 -0
  39. package/esm2015/lib/components/ndf-config-editor/utility/json.js +10 -0
  40. package/esm2015/lib/components/reports/index.js +3 -0
  41. package/esm2015/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.js +19 -12
  42. package/esm2015/lib/components/reports/ndf-reports/ndf-reports.module.js +14 -5
  43. package/esm2015/lib/components/reports/ndf-reports/services/chart-data-transformers.service.js +15 -1
  44. package/esm2015/lib/components/reports/ndf-reports/services/chart-plugins-registry.service.js +9 -1
  45. package/esm2015/lib/components/select-users-by-department/select-users-by-departments/select-users-by-departments.component.js +1 -1
  46. package/esm2015/lib/components/tables/ndf-table/containers/ndf-table/ndf-table.component.js +20 -14
  47. package/esm2015/lib/components/tables/ndf-table/directives/index.js +1 -2
  48. package/esm2015/lib/components/tables/ndf-table/models/table-config.js +1 -1
  49. package/esm2015/lib/components/tables/ndf-table/ndf-table.module.js +15 -7
  50. package/esm2015/lib/core/services/extension/component-register.service.js +4 -1
  51. package/esm2015/lib/core/services/translation/translation.service.js +15 -4
  52. package/esm2015/lib/core/services/user/user-preferences.service.js +3 -2
  53. package/esm2015/lib/core/tokens/index.js +2 -0
  54. package/esm2015/lib/core/tokens/project.token.js +3 -0
  55. package/esm2015/lib/directive/permissions/evaluators.service.js +20 -18
  56. package/esm2015/lib/shared/directives/copy-to-clipboard.directive.js +41 -0
  57. package/esm2015/lib/shared/directives/element-height.directive.js +80 -0
  58. package/esm2015/lib/shared/directives/fluid-height.directive.js +115 -0
  59. package/esm2015/lib/shared/directives/index.js +4 -0
  60. package/esm2015/lib/shared/index.js +6 -0
  61. package/esm2015/lib/shared/libraryShared.module.js +35 -10
  62. package/esm2015/lib/shared/models/index.js +2 -1
  63. package/esm2015/lib/shared/models/ndf-request.model.js +2 -0
  64. package/esm2015/public-api.js +4 -1
  65. package/fesm2015/nuxeo-development-framework.js +2549 -194
  66. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  67. package/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.d.ts +2 -1
  68. package/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.d.ts +2 -1
  69. package/lib/components/ndf-config-editor/components/config-editor-actions/config-editor-actions.component.d.ts +14 -0
  70. package/lib/components/ndf-config-editor/components/editor-mode-switch.component.d.ts +17 -0
  71. package/lib/components/ndf-config-editor/components/index.d.ts +3 -0
  72. package/lib/components/ndf-config-editor/components/info-dialog/info-dialog.component.d.ts +11 -0
  73. package/lib/components/ndf-config-editor/config.token.d.ts +9 -0
  74. package/lib/components/ndf-config-editor/constants/index.d.ts +3 -0
  75. package/lib/components/ndf-config-editor/constants/mode.d.ts +4 -0
  76. package/lib/components/ndf-config-editor/constants/query.d.ts +4 -0
  77. package/lib/components/ndf-config-editor/constants/type.d.ts +4 -0
  78. package/lib/components/ndf-config-editor/containers/config-preview/config-preview.component.d.ts +15 -0
  79. package/lib/components/ndf-config-editor/containers/editor-settings/editor-settings.component.d.ts +24 -0
  80. package/lib/components/ndf-config-editor/containers/index.d.ts +4 -0
  81. package/lib/components/ndf-config-editor/containers/monaco-editor.component.d.ts +33 -0
  82. package/lib/components/ndf-config-editor/containers/ndf-config-editor/ndf-config-editor.component.d.ts +48 -0
  83. package/lib/components/ndf-config-editor/index.d.ts +1 -0
  84. package/lib/components/ndf-config-editor/models/config.d.ts +24 -0
  85. package/lib/components/ndf-config-editor/models/dialog-data.d.ts +6 -0
  86. package/lib/components/ndf-config-editor/models/editor-model.d.ts +15 -0
  87. package/lib/components/ndf-config-editor/models/index.d.ts +4 -0
  88. package/lib/components/ndf-config-editor/models/type-helper.d.ts +3 -0
  89. package/lib/components/ndf-config-editor/ndf-config-editor.module.d.ts +36 -0
  90. package/lib/components/ndf-config-editor/pipes/index.d.ts +2 -0
  91. package/lib/components/ndf-config-editor/pipes/is-valid-json.pipe.d.ts +7 -0
  92. package/lib/components/ndf-config-editor/pipes/validate-object.pipe.d.ts +7 -0
  93. package/lib/components/ndf-config-editor/public/editor-navigate-button.d.ts +31 -0
  94. package/lib/components/ndf-config-editor/public/index.d.ts +1 -0
  95. package/lib/components/ndf-config-editor/public-api.d.ts +6 -0
  96. package/lib/components/ndf-config-editor/services/data-access.service.d.ts +8 -0
  97. package/lib/components/ndf-config-editor/services/data-store.service.d.ts +24 -0
  98. package/lib/components/ndf-config-editor/services/dummy-data.d.ts +992 -0
  99. package/lib/components/ndf-config-editor/services/index.d.ts +3 -0
  100. package/lib/components/ndf-config-editor/services/monaco.loader.service.d.ts +14 -0
  101. package/lib/components/ndf-config-editor/utility/index.d.ts +1 -0
  102. package/lib/components/ndf-config-editor/utility/json.d.ts +1 -0
  103. package/lib/components/reports/index.d.ts +2 -0
  104. package/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.d.ts +6 -3
  105. package/lib/components/reports/ndf-reports/ndf-reports.module.d.ts +4 -2
  106. package/lib/components/reports/ndf-reports/services/chart-data-transformers.service.d.ts +10 -0
  107. package/lib/components/reports/ndf-reports/services/chart-plugins-registry.service.d.ts +6 -0
  108. package/lib/components/tables/ndf-table/containers/ndf-table/ndf-table.component.d.ts +3 -1
  109. package/lib/components/tables/ndf-table/directives/index.d.ts +0 -1
  110. package/lib/components/tables/ndf-table/models/table-config.d.ts +1 -0
  111. package/lib/components/tables/ndf-table/ndf-table.module.d.ts +4 -2
  112. package/lib/core/services/extension/component-register.service.d.ts +3 -0
  113. package/lib/core/services/translation/translation.service.d.ts +2 -0
  114. package/lib/core/services/user/user-preferences.service.d.ts +4 -0
  115. package/lib/core/tokens/index.d.ts +1 -0
  116. package/lib/core/tokens/project.token.d.ts +2 -0
  117. package/lib/directive/permissions/evaluators.service.d.ts +4 -2
  118. package/lib/shared/directives/copy-to-clipboard.directive.d.ts +15 -0
  119. package/lib/shared/directives/element-height.directive.d.ts +28 -0
  120. package/lib/{components/tables/ndf-table → shared}/directives/fluid-height.directive.d.ts +2 -1
  121. package/lib/shared/directives/index.d.ts +3 -0
  122. package/lib/shared/index.d.ts +5 -0
  123. package/lib/shared/libraryShared.module.d.ts +3 -1
  124. package/lib/shared/models/index.d.ts +1 -0
  125. package/lib/shared/models/ndf-request.model.d.ts +7 -0
  126. package/package.json +4 -2
  127. package/public-api.d.ts +3 -0
  128. package/src/docs/ndf-table.doc.md +1431 -0
  129. package/esm2015/lib/components/tables/ndf-table/directives/fluid-height.directive.js +0 -112
@@ -7,6 +7,7 @@ import { COMPARISON_OPERATOR, HtmlDialogComponent } from '../../filters-panel';
7
7
  import _ from 'lodash';
8
8
  import { PAGE_SIZE } from '../../constants';
9
9
  import { DestroySubject } from '../../../../../shared/components';
10
+ import { NDF_EDITOR_TYPE } from '../../../../ndf-config-editor/constants';
10
11
  import * as i0 from "@angular/core";
11
12
  import * as i1 from "../../services";
12
13
  import * as i2 from "../../../dynamic-table";
@@ -17,18 +18,19 @@ import * as i6 from "../../filters-panel/containers/filters-panel/filters-panel.
17
18
  import * as i7 from "@angular/material/button";
18
19
  import * as i8 from "@angular/material/icon";
19
20
  import * as i9 from "../../components/text-search/text-search.component";
20
- import * as i10 from "../../components/table-export/table-export.component";
21
- import * as i11 from "../../components/sorting-list/sorting-list.component";
22
- import * as i12 from "../../components/table-columns-toggler/table-columns-toggler.component";
23
- import * as i13 from "../../components/mode-toggler/mode-toggler.component";
24
- import * as i14 from "../../../dynamic-table/dynamic-table/dynamic-table.component";
25
- import * as i15 from "@angular/material/progress-spinner";
26
- import * as i16 from "../../../../no-data-found/no-data-found.component";
27
- import * as i17 from "../../../table/table/table.component";
28
- import * as i18 from "@angular/common";
29
- import * as i19 from "../../directives/fluid-height.directive";
30
- import * as i20 from "@angular/cdk/bidi";
31
- import * as i21 from "../../../dynamic-table/directives/empty-state.directive";
21
+ import * as i10 from "../../../../ndf-config-editor/public/editor-navigate-button";
22
+ import * as i11 from "../../components/table-export/table-export.component";
23
+ import * as i12 from "../../components/sorting-list/sorting-list.component";
24
+ import * as i13 from "../../components/table-columns-toggler/table-columns-toggler.component";
25
+ import * as i14 from "../../components/mode-toggler/mode-toggler.component";
26
+ import * as i15 from "../../../dynamic-table/dynamic-table/dynamic-table.component";
27
+ import * as i16 from "@angular/material/progress-spinner";
28
+ import * as i17 from "../../../../no-data-found/no-data-found.component";
29
+ import * as i18 from "../../../table/table/table.component";
30
+ import * as i19 from "@angular/common";
31
+ import * as i20 from "../../../../../shared/directives/fluid-height.directive";
32
+ import * as i21 from "@angular/cdk/bidi";
33
+ import * as i22 from "../../../dynamic-table/directives/empty-state.directive";
32
34
  export class NdfTableComponent extends DestroySubject {
33
35
  /**
34
36
  *
@@ -64,6 +66,7 @@ export class NdfTableComponent extends DestroySubject {
64
66
  this.autoCalculateHeight = true;
65
67
  this.emptyMessage = 'table_noData';
66
68
  this.configPath = 'tables';
69
+ this.jsonEditorEnabled = false;
67
70
  this.onRowSelected = new EventEmitter();
68
71
  this.onRowIndexSelected = new EventEmitter();
69
72
  this.actionOnRow = new EventEmitter();
@@ -88,6 +91,7 @@ export class NdfTableComponent extends DestroySubject {
88
91
  pageSize: 10,
89
92
  length: 0
90
93
  };
94
+ this.editorType = NDF_EDITOR_TYPE.TABLES;
91
95
  this._translateService.onLangChange
92
96
  .pipe(startWith({ lang: this._translateService.currentLang }), takeUntil(this.destroy$))
93
97
  .subscribe((res) => {
@@ -383,7 +387,7 @@ export class NdfTableComponent extends DestroySubject {
383
387
  }
384
388
  }
385
389
  NdfTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfTableComponent, deps: [{ token: i1.FiltersMapperService }, { token: i2.DynamicTableService }, { token: i3.TranslateService }, { token: i1.NdfTableService }, { token: i4.CustomToastrService }, { token: i1.NdfTableConfigurationService }, { token: i5.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
386
- NdfTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfTableComponent, selector: "app-ndf-table", inputs: { rows: "rows", totalRecords: "totalRecords", autoCalculateHeight: "autoCalculateHeight", emptyMessage: "emptyMessage", activeQuery: "activeQuery", configPath: "configPath", configTransformer: "configTransformer", tableKey: "tableKey", config: "config", customCriteria: "customCriteria", searchTerm: "searchTerm" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", actionOnRow: "actionOnRow", onGettingData: "onGettingData", onMultiRowSelected: "onMultiRowSelected", onLoading: "onLoading", onPage: "onPage", onInitialized: "onInitialized", onLoaded: "onLoaded", onQueryChange: "onQueryChange", onSort: "onSort" }, host: { properties: { "dir": "direction" }, classAttribute: "ndf-table" }, queries: [{ propertyName: "actionsTableTemplate", first: true, predicate: ACTIONS_TABLE_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "searchTableTemplate", first: true, predicate: SEARCH_TABLE_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "filterCustomTemplate", first: true, predicate: FILTER_CUSTOM_TEMPLATE, descendants: true, read: TemplateRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "\r\n<div\r\n\t*ngIf=\"tableConfig\"\r\n\tclass=\"ndf-table__container\"\r\n\t[class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n\t[dir]=\"direction\"\r\n\tndfFluidHeight\r\n\t[calculate]=\"autoCalculateHeight\"\r\n>\r\n\t<div class=\"ndf-table__panel\" *ngIf=\"filtersConfig?.fields\">\r\n\t\t<app-filters-panel\r\n\t\t\t[fields]=\"filtersConfig.fields\"\r\n\t\t\t[aggregations]=\"aggregations$ | async\"\r\n\t\t\t(filterChanged)=\"filterChanged($event)\"\r\n\t\t\t[activeQuery]=\"activeQuery\"\r\n\t\t\tclass=\"ndf-table__filters\"\r\n\t\t\t[customTemplateRef]=\"filterCustomTemplate\"\r\n\t\t></app-filters-panel>\r\n\t</div>\r\n\t<div class=\"ndf-table__content\">\r\n\t\t<div class=\"ndf-table__header flex\">\r\n\t\t\t<div class=\"ndf-table__header__custom-actions flex gap-x-4 items-center\">\r\n\t\t\t\t<ng-container\r\n\t\t\t\t\t[ngTemplateOutlet]=\"searchTableTemplate || defaultActionTemplate\"\r\n\t\t\t\t\t[ngTemplateOutletContext]=\"{\r\n\t\t\t\t\t\t$implicit: tableConfig,\r\n\t\t\t\t\t\tpanelOpened: isPanelOpened,\r\n\t\t\t\t\t\ttogglePanel: togglePanel,\r\n\t\t\t\t\t\topenModal: openSearchModal,\r\n\t\t\t\t\t\tsearch: onTextSearch,\r\n\t\t\t\t\t\tclear: onClearSearch\r\n\t\t\t\t\t}\"\r\n\t\t\t\t></ng-container>\r\n\r\n\t\t\t\t<ng-template #defaultActionTemplate>\r\n\t\t\t\t\t<button mat-stroked-button *ngIf=\"isPanelToggleAvailable\" class=\"toggle-button\" (click)=\"togglePanel()\">\r\n\t\t\t\t\t\t<mat-icon> filter_alt</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<app-text-search\r\n\t\t\t\t\t\t*ngIf=\"textSearchConfig\"\r\n\t\t\t\t\t\t[searchConfig]=\"textSearchConfig\"\r\n\t\t\t\t\t\t(openModal)=\"openSearchModal()\"\r\n\t\t\t\t\t\t[search]=\"textSearch$ | async\"\r\n\t\t\t\t\t\t(searchChange)=\"onTextSearch($event)\"\r\n\t\t\t\t\t\t(clear)=\"onClearSearch()\"\r\n\t\t\t\t\t></app-text-search>\r\n\t\t\t\t</ng-template>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"ndf-table__header__actions flex gap-x-4 items-center\">\r\n\t\t\t\t<ndf-table-export\r\n\t\t\t\t\t*ngIf=\"exportTableConfig?.enabled\"\r\n\t\t\t\t\t[config]=\"exportTableConfig\"\r\n\t\t\t\t\t(onExport)=\"exportTable($event)\"\r\n\t\t\t\t></ndf-table-export>\r\n\r\n\t\t\t\t<table-sorting-list\r\n\t\t\t\t\t*ngIf=\"!!sortList?.length\"\r\n\t\t\t\t\t[sortList]=\"sortList\"\r\n\t\t\t\t\t(sortChanged)=\"sortChanged($event)\"\r\n\t\t\t\t></table-sorting-list>\r\n\t\t\t\t<table-columns-toggler\r\n\t\t\t\t\t*ngIf=\"columnToggle\"\r\n\t\t\t\t\t[columns]=\"tableConfig.columns\"\r\n\t\t\t\t\t[prefix]=\"tableConfig.prefix\"\r\n\t\t\t\t\t[sortable]=\"columnsOptions?.sortable\"\r\n\t\t\t\t\t(columnsChanged)=\"columnsChanged($event)\"\r\n\t\t\t\t></table-columns-toggler>\r\n\t\t\t\t<mode-toggler\r\n\t\t\t\t\t*ngIf=\"tableMode?.toggleMode\"\r\n\t\t\t\t\t[mode]=\"tableMode.mode || 'list'\"\r\n\t\t\t\t\t[modesList]=\"tableMode?.availableMode\"\r\n\t\t\t\t\t(modeChanged)=\"modeChanged($event)\"\r\n\t\t\t\t></mode-toggler>\r\n\t\t\t\t<ng-container\r\n\t\t\t\t\t[ngTemplateOutlet]=\"actionsTableTemplate\"\r\n\t\t\t\t\t[ngTemplateOutletContext]=\"{\r\n\t\t\t\t\t\t$implicit: tableConfig,\r\n\t\t\t\t\t\tpanelOpened: isPanelOpened,\r\n\t\t\t\t\t\ttogglePanel: togglePanel,\r\n\t\t\t\t\t\topenModal: openSearchModal,\r\n\t\t\t\t\t\tsearch: onTextSearch,\r\n\t\t\t\t\t\tclear: onClearSearch\r\n\t\t\t\t\t}\"\r\n\t\t\t\t></ng-container>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<cts-dynamic-table\r\n\t\t\t*ngIf=\"!tableConfig.isDataProvided\"\r\n\t\t\tclass=\"ndf-table__table table-style\"\r\n\t\t\t[columns]=\"displayedColumns$ | async\"\r\n\t\t\t[responsiveColumns]=\"displayedColumns$ | async\"\r\n\t\t\t[fullWidth]=\"tableConfig.fullWidth || 'auto'\"\r\n\t\t\t[pageSize]=\"tableConfig.pageSize || 10\"\r\n\t\t\t[pageNumber]=\"tableConfig.pageNumber || 1\"\r\n\t\t\t[pageProvider]=\"tableConfig.pageProvider\"\r\n\t\t\t[customUrl]=\"tableConfig.customUrl\"\r\n\t\t\t[quickFilter]=\"tableConfig.quickFilters ? { quickFilters: tableConfig.quickFilters } : undefined\"\r\n\t\t\t[defultSort]=\"tableConfig.defaultSort || defaultSort\"\r\n\t\t\t[sortingBy]=\"sortOption$ | async\"\r\n\t\t\t[entityType]=\"'all'\"\r\n\t\t\t[fields]=\"tableConfig.fields\"\r\n\t\t\t[tableMode]=\"viewMode$ | async\"\r\n\t\t\t[componentName]=\"tableMode?.['componentName']\"\r\n\t\t\t[range]=\"tableConfig?.range\"\r\n\t\t\t[isSearchPage]=\"tableConfig?.isSearchPage\"\r\n\t\t\t[multiSelectRows]=\"tableConfig?.multiSelectRows\"\r\n\t\t\t[customFirstRow]=\"tableConfig?.customFirstRow\"\r\n\t\t\t[highlightSelectedCard]=\"tableConfig?.highlightSelectedCard\"\r\n\t\t\t[showActionsAsMenu]=\"tableConfig?.showActionsAsMenu\"\r\n\t\t\t[filterParams]=\"tableConfig?.filterParams\"\r\n\t\t\t[format]=\"tableConfig?.format || 'MMMM d, y'\"\r\n\t\t\t[pageSizes]=\"tableConfig?.pageSizes || defaultPageSizes\"\r\n\t\t\t[prefix]=\"tableConfig.prefix || ''\"\r\n\t\t\t[rowCursor]=\"true\"\r\n\t\t\t[queryParam]=\"tableConfig.queryParam\"\r\n\t\t\t[customFilters]=\"searchAndFilters$ | async\"\r\n\t\t\t[tableActions]=\"tableConfig.tableActions\"\r\n\t\t\t[headers]=\"tableConfig.headers\"\r\n\t\t\t(onRowSelected)=\"onRowSelected.emit($event)\"\r\n\t\t\t(onRowIndexSelected)=\"onRowIndexSelected.emit($event)\"\r\n\t\t\t(actionOnRow)=\"actionOnRow.emit($event)\"\r\n\t\t\t(onGettingData)=\"onGettingData.emit($event)\"\r\n\t\t\t(onLoad)=\"onLoad($event)\"\r\n\t\t\t(onInitialize)=\"onInitialize($event)\"\r\n\t\t\t(onMultiRowSelected)=\"onMultiRowSelected.emit($event)\"\r\n\t\t\t(onLoading)=\"onLoading.emit($event)\"\r\n\t\t\t(onPage)=\"onPageChanged($event)\"\r\n\t\t\t[isLegacyMode]=\"false\"\r\n\t\t\t[showTotalRecord]=\"true\"\r\n\t\t\t(sortChanged)=\"onSortChanged($event)\"\r\n\t\t>\r\n\t\t\t<ng-template emptyTemplate let-isLoading let-rows=\"rows\" let-initialized=\"initialized\">\r\n\t\t\t\t<div class=\"loading-data\" *ngIf=\"isLoading && initialized\">\r\n\t\t\t\t\t<mat-spinner></mat-spinner>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div class=\"flex items-center justify-center h-5/6\" *ngIf=\"!isLoading && !rows.length\">\r\n\t\t\t\t\t<app-no-data-found class=\"mt-4\" [message]=\"emptyMessage\"></app-no-data-found>\r\n\t\t\t\t</div>\r\n\t\t\t</ng-template>\r\n\t\t</cts-dynamic-table>\r\n\r\n\t\t<cts-table\r\n\t\t\t*ngIf=\"tableConfig.isDataProvided\"\r\n\t\t\t[rows]=\"rows\"\r\n\t\t\t[totalRecords]=\"totalRecords\"\r\n\t\t\t[columns]=\"displayedColumns$ | async\"\r\n\t\t\t[responsiveColumns]=\"displayedColumns$ | async\"\r\n\t\t\t[rowCursor]=\"true\"\r\n\t\t\t[fullWidth]=\"tableConfig.fullWidth || 'auto'\"\r\n\t\t\t[entityType]=\"'all'\"\r\n\t\t\t[prefix]=\"tableConfig.prefix || ''\"\r\n\t\t\t[tableMode]=\"viewMode$ | async\"\r\n\t\t\t[componentName]=\"tableMode?.['componentName']\"\r\n\t\t\t[multiSelectRows]=\"tableConfig?.multiSelectRows\"\r\n\t\t\t[customFirstRow]=\"tableConfig?.customFirstRow\"\r\n\t\t\t[tableActions]=\"tableConfig.tableActions\"\r\n\t\t\t[showActionsAsMenu]=\"tableConfig?.showActionsAsMenu\"\r\n\t\t\t[defultSort]=\"tableConfig.defaultSort || defaultSort\"\r\n\t\t\t[format]=\"tableConfig?.format || 'MMMM d, y'\"\r\n\t\t\t[highlightSelectedCard]=\"tableConfig?.highlightSelectedCard\"\r\n\t\t\t(onRowSelected)=\"onRowSelected.emit($event)\"\r\n\t\t\t(onRowIndexSelected)=\"onRowIndexSelected.emit($event)\"\r\n\t\t\t(onMultiRowSelected)=\"onMultiRowSelected.emit($event)\"\r\n\t\t\t(actionOnRow)=\"actionOnRow.emit($event)\"\r\n\t\t\t(onSorting)=\"onSortChanged($event)\"\r\n\t\t></cts-table>\r\n\t</div>\r\n</div>\r\n", styles: [":host{padding-inline:var(--ndf-tbl-inline-padding, 1rem);padding-block:var(--ndf-tbl-block-padding, 1rem);border:var(--ndf-tbl-border, solid transparent);border-width:var(--ndf-table-border-width, 0);border-radius:var(--ndf-tbl-border-radius, 0);height:100%;position:relative;display:flex;flex-direction:column;background-color:var(--ndf-tbl-background, #fff);box-sizing:border-box;max-width:100%;flex:0 0 100%}:host [dir=ltr]{--ndf-tbl-panel-translateX: -100%}:host:before,:host:after{box-sizing:border-box}::ng-deep .wrapping,::ng-deep .wrapping .table-reposition{overflow:visible}.ndf-table__container{--table-div-height: auto;--table-reposition-overflow-y: visible;--table-div-overflow: visible;--panel-width: var(--ndf-tbl-panel-width, 18rem);position:relative;overflow:hidden;display:grid;transition:all .2s;max-width:100%;width:100%;height:var(--ndf-tbl-height, calc(var(--ndf-table-height, auto) - calc(var(--ndf-tbl-block-padding, 1rem) * 2.5)));flex-grow:1;grid-gap:var(--ndf-table-container-gap, .5rem);gap:var(--ndf-table-container-gap, .5rem)}.ndf-table__container.panel-opened{--ndf-tbl-panel-translateX: 0;--ndf-tbl-content-pis: var(--panel-width)}.ndf-table__panel,.ndf-table__content{overflow:auto;transition:all .2s}.ndf-table__panel{position:absolute;width:var(--panel-width);height:100%;transform:translate(var(--ndf-tbl-panel-translateX, 100%));padding-inline:var(--ndf-tbl-panel-inline-padding, .5rem);padding-block:var(--ndf-tbl-panel-block-padding, .5rem);background:var(--ndf-tbl-panel-background, #fff);z-index:1}.ndf-table__content{flex-grow:1;padding-inline-start:var(--ndf-tbl-content-pis, 0);padding-block-end:var(--ndf-tbl-content-pbe, 1rem);overflow-y:var(--ndf-tbl-content-overflow-y, auto);max-height:var(--ndf-tbl-content-max-height, var(--ndf-table-height));display:flex;flex-direction:column;height:-moz-fit-content;height:fit-content}.ndf-table__header{background-color:var(--ndf-tbl-background, #fff);flex-direction:var(--ndf-tbl-header-direction, row);justify-content:var(--ndf-tbl-header-justify, space-between);align-items:var(--ndf-tbl-header-items, center);padding-inline:var(--ndf-tbl-header-padding-inline, .5rem);padding-block:var(--ndf-tbl-header-padding-block, 0 .5rem);position:var(--ndf-tbl-header-position, sticky);top:0;z-index:1}.ndf-table__header__actions{justify-content:var(--ndf-tbl-actions-justify, flex-end)}.ndf-table__header__custom-actions .toggle-button{min-width:0;padding:0 10px}.ndf-table__table{flex-grow:1;display:flex;flex-direction:column}.ndf-table__table.no-data{--table-div-height: auto}.loading-data{position:absolute;inset:0;display:grid;place-items:center;background:var(--loading-data-background, rgba(255, 255, 255, .2));-webkit-backdrop-filter:var(--loading-data-backdrop-filter, blur(3px));backdrop-filter:var(--loading-data-backdrop-filter, blur(3px))}\n"], components: [{ type: i6.FiltersPanelComponent, selector: "app-filters-panel", inputs: ["aggregations", "fields", "activeQuery"], outputs: ["filterChanged"] }, { type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i9.TextSearchComponent, selector: "app-text-search", inputs: ["searchConfig", "search"], outputs: ["searchChange", "openModal", "clear"] }, { type: i10.TableExportComponent, selector: "ndf-table-export", inputs: ["config"], outputs: ["onExport"] }, { type: i11.SortingListComponent, selector: "table-sorting-list", inputs: ["sortList"], outputs: ["sortChanged"] }, { type: i12.TableColumnsTogglerComponent, selector: "table-columns-toggler", inputs: ["prefix", "sortable", "columns"], outputs: ["columnsChanged"] }, { type: i13.ModeTogglerComponent, selector: "mode-toggler", inputs: ["modesList", "mode"], outputs: ["modeChanged"] }, { type: i14.DynamicTableComponent, selector: "cts-dynamic-table", inputs: ["columns", "responsiveColumns", "entityType", "prefix", "headers", "fields", "pageProvider", "pageSize", "isLegacyMode", "showTotalRecord", "pageNumber", "sortingBy", "queryParam", "customFilters", "quickFilter", "report", "rowCursor", "fullWidth", "tableMode", "componentName", "tableActions", "defultSort", "range", "isSearchPage", "multiSelectRows", "customFirstRow", "highlightSelectedCard", "showActionsAsMenu", "filterParams", "skipAggregation", "customUrl", "format", "pageSizes"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "sortChanged", "onPageChange", "onPage", "onLoad", "onInitialize"] }, { type: i15.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: i16.NoDataFoundComponent, selector: "app-no-data-found", inputs: ["message", "width", "height"] }, { type: i17.TableComponent, selector: "cts-table", inputs: ["rows", "columns", "responsiveColumns", "entityType", "prefix", "pageCount", "totalRecords", "rowCursor", "fullWidth", "vocItemTranslationPrefix", "tableMode", "componentName", "tableActions", "format", "defultSort", "highlightSelectedCard", "multiSelectRows", "customFirstRow", "showActionsAsMenu", "messages", "defaultColumnSize"], outputs: ["onRowSelected", "onRowIndexSelected", "onIconSelected", "actionOnRow", "onSorting", "onMultiRowSelected"] }], directives: [{ type: i18.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i19.FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { type: i20.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i18.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i21.EmptyTemplateDirective, selector: "[emptyTemplate]" }], pipes: { "async": i18.AsyncPipe } });
390
+ NdfTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfTableComponent, selector: "app-ndf-table", inputs: { rows: "rows", totalRecords: "totalRecords", autoCalculateHeight: "autoCalculateHeight", emptyMessage: "emptyMessage", activeQuery: "activeQuery", configPath: "configPath", configTransformer: "configTransformer", tableKey: "tableKey", jsonEditorEnabled: "jsonEditorEnabled", config: "config", customCriteria: "customCriteria", searchTerm: "searchTerm" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", actionOnRow: "actionOnRow", onGettingData: "onGettingData", onMultiRowSelected: "onMultiRowSelected", onLoading: "onLoading", onPage: "onPage", onInitialized: "onInitialized", onLoaded: "onLoaded", onQueryChange: "onQueryChange", onSort: "onSort" }, host: { properties: { "dir": "direction" }, classAttribute: "ndf-table" }, queries: [{ propertyName: "actionsTableTemplate", first: true, predicate: ACTIONS_TABLE_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "searchTableTemplate", first: true, predicate: SEARCH_TABLE_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "filterCustomTemplate", first: true, predicate: FILTER_CUSTOM_TEMPLATE, descendants: true, read: TemplateRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n\t*ngIf=\"tableConfig\"\r\n\tclass=\"ndf-table__container\"\r\n\t[class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n\t[dir]=\"direction\"\r\n\tndfFluidHeight\r\n\tcssVar=\"--ndf-table-height\"\r\n\t[calculate]=\"autoCalculateHeight\"\r\n>\r\n\t<div class=\"ndf-table__panel\" *ngIf=\"filtersConfig?.fields\">\r\n\t\t<app-filters-panel\r\n\t\t\t[fields]=\"filtersConfig.fields\"\r\n\t\t\t[aggregations]=\"aggregations$ | async\"\r\n\t\t\t(filterChanged)=\"filterChanged($event)\"\r\n\t\t\t[activeQuery]=\"activeQuery\"\r\n\t\t\tclass=\"ndf-table__filters\"\r\n\t\t\t[customTemplateRef]=\"filterCustomTemplate\"\r\n\t\t></app-filters-panel>\r\n\t</div>\r\n\t<div class=\"ndf-table__content\">\r\n\t\t<div class=\"ndf-table__header flex\">\r\n\t\t\t<div class=\"ndf-table__header__custom-actions flex gap-x-4 items-center\">\r\n\t\t\t\t<ng-container\r\n\t\t\t\t\t[ngTemplateOutlet]=\"searchTableTemplate || defaultActionTemplate\"\r\n\t\t\t\t\t[ngTemplateOutletContext]=\"{\r\n\t\t\t\t\t\t$implicit: tableConfig,\r\n\t\t\t\t\t\tpanelOpened: isPanelOpened,\r\n\t\t\t\t\t\ttogglePanel: togglePanel,\r\n\t\t\t\t\t\topenModal: openSearchModal,\r\n\t\t\t\t\t\tsearch: onTextSearch,\r\n\t\t\t\t\t\tclear: onClearSearch\r\n\t\t\t\t\t}\"\r\n\t\t\t\t></ng-container>\r\n\r\n\t\t\t\t<ng-template #defaultActionTemplate>\r\n\t\t\t\t\t<button mat-stroked-button *ngIf=\"isPanelToggleAvailable\" class=\"toggle-button\" (click)=\"togglePanel()\">\r\n\t\t\t\t\t\t<mat-icon> filter_alt</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<app-text-search\r\n\t\t\t\t\t\t*ngIf=\"textSearchConfig\"\r\n\t\t\t\t\t\t[searchConfig]=\"textSearchConfig\"\r\n\t\t\t\t\t\t(openModal)=\"openSearchModal()\"\r\n\t\t\t\t\t\t[search]=\"textSearch$ | async\"\r\n\t\t\t\t\t\t(searchChange)=\"onTextSearch($event)\"\r\n\t\t\t\t\t\t(clear)=\"onClearSearch()\"\r\n\t\t\t\t\t></app-text-search>\r\n\t\t\t\t</ng-template>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"ndf-table__header__actions flex gap-x-4 items-center\">\r\n\t\t\t\t<app-editor-button\r\n\t\t\t\t\t*ngIf=\"jsonEditorEnabled && (tableKey || tableConfig?.key)\"\r\n\t\t\t\t\t[key]=\"tableKey || tableConfig?.key\"\r\n [type]=\"editorType\"\r\n\t\t\t\t></app-editor-button>\r\n\t\t\t\t<ndf-table-export\r\n\t\t\t\t\t*ngIf=\"exportTableConfig?.enabled\"\r\n\t\t\t\t\t[config]=\"exportTableConfig\"\r\n\t\t\t\t\t(onExport)=\"exportTable($event)\"\r\n\t\t\t\t></ndf-table-export>\r\n\r\n\t\t\t\t<table-sorting-list\r\n\t\t\t\t\t*ngIf=\"!!sortList?.length\"\r\n\t\t\t\t\t[sortList]=\"sortList\"\r\n\t\t\t\t\t(sortChanged)=\"sortChanged($event)\"\r\n\t\t\t\t></table-sorting-list>\r\n\t\t\t\t<table-columns-toggler\r\n\t\t\t\t\t*ngIf=\"columnToggle\"\r\n\t\t\t\t\t[columns]=\"tableConfig.columns\"\r\n\t\t\t\t\t[prefix]=\"tableConfig.prefix\"\r\n\t\t\t\t\t[sortable]=\"columnsOptions?.sortable\"\r\n\t\t\t\t\t(columnsChanged)=\"columnsChanged($event)\"\r\n\t\t\t\t></table-columns-toggler>\r\n\t\t\t\t<mode-toggler\r\n\t\t\t\t\t*ngIf=\"tableMode?.toggleMode\"\r\n\t\t\t\t\t[mode]=\"tableMode.mode || 'list'\"\r\n\t\t\t\t\t[modesList]=\"tableMode?.availableMode\"\r\n\t\t\t\t\t(modeChanged)=\"modeChanged($event)\"\r\n\t\t\t\t></mode-toggler>\r\n\t\t\t\t<ng-container\r\n\t\t\t\t\t[ngTemplateOutlet]=\"actionsTableTemplate\"\r\n\t\t\t\t\t[ngTemplateOutletContext]=\"{\r\n\t\t\t\t\t\t$implicit: tableConfig,\r\n\t\t\t\t\t\tpanelOpened: isPanelOpened,\r\n\t\t\t\t\t\ttogglePanel: togglePanel,\r\n\t\t\t\t\t\topenModal: openSearchModal,\r\n\t\t\t\t\t\tsearch: onTextSearch,\r\n\t\t\t\t\t\tclear: onClearSearch\r\n\t\t\t\t\t}\"\r\n\t\t\t\t></ng-container>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<cts-dynamic-table\r\n\t\t\t*ngIf=\"!tableConfig.isDataProvided\"\r\n\t\t\tclass=\"ndf-table__table table-style\"\r\n\t\t\t[columns]=\"displayedColumns$ | async\"\r\n\t\t\t[responsiveColumns]=\"displayedColumns$ | async\"\r\n\t\t\t[fullWidth]=\"tableConfig.fullWidth || 'auto'\"\r\n\t\t\t[pageSize]=\"tableConfig.pageSize || 10\"\r\n\t\t\t[pageNumber]=\"tableConfig.pageNumber || 1\"\r\n\t\t\t[pageProvider]=\"tableConfig.pageProvider\"\r\n\t\t\t[customUrl]=\"tableConfig.customUrl\"\r\n\t\t\t[quickFilter]=\"tableConfig.quickFilters ? { quickFilters: tableConfig.quickFilters } : undefined\"\r\n\t\t\t[defultSort]=\"tableConfig.defaultSort || defaultSort\"\r\n\t\t\t[sortingBy]=\"sortOption$ | async\"\r\n\t\t\t[entityType]=\"'all'\"\r\n\t\t\t[fields]=\"tableConfig.fields\"\r\n\t\t\t[tableMode]=\"viewMode$ | async\"\r\n\t\t\t[componentName]=\"tableMode?.['componentName']\"\r\n\t\t\t[range]=\"tableConfig?.range\"\r\n\t\t\t[isSearchPage]=\"tableConfig?.isSearchPage\"\r\n\t\t\t[multiSelectRows]=\"tableConfig?.multiSelectRows\"\r\n\t\t\t[customFirstRow]=\"tableConfig?.customFirstRow\"\r\n\t\t\t[highlightSelectedCard]=\"tableConfig?.highlightSelectedCard\"\r\n\t\t\t[showActionsAsMenu]=\"tableConfig?.showActionsAsMenu\"\r\n\t\t\t[filterParams]=\"tableConfig?.filterParams\"\r\n\t\t\t[format]=\"tableConfig?.format || 'MMMM d, y'\"\r\n\t\t\t[pageSizes]=\"tableConfig?.pageSizes || defaultPageSizes\"\r\n\t\t\t[prefix]=\"tableConfig.prefix || ''\"\r\n\t\t\t[rowCursor]=\"true\"\r\n\t\t\t[queryParam]=\"tableConfig.queryParam\"\r\n\t\t\t[customFilters]=\"searchAndFilters$ | async\"\r\n\t\t\t[tableActions]=\"tableConfig.tableActions\"\r\n\t\t\t[headers]=\"tableConfig.headers\"\r\n\t\t\t(onRowSelected)=\"onRowSelected.emit($event)\"\r\n\t\t\t(onRowIndexSelected)=\"onRowIndexSelected.emit($event)\"\r\n\t\t\t(actionOnRow)=\"actionOnRow.emit($event)\"\r\n\t\t\t(onGettingData)=\"onGettingData.emit($event)\"\r\n\t\t\t(onLoad)=\"onLoad($event)\"\r\n\t\t\t(onInitialize)=\"onInitialize($event)\"\r\n\t\t\t(onMultiRowSelected)=\"onMultiRowSelected.emit($event)\"\r\n\t\t\t(onLoading)=\"onLoading.emit($event)\"\r\n\t\t\t(onPage)=\"onPageChanged($event)\"\r\n\t\t\t[isLegacyMode]=\"false\"\r\n\t\t\t[showTotalRecord]=\"true\"\r\n\t\t\t(sortChanged)=\"onSortChanged($event)\"\r\n\t\t>\r\n\t\t\t<ng-template emptyTemplate let-isLoading let-rows=\"rows\" let-initialized=\"initialized\">\r\n\t\t\t\t<div class=\"loading-data\" *ngIf=\"isLoading && initialized\">\r\n\t\t\t\t\t<mat-spinner></mat-spinner>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div class=\"flex items-center justify-center h-5/6\" *ngIf=\"!isLoading && !rows.length\">\r\n\t\t\t\t\t<app-no-data-found class=\"mt-4\" [message]=\"emptyMessage\"></app-no-data-found>\r\n\t\t\t\t</div>\r\n\t\t\t</ng-template>\r\n\t\t</cts-dynamic-table>\r\n\r\n\t\t<cts-table\r\n\t\t\t*ngIf=\"tableConfig.isDataProvided\"\r\n\t\t\t[rows]=\"rows\"\r\n\t\t\t[totalRecords]=\"totalRecords\"\r\n\t\t\t[columns]=\"displayedColumns$ | async\"\r\n\t\t\t[responsiveColumns]=\"displayedColumns$ | async\"\r\n\t\t\t[rowCursor]=\"true\"\r\n\t\t\t[fullWidth]=\"tableConfig.fullWidth || 'auto'\"\r\n\t\t\t[entityType]=\"'all'\"\r\n\t\t\t[prefix]=\"tableConfig.prefix || ''\"\r\n\t\t\t[tableMode]=\"viewMode$ | async\"\r\n\t\t\t[componentName]=\"tableMode?.['componentName']\"\r\n\t\t\t[multiSelectRows]=\"tableConfig?.multiSelectRows\"\r\n\t\t\t[customFirstRow]=\"tableConfig?.customFirstRow\"\r\n\t\t\t[tableActions]=\"tableConfig.tableActions\"\r\n\t\t\t[showActionsAsMenu]=\"tableConfig?.showActionsAsMenu\"\r\n\t\t\t[defultSort]=\"tableConfig.defaultSort || defaultSort\"\r\n\t\t\t[format]=\"tableConfig?.format || 'MMMM d, y'\"\r\n\t\t\t[highlightSelectedCard]=\"tableConfig?.highlightSelectedCard\"\r\n\t\t\t(onRowSelected)=\"onRowSelected.emit($event)\"\r\n\t\t\t(onRowIndexSelected)=\"onRowIndexSelected.emit($event)\"\r\n\t\t\t(onMultiRowSelected)=\"onMultiRowSelected.emit($event)\"\r\n\t\t\t(actionOnRow)=\"actionOnRow.emit($event)\"\r\n\t\t\t(onSorting)=\"onSortChanged($event)\"\r\n\t\t></cts-table>\r\n\t</div>\r\n</div>\r\n", styles: [":host{padding-inline:var(--ndf-tbl-inline-padding, 1rem);padding-block:var(--ndf-tbl-block-padding, 1rem);border:var(--ndf-tbl-border, solid transparent);border-width:var(--ndf-table-border-width, 0);border-radius:var(--ndf-tbl-border-radius, 0);height:100%;position:relative;display:flex;flex-direction:column;background-color:var(--ndf-tbl-background, #fff);box-sizing:border-box;max-width:100%;flex:0 0 100%}:host [dir=ltr]{--ndf-tbl-panel-translateX: -100%}:host:before,:host:after{box-sizing:border-box}::ng-deep .wrapping,::ng-deep .wrapping .table-reposition{overflow:visible}.ndf-table__container{--table-div-height: auto;--table-reposition-overflow-y: visible;--table-div-overflow: visible;--panel-width: var(--ndf-tbl-panel-width, 18rem);position:relative;overflow:hidden;display:grid;transition:all .2s;max-width:100%;width:100%;height:var(--ndf-tbl-height, calc(var(--ndf-table-height, auto) - calc(var(--ndf-tbl-block-padding, 1rem) * 2.5)));flex-grow:1;grid-gap:var(--ndf-table-container-gap, .5rem);gap:var(--ndf-table-container-gap, .5rem)}.ndf-table__container.panel-opened{--ndf-tbl-panel-translateX: 0;--ndf-tbl-content-pis: var(--panel-width)}.ndf-table__panel,.ndf-table__content{overflow:auto;transition:all .2s}.ndf-table__panel{position:absolute;width:var(--panel-width);height:100%;transform:translate(var(--ndf-tbl-panel-translateX, 100%));padding-inline:var(--ndf-tbl-panel-inline-padding, .5rem);padding-block:var(--ndf-tbl-panel-block-padding, .5rem);background:var(--ndf-tbl-panel-background, #fff);z-index:1}.ndf-table__content{flex-grow:1;padding-inline-start:var(--ndf-tbl-content-pis, 0);padding-block-end:var(--ndf-tbl-content-pbe, 1rem);overflow-y:var(--ndf-tbl-content-overflow-y, auto);max-height:var(--ndf-tbl-content-max-height, var(--ndf-table-height));display:flex;flex-direction:column;height:-moz-fit-content;height:fit-content}.ndf-table__header{background-color:var(--ndf-tbl-background, #fff);flex-direction:var(--ndf-tbl-header-direction, row);justify-content:var(--ndf-tbl-header-justify, space-between);align-items:var(--ndf-tbl-header-items, center);padding-inline:var(--ndf-tbl-header-padding-inline, .5rem);padding-block:var(--ndf-tbl-header-padding-block, 0 .5rem);position:var(--ndf-tbl-header-position, sticky);top:0;z-index:1}.ndf-table__header__actions{justify-content:var(--ndf-tbl-actions-justify, flex-end)}.ndf-table__header__custom-actions .toggle-button{min-width:0;padding:0 10px}.ndf-table__table{flex-grow:1;display:flex;flex-direction:column}.ndf-table__table.no-data{--table-div-height: auto}.loading-data{position:absolute;inset:0;display:grid;place-items:center;background:var(--loading-data-background, rgba(255, 255, 255, .2));-webkit-backdrop-filter:var(--loading-data-backdrop-filter, blur(3px));backdrop-filter:var(--loading-data-backdrop-filter, blur(3px))}\n"], components: [{ type: i6.FiltersPanelComponent, selector: "app-filters-panel", inputs: ["aggregations", "fields", "activeQuery"], outputs: ["filterChanged"] }, { type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i9.TextSearchComponent, selector: "app-text-search", inputs: ["searchConfig", "search"], outputs: ["searchChange", "openModal", "clear"] }, { type: i10.EditorButtonComponent, selector: "app-editor-button", inputs: ["type", "key"] }, { type: i11.TableExportComponent, selector: "ndf-table-export", inputs: ["config"], outputs: ["onExport"] }, { type: i12.SortingListComponent, selector: "table-sorting-list", inputs: ["sortList"], outputs: ["sortChanged"] }, { type: i13.TableColumnsTogglerComponent, selector: "table-columns-toggler", inputs: ["prefix", "sortable", "columns"], outputs: ["columnsChanged"] }, { type: i14.ModeTogglerComponent, selector: "mode-toggler", inputs: ["modesList", "mode"], outputs: ["modeChanged"] }, { type: i15.DynamicTableComponent, selector: "cts-dynamic-table", inputs: ["columns", "responsiveColumns", "entityType", "prefix", "headers", "fields", "pageProvider", "pageSize", "isLegacyMode", "showTotalRecord", "pageNumber", "sortingBy", "queryParam", "customFilters", "quickFilter", "report", "rowCursor", "fullWidth", "tableMode", "componentName", "tableActions", "defultSort", "range", "isSearchPage", "multiSelectRows", "customFirstRow", "highlightSelectedCard", "showActionsAsMenu", "filterParams", "skipAggregation", "customUrl", "format", "pageSizes"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "sortChanged", "onPageChange", "onPage", "onLoad", "onInitialize"] }, { type: i16.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: i17.NoDataFoundComponent, selector: "app-no-data-found", inputs: ["message", "width", "height"] }, { type: i18.TableComponent, selector: "cts-table", inputs: ["rows", "columns", "responsiveColumns", "entityType", "prefix", "pageCount", "totalRecords", "rowCursor", "fullWidth", "vocItemTranslationPrefix", "tableMode", "componentName", "tableActions", "format", "defultSort", "highlightSelectedCard", "multiSelectRows", "customFirstRow", "showActionsAsMenu", "messages", "defaultColumnSize"], outputs: ["onRowSelected", "onRowIndexSelected", "onIconSelected", "actionOnRow", "onSorting", "onMultiRowSelected"] }], directives: [{ type: i19.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i20.FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "cssVar", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { type: i21.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i19.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i22.EmptyTemplateDirective, selector: "[emptyTemplate]" }], pipes: { "async": i19.AsyncPipe } });
387
391
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfTableComponent, decorators: [{
388
392
  type: Component,
389
393
  args: [{
@@ -411,6 +415,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
411
415
  type: Input
412
416
  }], tableKey: [{
413
417
  type: Input
418
+ }], jsonEditorEnabled: [{
419
+ type: Input
414
420
  }], config: [{
415
421
  type: Input
416
422
  }], customCriteria: [{
@@ -449,4 +455,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
449
455
  type: ContentChild,
450
456
  args: [FILTER_CUSTOM_TEMPLATE, { read: TemplateRef }]
451
457
  }] } });
452
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL25kZi10YWJsZS9jb250YWluZXJzL25kZi10YWJsZS9uZGYtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvbmRmLXRhYmxlL2NvbnRhaW5lcnMvbmRmLXRhYmxlL25kZi10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sV0FBVyxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFtQixFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekcsT0FBTyxFQUVOLG1CQUFtQixFQUVuQixtQkFBbUIsRUFFbkIsTUFBTSxxQkFBcUIsQ0FBQztBQVk3QixPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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RyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR08sTUFBTTtzQkFBbEIsS0FBSztnQkFRTyxjQUFjO3NCQUExQixLQUFLO2dCQU1PLFVBQVU7c0JBQXRCLEtBQUs7Z0JBTUksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUVHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBRUcsYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBRXNELG9CQUFvQjtzQkFBaEYsWUFBWTt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBQ0MsbUJBQW1CO3NCQUE5RSxZQUFZO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDRyxvQkFBb0I7c0JBQWhGLFlBQVk7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5pbXBvcnQge1xyXG5cdENvbXBvbmVudCxcclxuXHRDb250ZW50Q2hpbGQsXHJcblx0RXZlbnRFbWl0dGVyLFxyXG5cdElucHV0LFxyXG5cdE9uQ2hhbmdlcyxcclxuXHRPdXRwdXQsXHJcblx0U2ltcGxlQ2hhbmdlcyxcclxuXHRUZW1wbGF0ZVJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGlpZiwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFDVElPTlNfVEFCTEVfVEVNUExBVEUsIEZJTFRFUl9DVVNUT01fVEVNUExBVEUsIFNFQVJDSF9UQUJMRV9URU1QTEFURSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xyXG5pbXBvcnQge1xyXG5cdEFnZ3JlZ2F0aW9uUmVzcG9uc2UsXHJcblx0Q09NUEFSSVNPTl9PUEVSQVRPUixcclxuXHRGb3JtUXVlcnlNb2RlbCxcclxuXHRIdG1sRGlhbG9nQ29tcG9uZW50LFxyXG5cdEh0bWxEaWFsb2dDb25maWdcclxufSBmcm9tICcuLi8uLi9maWx0ZXJzLXBhbmVsJztcclxuaW1wb3J0IHtcclxuXHRDdXN0b21Dcml0ZXJpYU1vZGVsLFxyXG5cdEV4cG9ydFR5cGUsXHJcblx0TmRmRXhwb3J0UGF5bG9hZCxcclxuXHROZGZUYWJsZUNvbmZpZyxcclxuXHRTb3J0VGFibGVJdGVtLFxyXG5cdFRhYmxlQ29sdW1uQ29uZmlnLFxyXG5cdFRhYmxlU29ydE9wdGlvbnMsXHJcblx0VGFibGVWaWV3TW9kZVxyXG59IGZyb20gJy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEZpbHRlcnNNYXBwZXJTZXJ2aWNlLCBOZGZUYWJsZUNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBOZGZUYWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IFBBR0VfU0laRSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvci9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBEZXN0cm95U3ViamVjdCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgTnV4ZW9QYWdpbmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkL21vZGVscyc7XHJcbmltcG9ydCB7IER5bmFtaWNUYWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9keW5hbWljLXRhYmxlJztcclxuaW1wb3J0IHsgQ3VzdG9tVG9hc3RyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2N1c3RvbS10b2FzdHIvc2VydmljZXMvY3VzdG9tLXRvYXN0ci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXBwLW5kZi10YWJsZScsXHJcblx0dGVtcGxhdGVVcmw6ICcuL25kZi10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vbmRmLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0aG9zdDoge1xyXG5cdFx0Y2xhc3M6ICduZGYtdGFibGUnLFxyXG5cdFx0J1tkaXJdJzogJ2RpcmVjdGlvbidcclxuXHR9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZGZUYWJsZUNvbXBvbmVudCBleHRlbmRzIERlc3Ryb3lTdWJqZWN0IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuXHRwcml2YXRlIHJlYWRvbmx5IF9hZ2dyZWdhdGlvbnNTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlY29yZDxzdHJpbmcsIEFnZ3JlZ2F0aW9uUmVzcG9uc2U+PihudWxsKTtcclxuXHRwcml2YXRlIHJlYWRvbmx5IF9kaXNwbGF5ZWRDb2x1bW5zU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUYWJsZUNvbHVtbkNvbmZpZ1tdPihbXSk7XHJcblx0cHJpdmF0ZSByZWFkb25seSBfc29ydE9wdGlvblN1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFibGVTb3J0T3B0aW9ucz4obnVsbCk7XHJcblx0cHJpdmF0ZSByZWFkb25seSBfdmlld01vZGVTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRhYmxlVmlld01vZGU+KCdsaXN0Jyk7XHJcblx0cHJpdmF0ZSByZWFkb25seSBfdGV4dFNlYXJjaFN1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihudWxsKTtcclxuXHJcblx0cHJpdmF0ZSByZWFkb25seSBfYWN0aXZhdGVkQ3JpdGVyaWFTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHtcclxuXHRcdHByZXZpb3VzVmFsdWU6IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblx0XHRjdXJyZW50VmFsdWU6IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblx0fT4obnVsbCk7XHJcblxyXG5cdHByaXZhdGUgcmVhZG9ubHkgX2N1c3RvbUNyaXRlcmlhU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDdXN0b21Dcml0ZXJpYU1vZGVsPih7XHJcblx0XHRwYXJhbXM6IHt9LFxyXG5cdFx0cGF5bG9hZDoge1xyXG5cdFx0XHRwcmVkaWNhdGVMaXN0OiBbXVxyXG5cdFx0fVxyXG5cdH0pO1xyXG5cclxuXHRyZWFkb25seSBhZ2dyZWdhdGlvbnMkID0gdGhpcy5fYWdncmVnYXRpb25zU3ViLmFzT2JzZXJ2YWJsZSgpO1xyXG5cdHJlYWRvbmx5IGRpc3BsYXllZENvbHVtbnMkID0gdGhpcy5fZGlzcGxheWVkQ29sdW1uc1N1Yi5hc09ic2VydmFibGUoKTtcclxuXHRyZWFkb25seSBzb3J0T3B0aW9uJCA9IHRoaXMuX3NvcnRPcHRpb25TdWIuYXNPYnNlcnZhYmxlKCk7XHJcblx0cmVhZG9ubHkgdmlld01vZGUkID0gdGhpcy5fdmlld01vZGVTdWIuYXNPYnNlcnZhYmxlKCk7XHJcblx0cmVhZG9ubHkgY3VzdG9tRmlsdGVycyQgPSB0aGlzLl9jdXN0b21Dcml0ZXJpYVN1Yi5hc09ic2VydmFibGUoKTtcclxuXHRyZWFkb25seSB0ZXh0U2VhcmNoJCA9IHRoaXMuX3RleHRTZWFyY2hTdWIuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG5cdHJlYWRvbmx5IHNlYXJjaEFuZEZpbHRlcnMkID0gY29tYmluZUxhdGVzdChbdGhpcy50ZXh0U2VhcmNoJCwgdGhpcy5jdXN0b21GaWx0ZXJzJF0pLnBpcGUoXHJcblx0XHRtYXAoKHJlcykgPT4gdGhpcy5fcHJlcGFyZVNlYXJjaChyZXMpKVxyXG5cdCk7XHJcblx0QElucHV0KCkgcm93czogQXJyYXk8dW5rbm93bj47XHJcblx0QElucHV0KCkgdG90YWxSZWNvcmRzOiBudW1iZXI7XHJcblx0QElucHV0KCkgYXV0b0NhbGN1bGF0ZUhlaWdodCA9IHRydWU7XHJcblx0QElucHV0KCkgZW1wdHlNZXNzYWdlID0gJ3RhYmxlX25vRGF0YSc7XHJcblx0QElucHV0KCkgYWN0aXZlUXVlcnk6IEZvcm1RdWVyeU1vZGVsO1xyXG5cdEBJbnB1dCgpIGNvbmZpZ1BhdGg6IHN0cmluZyA9ICd0YWJsZXMnO1xyXG5cdEBJbnB1dCgpIGNvbmZpZ1RyYW5zZm9ybWVyOiAoY29uZmlnOiBOZGZUYWJsZUNvbmZpZykgPT4gT2JzZXJ2YWJsZTxOZGZUYWJsZUNvbmZpZz47XHJcblx0QElucHV0KCkgdGFibGVLZXk6IHN0cmluZztcclxuXHJcblx0cHJpdmF0ZSBfY29uZmlnOiBOZGZUYWJsZUNvbmZpZztcclxuXHRASW5wdXQoKSBzZXQgY29uZmlnKGNvbmZpZzogTmRmVGFibGVDb25maWcpIHtcclxuXHRcdHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcclxuXHR9XHJcblxyXG5cdGdldCB0YWJsZUNvbmZpZygpIHtcclxuXHRcdHJldHVybiB0aGlzLl90YWJsZUNvbmZpZ1N1Yi5nZXRWYWx1ZSgpO1xyXG5cdH1cclxuXHJcblx0QElucHV0KCkgc2V0IGN1c3RvbUNyaXRlcmlhKGNyaXRlcmlhOiBDdXN0b21Dcml0ZXJpYU1vZGVsKSB7XHJcblx0XHRpZiAoY3JpdGVyaWEpIHtcclxuXHRcdFx0dGhpcy5fY3VzdG9tQ3JpdGVyaWFTdWIubmV4dChjcml0ZXJpYSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRASW5wdXQoKSBzZXQgc2VhcmNoVGVybSh2YWx1ZTogc3RyaW5nKSB7XHJcblx0XHRpZiAodmFsdWUpIHtcclxuXHRcdFx0dGhpcy5fdGV4dFNlYXJjaFN1Yi5uZXh0KHZhbHVlKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEBPdXRwdXQoKSBvblJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdEBPdXRwdXQoKSBvblJvd0luZGV4U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0QE91dHB1dCgpIGFjdGlvbk9uUm93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdEBPdXRwdXQoKSBvbkdldHRpbmdEYXRhID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdEBPdXRwdXQoKSBvbk11bHRpUm93U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0QE91dHB1dCgpIG9uTG9hZGluZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcblx0QE91dHB1dCgpIG9uUGFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnZUV2ZW50PigpO1xyXG5cdEBPdXRwdXQoKSBvbkluaXRpYWxpemVkID0gbmV3IEV2ZW50RW1pdHRlcjxOdXhlb1BhZ2luYXRpb248YW55Pj4oKTtcclxuXHRAT3V0cHV0KCkgb25Mb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE51eGVvUGFnaW5hdGlvbjxhbnk+PigpO1xyXG5cclxuXHRAT3V0cHV0KCkgb25RdWVyeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAT3V0cHV0KCkgb25Tb3J0ID0gbmV3IEV2ZW50RW1pdHRlcjxUYWJsZVNvcnRPcHRpb25zPigpO1xyXG5cclxuXHRAQ29udGVudENoaWxkKEFDVElPTlNfVEFCTEVfVEVNUExBVEUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgYWN0aW9uc1RhYmxlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblx0QENvbnRlbnRDaGlsZChTRUFSQ0hfVEFCTEVfVEVNUExBVEUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgc2VhcmNoVGFibGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHRAQ29udGVudENoaWxkKEZJTFRFUl9DVVNUT01fVEVNUExBVEUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgZmlsdGVyQ3VzdG9tVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG5cdHByaXZhdGUgX3RhYmxlQ29uZmlnU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxOZGZUYWJsZUNvbmZpZz4obnVsbCk7XHJcblxyXG5cdGdldCBvcHRpb25zKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMudGFibGVDb25maWc/Lm9wdGlvbnM7XHJcblx0fVxyXG5cclxuXHRnZXQgZmlsdGVyc0NvbmZpZygpIHtcclxuXHRcdHJldHVybiB0aGlzLm9wdGlvbnM/LmZpbHRlcnM7XHJcblx0fVxyXG5cclxuXHRnZXQgc29ydExpc3QoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zPy5zb3J0TGlzdCB8fCBbXTtcclxuXHR9XHJcblxyXG5cdGdldCBjb2x1bW5zT3B0aW9ucygpIHtcclxuXHRcdHJldHVybiB0aGlzLnRhYmxlQ29uZmlnPy5vcHRpb25zPy5jb2x1bW5zO1xyXG5cdH1cclxuXHJcblx0Z2V0IGNvbHVtblRvZ2dsZSgpIHtcclxuXHRcdHJldHVybiB0aGlzLmNvbHVtbnNPcHRpb25zPy50b2dnbGUgPz8gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdGdldCB0YWJsZU1vZGUoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zPy50YWJsZU1vZGU7XHJcblx0fVxyXG5cclxuXHRnZXQgcGFuZWxDb25maWcoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zPy5maWx0ZXJzPy5wYW5lbDtcclxuXHR9XHJcblxyXG5cdGdldCBpc1BhbmVsVG9nZ2xlQXZhaWxhYmxlKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMucGFuZWxDb25maWc/LnRvZ2dsZUJ1dHRvbiA/PyB0cnVlO1xyXG5cdH1cclxuXHJcblx0Z2V0IHRleHRTZWFyY2hDb25maWcoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zPy5zZWFyY2g7XHJcblx0fVxyXG5cclxuXHRnZXQgZmlsdGVyUmVsb2FkQ29uZmlnKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMub3B0aW9ucz8uZmlsdGVycz8ucmVsb2FkO1xyXG5cdH1cclxuXHJcblx0Z2V0IGV4cG9ydFRhYmxlQ29uZmlnKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMub3B0aW9ucz8uZXhwb3J0O1xyXG5cdH1cclxuXHJcblx0cmVhZG9ubHkgZGVmYXVsdFNvcnQgPSBbeyBwcm9wOiAncHJvcGVydGllcy5jcmVhdGVkQXQnLCBkaXI6ICdkZXNjJyB9XTtcclxuXHJcblx0ZGlyZWN0aW9uOiBEaXJlY3Rpb24gPSAncnRsJztcclxuXHRpc1BhbmVsT3BlbmVkID0gZmFsc2U7XHJcblx0cmVhZG9ubHkgZGVmYXVsdFBhZ2VTaXplcyA9IFBBR0VfU0laRTtcclxuXHJcblx0cHJpdmF0ZSBfaXNDb25maWdDaGFuZ2VkID0gZmFsc2U7XHJcblx0cHJpdmF0ZSBfdGFibGVJbml0aWFsaXplZCA9IGZhbHNlO1xyXG5cdHByaXZhdGUgX3BhZ2VDaGFuZ2VkID0gZmFsc2U7XHJcblx0cHJpdmF0ZSBfYWN0aXZlUGFnZTogUGFnZUV2ZW50ID0ge1xyXG5cdFx0cGFnZUluZGV4OiAxLFxyXG5cdFx0cGFnZVNpemU6IDEwLFxyXG5cdFx0bGVuZ3RoOiAwXHJcblx0fTtcclxuXHJcblx0cHJpdmF0ZSBfc29ydFZhbHVlOiBUYWJsZVNvcnRPcHRpb25zO1xyXG5cclxuXHQvKipcclxuXHQgKlxyXG5cdCAqL1xyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBfZmlsdGVyc01hcHBlcjogRmlsdGVyc01hcHBlclNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF9keW5hbWljVGFibGVTZXJ2aWNlOiBEeW5hbWljVGFibGVTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBfdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuXHRcdHByaXZhdGUgX25nVGFibGVTZXJ2aWNlOiBOZGZUYWJsZVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF90b2FzdHJTZXJ2aWNlOiBDdXN0b21Ub2FzdHJTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBfbmRmVGFibGVDb25maWd1cmF0aW9uU2VydmljZTogTmRmVGFibGVDb25maWd1cmF0aW9uU2VydmljZSxcclxuXHRcdHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nXHJcblx0KSB7XHJcblx0XHRzdXBlcigpO1xyXG5cdFx0dGhpcy5fdHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2VcclxuXHRcdFx0LnBpcGUoc3RhcnRXaXRoKHsgbGFuZzogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyB9KSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG5cdFx0XHQuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0XHR0aGlzLmRpcmVjdGlvbiA9IHJlcy5sYW5nID09PSAnYXInID8gJ3J0bCcgOiAnbHRyJztcclxuXHRcdFx0fSk7XHJcblx0fVxyXG5cclxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcblx0XHRjb25zdCB0YWJsZUtleSA9IGNoYW5nZXMudGFibGVLZXk/LmN1cnJlbnRWYWx1ZTtcclxuXHRcdGNvbnN0IGNvbmZpZyA9IGNoYW5nZXMuY29uZmlnPy5jdXJyZW50VmFsdWU7XHJcblxyXG5cdFx0aWYgKHRhYmxlS2V5ICYmIGNvbmZpZykge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ1lvdSBjYW5ub3Qgc2V0IGJvdGggdGFibGVLZXkgYW5kIHRhYmxlQ29uZmlnIGF0IHRoZSBzYW1lIHRpbWUuJyk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKGNvbmZpZykge1xyXG5cdFx0XHR0aGlzLl9hcHBseVRhYmxlQ29uZmlnKGNvbmZpZyk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRhYmxlS2V5KSB7XHJcblx0XHRcdHRoaXMuX2xvYWRUYWJsZUNvbmZpZyh0YWJsZUtleSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHR0b2dnbGVQYW5lbCgpIHtcclxuXHRcdHRoaXMuaXNQYW5lbE9wZW5lZCA9ICF0aGlzLmlzUGFuZWxPcGVuZWQ7XHJcblx0fVxyXG5cclxuXHRvbkxvYWQoZGF0YTogTnV4ZW9QYWdpbmF0aW9uPGFueT4pOiB2b2lkIHtcclxuXHRcdHRoaXMub25Mb2FkZWQuZW1pdChkYXRhKTtcclxuXHRcdGlmICghdGhpcy5fdGFibGVJbml0aWFsaXplZCB8fCB0aGlzLmZpbHRlclJlbG9hZENvbmZpZz8uc3RyYXRlZ3kgPT09ICduZXZlcicgfHwgdGhpcy5fcGFnZUNoYW5nZWQpIHtcclxuXHRcdFx0dGhpcy5fcGFnZUNoYW5nZWQgPSBmYWxzZTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICh0aGlzLl9pc0NvbmZpZ0NoYW5nZWQgfHwgdGhpcy5maWx0ZXJSZWxvYWRDb25maWc/LnN0cmF0ZWd5ID09PSAnYWx3YXlzJykge1xyXG5cdFx0XHR0aGlzLl9hZ2dyZWdhdGlvbnNTdWIubmV4dChkYXRhPy5hZ2dyZWdhdGlvbnMpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMuZmlsdGVyUmVsb2FkQ29uZmlnPy5zdHJhdGVneSA9PT0gJ29uQ2hhbmdlJykge1xyXG5cdFx0XHRjb25zdCBhY3RpdmF0ZWRRdWVyeSA9IHRoaXMuX2FjdGl2YXRlZENyaXRlcmlhU3ViLmdldFZhbHVlKCk7XHJcblx0XHRcdGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGFjdGl2YXRlZFF1ZXJ5Py5jdXJyZW50VmFsdWUgfHwge307XHJcblx0XHRcdGNvbnN0IHByZXZpb3VzVmFsdWUgPSBhY3RpdmF0ZWRRdWVyeT8ucHJldmlvdXNWYWx1ZSB8fCB7fTtcclxuXHJcblx0XHRcdGNvbnN0IHVwZGF0ZWRLZXlzID0gXy51bmlvbihfLmtleXMocHJldmlvdXNWYWx1ZSksIF8ua2V5cyhjdXJyZW50VmFsdWUpKS5maWx0ZXIoXHJcblx0XHRcdFx0KGtleSkgPT4gIV8uaXNFcXVhbChwcmV2aW91c1ZhbHVlW2tleV0sIGN1cnJlbnRWYWx1ZVtrZXldKVxyXG5cdFx0XHQpO1xyXG5cclxuXHRcdFx0Y29uc3QgdHJpZ2dlcktleXMgPSB0aGlzLmZpbHRlclJlbG9hZENvbmZpZy50cmlnZ2VyRmllbGRzIHx8IFtdO1xyXG5cdFx0XHRjb25zdCBzaG91bGRSZWxvYWQgPSB0cmlnZ2VyS2V5cy5zb21lKChrZXkpID0+IHVwZGF0ZWRLZXlzLmluY2x1ZGVzKGtleSkpO1xyXG5cdFx0XHRpZiAoc2hvdWxkUmVsb2FkKSB7XHJcblx0XHRcdFx0dGhpcy5fYWdncmVnYXRpb25zU3ViLm5leHQoZGF0YT8uYWdncmVnYXRpb25zKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0b25Jbml0aWFsaXplKGRhdGE6IE51eGVvUGFnaW5hdGlvbjxhbnk+KTogdm9pZCB7XHJcblx0XHR0aGlzLl9hZ2dyZWdhdGlvbnNTdWIubmV4dChkYXRhPy5hZ2dyZWdhdGlvbnMpO1xyXG5cdFx0dGhpcy5fdGFibGVJbml0aWFsaXplZCA9IHRydWU7XHJcblx0XHR0aGlzLl9pc0NvbmZpZ0NoYW5nZWQgPSBmYWxzZTtcclxuXHRcdHRoaXMub25Jbml0aWFsaXplZC5lbWl0KGRhdGEpO1xyXG5cdH1cclxuXHJcblx0Y29sdW1uc0NoYW5nZWQoY29sdW1uczogVGFibGVDb2x1bW5Db25maWdbXSkge1xyXG5cdFx0dGhpcy5fZGlzcGxheWVkQ29sdW1uc1N1Yi5uZXh0KGNvbHVtbnMpO1xyXG5cdH1cclxuXHJcblx0c29ydENoYW5nZWQoc29ydDogU29ydFRhYmxlSXRlbSkge1xyXG5cdFx0dGhpcy5fc29ydFZhbHVlID0geyBzb3J0Qnk6IHNvcnQudmFsdWUsIHNvcnRPcmRlcjogc29ydC5kaXJlY3Rpb24gfTtcclxuXHRcdHRoaXMuX3NvcnRPcHRpb25TdWIubmV4dCh0aGlzLl9zb3J0VmFsdWUpO1xyXG5cdH1cclxuXHJcblx0bW9kZUNoYW5nZWQobW9kZTogVGFibGVWaWV3TW9kZSkge1xyXG5cdFx0dGhpcy5fdmlld01vZGVTdWIubmV4dChtb2RlKTtcclxuXHR9XHJcblxyXG5cdG9uU29ydENoYW5nZWQoc29ydDogVGFibGVTb3J0T3B0aW9ucykge1xyXG5cdFx0dGhpcy5fc29ydFZhbHVlID0gc29ydDtcclxuXHRcdHRoaXMub25Tb3J0LmVtaXQoc29ydCk7XHJcblx0fVxyXG5cclxuXHRleHBvcnRUYWJsZSh0eXBlOiBFeHBvcnRUeXBlKSB7XHJcblx0XHRjb25zdCByZXF1ZXN0ID0gXy5jbG9uZURlZXAodGhpcy5leHBvcnRUYWJsZUNvbmZpZz8ucmVxdWVzdCk7XHJcblx0XHRpZiAoIXJlcXVlc3QpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgY29sdW1ucyA9IHRoaXMuX2Rpc3BsYXllZENvbHVtbnNTdWIuZ2V0VmFsdWUoKTtcclxuXHRcdGNvbnN0IGZpZWxkcyA9IGNvbHVtbnMubWFwKChjb2wpID0+IGNvbC5oZWFkZXJDbGFzcyk7XHJcblx0XHRjb25zdCBoZWFkZXJzID0gY29sdW1ucy5tYXAoKGNvbCkgPT4gKHRoaXMudGFibGVDb25maWcucHJlZml4IHx8ICcnKSArIGNvbC5uYW1lKTtcclxuXHJcblx0XHRjb25zdCBjcml0ZXJpYSA9IHRoaXMuX2N1c3RvbUNyaXRlcmlhU3ViLmdldFZhbHVlKCk7XHJcblxyXG5cdFx0cmVxdWVzdC5wYXJhbXMgPSBPYmplY3QuYXNzaWduKFxyXG5cdFx0XHR7fSxcclxuXHRcdFx0Y3JpdGVyaWEucGFyYW1zLFxyXG5cdFx0XHR0aGlzLl9zb3J0VmFsdWUgfHwge30sXHJcblx0XHRcdHRoaXMudGFibGVDb25maWc/LnF1aWNrRmlsdGVycyA/IHsgcXVpY2tGaWx0ZXJzOiB0aGlzLnRhYmxlQ29uZmlnLnF1aWNrRmlsdGVycyB9IDoge30sXHJcblx0XHRcdHJlcXVlc3QucGFyYW1zXHJcblx0XHQpO1xyXG5cclxuXHRcdGNvbnN0IHBheWxvYWQ6IE5kZkV4cG9ydFBheWxvYWQgPSB7XHJcblx0XHRcdHByZWRpY2F0ZUxpc3Q6IGNyaXRlcmlhLnBheWxvYWQucHJlZGljYXRlTGlzdCB8fCBbXSxcclxuXHRcdFx0cmVwb3J0TWV0YURhdGE6IHtcclxuXHRcdFx0XHRkb2NUeXBlTmFtZTogdGhpcy5leHBvcnRUYWJsZUNvbmZpZy5kb2NUeXBlTmFtZSxcclxuXHRcdFx0XHRmaWxlVHlwZTogdHlwZSxcclxuXHRcdFx0XHRsb2NhbGU6IHRoaXMuZXhwb3J0VGFibGVDb25maWc/LmxvY2FsZSB8fCB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nLFxyXG5cdFx0XHRcdGZpZWxkczogdGhpcy5leHBvcnRUYWJsZUNvbmZpZz8uZmllbGRzIHx8IGZpZWxkcyxcclxuXHRcdFx0XHRoZWFkZXJzOiBbXVxyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cclxuXHRcdHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2VcclxuXHRcdFx0LmdldChoZWFkZXJzKVxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRzd2l0Y2hNYXAoKHRyYW5zbGF0aW9ucykgPT4ge1xyXG5cdFx0XHRcdFx0cGF5bG9hZC5yZXBvcnRNZXRhRGF0YS5oZWFkZXJzID0gaGVhZGVycy5tYXAoKGNvbCkgPT4gdHJhbnNsYXRpb25zW2NvbF0pO1xyXG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuX25nVGFibGVTZXJ2aWNlLmV4cG9ydFRhYmxlKHJlcXVlc3QsIHBheWxvYWQpO1xyXG5cdFx0XHRcdH0pLFxyXG5cdFx0XHRcdGNhdGNoRXJyb3IoKF8pID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuX3RvYXN0clNlcnZpY2UuZXJyb3IoJ1RBQkxFLkVYUE9SVC5SZXF1ZXN0RXJyb3InKTtcclxuXHRcdFx0XHRcdHJldHVybiBvZihmYWxzZSk7XHJcblx0XHRcdFx0fSksXHJcblx0XHRcdFx0ZmlsdGVyKEJvb2xlYW4pLFxyXG5cdFx0XHRcdHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxyXG5cdFx0XHQpXHJcblx0XHRcdC5zdWJzY3JpYmUoKHJlczogYm9vbGVhbikgPT4ge1xyXG5cdFx0XHRcdGlmIChyZXMpIHtcclxuXHRcdFx0XHRcdHRoaXMuX3RvYXN0clNlcnZpY2Uuc3VjY2VzcygnVEFCTEUuRVhQT1JULnJlcXVlc3RTdWNjZXNzJyk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMuX3RvYXN0clNlcnZpY2UuZXJyb3IoJ1RBQkxFLkVYUE9SVC5yZXF1ZXN0RXJyb3InKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0ZmlsdGVyQ2hhbmdlZChjcml0ZXJpYTogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG5cdFx0dGhpcy5fdHJpZ2dlckNyaXRlcmlhQ2hhbmdlcyhjcml0ZXJpYSk7XHJcblx0XHRpZiAodGhpcy5maWx0ZXJzQ29uZmlnPy5tb2RlICE9PSAncGF5bG9hZCcpIHtcclxuXHRcdFx0Y29uc3QgaXNTdHJpbmdpZnlQYXJhbXMgPSB0aGlzLmZpbHRlcnNDb25maWc/LnN0cmluZ2lmeVBhcmFtcztcclxuXHRcdFx0Y29uc3QgdmFsdWUgPSAhaXNTdHJpbmdpZnlQYXJhbXMgPyBjcml0ZXJpYSA6IHRoaXMuX3N0cmluZ2lmeVZhbHVlcyhjcml0ZXJpYSk7XHJcblx0XHRcdHRoaXMuX2R5bmFtaWNUYWJsZVNlcnZpY2UucmVmcmVzaERhdGEubmV4dCh2YWx1ZSk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBwYXlsb2FkID0gdGhpcy5fZmlsdGVyc01hcHBlci5wcmVwYXJlUGF5bG9hZCh0aGlzLmZpbHRlcnNDb25maWcuZmllbGRzLCBjcml0ZXJpYSk7XHJcblx0XHR0aGlzLl9jdXN0b21Dcml0ZXJpYVN1Yi5uZXh0KHBheWxvYWQpO1xyXG5cdH1cclxuXHJcblx0b25UZXh0U2VhcmNoKHRleHQ6IHN0cmluZykge1xyXG5cdFx0aWYgKCF0aGlzLnRleHRTZWFyY2hDb25maWc/LmZpZWxkS2V5IHx8IHR5cGVvZiB0ZXh0ICE9PSAnc3RyaW5nJykge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCF0ZXh0KSB7XHJcblx0XHRcdHRoaXMub25DbGVhclNlYXJjaCgpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHR0aGlzLl90ZXh0U2VhcmNoU3ViLm5leHQodGV4dCk7XHJcblx0fVxyXG5cclxuXHRvbkNsZWFyU2VhcmNoKCkge1xyXG5cdFx0dGhpcy5fdGV4dFNlYXJjaFN1Yi5uZXh0KG51bGwpO1xyXG5cdH1cclxuXHJcblx0b3BlblNlYXJjaE1vZGFsKCkge1xyXG5cdFx0Y29uc3QgX2RpYWxvZ0NvbmZpZyA9IHRoaXMudGV4dFNlYXJjaENvbmZpZz8uc3VmZml4Py5kaWFsb2c7XHJcblx0XHRpZiAoIV9kaWFsb2dDb25maWcpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgeyBvcHRpb25zLCAuLi5kYXRhIH0gPSBfZGlhbG9nQ29uZmlnO1xyXG5cdFx0dGhpcy5fZGlhbG9nLm9wZW48SHRtbERpYWxvZ0NvbXBvbmVudCwgSHRtbERpYWxvZ0NvbmZpZz4oSHRtbERpYWxvZ0NvbXBvbmVudCwge1xyXG5cdFx0XHRwYW5lbENsYXNzOiAncC0wJyxcclxuXHRcdFx0bWluV2lkdGg6ICdtaW4oNTAwcHgsNjB2dyknLFxyXG5cdFx0XHRkaXJlY3Rpb246IHRoaXMuZGlyZWN0aW9uLFxyXG5cdFx0XHQuLi5vcHRpb25zLFxyXG5cdFx0XHRkYXRhXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG9uUGFnZUNoYW5nZWQocGFnZTogUGFnZUV2ZW50KSB7XHJcblx0XHR0aGlzLl9wYWdlQ2hhbmdlZCA9IHRoaXMuX2FjdGl2ZVBhZ2UucGFnZUluZGV4ICE9PSBwYWdlLnBhZ2VJbmRleCB8fCB0aGlzLl9hY3RpdmVQYWdlLnBhZ2VTaXplICE9PSBwYWdlLnBhZ2VTaXplO1xyXG5cdFx0aWYgKHRoaXMuX3BhZ2VDaGFuZ2VkKSB7XHJcblx0XHRcdHRoaXMub25QYWdlLmVtaXQocGFnZSk7XHJcblx0XHRcdHRoaXMuX2FjdGl2ZVBhZ2UgPSBwYWdlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfZmlsdGVyQnlWaXNpYmlsaXR5KGNvbHVtbnM6IFRhYmxlQ29sdW1uQ29uZmlnW10pOiBUYWJsZUNvbHVtbkNvbmZpZ1tdIHtcclxuXHRcdHJldHVybiBjb2x1bW5zLmZpbHRlcigoY29sKSA9PiBjb2wuZGVmYXVsdFZpc2libGUpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfcHJlcGFyZVNlYXJjaChbc2VhcmNoLCBmaWx0ZXJzXTogW1xyXG5cdFx0c3RyaW5nLFxyXG5cdFx0e1xyXG5cdFx0XHRwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG5cdFx0XHRwYXlsb2FkPzogeyBwcmVkaWNhdGVMaXN0OiBhbnlbXSB9ICYgUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHRcdH1cclxuXHRdKTogYW55IHtcclxuXHRcdHtcclxuXHRcdFx0Y29uc3QgeyBwcmVkaWNhdGVMaXN0IH0gPSBmaWx0ZXJzLnBheWxvYWQ7XHJcblx0XHRcdGNvbnN0IF9rZXkgPSB0aGlzLnRleHRTZWFyY2hDb25maWc/LmZpZWxkS2V5O1xyXG5cdFx0XHRjb25zdCBzZWFyY2hJbmRleCA9IHByZWRpY2F0ZUxpc3QuZmluZEluZGV4KChpdG0pID0+IGl0bS5uYW1lID09PSBfa2V5KTtcclxuXHRcdFx0aWYgKHNlYXJjaCAmJiBfa2V5KSB7XHJcblx0XHRcdFx0aWYgKHNlYXJjaEluZGV4ID49IDApIHtcclxuXHRcdFx0XHRcdHByZWRpY2F0ZUxpc3Rbc2VhcmNoSW5kZXhdLnZhbHVlID0gYCcke3NlYXJjaH0nYDtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0cHJlZGljYXRlTGlzdC5wdXNoKHtcclxuXHRcdFx0XHRcdFx0bmFtZTogX2tleSxcclxuXHRcdFx0XHRcdFx0b3BlcmF0b3I6IHRoaXMudGV4dFNlYXJjaENvbmZpZz8ub3BlcmF0b3IgfHwgQ09NUEFSSVNPTl9PUEVSQVRPUi5lcXVhbHMsXHJcblx0XHRcdFx0XHRcdHZhbHVlOiBgJyR7c2VhcmNofSdgXHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0gZWxzZSBpZiAoc2VhcmNoSW5kZXggPj0gMCkge1xyXG5cdFx0XHRcdHByZWRpY2F0ZUxpc3Quc3BsaWNlKHNlYXJjaEluZGV4KTtcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gXy5jbG9uZURlZXAoeyAuLi5maWx0ZXJzIH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfc3RyaW5naWZ5VmFsdWVzKGNyaXRlcmlhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XHJcblx0XHRyZXR1cm4gT2JqZWN0LmVudHJpZXMoY3JpdGVyaWEpLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHtcclxuXHRcdFx0YWNjW2tleV0gPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IEpTT04uc3RyaW5naWZ5KHZhbHVlKSA6IHZhbHVlO1xyXG5cdFx0XHRyZXR1cm4gYWNjO1xyXG5cdFx0fSwge30pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfdHJpZ2dlckNyaXRlcmlhQ2hhbmdlcyhjcml0ZXJpYTogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG5cdFx0aWYgKHRoaXMuX3RhYmxlSW5pdGlhbGl6ZWQpIHtcclxuXHRcdFx0dGhpcy5vblF1ZXJ5Q2hhbmdlLmVtaXQoY3JpdGVyaWEpO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgYWN0aXZhdGVkUXVlcnkgPSB7IC4uLnRoaXMuX2FjdGl2YXRlZENyaXRlcmlhU3ViLmdldFZhbHVlKCkgfTtcclxuXHRcdGNvbnN0IHByZXZpb3VzVmFsdWUgPSBhY3RpdmF0ZWRRdWVyeT8uY3VycmVudFZhbHVlO1xyXG5cdFx0dGhpcy5fYWN0aXZhdGVkQ3JpdGVyaWFTdWIubmV4dCh7XHJcblx0XHRcdHByZXZpb3VzVmFsdWU6IHByZXZpb3VzVmFsdWUsXHJcblx0XHRcdGN1cnJlbnRWYWx1ZTogY3JpdGVyaWFcclxuXHRcdH0pO1xyXG5cdH1cclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb25cclxuXHQgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIHNldCB0aGUgdGFibGUgY29uZmlndXJhdGlvbi5cclxuXHQgKiBAcGFyYW0gY29uZmlnIE5kZlRhYmxlQ29uZmlnXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfYXBwbHlUYWJsZUNvbmZpZyhjb25maWc6IE5kZlRhYmxlQ29uZmlnKTogdm9pZCB7XHJcblx0XHR0aGlzLl90YWJsZUNvbmZpZ1N1Yi5uZXh0KGNvbmZpZyk7XHJcblx0XHR0aGlzLmlzUGFuZWxPcGVuZWQgPSBjb25maWc/Lm9wdGlvbnM/LmZpbHRlcnM/LnBhbmVsPy52aXNpYmxlID8/IHRydWU7XHJcblx0XHR0aGlzLl9pc0NvbmZpZ0NoYW5nZWQgPSAhIWNvbmZpZztcclxuXHRcdGlmIChjb25maWcuY29sdW1ucykge1xyXG5cdFx0XHR0aGlzLl9kaXNwbGF5ZWRDb2x1bW5zU3ViLm5leHQodGhpcy5fZmlsdGVyQnlWaXNpYmlsaXR5KGNvbmZpZy5jb2x1bW5zKSk7XHJcblx0XHR9XHJcblx0XHRpZiAoY29uZmlnLnNvcnRpbmdCeSkge1xyXG5cdFx0XHR0aGlzLl9zb3J0VmFsdWUgPSBjb25maWcuc29ydGluZ0J5O1xyXG5cdFx0XHR0aGlzLl9zb3J0T3B0aW9uU3ViLm5leHQoY29uZmlnLnNvcnRpbmdCeSk7XHJcblx0XHR9XHJcblx0XHRpZiAoY29uZmlnPy5vcHRpb25zPy50YWJsZU1vZGU/Lm1vZGUpIHtcclxuXHRcdFx0dGhpcy5fdmlld01vZGVTdWIubmV4dChjb25maWcub3B0aW9ucy50YWJsZU1vZGUubW9kZSk7XHJcblx0XHR9XHJcblx0XHRpZiAoY29uZmlnLnBhZ2VTaXplKSB7XHJcblx0XHRcdHRoaXMuX2FjdGl2ZVBhZ2UucGFnZVNpemUgPSBjb25maWcucGFnZVNpemU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAcHJpdmF0ZVxyXG5cdCAqIEBkZXNjcmlwdGlvbiBMb2FkcyB0aGUgdGFibGUgY29uZmlndXJhdGlvbiBiYXNlZCBvbiB0aGUgcHJvdmlkZWQga2V5IGFuZCBhcHBsaWVzIGl0LlxyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IHVzZWQgdG8gZmV0Y2ggdGhlIHRhYmxlIGNvbmZpZ3VyYXRpb24uXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfbG9hZFRhYmxlQ29uZmlnKGtleTogc3RyaW5nKSB7XHJcblx0XHR0aGlzLl9uZGZUYWJsZUNvbmZpZ3VyYXRpb25TZXJ2aWNlXHJcblx0XHRcdC5nZXRUYWJsZUNvbmZpZ3VyYXRpb24oa2V5LCB0aGlzLmNvbmZpZ1BhdGgpXHJcblx0XHRcdC5waXBlKFxyXG5cdFx0XHRcdHN3aXRjaE1hcCgoY29uZmlnKSA9PiB7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5jb25maWdUcmFuc2Zvcm1lciAmJiBfLmlzRnVuY3Rpb24odGhpcy5jb25maWdUcmFuc2Zvcm1lcikpIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuY29uZmlnVHJhbnNmb3JtZXIoY29uZmlnKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHJldHVybiBvZihjb25maWcpO1xyXG5cdFx0XHRcdH0pLFxyXG5cdFx0XHRcdHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxyXG5cdFx0XHQpXHJcblx0XHRcdC5zdWJzY3JpYmUoKGNvbmZpZykgPT4ge1xyXG5cdFx0XHRcdHRoaXMuX2FwcGx5VGFibGVDb25maWcoY29uZmlnKTtcclxuXHRcdFx0fSk7XHJcblx0fVxyXG59XHJcbiIsIlxyXG48ZGl2XHJcblx0Km5nSWY9XCJ0YWJsZUNvbmZpZ1wiXHJcblx0Y2xhc3M9XCJuZGYtdGFibGVfX2NvbnRhaW5lclwiXHJcblx0W2NsYXNzLnBhbmVsLW9wZW5lZF09XCJpc1BhbmVsT3BlbmVkICYmIGZpbHRlcnNDb25maWdcIlxyXG5cdFtkaXJdPVwiZGlyZWN0aW9uXCJcclxuXHRuZGZGbHVpZEhlaWdodFxyXG5cdFtjYWxjdWxhdGVdPVwiYXV0b0NhbGN1bGF0ZUhlaWdodFwiXHJcbj5cclxuXHQ8ZGl2IGNsYXNzPVwibmRmLXRhYmxlX19wYW5lbFwiICpuZ0lmPVwiZmlsdGVyc0NvbmZpZz8uZmllbGRzXCI+XHJcblx0XHQ8YXBwLWZpbHRlcnMtcGFuZWxcclxuXHRcdFx0W2ZpZWxkc109XCJmaWx0ZXJzQ29uZmlnLmZpZWxkc1wiXHJcblx0XHRcdFthZ2dyZWdhdGlvbnNdPVwiYWdncmVnYXRpb25zJCB8IGFzeW5jXCJcclxuXHRcdFx0KGZpbHRlckNoYW5nZWQpPVwiZmlsdGVyQ2hhbmdlZCgkZXZlbnQpXCJcclxuXHRcdFx0W2FjdGl2ZVF1ZXJ5XT1cImFjdGl2ZVF1ZXJ5XCJcclxuXHRcdFx0Y2xhc3M9XCJuZGYtdGFibGVfX2ZpbHRlcnNcIlxyXG5cdFx0XHRbY3VzdG9tVGVtcGxhdGVSZWZdPVwiZmlsdGVyQ3VzdG9tVGVtcGxhdGVcIlxyXG5cdFx0PjwvYXBwLWZpbHRlcnMtcGFuZWw+XHJcblx0PC9kaXY+XHJcblx0PGRpdiBjbGFzcz1cIm5kZi10YWJsZV9fY29udGVudFwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cIm5kZi10YWJsZV9faGVhZGVyIGZsZXhcIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cIm5kZi10YWJsZV9faGVhZGVyX19jdXN0b20tYWN0aW9ucyBmbGV4IGdhcC14LTQgaXRlbXMtY2VudGVyXCI+XHJcblx0XHRcdFx0PG5nLWNvbnRhaW5lclxyXG5cdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRdPVwic2VhcmNoVGFibGVUZW1wbGF0ZSB8fCBkZWZhdWx0QWN0aW9uVGVtcGxhdGVcIlxyXG5cdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcclxuXHRcdFx0XHRcdFx0JGltcGxpY2l0OiB0YWJsZUNvbmZpZyxcclxuXHRcdFx0XHRcdFx0cGFuZWxPcGVuZWQ6IGlzUGFuZWxPcGVuZWQsXHJcblx0XHRcdFx0XHRcdHRvZ2dsZVBhbmVsOiB0b2dnbGVQYW5lbCxcclxuXHRcdFx0XHRcdFx0b3Blbk1vZGFsOiBvcGVuU2VhcmNoTW9kYWwsXHJcblx0XHRcdFx0XHRcdHNlYXJjaDogb25UZXh0U2VhcmNoLFxyXG5cdFx0XHRcdFx0XHRjbGVhcjogb25DbGVhclNlYXJjaFxyXG5cdFx0XHRcdFx0fVwiXHJcblx0XHRcdFx0PjwvbmctY29udGFpbmVyPlxyXG5cclxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgI2RlZmF1bHRBY3Rpb25UZW1wbGF0ZT5cclxuXHRcdFx0XHRcdDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uICpuZ0lmPVwiaXNQYW5lbFRvZ2dsZUF2YWlsYWJsZVwiIGNsYXNzPVwidG9nZ2xlLWJ1dHRvblwiIChjbGljayk9XCJ0b2dnbGVQYW5lbCgpXCI+XHJcblx0XHRcdFx0XHRcdDxtYXQtaWNvbj4gZmlsdGVyX2FsdDwvbWF0LWljb24+XHJcblx0XHRcdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0XHRcdDxhcHAtdGV4dC1zZWFyY2hcclxuXHRcdFx0XHRcdFx0Km5nSWY9XCJ0ZXh0U2VhcmNoQ29uZmlnXCJcclxuXHRcdFx0XHRcdFx0W3NlYXJjaENvbmZpZ109XCJ0ZXh0U2VhcmNoQ29uZmlnXCJcclxuXHRcdFx0XHRcdFx0KG9wZW5Nb2RhbCk9XCJvcGVuU2VhcmNoTW9kYWwoKVwiXHJcblx0XHRcdFx0XHRcdFtzZWFyY2hdPVwidGV4dFNlYXJjaCQgfCBhc3luY1wiXHJcblx0XHRcdFx0XHRcdChzZWFyY2hDaGFuZ2UpPVwib25UZXh0U2VhcmNoKCRldmVudClcIlxyXG5cdFx0XHRcdFx0XHQoY2xlYXIpPVwib25DbGVhclNlYXJjaCgpXCJcclxuXHRcdFx0XHRcdD48L2FwcC10ZXh0LXNlYXJjaD5cclxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cIm5kZi10YWJsZV9faGVhZGVyX19hY3Rpb25zIGZsZXggZ2FwLXgtNCBpdGVtcy1jZW50ZXJcIj5cclxuXHRcdFx0XHQ8bmRmLXRhYmxlLWV4cG9ydFxyXG5cdFx0XHRcdFx0Km5nSWY9XCJleHBvcnRUYWJsZUNvbmZpZz8uZW5hYmxlZFwiXHJcblx0XHRcdFx0XHRbY29uZmlnXT1cImV4cG9ydFRhYmxlQ29uZmlnXCJcclxuXHRcdFx0XHRcdChvbkV4cG9ydCk9XCJleHBvcnRUYWJsZSgkZXZlbnQpXCJcclxuXHRcdFx0XHQ+PC9uZGYtdGFibGUtZXhwb3J0PlxyXG5cclxuXHRcdFx0XHQ8dGFibGUtc29ydGluZy1saXN0XHJcblx0XHRcdFx0XHQqbmdJZj1cIiEhc29ydExpc3Q/Lmxlbmd0aFwiXHJcblx0XHRcdFx0XHRbc29ydExpc3RdPVwic29ydExpc3RcIlxyXG5cdFx0XHRcdFx0KHNvcnRDaGFuZ2VkKT1cInNvcnRDaGFuZ2VkKCRldmVudClcIlxyXG5cdFx0XHRcdD48L3RhYmxlLXNvcnRpbmctbGlzdD5cclxuXHRcdFx0XHQ8dGFibGUtY29sdW1ucy10b2dnbGVyXHJcblx0XHRcdFx0XHQqbmdJZj1cImNvbHVtblRvZ2dsZVwiXHJcblx0XHRcdFx0XHRbY29sdW1uc109XCJ0YWJsZUNvbmZpZy5jb2x1bW5zXCJcclxuXHRcdFx0XHRcdFtwcmVmaXhdPVwidGFibGVDb25maWcucHJlZml4XCJcclxuXHRcdFx0XHRcdFtzb3J0YWJsZV09XCJjb2x1bW5zT3B0aW9ucz8uc29ydGFibGVcIlxyXG5cdFx0XHRcdFx0KGNvbHVtbnNDaGFuZ2VkKT1cImNvbHVtbnNDaGFuZ2VkKCRldmVudClcIlxyXG5cdFx0XHRcdD48L3RhYmxlLWNvbHVtbnMtdG9nZ2xlcj5cclxuXHRcdFx0XHQ8bW9kZS10b2dnbGVyXHJcblx0XHRcdFx0XHQqbmdJZj1cInRhYmxlTW9kZT8udG9nZ2xlTW9kZVwiXHJcblx0XHRcdFx0XHRbbW9kZV09XCJ0YWJsZU1vZGUubW9kZSB8fCAnbGlzdCdcIlxyXG5cdFx0XHRcdFx0W21vZGVzTGlzdF09XCJ0YWJsZU1vZGU/LmF2YWlsYWJsZU1vZGVcIlxyXG5cdFx0XHRcdFx0KG1vZGVDaGFuZ2VkKT1cIm1vZGVDaGFuZ2VkKCRldmVudClcIlxyXG5cdFx0XHRcdD48L21vZGUtdG9nZ2xlcj5cclxuXHRcdFx0XHQ8bmctY29udGFpbmVyXHJcblx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldF09XCJhY3Rpb25zVGFibGVUZW1wbGF0ZVwiXHJcblx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xyXG5cdFx0XHRcdFx0XHQkaW1wbGljaXQ6IHRhYmxlQ29uZmlnLFxyXG5cdFx0XHRcdFx0XHRwYW5lbE9wZW5lZDogaXNQYW5lbE9wZW5lZCxcclxuXHRcdFx0XHRcdFx0dG9nZ2xlUGFuZWw6IHRvZ2dsZVBhbmVsLFxyXG5cdFx0XHRcdFx0XHRvcGVuTW9kYWw6IG9wZW5TZWFyY2hNb2RhbCxcclxuXHRcdFx0XHRcdFx0c2VhcmNoOiBvblRleHRTZWFyY2gsXHJcblx0XHRcdFx0XHRcdGNsZWFyOiBvbkNsZWFyU2VhcmNoXHJcblx0XHRcdFx0XHR9XCJcclxuXHRcdFx0XHQ+PC9uZy1jb250YWluZXI+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblxyXG5cdFx0PGN0cy1keW5hbWljLXRhYmxlXHJcblx0XHRcdCpuZ0lmPVwiIXRhYmxlQ29uZmlnLmlzRGF0YVByb3ZpZGVkXCJcclxuXHRcdFx0Y2xhc3M9XCJuZGYtdGFibGVfX3RhYmxlIHRhYmxlLXN0eWxlXCJcclxuXHRcdFx0W2NvbHVtbnNdPVwiZGlzcGxheWVkQ29sdW1ucyQgfCBhc3luY1wiXHJcblx0XHRcdFtyZXNwb25zaXZlQ29sdW1uc109XCJkaXNwbGF5ZWRDb2x1bW5zJCB8IGFzeW5jXCJcclxuXHRcdFx0W2Z1bGxXaWR0aF09XCJ0YWJsZUNvbmZpZy5mdWxsV2lkdGggfHwgJ2F1dG8nXCJcclxuXHRcdFx0W3BhZ2VTaXplXT1cInRhYmxlQ29uZmlnLnBhZ2VTaXplIHx8IDEwXCJcclxuXHRcdFx0W3BhZ2VOdW1iZXJdPVwidGFibGVDb25maWcucGFnZU51bWJlciB8fCAxXCJcclxuXHRcdFx0W3BhZ2VQcm92aWRlcl09XCJ0YWJsZUNvbmZpZy5wYWdlUHJvdmlkZXJcIlxyXG5cdFx0XHRbY3VzdG9tVXJsXT1cInRhYmxlQ29uZmlnLmN1c3RvbVVybFwiXHJcblx0XHRcdFtxdWlja0ZpbHRlcl09XCJ0YWJsZUNvbmZpZy5xdWlja0ZpbHRlcnMgPyB7IHF1aWNrRmlsdGVyczogdGFibGVDb25maWcucXVpY2tGaWx0ZXJzIH0gOiB1bmRlZmluZWRcIlxyXG5cdFx0XHRbZGVmdWx0U29ydF09XCJ0YWJsZUNvbmZpZy5kZWZhdWx0U29ydCB8fCBkZWZhdWx0U29ydFwiXHJcblx0XHRcdFtzb3J0aW5nQnldPVwic29ydE9wdGlvbiQgfCBhc3luY1wiXHJcblx0XHRcdFtlbnRpdHlUeXBlXT1cIidhbGwnXCJcclxuXHRcdFx0W2ZpZWxkc109XCJ0YWJsZUNvbmZpZy5maWVsZHNcIlxyXG5cdFx0XHRbdGFibGVNb2RlXT1cInZpZXdNb2RlJCB8IGFzeW5jXCJcclxuXHRcdFx0W2NvbXBvbmVudE5hbWVdPVwidGFibGVNb2RlPy5bJ2NvbXBvbmVudE5hbWUnXVwiXHJcblx0XHRcdFtyYW5nZV09XCJ0YWJsZUNvbmZpZz8ucmFuZ2VcIlxyXG5cdFx0XHRbaXNTZWFyY2hQYWdlXT1cInRhYmxlQ29uZmlnPy5pc1NlYXJjaFBhZ2VcIlxyXG5cdFx0XHRbbXVsdGlTZWxlY3RSb3dzXT1cInRhYmxlQ29uZmlnPy5tdWx0aVNlbGVjdFJvd3NcIlxyXG5cdFx0XHRbY3VzdG9tRmlyc3RSb3ddPVwidGFibGVDb25maWc/LmN1c3RvbUZpcnN0Um93XCJcclxuXHRcdFx0W2hpZ2hsaWdodFNlbGVjdGVkQ2FyZF09XCJ0YWJsZUNvbmZpZz8uaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkXCJcclxuXHRcdFx0W3Nob3dBY3Rpb25zQXNNZW51XT1cInRhYmxlQ29uZmlnPy5zaG93QWN0aW9uc0FzTWVudVwiXHJcblx0XHRcdFtmaWx0ZXJQYXJhbXNdPVwidGFibGVDb25maWc/LmZpbHRlclBhcmFtc1wiXHJcblx0XHRcdFtmb3JtYXRdPVwidGFibGVDb25maWc/LmZvcm1hdCB8fCAnTU1NTSBkLCB5J1wiXHJcblx0XHRcdFtwYWdlU2l6ZXNdPVwidGFibGVDb25maWc/LnBhZ2VTaXplcyB8fCBkZWZhdWx0UGFnZVNpemVzXCJcclxuXHRcdFx0W3ByZWZpeF09XCJ0YWJsZUNvbmZpZy5wcmVmaXggfHwgJydcIlxyXG5cdFx0XHRbcm93Q3Vyc29yXT1cInRydWVcIlxyXG5cdFx0XHRbcXVlcnlQYXJhbV09XCJ0YWJsZUNvbmZpZy5xdWVyeVBhcmFtXCJcclxuXHRcdFx0W2N1c3RvbUZpbHRlcnNdPVwic2VhcmNoQW5kRmlsdGVycyQgfCBhc3luY1wiXHJcblx0XHRcdFt0YWJsZUFjdGlvbnNdPVwidGFibGVDb25maWcudGFibGVBY3Rpb25zXCJcclxuXHRcdFx0W2hlYWRlcnNdPVwidGFibGVDb25maWcuaGVhZGVyc1wiXHJcblx0XHRcdChvblJvd1NlbGVjdGVkKT1cIm9uUm93U2VsZWN0ZWQuZW1pdCgkZXZlbnQpXCJcclxuXHRcdFx0KG9uUm93SW5kZXhTZWxlY3RlZCk9XCJvblJvd0luZGV4U2VsZWN0ZWQuZW1pdCgkZXZlbnQpXCJcclxuXHRcdFx0KGFjdGlvbk9uUm93KT1cImFjdGlvbk9uUm93LmVtaXQoJGV2ZW50KVwiXHJcblx0XHRcdChvbkdldHRpbmdEYXRhKT1cIm9uR2V0dGluZ0RhdGEuZW1pdCgkZXZlbnQpXCJcclxuXHRcdFx0KG9uTG9hZCk9XCJvbkxvYWQoJGV2ZW50KVwiXHJcblx0XHRcdChvbkluaXRpYWxpemUpPVwib25Jbml0aWFsaXplKCRldmVudClcIlxyXG5cdFx0XHQob25NdWx0aVJvd1NlbGVjdGVkKT1cIm9uTXVsdGlSb3dTZWxlY3RlZC5lbWl0KCRldmVudClcIlxyXG5cdFx0XHQob25Mb2FkaW5nKT1cIm9uTG9hZGluZy5lbWl0KCRldmVudClcIlxyXG5cdFx0XHQob25QYWdlKT1cIm9uUGFnZUNoYW5nZWQoJGV2ZW50KVwiXHJcblx0XHRcdFtpc0xlZ2FjeU1vZGVdPVwiZmFsc2VcIlxyXG5cdFx0XHRbc2hvd1RvdGFsUmVjb3JkXT1cInRydWVcIlxyXG5cdFx0XHQoc29ydENoYW5nZWQpPVwib25Tb3J0Q2hhbmdlZCgkZXZlbnQpXCJcclxuXHRcdD5cclxuXHRcdFx0PG5nLXRlbXBsYXRlIGVtcHR5VGVtcGxhdGUgbGV0LWlzTG9hZGluZyBsZXQtcm93cz1cInJvd3NcIiBsZXQtaW5pdGlhbGl6ZWQ9XCJpbml0aWFsaXplZFwiPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJsb2FkaW5nLWRhdGFcIiAqbmdJZj1cImlzTG9hZGluZyAmJiBpbml0aWFsaXplZFwiPlxyXG5cdFx0XHRcdFx0PG1hdC1zcGlubmVyPjwvbWF0LXNwaW5uZXI+XHJcblx0XHRcdFx0PC9kaXY+XHJcblxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBoLTUvNlwiICpuZ0lmPVwiIWlzTG9hZGluZyAmJiAhcm93cy5sZW5ndGhcIj5cclxuXHRcdFx0XHRcdDxhcHAtbm8tZGF0YS1mb3VuZCBjbGFzcz1cIm10LTRcIiBbbWVzc2FnZV09XCJlbXB0eU1lc3NhZ2VcIj48L2FwcC1uby1kYXRhLWZvdW5kPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0PC9jdHMtZHluYW1pYy10YWJsZT5cclxuXHJcblx0XHQ8Y3RzLXRhYmxlXHJcblx0XHRcdCpuZ0lmPVwidGFibGVDb25maWcuaXNEYXRhUHJvdmlkZWRcIlxyXG5cdFx0XHRbcm93c109XCJyb3dzXCJcclxuXHRcdFx0W3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIlxyXG5cdFx0XHRbY29sdW1uc109XCJkaXNwbGF5ZWRDb2x1bW5zJCB8IGFzeW5jXCJcclxuXHRcdFx0W3Jlc3BvbnNpdmVDb2x1bW5zXT1cImRpc3BsYXllZENvbHVtbnMkIHwgYXN5bmNcIlxyXG5cdFx0XHRbcm93Q3Vyc29yXT1cInRydWVcIlxyXG5cdFx0XHRbZnVsbFdpZHRoXT1cInRhYmxlQ29uZmlnLmZ1bGxXaWR0aCB8fCAnYXV0bydcIlxyXG5cdFx0XHRbZW50aXR5VHlwZV09XCInYWxsJ1wiXHJcblx0XHRcdFtwcmVmaXhdPVwidGFibGVDb25maWcucHJlZml4IHx8ICcnXCJcclxuXHRcdFx0W3RhYmxlTW9kZV09XCJ2aWV3TW9kZSQgfCBhc3luY1wiXHJcblx0XHRcdFtjb21wb25lbnROYW1lXT1cInRhYmxlTW9kZT8uWydjb21wb25lbnROYW1lJ11cIlxyXG5cdFx0XHRbbXVsdGlTZWxlY3RSb3dzXT1cInRhYmxlQ29uZmlnPy5tdWx0aVNlbGVjdFJvd3NcIlxyXG5cdFx0XHRbY3VzdG9tRmlyc3RSb3ddPVwidGFibGVDb25maWc/LmN1c3RvbUZpcnN0Um93XCJcclxuXHRcdFx0W3RhYmxlQWN0aW9uc109XCJ0YWJsZUNvbmZpZy50YWJsZUFjdGlvbnNcIlxyXG5cdFx0XHRbc2hvd0FjdGlvbnNBc01lbnVdPVwidGFibGVDb25maWc/LnNob3dBY3Rpb25zQXNNZW51XCJcclxuXHRcdFx0W2RlZnVsdFNvcnRdPVwidGFibGVDb25maWcuZGVmYXVsdFNvcnQgfHwgZGVmYXVsdFNvcnRcIlxyXG5cdFx0XHRbZm9ybWF0XT1cInRhYmxlQ29uZmlnPy5mb3JtYXQgfHwgJ01NTU0gZCwgeSdcIlxyXG5cdFx0XHRbaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkXT1cInRhYmxlQ29uZmlnPy5oaWdobGlnaHRTZWxlY3RlZENhcmRcIlxyXG5cdFx0XHQob25Sb3dTZWxlY3RlZCk9XCJvblJvd1NlbGVjdGVkLmVtaXQoJGV2ZW50KVwiXHJcblx0XHRcdChvblJvd0luZGV4U2VsZWN0ZWQpPVwib25Sb3dJbmRleFNlbGVjdGVkLmVtaXQoJGV2ZW50KVwiXHJcblx0XHRcdChvbk11bHRpUm93U2VsZWN0ZWQpPVwib25NdWx0aVJvd1NlbGVjdGVkLmVtaXQoJGV2ZW50KVwiXHJcblx0XHRcdChhY3Rpb25PblJvdyk9XCJhY3Rpb25PblJvdy5lbWl0KCRldmVudClcIlxyXG5cdFx0XHQob25Tb3J0aW5nKT1cIm9uU29ydENoYW5nZWQoJGV2ZW50KVwiXHJcblx0XHQ+PC9jdHMtdGFibGU+XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
458
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL25kZi10YWJsZS9jb250YWluZXJzL25kZi10YWJsZS9uZGYtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvbmRmLXRhYmxlL2NvbnRhaW5lcnMvbmRmLXRhYmxlL25kZi10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sV0FBVyxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFtQixFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekcsT0FBTyxFQUVOLG1CQUFtQixFQUVuQixtQkFBbUIsRUFFbkIsTUFBTSxxQkFBcUIsQ0FBQztBQVk3QixPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUlsRSxPQUFPLEVBQUUsZUFB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cEI7aUJBQ0Q7K1NBOEJTLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR08sTUFBTTtzQkFBbEIsS0FBSztnQkFRTyxjQUFjO3NCQUExQixLQUFLO2dCQU1PLFVBQVU7c0JBQXRCLEtBQUs7Z0JBTUksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUVHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBRUcsYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBRXNELG9CQUFvQjtzQkFBaEYsWUFBWTt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBQ0MsbUJBQW1CO3NCQUE5RSxZQUFZO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDRyxvQkFBb0I7c0JBQWhGLFlBQVk7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5pbXBvcnQge1xyXG5cdENvbXBvbmVudCxcclxuXHRDb250ZW50Q2hpbGQsXHJcblx0RXZlbnRFbWl0dGVyLFxyXG5cdElucHV0LFxyXG5cdE9uQ2hhbmdlcyxcclxuXHRPdXRwdXQsXHJcblx0U2ltcGxlQ2hhbmdlcyxcclxuXHRUZW1wbGF0ZVJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGlpZiwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFDVElPTlNfVEFCTEVfVEVNUExBVEUsIEZJTFRFUl9DVVNUT01fVEVNUExBVEUsIFNFQVJDSF9UQUJMRV9URU1QTEFURSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xyXG5pbXBvcnQge1xyXG5cdEFnZ3JlZ2F0aW9uUmVzcG9uc2UsXHJcblx0Q09NUEFSSVNPTl9PUEVSQVRPUixcclxuXHRGb3JtUXVlcnlNb2RlbCxcclxuXHRIdG1sRGlhbG9nQ29tcG9uZW50LFxyXG5cdEh0bWxEaWFsb2dDb25maWdcclxufSBmcm9tICcuLi8uLi9maWx0ZXJzLXBhbmVsJztcclxuaW1wb3J0IHtcclxuXHRDdXN0b21Dcml0ZXJpYU1vZGVsLFxyXG5cdEV4cG9ydFR5cGUsXHJcblx0TmRmRXhwb3J0UGF5bG9hZCxcclxuXHROZGZUYWJsZUNvbmZpZyxcclxuXHRTb3J0VGFibGVJdGVtLFxyXG5cdFRhYmxlQ29sdW1uQ29uZmlnLFxyXG5cdFRhYmxlU29ydE9wdGlvbnMsXHJcblx0VGFibGVWaWV3TW9kZVxyXG59IGZyb20gJy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEZpbHRlcnNNYXBwZXJTZXJ2aWNlLCBOZGZUYWJsZUNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBOZGZUYWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IFBBR0VfU0laRSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvci9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBEZXN0cm95U3ViamVjdCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgTnV4ZW9QYWdpbmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkL21vZGVscyc7XHJcbmltcG9ydCB7IER5bmFtaWNUYWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9keW5hbWljLXRhYmxlJztcclxuaW1wb3J0IHsgQ3VzdG9tVG9hc3RyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2N1c3RvbS10b2FzdHIvc2VydmljZXMvY3VzdG9tLXRvYXN0ci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTkRGX0VESVRPUl9UWVBFIH0gZnJvbSAnLi4vLi4vLi4vLi4vbmRmLWNvbmZpZy1lZGl0b3IvY29uc3RhbnRzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXBwLW5kZi10YWJsZScsXHJcblx0dGVtcGxhdGVVcmw6ICcuL25kZi10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vbmRmLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0aG9zdDoge1xyXG5cdFx0Y2xhc3M6ICduZGYtdGFibGUnLFxyXG5cdFx0J1tkaXJdJzogJ2RpcmVjdGlvbidcclxuXHR9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZGZUYWJsZUNvbXBvbmVudCBleHRlbmRzIERlc3Ryb3lTdWJqZWN0IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuXHRwcml2YXRlIHJlYWRvbmx5IF9hZ2dyZWdhdGlvbnNTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlY29yZDxzdHJpbmcsIEFnZ3JlZ2F0aW9uUmVzcG9uc2U+PihudWxsKTtcclxuXHRwcml2YXRlIHJlYWRvbmx5IF9kaXNwbGF5ZWRDb2x1bW5zU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUYWJsZUNvbHVtbkNvbmZpZ1tdPihbXSk7XHJcblx0cHJpdmF0ZSByZWFkb25seSBfc29ydE9wdGlvblN1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFibGVTb3J0T3B0aW9ucz4obnVsbCk7XHJcblx0cHJpdmF0ZSByZWFkb25seSBfdmlld01vZGVTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRhYmxlVmlld01vZGU+KCdsaXN0Jyk7XHJcblx0cHJpdmF0ZSByZWFkb25seSBfdGV4dFNlYXJjaFN1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihudWxsKTtcclxuXHJcblx0cHJpdmF0ZSByZWFkb25seSBfYWN0aXZhdGVkQ3JpdGVyaWFTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHtcclxuXHRcdHByZXZpb3VzVmFsdWU6IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblx0XHRjdXJyZW50VmFsdWU6IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblx0fT4obnVsbCk7XHJcblxyXG5cdHByaXZhdGUgcmVhZG9ubHkgX2N1c3RvbUNyaXRlcmlhU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDdXN0b21Dcml0ZXJpYU1vZGVsPih7XHJcblx0XHRwYXJhbXM6IHt9LFxyXG5cdFx0cGF5bG9hZDoge1xyXG5cdFx0XHRwcmVkaWNhdGVMaXN0OiBbXVxyXG5cdFx0fVxyXG5cdH0pO1xyXG5cclxuXHRyZWFkb25seSBhZ2dyZWdhdGlvbnMkID0gdGhpcy5fYWdncmVnYXRpb25zU3ViLmFzT2JzZXJ2YWJsZSgpO1xyXG5cdHJlYWRvbmx5IGRpc3BsYXllZENvbHVtbnMkID0gdGhpcy5fZGlzcGxheWVkQ29sdW1uc1N1Yi5hc09ic2VydmFibGUoKTtcclxuXHRyZWFkb25seSBzb3J0T3B0aW9uJCA9IHRoaXMuX3NvcnRPcHRpb25TdWIuYXNPYnNlcnZhYmxlKCk7XHJcblx0cmVhZG9ubHkgdmlld01vZGUkID0gdGhpcy5fdmlld01vZGVTdWIuYXNPYnNlcnZhYmxlKCk7XHJcblx0cmVhZG9ubHkgY3VzdG9tRmlsdGVycyQgPSB0aGlzLl9jdXN0b21Dcml0ZXJpYVN1Yi5hc09ic2VydmFibGUoKTtcclxuXHRyZWFkb25seSB0ZXh0U2VhcmNoJCA9IHRoaXMuX3RleHRTZWFyY2hTdWIuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG5cdHJlYWRvbmx5IHNlYXJjaEFuZEZpbHRlcnMkID0gY29tYmluZUxhdGVzdChbdGhpcy50ZXh0U2VhcmNoJCwgdGhpcy5jdXN0b21GaWx0ZXJzJF0pLnBpcGUoXHJcblx0XHRtYXAoKHJlcykgPT4gdGhpcy5fcHJlcGFyZVNlYXJjaChyZXMpKVxyXG5cdCk7XHJcblx0QElucHV0KCkgcm93czogQXJyYXk8dW5rbm93bj47XHJcblx0QElucHV0KCkgdG90YWxSZWNvcmRzOiBudW1iZXI7XHJcblx0QElucHV0KCkgYXV0b0NhbGN1bGF0ZUhlaWdodCA9IHRydWU7XHJcblx0QElucHV0KCkgZW1wdHlNZXNzYWdlID0gJ3RhYmxlX25vRGF0YSc7XHJcblx0QElucHV0KCkgYWN0aXZlUXVlcnk6IEZvcm1RdWVyeU1vZGVsO1xyXG5cdEBJbnB1dCgpIGNvbmZpZ1BhdGg6IHN0cmluZyA9ICd0YWJsZXMnO1xyXG5cdEBJbnB1dCgpIGNvbmZpZ1RyYW5zZm9ybWVyOiAoY29uZmlnOiBOZGZUYWJsZUNvbmZpZykgPT4gT2JzZXJ2YWJsZTxOZGZUYWJsZUNvbmZpZz47XHJcblx0QElucHV0KCkgdGFibGVLZXk6IHN0cmluZztcclxuXHJcblx0QElucHV0KCkganNvbkVkaXRvckVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0cHJpdmF0ZSBfY29uZmlnOiBOZGZUYWJsZUNvbmZpZztcclxuXHRASW5wdXQoKSBzZXQgY29uZmlnKGNvbmZpZzogTmRmVGFibGVDb25maWcpIHtcclxuXHRcdHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcclxuXHR9XHJcblxyXG5cdGdldCB0YWJsZUNvbmZpZygpIHtcclxuXHRcdHJldHVybiB0aGlzLl90YWJsZUNvbmZpZ1N1Yi5nZXRWYWx1ZSgpO1xyXG5cdH1cclxuXHJcblx0QElucHV0KCkgc2V0IGN1c3RvbUNyaXRlcmlhKGNyaXRlcmlhOiBDdXN0b21Dcml0ZXJpYU1vZGVsKSB7XHJcblx0XHRpZiAoY3JpdGVyaWEpIHtcclxuXHRcdFx0dGhpcy5fY3VzdG9tQ3JpdGVyaWFTdWIubmV4dChjcml0ZXJpYSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRASW5wdXQoKSBzZXQgc2VhcmNoVGVybSh2YWx1ZTogc3RyaW5nKSB7XHJcblx0XHRpZiAodmFsdWUpIHtcclxuXHRcdFx0dGhpcy5fdGV4dFNlYXJjaFN1Yi5uZXh0KHZhbHVlKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEBPdXRwdXQoKSBvblJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdEBPdXRwdXQoKSBvblJvd0luZGV4U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0QE91dHB1dCgpIGFjdGlvbk9uUm93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdEBPdXRwdXQoKSBvbkdldHRpbmdEYXRhID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdEBPdXRwdXQoKSBvbk11bHRpUm93U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0QE91dHB1dCgpIG9uTG9hZGluZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcblx0QE91dHB1dCgpIG9uUGFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnZUV2ZW50PigpO1xyXG5cdEBPdXRwdXQoKSBvbkluaXRpYWxpemVkID0gbmV3IEV2ZW50RW1pdHRlcjxOdXhlb1BhZ2luYXRpb248YW55Pj4oKTtcclxuXHRAT3V0cHV0KCkgb25Mb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE51eGVvUGFnaW5hdGlvbjxhbnk+PigpO1xyXG5cclxuXHRAT3V0cHV0KCkgb25RdWVyeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAT3V0cHV0KCkgb25Tb3J0ID0gbmV3IEV2ZW50RW1pdHRlcjxUYWJsZVNvcnRPcHRpb25zPigpO1xyXG5cclxuXHRAQ29udGVudENoaWxkKEFDVElPTlNfVEFCTEVfVEVNUExBVEUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgYWN0aW9uc1RhYmxlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblx0QENvbnRlbnRDaGlsZChTRUFSQ0hfVEFCTEVfVEVNUExBVEUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgc2VhcmNoVGFibGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHRAQ29udGVudENoaWxkKEZJTFRFUl9DVVNUT01fVEVNUExBVEUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgZmlsdGVyQ3VzdG9tVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG5cdHByaXZhdGUgX3RhYmxlQ29uZmlnU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxOZGZUYWJsZUNvbmZpZz4obnVsbCk7XHJcblxyXG5cdGdldCBvcHRpb25zKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMudGFibGVDb25maWc/Lm9wdGlvbnM7XHJcblx0fVxyXG5cclxuXHRnZXQgZmlsdGVyc0NvbmZpZygpIHtcclxuXHRcdHJldHVybiB0aGlzLm9wdGlvbnM/LmZpbHRlcnM7XHJcblx0fVxyXG5cclxuXHRnZXQgc29ydExpc3QoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zPy5zb3J0TGlzdCB8fCBbXTtcclxuXHR9XHJcblxyXG5cdGdldCBjb2x1bW5zT3B0aW9ucygpIHtcclxuXHRcdHJldHVybiB0aGlzLnRhYmxlQ29uZmlnPy5vcHRpb25zPy5jb2x1bW5zO1xyXG5cdH1cclxuXHJcblx0Z2V0IGNvbHVtblRvZ2dsZSgpIHtcclxuXHRcdHJldHVybiB0aGlzLmNvbHVtbnNPcHRpb25zPy50b2dnbGUgPz8gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdGdldCB0YWJsZU1vZGUoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zPy50YWJsZU1vZGU7XHJcblx0fVxyXG5cclxuXHRnZXQgcGFuZWxDb25maWcoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zPy5maWx0ZXJzPy5wYW5lbDtcclxuXHR9XHJcblxyXG5cdGdldCBpc1BhbmVsVG9nZ2xlQXZhaWxhYmxlKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMucGFuZWxDb25maWc/LnRvZ2dsZUJ1dHRvbiA/PyB0cnVlO1xyXG5cdH1cclxuXHJcblx0Z2V0IHRleHRTZWFyY2hDb25maWcoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zPy5zZWFyY2g7XHJcblx0fVxyXG5cclxuXHRnZXQgZmlsdGVyUmVsb2FkQ29uZmlnKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMub3B0aW9ucz8uZmlsdGVycz8ucmVsb2FkO1xyXG5cdH1cclxuXHJcblx0Z2V0IGV4cG9ydFRhYmxlQ29uZmlnKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMub3B0aW9ucz8uZXhwb3J0O1xyXG5cdH1cclxuXHJcblx0cmVhZG9ubHkgZGVmYXVsdFNvcnQgPSBbeyBwcm9wOiAncHJvcGVydGllcy5jcmVhdGVkQXQnLCBkaXI6ICdkZXNjJyB9XTtcclxuXHJcblx0ZGlyZWN0aW9uOiBEaXJlY3Rpb24gPSAncnRsJztcclxuXHRpc1BhbmVsT3BlbmVkID0gZmFsc2U7XHJcblx0cmVhZG9ubHkgZGVmYXVsdFBhZ2VTaXplcyA9IFBBR0VfU0laRTtcclxuXHJcblx0cHJpdmF0ZSBfaXNDb25maWdDaGFuZ2VkID0gZmFsc2U7XHJcblx0cHJpdmF0ZSBfdGFibGVJbml0aWFsaXplZCA9IGZhbHNlO1xyXG5cdHByaXZhdGUgX3BhZ2VDaGFuZ2VkID0gZmFsc2U7XHJcblx0cHJpdmF0ZSBfYWN0aXZlUGFnZTogUGFnZUV2ZW50ID0ge1xyXG5cdFx0cGFnZUluZGV4OiAxLFxyXG5cdFx0cGFnZVNpemU6IDEwLFxyXG5cdFx0bGVuZ3RoOiAwXHJcblx0fTtcclxuXHJcblx0cHJpdmF0ZSBfc29ydFZhbHVlOiBUYWJsZVNvcnRPcHRpb25zO1xyXG5cclxuXHRlZGl0b3JUeXBlID0gTkRGX0VESVRPUl9UWVBFLlRBQkxFUztcclxuXHQvKipcclxuXHQgKlxyXG5cdCAqL1xyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBfZmlsdGVyc01hcHBlcjogRmlsdGVyc01hcHBlclNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF9keW5hbWljVGFibGVTZXJ2aWNlOiBEeW5hbWljVGFibGVTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBfdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuXHRcdHByaXZhdGUgX25nVGFibGVTZXJ2aWNlOiBOZGZUYWJsZVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF90b2FzdHJTZXJ2aWNlOiBDdXN0b21Ub2FzdHJTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBfbmRmVGFibGVDb25maWd1cmF0aW9uU2VydmljZTogTmRmVGFibGVDb25maWd1cmF0aW9uU2VydmljZSxcclxuXHRcdHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nXHJcblx0KSB7XHJcblx0XHRzdXBlcigpO1xyXG5cdFx0dGhpcy5fdHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2VcclxuXHRcdFx0LnBpcGUoc3RhcnRXaXRoKHsgbGFuZzogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyB9KSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG5cdFx0XHQuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0XHR0aGlzLmRpcmVjdGlvbiA9IHJlcy5sYW5nID09PSAnYXInID8gJ3J0bCcgOiAnbHRyJztcclxuXHRcdFx0fSk7XHJcblx0fVxyXG5cclxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcblx0XHRjb25zdCB0YWJsZUtleSA9IGNoYW5nZXMudGFibGVLZXk/LmN1cnJlbnRWYWx1ZTtcclxuXHRcdGNvbnN0IGNvbmZpZyA9IGNoYW5nZXMuY29uZmlnPy5jdXJyZW50VmFsdWU7XHJcblxyXG5cdFx0aWYgKHRhYmxlS2V5ICYmIGNvbmZpZykge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ1lvdSBjYW5ub3Qgc2V0IGJvdGggdGFibGVLZXkgYW5kIHRhYmxlQ29uZmlnIGF0IHRoZSBzYW1lIHRpbWUuJyk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKGNvbmZpZykge1xyXG5cdFx0XHR0aGlzLl9hcHBseVRhYmxlQ29uZmlnKGNvbmZpZyk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRhYmxlS2V5KSB7XHJcblx0XHRcdHRoaXMuX2xvYWRUYWJsZUNvbmZpZyh0YWJsZUtleSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHR0b2dnbGVQYW5lbCgpIHtcclxuXHRcdHRoaXMuaXNQYW5lbE9wZW5lZCA9ICF0aGlzLmlzUGFuZWxPcGVuZWQ7XHJcblx0fVxyXG5cclxuXHRvbkxvYWQoZGF0YTogTnV4ZW9QYWdpbmF0aW9uPGFueT4pOiB2b2lkIHtcclxuXHRcdHRoaXMub25Mb2FkZWQuZW1pdChkYXRhKTtcclxuXHRcdGlmICghdGhpcy5fdGFibGVJbml0aWFsaXplZCB8fCB0aGlzLmZpbHRlclJlbG9hZENvbmZpZz8uc3RyYXRlZ3kgPT09ICduZXZlcicgfHwgdGhpcy5fcGFnZUNoYW5nZWQpIHtcclxuXHRcdFx0dGhpcy5fcGFnZUNoYW5nZWQgPSBmYWxzZTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICh0aGlzLl9pc0NvbmZpZ0NoYW5nZWQgfHwgdGhpcy5maWx0ZXJSZWxvYWRDb25maWc/LnN0cmF0ZWd5ID09PSAnYWx3YXlzJykge1xyXG5cdFx0XHR0aGlzLl9hZ2dyZWdhdGlvbnNTdWIubmV4dChkYXRhPy5hZ2dyZWdhdGlvbnMpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMuZmlsdGVyUmVsb2FkQ29uZmlnPy5zdHJhdGVneSA9PT0gJ29uQ2hhbmdlJykge1xyXG5cdFx0XHRjb25zdCBhY3RpdmF0ZWRRdWVyeSA9IHRoaXMuX2FjdGl2YXRlZENyaXRlcmlhU3ViLmdldFZhbHVlKCk7XHJcblx0XHRcdGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGFjdGl2YXRlZFF1ZXJ5Py5jdXJyZW50VmFsdWUgfHwge307XHJcblx0XHRcdGNvbnN0IHByZXZpb3VzVmFsdWUgPSBhY3RpdmF0ZWRRdWVyeT8ucHJldmlvdXNWYWx1ZSB8fCB7fTtcclxuXHJcblx0XHRcdGNvbnN0IHVwZGF0ZWRLZXlzID0gXy51bmlvbihfLmtleXMocHJldmlvdXNWYWx1ZSksIF8ua2V5cyhjdXJyZW50VmFsdWUpKS5maWx0ZXIoXHJcblx0XHRcdFx0KGtleSkgPT4gIV8uaXNFcXVhbChwcmV2aW91c1ZhbHVlW2tleV0sIGN1cnJlbnRWYWx1ZVtrZXldKVxyXG5cdFx0XHQpO1xyXG5cclxuXHRcdFx0Y29uc3QgdHJpZ2dlcktleXMgPSB0aGlzLmZpbHRlclJlbG9hZENvbmZpZy50cmlnZ2VyRmllbGRzIHx8IFtdO1xyXG5cdFx0XHRjb25zdCBzaG91bGRSZWxvYWQgPSB0cmlnZ2VyS2V5cy5zb21lKChrZXkpID0+IHVwZGF0ZWRLZXlzLmluY2x1ZGVzKGtleSkpO1xyXG5cdFx0XHRpZiAoc2hvdWxkUmVsb2FkKSB7XHJcblx0XHRcdFx0dGhpcy5fYWdncmVnYXRpb25zU3ViLm5leHQoZGF0YT8uYWdncmVnYXRpb25zKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0b25Jbml0aWFsaXplKGRhdGE6IE51eGVvUGFnaW5hdGlvbjxhbnk+KTogdm9pZCB7XHJcblx0XHR0aGlzLl9hZ2dyZWdhdGlvbnNTdWIubmV4dChkYXRhPy5hZ2dyZWdhdGlvbnMpO1xyXG5cdFx0dGhpcy5fdGFibGVJbml0aWFsaXplZCA9IHRydWU7XHJcblx0XHR0aGlzLl9pc0NvbmZpZ0NoYW5nZWQgPSBmYWxzZTtcclxuXHRcdHRoaXMub25Jbml0aWFsaXplZC5lbWl0KGRhdGEpO1xyXG5cdH1cclxuXHJcblx0Y29sdW1uc0NoYW5nZWQoY29sdW1uczogVGFibGVDb2x1bW5Db25maWdbXSkge1xyXG5cdFx0dGhpcy5fZGlzcGxheWVkQ29sdW1uc1N1Yi5uZXh0KGNvbHVtbnMpO1xyXG5cdH1cclxuXHJcblx0c29ydENoYW5nZWQoc29ydDogU29ydFRhYmxlSXRlbSkge1xyXG5cdFx0dGhpcy5fc29ydFZhbHVlID0geyBzb3J0Qnk6IHNvcnQudmFsdWUsIHNvcnRPcmRlcjogc29ydC5kaXJlY3Rpb24gfTtcclxuXHRcdHRoaXMuX3NvcnRPcHRpb25TdWIubmV4dCh0aGlzLl9zb3J0VmFsdWUpO1xyXG5cdH1cclxuXHJcblx0bW9kZUNoYW5nZWQobW9kZTogVGFibGVWaWV3TW9kZSkge1xyXG5cdFx0dGhpcy5fdmlld01vZGVTdWIubmV4dChtb2RlKTtcclxuXHR9XHJcblxyXG5cdG9uU29ydENoYW5nZWQoc29ydDogVGFibGVTb3J0T3B0aW9ucykge1xyXG5cdFx0dGhpcy5fc29ydFZhbHVlID0gc29ydDtcclxuXHRcdHRoaXMub25Tb3J0LmVtaXQoc29ydCk7XHJcblx0fVxyXG5cclxuXHRleHBvcnRUYWJsZSh0eXBlOiBFeHBvcnRUeXBlKSB7XHJcblx0XHRjb25zdCByZXF1ZXN0ID0gXy5jbG9uZURlZXAodGhpcy5leHBvcnRUYWJsZUNvbmZpZz8ucmVxdWVzdCk7XHJcblx0XHRpZiAoIXJlcXVlc3QpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgY29sdW1ucyA9IHRoaXMuX2Rpc3BsYXllZENvbHVtbnNTdWIuZ2V0VmFsdWUoKTtcclxuXHRcdGNvbnN0IGZpZWxkcyA9IGNvbHVtbnMubWFwKChjb2wpID0+IGNvbC5oZWFkZXJDbGFzcyk7XHJcblx0XHRjb25zdCBoZWFkZXJzID0gY29sdW1ucy5tYXAoKGNvbCkgPT4gKHRoaXMudGFibGVDb25maWcucHJlZml4IHx8ICcnKSArIGNvbC5uYW1lKTtcclxuXHJcblx0XHRjb25zdCBjcml0ZXJpYSA9IHRoaXMuX2N1c3RvbUNyaXRlcmlhU3ViLmdldFZhbHVlKCk7XHJcblxyXG5cdFx0cmVxdWVzdC5wYXJhbXMgPSBPYmplY3QuYXNzaWduKFxyXG5cdFx0XHR7fSxcclxuXHRcdFx0Y3JpdGVyaWEucGFyYW1zLFxyXG5cdFx0XHR0aGlzLl9zb3J0VmFsdWUgfHwge30sXHJcblx0XHRcdHRoaXMudGFibGVDb25maWc/LnF1aWNrRmlsdGVycyA/IHsgcXVpY2tGaWx0ZXJzOiB0aGlzLnRhYmxlQ29uZmlnLnF1aWNrRmlsdGVycyB9IDoge30sXHJcblx0XHRcdHJlcXVlc3QucGFyYW1zXHJcblx0XHQpO1xyXG5cclxuXHRcdGNvbnN0IHBheWxvYWQ6IE5kZkV4cG9ydFBheWxvYWQgPSB7XHJcblx0XHRcdHByZWRpY2F0ZUxpc3Q6IGNyaXRlcmlhLnBheWxvYWQucHJlZGljYXRlTGlzdCB8fCBbXSxcclxuXHRcdFx0cmVwb3J0TWV0YURhdGE6IHtcclxuXHRcdFx0XHRkb2NUeXBlTmFtZTogdGhpcy5leHBvcnRUYWJsZUNvbmZpZy5kb2NUeXBlTmFtZSxcclxuXHRcdFx0XHRmaWxlVHlwZTogdHlwZSxcclxuXHRcdFx0XHRsb2NhbGU6IHRoaXMuZXhwb3J0VGFibGVDb25maWc/LmxvY2FsZSB8fCB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nLFxyXG5cdFx0XHRcdGZpZWxkczogdGhpcy5leHBvcnRUYWJsZUNvbmZpZz8uZmllbGRzIHx8IGZpZWxkcyxcclxuXHRcdFx0XHRoZWFkZXJzOiBbXVxyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cclxuXHRcdHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2VcclxuXHRcdFx0LmdldChoZWFkZXJzKVxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRzd2l0Y2hNYXAoKHRyYW5zbGF0aW9ucykgPT4ge1xyXG5cdFx0XHRcdFx0cGF5bG9hZC5yZXBvcnRNZXRhRGF0YS5oZWFkZXJzID0gaGVhZGVycy5tYXAoKGNvbCkgPT4gdHJhbnNsYXRpb25zW2NvbF0pO1xyXG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuX25nVGFibGVTZXJ2aWNlLmV4cG9ydFRhYmxlKHJlcXVlc3QsIHBheWxvYWQpO1xyXG5cdFx0XHRcdH0pLFxyXG5cdFx0XHRcdGNhdGNoRXJyb3IoKF8pID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuX3RvYXN0clNlcnZpY2UuZXJyb3IoJ1RBQkxFLkVYUE9SVC5SZXF1ZXN0RXJyb3InKTtcclxuXHRcdFx0XHRcdHJldHVybiBvZihmYWxzZSk7XHJcblx0XHRcdFx0fSksXHJcblx0XHRcdFx0ZmlsdGVyKEJvb2xlYW4pLFxyXG5cdFx0XHRcdHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxyXG5cdFx0XHQpXHJcblx0XHRcdC5zdWJzY3JpYmUoKHJlczogYm9vbGVhbikgPT4ge1xyXG5cdFx0XHRcdGlmIChyZXMpIHtcclxuXHRcdFx0XHRcdHRoaXMuX3RvYXN0clNlcnZpY2Uuc3VjY2VzcygnVEFCTEUuRVhQT1JULnJlcXVlc3RTdWNjZXNzJyk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMuX3RvYXN0clNlcnZpY2UuZXJyb3IoJ1RBQkxFLkVYUE9SVC5yZXF1ZXN0RXJyb3InKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0ZmlsdGVyQ2hhbmdlZChjcml0ZXJpYTogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG5cdFx0dGhpcy5fdHJpZ2dlckNyaXRlcmlhQ2hhbmdlcyhjcml0ZXJpYSk7XHJcblx0XHRpZiAodGhpcy5maWx0ZXJzQ29uZmlnPy5tb2RlICE9PSAncGF5bG9hZCcpIHtcclxuXHRcdFx0Y29uc3QgaXNTdHJpbmdpZnlQYXJhbXMgPSB0aGlzLmZpbHRlcnNDb25maWc/LnN0cmluZ2lmeVBhcmFtcztcclxuXHRcdFx0Y29uc3QgdmFsdWUgPSAhaXNTdHJpbmdpZnlQYXJhbXMgPyBjcml0ZXJpYSA6IHRoaXMuX3N0cmluZ2lmeVZhbHVlcyhjcml0ZXJpYSk7XHJcblx0XHRcdHRoaXMuX2R5bmFtaWNUYWJsZVNlcnZpY2UucmVmcmVzaERhdGEubmV4dCh2YWx1ZSk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBwYXlsb2FkID0gdGhpcy5fZmlsdGVyc01hcHBlci5wcmVwYXJlUGF5bG9hZCh0aGlzLmZpbHRlcnNDb25maWcuZmllbGRzLCBjcml0ZXJpYSk7XHJcblx0XHR0aGlzLl9jdXN0b21Dcml0ZXJpYVN1Yi5uZXh0KHBheWxvYWQpO1xyXG5cdH1cclxuXHJcblx0b25UZXh0U2VhcmNoKHRleHQ6IHN0cmluZykge1xyXG5cdFx0aWYgKCF0aGlzLnRleHRTZWFyY2hDb25maWc/LmZpZWxkS2V5IHx8IHR5cGVvZiB0ZXh0ICE9PSAnc3RyaW5nJykge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCF0ZXh0KSB7XHJcblx0XHRcdHRoaXMub25DbGVhclNlYXJjaCgpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHR0aGlzLl90ZXh0U2VhcmNoU3ViLm5leHQodGV4dCk7XHJcblx0fVxyXG5cclxuXHRvbkNsZWFyU2VhcmNoKCkge1xyXG5cdFx0dGhpcy5fdGV4dFNlYXJjaFN1Yi5uZXh0KG51bGwpO1xyXG5cdH1cclxuXHJcblx0b3BlblNlYXJjaE1vZGFsKCkge1xyXG5cdFx0Y29uc3QgX2RpYWxvZ0NvbmZpZyA9IHRoaXMudGV4dFNlYXJjaENvbmZpZz8uc3VmZml4Py5kaWFsb2c7XHJcblx0XHRpZiAoIV9kaWFsb2dDb25maWcpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgeyBvcHRpb25zLCAuLi5kYXRhIH0gPSBfZGlhbG9nQ29uZmlnO1xyXG5cdFx0dGhpcy5fZGlhbG9nLm9wZW48SHRtbERpYWxvZ0NvbXBvbmVudCwgSHRtbERpYWxvZ0NvbmZpZz4oSHRtbERpYWxvZ0NvbXBvbmVudCwge1xyXG5cdFx0XHRwYW5lbENsYXNzOiAncC0wJyxcclxuXHRcdFx0bWluV2lkdGg6ICdtaW4oNTAwcHgsNjB2dyknLFxyXG5cdFx0XHRkaXJlY3Rpb246IHRoaXMuZGlyZWN0aW9uLFxyXG5cdFx0XHQuLi5vcHRpb25zLFxyXG5cdFx0XHRkYXRhXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG9uUGFnZUNoYW5nZWQocGFnZTogUGFnZUV2ZW50KSB7XHJcblx0XHR0aGlzLl9wYWdlQ2hhbmdlZCA9IHRoaXMuX2FjdGl2ZVBhZ2UucGFnZUluZGV4ICE9PSBwYWdlLnBhZ2VJbmRleCB8fCB0aGlzLl9hY3RpdmVQYWdlLnBhZ2VTaXplICE9PSBwYWdlLnBhZ2VTaXplO1xyXG5cdFx0aWYgKHRoaXMuX3BhZ2VDaGFuZ2VkKSB7XHJcblx0XHRcdHRoaXMub25QYWdlLmVtaXQocGFnZSk7XHJcblx0XHRcdHRoaXMuX2FjdGl2ZVBhZ2UgPSBwYWdlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfZmlsdGVyQnlWaXNpYmlsaXR5KGNvbHVtbnM6IFRhYmxlQ29sdW1uQ29uZmlnW10pOiBUYWJsZUNvbHVtbkNvbmZpZ1tdIHtcclxuXHRcdHJldHVybiBjb2x1bW5zLmZpbHRlcigoY29sKSA9PiBjb2wuZGVmYXVsdFZpc2libGUpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfcHJlcGFyZVNlYXJjaChbc2VhcmNoLCBmaWx0ZXJzXTogW1xyXG5cdFx0c3RyaW5nLFxyXG5cdFx0e1xyXG5cdFx0XHRwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG5cdFx0XHRwYXlsb2FkPzogeyBwcmVkaWNhdGVMaXN0OiBhbnlbXSB9ICYgUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHRcdH1cclxuXHRdKTogYW55IHtcclxuXHRcdHtcclxuXHRcdFx0Y29uc3QgeyBwcmVkaWNhdGVMaXN0IH0gPSBmaWx0ZXJzLnBheWxvYWQ7XHJcblx0XHRcdGNvbnN0IF9rZXkgPSB0aGlzLnRleHRTZWFyY2hDb25maWc/LmZpZWxkS2V5O1xyXG5cdFx0XHRjb25zdCBzZWFyY2hJbmRleCA9IHByZWRpY2F0ZUxpc3QuZmluZEluZGV4KChpdG0pID0+IGl0bS5uYW1lID09PSBfa2V5KTtcclxuXHRcdFx0aWYgKHNlYXJjaCAmJiBfa2V5KSB7XHJcblx0XHRcdFx0aWYgKHNlYXJjaEluZGV4ID49IDApIHtcclxuXHRcdFx0XHRcdHByZWRpY2F0ZUxpc3Rbc2VhcmNoSW5kZXhdLnZhbHVlID0gYCcke3NlYXJjaH0nYDtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0cHJlZGljYXRlTGlzdC5wdXNoKHtcclxuXHRcdFx0XHRcdFx0bmFtZTogX2tleSxcclxuXHRcdFx0XHRcdFx0b3BlcmF0b3I6IHRoaXMudGV4dFNlYXJjaENvbmZpZz8ub3BlcmF0b3IgfHwgQ09NUEFSSVNPTl9PUEVSQVRPUi5lcXVhbHMsXHJcblx0XHRcdFx0XHRcdHZhbHVlOiBgJyR7c2VhcmNofSdgXHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0gZWxzZSBpZiAoc2VhcmNoSW5kZXggPj0gMCkge1xyXG5cdFx0XHRcdHByZWRpY2F0ZUxpc3Quc3BsaWNlKHNlYXJjaEluZGV4KTtcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gXy5jbG9uZURlZXAoeyAuLi5maWx0ZXJzIH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfc3RyaW5naWZ5VmFsdWVzKGNyaXRlcmlhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XHJcblx0XHRyZXR1cm4gT2JqZWN0LmVudHJpZXMoY3JpdGVyaWEpLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHtcclxuXHRcdFx0YWNjW2tleV0gPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IEpTT04uc3RyaW5naWZ5KHZhbHVlKSA6IHZhbHVlO1xyXG5cdFx0XHRyZXR1cm4gYWNjO1xyXG5cdFx0fSwge30pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfdHJpZ2dlckNyaXRlcmlhQ2hhbmdlcyhjcml0ZXJpYTogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG5cdFx0aWYgKHRoaXMuX3RhYmxlSW5pdGlhbGl6ZWQpIHtcclxuXHRcdFx0dGhpcy5vblF1ZXJ5Q2hhbmdlLmVtaXQoY3JpdGVyaWEpO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgYWN0aXZhdGVkUXVlcnkgPSB7IC4uLnRoaXMuX2FjdGl2YXRlZENyaXRlcmlhU3ViLmdldFZhbHVlKCkgfTtcclxuXHRcdGNvbnN0IHByZXZpb3VzVmFsdWUgPSBhY3RpdmF0ZWRRdWVyeT8uY3VycmVudFZhbHVlO1xyXG5cdFx0dGhpcy5fYWN0aXZhdGVkQ3JpdGVyaWFTdWIubmV4dCh7XHJcblx0XHRcdHByZXZpb3VzVmFsdWU6IHByZXZpb3VzVmFsdWUsXHJcblx0XHRcdGN1cnJlbnRWYWx1ZTogY3JpdGVyaWFcclxuXHRcdH0pO1xyXG5cdH1cclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb25cclxuXHQgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIHNldCB0aGUgdGFibGUgY29uZmlndXJhdGlvbi5cclxuXHQgKiBAcGFyYW0gY29uZmlnIE5kZlRhYmxlQ29uZmlnXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfYXBwbHlUYWJsZUNvbmZpZyhjb25maWc6IE5kZlRhYmxlQ29uZmlnKTogdm9pZCB7XHJcblx0XHR0aGlzLl90YWJsZUNvbmZpZ1N1Yi5uZXh0KGNvbmZpZyk7XHJcblx0XHR0aGlzLmlzUGFuZWxPcGVuZWQgPSBjb25maWc/Lm9wdGlvbnM/LmZpbHRlcnM/LnBhbmVsPy52aXNpYmxlID8/IHRydWU7XHJcblx0XHR0aGlzLl9pc0NvbmZpZ0NoYW5nZWQgPSAhIWNvbmZpZztcclxuXHRcdGlmIChjb25maWcuY29sdW1ucykge1xyXG5cdFx0XHR0aGlzLl9kaXNwbGF5ZWRDb2x1bW5zU3ViLm5leHQodGhpcy5fZmlsdGVyQnlWaXNpYmlsaXR5KGNvbmZpZy5jb2x1bW5zKSk7XHJcblx0XHR9XHJcblx0XHRpZiAoY29uZmlnLnNvcnRpbmdCeSkge1xyXG5cdFx0XHR0aGlzLl9zb3J0VmFsdWUgPSBjb25maWcuc29ydGluZ0J5O1xyXG5cdFx0XHR0aGlzLl9zb3J0T3B0aW9uU3ViLm5leHQoY29uZmlnLnNvcnRpbmdCeSk7XHJcblx0XHR9XHJcblx0XHRpZiAoY29uZmlnPy5vcHRpb25zPy50YWJsZU1vZGU/Lm1vZGUpIHtcclxuXHRcdFx0dGhpcy5fdmlld01vZGVTdWIubmV4dChjb25maWcub3B0aW9ucy50YWJsZU1vZGUubW9kZSk7XHJcblx0XHR9XHJcblx0XHRpZiAoY29uZmlnLnBhZ2VTaXplKSB7XHJcblx0XHRcdHRoaXMuX2FjdGl2ZVBhZ2UucGFnZVNpemUgPSBjb25maWcucGFnZVNpemU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAcHJpdmF0ZVxyXG5cdCAqIEBkZXNjcmlwdGlvbiBMb2FkcyB0aGUgdGFibGUgY29uZmlndXJhdGlvbiBiYXNlZCBvbiB0aGUgcHJvdmlkZWQga2V5IGFuZCBhcHBsaWVzIGl0LlxyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IHVzZWQgdG8gZmV0Y2ggdGhlIHRhYmxlIGNvbmZpZ3VyYXRpb24uXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfbG9hZFRhYmxlQ29uZmlnKGtleTogc3RyaW5nKSB7XHJcblx0XHR0aGlzLl9uZGZUYWJsZUNvbmZpZ3VyYXRpb25TZXJ2aWNlXHJcblx0XHRcdC5nZXRUYWJsZUNvbmZpZ3VyYXRpb24oa2V5LCB0aGlzLmNvbmZpZ1BhdGgpXHJcblx0XHRcdC5waXBlKFxyXG5cdFx0XHRcdHN3aXRjaE1hcCgoY29uZmlnKSA9PiB7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5jb25maWdUcmFuc2Zvcm1lciAmJiBfLmlzRnVuY3Rpb24odGhpcy5jb25maWdUcmFuc2Zvcm1lcikpIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuY29uZmlnVHJhbnNmb3JtZXIoY29uZmlnKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHJldHVybiBvZihjb25maWcpO1xyXG5cdFx0XHRcdH0pLFxyXG5cdFx0XHRcdHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxyXG5cdFx0XHQpXHJcblx0XHRcdC5zdWJzY3JpYmUoKGNvbmZpZykgPT4ge1xyXG5cdFx0XHRcdHRoaXMuX2FwcGx5VGFibGVDb25maWcoY29uZmlnKTtcclxuXHRcdFx0fSk7XHJcblx0fVxyXG59XHJcbiIsIjxkaXZcclxuXHQqbmdJZj1cInRhYmxlQ29uZmlnXCJcclxuXHRjbGFzcz1cIm5kZi10YWJsZV9fY29udGFpbmVyXCJcclxuXHRbY2xhc3MucGFuZWwtb3BlbmVkXT1cImlzUGFuZWxPcGVuZWQgJiYgZmlsdGVyc0NvbmZpZ1wiXHJcblx0W2Rpcl09XCJkaXJlY3Rpb25cIlxyXG5cdG5kZkZsdWlkSGVpZ2h0XHJcblx0Y3NzVmFyPVwiLS1uZGYtdGFibGUtaGVpZ2h0XCJcclxuXHRbY2FsY3VsYXRlXT1cImF1dG9DYWxjdWxhdGVIZWlnaHRcIlxyXG4+XHJcblx0PGRpdiBjbGFzcz1cIm5kZi10YWJsZV9fcGFuZWxcIiAqbmdJZj1cImZpbHRlcnNDb25maWc/LmZpZWxkc1wiPlxyXG5cdFx0PGFwcC1maWx0ZXJzLXBhbmVsXHJcblx0XHRcdFtmaWVsZHNdPVwiZmlsdGVyc0NvbmZpZy5maWVsZHNcIlxyXG5cdFx0XHRbYWdncmVnYXRpb25zXT1cImFnZ3JlZ2F0aW9ucyQgfCBhc3luY1wiXHJcblx0XHRcdChmaWx0ZXJDaGFuZ2VkKT1cImZpbHRlckNoYW5nZWQoJGV2ZW50KVwiXHJcblx0XHRcdFthY3RpdmVRdWVyeV09XCJhY3RpdmVRdWVyeVwiXHJcblx0XHRcdGNsYXNzPVwibmRmLXRhYmxlX19maWx0ZXJzXCJcclxuXHRcdFx0W2N1c3RvbVRlbXBsYXRlUmVmXT1cImZpbHRlckN1c3RvbVRlbXBsYXRlXCJcclxuXHRcdD48L2FwcC1maWx0ZXJzLXBhbmVsPlxyXG5cdDwvZGl2PlxyXG5cdDxkaXYgY2xhc3M9XCJuZGYtdGFibGVfX2NvbnRlbnRcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJuZGYtdGFibGVfX2hlYWRlciBmbGV4XCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJuZGYtdGFibGVfX2hlYWRlcl9fY3VzdG9tLWFjdGlvbnMgZmxleCBnYXAteC00IGl0ZW1zLWNlbnRlclwiPlxyXG5cdFx0XHRcdDxuZy1jb250YWluZXJcclxuXHRcdFx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNlYXJjaFRhYmxlVGVtcGxhdGUgfHwgZGVmYXVsdEFjdGlvblRlbXBsYXRlXCJcclxuXHRcdFx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XHJcblx0XHRcdFx0XHRcdCRpbXBsaWNpdDogdGFibGVDb25maWcsXHJcblx0XHRcdFx0XHRcdHBhbmVsT3BlbmVkOiBpc1BhbmVsT3BlbmVkLFxyXG5cdFx0XHRcdFx0XHR0b2dnbGVQYW5lbDogdG9nZ2xlUGFuZWwsXHJcblx0XHRcdFx0XHRcdG9wZW5Nb2RhbDogb3BlblNlYXJjaE1vZGFsLFxyXG5cdFx0XHRcdFx0XHRzZWFyY2g6IG9uVGV4dFNlYXJjaCxcclxuXHRcdFx0XHRcdFx0Y2xlYXI6IG9uQ2xlYXJTZWFyY2hcclxuXHRcdFx0XHRcdH1cIlxyXG5cdFx0XHRcdD48L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHRcdFx0PG5nLXRlbXBsYXRlICNkZWZhdWx0QWN0aW9uVGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAqbmdJZj1cImlzUGFuZWxUb2dnbGVBdmFpbGFibGVcIiBjbGFzcz1cInRvZ2dsZS1idXR0b25cIiAoY2xpY2spPVwidG9nZ2xlUGFuZWwoKVwiPlxyXG5cdFx0XHRcdFx0XHQ8bWF0LWljb24+IGZpbHRlcl9hbHQ8L21hdC1pY29uPlxyXG5cdFx0XHRcdFx0PC9idXR0b24+XHJcblx0XHRcdFx0XHQ8YXBwLXRleHQtc2VhcmNoXHJcblx0XHRcdFx0XHRcdCpuZ0lmPVwidGV4dFNlYXJjaENvbmZpZ1wiXHJcblx0XHRcdFx0XHRcdFtzZWFyY2hDb25maWddPVwidGV4dFNlYXJjaENvbmZpZ1wiXHJcblx0XHRcdFx0XHRcdChvcGVuTW9kYWwpPVwib3BlblNlYXJjaE1vZGFsKClcIlxyXG5cdFx0XHRcdFx0XHRbc2VhcmNoXT1cInRleHRTZWFyY2gkIHwgYXN5bmNcIlxyXG5cdFx0XHRcdFx0XHQoc2VhcmNoQ2hhbmdlKT1cIm9uVGV4dFNlYXJjaCgkZXZlbnQpXCJcclxuXHRcdFx0XHRcdFx0KGNsZWFyKT1cIm9uQ2xlYXJTZWFyY2goKVwiXHJcblx0XHRcdFx0XHQ+PC9hcHAtdGV4dC1zZWFyY2g+XHJcblx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJuZGYtdGFibGVfX2hlYWRlcl9fYWN0aW9ucyBmbGV4IGdhcC14LTQgaXRlbXMtY2VudGVyXCI+XHJcblx0XHRcdFx0PGFwcC1lZGl0b3ItYnV0dG9uXHJcblx0XHRcdFx0XHQqbmdJZj1cImpzb25FZGl0b3JFbmFibGVkICYmICh0YWJsZUtleSB8fCB0YWJsZUNvbmZpZz8ua2V5KVwiXHJcblx0XHRcdFx0XHRba2V5XT1cInRhYmxlS2V5IHx8IHRhYmxlQ29uZmlnPy5rZXlcIlxyXG4gICAgICAgICAgW3R5cGVdPVwiZWRpdG9yVHlwZVwiXHJcblx0XHRcdFx0PjwvYXBwLWVkaXRvci1idXR0b24+XHJcblx0XHRcdFx0PG5kZi10YWJsZS1leHBvcnRcclxuXHRcdFx0XHRcdCpuZ0lmPVwiZXhwb3J0VGFibGVDb25maWc/LmVuYWJsZWRcIlxyXG5cdFx0XHRcdFx0W2NvbmZpZ109XCJleHBvcnRUYWJsZUNvbmZpZ1wiXHJcblx0XHRcdFx0XHQob25FeHBvcnQpPVwiZXhwb3J0VGFibGUoJGV2ZW50KVwiXHJcblx0XHRcdFx0PjwvbmRmLXRhYmxlLWV4cG9ydD5cclxuXHJcblx0XHRcdFx0PHRhYmxlLXNvcnRpbmctbGlzdFxyXG5cdFx0XHRcdFx0Km5nSWY9XCIhIXNvcnRMaXN0Py5sZW5ndGhcIlxyXG5cdFx0XHRcdFx0W3NvcnRMaXN0XT1cInNvcnRMaXN0XCJcclxuXHRcdFx0XHRcdChzb3J0Q2hhbmdlZCk9XCJzb3J0Q2hhbmdlZCgkZXZlbnQpXCJcclxuXHRcdFx0XHQ+PC90YWJsZS1zb3J0aW5nLWxpc3Q+XHJcblx0XHRcdFx0PHRhYmxlLWNvbHVtbnMtdG9nZ2xlclxyXG5cdFx0XHRcdFx0Km5nSWY9XCJjb2x1bW5Ub2dnbGVcIlxyXG5cdFx0XHRcdFx0W2NvbHVtbnNdPVwidGFibGVDb25maWcuY29sdW1uc1wiXHJcblx0XHRcdFx0XHRbcHJlZml4XT1cInRhYmxlQ29uZmlnLnByZWZpeFwiXHJcblx0XHRcdFx0XHRbc29ydGFibGVdPVwiY29sdW1uc09wdGlvbnM/LnNvcnRhYmxlXCJcclxuXHRcdFx0XHRcdChjb2x1bW5zQ2hhbmdlZCk9XCJjb2x1bW5zQ2hhbmdlZCgkZXZlbnQpXCJcclxuXHRcdFx0XHQ+PC90YWJsZS1jb2x1bW5zLXRvZ2dsZXI+XHJcblx0XHRcdFx0PG1vZGUtdG9nZ2xlclxyXG5cdFx0XHRcdFx0Km5nSWY9XCJ0YWJsZU1vZGU/LnRvZ2dsZU1vZGVcIlxyXG5cdFx0XHRcdFx0W21vZGVdPVwidGFibGVNb2RlLm1vZGUgfHwgJ2xpc3QnXCJcclxuXHRcdFx0XHRcdFttb2Rlc0xpc3RdPVwidGFibGVNb2RlPy5hdmFpbGFibGVNb2RlXCJcclxuXHRcdFx0XHRcdChtb2RlQ2hhbmdlZCk9XCJtb2RlQ2hhbmdlZCgkZXZlbnQpXCJcclxuXHRcdFx0XHQ+PC9tb2RlLXRvZ2dsZXI+XHJcblx0XHRcdFx0PG5nLWNvbnRhaW5lclxyXG5cdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRdPVwiYWN0aW9uc1RhYmxlVGVtcGxhdGVcIlxyXG5cdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcclxuXHRcdFx0XHRcdFx0JGltcGxpY2l0OiB0YWJsZUNvbmZpZyxcclxuXHRcdFx0XHRcdFx0cGFuZWxPcGVuZWQ6IGlzUGFuZWxPcGVuZWQsXHJcblx0XHRcdFx0XHRcdHRvZ2dsZVBhbmVsOiB0b2dnbGVQYW5lbCxcclxuXHRcdFx0XHRcdFx0b3Blbk1vZGFsOiBvcGVuU2VhcmNoTW9kYWwsXHJcblx0XHRcdFx0XHRcdHNlYXJjaDogb25UZXh0U2VhcmNoLFxyXG5cdFx0XHRcdFx0XHRjbGVhcjogb25DbGVhclNlYXJjaFxyXG5cdFx0XHRcdFx0fVwiXHJcblx0XHRcdFx0PjwvbmctY29udGFpbmVyPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZGl2PlxyXG5cclxuXHRcdDxjdHMtZHluYW1pYy10YWJsZVxyXG5cdFx0XHQqbmdJZj1cIiF0YWJsZUNvbmZpZy5pc0RhdGFQcm92aWRlZFwiXHJcblx0XHRcdGNsYXNzPVwibmRmLXRhYmxlX190YWJsZSB0YWJsZS1zdHlsZVwiXHJcblx0XHRcdFtjb2x1bW5zXT1cImRpc3BsYXllZENvbHVtbnMkIHwgYXN5bmNcIlxyXG5cdFx0XHRbcmVzcG9uc2l2ZUNvbHVtbnNdPVwiZGlzcGxheWVkQ29sdW1ucyQgfCBhc3luY1wiXHJcblx0XHRcdFtmdWxsV2lkdGhdPVwidGFibGVDb25maWcuZnVsbFdpZHRoIHx8ICdhdXRvJ1wiXHJcblx0XHRcdFtwYWdlU2l6ZV09XCJ0YWJsZUNvbmZpZy5wYWdlU2l6ZSB8fCAxMFwiXHJcblx0XHRcdFtwYWdlTnVtYmVyXT1cInRhYmxlQ29uZmlnLnBhZ2VOdW1iZXIgfHwgMVwiXHJcblx0XHRcdFtwYWdlUHJvdmlkZXJdPVwidGFibGVDb25maWcucGFnZVByb3ZpZGVyXCJcclxuXHRcdFx0W2N1c3RvbVVybF09XCJ0YWJsZUNvbmZpZy5jdXN0b21VcmxcIlxyXG5cdFx0XHRbcXVpY2tGaWx0ZXJdPVwidGFibGVDb25maWcucXVpY2tGaWx0ZXJzID8geyBxdWlja0ZpbHRlcnM6IHRhYmxlQ29uZmlnLnF1aWNrRmlsdGVycyB9IDogdW5kZWZpbmVkXCJcclxuXHRcdFx0W2RlZnVsdFNvcnRdPVwidGFibGVDb25maWcuZGVmYXVsdFNvcnQgfHwgZGVmYXVsdFNvcnRcIlxyXG5cdFx0XHRbc29ydGluZ0J5XT1cInNvcnRPcHRpb24kIHwgYXN5bmNcIlxyXG5cdFx0XHRbZW50aXR5VHlwZV09XCInYWxsJ1wiXHJcblx0XHRcdFtmaWVsZHNdPVwidGFibGVDb25maWcuZmllbGRzXCJcclxuXHRcdFx0W3RhYmxlTW9kZV09XCJ2aWV3TW9kZSQgfCBhc3luY1wiXHJcblx0XHRcdFtjb21wb25lbnROYW1lXT1cInRhYmxlTW9kZT8uWydjb21wb25lbnROYW1lJ11cIlxyXG5cdFx0XHRbcmFuZ2VdPVwidGFibGVDb25maWc/LnJhbmdlXCJcclxuXHRcdFx0W2lzU2VhcmNoUGFnZV09XCJ0YWJsZUNvbmZpZz8uaXNTZWFyY2hQYWdlXCJcclxuXHRcdFx0W211bHRpU2VsZWN0Um93c109XCJ0YWJsZUNvbmZpZz8ubXVsdGlTZWxlY3RSb3dzXCJcclxuXHRcdFx0W2N1c3RvbUZpcnN0Um93XT1cInRhYmxlQ29uZmlnPy5jdXN0b21GaXJzdFJvd1wiXHJcblx0XHRcdFtoaWdobGlnaHRTZWxlY3RlZENhcmRdPVwidGFibGVDb25maWc/LmhpZ2hsaWdodFNlbGVjdGVkQ2FyZFwiXHJcblx0XHRcdFtzaG93QWN0aW9uc0FzTWVudV09XCJ0YWJsZUNvbmZpZz8uc2hvd0FjdGlvbnNBc01lbnVcIlxyXG5cdFx0XHRbZmlsdGVyUGFyYW1zXT1cInRhYmxlQ29uZmlnPy5maWx0ZXJQYXJhbXNcIlxyXG5cdFx0XHRbZm9ybWF0XT1cInRhYmxlQ29uZmlnPy5mb3JtYXQgfHwgJ01NTU0gZCwgeSdcIlxyXG5cdFx0XHRbcGFnZVNpemVzXT1cInRhYmxlQ29uZmlnPy5wYWdlU2l6ZXMgfHwgZGVmYXVsdFBhZ2VTaXplc1wiXHJcblx0XHRcdFtwcmVmaXhdPVwidGFibGVDb25maWcucHJlZml4IHx8ICcnXCJcclxuXHRcdFx0W3Jvd0N1cnNvcl09XCJ0cnVlXCJcclxuXHRcdFx0W3F1ZXJ5UGFyYW1dPVwidGFibGVDb25maWcucXVlcnlQYXJhbVwiXHJcblx0XHRcdFtjdXN0b21GaWx0ZXJzXT1cInNlYXJjaEFuZEZpbHRlcnMkIHwgYXN5bmNcIlxyXG5cdFx0XHRbdGFibGVBY3Rpb25zXT1cInRhYmxlQ29uZmlnLnRhYmxlQWN0aW9uc1wiXHJcblx0XHRcdFtoZWFkZXJzXT1cInRhYmxlQ29uZmlnLmhlYWRlcnNcIlxyXG5cdFx0XHQob25Sb3dTZWxlY3RlZCk9XCJvblJvd1NlbGVjdGVkLmVtaXQoJGV2ZW50KVwiXHJcblx0XHRcdChvblJvd0luZGV4U2VsZWN0ZWQpPVwib25Sb3dJbmRleFNlbGVjdGVkLmVtaXQoJGV2ZW50KVwiXHJcblx0XHRcdChhY3Rpb25PblJvdyk9XCJhY3Rpb25PblJvdy5lbWl0KCRldmVudClcIlxyXG5cdFx0XHQob25HZXR0aW5nRGF0YSk9XCJvbkdldHRpbmdEYXRhLmVtaXQoJGV2ZW50KVwiXHJcblx0XHRcdChvbkxvYWQpPVwib25Mb2FkKCRldmVudClcIlxyXG5cdFx0XHQob25Jbml0aWFsaXplKT1cIm9uSW5pdGlhbGl6ZSgkZXZlbnQpXCJcclxuXHRcdFx0KG9uTXVsdGlSb3dTZWxlY3RlZCk9XCJvbk11bHRpUm93U2VsZWN0ZWQuZW1pdCgkZXZlbnQpXCJcclxuXHRcdFx0KG9uTG9hZGluZyk9XCJvbkxvYWRpbmcuZW1pdCgkZXZlbnQpXCJcclxuXHRcdFx0KG9uUGFnZSk9XCJvblBhZ2VDaGFuZ2VkKCRldmVudClcIlxyXG5cdFx0XHRbaXNMZWdhY3lNb2RlXT1cImZhbHNlXCJcclxuXHRcdFx0W3Nob3dUb3RhbFJlY29yZF09XCJ0cnVlXCJcclxuXHRcdFx0KHNvcnRDaGFuZ2VkKT1cIm9uU29ydENoYW5nZWQoJGV2ZW50KVwiXHJcblx0XHQ+XHJcblx0XHRcdDxuZy10ZW1wbGF0ZSBlbXB0eVRlbXBsYXRlIGxldC1pc0xvYWRpbmcgbGV0LXJvd3M9XCJyb3dzXCIgbGV0LWluaXRpYWxpemVkPVwiaW5pdGlhbGl6ZWRcIj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwibG9hZGluZy1kYXRhXCIgKm5nSWY9XCJpc0xvYWRpbmcgJiYgaW5pdGlhbGl6ZWRcIj5cclxuXHRcdFx0XHRcdDxtYXQtc3Bpbm5lcj48L21hdC1zcGlubmVyPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgaC01LzZcIiAqbmdJZj1cIiFpc0xvYWRpbmcgJiYgIXJvd3MubGVuZ3RoXCI+XHJcblx0XHRcdFx0XHQ8YXBwLW5vLWRhdGEtZm91bmQgY2xhc3M9XCJtdC00XCIgW21lc3NhZ2VdPVwiZW1wdHlNZXNzYWdlXCI+PC9hcHAtbm8tZGF0YS1mb3VuZD5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdDwvY3RzLWR5bmFtaWMtdGFibGU+XHJcblxyXG5cdFx0PGN0cy10YWJsZVxyXG5cdFx0XHQqbmdJZj1cInRhYmxlQ29uZmlnLmlzRGF0YVByb3ZpZGVkXCJcclxuXHRcdFx0W3Jvd3NdPVwicm93c1wiXHJcblx0XHRcdFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcclxuXHRcdFx0W2NvbHVtbnNdPVwiZGlzcGxheWVkQ29sdW1ucyQgfCBhc3luY1wiXHJcblx0XHRcdFtyZXNwb25zaXZlQ29sdW1uc109XCJkaXNwbGF5ZWRDb2x1bW5zJCB8IGFzeW5jXCJcclxuXHRcdFx0W3Jvd0N1cnNvcl09XCJ0cnVlXCJcclxuXHRcdFx0W2Z1bGxXaWR0aF09XCJ0YWJsZUNvbmZpZy5mdWxsV2lkdGggfHwgJ2F1dG8nXCJcclxuXHRcdFx0W2VudGl0eVR5cGVdPVwiJ2FsbCdcIlxyXG5cdFx0XHRbcHJlZml4XT1cInRhYmxlQ29uZmlnLnByZWZpeCB8fCAnJ1wiXHJcblx0XHRcdFt0YWJsZU1vZGVdPVwidmlld01vZGUkIHwgYXN5bmNcIlxyXG5cdFx0XHRbY29tcG9uZW50TmFtZV09XCJ0YWJsZU1vZGU/LlsnY29tcG9uZW50TmFtZSddXCJcclxuXHRcdFx0W211bHRpU2VsZWN0Um93c109XCJ0YWJsZUNvbmZpZz8ubXVsdGlTZWxlY3RSb3dzXCJcclxuXHRcdFx0W2N1c3RvbUZpcnN0Um93XT1cInRhYmxlQ29uZmlnPy5jdXN0b21GaXJzdFJvd1wiXHJcblx0XHRcdFt0YWJsZUFjdGlvbnNdPVwidGFibGVDb25maWcudGFibGVBY3Rpb25zXCJcclxuXHRcdFx0W3Nob3dBY3Rpb25zQXNNZW51XT1cInRhYmxlQ29uZmlnPy5zaG93QWN0aW9uc0FzTWVudVwiXHJcblx0XHRcdFtkZWZ1bHRTb3J0XT1cInRhYmxlQ29uZmlnLmRlZmF1bHRTb3J0IHx8IGRlZmF1bHRTb3J0XCJcclxuXHRcdFx0W2Zvcm1hdF09XCJ0YWJsZUNvbmZpZz8uZm9ybWF0IHx8ICdNTU1NIGQsIHknXCJcclxuXHRcdFx0W2hpZ2hsaWdodFNlbGVjdGVkQ2FyZF09XCJ0YWJsZUNvbmZpZz8uaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkXCJcclxuXHRcdFx0KG9uUm93U2VsZWN0ZWQpPVwib25Sb3dTZWxlY3RlZC5lbWl0KCRldmVudClcIlxyXG5cdFx0XHQob25Sb3dJbmRleFNlbGVjdGVkKT1cIm9uUm93SW5kZXhTZWxlY3RlZC5lbWl0KCRldmVudClcIlxyXG5cdFx0XHQob25NdWx0aVJvd1NlbGVjdGVkKT1cIm9uTXVsdGlSb3dTZWxlY3RlZC5lbWl0KCRldmVudClcIlxyXG5cdFx0XHQoYWN0aW9uT25Sb3cpPVwiYWN0aW9uT25Sb3cuZW1pdCgkZXZlbnQpXCJcclxuXHRcdFx0KG9uU29ydGluZyk9XCJvblNvcnRDaGFuZ2VkKCRldmVudClcIlxyXG5cdFx0PjwvY3RzLXRhYmxlPlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -1,5 +1,4 @@
1
1
  export * from './actions.directive';
2
2
  export * from './search.directive';
3
- export * from './fluid-height.directive';
4
3
  export * from './filter-custom.directive';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9uZGYtdGFibGUvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3Rpb25zLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmx1aWQtaGVpZ2h0LmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVyLWN1c3RvbS5kaXJlY3RpdmUnO1xyXG4iXX0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9uZGYtdGFibGUvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWN0aW9ucy5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlci1jdXN0b20uZGlyZWN0aXZlJztcclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvbmRmLXRhYmxlL21vZGVscy90YWJsZS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhYmxlQ29sdW1uQWN0aW9uLCBUYWJsZUNvbHVtbkNvbmZpZyB9IGZyb20gJy4vdGFibGUtY29sdW1uJztcclxuaW1wb3J0IHsgTmRmVGFibGVPcHRpb25zIH0gZnJvbSAnLi90YWJsZS1vcHRpb25zJztcclxuaW1wb3J0IHsgVGFibGVEZWZhdWx0U29ydE1vZGVsLCBUYWJsZVBhZ2luYXRpb25PcHRpb25zLCBUYWJsZVNvcnRpbmdBcnJheSwgVGFibGVTb3J0T3B0aW9ucywgVGFibGVUYWIgfSBmcm9tICcuL3R5cGVzJztcclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIHR5cGUgZm9yIHRoZSBOREYgVGFibGUgY29tcG9uZW50LlxyXG4gKiBFeHRlbmRzIGBUYWJsZVBhZ2luYXRpb25PcHRpb25zYCBhbmQgcHJvdmlkZXMgYWRkaXRpb25hbCBwcm9wZXJ0aWVzXHJcbiAqIGZvciBjdXN0b21pemluZyB0YWJsZSBiZWhhdmlvciwgYXBwZWFyYW5jZSwgYW5kIGRhdGEgaGFuZGxpbmcuXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBOZGZUYWJsZUNvbmZpZyA9IFRhYmxlUGFnaW5hdGlvbk9wdGlvbnMgJiB7XHJcblx0LyoqIEluZGljYXRlcyBpZiB0aGUgZGF0YSBpcyBwcm92aWRlZCBkaXJlY3RseSBpbnN0ZWFkIG9mIGJlaW5nIGZldGNoZWQuICovXHJcblx0aXNEYXRhUHJvdmlkZWQ/OiBib29sZWFuO1xyXG5cclxuXHQvKiogT3B0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIHRhYmxlLiAqL1xyXG5cdG9wdGlvbnM/OiBOZGZUYWJsZU9wdGlvbnM7XHJcblxyXG5cdC8qKiBFbmFibGVzIGhvcml6b250YWwgc2Nyb2xsYmFyIGlmIHNldCB0byB0cnVlLiAqL1xyXG5cdHNjcm9sbGJhckg/OiBib29sZWFuO1xyXG5cclxuXHQvKiogRGVmaW5lcyB0aGUgY29sdW1uIG1vZGU6ICdmbGV4JywgJ2ZpeGVkJywgb3IgJ2ZvcmNlJy4gKi9cclxuXHRjb2x1bW5Nb2RlPzogJ2ZsZXgnIHwgJ2ZpeGVkJyB8ICdmb3JjZSc7XHJcblxyXG5cdC8qKiBUaGUgcGFnZSBwcm92aWRlciBpZGVudGlmaWVyIGZvciBmZXRjaGluZyBkYXRhLiAqL1xyXG5cdHBhZ2VQcm92aWRlcjogc3RyaW5nO1xyXG5cclxuXHQvKiogQSBtYXBwaW5nIG9mIGZpZWxkIG5hbWVzIHRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgdmFsdWVzLiAqL1xyXG5cdGZpZWxkczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcclxuXHJcblx0LyoqIEN1c3RvbSBVUkwgY29uZmlndXJhdGlvbiBmb3IgZmV0Y2hpbmcgZGF0YS4gKi9cclxuXHRjdXN0b21Vcmw/OiB7XHJcblx0XHR1cmw6IHN0cmluZztcclxuXHRcdG1ldGhvZDogJ1BPU1QnIHwgJ0dFVCc7XHJcblx0XHRwYXlsb2FkPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHRcdHByZWRpY2F0ZUtleT86IHN0cmluZztcclxuXHR9O1xyXG5cclxuXHQvKiogUXVpY2sgZmlsdGVyIGlkZW50aWZpZXIgZm9yIHRoZSB0YWJsZS4gKi9cclxuXHRxdWlja0ZpbHRlcnM/OiBzdHJpbmc7XHJcblxyXG5cdC8qKiBDb25maWd1cmF0aW9uIGZvciB0YWJsZSBjb2x1bW5zLiAqL1xyXG5cdGNvbHVtbnM6IFRhYmxlQ29sdW1uQ29uZmlnW107XHJcblxyXG5cdC8qKiBMaXN0IG9mIGNvbHVtbiBpZGVudGlmaWVycyB3aXRoIGR5bmFtaWMgdmlzaWJpbGl0eS4gKi9cclxuXHRjb2x1bW5zV2l0aER5bmFtaWNWaXNpYmlsdGl5Pzogc3RyaW5nW107XHJcblxyXG5cdC8qKiBMaXN0IG9mIGNvbHVtbiBpZGVudGlmaWVycyB3aXRoIGR5bmFtaWMgZGlzcGxheS4gKi9cclxuXHRjb2x1bW5zV2l0aER5bmFtaWNEaXNwbGF5Pzogc3RyaW5nW107XHJcblxyXG5cdC8qKiBMaXN0IG9mIGZpbHRlciBpZGVudGlmaWVycyB3aXRoIGR5bmFtaWMgZGlzcGxheS4gKi9cclxuXHRmaWx0ZXJzV2l0aER5bmFtaWNEaXNwbGF5Pzogc3RyaW5nW107XHJcblxyXG5cdC8qKiBDb25maWd1cmF0aW9uIGZvciByZXNwb25zaXZlIGNvbHVtbnMuICovXHJcblx0cmVzcG9uc2l2ZUNvbHVtbnM/OiBUYWJsZUNvbHVtbkNvbmZpZ1tdO1xyXG5cclxuXHQvKiogU3BlY2lmaWVzIHRoZSBmdWxsIHdpZHRoIG9mIHRoZSB0YWJsZS4gKi9cclxuXHRmdWxsV2lkdGg/OiBzdHJpbmc7XHJcblxyXG5cdC8qKiBQcmVmaXggZm9yIHRhYmxlLXJlbGF0ZWQgaWRlbnRpZmllcnMuICovXHJcblx0cHJlZml4Pzogc3RyaW5nO1xyXG5cclxuXHQvKiogU29ydGluZyBvcHRpb25zIGZvciB0aGUgdGFibGUuICovXHJcblx0c29ydGluZ0J5PzogVGFibGVTb3J0T3B0aW9ucztcclxuXHJcblx0LyoqIERlZmF1bHQgc29ydGluZyBjb25maWd1cmF0aW9uIGZvciB0aGUgdGFibGUuICovXHJcblx0ZGVmYXVsdFNvcnQ/OiBUYWJsZURlZmF1bHRTb3J0TW9kZWw7XHJcblxyXG5cdC8qKiBDdXN0b20gaGVhZGVycyBmb3IgdGFibGUgcmVxdWVzdHMuICovXHJcblx0aGVhZGVycz86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblxyXG5cdC8qKiBRdWVyeSBwYXJhbWV0ZXJzIGZvciB0YWJsZSByZXF1ZXN0cy4gKi9cclxuXHRxdWVyeVBhcmFtPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHJcblx0LyoqIEFjdGlvbnMgYXZhaWxhYmxlIGZvciB0YWJsZSBjb2x1bW5zLiAqL1xyXG5cdHRhYmxlQWN0aW9ucz86IFRhYmxlQ29sdW1uQWN0aW9uW107XHJcblxyXG5cdC8qKiBIaWdobGlnaHRzIHRoZSBzZWxlY3RlZCBjYXJkIGlmIHNldCB0byB0cnVlLiAqL1xyXG5cdGhpZ2hsaWdodFNlbGVjdGVkQ2FyZD86IGJvb2xlYW47XHJcblxyXG5cdC8qKiBUYWJzIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB0YWJsZS4gKi9cclxuXHR0YWJzPzogVGFibGVUYWJbXTtcclxuXHJcblx0LyoqIEFycmF5IG9mIHNvcnRpbmcgY29uZmlndXJhdGlvbnMuICovXHJcblx0c29ydGluZ0FycmF5PzogVGFibGVTb3J0aW5nQXJyYXlbXTtcclxuXHJcblx0LyoqIERldGVybWluZXMgd2hlbiB0byBza2lwIGFnZ3JlZ2F0aW9uOiAnbmV2ZXInIG9yICdvblBhZ2VDaGFuZ2UnLiAqL1xyXG5cdHNraXBBZ2dyZWdhdGlvbj86ICduZXZlcicgfCAnb25QYWdlQ2hhbmdlJztcclxuXHJcblx0LyoqIFJhbmdlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB0YWJsZS4gKi9cclxuXHRyYW5nZT86IGFueTtcclxuXHJcblx0LyoqIEluZGljYXRlcyBpZiB0aGUgdGFibGUgaXMgdXNlZCBvbiBhIHNlYXJjaCBwYWdlLiAqL1xyXG5cdGlzU2VhcmNoUGFnZT86IGFueTtcclxuXHJcblx0LyoqIEVuYWJsZXMgbXVsdGktc2VsZWN0IHJvd3MgaWYgc2V0IHRvIHRydWUuICovXHJcblx0bXVsdGlTZWxlY3RSb3dzPzogYm9vbGVhbjtcclxuXHJcblx0LyoqIEFkZHMgYSBjdXN0b20gZmlyc3Qgcm93IHRvIHRoZSB0YWJsZSBpZiBzZXQgdG8gdHJ1ZS4gKi9cclxuXHRjdXN0b21GaXJzdFJvdz86IGJvb2xlYW47XHJcblxyXG5cdC8qKiBEaXNwbGF5cyBhY3Rpb25zIGFzIGEgbWVudSBpZiBzZXQgdG8gdHJ1ZS4gKi9cclxuXHRzaG93QWN0aW9uc0FzTWVudT86IGJvb2xlYW47XHJcblxyXG5cdC8qKiBBZGRpdGlvbmFsIGZpbHRlciBwYXJhbWV0ZXJzIGZvciB0aGUgdGFibGUuICovXHJcblx0ZmlsdGVyUGFyYW1zPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHJcblx0LyoqIEZvcm1hdCBjb25maWd1cmF0aW9uIGZvciB0aGUgdGFibGUuICovXHJcblx0Zm9ybWF0Pzogc3RyaW5nO1xyXG5cclxuXHQvKiogQXZhaWxhYmxlIHBhZ2Ugc2l6ZXMgZm9yIHRoZSB0YWJsZS4gKi9cclxuXHRwYWdlU2l6ZXM/OiB7IGxhYmVsOiBzdHJpbmc7IHNpemU6IG51bWJlciB9W107XHJcbn07XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvbmRmLXRhYmxlL21vZGVscy90YWJsZS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhYmxlQ29sdW1uQWN0aW9uLCBUYWJsZUNvbHVtbkNvbmZpZyB9IGZyb20gJy4vdGFibGUtY29sdW1uJztcclxuaW1wb3J0IHsgTmRmVGFibGVPcHRpb25zIH0gZnJvbSAnLi90YWJsZS1vcHRpb25zJztcclxuaW1wb3J0IHsgVGFibGVEZWZhdWx0U29ydE1vZGVsLCBUYWJsZVBhZ2luYXRpb25PcHRpb25zLCBUYWJsZVNvcnRpbmdBcnJheSwgVGFibGVTb3J0T3B0aW9ucywgVGFibGVUYWIgfSBmcm9tICcuL3R5cGVzJztcclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIHR5cGUgZm9yIHRoZSBOREYgVGFibGUgY29tcG9uZW50LlxyXG4gKiBFeHRlbmRzIGBUYWJsZVBhZ2luYXRpb25PcHRpb25zYCBhbmQgcHJvdmlkZXMgYWRkaXRpb25hbCBwcm9wZXJ0aWVzXHJcbiAqIGZvciBjdXN0b21pemluZyB0YWJsZSBiZWhhdmlvciwgYXBwZWFyYW5jZSwgYW5kIGRhdGEgaGFuZGxpbmcuXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBOZGZUYWJsZUNvbmZpZyA9IFRhYmxlUGFnaW5hdGlvbk9wdGlvbnMgJiB7XHJcblx0a2V5Pzogc3RyaW5nO1xyXG5cdC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGRhdGEgaXMgcHJvdmlkZWQgZGlyZWN0bHkgaW5zdGVhZCBvZiBiZWluZyBmZXRjaGVkLiAqL1xyXG5cdGlzRGF0YVByb3ZpZGVkPzogYm9vbGVhbjtcclxuXHJcblx0LyoqIE9wdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSB0YWJsZS4gKi9cclxuXHRvcHRpb25zPzogTmRmVGFibGVPcHRpb25zO1xyXG5cclxuXHQvKiogRW5hYmxlcyBob3Jpem9udGFsIHNjcm9sbGJhciBpZiBzZXQgdG8gdHJ1ZS4gKi9cclxuXHRzY3JvbGxiYXJIPzogYm9vbGVhbjtcclxuXHJcblx0LyoqIERlZmluZXMgdGhlIGNvbHVtbiBtb2RlOiAnZmxleCcsICdmaXhlZCcsIG9yICdmb3JjZScuICovXHJcblx0Y29sdW1uTW9kZT86ICdmbGV4JyB8ICdmaXhlZCcgfCAnZm9yY2UnO1xyXG5cclxuXHQvKiogVGhlIHBhZ2UgcHJvdmlkZXIgaWRlbnRpZmllciBmb3IgZmV0Y2hpbmcgZGF0YS4gKi9cclxuXHRwYWdlUHJvdmlkZXI6IHN0cmluZztcclxuXHJcblx0LyoqIEEgbWFwcGluZyBvZiBmaWVsZCBuYW1lcyB0byB0aGVpciBjb3JyZXNwb25kaW5nIHZhbHVlcy4gKi9cclxuXHRmaWVsZHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XHJcblxyXG5cdC8qKiBDdXN0b20gVVJMIGNvbmZpZ3VyYXRpb24gZm9yIGZldGNoaW5nIGRhdGEuICovXHJcblx0Y3VzdG9tVXJsPzoge1xyXG5cdFx0dXJsOiBzdHJpbmc7XHJcblx0XHRtZXRob2Q6ICdQT1NUJyB8ICdHRVQnO1xyXG5cdFx0cGF5bG9hZD86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblx0XHRwcmVkaWNhdGVLZXk/OiBzdHJpbmc7XHJcblx0fTtcclxuXHJcblx0LyoqIFF1aWNrIGZpbHRlciBpZGVudGlmaWVyIGZvciB0aGUgdGFibGUuICovXHJcblx0cXVpY2tGaWx0ZXJzPzogc3RyaW5nO1xyXG5cclxuXHQvKiogQ29uZmlndXJhdGlvbiBmb3IgdGFibGUgY29sdW1ucy4gKi9cclxuXHRjb2x1bW5zOiBUYWJsZUNvbHVtbkNvbmZpZ1tdO1xyXG5cclxuXHQvKiogTGlzdCBvZiBjb2x1bW4gaWRlbnRpZmllcnMgd2l0aCBkeW5hbWljIHZpc2liaWxpdHkuICovXHJcblx0Y29sdW1uc1dpdGhEeW5hbWljVmlzaWJpbHRpeT86IHN0cmluZ1tdO1xyXG5cclxuXHQvKiogTGlzdCBvZiBjb2x1bW4gaWRlbnRpZmllcnMgd2l0aCBkeW5hbWljIGRpc3BsYXkuICovXHJcblx0Y29sdW1uc1dpdGhEeW5hbWljRGlzcGxheT86IHN0cmluZ1tdO1xyXG5cclxuXHQvKiogTGlzdCBvZiBmaWx0ZXIgaWRlbnRpZmllcnMgd2l0aCBkeW5hbWljIGRpc3BsYXkuICovXHJcblx0ZmlsdGVyc1dpdGhEeW5hbWljRGlzcGxheT86IHN0cmluZ1tdO1xyXG5cclxuXHQvKiogQ29uZmlndXJhdGlvbiBmb3IgcmVzcG9uc2l2ZSBjb2x1bW5zLiAqL1xyXG5cdHJlc3BvbnNpdmVDb2x1bW5zPzogVGFibGVDb2x1bW5Db25maWdbXTtcclxuXHJcblx0LyoqIFNwZWNpZmllcyB0aGUgZnVsbCB3aWR0aCBvZiB0aGUgdGFibGUuICovXHJcblx0ZnVsbFdpZHRoPzogc3RyaW5nO1xyXG5cclxuXHQvKiogUHJlZml4IGZvciB0YWJsZS1yZWxhdGVkIGlkZW50aWZpZXJzLiAqL1xyXG5cdHByZWZpeD86IHN0cmluZztcclxuXHJcblx0LyoqIFNvcnRpbmcgb3B0aW9ucyBmb3IgdGhlIHRhYmxlLiAqL1xyXG5cdHNvcnRpbmdCeT86IFRhYmxlU29ydE9wdGlvbnM7XHJcblxyXG5cdC8qKiBEZWZhdWx0IHNvcnRpbmcgY29uZmlndXJhdGlvbiBmb3IgdGhlIHRhYmxlLiAqL1xyXG5cdGRlZmF1bHRTb3J0PzogVGFibGVEZWZhdWx0U29ydE1vZGVsO1xyXG5cclxuXHQvKiogQ3VzdG9tIGhlYWRlcnMgZm9yIHRhYmxlIHJlcXVlc3RzLiAqL1xyXG5cdGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG5cclxuXHQvKiogUXVlcnkgcGFyYW1ldGVycyBmb3IgdGFibGUgcmVxdWVzdHMuICovXHJcblx0cXVlcnlQYXJhbT86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblxyXG5cdC8qKiBBY3Rpb25zIGF2YWlsYWJsZSBmb3IgdGFibGUgY29sdW1ucy4gKi9cclxuXHR0YWJsZUFjdGlvbnM/OiBUYWJsZUNvbHVtbkFjdGlvbltdO1xyXG5cclxuXHQvKiogSGlnaGxpZ2h0cyB0aGUgc2VsZWN0ZWQgY2FyZCBpZiBzZXQgdG8gdHJ1ZS4gKi9cclxuXHRoaWdobGlnaHRTZWxlY3RlZENhcmQ/OiBib29sZWFuO1xyXG5cclxuXHQvKiogVGFicyBjb25maWd1cmF0aW9uIGZvciB0aGUgdGFibGUuICovXHJcblx0dGFicz86IFRhYmxlVGFiW107XHJcblxyXG5cdC8qKiBBcnJheSBvZiBzb3J0aW5nIGNvbmZpZ3VyYXRpb25zLiAqL1xyXG5cdHNvcnRpbmdBcnJheT86IFRhYmxlU29ydGluZ0FycmF5W107XHJcblxyXG5cdC8qKiBEZXRlcm1pbmVzIHdoZW4gdG8gc2tpcCBhZ2dyZWdhdGlvbjogJ25ldmVyJyBvciAnb25QYWdlQ2hhbmdlJy4gKi9cclxuXHRza2lwQWdncmVnYXRpb24/OiAnbmV2ZXInIHwgJ29uUGFnZUNoYW5nZSc7XHJcblxyXG5cdC8qKiBSYW5nZSBjb25maWd1cmF0aW9uIGZvciB0aGUgdGFibGUuICovXHJcblx0cmFuZ2U/OiBhbnk7XHJcblxyXG5cdC8qKiBJbmRpY2F0ZXMgaWYgdGhlIHRhYmxlIGlzIHVzZWQgb24gYSBzZWFyY2ggcGFnZS4gKi9cclxuXHRpc1NlYXJjaFBhZ2U/OiBhbnk7XHJcblxyXG5cdC8qKiBFbmFibGVzIG11bHRpLXNlbGVjdCByb3dzIGlmIHNldCB0byB0cnVlLiAqL1xyXG5cdG11bHRpU2VsZWN0Um93cz86IGJvb2xlYW47XHJcblxyXG5cdC8qKiBBZGRzIGEgY3VzdG9tIGZpcnN0IHJvdyB0byB0aGUgdGFibGUgaWYgc2V0IHRvIHRydWUuICovXHJcblx0Y3VzdG9tRmlyc3RSb3c/OiBib29sZWFuO1xyXG5cclxuXHQvKiogRGlzcGxheXMgYWN0aW9ucyBhcyBhIG1lbnUgaWYgc2V0IHRvIHRydWUuICovXHJcblx0c2hvd0FjdGlvbnNBc01lbnU/OiBib29sZWFuO1xyXG5cclxuXHQvKiogQWRkaXRpb25hbCBmaWx0ZXIgcGFyYW1ldGVycyBmb3IgdGhlIHRhYmxlLiAqL1xyXG5cdGZpbHRlclBhcmFtcz86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblxyXG5cdC8qKiBGb3JtYXQgY29uZmlndXJhdGlvbiBmb3IgdGhlIHRhYmxlLiAqL1xyXG5cdGZvcm1hdD86IHN0cmluZztcclxuXHJcblx0LyoqIEF2YWlsYWJsZSBwYWdlIHNpemVzIGZvciB0aGUgdGFibGUuICovXHJcblx0cGFnZVNpemVzPzogeyBsYWJlbDogc3RyaW5nOyBzaXplOiBudW1iZXIgfVtdO1xyXG59O1xyXG4iXX0=
@@ -8,10 +8,9 @@ import { MatIconModule } from '@angular/material/icon';
8
8
  import { MatMenuModule } from '@angular/material/menu';
9
9
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
10
10
  import { TranslateModule } from '@ngx-translate/core';
11
- import { ModeTogglerComponent, SortingListComponent, TableColumnsTogglerComponent, TableExportComponent } from './components';
12
- import { TextSearchComponent } from './components';
11
+ import { ModeTogglerComponent, SortingListComponent, TableColumnsTogglerComponent, TableExportComponent, TextSearchComponent } from './components';
13
12
  import { NdfTableComponent } from './containers';
14
- import { ActionsTableTemplateDirective, FilterCustomTemplateDirective, FluidHeightModule, SearchTableTemplateDirective } from './directives';
13
+ import { ActionsTableTemplateDirective, FilterCustomTemplateDirective, SearchTableTemplateDirective } from './directives';
15
14
  import { FiltersPanelModule } from './filters-panel';
16
15
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
17
16
  import { MatTooltipModule } from '@angular/material/tooltip';
@@ -19,6 +18,9 @@ import { DragDropModule } from '@angular/cdk/drag-drop';
19
18
  import { DynamicTableModule } from '../dynamic-table/';
20
19
  import { TableModule } from '../table';
21
20
  import { NoDataModule } from '../../no-data-found';
21
+ import { FluidHeightModule } from '../../../shared';
22
+ import { DirectiveModule } from '../../../directive/directive.module';
23
+ import { EditorNavigateButton } from '../../ndf-config-editor/public';
22
24
  import * as i0 from "@angular/core";
23
25
  const COMPONENTS = [
24
26
  NdfTableComponent,
@@ -51,7 +53,9 @@ NdfTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
51
53
  MatTooltipModule,
52
54
  TableModule,
53
55
  DragDropModule,
54
- NoDataModule], exports: [NdfTableComponent,
56
+ NoDataModule,
57
+ DirectiveModule,
58
+ EditorNavigateButton], exports: [NdfTableComponent,
55
59
  SortingListComponent,
56
60
  TableColumnsTogglerComponent,
57
61
  ModeTogglerComponent,
@@ -73,7 +77,9 @@ NdfTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
73
77
  MatTooltipModule,
74
78
  TableModule,
75
79
  DragDropModule,
76
- NoDataModule
80
+ NoDataModule,
81
+ DirectiveModule,
82
+ EditorNavigateButton
77
83
  ]] });
78
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfTableModule, decorators: [{
79
85
  type: NgModule,
@@ -96,9 +102,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
96
102
  MatTooltipModule,
97
103
  TableModule,
98
104
  DragDropModule,
99
- NoDataModule
105
+ NoDataModule,
106
+ DirectiveModule,
107
+ EditorNavigateButton
100
108
  ],
101
109
  exports: [COMPONENTS, DIRECTIVES]
102
110
  }]
103
111
  }] });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXRhYmxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL25kZi10YWJsZS9uZGYtdGFibGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQiw0QkFBNEIsRUFDNUIsb0JBQW9CLEVBQ3JCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUNMLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDN0IsaUJBQWlCLEVBQ2pCLDRCQUE0QixFQUM3QixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUU5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRW5ELE1BQU0sVUFBVSxHQUFHO0lBQ2pCLGlCQUFpQjtJQUNqQixvQkFBb0I7SUFDcEIsNEJBQTRCO0lBQzVCLG9CQUFvQjtJQUNwQixtQkFBbUI7Q0FDcEIsQ0FBQztBQUVGLE1BQU0sVUFBVSxHQUFHLENBQUMsNkJBQTZCLEVBQUUsNEJBQTRCLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztBQXlCaEgsTUFBTSxPQUFPLGNBQWM7OzRHQUFkLGNBQWM7NkdBQWQsY0FBYyxpQkFoQ3pCLGlCQUFpQjtRQUNqQixvQkFBb0I7UUFDcEIsNEJBQTRCO1FBQzVCLG9CQUFvQjtRQUNwQixtQkFBbUIsRUFHRCw2QkFBNkIsRUFBRSw0QkFBNEIsRUFBRSw2QkFBNkIsRUFHckUsb0JBQW9CLGFBRXpELFlBQVk7UUFDWixrQkFBa0I7UUFDbEIsa0JBQWtCO1FBQ2xCLGFBQWE7UUFDYixpQkFBaUI7UUFDakIsZUFBZTtRQUNmLGVBQWU7UUFDZixvQkFBb0I7UUFDcEIscUJBQXFCO1FBQ3JCLGFBQWE7UUFDYixtQkFBbUI7UUFDbkIsaUJBQWlCO1FBQ2pCLHdCQUF3QjtRQUN4QixnQkFBZ0I7UUFDaEIsV0FBVztRQUNYLGNBQWM7UUFDZCxZQUFZLGFBNUJkLGlCQUFpQjtRQUNqQixvQkFBb0I7UUFDcEIsNEJBQTRCO1FBQzVCLG9CQUFvQjtRQUNwQixtQkFBbUIsRUFHRCw2QkFBNkIsRUFBRSw0QkFBNEIsRUFBRSw2QkFBNkI7NkdBeUJqRyxjQUFjLFlBckJoQjtZQUNQLFlBQVk7WUFDWixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLGFBQWE7WUFDYixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLGVBQWU7WUFDZixvQkFBb0I7WUFDcEIscUJBQXFCO1lBQ3JCLGFBQWE7WUFDYixtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLHdCQUF3QjtZQUN4QixnQkFBZ0I7WUFDaEIsV0FBVztZQUNYLGNBQWM7WUFDZCxZQUFZO1NBQ2I7NEZBR1UsY0FBYztrQkF2QjFCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsQ0FBQztvQkFDNUQsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixxQkFBcUI7d0JBQ3JCLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLHdCQUF3Qjt3QkFDeEIsZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIE1vZGVUb2dnbGVyQ29tcG9uZW50LFxyXG4gIFNvcnRpbmdMaXN0Q29tcG9uZW50LFxyXG4gIFRhYmxlQ29sdW1uc1RvZ2dsZXJDb21wb25lbnQsXHJcbiAgVGFibGVFeHBvcnRDb21wb25lbnRcclxufSBmcm9tICcuL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBUZXh0U2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgTmRmVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRhaW5lcnMnO1xyXG5pbXBvcnQge1xyXG4gIEFjdGlvbnNUYWJsZVRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEZpbHRlckN1c3RvbVRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEZsdWlkSGVpZ2h0TW9kdWxlLFxyXG4gIFNlYXJjaFRhYmxlVGVtcGxhdGVEaXJlY3RpdmVcclxufSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xyXG5pbXBvcnQgeyBGaWx0ZXJzUGFuZWxNb2R1bGUgfSBmcm9tICcuL2ZpbHRlcnMtcGFuZWwnO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcclxuXHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgRHluYW1pY1RhYmxlTW9kdWxlIH0gZnJvbSAnLi4vZHluYW1pYy10YWJsZS8nO1xyXG5pbXBvcnQgeyBUYWJsZU1vZHVsZSB9IGZyb20gJy4uL3RhYmxlJztcclxuaW1wb3J0IHsgTm9EYXRhTW9kdWxlIH0gZnJvbSAnLi4vLi4vbm8tZGF0YS1mb3VuZCc7XHJcblxyXG5jb25zdCBDT01QT05FTlRTID0gW1xyXG4gIE5kZlRhYmxlQ29tcG9uZW50LFxyXG4gIFNvcnRpbmdMaXN0Q29tcG9uZW50LFxyXG4gIFRhYmxlQ29sdW1uc1RvZ2dsZXJDb21wb25lbnQsXHJcbiAgTW9kZVRvZ2dsZXJDb21wb25lbnQsXHJcbiAgVGV4dFNlYXJjaENvbXBvbmVudFxyXG5dO1xyXG5cclxuY29uc3QgRElSRUNUSVZFUyA9IFtBY3Rpb25zVGFibGVUZW1wbGF0ZURpcmVjdGl2ZSwgU2VhcmNoVGFibGVUZW1wbGF0ZURpcmVjdGl2ZSwgRmlsdGVyQ3VzdG9tVGVtcGxhdGVEaXJlY3RpdmVdO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtDT01QT05FTlRTLCBESVJFQ1RJVkVTLCBUYWJsZUV4cG9ydENvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRmlsdGVyc1BhbmVsTW9kdWxlLFxyXG4gICAgRHluYW1pY1RhYmxlTW9kdWxlLFxyXG4gICAgTWF0TWVudU1vZHVsZSxcclxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Ub2dnbGVNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEZsdWlkSGVpZ2h0TW9kdWxlLFxyXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIFRhYmxlTW9kdWxlLFxyXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgICBOb0RhdGFNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtDT01QT05FTlRTLCBESVJFQ1RJVkVTXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmRmVGFibGVNb2R1bGUge1xyXG59XHJcbiJdfQ==
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXRhYmxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL25kZi10YWJsZS9uZGYtdGFibGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQ04sb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQiw0QkFBNEIsRUFDNUIsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUNOLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDN0IsNEJBQTRCLEVBQzVCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRXRFLE1BQU0sVUFBVSxHQUFHO0lBQ2xCLGlCQUFpQjtJQUNqQixvQkFBb0I7SUFDcEIsNEJBQTRCO0lBQzVCLG9CQUFvQjtJQUNwQixtQkFBbUI7Q0FDbkIsQ0FBQztBQUVGLE1BQU0sVUFBVSxHQUFHLENBQUMsNkJBQTZCLEVBQUUsNEJBQTRCLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztBQTJCaEgsTUFBTSxPQUFPLGNBQWM7OzRHQUFkLGNBQWM7NkdBQWQsY0FBYyxpQkFsQzFCLGlCQUFpQjtRQUNqQixvQkFBb0I7UUFDcEIsNEJBQTRCO1FBQzVCLG9CQUFvQjtRQUNwQixtQkFBbUIsRUFHQSw2QkFBNkIsRUFBRSw0QkFBNEIsRUFBRSw2QkFBNkIsRUFHdEUsb0JBQW9CLGFBRTFELFlBQVk7UUFDWixrQkFBa0I7UUFDbEIsa0JBQWtCO1FBQ2xCLGFBQWE7UUFDYixpQkFBaUI7UUFDakIsZUFBZTtRQUNmLGVBQWU7UUFDZixvQkFBb0I7UUFDcEIscUJBQXFCO1FBQ3JCLGFBQWE7UUFDYixtQkFBbUI7UUFDbkIsaUJBQWlCO1FBQ2pCLHdCQUF3QjtRQUN4QixnQkFBZ0I7UUFDaEIsV0FBVztRQUNYLGNBQWM7UUFDZCxZQUFZO1FBQ1osZUFBZTtRQUNmLG9CQUFvQixhQTlCckIsaUJBQWlCO1FBQ2pCLG9CQUFvQjtRQUNwQiw0QkFBNEI7UUFDNUIsb0JBQW9CO1FBQ3BCLG1CQUFtQixFQUdBLDZCQUE2QixFQUFFLDRCQUE0QixFQUFFLDZCQUE2Qjs2R0EyQmpHLGNBQWMsWUF2QmpCO1lBQ1IsWUFBWTtZQUNaLGtCQUFrQjtZQUNsQixrQkFBa0I7WUFDbEIsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixlQUFlO1lBQ2YsZUFBZTtZQUNmLG9CQUFvQjtZQUNwQixxQkFBcUI7WUFDckIsYUFBYTtZQUNiLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsd0JBQXdCO1lBQ3hCLGdCQUFnQjtZQUNoQixXQUFXO1lBQ1gsY0FBYztZQUNkLFlBQVk7WUFDWixlQUFlO1lBQ2Ysb0JBQW9CO1NBQ3BCOzRGQUdXLGNBQWM7a0JBekIxQixRQUFRO21CQUFDO29CQUNULFlBQVksRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsb0JBQW9CLENBQUM7b0JBQzVELE9BQU8sRUFBRTt3QkFDUixZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQixhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQix3QkFBd0I7d0JBQ3hCLGdCQUFnQjt3QkFDaEIsV0FBVzt3QkFDWCxjQUFjO3dCQUNkLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixvQkFBb0I7cUJBQ3BCO29CQUNELE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZSc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbmltcG9ydCB7XHJcblx0TW9kZVRvZ2dsZXJDb21wb25lbnQsXHJcblx0U29ydGluZ0xpc3RDb21wb25lbnQsXHJcblx0VGFibGVDb2x1bW5zVG9nZ2xlckNvbXBvbmVudCxcclxuXHRUYWJsZUV4cG9ydENvbXBvbmVudCxcclxuXHRUZXh0U2VhcmNoQ29tcG9uZW50XHJcbn0gZnJvbSAnLi9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgTmRmVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRhaW5lcnMnO1xyXG5pbXBvcnQge1xyXG5cdEFjdGlvbnNUYWJsZVRlbXBsYXRlRGlyZWN0aXZlLFxyXG5cdEZpbHRlckN1c3RvbVRlbXBsYXRlRGlyZWN0aXZlLFxyXG5cdFNlYXJjaFRhYmxlVGVtcGxhdGVEaXJlY3RpdmVcclxufSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xyXG5pbXBvcnQgeyBGaWx0ZXJzUGFuZWxNb2R1bGUgfSBmcm9tICcuL2ZpbHRlcnMtcGFuZWwnO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcclxuXHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgRHluYW1pY1RhYmxlTW9kdWxlIH0gZnJvbSAnLi4vZHluYW1pYy10YWJsZS8nO1xyXG5pbXBvcnQgeyBUYWJsZU1vZHVsZSB9IGZyb20gJy4uL3RhYmxlJztcclxuaW1wb3J0IHsgTm9EYXRhTW9kdWxlIH0gZnJvbSAnLi4vLi4vbm8tZGF0YS1mb3VuZCc7XHJcbmltcG9ydCB7IEZsdWlkSGVpZ2h0TW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkJztcclxuaW1wb3J0IHsgRGlyZWN0aXZlTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2RpcmVjdGl2ZS5tb2R1bGUnO1xyXG5pbXBvcnQgeyBFZGl0b3JOYXZpZ2F0ZUJ1dHRvbiB9IGZyb20gJy4uLy4uL25kZi1jb25maWctZWRpdG9yL3B1YmxpYyc7XHJcblxyXG5jb25zdCBDT01QT05FTlRTID0gW1xyXG5cdE5kZlRhYmxlQ29tcG9uZW50LFxyXG5cdFNvcnRpbmdMaXN0Q29tcG9uZW50LFxyXG5cdFRhYmxlQ29sdW1uc1RvZ2dsZXJDb21wb25lbnQsXHJcblx0TW9kZVRvZ2dsZXJDb21wb25lbnQsXHJcblx0VGV4dFNlYXJjaENvbXBvbmVudFxyXG5dO1xyXG5cclxuY29uc3QgRElSRUNUSVZFUyA9IFtBY3Rpb25zVGFibGVUZW1wbGF0ZURpcmVjdGl2ZSwgU2VhcmNoVGFibGVUZW1wbGF0ZURpcmVjdGl2ZSwgRmlsdGVyQ3VzdG9tVGVtcGxhdGVEaXJlY3RpdmVdO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuXHRkZWNsYXJhdGlvbnM6IFtDT01QT05FTlRTLCBESVJFQ1RJVkVTLCBUYWJsZUV4cG9ydENvbXBvbmVudF0sXHJcblx0aW1wb3J0czogW1xyXG5cdFx0Q29tbW9uTW9kdWxlLFxyXG5cdFx0RmlsdGVyc1BhbmVsTW9kdWxlLFxyXG5cdFx0RHluYW1pY1RhYmxlTW9kdWxlLFxyXG5cdFx0TWF0TWVudU1vZHVsZSxcclxuXHRcdE1hdENoZWNrYm94TW9kdWxlLFxyXG5cdFx0VHJhbnNsYXRlTW9kdWxlLFxyXG5cdFx0TWF0QnV0dG9uTW9kdWxlLFxyXG5cdFx0TWF0U2xpZGVUb2dnbGVNb2R1bGUsXHJcblx0XHRNYXRCdXR0b25Ub2dnbGVNb2R1bGUsXHJcblx0XHRNYXRJY29uTW9kdWxlLFxyXG5cdFx0UmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuXHRcdEZsdWlkSGVpZ2h0TW9kdWxlLFxyXG5cdFx0TWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxyXG5cdFx0TWF0VG9vbHRpcE1vZHVsZSxcclxuXHRcdFRhYmxlTW9kdWxlLFxyXG5cdFx0RHJhZ0Ryb3BNb2R1bGUsXHJcblx0XHROb0RhdGFNb2R1bGUsXHJcblx0XHREaXJlY3RpdmVNb2R1bGUsXHJcblx0XHRFZGl0b3JOYXZpZ2F0ZUJ1dHRvblxyXG5cdF0sXHJcblx0ZXhwb3J0czogW0NPTVBPTkVOVFMsIERJUkVDVElWRVNdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZGZUYWJsZU1vZHVsZSB7fVxyXG4iXX0=
@@ -15,6 +15,9 @@ export class ComponentRegisterService {
15
15
  hasComponentById(id) {
16
16
  return !!this.getComponentById(id);
17
17
  }
18
+ getComponents() {
19
+ return this.components;
20
+ }
18
21
  }
19
22
  ComponentRegisterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ComponentRegisterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
20
23
  ComponentRegisterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ComponentRegisterService, providedIn: 'root' });
@@ -22,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
22
25
  type: Injectable,
23
26
  args: [{ providedIn: 'root' }]
24
27
  }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXJlZ2lzdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2V4dGVuc2lvbi9jb21wb25lbnQtcmVnaXN0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDOztBQU9qRCxNQUFNLE9BQU8sd0JBQXdCO0lBRHJDO1FBRUksZUFBVSxHQUFnQyxFQUFFLENBQUM7S0FlaEQ7SUFiRyxhQUFhLENBQUMsTUFBbUM7UUFDN0MsSUFBSSxNQUFNLEVBQUU7WUFDUixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDaEU7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUksRUFBVTtRQUMxQixPQUFpQixJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFVO1FBQ3ZCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDOztzSEFmUSx3QkFBd0I7MEhBQXhCLHdCQUF3QixjQURYLE1BQU07NEZBQ25CLHdCQUF3QjtrQkFEcEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25Db21wb25lbnQge1xyXG4gICAgZGF0YTogYW55O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50UmVnaXN0ZXJTZXJ2aWNlIHtcclxuICAgIGNvbXBvbmVudHM6IHsgW2tleTogc3RyaW5nXTogVHlwZTx7fT4gfSA9IHt9O1xyXG5cclxuICAgIHNldENvbXBvbmVudHModmFsdWVzOiB7IFtrZXk6IHN0cmluZ106IFR5cGU8e30+IH0pIHtcclxuICAgICAgICBpZiAodmFsdWVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50cyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuY29tcG9uZW50cywgdmFsdWVzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q29tcG9uZW50QnlJZDxUPihpZDogc3RyaW5nKTogVHlwZTxUPiB7XHJcbiAgICAgICAgcmV0dXJuIDxUeXBlPFQ+PiB0aGlzLmNvbXBvbmVudHNbaWRdO1xyXG4gICAgfVxyXG5cclxuICAgIGhhc0NvbXBvbmVudEJ5SWQoaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhIXRoaXMuZ2V0Q29tcG9uZW50QnlJZChpZCk7XHJcbiAgICB9XHJcbn0iXX0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXJlZ2lzdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2V4dGVuc2lvbi9jb21wb25lbnQtcmVnaXN0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDOztBQU9qRCxNQUFNLE9BQU8sd0JBQXdCO0lBRHJDO1FBRUMsZUFBVSxHQUFnQyxFQUFFLENBQUM7S0FtQjdDO0lBakJBLGFBQWEsQ0FBQyxNQUFtQztRQUNoRCxJQUFJLE1BQU0sRUFBRTtZQUNYLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUM3RDtJQUNGLENBQUM7SUFFRCxnQkFBZ0IsQ0FBSSxFQUFVO1FBQzdCLE9BQWdCLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQVU7UUFDMUIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxhQUFhO1FBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3hCLENBQUM7O3NIQW5CVyx3QkFBd0I7MEhBQXhCLHdCQUF3QixjQURYLE1BQU07NEZBQ25CLHdCQUF3QjtrQkFEcEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuc2lvbkNvbXBvbmVudCB7XHJcblx0ZGF0YTogYW55O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50UmVnaXN0ZXJTZXJ2aWNlIHtcclxuXHRjb21wb25lbnRzOiB7IFtrZXk6IHN0cmluZ106IFR5cGU8e30+IH0gPSB7fTtcclxuXHJcblx0c2V0Q29tcG9uZW50cyh2YWx1ZXM6IHsgW2tleTogc3RyaW5nXTogVHlwZTx7fT4gfSkge1xyXG5cdFx0aWYgKHZhbHVlcykge1xyXG5cdFx0XHR0aGlzLmNvbXBvbmVudHMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmNvbXBvbmVudHMsIHZhbHVlcyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRnZXRDb21wb25lbnRCeUlkPFQ+KGlkOiBzdHJpbmcpOiBUeXBlPFQ+IHtcclxuXHRcdHJldHVybiA8VHlwZTxUPj50aGlzLmNvbXBvbmVudHNbaWRdO1xyXG5cdH1cclxuXHJcblx0aGFzQ29tcG9uZW50QnlJZChpZDogc3RyaW5nKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gISF0aGlzLmdldENvbXBvbmVudEJ5SWQoaWQpO1xyXG5cdH1cclxuXHJcblx0Z2V0Q29tcG9uZW50cygpIHtcclxuXHRcdHJldHVybiB0aGlzLmNvbXBvbmVudHM7XHJcblx0fVxyXG59XHJcbiJdfQ==