nuxeo-development-framework 5.5.2 → 5.5.4

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 (40) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +372 -96
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/reports/charts/plugins/data-labels.js +3 -3
  4. package/esm2015/lib/components/reports/charts/utility/css.js +3 -3
  5. package/esm2015/lib/components/reports/ndf-reports/base/base-graph.report.js +6 -3
  6. package/esm2015/lib/components/reports/ndf-reports/base/base-report.js +2 -1
  7. package/esm2015/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.js +26 -4
  8. package/esm2015/lib/components/reports/ndf-reports/components/graph-report/graph-report.component.js +28 -4
  9. package/esm2015/lib/components/reports/ndf-reports/containers/ndf-report/ndf-report.component.js +7 -1
  10. package/esm2015/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.js +73 -22
  11. package/esm2015/lib/components/reports/ndf-reports/models/details.js +1 -1
  12. package/esm2015/lib/components/reports/ndf-reports/models/ndf-reports.config.js +1 -1
  13. package/esm2015/lib/components/reports/ndf-reports/ndf-reports.module.js +15 -3
  14. package/esm2015/lib/components/reports/ndf-reports/services/chart-theme.service.js +54 -0
  15. package/esm2015/lib/components/reports/ndf-reports/services/dynamic-timeline-report.service.js +1 -1
  16. package/esm2015/lib/components/reports/ndf-reports/services/index.js +3 -2
  17. package/esm2015/lib/components/reports/ndf-reports/services/report-config-mapper.service.js +21 -4
  18. package/esm2015/lib/components/reports/ndf-reports/services/report-configuration.service.js +41 -0
  19. package/esm2015/lib/components/reports/ndf-reports/utilities/dataset-colors.js +51 -0
  20. package/esm2015/lib/components/reports/ndf-reports/utilities/index.js +2 -1
  21. package/esm2015/lib/components/reports/ndf-reports/utilities/reports-table.mapper.js +7 -8
  22. package/fesm2015/nuxeo-development-framework.js +327 -84
  23. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  24. package/lib/components/reports/ndf-reports/base/base-graph.report.d.ts +5 -2
  25. package/lib/components/reports/ndf-reports/base/base-report.d.ts +2 -1
  26. package/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.d.ts +5 -2
  27. package/lib/components/reports/ndf-reports/components/graph-report/graph-report.component.d.ts +5 -1
  28. package/lib/components/reports/ndf-reports/containers/ndf-report/ndf-report.component.d.ts +3 -1
  29. package/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.d.ts +11 -7
  30. package/lib/components/reports/ndf-reports/models/details.d.ts +1 -1
  31. package/lib/components/reports/ndf-reports/models/ndf-reports.config.d.ts +0 -2
  32. package/lib/components/reports/ndf-reports/services/chart-theme.service.d.ts +14 -0
  33. package/lib/components/reports/ndf-reports/services/index.d.ts +2 -1
  34. package/lib/components/reports/ndf-reports/services/report-config-mapper.service.d.ts +1 -0
  35. package/lib/components/reports/ndf-reports/services/report-configuration.service.d.ts +14 -0
  36. package/lib/components/reports/ndf-reports/utilities/dataset-colors.d.ts +1 -0
  37. package/lib/components/reports/ndf-reports/utilities/index.d.ts +1 -0
  38. package/package.json +1 -1
  39. package/esm2015/lib/components/reports/ndf-reports/services/report-details.service.js +0 -29
  40. package/lib/components/reports/ndf-reports/services/report-details.service.d.ts +0 -12
@@ -30,7 +30,7 @@ export const slideAnimation = trigger('slideInOut', [
30
30
  transition('closed <=> open', animate('200ms ease-out'))
31
31
  ]);
32
32
  export class NdfReportsComponent extends DestroySubject {
33
- constructor(_translateService, _filtersMapper, _ndfReportsService, _chartHelperService, _transformService, _cdr, _filterQueryService, _stateService, _router, _ngZone) {
33
+ constructor(_translateService, _filtersMapper, _ndfReportsService, _chartHelperService, _transformService, _cdr, _filterQueryService, _stateService, _configurationService, _router, _ngZone) {
34
34
  super();
35
35
  this._translateService = _translateService;
36
36
  this._filtersMapper = _filtersMapper;
@@ -40,6 +40,7 @@ export class NdfReportsComponent extends DestroySubject {
40
40
  this._cdr = _cdr;
41
41
  this._filterQueryService = _filterQueryService;
42
42
  this._stateService = _stateService;
43
+ this._configurationService = _configurationService;
43
44
  this._router = _router;
44
45
  this._ngZone = _ngZone;
45
46
  this._isHeightUpdated = false;
@@ -72,9 +73,6 @@ export class NdfReportsComponent extends DestroySubject {
72
73
  get showDetails() {
73
74
  return !!this._reportDetailsSubject.getValue();
74
75
  }
75
- get config() {
76
- return this._configSubject.getValue();
77
- }
78
76
  get filtersConfig() {
79
77
  var _a;
80
78
  return (_a = this.config) === null || _a === void 0 ? void 0 : _a.filters;
@@ -84,21 +82,29 @@ export class NdfReportsComponent extends DestroySubject {
84
82
  return (_a = this.config) === null || _a === void 0 ? void 0 : _a.reports;
85
83
  }
86
84
  set config(config) {
87
- const value = _.cloneDeep(config);
88
- this._checkConfigChange(value);
89
- this._configSubject.next(value);
90
- if (value === null || value === void 0 ? void 0 : value.activeQuery) {
91
- this._updateActiveQuery(value === null || value === void 0 ? void 0 : value.activeQuery);
92
- this._filtersCriteriaSubject.next(this._prepareMappedQuery(value === null || value === void 0 ? void 0 : value.activeQuery, this.filtersConfig.mode));
93
- }
94
- this.isPanelOpened = false;
95
- this.isDetailsOpened = false;
96
- this._reportDetailsSubject.next(null);
85
+ this._config = config;
86
+ }
87
+ get config() {
88
+ return this._configSubject.getValue();
97
89
  }
98
90
  ngOnInit() {
99
91
  this.reportsData$ = this._prepareReports();
100
92
  this._handleKeyboardEvent();
101
93
  }
94
+ ngOnChanges(changes) {
95
+ var _a, _b;
96
+ const reportsKey = (_a = changes.reportsKey) === null || _a === void 0 ? void 0 : _a.currentValue;
97
+ const config = (_b = changes.config) === null || _b === void 0 ? void 0 : _b.currentValue;
98
+ if (reportsKey && config) {
99
+ throw new Error('You cannot set both reportsKey and reports Config at the same time.');
100
+ }
101
+ if (config) {
102
+ this._initReportsConfig(config);
103
+ }
104
+ if (reportsKey) {
105
+ this._loadReportsConfig(reportsKey);
106
+ }
107
+ }
102
108
  onNavigate(data) {
103
109
  var _a, _b, _c;
104
110
  const report = data === null || data === void 0 ? void 0 : data.report;
@@ -148,10 +154,33 @@ export class NdfReportsComponent extends DestroySubject {
148
154
  this.fluidDirective.scheduleSetHeight(100);
149
155
  }
150
156
  }
151
- openReportDetails(_, rConfig) {
152
- this._reportDetailsSubject.next({
153
- config: mapToNdfTableConfig(this.config, rConfig.details),
154
- label: rConfig.label
157
+ openReportDetails(criteriaModel, reportConfig) {
158
+ var _a, _b;
159
+ if (!((_a = reportConfig === null || reportConfig === void 0 ? void 0 : reportConfig.details) === null || _a === void 0 ? void 0 : _a.enabled)) {
160
+ return;
161
+ }
162
+ const source = (_b = reportConfig === null || reportConfig === void 0 ? void 0 : reportConfig.details) === null || _b === void 0 ? void 0 : _b.source;
163
+ const config$ = source && typeof source === 'string'
164
+ ? this._configurationService.getTableConfiguration(source).pipe(map((config) => {
165
+ return _.merge(config, {
166
+ options: {
167
+ filters: {
168
+ mode: 'payload',
169
+ fields: [],
170
+ panel: {
171
+ visible: false,
172
+ toggleButton: false
173
+ }
174
+ }
175
+ }
176
+ });
177
+ }))
178
+ : of(mapToNdfTableConfig(this.config, reportConfig.details));
179
+ config$.pipe(takeUntil(this.destroy$)).subscribe((config) => {
180
+ this._reportDetailsSubject.next({
181
+ config,
182
+ label: reportConfig.label
183
+ });
155
184
  });
156
185
  }
157
186
  closeDetailsPanel() {
@@ -244,9 +273,31 @@ export class NdfReportsComponent extends DestroySubject {
244
273
  const _a = this._configSubject.getValue() || {}, { activeQuery: aq } = _a, currentConfig = __rest(_a, ["activeQuery"]);
245
274
  this._isConfigChanged = !_.isEqual(currentConfig, config);
246
275
  }
276
+ _loadReportsConfig(key) {
277
+ this._configurationService
278
+ .getReportsConfiguration(key)
279
+ .pipe(takeUntil(this.destroy$))
280
+ .subscribe((config) => {
281
+ if (config) {
282
+ this._initReportsConfig(config);
283
+ }
284
+ });
285
+ }
286
+ _initReportsConfig(config) {
287
+ const value = _.cloneDeep(config);
288
+ this._checkConfigChange(value);
289
+ this._configSubject.next(value);
290
+ if (value === null || value === void 0 ? void 0 : value.activeQuery) {
291
+ this._updateActiveQuery(value === null || value === void 0 ? void 0 : value.activeQuery);
292
+ this._filtersCriteriaSubject.next(this._prepareMappedQuery(value === null || value === void 0 ? void 0 : value.activeQuery, this.filtersConfig.mode));
293
+ }
294
+ this.isPanelOpened = false;
295
+ this.isDetailsOpened = false;
296
+ this._reportDetailsSubject.next(null);
297
+ }
247
298
  }
248
- NdfReportsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsComponent, deps: [{ token: i1.TranslateService }, { token: i2.FiltersMapperService }, { token: i3.NdfReportsService }, { token: i3.ChartManagerService }, { token: i3.ReportTransformService }, { token: i0.ChangeDetectorRef }, { token: i2.FilterQueryService }, { token: i3.ReportsStateService }, { token: i4.Router }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
249
- NdfReportsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfReportsComponent, selector: "app-ndf-reports", inputs: { jsonEditorEnabled: "jsonEditorEnabled", reportsKey: "reportsKey", navigateRoute: "navigateRoute", config: "config" }, outputs: { onQueryChange: "onQueryChange" }, host: { properties: { "dir": "direction" }, classAttribute: "ndf-reports" }, viewQueries: [{ propertyName: "fluidDirective", first: true, predicate: FluidHeightDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n\t*ngIf=\"reportsData$ | async as reports\"\r\n\tclass=\"ndf-reports__container\"\r\n\t[class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n\t[dir]=\"direction\"\r\n\tndfFluidHeight\r\n>\r\n\t<div class=\"ndf-reports__panel print:hidden\" *ngIf=\"!!filtersConfig?.fields?.length\">\r\n\t\t<app-filters-panel\r\n\t\t\t[fields]=\"filtersConfig?.fields\"\r\n\t\t\t[aggregations]=\"aggregations\"\r\n\t\t\t(filterChanged)=\"filterChanged($event)\"\r\n\t\t\t[activeQuery]=\"activeFiltersQuery$ | async\"\r\n\t\t\tclass=\"ndf-reports__filters\"\r\n\t\t></app-filters-panel>\r\n\t</div>\r\n\r\n\t<div class=\"ndf-reports__content\" (scrolled)=\"onContentScroll($event)\">\r\n\t\t<div class=\"ndf-reports__header flex pt-4 print:hidden\">\r\n\t\t\t<button mat-stroked-button class=\"toggle-button\" (click)=\"togglePanel()\">\r\n\t\t\t\t<mat-icon> filter_alt</mat-icon>\r\n\t\t\t</button>\r\n\t\t\t<app-editor-button\r\n\t\t\t\t*ngIf=\"jsonEditorEnabled && reportsKey\"\r\n\t\t\t\t[key]=\"reportsKey\"\r\n\t\t\t\t[type]=\"editorType\"\r\n\t\t\t></app-editor-button>\r\n\t\t\t<button mat-stroked-button *ngIf=\"config?.options?.print\" class=\"print-button\" (click)=\"printAll()\">\r\n\t\t\t\t<mat-icon> print</mat-icon>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<mat-spinner *ngIf=\"isLoadingResult\" class=\"mt-5 mx-auto\" [diameter]=\"48\"></mat-spinner>\r\n\r\n\t\t<div class=\"reports-grid\" *ngIf=\"!isLoadingResult\">\r\n\t\t\t<app-ndf-report\r\n\t\t\t\t*ngFor=\"let config of reportConfig.items; trackBy: trackByFn\"\r\n\t\t\t\t[config]=\"config\"\r\n\t\t\t\t[data]=\"reports?.response\"\r\n\t\t\t\t[criteria]=\"filtersParams$ | async\"\r\n\t\t\t\t[direction]=\"direction\"\r\n\t\t\t\t[attr.data-width]=\"config?.layout?.width || 4\"\r\n\t\t\t\t[attr.data-height]=\"config?.layout?.height || 'auto'\"\r\n\t\t\t\t[attr.data-start-column]=\"config?.layout?.columnPosition || 'auto'\"\r\n\t\t\t\t[attr.data-start-row]=\"config?.layout?.rowPosition || 'auto'\"\r\n\t\t\t\t[class.wide]=\"config?.layout?.width >= 6\"\r\n\t\t\t\tclass=\"reports-grid__item {{ config?.layout?.styleClass }} \"\r\n\t\t\t\t(onNavigate)=\"onNavigate($event)\"\r\n\t\t\t\t(onOpen)=\"openReportDetails($event, config)\"\r\n\t\t\t></app-ndf-report>\r\n\t\t</div>\r\n\t</div>\r\n\t<div\r\n\t\tclass=\"ndf-reports__details print:hidden\"\r\n\t\t[class.opened]=\"showDetails\"\r\n\t\t[@slideInOut]=\"showDetails ? 'open' : 'closed'\"\r\n\t\t(@slideInOut.done)=\"onDetailsAnimationEnd($event)\"\r\n\t>\r\n\t\t<app-ndf-table\r\n\t\t\t*ngIf=\"reportDetails$ | async as report\"\r\n\t\t\t[config]=\"report.config\"\r\n\t\t\t[activeQuery]=\"activeFiltersQuery$ | async\"\r\n\t\t\t[customCriteria]=\"filtersParams$ | async\"\r\n\t\t>\r\n\t\t\t<ng-template searchTableTemplate>\r\n\t\t\t\t<div class=\"ndf-reports__details__header flex gap-2\">\r\n\t\t\t\t\t<button mat-stroked-button 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<button mat-stroked-button class=\"close-button\" (click)=\"closeDetailsPanel()\">\r\n\t\t\t\t\t\t<mat-icon> close</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t\t<h3>\r\n\t\t\t\t\t{{ report.label | translate }}\r\n\t\t\t\t</h3>\r\n\t\t\t</ng-template>\r\n\t\t</app-ndf-table>\r\n\t</div>\r\n</div>\r\n", styles: [":host{padding-inline:var(--ndf-reports-inline-padding, 0);padding-block:var(--ndf-reports-block-padding, .5rem 0);height:100%;position:relative;display:flex;flex-direction:column;background-color:var(--ndf-reports-background, #fff);box-sizing:border-box;max-width:100%;flex:0 0 100%}:host:before,:host:after{box-sizing:border-box}:host[dir=ltr]{--ndf-reports-panel-translateX: -100%;--ndf-reports-details-translateX: 100%}.ndf-reports__header{background-color:var(--ndf-reports-background, #fff);flex-direction:var(--ndf-reports-header-direction, row);justify-content:var(--ndf-reports-header-justify, space-between);align-items:var(--ndf-reports-header-items, center);padding-inline:var(--ndf-reports-header-padding-inline, .5rem);padding-block:var(--ndf-reports-header-padding-block, 0 .5rem);position:var(--ndf-reports-header-position, sticky);top:0;z-index:1}.ndf-reports__header__actions{justify-content:var(--ndf-reports-actions-justify, flex-end)}.ndf-reports__header__custom-actions .toggle-button{min-width:0;padding:0 10px}.ndf-reports__container{--panel-width: var(--ndf-reports-panel-width, 18rem);position:relative;overflow:var(--ndf-reports-container-overflow, hidden);display:grid;transition:all .2s;max-width:100%;width:100%;height:var(--ndf-reports-height, calc(var(--ndf-fluid-height) - calc(var(--ndf-reports-block-padding, 1rem) * 2.5)));flex-grow:1;grid-gap:var(--ndf-table-container-gap, .5rem);gap:var(--ndf-table-container-gap, .5rem)}.ndf-reports__container.panel-opened{--ndf-details-margin: var(--panel-width);--ndf-reports-panel-translateX: 0;--ndf-reports-content-margin: var(--panel-width)}@media print{.ndf-reports__container{--ndf-reports-container-overflow: visible;height:100%}}.ndf-reports__panel,.ndf-reports__content .ndf-reports__details{overflow:auto;transition:all .2s}.ndf-reports__panel{position:absolute;width:var(--panel-width);height:100%;transform:translate(var(--ndf-reports-panel-translateX, 100%));padding-inline:var(--ndf-reports-panel-inline-padding, .5rem);padding-block:var(--ndf-reports-panel-block-padding, .5rem);background:var(--ndf-reports-panel-background, #fff);z-index:1}.ndf-reports__content{flex-grow:1;padding-inline-start:var(--ndf-reports-content-margin, 1rem);padding-inline-end:var(--ndf-reports-content-pie, 1rem);padding-block:var(--ndf-reports-content-pb, 0 1rem);overflow-y:var(--ndf-reports-content-overflow-y, auto);position:relative;display:flex;flex-direction:column}@media print{.ndf-reports__content{--ndf-reports-content-overflow-y: visible}}.ndf-reports__details{position:absolute;inset-inline-end:0;width:calc(100% - var(--ndf-details-margin, 0px));height:100%;transform:translate(var(--ndf-reports-details-translateX, -100%));padding-inline:var(--ndf-reports-details-inline-padding, 0rem);flex-grow:1;padding-block:var(--ndf-reports-details-block-padding, 0rem);background:var(--ndf-reports-details-background, #fff);z-index:1;transition:all .2s}.reports-grid{--grid-columns: 12;--column-width: calc(100% / var(--grid-columns));display:grid;grid-gap:var(--reports-grid-gap, 1.5rem);gap:var(--reports-grid-gap, 1.5rem);grid-template-columns:var(--rg-columns, repeat(var(--grid-columns), 1fr));margin-block:var(--reports-grid-margin-block, 1.25rem 0);padding-inline:var(--reports-grid-padding-inline, .5rem)}.reports-grid__item{display:grid;grid-gap:.3rem;gap:.3rem;min-width:0;text-align:center;vertical-align:middle}.reports-grid__item[data-width=\"1\"]{--col-span: span 1}.reports-grid__item[data-start-column=\"1\"]{--col-start: 1}.reports-grid__item[data-start-row=\"1\"]{--row-start: 1}.reports-grid__item[data-height=\"1\"]{--row-span: 1}.reports-grid__item[data-width=\"2\"]{--col-span: span 2}.reports-grid__item[data-start-column=\"2\"]{--col-start: 2}.reports-grid__item[data-start-row=\"2\"]{--row-start: 2}.reports-grid__item[data-height=\"2\"]{--row-span: 2}.reports-grid__item[data-width=\"3\"]{--col-span: span 3}.reports-grid__item[data-start-column=\"3\"]{--col-start: 3}.reports-grid__item[data-start-row=\"3\"]{--row-start: 3}.reports-grid__item[data-height=\"3\"]{--row-span: 3}.reports-grid__item[data-width=\"4\"]{--col-span: span 4}.reports-grid__item[data-start-column=\"4\"]{--col-start: 4}.reports-grid__item[data-start-row=\"4\"]{--row-start: 4}.reports-grid__item[data-height=\"4\"]{--row-span: 4}.reports-grid__item[data-width=\"5\"]{--col-span: span 5}.reports-grid__item[data-start-column=\"5\"]{--col-start: 5}.reports-grid__item[data-start-row=\"5\"]{--row-start: 5}.reports-grid__item[data-height=\"5\"]{--row-span: 5}.reports-grid__item[data-width=\"6\"]{--col-span: span 6}.reports-grid__item[data-start-column=\"6\"]{--col-start: 6}.reports-grid__item[data-start-row=\"6\"]{--row-start: 6}.reports-grid__item[data-height=\"6\"]{--row-span: 6}.reports-grid__item[data-width=\"7\"]{--col-span: span 7}.reports-grid__item[data-start-column=\"7\"]{--col-start: 7}.reports-grid__item[data-start-row=\"7\"]{--row-start: 7}.reports-grid__item[data-height=\"7\"]{--row-span: 7}.reports-grid__item[data-width=\"8\"]{--col-span: span 8}.reports-grid__item[data-start-column=\"8\"]{--col-start: 8}.reports-grid__item[data-start-row=\"8\"]{--row-start: 8}.reports-grid__item[data-height=\"8\"]{--row-span: 8}.reports-grid__item[data-width=\"9\"]{--col-span: span 9}.reports-grid__item[data-start-column=\"9\"]{--col-start: 9}.reports-grid__item[data-start-row=\"9\"]{--row-start: 9}.reports-grid__item[data-height=\"9\"]{--row-span: 9}.reports-grid__item[data-width=\"10\"]{--col-span: span 10}.reports-grid__item[data-start-column=\"10\"]{--col-start: 10}.reports-grid__item[data-start-row=\"10\"]{--row-start: 10}.reports-grid__item[data-height=\"10\"]{--row-span: 10}.reports-grid__item[data-width=\"11\"]{--col-span: span 11}.reports-grid__item[data-start-column=\"11\"]{--col-start: 11}.reports-grid__item[data-start-row=\"11\"]{--row-start: 11}.reports-grid__item[data-height=\"11\"]{--row-span: 11}.reports-grid__item[data-width=\"12\"]{--col-span: span 12}.reports-grid__item[data-start-column=\"12\"]{--col-start: 12}.reports-grid__item[data-start-row=\"12\"]{--row-start: 12}.reports-grid__item[data-height=\"12\"]{--row-span: 12}@media screen{.reports-grid__item{grid-column:var(--col-start, auto)/var(--col-span, span var(--grid-column, 2));grid-row:var(--row-start, auto)/span var(--row-span, 1);grid-template-rows:subgrid}}@media print{.reports-grid{--reports-grid-gap: 11mm;--reports-grid-margin-top: 9mm;--rg-columns: repeat(2, 1fr)}.reports-grid__item{--col-start: auto;--col-span: span 1;border:1px solid #f5f5f5;border-radius:var(--cp-radius, 1rem);page-break-inside:avoid;break-inside:avoid-page}}@media screen and (max-width: 1199px){.reports-grid__item[data-width=\"1\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"2\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"3\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"4\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"5\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"6\"]{--col-start: auto;--col-span: span 6}.reports-grid__item.wide{--col-start: 1;--col-span: -1}}@media screen and (max-width: 767px){.reports-grid__item[data-width]{--col-start: 1;--col-span: -1}}\n"], components: [{ type: i5.FiltersPanelComponent, selector: "app-filters-panel", inputs: ["aggregations", "fields", "activeQuery"], outputs: ["filterChanged"] }, { type: i6.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: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i8.EditorButtonComponent, selector: "app-editor-button", inputs: ["type", "key"] }, { type: i9.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: i10.NdfReportComponent, selector: "app-ndf-report", inputs: ["config", "direction", "data", "criteria"], outputs: ["onNavigate", "onOpen"] }, { type: i11.NdfTableComponent, selector: "app-ndf-table", inputs: ["rows", "totalRecords", "autoCalculateHeight", "emptyMessage", "activeQuery", "configPath", "configTransformer", "tableKey", "jsonEditorEnabled", "config", "customCriteria", "searchTerm"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "onPage", "onInitialized", "onLoaded", "onQueryChange", "onSort"] }], directives: [{ type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i13.FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "cssVar", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { type: i14.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i15.ScrollableDivDirective, selector: "[scrolled]", inputs: ["scrollTop"], outputs: ["scrolled"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i16.SearchTableTemplateDirective, selector: "[searchTableTemplate]" }], pipes: { "async": i12.AsyncPipe, "translate": i1.TranslatePipe }, animations: [slideAnimation] });
299
+ NdfReportsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsComponent, deps: [{ token: i1.TranslateService }, { token: i2.FiltersMapperService }, { token: i3.NdfReportsService }, { token: i3.ChartManagerService }, { token: i3.ReportTransformService }, { token: i0.ChangeDetectorRef }, { token: i2.FilterQueryService }, { token: i3.ReportsStateService }, { token: i3.ReportConfigurationService }, { token: i4.Router }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
300
+ NdfReportsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfReportsComponent, selector: "app-ndf-reports", inputs: { jsonEditorEnabled: "jsonEditorEnabled", reportsKey: "reportsKey", navigateRoute: "navigateRoute", config: "config" }, outputs: { onQueryChange: "onQueryChange" }, host: { properties: { "dir": "direction" }, classAttribute: "ndf-reports" }, viewQueries: [{ propertyName: "fluidDirective", first: true, predicate: FluidHeightDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n\t*ngIf=\"reportsData$ | async as reports\"\r\n\tclass=\"ndf-reports__container\"\r\n\t[class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n\t[dir]=\"direction\"\r\n\tndfFluidHeight\r\n>\r\n\t<div class=\"ndf-reports__panel print:hidden\" *ngIf=\"!!filtersConfig?.fields?.length\">\r\n\t\t<app-filters-panel\r\n\t\t\t[fields]=\"filtersConfig?.fields\"\r\n\t\t\t[aggregations]=\"aggregations\"\r\n\t\t\t(filterChanged)=\"filterChanged($event)\"\r\n\t\t\t[activeQuery]=\"activeFiltersQuery$ | async\"\r\n\t\t\tclass=\"ndf-reports__filters\"\r\n\t\t></app-filters-panel>\r\n\t</div>\r\n\r\n\t<div class=\"ndf-reports__content\" (scrolled)=\"onContentScroll($event)\">\r\n\t\t<div class=\"ndf-reports__header flex pt-4 print:hidden\">\r\n\t\t\t<button mat-stroked-button class=\"toggle-button\" (click)=\"togglePanel()\">\r\n\t\t\t\t<mat-icon> filter_alt</mat-icon>\r\n\t\t\t</button>\r\n\t\t\t<app-editor-button\r\n\t\t\t\t*ngIf=\"jsonEditorEnabled && reportsKey\"\r\n\t\t\t\t[key]=\"reportsKey\"\r\n\t\t\t\t[type]=\"editorType\"\r\n\t\t\t></app-editor-button>\r\n\t\t\t<button mat-stroked-button *ngIf=\"config?.options?.print\" class=\"print-button\" (click)=\"printAll()\">\r\n\t\t\t\t<mat-icon> print</mat-icon>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<mat-spinner *ngIf=\"isLoadingResult\" class=\"mt-5 mx-auto\" [diameter]=\"48\"></mat-spinner>\r\n\r\n\t\t<div class=\"reports-grid\" *ngIf=\"!isLoadingResult\">\r\n\t\t\t<app-ndf-report\r\n\t\t\t\t*ngFor=\"let config of reportConfig.items; trackBy: trackByFn\"\r\n\t\t\t\t[config]=\"config\"\r\n\t\t\t\t[data]=\"reports?.response\"\r\n\t\t\t\t[criteria]=\"filtersParams$ | async\"\r\n\t\t\t\t[direction]=\"direction\"\r\n\t\t\t\t[attr.data-width]=\"config?.layout?.width || 4\"\r\n\t\t\t\t[attr.data-height]=\"config?.layout?.height || 'auto'\"\r\n\t\t\t\t[attr.data-start-column]=\"config?.layout?.columnPosition || 'auto'\"\r\n\t\t\t\t[attr.data-start-row]=\"config?.layout?.rowPosition || 'auto'\"\r\n\t\t\t\t[class.wide]=\"config?.layout?.width >= 6\"\r\n\t\t\t\tclass=\"reports-grid__item {{ config?.layout?.styleClass }} \"\r\n\t\t\t\t(onNavigate)=\"onNavigate($event)\"\r\n\t\t\t\t(onOpen)=\"openReportDetails($event, config)\"\r\n\t\t\t></app-ndf-report>\r\n\t\t</div>\r\n\t</div>\r\n\t<div\r\n\t\tclass=\"ndf-reports__details print:hidden\"\r\n\t\t[class.opened]=\"showDetails\"\r\n\t\t[@slideInOut]=\"showDetails ? 'open' : 'closed'\"\r\n\t\t(@slideInOut.done)=\"onDetailsAnimationEnd($event)\"\r\n\t>\r\n\t\t<app-ndf-table\r\n\t\t\t*ngIf=\"reportDetails$ | async as report\"\r\n\t\t\t[config]=\"report.config\"\r\n\t\t\t[activeQuery]=\"activeFiltersQuery$ | async\"\r\n\t\t\t[customCriteria]=\"filtersParams$ | async\"\r\n\t\t>\r\n\t\t\t<ng-template searchTableTemplate>\r\n\t\t\t\t<div class=\"ndf-reports__details__header flex gap-2\">\r\n\t\t\t\t\t<button mat-stroked-button 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<button mat-stroked-button class=\"close-button\" (click)=\"closeDetailsPanel()\">\r\n\t\t\t\t\t\t<mat-icon> close</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t\t<h3>\r\n\t\t\t\t\t{{ report.label | translate }}\r\n\t\t\t\t</h3>\r\n\t\t\t</ng-template>\r\n\t\t</app-ndf-table>\r\n\t</div>\r\n</div>\r\n", styles: [":host{padding-inline:var(--ndf-reports-inline-padding, 0);padding-block:var(--ndf-reports-block-padding, .5rem 0);height:100%;position:relative;display:flex;flex-direction:column;background-color:var(--ndf-reports-background, #fff);box-sizing:border-box;max-width:100%;flex:0 0 100%}:host:before,:host:after{box-sizing:border-box}:host[dir=ltr]{--ndf-reports-panel-translateX: -100%;--ndf-reports-details-translateX: 100%}.ndf-reports__header{background-color:var(--ndf-reports-background, #fff);flex-direction:var(--ndf-reports-header-direction, row);justify-content:var(--ndf-reports-header-justify, space-between);align-items:var(--ndf-reports-header-items, center);padding-inline:var(--ndf-reports-header-padding-inline, .5rem);padding-block:var(--ndf-reports-header-padding-block, 0 .5rem);position:var(--ndf-reports-header-position, sticky);top:0;z-index:1}.ndf-reports__header__actions{justify-content:var(--ndf-reports-actions-justify, flex-end)}.ndf-reports__header__custom-actions .toggle-button{min-width:0;padding:0 10px}.ndf-reports__container{--panel-width: var(--ndf-reports-panel-width, 18rem);position:relative;overflow:var(--ndf-reports-container-overflow, hidden);display:grid;transition:all .2s;max-width:100%;width:100%;height:var(--ndf-reports-height, calc(var(--ndf-fluid-height) - calc(var(--ndf-reports-block-padding, 1rem) * 2.5)));flex-grow:1;grid-gap:var(--ndf-table-container-gap, .5rem);gap:var(--ndf-table-container-gap, .5rem)}.ndf-reports__container.panel-opened{--ndf-details-margin: var(--panel-width);--ndf-reports-panel-translateX: 0;--ndf-reports-content-margin: var(--panel-width)}@media print{.ndf-reports__container{--ndf-reports-container-overflow: visible;height:100%}}.ndf-reports__panel,.ndf-reports__content .ndf-reports__details{overflow:auto;transition:all .2s}.ndf-reports__panel{position:absolute;width:var(--panel-width);height:100%;transform:translate(var(--ndf-reports-panel-translateX, 100%));padding-inline:var(--ndf-reports-panel-inline-padding, .5rem);padding-block:var(--ndf-reports-panel-block-padding, .5rem);background:var(--ndf-reports-panel-background, #fff);z-index:1}.ndf-reports__content{flex-grow:1;padding-inline-start:var(--ndf-reports-content-margin, 1rem);padding-inline-end:var(--ndf-reports-content-pie, 1rem);padding-block:var(--ndf-reports-content-pb, 0 1rem);overflow-y:var(--ndf-reports-content-overflow-y, auto);position:relative;display:flex;flex-direction:column}@media print{.ndf-reports__content{--ndf-reports-content-overflow-y: visible}}.ndf-reports__details{position:absolute;inset-inline-end:0;width:calc(100% - var(--ndf-details-margin, 0px));height:100%;transform:translate(var(--ndf-reports-details-translateX, -100%));padding-inline:var(--ndf-reports-details-inline-padding, 0rem);flex-grow:1;padding-block:var(--ndf-reports-details-block-padding, 0rem);background:var(--ndf-reports-details-background, #fff);z-index:1;transition:all .2s}.reports-grid{--grid-columns: 12;--column-width: calc(100% / var(--grid-columns));display:grid;grid-gap:var(--reports-grid-gap, 1.5rem);gap:var(--reports-grid-gap, 1.5rem);grid-template-columns:var(--rg-columns, repeat(var(--grid-columns), 1fr));margin-block:var(--reports-grid-margin-block, 1.25rem 0);padding-inline:var(--reports-grid-padding-inline, .5rem)}.reports-grid__item{display:grid;grid-gap:.3rem;gap:.3rem;min-width:0;text-align:center;vertical-align:middle}.reports-grid__item[data-width=\"1\"]{--col-span: span 1}.reports-grid__item[data-start-column=\"1\"]{--col-start: 1}.reports-grid__item[data-start-row=\"1\"]{--row-start: 1}.reports-grid__item[data-height=\"1\"]{--row-span: 1}.reports-grid__item[data-width=\"2\"]{--col-span: span 2}.reports-grid__item[data-start-column=\"2\"]{--col-start: 2}.reports-grid__item[data-start-row=\"2\"]{--row-start: 2}.reports-grid__item[data-height=\"2\"]{--row-span: 2}.reports-grid__item[data-width=\"3\"]{--col-span: span 3}.reports-grid__item[data-start-column=\"3\"]{--col-start: 3}.reports-grid__item[data-start-row=\"3\"]{--row-start: 3}.reports-grid__item[data-height=\"3\"]{--row-span: 3}.reports-grid__item[data-width=\"4\"]{--col-span: span 4}.reports-grid__item[data-start-column=\"4\"]{--col-start: 4}.reports-grid__item[data-start-row=\"4\"]{--row-start: 4}.reports-grid__item[data-height=\"4\"]{--row-span: 4}.reports-grid__item[data-width=\"5\"]{--col-span: span 5}.reports-grid__item[data-start-column=\"5\"]{--col-start: 5}.reports-grid__item[data-start-row=\"5\"]{--row-start: 5}.reports-grid__item[data-height=\"5\"]{--row-span: 5}.reports-grid__item[data-width=\"6\"]{--col-span: span 6}.reports-grid__item[data-start-column=\"6\"]{--col-start: 6}.reports-grid__item[data-start-row=\"6\"]{--row-start: 6}.reports-grid__item[data-height=\"6\"]{--row-span: 6}.reports-grid__item[data-width=\"7\"]{--col-span: span 7}.reports-grid__item[data-start-column=\"7\"]{--col-start: 7}.reports-grid__item[data-start-row=\"7\"]{--row-start: 7}.reports-grid__item[data-height=\"7\"]{--row-span: 7}.reports-grid__item[data-width=\"8\"]{--col-span: span 8}.reports-grid__item[data-start-column=\"8\"]{--col-start: 8}.reports-grid__item[data-start-row=\"8\"]{--row-start: 8}.reports-grid__item[data-height=\"8\"]{--row-span: 8}.reports-grid__item[data-width=\"9\"]{--col-span: span 9}.reports-grid__item[data-start-column=\"9\"]{--col-start: 9}.reports-grid__item[data-start-row=\"9\"]{--row-start: 9}.reports-grid__item[data-height=\"9\"]{--row-span: 9}.reports-grid__item[data-width=\"10\"]{--col-span: span 10}.reports-grid__item[data-start-column=\"10\"]{--col-start: 10}.reports-grid__item[data-start-row=\"10\"]{--row-start: 10}.reports-grid__item[data-height=\"10\"]{--row-span: 10}.reports-grid__item[data-width=\"11\"]{--col-span: span 11}.reports-grid__item[data-start-column=\"11\"]{--col-start: 11}.reports-grid__item[data-start-row=\"11\"]{--row-start: 11}.reports-grid__item[data-height=\"11\"]{--row-span: 11}.reports-grid__item[data-width=\"12\"]{--col-span: span 12}.reports-grid__item[data-start-column=\"12\"]{--col-start: 12}.reports-grid__item[data-start-row=\"12\"]{--row-start: 12}.reports-grid__item[data-height=\"12\"]{--row-span: 12}@media screen{.reports-grid__item{grid-column:var(--col-start, auto)/var(--col-span, span var(--grid-column, 2));grid-row:var(--row-start, auto)/span var(--row-span, 1);grid-template-rows:subgrid}}@media print{.reports-grid{--reports-grid-gap: 11mm;--reports-grid-margin-top: 9mm;--rg-columns: repeat(2, 1fr)}.reports-grid__item{--col-start: auto;--col-span: span 1;border:1px solid #f5f5f5;border-radius:var(--cp-radius, 1rem);page-break-inside:avoid;break-inside:avoid-page}}@media screen and (max-width: 1199px){.reports-grid__item[data-width=\"1\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"2\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"3\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"4\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"5\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"6\"]{--col-start: auto;--col-span: span 6}.reports-grid__item.wide{--col-start: 1;--col-span: -1}}@media screen and (max-width: 767px){.reports-grid__item[data-width]{--col-start: 1;--col-span: -1}}\n"], components: [{ type: i5.FiltersPanelComponent, selector: "app-filters-panel", inputs: ["aggregations", "fields", "activeQuery"], outputs: ["filterChanged"] }, { type: i6.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: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i8.EditorButtonComponent, selector: "app-editor-button", inputs: ["type", "key"] }, { type: i9.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: i10.NdfReportComponent, selector: "app-ndf-report", inputs: ["config", "direction", "data", "criteria"], outputs: ["onNavigate", "onOpen"] }, { type: i11.NdfTableComponent, selector: "app-ndf-table", inputs: ["rows", "totalRecords", "autoCalculateHeight", "emptyMessage", "activeQuery", "configPath", "configTransformer", "tableKey", "jsonEditorEnabled", "config", "customCriteria", "searchTerm"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "onPage", "onInitialized", "onLoaded", "onQueryChange", "onSort"] }], directives: [{ type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i13.FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "cssVar", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { type: i14.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i15.ScrollableDivDirective, selector: "[scrolled]", inputs: ["scrollTop"], outputs: ["scrolled"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i16.SearchTableTemplateDirective, selector: "[searchTableTemplate]" }], pipes: { "async": i12.AsyncPipe, "translate": i1.TranslatePipe }, animations: [slideAnimation] });
250
301
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsComponent, decorators: [{
251
302
  type: Component,
252
303
  args: [{
@@ -259,7 +310,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
259
310
  },
260
311
  animations: [slideAnimation]
261
312
  }]
262
- }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.FiltersMapperService }, { type: i3.NdfReportsService }, { type: i3.ChartManagerService }, { type: i3.ReportTransformService }, { type: i0.ChangeDetectorRef }, { type: i2.FilterQueryService }, { type: i3.ReportsStateService }, { type: i4.Router }, { type: i0.NgZone }]; }, propDecorators: { fluidDirective: [{
313
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.FiltersMapperService }, { type: i3.NdfReportsService }, { type: i3.ChartManagerService }, { type: i3.ReportTransformService }, { type: i0.ChangeDetectorRef }, { type: i2.FilterQueryService }, { type: i3.ReportsStateService }, { type: i3.ReportConfigurationService }, { type: i4.Router }, { type: i0.NgZone }]; }, propDecorators: { fluidDirective: [{
263
314
  type: ViewChild,
264
315
  args: [FluidHeightDirective]
265
316
  }], jsonEditorEnabled: [{
@@ -273,4 +324,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
273
324
  }], onQueryChange: [{
274
325
  type: Output
275
326
  }] } });
276
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXJlcG9ydHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL2NvbnRhaW5lcnMvbmRmLXJlcG9ydHMvbmRmLXJlcG9ydHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL2NvbnRhaW5lcnMvbmRmLXJlcG9ydHMvbmRmLXJlcG9ydHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQWtCLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWpHLE9BQU8sRUFFTixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBYyxFQUFFLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBYXhHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FB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QyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0QsQ0FBQzs7aUhBL1FXLG1CQUFtQjtxR0FBbkIsbUJBQW1CLGlXQUNwQixvQkFBb0IsdUVDbkRoQywrdUdBK0VBLDJyU0QvQmEsQ0FBQyxjQUFjLENBQUM7NEZBRWhCLG1CQUFtQjtrQkFWL0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixXQUFXLEVBQUUsOEJBQThCO29CQUMzQyxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztvQkFDM0MsSUFBSSxFQUFFO3dCQUNMLEtBQUssRUFBRSxhQUFhO3dCQUNwQixPQUFPLEVBQUUsV0FBVztxQkFDcEI7b0JBQ0QsVUFBVSxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUM1Qjs4WEFFaUMsY0FBYztzQkFBOUMsU0FBUzt1QkFBQyxvQkFBb0I7Z0JBNEN0QixpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUlPLE1BQU07c0JBQWxCLEtBQUs7Z0JBY0ksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIEFuaW1hdGlvbkV2ZW50LCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5pbXBvcnQge1xyXG5cdENoYW5nZURldGVjdG9yUmVmLFxyXG5cdENvbXBvbmVudCxcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0SW5wdXQsXHJcblx0Tmdab25lLFxyXG5cdE9uRGVzdHJveSxcclxuXHRPbkluaXQsXHJcblx0T3V0cHV0LFxyXG5cdFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IERlc3Ryb3lTdWJqZWN0LCBGbHVpZEhlaWdodERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZm9ya0pvaW4sIGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgZmluYWxpemUsIG1hcCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEFwaVJlc3BvbnNlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IE5kZlRhYmxlQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vdGFibGVzJztcclxuaW1wb3J0IHtcclxuXHRBZ2dyZWdhdGlvblJlc3BvbnNlLFxyXG5cdEZpZWxkQ29uZmlnTW9kZWwsXHJcblx0RmlsdGVyUXVlcnlTZXJ2aWNlLFxyXG5cdEZpbHRlcnNNYXBwZXJTZXJ2aWNlLFxyXG5cdEZvcm1RdWVyeU1vZGVsXHJcbn0gZnJvbSAnLi4vLi4vLi4vLi4vbmRmLWZpbHRlcnMnO1xyXG5pbXBvcnQgeyBDcml0ZXJpYU1vZGVsLCBOZGZSZXBvcnRzQ29uZmlnLCBSZXBvcnRDb25maWdNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IENoYXJ0TWFuYWdlclNlcnZpY2UsIE5kZlJlcG9ydHNTZXJ2aWNlLCBSZXBvcnRzU3RhdGVTZXJ2aWNlLCBSZXBvcnRUcmFuc2Zvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBtYXBUb05kZlRhYmxlQ29uZmlnIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgTkRGX0VESVRPUl9UWVBFIH0gZnJvbSAnLi4vLi4vLi4vLi4vbmRmLWNvbmZpZy1lZGl0b3IvY29uc3RhbnRzJztcclxuXHJcbmV4cG9ydCBjb25zdCBzbGlkZUFuaW1hdGlvbiA9IHRyaWdnZXIoJ3NsaWRlSW5PdXQnLCBbXHJcblx0c3RhdGUoJ2Nsb3NlZCcsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCh2YXIoLS1uZGYtcmVwb3J0cy1kZXRhaWxzLXRyYW5zbGF0ZVgsIC0xMDAlKSknIH0pKSxcclxuXHRzdGF0ZSgnb3BlbicsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgwKScgfSkpLFxyXG5cdHRyYW5zaXRpb24oJ2Nsb3NlZCA8PT4gb3BlbicsIGFuaW1hdGUoJzIwMG1zIGVhc2Utb3V0JykpXHJcbl0pO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtbmRmLXJlcG9ydHMnLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9uZGYtcmVwb3J0cy5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vbmRmLXJlcG9ydHMuY29tcG9uZW50LnNjc3MnXSxcclxuXHRob3N0OiB7XHJcblx0XHRjbGFzczogJ25kZi1yZXBvcnRzJyxcclxuXHRcdCdbZGlyXSc6ICdkaXJlY3Rpb24nXHJcblx0fSxcclxuXHRhbmltYXRpb25zOiBbc2xpZGVBbmltYXRpb25dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZGZSZXBvcnRzQ29tcG9uZW50IGV4dGVuZHMgRGVzdHJveVN1YmplY3QgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblx0QFZpZXdDaGlsZChGbHVpZEhlaWdodERpcmVjdGl2ZSkgZmx1aWREaXJlY3RpdmU6IEZsdWlkSGVpZ2h0RGlyZWN0aXZlO1xyXG5cdF9pc0hlaWdodFVwZGF0ZWQgPSBmYWxzZTtcclxuXHRkaXJlY3Rpb246IERpcmVjdGlvbiA9ICdydGwnO1xyXG5cdGlzUGFuZWxPcGVuZWQgPSBmYWxzZTtcclxuXHRpc0xvYWRpbmdSZXN1bHQgPSBmYWxzZTtcclxuXHRyZXBvcnRzRGF0YSQ6IE9ic2VydmFibGU8YW55PjtcclxuXHRpc0V4cGFuZGVkID0gZmFsc2U7XHJcblxyXG5cdGFjdGl2ZVF1ZXJ5OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcblx0cHJpdmF0ZSByZWFkb25seSBfYWN0aXZlRmlsdGVyc1F1ZXJ5U3ViID0gbmV3IFJlcGxheVN1YmplY3Q8Rm9ybVF1ZXJ5TW9kZWw+KCk7XHJcblx0cmVhZG9ubHkgYWN0aXZlRmlsdGVyc1F1ZXJ5JCA9IHRoaXMuX2FjdGl2ZUZpbHRlcnNRdWVyeVN1Yi5hc09ic2VydmFibGUoKTtcclxuXHJcblx0cHJpdmF0ZSByZWFkb25seSBfY29uZmlnU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TmRmUmVwb3J0c0NvbmZpZz4obnVsbCk7XHJcblx0cmVhZG9ubHkgcmVwb3J0Q29uZmlnJCA9IHRoaXMuX2NvbmZpZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG5cdHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlcnNDcml0ZXJpYVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENyaXRlcmlhTW9kZWw+KG51bGwpO1xyXG5cdHJlYWRvbmx5IGZpbHRlcnNQYXJhbXMkID0gdGhpcy5fZmlsdGVyc0NyaXRlcmlhU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHJcblx0cHJpdmF0ZSBfcmVwb3J0RGV0YWlsc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHtcclxuXHRcdGxhYmVsPzogc3RyaW5nO1xyXG5cdFx0Y29uZmlnOiBOZGZUYWJsZUNvbmZpZztcclxuXHR9PihudWxsKTtcclxuXHRyZXBvcnREZXRhaWxzJCA9IHRoaXMuX3JlcG9ydERldGFpbHNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuXHRhZ2dyZWdhdGlvbnM6IFJlY29yZDxzdHJpbmcsIEFnZ3JlZ2F0aW9uUmVzcG9uc2U+O1xyXG5cclxuXHRnZXQgc2hvd0RldGFpbHMoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gISF0aGlzLl9yZXBvcnREZXRhaWxzU3ViamVjdC5nZXRWYWx1ZSgpO1xyXG5cdH1cclxuXHJcblx0aXNEZXRhaWxzT3BlbmVkID0gZmFsc2U7XHJcblxyXG5cdGdldCBjb25maWcoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fY29uZmlnU3ViamVjdC5nZXRWYWx1ZSgpO1xyXG5cdH1cclxuXHJcblx0Z2V0IGZpbHRlcnNDb25maWcoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5jb25maWc/LmZpbHRlcnM7XHJcblx0fVxyXG5cclxuXHRnZXQgcmVwb3J0Q29uZmlnKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuY29uZmlnPy5yZXBvcnRzO1xyXG5cdH1cclxuXHJcblx0QElucHV0KCkganNvbkVkaXRvckVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRASW5wdXQoKSByZXBvcnRzS2V5OiBzdHJpbmc7XHJcblx0ZWRpdG9yVHlwZSA9IE5ERl9FRElUT1JfVFlQRS5SRVBPUlRTO1xyXG5cclxuXHRASW5wdXQoKSBuYXZpZ2F0ZVJvdXRlOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuXHRwcml2YXRlIF9pc0NvbmZpZ0NoYW5nZWQgPSBmYWxzZTtcclxuXHJcblx0QElucHV0KCkgc2V0IGNvbmZpZyhjb25maWc6IE5kZlJlcG9ydHNDb25maWcpIHtcclxuXHRcdGNvbnN0IHZhbHVlID0gXy5jbG9uZURlZXAoY29uZmlnKTtcclxuXHRcdHRoaXMuX2NoZWNrQ29uZmlnQ2hhbmdlKHZhbHVlKTtcclxuXHRcdHRoaXMuX2NvbmZpZ1N1YmplY3QubmV4dCh2YWx1ZSk7XHJcblx0XHRpZiAodmFsdWU/LmFjdGl2ZVF1ZXJ5KSB7XHJcblx0XHRcdHRoaXMuX3VwZGF0ZUFjdGl2ZVF1ZXJ5KHZhbHVlPy5hY3RpdmVRdWVyeSk7XHJcblxyXG5cdFx0XHR0aGlzLl9maWx0ZXJzQ3JpdGVyaWFTdWJqZWN0Lm5leHQodGhpcy5fcHJlcGFyZU1hcHBlZFF1ZXJ5KHZhbHVlPy5hY3RpdmVRdWVyeSwgdGhpcy5maWx0ZXJzQ29uZmlnLm1vZGUpKTtcclxuXHRcdH1cclxuXHRcdHRoaXMuaXNQYW5lbE9wZW5lZCA9IGZhbHNlO1xyXG5cdFx0dGhpcy5pc0RldGFpbHNPcGVuZWQgPSBmYWxzZTtcclxuXHRcdHRoaXMuX3JlcG9ydERldGFpbHNTdWJqZWN0Lm5leHQobnVsbCk7XHJcblx0fVxyXG5cclxuXHRAT3V0cHV0KCkgb25RdWVyeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcblx0dHJhY2tCeUZuID0gKF86IG51bWJlciwgcmVwb3J0OiBSZXBvcnRDb25maWdNb2RlbCkgPT4ge1xyXG5cdFx0cmV0dXJuIHJlcG9ydC5pZDtcclxuXHR9O1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF9maWx0ZXJzTWFwcGVyOiBGaWx0ZXJzTWFwcGVyU2VydmljZSxcclxuXHRcdHByaXZhdGUgX25kZlJlcG9ydHNTZXJ2aWNlOiBOZGZSZXBvcnRzU2VydmljZSxcclxuXHRcdHByaXZhdGUgX2NoYXJ0SGVscGVyU2VydmljZTogQ2hhcnRNYW5hZ2VyU2VydmljZSxcclxuXHRcdHByaXZhdGUgX3RyYW5zZm9ybVNlcnZpY2U6IFJlcG9ydFRyYW5zZm9ybVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG5cdFx0cHJpdmF0ZSBfZmlsdGVyUXVlcnlTZXJ2aWNlOiBGaWx0ZXJRdWVyeVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF9zdGF0ZVNlcnZpY2U6IFJlcG9ydHNTdGF0ZVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcclxuXHRcdHByaXZhdGUgX25nWm9uZTogTmdab25lXHJcblx0KSB7XHJcblx0XHRzdXBlcigpO1xyXG5cdFx0dGhpcy5fdHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdHRoaXMuZGlyZWN0aW9uID0gcmVzLmxhbmcgPT09ICdhcicgPyAncnRsJyA6ICdsdHInO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMucmVwb3J0c0RhdGEkID0gdGhpcy5fcHJlcGFyZVJlcG9ydHMoKTtcclxuXHRcdHRoaXMuX2hhbmRsZUtleWJvYXJkRXZlbnQoKTtcclxuXHR9XHJcblxyXG5cdG9uTmF2aWdhdGUoZGF0YTogeyByZXBvcnQ6IFJlY29yZDxzdHJpbmcsIGFueT47IGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4gfSkge1xyXG5cdFx0Y29uc3QgcmVwb3J0ID0gZGF0YT8ucmVwb3J0O1xyXG5cdFx0Y29uc3QgX2N1c3RvbVJvdXRlID0gcmVwb3J0Lm5hdmlnYXRlPy5yb3V0ZSB8fCBbXTtcclxuXHRcdC8vIGxldCByb3V0ZSA9IFtSTVNfQkFTRS5yZXBsYWNlKC9cXC8kLywgJycpXTtcclxuXHRcdGxldCByb3V0ZSA9IHRoaXMubmF2aWdhdGVSb3V0ZTtcclxuXHRcdGlmICghIV9jdXN0b21Sb3V0ZS5sZW5ndGgpIHtcclxuXHRcdFx0cm91dGUgPSBbLi4ucm91dGUsIC4uLl9jdXN0b21Sb3V0ZV07XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgcXVlcnlQYXJhbXMgPSB7fTtcclxuXHRcdGlmIChyZXBvcnQubmF2aWdhdGU/LmluY2x1ZGVQYXJhbXMgPz8gdHJ1ZSkge1xyXG5cdFx0XHRpZiAoT2JqZWN0LmtleXModGhpcy5hY3RpdmVRdWVyeSB8fCB7fSkubGVuZ3RoKSB7XHJcblx0XHRcdFx0Y29uc3QgZGF0YSA9IHRoaXMuX2ZpbHRlclF1ZXJ5U2VydmljZS5lbmNvZGVRdWVyeSh0aGlzLmFjdGl2ZVF1ZXJ5KTtcclxuXHRcdFx0XHRpZiAoZGF0YSkge1xyXG5cdFx0XHRcdFx0cXVlcnlQYXJhbXNbJ2ZpbHRlcnMnXSA9IGRhdGE7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlKHJvdXRlLCB7IHF1ZXJ5UGFyYW1zOiBxdWVyeVBhcmFtcyB9KS50aGVuKCgpID0+IHt9KTtcclxuXHR9XHJcblxyXG5cdHRvZ2dsZVBhbmVsKCkge1xyXG5cdFx0dGhpcy5pc1BhbmVsT3BlbmVkID0gIXRoaXMuaXNQYW5lbE9wZW5lZDtcclxuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHR0aGlzLl9jaGFydEhlbHBlclNlcnZpY2UucmVzaXplQ2hhcnRzKCk7XHJcblx0XHR9LCA1MDApO1xyXG5cdH1cclxuXHJcblx0cHJpbnRBbGwoKSB7XHJcblx0XHR3aW5kb3cucHJpbnQoKTtcclxuXHR9XHJcblxyXG5cdGZpbHRlckNoYW5nZWQoY3JpdGVyaWE6IFJlY29yZDxhbnksIGFueT4pIHtcclxuXHRcdGlmIChfLmlzRXF1YWwodGhpcy5hY3RpdmVRdWVyeSwgY3JpdGVyaWEpKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMub25RdWVyeUNoYW5nZS5lbWl0KGNyaXRlcmlhKTtcclxuXHRcdHRoaXMuX3VwZGF0ZUFjdGl2ZVF1ZXJ5KGNyaXRlcmlhKTtcclxuXHRcdGNvbnN0IF9kYXRlID0gdGhpcy5fcHJlcGFyZU1hcHBlZFF1ZXJ5KGNyaXRlcmlhLCB0aGlzLmZpbHRlcnNDb25maWcubW9kZSk7XHJcblx0XHR0aGlzLl9maWx0ZXJzQ3JpdGVyaWFTdWJqZWN0Lm5leHQoX2RhdGUpO1xyXG5cdH1cclxuXHJcblx0b25Db250ZW50U2Nyb2xsKGlzU2Nyb2xsaW5nOiBib29sZWFuKTogdm9pZCB7XHJcblx0XHR0aGlzLl9zdGF0ZVNlcnZpY2Uub25Db250ZW50U2Nyb2xsKGlzU2Nyb2xsaW5nKTtcclxuXHJcblx0XHRpZiAoaXNTY3JvbGxpbmcgJiYgIXRoaXMuX2lzSGVpZ2h0VXBkYXRlZCkge1xyXG5cdFx0XHR0aGlzLl9pc0hlaWdodFVwZGF0ZWQgPSB0cnVlO1xyXG5cdFx0XHR0aGlzLmZsdWlkRGlyZWN0aXZlLnNjaGVkdWxlU2V0SGVpZ2h0KDEwMCk7XHJcblx0XHR9IGVsc2UgaWYgKCFpc1Njcm9sbGluZyAmJiB0aGlzLl9pc0hlaWdodFVwZGF0ZWQpIHtcclxuXHRcdFx0dGhpcy5faXNIZWlnaHRVcGRhdGVkID0gZmFsc2U7XHJcblx0XHRcdHRoaXMuZmx1aWREaXJlY3RpdmUuc2NoZWR1bGVTZXRIZWlnaHQoMTAwKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG9wZW5SZXBvcnREZXRhaWxzKF86IENyaXRlcmlhTW9kZWwsIHJDb25maWc6IFJlcG9ydENvbmZpZ01vZGVsKSB7XHJcblx0XHR0aGlzLl9yZXBvcnREZXRhaWxzU3ViamVjdC5uZXh0KHtcclxuXHRcdFx0Y29uZmlnOiBtYXBUb05kZlRhYmxlQ29uZmlnKHRoaXMuY29uZmlnLCByQ29uZmlnLmRldGFpbHMpLFxyXG5cdFx0XHRsYWJlbDogckNvbmZpZy5sYWJlbFxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRjbG9zZURldGFpbHNQYW5lbCgpIHtcclxuXHRcdHRoaXMuX3JlcG9ydERldGFpbHNTdWJqZWN0Lm5leHQobnVsbCk7XHJcblx0fVxyXG5cclxuXHRvbkRldGFpbHNBbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSB7XHJcblx0XHR0aGlzLmlzRGV0YWlsc09wZW5lZCA9IGV2ZW50LnRvU3RhdGUgPT09ICdvcGVuJztcclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cdFx0c3VwZXIubmdPbkRlc3Ryb3koKTtcclxuXHRcdHRoaXMuX2NoYXJ0SGVscGVyU2VydmljZS5kZXN0cm95QWxsKCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHByZXBhcmVDcml0ZXJpYVBheWxvYWQoY3JpdGVyaWE6IFJlY29yZDxhbnksIGFueT4sIGZpZWxkczogRmllbGRDb25maWdNb2RlbFtdID0gdGhpcy5maWx0ZXJzQ29uZmlnLmZpZWxkcykge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2ZpbHRlcnNNYXBwZXIucHJlcGFyZVBheWxvYWQoZmllbGRzLCBjcml0ZXJpYSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9zdHJpbmdpZnlWYWx1ZXMoY3JpdGVyaWE6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcclxuXHRcdHJldHVybiBPYmplY3QuZW50cmllcyhjcml0ZXJpYSkucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xyXG5cdFx0XHRhY2Nba2V5XSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gSlNPTi5zdHJpbmdpZnkodmFsdWUpIDogdmFsdWU7XHJcblx0XHRcdHJldHVybiBhY2M7XHJcblx0XHR9LCB7fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9wcmVwYXJlUmVwb3J0cygpIHtcclxuXHRcdHRoaXMuaXNMb2FkaW5nUmVzdWx0ID0gdHJ1ZTtcclxuXHRcdHJldHVybiBjb21iaW5lTGF0ZXN0KFtcclxuXHRcdFx0dGhpcy5maWx0ZXJzUGFyYW1zJC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBfLmlzRXF1YWwoYSwgYikpKSxcclxuXHRcdFx0dGhpcy5yZXBvcnRDb25maWckXHJcblx0XHRdKS5waXBlKFxyXG5cdFx0XHR0YXAoKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuaXNMb2FkaW5nUmVzdWx0ID0gdHJ1ZTtcclxuXHRcdFx0XHR0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0c3dpdGNoTWFwKChbY3JpdGVyaWEsIGNvbmZpZ10pID0+IHtcclxuXHRcdFx0XHRjb25zdCByZXF1ZXN0ID0gY29uZmlnPy5yZXF1ZXN0O1xyXG5cdFx0XHRcdGlmICghcmVxdWVzdCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIG9mKG51bGwpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRsZXQgX3BheWxvYWQgPSBjcml0ZXJpYTtcclxuXHRcdFx0XHRpZiAoIWNyaXRlcmlhICYmICEhY29uZmlnLmFjdGl2ZVF1ZXJ5KSB7XHJcblx0XHRcdFx0XHRfcGF5bG9hZCA9IHRoaXMucHJlcGFyZUNyaXRlcmlhUGF5bG9hZChjb25maWcuYWN0aXZlUXVlcnkpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Y29uc3QgZGF0YSQgPSB0aGlzLl9uZGZSZXBvcnRzU2VydmljZS5nZXREYXRhKHJlcXVlc3QsIF9wYXlsb2FkKS5waXBlKFxyXG5cdFx0XHRcdFx0c3dpdGNoTWFwKChyZXBvcnRzOiBBcGlSZXNwb25zZU1vZGVsKSA9PiB7XHJcblx0XHRcdFx0XHRcdHJldHVybiB0aGlzLl90cmFuc2Zvcm1TZXJ2aWNlLnByZXBhcmVEYXRhKHJlcG9ydHMsIGNvbmZpZyk7XHJcblx0XHRcdFx0XHR9KSxcclxuXHRcdFx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0dGhpcy5pc0xvYWRpbmdSZXN1bHQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0KTtcclxuXHJcblx0XHRcdFx0cmV0dXJuIGZvcmtKb2luKFtvZihjb25maWcpLCBkYXRhJF0pO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0bWFwKChbY29uZmlnLCByZXNwb25zZV0pID0+IHtcclxuXHRcdFx0XHR0aGlzLl9wcmVwYXJlQWdncmVnYXRpb25zKHJlc3BvbnNlPy5hZ2dyZWdhdGlvbnMpO1xyXG5cdFx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHRjb25maWcsXHJcblx0XHRcdFx0XHRyZXNwb25zZVxyXG5cdFx0XHRcdH07XHJcblx0XHRcdH0pXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfaGFuZGxlS2V5Ym9hcmRFdmVudCgpIHtcclxuXHRcdHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcblx0XHRcdGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pihkb2N1bWVudCwgJ2tleWRvd24nKVxyXG5cdFx0XHRcdC5waXBlKFxyXG5cdFx0XHRcdFx0ZmlsdGVyKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gZXZlbnQua2V5ID09PSAnRXNjYXBlJyAmJiB0aGlzLnNob3dEZXRhaWxzKSxcclxuXHRcdFx0XHRcdHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxyXG5cdFx0XHRcdClcclxuXHRcdFx0XHQuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuY2xvc2VEZXRhaWxzUGFuZWwoKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfcHJlcGFyZU1hcHBlZFF1ZXJ5KGNyaXRlcmlhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBtb2RlOiAncGF5bG9hZCcgfCAncGFyYW1zJykge1xyXG5cdFx0cmV0dXJuIG1vZGUgPT0gJ3BheWxvYWQnXHJcblx0XHRcdD8gdGhpcy5wcmVwYXJlQ3JpdGVyaWFQYXlsb2FkKGNyaXRlcmlhKVxyXG5cdFx0XHQ6IHtcclxuXHRcdFx0XHRcdHBhcmFtczogdGhpcy5fc3RyaW5naWZ5VmFsdWVzKGNyaXRlcmlhKVxyXG5cdFx0XHRcdH07XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF91cGRhdGVBY3RpdmVRdWVyeShxdWVyeTogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG5cdFx0dGhpcy5hY3RpdmVRdWVyeSA9IHF1ZXJ5O1xyXG5cdFx0dGhpcy5fYWN0aXZlRmlsdGVyc1F1ZXJ5U3ViLm5leHQoe1xyXG5cdFx0XHRxdWVyeSxcclxuXHRcdFx0ZW1pdEV2ZW50OiBmYWxzZVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9wcmVwYXJlQWdncmVnYXRpb25zKGFnZ3JlZ2F0aW9uczogYW55KSB7XHJcblx0XHRpZiAodGhpcy5faXNDb25maWdDaGFuZ2VkICYmIHRoaXMuYWdncmVnYXRpb25zKSB7XHJcblx0XHRcdHRoaXMuYWdncmVnYXRpb25zID0gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5hZ2dyZWdhdGlvbnMgJiYgdGhpcy5jb25maWcuZmlsdGVycz8ucmVsb2FkU3RyYXRlZ3kgPT09ICduZXZlcicpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuYWdncmVnYXRpb25zID0gYWdncmVnYXRpb25zO1xyXG5cdFx0dGhpcy5faXNDb25maWdDaGFuZ2VkID0gZmFsc2U7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9jaGVja0NvbmZpZ0NoYW5nZSh2YWx1ZTogTmRmUmVwb3J0c0NvbmZpZykge1xyXG5cdFx0Y29uc3QgeyBhY3RpdmVRdWVyeSwgLi4uY29uZmlnIH0gPSB2YWx1ZTtcclxuXHRcdGNvbnN0IHsgYWN0aXZlUXVlcnk6IGFxLCAuLi5jdXJyZW50Q29uZmlnIH0gPSB0aGlzLl9jb25maWdTdWJqZWN0LmdldFZhbHVlKCkgfHwge307XHJcblxyXG5cdFx0dGhpcy5faXNDb25maWdDaGFuZ2VkID0gIV8uaXNFcXVhbChjdXJyZW50Q29uZmlnLCBjb25maWcpO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2XHJcblx0Km5nSWY9XCJyZXBvcnRzRGF0YSQgfCBhc3luYyBhcyByZXBvcnRzXCJcclxuXHRjbGFzcz1cIm5kZi1yZXBvcnRzX19jb250YWluZXJcIlxyXG5cdFtjbGFzcy5wYW5lbC1vcGVuZWRdPVwiaXNQYW5lbE9wZW5lZCAmJiBmaWx0ZXJzQ29uZmlnXCJcclxuXHRbZGlyXT1cImRpcmVjdGlvblwiXHJcblx0bmRmRmx1aWRIZWlnaHRcclxuPlxyXG5cdDxkaXYgY2xhc3M9XCJuZGYtcmVwb3J0c19fcGFuZWwgcHJpbnQ6aGlkZGVuXCIgKm5nSWY9XCIhIWZpbHRlcnNDb25maWc/LmZpZWxkcz8ubGVuZ3RoXCI+XHJcblx0XHQ8YXBwLWZpbHRlcnMtcGFuZWxcclxuXHRcdFx0W2ZpZWxkc109XCJmaWx0ZXJzQ29uZmlnPy5maWVsZHNcIlxyXG5cdFx0XHRbYWdncmVnYXRpb25zXT1cImFnZ3JlZ2F0aW9uc1wiXHJcblx0XHRcdChmaWx0ZXJDaGFuZ2VkKT1cImZpbHRlckNoYW5nZWQoJGV2ZW50KVwiXHJcblx0XHRcdFthY3RpdmVRdWVyeV09XCJhY3RpdmVGaWx0ZXJzUXVlcnkkIHwgYXN5bmNcIlxyXG5cdFx0XHRjbGFzcz1cIm5kZi1yZXBvcnRzX19maWx0ZXJzXCJcclxuXHRcdD48L2FwcC1maWx0ZXJzLXBhbmVsPlxyXG5cdDwvZGl2PlxyXG5cclxuXHQ8ZGl2IGNsYXNzPVwibmRmLXJlcG9ydHNfX2NvbnRlbnRcIiAoc2Nyb2xsZWQpPVwib25Db250ZW50U2Nyb2xsKCRldmVudClcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJuZGYtcmVwb3J0c19faGVhZGVyIGZsZXggcHQtNCBwcmludDpoaWRkZW5cIj5cclxuXHRcdFx0PGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b2dnbGUtYnV0dG9uXCIgKGNsaWNrKT1cInRvZ2dsZVBhbmVsKClcIj5cclxuXHRcdFx0XHQ8bWF0LWljb24+IGZpbHRlcl9hbHQ8L21hdC1pY29uPlxyXG5cdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0PGFwcC1lZGl0b3ItYnV0dG9uXHJcblx0XHRcdFx0Km5nSWY9XCJqc29uRWRpdG9yRW5hYmxlZCAmJiByZXBvcnRzS2V5XCJcclxuXHRcdFx0XHRba2V5XT1cInJlcG9ydHNLZXlcIlxyXG5cdFx0XHRcdFt0eXBlXT1cImVkaXRvclR5cGVcIlxyXG5cdFx0XHQ+PC9hcHAtZWRpdG9yLWJ1dHRvbj5cclxuXHRcdFx0PGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKm5nSWY9XCJjb25maWc/Lm9wdGlvbnM/LnByaW50XCIgY2xhc3M9XCJwcmludC1idXR0b25cIiAoY2xpY2spPVwicHJpbnRBbGwoKVwiPlxyXG5cdFx0XHRcdDxtYXQtaWNvbj4gcHJpbnQ8L21hdC1pY29uPlxyXG5cdFx0XHQ8L2J1dHRvbj5cclxuXHRcdDwvZGl2PlxyXG5cdFx0PG1hdC1zcGlubmVyICpuZ0lmPVwiaXNMb2FkaW5nUmVzdWx0XCIgY2xhc3M9XCJtdC01IG14LWF1dG9cIiBbZGlhbWV0ZXJdPVwiNDhcIj48L21hdC1zcGlubmVyPlxyXG5cclxuXHRcdDxkaXYgY2xhc3M9XCJyZXBvcnRzLWdyaWRcIiAqbmdJZj1cIiFpc0xvYWRpbmdSZXN1bHRcIj5cclxuXHRcdFx0PGFwcC1uZGYtcmVwb3J0XHJcblx0XHRcdFx0Km5nRm9yPVwibGV0IGNvbmZpZyBvZiByZXBvcnRDb25maWcuaXRlbXM7IHRyYWNrQnk6IHRyYWNrQnlGblwiXHJcblx0XHRcdFx0W2NvbmZpZ109XCJjb25maWdcIlxyXG5cdFx0XHRcdFtkYXRhXT1cInJlcG9ydHM/LnJlc3BvbnNlXCJcclxuXHRcdFx0XHRbY3JpdGVyaWFdPVwiZmlsdGVyc1BhcmFtcyQgfCBhc3luY1wiXHJcblx0XHRcdFx0W2RpcmVjdGlvbl09XCJkaXJlY3Rpb25cIlxyXG5cdFx0XHRcdFthdHRyLmRhdGEtd2lkdGhdPVwiY29uZmlnPy5sYXlvdXQ/LndpZHRoIHx8IDRcIlxyXG5cdFx0XHRcdFthdHRyLmRhdGEtaGVpZ2h0XT1cImNvbmZpZz8ubGF5b3V0Py5oZWlnaHQgfHwgJ2F1dG8nXCJcclxuXHRcdFx0XHRbYXR0ci5kYXRhLXN0YXJ0LWNvbHVtbl09XCJjb25maWc/LmxheW91dD8uY29sdW1uUG9zaXRpb24gfHwgJ2F1dG8nXCJcclxuXHRcdFx0XHRbYXR0ci5kYXRhLXN0YXJ0LXJvd109XCJjb25maWc/LmxheW91dD8ucm93UG9zaXRpb24gfHwgJ2F1dG8nXCJcclxuXHRcdFx0XHRbY2xhc3Mud2lkZV09XCJjb25maWc/LmxheW91dD8ud2lkdGggPj0gNlwiXHJcblx0XHRcdFx0Y2xhc3M9XCJyZXBvcnRzLWdyaWRfX2l0ZW0ge3sgY29uZmlnPy5sYXlvdXQ/LnN0eWxlQ2xhc3MgfX0gXCJcclxuXHRcdFx0XHQob25OYXZpZ2F0ZSk9XCJvbk5hdmlnYXRlKCRldmVudClcIlxyXG5cdFx0XHRcdChvbk9wZW4pPVwib3BlblJlcG9ydERldGFpbHMoJGV2ZW50LCBjb25maWcpXCJcclxuXHRcdFx0PjwvYXBwLW5kZi1yZXBvcnQ+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuXHQ8ZGl2XHJcblx0XHRjbGFzcz1cIm5kZi1yZXBvcnRzX19kZXRhaWxzIHByaW50OmhpZGRlblwiXHJcblx0XHRbY2xhc3Mub3BlbmVkXT1cInNob3dEZXRhaWxzXCJcclxuXHRcdFtAc2xpZGVJbk91dF09XCJzaG93RGV0YWlscyA/ICdvcGVuJyA6ICdjbG9zZWQnXCJcclxuXHRcdChAc2xpZGVJbk91dC5kb25lKT1cIm9uRGV0YWlsc0FuaW1hdGlvbkVuZCgkZXZlbnQpXCJcclxuXHQ+XHJcblx0XHQ8YXBwLW5kZi10YWJsZVxyXG5cdFx0XHQqbmdJZj1cInJlcG9ydERldGFpbHMkIHwgYXN5bmMgYXMgcmVwb3J0XCJcclxuXHRcdFx0W2NvbmZpZ109XCJyZXBvcnQuY29uZmlnXCJcclxuXHRcdFx0W2FjdGl2ZVF1ZXJ5XT1cImFjdGl2ZUZpbHRlcnNRdWVyeSQgfCBhc3luY1wiXHJcblx0XHRcdFtjdXN0b21Dcml0ZXJpYV09XCJmaWx0ZXJzUGFyYW1zJCB8IGFzeW5jXCJcclxuXHRcdD5cclxuXHRcdFx0PG5nLXRlbXBsYXRlIHNlYXJjaFRhYmxlVGVtcGxhdGU+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cIm5kZi1yZXBvcnRzX19kZXRhaWxzX19oZWFkZXIgZmxleCBnYXAtMlwiPlxyXG5cdFx0XHRcdFx0PGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b2dnbGUtYnV0dG9uXCIgKGNsaWNrKT1cInRvZ2dsZVBhbmVsKClcIj5cclxuXHRcdFx0XHRcdFx0PG1hdC1pY29uPiBmaWx0ZXJfYWx0PC9tYXQtaWNvbj5cclxuXHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0PGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJjbG9zZS1idXR0b25cIiAoY2xpY2spPVwiY2xvc2VEZXRhaWxzUGFuZWwoKVwiPlxyXG5cdFx0XHRcdFx0XHQ8bWF0LWljb24+IGNsb3NlPC9tYXQtaWNvbj5cclxuXHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDxoMz5cclxuXHRcdFx0XHRcdHt7IHJlcG9ydC5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxyXG5cdFx0XHRcdDwvaDM+XHJcblx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHQ8L2FwcC1uZGYtdGFibGU+XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
327
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXJlcG9ydHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL2NvbnRhaW5lcnMvbmRmLXJlcG9ydHMvbmRmLXJlcG9ydHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL2NvbnRhaW5lcnMvbmRmLXJlcG9ydHMvbmRmLXJlcG9ydHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQWtCLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWpHLE9BQU8sRUFFTixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFLTCxNQUFNLEVBRU4sU0FBUyxFQUNULE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBYyxFQUFFLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBbUJ4RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztB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O3VhQUVpQyxjQUFjO3NCQUE5QyxTQUFTO3VCQUFDLG9CQUFvQjtnQkF3Q3RCLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBS08sTUFBTTtzQkFBbEIsS0FBSztnQkFRSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgQW5pbWF0aW9uRXZlbnQsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XHJcbmltcG9ydCB7XHJcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0Q29tcG9uZW50LFxyXG5cdEV2ZW50RW1pdHRlcixcclxuXHRJbnB1dCxcclxuXHROZ1pvbmUsXHJcblx0T25DaGFuZ2VzLFxyXG5cdE9uRGVzdHJveSxcclxuXHRPbkluaXQsXHJcblx0T3V0cHV0LFxyXG5cdFNpbXBsZUNoYW5nZXMsXHJcblx0Vmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgRGVzdHJveVN1YmplY3QsIEZsdWlkSGVpZ2h0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmb3JrSm9pbiwgZnJvbUV2ZW50LCBPYnNlcnZhYmxlLCBvZiwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBmaW5hbGl6ZSwgbWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQXBpUmVzcG9uc2VNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgTmRmVGFibGVDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi90YWJsZXMnO1xyXG5pbXBvcnQge1xyXG5cdEFnZ3JlZ2F0aW9uUmVzcG9uc2UsXHJcblx0RmllbGRDb25maWdNb2RlbCxcclxuXHRGaWx0ZXJRdWVyeVNlcnZpY2UsXHJcblx0RmlsdGVyc01hcHBlclNlcnZpY2UsXHJcblx0Rm9ybVF1ZXJ5TW9kZWxcclxufSBmcm9tICcuLi8uLi8uLi8uLi9uZGYtZmlsdGVycyc7XHJcbmltcG9ydCB7IENyaXRlcmlhTW9kZWwsIE5kZlJlcG9ydHNDb25maWcsIFJlcG9ydENvbmZpZ01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHtcclxuXHRDaGFydE1hbmFnZXJTZXJ2aWNlLFxyXG5cdE5kZlJlcG9ydHNTZXJ2aWNlLFxyXG5cdFJlcG9ydENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG5cdFJlcG9ydHNTdGF0ZVNlcnZpY2UsXHJcblx0UmVwb3J0VHJhbnNmb3JtU2VydmljZVxyXG59IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgbWFwVG9OZGZUYWJsZUNvbmZpZyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcyc7XHJcbmltcG9ydCB7IE5ERl9FRElUT1JfVFlQRSB9IGZyb20gJy4uLy4uLy4uLy4uL25kZi1jb25maWctZWRpdG9yL2NvbnN0YW50cyc7XHJcblxyXG5leHBvcnQgY29uc3Qgc2xpZGVBbmltYXRpb24gPSB0cmlnZ2VyKCdzbGlkZUluT3V0JywgW1xyXG5cdHN0YXRlKCdjbG9zZWQnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgodmFyKC0tbmRmLXJlcG9ydHMtZGV0YWlscy10cmFuc2xhdGVYLCAtMTAwJSkpJyB9KSksXHJcblx0c3RhdGUoJ29wZW4nLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMCknIH0pKSxcclxuXHR0cmFuc2l0aW9uKCdjbG9zZWQgPD0+IG9wZW4nLCBhbmltYXRlKCcyMDBtcyBlYXNlLW91dCcpKVxyXG5dKTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXBwLW5kZi1yZXBvcnRzJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vbmRmLXJlcG9ydHMuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL25kZi1yZXBvcnRzLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0aG9zdDoge1xyXG5cdFx0Y2xhc3M6ICduZGYtcmVwb3J0cycsXHJcblx0XHQnW2Rpcl0nOiAnZGlyZWN0aW9uJ1xyXG5cdH0sXHJcblx0YW5pbWF0aW9uczogW3NsaWRlQW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmRmUmVwb3J0c0NvbXBvbmVudCBleHRlbmRzIERlc3Ryb3lTdWJqZWN0IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XHJcblx0QFZpZXdDaGlsZChGbHVpZEhlaWdodERpcmVjdGl2ZSkgZmx1aWREaXJlY3RpdmU6IEZsdWlkSGVpZ2h0RGlyZWN0aXZlO1xyXG5cdF9pc0hlaWdodFVwZGF0ZWQgPSBmYWxzZTtcclxuXHRkaXJlY3Rpb246IERpcmVjdGlvbiA9ICdydGwnO1xyXG5cdGlzUGFuZWxPcGVuZWQgPSBmYWxzZTtcclxuXHRpc0xvYWRpbmdSZXN1bHQgPSBmYWxzZTtcclxuXHRyZXBvcnRzRGF0YSQ6IE9ic2VydmFibGU8YW55PjtcclxuXHRpc0V4cGFuZGVkID0gZmFsc2U7XHJcblxyXG5cdGFjdGl2ZVF1ZXJ5OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcblx0cHJpdmF0ZSByZWFkb25seSBfYWN0aXZlRmlsdGVyc1F1ZXJ5U3ViID0gbmV3IFJlcGxheVN1YmplY3Q8Rm9ybVF1ZXJ5TW9kZWw+KCk7XHJcblx0cmVhZG9ubHkgYWN0aXZlRmlsdGVyc1F1ZXJ5JCA9IHRoaXMuX2FjdGl2ZUZpbHRlcnNRdWVyeVN1Yi5hc09ic2VydmFibGUoKTtcclxuXHJcblx0cHJpdmF0ZSByZWFkb25seSBfY29uZmlnU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TmRmUmVwb3J0c0NvbmZpZz4obnVsbCk7XHJcblx0cmVhZG9ubHkgcmVwb3J0Q29uZmlnJCA9IHRoaXMuX2NvbmZpZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG5cdHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlcnNDcml0ZXJpYVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENyaXRlcmlhTW9kZWw+KG51bGwpO1xyXG5cdHJlYWRvbmx5IGZpbHRlcnNQYXJhbXMkID0gdGhpcy5fZmlsdGVyc0NyaXRlcmlhU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHJcblx0cHJpdmF0ZSBfcmVwb3J0RGV0YWlsc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHtcclxuXHRcdGxhYmVsPzogc3RyaW5nO1xyXG5cdFx0Y29uZmlnOiBOZGZUYWJsZUNvbmZpZztcclxuXHR9PihudWxsKTtcclxuXHRyZXBvcnREZXRhaWxzJCA9IHRoaXMuX3JlcG9ydERldGFpbHNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuXHRhZ2dyZWdhdGlvbnM6IFJlY29yZDxzdHJpbmcsIEFnZ3JlZ2F0aW9uUmVzcG9uc2U+O1xyXG5cclxuXHRnZXQgc2hvd0RldGFpbHMoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gISF0aGlzLl9yZXBvcnREZXRhaWxzU3ViamVjdC5nZXRWYWx1ZSgpO1xyXG5cdH1cclxuXHJcblx0aXNEZXRhaWxzT3BlbmVkID0gZmFsc2U7XHJcblxyXG5cdGdldCBmaWx0ZXJzQ29uZmlnKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuY29uZmlnPy5maWx0ZXJzO1xyXG5cdH1cclxuXHJcblx0Z2V0IHJlcG9ydENvbmZpZygpIHtcclxuXHRcdHJldHVybiB0aGlzLmNvbmZpZz8ucmVwb3J0cztcclxuXHR9XHJcblxyXG5cdEBJbnB1dCgpIGpzb25FZGl0b3JFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblx0QElucHV0KCkgcmVwb3J0c0tleTogc3RyaW5nO1xyXG5cdGVkaXRvclR5cGUgPSBOREZfRURJVE9SX1RZUEUuUkVQT1JUUztcclxuXHJcblx0QElucHV0KCkgbmF2aWdhdGVSb3V0ZTogc3RyaW5nW10gPSBbXTtcclxuXHJcblx0cHJpdmF0ZSBfaXNDb25maWdDaGFuZ2VkID0gZmFsc2U7XHJcblxyXG5cdHByaXZhdGUgX2NvbmZpZzogTmRmUmVwb3J0c0NvbmZpZztcclxuXHRASW5wdXQoKSBzZXQgY29uZmlnKGNvbmZpZzogTmRmUmVwb3J0c0NvbmZpZykge1xyXG5cdFx0dGhpcy5fY29uZmlnID0gY29uZmlnO1xyXG5cdH1cclxuXHJcblx0Z2V0IGNvbmZpZygpIHtcclxuXHRcdHJldHVybiB0aGlzLl9jb25maWdTdWJqZWN0LmdldFZhbHVlKCk7XHJcblx0fVxyXG5cclxuXHRAT3V0cHV0KCkgb25RdWVyeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcblx0dHJhY2tCeUZuID0gKF86IG51bWJlciwgcmVwb3J0OiBSZXBvcnRDb25maWdNb2RlbCkgPT4ge1xyXG5cdFx0cmV0dXJuIHJlcG9ydC5pZDtcclxuXHR9O1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF9maWx0ZXJzTWFwcGVyOiBGaWx0ZXJzTWFwcGVyU2VydmljZSxcclxuXHRcdHByaXZhdGUgX25kZlJlcG9ydHNTZXJ2aWNlOiBOZGZSZXBvcnRzU2VydmljZSxcclxuXHRcdHByaXZhdGUgX2NoYXJ0SGVscGVyU2VydmljZTogQ2hhcnRNYW5hZ2VyU2VydmljZSxcclxuXHRcdHByaXZhdGUgX3RyYW5zZm9ybVNlcnZpY2U6IFJlcG9ydFRyYW5zZm9ybVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG5cdFx0cHJpdmF0ZSBfZmlsdGVyUXVlcnlTZXJ2aWNlOiBGaWx0ZXJRdWVyeVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF9zdGF0ZVNlcnZpY2U6IFJlcG9ydHNTdGF0ZVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF9jb25maWd1cmF0aW9uU2VydmljZTogUmVwb3J0Q29uZmlndXJhdGlvblNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcclxuXHRcdHByaXZhdGUgX25nWm9uZTogTmdab25lXHJcblx0KSB7XHJcblx0XHRzdXBlcigpO1xyXG5cdFx0dGhpcy5fdHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdHRoaXMuZGlyZWN0aW9uID0gcmVzLmxhbmcgPT09ICdhcicgPyAncnRsJyA6ICdsdHInO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMucmVwb3J0c0RhdGEkID0gdGhpcy5fcHJlcGFyZVJlcG9ydHMoKTtcclxuXHRcdHRoaXMuX2hhbmRsZUtleWJvYXJkRXZlbnQoKTtcclxuXHR9XHJcblxyXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuXHRcdGNvbnN0IHJlcG9ydHNLZXkgPSBjaGFuZ2VzLnJlcG9ydHNLZXk/LmN1cnJlbnRWYWx1ZTtcclxuXHRcdGNvbnN0IGNvbmZpZyA9IGNoYW5nZXMuY29uZmlnPy5jdXJyZW50VmFsdWU7XHJcblxyXG5cdFx0aWYgKHJlcG9ydHNLZXkgJiYgY29uZmlnKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcignWW91IGNhbm5vdCBzZXQgYm90aCByZXBvcnRzS2V5IGFuZCByZXBvcnRzIENvbmZpZyBhdCB0aGUgc2FtZSB0aW1lLicpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChjb25maWcpIHtcclxuXHRcdFx0dGhpcy5faW5pdFJlcG9ydHNDb25maWcoY29uZmlnKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAocmVwb3J0c0tleSkge1xyXG5cdFx0XHR0aGlzLl9sb2FkUmVwb3J0c0NvbmZpZyhyZXBvcnRzS2V5KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG9uTmF2aWdhdGUoZGF0YTogeyByZXBvcnQ6IFJlY29yZDxzdHJpbmcsIGFueT47IGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4gfSkge1xyXG5cdFx0Y29uc3QgcmVwb3J0ID0gZGF0YT8ucmVwb3J0O1xyXG5cdFx0Y29uc3QgX2N1c3RvbVJvdXRlID0gcmVwb3J0Lm5hdmlnYXRlPy5yb3V0ZSB8fCBbXTtcclxuXHRcdC8vIGxldCByb3V0ZSA9IFtSTVNfQkFTRS5yZXBsYWNlKC9cXC8kLywgJycpXTtcclxuXHRcdGxldCByb3V0ZSA9IHRoaXMubmF2aWdhdGVSb3V0ZTtcclxuXHRcdGlmICghIV9jdXN0b21Sb3V0ZS5sZW5ndGgpIHtcclxuXHRcdFx0cm91dGUgPSBbLi4ucm91dGUsIC4uLl9jdXN0b21Sb3V0ZV07XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgcXVlcnlQYXJhbXMgPSB7fTtcclxuXHRcdGlmIChyZXBvcnQubmF2aWdhdGU/LmluY2x1ZGVQYXJhbXMgPz8gdHJ1ZSkge1xyXG5cdFx0XHRpZiAoT2JqZWN0LmtleXModGhpcy5hY3RpdmVRdWVyeSB8fCB7fSkubGVuZ3RoKSB7XHJcblx0XHRcdFx0Y29uc3QgZGF0YSA9IHRoaXMuX2ZpbHRlclF1ZXJ5U2VydmljZS5lbmNvZGVRdWVyeSh0aGlzLmFjdGl2ZVF1ZXJ5KTtcclxuXHRcdFx0XHRpZiAoZGF0YSkge1xyXG5cdFx0XHRcdFx0cXVlcnlQYXJhbXNbJ2ZpbHRlcnMnXSA9IGRhdGE7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlKHJvdXRlLCB7IHF1ZXJ5UGFyYW1zOiBxdWVyeVBhcmFtcyB9KS50aGVuKCgpID0+IHt9KTtcclxuXHR9XHJcblxyXG5cdHRvZ2dsZVBhbmVsKCkge1xyXG5cdFx0dGhpcy5pc1BhbmVsT3BlbmVkID0gIXRoaXMuaXNQYW5lbE9wZW5lZDtcclxuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHR0aGlzLl9jaGFydEhlbHBlclNlcnZpY2UucmVzaXplQ2hhcnRzKCk7XHJcblx0XHR9LCA1MDApO1xyXG5cdH1cclxuXHJcblx0cHJpbnRBbGwoKSB7XHJcblx0XHR3aW5kb3cucHJpbnQoKTtcclxuXHR9XHJcblxyXG5cdGZpbHRlckNoYW5nZWQoY3JpdGVyaWE6IFJlY29yZDxhbnksIGFueT4pIHtcclxuXHRcdGlmIChfLmlzRXF1YWwodGhpcy5hY3RpdmVRdWVyeSwgY3JpdGVyaWEpKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMub25RdWVyeUNoYW5nZS5lbWl0KGNyaXRlcmlhKTtcclxuXHRcdHRoaXMuX3VwZGF0ZUFjdGl2ZVF1ZXJ5KGNyaXRlcmlhKTtcclxuXHRcdGNvbnN0IF9kYXRlID0gdGhpcy5fcHJlcGFyZU1hcHBlZFF1ZXJ5KGNyaXRlcmlhLCB0aGlzLmZpbHRlcnNDb25maWcubW9kZSk7XHJcblx0XHR0aGlzLl9maWx0ZXJzQ3JpdGVyaWFTdWJqZWN0Lm5leHQoX2RhdGUpO1xyXG5cdH1cclxuXHJcblx0b25Db250ZW50U2Nyb2xsKGlzU2Nyb2xsaW5nOiBib29sZWFuKTogdm9pZCB7XHJcblx0XHR0aGlzLl9zdGF0ZVNlcnZpY2Uub25Db250ZW50U2Nyb2xsKGlzU2Nyb2xsaW5nKTtcclxuXHJcblx0XHRpZiAoaXNTY3JvbGxpbmcgJiYgIXRoaXMuX2lzSGVpZ2h0VXBkYXRlZCkge1xyXG5cdFx0XHR0aGlzLl9pc0hlaWdodFVwZGF0ZWQgPSB0cnVlO1xyXG5cdFx0XHR0aGlzLmZsdWlkRGlyZWN0aXZlLnNjaGVkdWxlU2V0SGVpZ2h0KDEwMCk7XHJcblx0XHR9IGVsc2UgaWYgKCFpc1Njcm9sbGluZyAmJiB0aGlzLl9pc0hlaWdodFVwZGF0ZWQpIHtcclxuXHRcdFx0dGhpcy5faXNIZWlnaHRVcGRhdGVkID0gZmFsc2U7XHJcblx0XHRcdHRoaXMuZmx1aWREaXJlY3RpdmUuc2NoZWR1bGVTZXRIZWlnaHQoMTAwKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG9wZW5SZXBvcnREZXRhaWxzKGNyaXRlcmlhTW9kZWw6IENyaXRlcmlhTW9kZWwsIHJlcG9ydENvbmZpZzogUmVwb3J0Q29uZmlnTW9kZWwpIHtcclxuXHRcdGlmICghcmVwb3J0Q29uZmlnPy5kZXRhaWxzPy5lbmFibGVkKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBzb3VyY2UgPSByZXBvcnRDb25maWc/LmRldGFpbHM/LnNvdXJjZTtcclxuXHRcdGNvbnN0IGNvbmZpZyQgPVxyXG5cdFx0XHRzb3VyY2UgJiYgdHlwZW9mIHNvdXJjZSA9PT0gJ3N0cmluZydcclxuXHRcdFx0XHQ/IHRoaXMuX2NvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldFRhYmxlQ29uZmlndXJhdGlvbihzb3VyY2UpLnBpcGUoXHJcblx0XHRcdFx0XHRcdG1hcCgoY29uZmlnKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIF8ubWVyZ2UoY29uZmlnLCB7XHJcblx0XHRcdFx0XHRcdFx0XHRvcHRpb25zOiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGZpbHRlcnM6IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRtb2RlOiAncGF5bG9hZCcsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZmllbGRzOiBbXSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRwYW5lbDoge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmlzaWJsZTogZmFsc2UsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0b2dnbGVCdXR0b246IGZhbHNlXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHQpXHJcblx0XHRcdFx0OiBvZihtYXBUb05kZlRhYmxlQ29uZmlnKHRoaXMuY29uZmlnLCByZXBvcnRDb25maWcuZGV0YWlscykpO1xyXG5cclxuXHRcdGNvbmZpZyQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoY29uZmlnKSA9PiB7XHJcblx0XHRcdHRoaXMuX3JlcG9ydERldGFpbHNTdWJqZWN0Lm5leHQoe1xyXG5cdFx0XHRcdGNvbmZpZyxcclxuXHRcdFx0XHRsYWJlbDogcmVwb3J0Q29uZmlnLmxhYmVsXHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRjbG9zZURldGFpbHNQYW5lbCgpIHtcclxuXHRcdHRoaXMuX3JlcG9ydERldGFpbHNTdWJqZWN0Lm5leHQobnVsbCk7XHJcblx0fVxyXG5cclxuXHRvbkRldGFpbHNBbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSB7XHJcblx0XHR0aGlzLmlzRGV0YWlsc09wZW5lZCA9IGV2ZW50LnRvU3RhdGUgPT09ICdvcGVuJztcclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cdFx0c3VwZXIubmdPbkRlc3Ryb3koKTtcclxuXHRcdHRoaXMuX2NoYXJ0SGVscGVyU2VydmljZS5kZXN0cm95QWxsKCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHByZXBhcmVDcml0ZXJpYVBheWxvYWQoY3JpdGVyaWE6IFJlY29yZDxhbnksIGFueT4sIGZpZWxkczogRmllbGRDb25maWdNb2RlbFtdID0gdGhpcy5maWx0ZXJzQ29uZmlnLmZpZWxkcykge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2ZpbHRlcnNNYXBwZXIucHJlcGFyZVBheWxvYWQoZmllbGRzLCBjcml0ZXJpYSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9zdHJpbmdpZnlWYWx1ZXMoY3JpdGVyaWE6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcclxuXHRcdHJldHVybiBPYmplY3QuZW50cmllcyhjcml0ZXJpYSkucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xyXG5cdFx0XHRhY2Nba2V5XSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gSlNPTi5zdHJpbmdpZnkodmFsdWUpIDogdmFsdWU7XHJcblx0XHRcdHJldHVybiBhY2M7XHJcblx0XHR9LCB7fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9wcmVwYXJlUmVwb3J0cygpIHtcclxuXHRcdHRoaXMuaXNMb2FkaW5nUmVzdWx0ID0gdHJ1ZTtcclxuXHRcdHJldHVybiBjb21iaW5lTGF0ZXN0KFtcclxuXHRcdFx0dGhpcy5maWx0ZXJzUGFyYW1zJC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBfLmlzRXF1YWwoYSwgYikpKSxcclxuXHRcdFx0dGhpcy5yZXBvcnRDb25maWckXHJcblx0XHRdKS5waXBlKFxyXG5cdFx0XHR0YXAoKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuaXNMb2FkaW5nUmVzdWx0ID0gdHJ1ZTtcclxuXHRcdFx0XHR0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0c3dpdGNoTWFwKChbY3JpdGVyaWEsIGNvbmZpZ10pID0+IHtcclxuXHRcdFx0XHRjb25zdCByZXF1ZXN0ID0gY29uZmlnPy5yZXF1ZXN0O1xyXG5cdFx0XHRcdGlmICghcmVxdWVzdCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIG9mKG51bGwpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRsZXQgX3BheWxvYWQgPSBjcml0ZXJpYTtcclxuXHRcdFx0XHRpZiAoIWNyaXRlcmlhICYmICEhY29uZmlnLmFjdGl2ZVF1ZXJ5KSB7XHJcblx0XHRcdFx0XHRfcGF5bG9hZCA9IHRoaXMucHJlcGFyZUNyaXRlcmlhUGF5bG9hZChjb25maWcuYWN0aXZlUXVlcnkpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Y29uc3QgZGF0YSQgPSB0aGlzLl9uZGZSZXBvcnRzU2VydmljZS5nZXREYXRhKHJlcXVlc3QsIF9wYXlsb2FkKS5waXBlKFxyXG5cdFx0XHRcdFx0c3dpdGNoTWFwKChyZXBvcnRzOiBBcGlSZXNwb25zZU1vZGVsKSA9PiB7XHJcblx0XHRcdFx0XHRcdHJldHVybiB0aGlzLl90cmFuc2Zvcm1TZXJ2aWNlLnByZXBhcmVEYXRhKHJlcG9ydHMsIGNvbmZpZyk7XHJcblx0XHRcdFx0XHR9KSxcclxuXHRcdFx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0dGhpcy5pc0xvYWRpbmdSZXN1bHQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0KTtcclxuXHJcblx0XHRcdFx0cmV0dXJuIGZvcmtKb2luKFtvZihjb25maWcpLCBkYXRhJF0pO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0bWFwKChbY29uZmlnLCByZXNwb25zZV0pID0+IHtcclxuXHRcdFx0XHR0aGlzLl9wcmVwYXJlQWdncmVnYXRpb25zKHJlc3BvbnNlPy5hZ2dyZWdhdGlvbnMpO1xyXG5cdFx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHRjb25maWcsXHJcblx0XHRcdFx0XHRyZXNwb25zZVxyXG5cdFx0XHRcdH07XHJcblx0XHRcdH0pXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfaGFuZGxlS2V5Ym9hcmRFdmVudCgpIHtcclxuXHRcdHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcblx0XHRcdGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pihkb2N1bWVudCwgJ2tleWRvd24nKVxyXG5cdFx0XHRcdC5waXBlKFxyXG5cdFx0XHRcdFx0ZmlsdGVyKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gZXZlbnQua2V5ID09PSAnRXNjYXBlJyAmJiB0aGlzLnNob3dEZXRhaWxzKSxcclxuXHRcdFx0XHRcdHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxyXG5cdFx0XHRcdClcclxuXHRcdFx0XHQuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuY2xvc2VEZXRhaWxzUGFuZWwoKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfcHJlcGFyZU1hcHBlZFF1ZXJ5KGNyaXRlcmlhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBtb2RlOiAncGF5bG9hZCcgfCAncGFyYW1zJykge1xyXG5cdFx0cmV0dXJuIG1vZGUgPT0gJ3BheWxvYWQnXHJcblx0XHRcdD8gdGhpcy5wcmVwYXJlQ3JpdGVyaWFQYXlsb2FkKGNyaXRlcmlhKVxyXG5cdFx0XHQ6IHtcclxuXHRcdFx0XHRcdHBhcmFtczogdGhpcy5fc3RyaW5naWZ5VmFsdWVzKGNyaXRlcmlhKVxyXG5cdFx0XHRcdH07XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF91cGRhdGVBY3RpdmVRdWVyeShxdWVyeTogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG5cdFx0dGhpcy5hY3RpdmVRdWVyeSA9IHF1ZXJ5O1xyXG5cdFx0dGhpcy5fYWN0aXZlRmlsdGVyc1F1ZXJ5U3ViLm5leHQoe1xyXG5cdFx0XHRxdWVyeSxcclxuXHRcdFx0ZW1pdEV2ZW50OiBmYWxzZVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9wcmVwYXJlQWdncmVnYXRpb25zKGFnZ3JlZ2F0aW9uczogYW55KSB7XHJcblx0XHRpZiAodGhpcy5faXNDb25maWdDaGFuZ2VkICYmIHRoaXMuYWdncmVnYXRpb25zKSB7XHJcblx0XHRcdHRoaXMuYWdncmVnYXRpb25zID0gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5hZ2dyZWdhdGlvbnMgJiYgdGhpcy5jb25maWcuZmlsdGVycz8ucmVsb2FkU3RyYXRlZ3kgPT09ICduZXZlcicpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuYWdncmVnYXRpb25zID0gYWdncmVnYXRpb25zO1xyXG5cdFx0dGhpcy5faXNDb25maWdDaGFuZ2VkID0gZmFsc2U7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9jaGVja0NvbmZpZ0NoYW5nZSh2YWx1ZTogTmRmUmVwb3J0c0NvbmZpZykge1xyXG5cdFx0Y29uc3QgeyBhY3RpdmVRdWVyeSwgLi4uY29uZmlnIH0gPSB2YWx1ZTtcclxuXHRcdGNvbnN0IHsgYWN0aXZlUXVlcnk6IGFxLCAuLi5jdXJyZW50Q29uZmlnIH0gPSB0aGlzLl9jb25maWdTdWJqZWN0LmdldFZhbHVlKCkgfHwge307XHJcblxyXG5cdFx0dGhpcy5faXNDb25maWdDaGFuZ2VkID0gIV8uaXNFcXVhbChjdXJyZW50Q29uZmlnLCBjb25maWcpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfbG9hZFJlcG9ydHNDb25maWcoa2V5OiBzdHJpbmcpIHtcclxuXHRcdHRoaXMuX2NvbmZpZ3VyYXRpb25TZXJ2aWNlXHJcblx0XHRcdC5nZXRSZXBvcnRzQ29uZmlndXJhdGlvbihrZXkpXHJcblx0XHRcdC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuXHRcdFx0LnN1YnNjcmliZSgoY29uZmlnKSA9PiB7XHJcblx0XHRcdFx0aWYgKGNvbmZpZykge1xyXG5cdFx0XHRcdFx0dGhpcy5faW5pdFJlcG9ydHNDb25maWcoY29uZmlnKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfaW5pdFJlcG9ydHNDb25maWcoY29uZmlnOiBOZGZSZXBvcnRzQ29uZmlnKSB7XHJcblx0XHRjb25zdCB2YWx1ZSA9IF8uY2xvbmVEZWVwKGNvbmZpZyk7XHJcblx0XHR0aGlzLl9jaGVja0NvbmZpZ0NoYW5nZSh2YWx1ZSk7XHJcblx0XHR0aGlzLl9jb25maWdTdWJqZWN0Lm5leHQodmFsdWUpO1xyXG5cdFx0aWYgKHZhbHVlPy5hY3RpdmVRdWVyeSkge1xyXG5cdFx0XHR0aGlzLl91cGRhdGVBY3RpdmVRdWVyeSh2YWx1ZT8uYWN0aXZlUXVlcnkpO1xyXG5cclxuXHRcdFx0dGhpcy5fZmlsdGVyc0NyaXRlcmlhU3ViamVjdC5uZXh0KHRoaXMuX3ByZXBhcmVNYXBwZWRRdWVyeSh2YWx1ZT8uYWN0aXZlUXVlcnksIHRoaXMuZmlsdGVyc0NvbmZpZy5tb2RlKSk7XHJcblx0XHR9XHJcblx0XHR0aGlzLmlzUGFuZWxPcGVuZWQgPSBmYWxzZTtcclxuXHRcdHRoaXMuaXNEZXRhaWxzT3BlbmVkID0gZmFsc2U7XHJcblx0XHR0aGlzLl9yZXBvcnREZXRhaWxzU3ViamVjdC5uZXh0KG51bGwpO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2XHJcblx0Km5nSWY9XCJyZXBvcnRzRGF0YSQgfCBhc3luYyBhcyByZXBvcnRzXCJcclxuXHRjbGFzcz1cIm5kZi1yZXBvcnRzX19jb250YWluZXJcIlxyXG5cdFtjbGFzcy5wYW5lbC1vcGVuZWRdPVwiaXNQYW5lbE9wZW5lZCAmJiBmaWx0ZXJzQ29uZmlnXCJcclxuXHRbZGlyXT1cImRpcmVjdGlvblwiXHJcblx0bmRmRmx1aWRIZWlnaHRcclxuPlxyXG5cdDxkaXYgY2xhc3M9XCJuZGYtcmVwb3J0c19fcGFuZWwgcHJpbnQ6aGlkZGVuXCIgKm5nSWY9XCIhIWZpbHRlcnNDb25maWc/LmZpZWxkcz8ubGVuZ3RoXCI+XHJcblx0XHQ8YXBwLWZpbHRlcnMtcGFuZWxcclxuXHRcdFx0W2ZpZWxkc109XCJmaWx0ZXJzQ29uZmlnPy5maWVsZHNcIlxyXG5cdFx0XHRbYWdncmVnYXRpb25zXT1cImFnZ3JlZ2F0aW9uc1wiXHJcblx0XHRcdChmaWx0ZXJDaGFuZ2VkKT1cImZpbHRlckNoYW5nZWQoJGV2ZW50KVwiXHJcblx0XHRcdFthY3RpdmVRdWVyeV09XCJhY3RpdmVGaWx0ZXJzUXVlcnkkIHwgYXN5bmNcIlxyXG5cdFx0XHRjbGFzcz1cIm5kZi1yZXBvcnRzX19maWx0ZXJzXCJcclxuXHRcdD48L2FwcC1maWx0ZXJzLXBhbmVsPlxyXG5cdDwvZGl2PlxyXG5cclxuXHQ8ZGl2IGNsYXNzPVwibmRmLXJlcG9ydHNfX2NvbnRlbnRcIiAoc2Nyb2xsZWQpPVwib25Db250ZW50U2Nyb2xsKCRldmVudClcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJuZGYtcmVwb3J0c19faGVhZGVyIGZsZXggcHQtNCBwcmludDpoaWRkZW5cIj5cclxuXHRcdFx0PGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b2dnbGUtYnV0dG9uXCIgKGNsaWNrKT1cInRvZ2dsZVBhbmVsKClcIj5cclxuXHRcdFx0XHQ8bWF0LWljb24+IGZpbHRlcl9hbHQ8L21hdC1pY29uPlxyXG5cdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0PGFwcC1lZGl0b3ItYnV0dG9uXHJcblx0XHRcdFx0Km5nSWY9XCJqc29uRWRpdG9yRW5hYmxlZCAmJiByZXBvcnRzS2V5XCJcclxuXHRcdFx0XHRba2V5XT1cInJlcG9ydHNLZXlcIlxyXG5cdFx0XHRcdFt0eXBlXT1cImVkaXRvclR5cGVcIlxyXG5cdFx0XHQ+PC9hcHAtZWRpdG9yLWJ1dHRvbj5cclxuXHRcdFx0PGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKm5nSWY9XCJjb25maWc/Lm9wdGlvbnM/LnByaW50XCIgY2xhc3M9XCJwcmludC1idXR0b25cIiAoY2xpY2spPVwicHJpbnRBbGwoKVwiPlxyXG5cdFx0XHRcdDxtYXQtaWNvbj4gcHJpbnQ8L21hdC1pY29uPlxyXG5cdFx0XHQ8L2J1dHRvbj5cclxuXHRcdDwvZGl2PlxyXG5cdFx0PG1hdC1zcGlubmVyICpuZ0lmPVwiaXNMb2FkaW5nUmVzdWx0XCIgY2xhc3M9XCJtdC01IG14LWF1dG9cIiBbZGlhbWV0ZXJdPVwiNDhcIj48L21hdC1zcGlubmVyPlxyXG5cclxuXHRcdDxkaXYgY2xhc3M9XCJyZXBvcnRzLWdyaWRcIiAqbmdJZj1cIiFpc0xvYWRpbmdSZXN1bHRcIj5cclxuXHRcdFx0PGFwcC1uZGYtcmVwb3J0XHJcblx0XHRcdFx0Km5nRm9yPVwibGV0IGNvbmZpZyBvZiByZXBvcnRDb25maWcuaXRlbXM7IHRyYWNrQnk6IHRyYWNrQnlGblwiXHJcblx0XHRcdFx0W2NvbmZpZ109XCJjb25maWdcIlxyXG5cdFx0XHRcdFtkYXRhXT1cInJlcG9ydHM/LnJlc3BvbnNlXCJcclxuXHRcdFx0XHRbY3JpdGVyaWFdPVwiZmlsdGVyc1BhcmFtcyQgfCBhc3luY1wiXHJcblx0XHRcdFx0W2RpcmVjdGlvbl09XCJkaXJlY3Rpb25cIlxyXG5cdFx0XHRcdFthdHRyLmRhdGEtd2lkdGhdPVwiY29uZmlnPy5sYXlvdXQ/LndpZHRoIHx8IDRcIlxyXG5cdFx0XHRcdFthdHRyLmRhdGEtaGVpZ2h0XT1cImNvbmZpZz8ubGF5b3V0Py5oZWlnaHQgfHwgJ2F1dG8nXCJcclxuXHRcdFx0XHRbYXR0ci5kYXRhLXN0YXJ0LWNvbHVtbl09XCJjb25maWc/LmxheW91dD8uY29sdW1uUG9zaXRpb24gfHwgJ2F1dG8nXCJcclxuXHRcdFx0XHRbYXR0ci5kYXRhLXN0YXJ0LXJvd109XCJjb25maWc/LmxheW91dD8ucm93UG9zaXRpb24gfHwgJ2F1dG8nXCJcclxuXHRcdFx0XHRbY2xhc3Mud2lkZV09XCJjb25maWc/LmxheW91dD8ud2lkdGggPj0gNlwiXHJcblx0XHRcdFx0Y2xhc3M9XCJyZXBvcnRzLWdyaWRfX2l0ZW0ge3sgY29uZmlnPy5sYXlvdXQ/LnN0eWxlQ2xhc3MgfX0gXCJcclxuXHRcdFx0XHQob25OYXZpZ2F0ZSk9XCJvbk5hdmlnYXRlKCRldmVudClcIlxyXG5cdFx0XHRcdChvbk9wZW4pPVwib3BlblJlcG9ydERldGFpbHMoJGV2ZW50LCBjb25maWcpXCJcclxuXHRcdFx0PjwvYXBwLW5kZi1yZXBvcnQ+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuXHQ8ZGl2XHJcblx0XHRjbGFzcz1cIm5kZi1yZXBvcnRzX19kZXRhaWxzIHByaW50OmhpZGRlblwiXHJcblx0XHRbY2xhc3Mub3BlbmVkXT1cInNob3dEZXRhaWxzXCJcclxuXHRcdFtAc2xpZGVJbk91dF09XCJzaG93RGV0YWlscyA/ICdvcGVuJyA6ICdjbG9zZWQnXCJcclxuXHRcdChAc2xpZGVJbk91dC5kb25lKT1cIm9uRGV0YWlsc0FuaW1hdGlvbkVuZCgkZXZlbnQpXCJcclxuXHQ+XHJcblx0XHQ8YXBwLW5kZi10YWJsZVxyXG5cdFx0XHQqbmdJZj1cInJlcG9ydERldGFpbHMkIHwgYXN5bmMgYXMgcmVwb3J0XCJcclxuXHRcdFx0W2NvbmZpZ109XCJyZXBvcnQuY29uZmlnXCJcclxuXHRcdFx0W2FjdGl2ZVF1ZXJ5XT1cImFjdGl2ZUZpbHRlcnNRdWVyeSQgfCBhc3luY1wiXHJcblx0XHRcdFtjdXN0b21Dcml0ZXJpYV09XCJmaWx0ZXJzUGFyYW1zJCB8IGFzeW5jXCJcclxuXHRcdD5cclxuXHRcdFx0PG5nLXRlbXBsYXRlIHNlYXJjaFRhYmxlVGVtcGxhdGU+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cIm5kZi1yZXBvcnRzX19kZXRhaWxzX19oZWFkZXIgZmxleCBnYXAtMlwiPlxyXG5cdFx0XHRcdFx0PGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b2dnbGUtYnV0dG9uXCIgKGNsaWNrKT1cInRvZ2dsZVBhbmVsKClcIj5cclxuXHRcdFx0XHRcdFx0PG1hdC1pY29uPiBmaWx0ZXJfYWx0PC9tYXQtaWNvbj5cclxuXHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0PGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJjbG9zZS1idXR0b25cIiAoY2xpY2spPVwiY2xvc2VEZXRhaWxzUGFuZWwoKVwiPlxyXG5cdFx0XHRcdFx0XHQ8bWF0LWljb24+IGNsb3NlPC9tYXQtaWNvbj5cclxuXHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDxoMz5cclxuXHRcdFx0XHRcdHt7IHJlcG9ydC5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxyXG5cdFx0XHRcdDwvaDM+XHJcblx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHQ8L2FwcC1uZGYtdGFibGU+XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcmVwb3J0cy9uZGYtcmVwb3J0cy9tb2RlbHMvZGV0YWlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFibGVDb2x1bW5Db25maWcsIFRhYmxlRXhwb3J0Q29uZmlnLCBUYWJsZVNvcnRDb25maWcsIFRhYmxlU29ydE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi90YWJsZXMvbmRmLXRhYmxlJztcclxuXHJcbmltcG9ydCB7IE5kZlJlcG9ydHNSZXF1ZXN0IH0gZnJvbSAnLi9yZXF1ZXN0JztcclxuaW1wb3J0IHsgRXZhbHVhdGVkU3RyaW5nIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkJztcclxuXHJcbmV4cG9ydCB0eXBlIFJlcG9ydERldGFpbHNDb25maWcgPSB7XHJcblx0ZW5hYmxlZDogYm9vbGVhbjtcclxuXHRzb3VyY2U/OiBSZXBvcnREZXRhaWxzS2V5IHwgUmVwb3J0Q29uZmlnT3B0aW9ucztcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIFJlcG9ydERldGFpbHNLZXkgPSBzdHJpbmc7XHJcblxyXG5leHBvcnQgdHlwZSBSZXBvcnRDb25maWdPcHRpb25zID0ge1xyXG5cdHJlcXVlc3Q/OiBQYXJ0aWFsPE5kZlJlcG9ydHNSZXF1ZXN0PiAmIHtcclxuXHRcdGFjdGlvbnM/OiB7XHJcblx0XHRcdGJlZm9yZVN1Ym1pdD86IEV2YWx1YXRlZFN0cmluZzwncGF5bG9hZCc+O1xyXG5cdFx0fTtcclxuXHR9O1xyXG5cdGNvbHVtbnM/OiBUYWJsZUNvbHVtbkNvbmZpZ1tdO1xyXG5cdGZpZWxkcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XHJcblx0cHJlZml4Pzogc3RyaW5nO1xyXG5cdHF1aWNrRmlsdGVycz86IHN0cmluZztcclxuXHRjb2x1bW5zT3B0aW9ucz86IHtcclxuXHRcdHRvZ2dsZT86IGJvb2xlYW47XHJcblx0XHRzb3J0YWJsZT86IFRhYmxlU29ydENvbmZpZztcclxuXHR9O1xyXG5cdHNvcnRpbmdCeT86IFRhYmxlU29ydE9wdGlvbnM7XHJcblx0ZXhwb3J0PzogVGFibGVFeHBvcnRDb25maWc7XHJcbn07XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcmVwb3J0cy9uZGYtcmVwb3J0cy9tb2RlbHMvZGV0YWlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFibGVDb2x1bW5Db25maWcsIFRhYmxlRXhwb3J0Q29uZmlnLCBUYWJsZVNvcnRDb25maWcsIFRhYmxlU29ydE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi90YWJsZXMvbmRmLXRhYmxlJztcclxuXHJcbmltcG9ydCB7IE5kZlJlcG9ydHNSZXF1ZXN0IH0gZnJvbSAnLi9yZXF1ZXN0JztcclxuaW1wb3J0IHsgRXZhbHVhdGVkU3RyaW5nIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkJztcclxuXHJcbmV4cG9ydCB0eXBlIFJlcG9ydERldGFpbHNDb25maWcgPSB7XHJcblx0ZW5hYmxlZDogYm9vbGVhbjtcclxuXHRzb3VyY2U6IFJlcG9ydERldGFpbHNLZXkgfCBSZXBvcnRDb25maWdPcHRpb25zO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgUmVwb3J0RGV0YWlsc0tleSA9IHN0cmluZztcclxuXHJcbmV4cG9ydCB0eXBlIFJlcG9ydENvbmZpZ09wdGlvbnMgPSB7XHJcblx0cmVxdWVzdD86IFBhcnRpYWw8TmRmUmVwb3J0c1JlcXVlc3Q+ICYge1xyXG5cdFx0YWN0aW9ucz86IHtcclxuXHRcdFx0YmVmb3JlU3VibWl0PzogRXZhbHVhdGVkU3RyaW5nPCdwYXlsb2FkJz47XHJcblx0XHR9O1xyXG5cdH07XHJcblx0Y29sdW1ucz86IFRhYmxlQ29sdW1uQ29uZmlnW107XHJcblx0ZmllbGRzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcclxuXHRwcmVmaXg/OiBzdHJpbmc7XHJcblx0cXVpY2tGaWx0ZXJzPzogc3RyaW5nO1xyXG5cdGNvbHVtbnNPcHRpb25zPzoge1xyXG5cdFx0dG9nZ2xlPzogYm9vbGVhbjtcclxuXHRcdHNvcnRhYmxlPzogVGFibGVTb3J0Q29uZmlnO1xyXG5cdH07XHJcblx0c29ydGluZ0J5PzogVGFibGVTb3J0T3B0aW9ucztcclxuXHRleHBvcnQ/OiBUYWJsZUV4cG9ydENvbmZpZztcclxufTtcclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXJlcG9ydHMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL21vZGVscy9uZGYtcmVwb3J0cy5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkQ29uZmlnTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9uZGYtZmlsdGVycyc7XHJcbmltcG9ydCB7IFJlcG9ydERldGFpbHNDb25maWcgfSBmcm9tICcuL2RldGFpbHMnO1xyXG5pbXBvcnQgeyBOZGZSZXBvcnRzUmVxdWVzdCB9IGZyb20gJy4vcmVxdWVzdCc7XHJcbmltcG9ydCB7IFJlcG9ydERlZmluaXRpb25Nb2RlbCB9IGZyb20gJy4vcmVwb3J0LWNvbmZpZyc7XHJcblxyXG50eXBlIE5kZlJlcG9ydHNGaWx0ZXJzID0ge1xyXG5cdG1vZGU6ICdwYXlsb2FkJyB8ICdwYXJhbXMnO1xyXG5cdHBheWxvYWQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG5cdHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblx0ZmllbGRzOiBGaWVsZENvbmZpZ01vZGVsW107XHJcblx0dmlzaWJsZT86IGJvb2xlYW47XHJcblx0dG9nZ2xlUGFuZWw/OiBib29sZWFuO1xyXG5cdHJlbG9hZFN0cmF0ZWd5PzogJ2Fsd2F5cycgfCAnbmV2ZXInO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgTmRmUmVwb3J0c0NvbmZpZyA9IHtcclxuXHRyZXF1ZXN0OiBOZGZSZXBvcnRzUmVxdWVzdDtcclxuXHRmaWx0ZXJzPzogTmRmUmVwb3J0c0ZpbHRlcnM7XHJcblx0b3B0aW9ucz86IHtcclxuXHRcdHByaW50PzogYm9vbGVhbjtcclxuXHR9O1xyXG5cdHJlcG9ydHM6IHtcclxuXHRcdGRldGFpbHM/OiBSZXF1aXJlZDxSZXBvcnREZXRhaWxzQ29uZmlnPjtcclxuXHRcdGl0ZW1zOiBSZXBvcnREZWZpbml0aW9uTW9kZWxbXTtcclxuXHR9O1xyXG5cdGFjdGl2ZVF1ZXJ5PzogUmVjb3JkPHN0cmluZywgYW55PjtcclxufTtcclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXJlcG9ydHMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL21vZGVscy9uZGYtcmVwb3J0cy5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkQ29uZmlnTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9uZGYtZmlsdGVycyc7XHJcbmltcG9ydCB7IE5kZlJlcG9ydHNSZXF1ZXN0IH0gZnJvbSAnLi9yZXF1ZXN0JztcclxuaW1wb3J0IHsgUmVwb3J0RGVmaW5pdGlvbk1vZGVsIH0gZnJvbSAnLi9yZXBvcnQtY29uZmlnJztcclxuXHJcbnR5cGUgTmRmUmVwb3J0c0ZpbHRlcnMgPSB7XHJcblx0bW9kZTogJ3BheWxvYWQnIHwgJ3BhcmFtcyc7XHJcblx0cGF5bG9hZD86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblx0cGFyYW1zPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHRmaWVsZHM6IEZpZWxkQ29uZmlnTW9kZWxbXTtcclxuXHR2aXNpYmxlPzogYm9vbGVhbjtcclxuXHR0b2dnbGVQYW5lbD86IGJvb2xlYW47XHJcblx0cmVsb2FkU3RyYXRlZ3k/OiAnYWx3YXlzJyB8ICduZXZlcic7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBOZGZSZXBvcnRzQ29uZmlnID0ge1xyXG5cdHJlcXVlc3Q6IE5kZlJlcG9ydHNSZXF1ZXN0O1xyXG5cdGZpbHRlcnM/OiBOZGZSZXBvcnRzRmlsdGVycztcclxuXHRvcHRpb25zPzoge1xyXG5cdFx0cHJpbnQ/OiBib29sZWFuO1xyXG5cdH07XHJcblx0cmVwb3J0czoge1xyXG5cdFx0aXRlbXM6IFJlcG9ydERlZmluaXRpb25Nb2RlbFtdO1xyXG5cdH07XHJcblx0YWN0aXZlUXVlcnk/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG59O1xyXG4iXX0=
@@ -48,7 +48,10 @@ NdfReportsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
48
48
  DynamicTimelineReportComponent,
49
49
  TimeGroupSelectorComponent,
50
50
  GraphDialogComponent,
51
- TimelineDialogComponent, ScrollableDivDirective, GraphChartComponent, DigitChartComponent, ReportActionsComponent, CustomReportComponent, CustomChartComponent, CustomChartDialogComponent], imports: [CommonModule,
51
+ TimelineDialogComponent, ScrollableDivDirective, GraphChartComponent, DigitChartComponent, ReportActionsComponent,
52
+ CustomReportComponent,
53
+ CustomChartComponent,
54
+ CustomChartDialogComponent], imports: [CommonModule,
52
55
  TranslateModule,
53
56
  MatMenuModule,
54
57
  MatIconModule,
@@ -93,7 +96,16 @@ NdfReportsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versio
93
96
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsModule, decorators: [{
94
97
  type: NgModule,
95
98
  args: [{
96
- declarations: [CONTAINERS, COMPONENTS, DIRECTIVES, CHARTS, ReportActionsComponent, CustomReportComponent, CustomChartComponent, CustomChartDialogComponent],
99
+ declarations: [
100
+ CONTAINERS,
101
+ COMPONENTS,
102
+ DIRECTIVES,
103
+ CHARTS,
104
+ ReportActionsComponent,
105
+ CustomReportComponent,
106
+ CustomChartComponent,
107
+ CustomChartDialogComponent
108
+ ],
97
109
  imports: [
98
110
  CommonModule,
99
111
  TranslateModule,
@@ -119,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
119
131
  exports: [CONTAINERS]
120
132
  }]
121
133
  }] });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXJlcG9ydHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL25kZi1yZXBvcnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0UsT0FBTyxF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QXFCLEVBQUUsb0JBQW9CLEVBQUUsMEJBQTBCLENBQUM7b0JBQzNKLE9BQU8sRUFBRTt3QkFDUixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixxQkFBcUI7d0JBQ3JCLHdCQUF3Qjt3QkFDeEIsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixnQkFBZ0I7d0JBQ2hCLGNBQWM7cUJBQ2Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgTmdTZWxlY3RNb2R1bGUgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBOdXhlb0RpYWxvZ01vZHVsZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgRHluYW1pY0Zvcm1Nb2R1bGUgfSBmcm9tICcuLi8uLi9keW5hbWljLWZvcm0vZHluYW1pYy1mb3JtLm1vZHVsZSc7XHJcbmltcG9ydCB7IE5kZlRhYmxlTW9kdWxlIH0gZnJvbSAnLi4vLi4vdGFibGVzJztcclxuaW1wb3J0IHsgQ2hhcnRzTW9kdWxlIH0gZnJvbSAnLi4vY2hhcnRzJztcclxuaW1wb3J0IHsgRGlnaXRDaGFydENvbXBvbmVudCwgR3JhcGhDaGFydENvbXBvbmVudCB9IGZyb20gJy4vY2hhcnRzLWNvbXBvbmVudHMnO1xyXG5pbXBvcnQge1xyXG5cdENoYXJ0VHlwZVNlbGVjdG9yQ29tcG9uZW50LFxyXG5cdERpZ2l0UmVwb3J0Q29tcG9uZW50LFxyXG5cdER5bmFtaWNUaW1lbGluZVJlcG9ydENvbXBvbmVudCxcclxuXHRHcmFwaERpYWxvZ0NvbXBvbmVudCxcclxuXHRHcmFwaFJlcG9ydENvbXBvbmVudCxcclxuXHRUaW1lR3JvdXBTZWxlY3RvckNvbXBvbmVudCxcclxuXHRUaW1lbGluZURpYWxvZ0NvbXBvbmVudFxyXG59IGZyb20gJy4vY29tcG9uZW50cyc7XHJcblxyXG5pbXBvcnQgeyBOZGZSZXBvcnRDb21wb25lbnQsIE5kZlJlcG9ydHNDb21wb25lbnQgfSBmcm9tICcuL2NvbnRhaW5lcnMnO1xyXG5pbXBvcnQgeyBTY3JvbGxhYmxlRGl2RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcclxuaW1wb3J0IHsgRmx1aWRIZWlnaHRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7IERpcmVjdGl2ZU1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9kaXJlY3RpdmUubW9kdWxlJztcclxuaW1wb3J0IHsgRWRpdG9yTmF2aWdhdGVCdXR0b24gfSBmcm9tICcuLi8uLi9uZGYtY29uZmlnLWVkaXRvci9wdWJsaWMnO1xyXG5pbXBvcnQgeyBOZGZGaWx0ZXJzUGFuZWxNb2R1bGUgfSBmcm9tICcuLi8uLi9uZGYtZmlsdGVycyc7XHJcbmltcG9ydCB7IFJlcG9ydEFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvX3BhcnRzL3JlcG9ydC1hY3Rpb25zL3JlcG9ydC1hY3Rpb25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENoYXJ0UGFuZWxNb2R1bGUgfSBmcm9tICcuLi9jaGFydC1wYW5lbCc7XHJcbmltcG9ydCB7IFNrZWxldG9uTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2tlbGV0b24nO1xyXG5pbXBvcnQgeyBDdXN0b21SZXBvcnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLXJlcG9ydC9jdXN0b20tcmVwb3J0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEN1c3RvbUNoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9jaGFydHMtY29tcG9uZW50cy9jdXN0b20tY2hhcnQvY3VzdG9tLWNoYXJ0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEN1c3RvbUNoYXJ0RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL19wYXJ0cy9jdXN0b20tY2hhcnQtZGlhbG9nL2N1c3RvbS1jaGFydC1kaWFsb2cuY29tcG9uZW50JztcclxuXHJcbmNvbnN0IENPTlRBSU5FUlMgPSBbTmRmUmVwb3J0c0NvbXBvbmVudCwgTmRmUmVwb3J0Q29tcG9uZW50XTtcclxuXHJcbmNvbnN0IERJUkVDVElWRVMgPSBbU2Nyb2xsYWJsZURpdkRpcmVjdGl2ZV07XHJcblxyXG5jb25zdCBDSEFSVFMgPSBbR3JhcGhDaGFydENvbXBvbmVudCwgRGlnaXRDaGFydENvbXBvbmVudF07XHJcblxyXG5jb25zdCBDT01QT05FTlRTID0gW1xyXG5cdENoYXJ0VHlwZVNlbGVjdG9yQ29tcG9uZW50LFxyXG5cdERpZ2l0UmVwb3J0Q29tcG9uZW50LFxyXG5cdEdyYXBoUmVwb3J0Q29tcG9uZW50LFxyXG5cdER5bmFtaWNUaW1lbGluZVJlcG9ydENvbXBvbmVudCxcclxuXHRUaW1lR3JvdXBTZWxlY3RvckNvbXBvbmVudCxcclxuXHRHcmFwaERpYWxvZ0NvbXBvbmVudCxcclxuXHRUaW1lbGluZURpYWxvZ0NvbXBvbmVudFxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuXHRkZWNsYXJhdGlvbnM6IFtDT05UQUlORVJTLCBDT01QT05FTlRTLCBESVJFQ1RJVkVTLCBDSEFSVFMsIFJlcG9ydEFjdGlvbnNDb21wb25lbnQsIEN1c3RvbVJlcG9ydENvbXBvbmVudCwgQ3VzdG9tQ2hhcnRDb21wb25lbnQsIEN1c3RvbUNoYXJ0RGlhbG9nQ29tcG9uZW50XSxcclxuXHRpbXBvcnRzOiBbXHJcblx0XHRDb21tb25Nb2R1bGUsXHJcblx0XHRUcmFuc2xhdGVNb2R1bGUsXHJcblx0XHRNYXRNZW51TW9kdWxlLFxyXG5cdFx0TWF0SWNvbk1vZHVsZSxcclxuXHRcdE1hdEJ1dHRvbk1vZHVsZSxcclxuXHRcdENoYXJ0c01vZHVsZSxcclxuXHRcdER5bmFtaWNGb3JtTW9kdWxlLFxyXG5cdFx0UmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuXHRcdEZvcm1zTW9kdWxlLFxyXG5cdFx0TmdTZWxlY3RNb2R1bGUsXHJcblx0XHRNYXRUb29sdGlwTW9kdWxlLFxyXG5cdFx0Rmx1aWRIZWlnaHRNb2R1bGUsXHJcblx0XHROZGZGaWx0ZXJzUGFuZWxNb2R1bGUsXHJcblx0XHRNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXHJcblx0XHROdXhlb0RpYWxvZ01vZHVsZSxcclxuXHRcdE5kZlRhYmxlTW9kdWxlLFxyXG5cdFx0RGlyZWN0aXZlTW9kdWxlLFxyXG5cdFx0RWRpdG9yTmF2aWdhdGVCdXR0b24sXHJcblx0XHRDaGFydFBhbmVsTW9kdWxlLFxyXG5cdFx0U2tlbGV0b25Nb2R1bGVcclxuXHRdLFxyXG5cdGV4cG9ydHM6IFtDT05UQUlORVJTXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmRmUmVwb3J0c01vZHVsZSB7fVxyXG4iXX0=
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXJlcG9ydHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL25kZi1yZXBvcnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0UsT0FBTyxF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Qjt3QkFDdEIscUJBQXFCO3dCQUNyQixvQkFBb0I7d0JBQ3BCLDBCQUEwQjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNSLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckIsd0JBQXdCO3dCQUN4QixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLGdCQUFnQjt3QkFDaEIsY0FBYztxQkFDZDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUM7aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBOZ1NlbGVjdE1vZHVsZSB9IGZyb20gJ0BuZy1zZWxlY3Qvbmctc2VsZWN0JztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IE51eGVvRGlhbG9nTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBEeW5hbWljRm9ybU1vZHVsZSB9IGZyb20gJy4uLy4uL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0ubW9kdWxlJztcclxuaW1wb3J0IHsgTmRmVGFibGVNb2R1bGUgfSBmcm9tICcuLi8uLi90YWJsZXMnO1xyXG5pbXBvcnQgeyBDaGFydHNNb2R1bGUgfSBmcm9tICcuLi9jaGFydHMnO1xyXG5pbXBvcnQgeyBEaWdpdENoYXJ0Q29tcG9uZW50LCBHcmFwaENoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9jaGFydHMtY29tcG9uZW50cyc7XHJcbmltcG9ydCB7XHJcblx0Q2hhcnRUeXBlU2VsZWN0b3JDb21wb25lbnQsXHJcblx0RGlnaXRSZXBvcnRDb21wb25lbnQsXHJcblx0RHluYW1pY1RpbWVsaW5lUmVwb3J0Q29tcG9uZW50LFxyXG5cdEdyYXBoRGlhbG9nQ29tcG9uZW50LFxyXG5cdEdyYXBoUmVwb3J0Q29tcG9uZW50LFxyXG5cdFRpbWVHcm91cFNlbGVjdG9yQ29tcG9uZW50LFxyXG5cdFRpbWVsaW5lRGlhbG9nQ29tcG9uZW50XHJcbn0gZnJvbSAnLi9jb21wb25lbnRzJztcclxuXHJcbmltcG9ydCB7IE5kZlJlcG9ydENvbXBvbmVudCwgTmRmUmVwb3J0c0NvbXBvbmVudCB9IGZyb20gJy4vY29udGFpbmVycyc7XHJcbmltcG9ydCB7IFNjcm9sbGFibGVEaXZEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xyXG5pbXBvcnQgeyBGbHVpZEhlaWdodE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kaXJlY3RpdmVzJztcclxuaW1wb3J0IHsgRGlyZWN0aXZlTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2RpcmVjdGl2ZS5tb2R1bGUnO1xyXG5pbXBvcnQgeyBFZGl0b3JOYXZpZ2F0ZUJ1dHRvbiB9IGZyb20gJy4uLy4uL25kZi1jb25maWctZWRpdG9yL3B1YmxpYyc7XHJcbmltcG9ydCB7IE5kZkZpbHRlcnNQYW5lbE1vZHVsZSB9IGZyb20gJy4uLy4uL25kZi1maWx0ZXJzJztcclxuaW1wb3J0IHsgUmVwb3J0QWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9fcGFydHMvcmVwb3J0LWFjdGlvbnMvcmVwb3J0LWFjdGlvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2hhcnRQYW5lbE1vZHVsZSB9IGZyb20gJy4uL2NoYXJ0LXBhbmVsJztcclxuaW1wb3J0IHsgU2tlbGV0b25Nb2R1bGUgfSBmcm9tICcuLi8uLi9za2VsZXRvbic7XHJcbmltcG9ydCB7IEN1c3RvbVJlcG9ydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20tcmVwb3J0L2N1c3RvbS1yZXBvcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3VzdG9tQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL2NoYXJ0cy1jb21wb25lbnRzL2N1c3RvbS1jaGFydC9jdXN0b20tY2hhcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3VzdG9tQ2hhcnREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvX3BhcnRzL2N1c3RvbS1jaGFydC1kaWFsb2cvY3VzdG9tLWNoYXJ0LWRpYWxvZy5jb21wb25lbnQnO1xyXG5cclxuY29uc3QgQ09OVEFJTkVSUyA9IFtOZGZSZXBvcnRzQ29tcG9uZW50LCBOZGZSZXBvcnRDb21wb25lbnRdO1xyXG5cclxuY29uc3QgRElSRUNUSVZFUyA9IFtTY3JvbGxhYmxlRGl2RGlyZWN0aXZlXTtcclxuXHJcbmNvbnN0IENIQVJUUyA9IFtHcmFwaENoYXJ0Q29tcG9uZW50LCBEaWdpdENoYXJ0Q29tcG9uZW50XTtcclxuXHJcbmNvbnN0IENPTVBPTkVOVFMgPSBbXHJcblx0Q2hhcnRUeXBlU2VsZWN0b3JDb21wb25lbnQsXHJcblx0RGlnaXRSZXBvcnRDb21wb25lbnQsXHJcblx0R3JhcGhSZXBvcnRDb21wb25lbnQsXHJcblx0RHluYW1pY1RpbWVsaW5lUmVwb3J0Q29tcG9uZW50LFxyXG5cdFRpbWVHcm91cFNlbGVjdG9yQ29tcG9uZW50LFxyXG5cdEdyYXBoRGlhbG9nQ29tcG9uZW50LFxyXG5cdFRpbWVsaW5lRGlhbG9nQ29tcG9uZW50XHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG5cdGRlY2xhcmF0aW9uczogW1xyXG5cdFx0Q09OVEFJTkVSUyxcclxuXHRcdENPTVBPTkVOVFMsXHJcblx0XHRESVJFQ1RJVkVTLFxyXG5cdFx0Q0hBUlRTLFxyXG5cdFx0UmVwb3J0QWN0aW9uc0NvbXBvbmVudCxcclxuXHRcdEN1c3RvbVJlcG9ydENvbXBvbmVudCxcclxuXHRcdEN1c3RvbUNoYXJ0Q29tcG9uZW50LFxyXG5cdFx0Q3VzdG9tQ2hhcnREaWFsb2dDb21wb25lbnRcclxuXHRdLFxyXG5cdGltcG9ydHM6IFtcclxuXHRcdENvbW1vbk1vZHVsZSxcclxuXHRcdFRyYW5zbGF0ZU1vZHVsZSxcclxuXHRcdE1hdE1lbnVNb2R1bGUsXHJcblx0XHRNYXRJY29uTW9kdWxlLFxyXG5cdFx0TWF0QnV0dG9uTW9kdWxlLFxyXG5cdFx0Q2hhcnRzTW9kdWxlLFxyXG5cdFx0RHluYW1pY0Zvcm1Nb2R1bGUsXHJcblx0XHRSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG5cdFx0Rm9ybXNNb2R1bGUsXHJcblx0XHROZ1NlbGVjdE1vZHVsZSxcclxuXHRcdE1hdFRvb2x0aXBNb2R1bGUsXHJcblx0XHRGbHVpZEhlaWdodE1vZHVsZSxcclxuXHRcdE5kZkZpbHRlcnNQYW5lbE1vZHVsZSxcclxuXHRcdE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcclxuXHRcdE51eGVvRGlhbG9nTW9kdWxlLFxyXG5cdFx0TmRmVGFibGVNb2R1bGUsXHJcblx0XHREaXJlY3RpdmVNb2R1bGUsXHJcblx0XHRFZGl0b3JOYXZpZ2F0ZUJ1dHRvbixcclxuXHRcdENoYXJ0UGFuZWxNb2R1bGUsXHJcblx0XHRTa2VsZXRvbk1vZHVsZVxyXG5cdF0sXHJcblx0ZXhwb3J0czogW0NPTlRBSU5FUlNdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZGZSZXBvcnRzTW9kdWxlIHt9XHJcbiJdfQ==
@@ -0,0 +1,54 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class ChartThemeService {
5
+ constructor() {
6
+ this.currentTheme = new BehaviorSubject('light');
7
+ this.theme$ = this.currentTheme.asObservable();
8
+ this._initializeThemeDetection();
9
+ }
10
+ getCurrentTheme() {
11
+ return this._getThemeFromBody();
12
+ }
13
+ destroy() {
14
+ if (this.observer) {
15
+ this.observer.disconnect();
16
+ }
17
+ }
18
+ _initializeThemeDetection() {
19
+ const initialTheme = this._getThemeFromBody();
20
+ if (initialTheme !== this.currentTheme.value) {
21
+ this.currentTheme.next(initialTheme);
22
+ }
23
+ this._setupThemeWatcher();
24
+ }
25
+ _getThemeFromBody() {
26
+ const bodyTheme = document.body.getAttribute('data-theme');
27
+ return bodyTheme === 'dark' || bodyTheme === 'light' ? bodyTheme : 'light';
28
+ }
29
+ _setupThemeWatcher() {
30
+ this.observer = new MutationObserver((mutations) => {
31
+ mutations.forEach((mutation) => {
32
+ if (mutation.type === 'attributes' && mutation.attributeName === 'data-theme') {
33
+ const newTheme = this._getThemeFromBody();
34
+ if (newTheme !== this.currentTheme.value) {
35
+ this.currentTheme.next(newTheme);
36
+ }
37
+ }
38
+ });
39
+ });
40
+ this.observer.observe(document.body, {
41
+ attributes: true,
42
+ attributeFilter: ['data-theme']
43
+ });
44
+ }
45
+ }
46
+ ChartThemeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ChartThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
47
+ ChartThemeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ChartThemeService, providedIn: 'root' });
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ChartThemeService, decorators: [{
49
+ type: Injectable,
50
+ args: [{
51
+ providedIn: 'root'
52
+ }]
53
+ }], ctorParameters: function () { return []; } });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtdGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcmVwb3J0cy9uZGYtcmVwb3J0cy9zZXJ2aWNlcy9jaGFydC10aGVtZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLdkMsTUFBTSxPQUFPLGlCQUFpQjtJQUs3QjtRQUpRLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQW1CLE9BQU8sQ0FBQyxDQUFDO1FBQy9ELFdBQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBSWhELElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFHRCxlQUFlO1FBQ2QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsT0FBTztRQUNOLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQzNCO0lBQ0YsQ0FBQztJQUdPLHlCQUF5QjtRQUNoQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM5QyxJQUFJLFlBQVksS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRTtZQUM3QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNyQztRQUNELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxpQkFBaUI7UUFDeEIsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0QsT0FBTyxTQUFTLEtBQUssTUFBTSxJQUFJLFNBQVMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQzVFLENBQUM7SUFFTyxrQkFBa0I7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGdCQUFnQixDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDbEQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUM5QixJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssWUFBWSxJQUFJLFFBQVEsQ0FBQyxhQUFhLEtBQUssWUFBWSxFQUFFO29CQUM5RSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztvQkFDMUMsSUFBSSxRQUFRLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUU7d0JBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3FCQUNqQztpQkFDRDtZQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFO1lBQ3BDLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGVBQWUsRUFBRSxDQUFDLFlBQVksQ0FBQztTQUMvQixDQUFDLENBQUM7SUFDSixDQUFDOzsrR0FsRFcsaUJBQWlCO21IQUFqQixpQkFBaUIsY0FGakIsTUFBTTs0RkFFTixpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuXHRwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIENoYXJ0VGhlbWVTZXJ2aWNlIHtcclxuXHRwcml2YXRlIGN1cnJlbnRUaGVtZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8J2xpZ2h0JyB8ICdkYXJrJz4oJ2xpZ2h0Jyk7XHJcblx0cHVibGljIHRoZW1lJCA9IHRoaXMuY3VycmVudFRoZW1lLmFzT2JzZXJ2YWJsZSgpO1xyXG5cdHByaXZhdGUgb2JzZXJ2ZXI/OiBNdXRhdGlvbk9ic2VydmVyO1xyXG5cclxuXHRjb25zdHJ1Y3RvcigpIHtcclxuXHRcdHRoaXMuX2luaXRpYWxpemVUaGVtZURldGVjdGlvbigpO1xyXG5cdH1cclxuXHJcblxyXG5cdGdldEN1cnJlbnRUaGVtZSgpOiAnbGlnaHQnIHwgJ2RhcmsnIHtcclxuXHRcdHJldHVybiB0aGlzLl9nZXRUaGVtZUZyb21Cb2R5KCk7XHJcblx0fVxyXG5cclxuXHRkZXN0cm95KCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMub2JzZXJ2ZXIpIHtcclxuXHRcdFx0dGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHJcblx0cHJpdmF0ZSBfaW5pdGlhbGl6ZVRoZW1lRGV0ZWN0aW9uKCk6IHZvaWQge1xyXG5cdFx0Y29uc3QgaW5pdGlhbFRoZW1lID0gdGhpcy5fZ2V0VGhlbWVGcm9tQm9keSgpO1xyXG5cdFx0aWYgKGluaXRpYWxUaGVtZSAhPT0gdGhpcy5jdXJyZW50VGhlbWUudmFsdWUpIHtcclxuXHRcdFx0dGhpcy5jdXJyZW50VGhlbWUubmV4dChpbml0aWFsVGhlbWUpO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5fc2V0dXBUaGVtZVdhdGNoZXIoKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX2dldFRoZW1lRnJvbUJvZHkoKTogJ2xpZ2h0JyB8ICdkYXJrJyB7XHJcblx0XHRjb25zdCBib2R5VGhlbWUgPSBkb2N1bWVudC5ib2R5LmdldEF0dHJpYnV0ZSgnZGF0YS10aGVtZScpO1xyXG5cdFx0cmV0dXJuIGJvZHlUaGVtZSA9PT0gJ2RhcmsnIHx8IGJvZHlUaGVtZSA9PT0gJ2xpZ2h0JyA/IGJvZHlUaGVtZSA6ICdsaWdodCc7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9zZXR1cFRoZW1lV2F0Y2hlcigpOiB2b2lkIHtcclxuXHRcdHRoaXMub2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XHJcblx0XHRcdG11dGF0aW9ucy5mb3JFYWNoKChtdXRhdGlvbikgPT4ge1xyXG5cdFx0XHRcdGlmIChtdXRhdGlvbi50eXBlID09PSAnYXR0cmlidXRlcycgJiYgbXV0YXRpb24uYXR0cmlidXRlTmFtZSA9PT0gJ2RhdGEtdGhlbWUnKSB7XHJcblx0XHRcdFx0XHRjb25zdCBuZXdUaGVtZSA9IHRoaXMuX2dldFRoZW1lRnJvbUJvZHkoKTtcclxuXHRcdFx0XHRcdGlmIChuZXdUaGVtZSAhPT0gdGhpcy5jdXJyZW50VGhlbWUudmFsdWUpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5jdXJyZW50VGhlbWUubmV4dChuZXdUaGVtZSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH0pO1xyXG5cclxuXHRcdHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7XHJcblx0XHRcdGF0dHJpYnV0ZXM6IHRydWUsXHJcblx0XHRcdGF0dHJpYnV0ZUZpbHRlcjogWydkYXRhLXRoZW1lJ11cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblxyXG59XHJcbiJdfQ==
@@ -74,4 +74,4 @@ DynamicTimelineReportService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "
74
74
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTimelineReportService, decorators: [{
75
75
  type: Injectable
76
76
  }], ctorParameters: function () { return [{ type: i1.NdfReportsService }]; } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10aW1lbGluZS1yZXBvcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcmVwb3J0cy9uZGYtcmVwb3J0cy9zZXJ2aWNlcy9keW5hbWljLXRpbWVsaW5lLXJlcG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBaUIsTUFBTSxNQUFNLENBQUM7QUFFMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUV2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUcvQyxNQUFNLE9BQU8sNEJBQTRCO0lBV3hDLFlBQW9CLGtCQUFxQztRQUFyQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBVnpELG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBRVAsc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQWEsSUFBSSxDQUFDLENBQUM7UUFDM0UsbUJBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFdEMsdUJBQWtCLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFMUUsYUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVVLENBQUM7SUFJN0QsV0FBVyxDQUFDLEtBQWlCO1FBQzVCLElBQUksQ0FBQyxpQkFBaUIs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USxFQUFFO1NBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRUosT0FBTztZQUNOLE9BQU8sRUFBRTtnQkFDUixnQkFBZ0IsRUFBRSxJQUFJO2FBQ3RCO1NBQ0QsQ0FBQztJQUNILENBQUM7OzBIQS9FVyw0QkFBNEI7OEhBQTVCLDRCQUE0Qjs0RkFBNUIsNEJBQTRCO2tCQUR4QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZvcmtKb2luLCBvZiwgcGlwZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDcml0ZXJpYU1vZGVsLCBEeW5hbWljTGluZUNoYXJ0LCBUaW1lR3JvdXBzIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmluYWxpemUsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBOZGZSZXBvcnRzU2VydmljZSB9IGZyb20gJy4vaW5kZXgnO1xyXG5pbXBvcnQgeyBFdmFsdWF0b3IgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY1RpbWVsaW5lUmVwb3J0U2VydmljZSB7XHJcblx0X2lzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcclxuXHRpc0xvYWRpbmdSZXN1bHQgPSBmYWxzZTtcclxuXHJcblx0cHJpdmF0ZSByZWFkb25seSBfc2VsZWN0ZWRHcm91cFN1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGltZUdyb3Vwcz4obnVsbCk7XHJcblx0c2VsZWN0ZWRHcm91cCQgPSB0aGlzLl9zZWxlY3RlZEdyb3VwU3ViLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuXHRwcml2YXRlIHJlYWRvbmx5IF9yZWJ1aWxkVHJpZ2dlclN1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuXHRyZWJ1aWxkJCA9IHRoaXMuX3JlYnVpbGRUcmlnZ2VyU3ViLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9uZGZSZXBvcnRzU2VydmljZTogTmRmUmVwb3J0c1NlcnZpY2UpIHt9XHJcblxyXG5cdHBheWxvYWQ6IENyaXRlcmlhTW9kZWw7XHJcblxyXG5cdGNoYW5nZUdyb3VwKGdyb3VwOiBUaW1lR3JvdXBzKSB7XHJcblx0XHR0aGlzLl9zZWxlY3RlZEdyb3VwU3ViLm5leHQoZ3JvdXApO1xyXG5cdFx0dGhpcy5yZWJ1aWxkKCk7XHJcblx0fVxyXG5cclxuXHRyZWJ1aWxkKCkge1xyXG5cdFx0dGhpcy5fcmVidWlsZFRyaWdnZXJTdWIubmV4dCh0cnVlKTtcclxuXHR9XHJcblxyXG5cdHByZXBhcmVEYXRhKCkge1xyXG5cdFx0cmV0dXJuIHBpcGUoXHJcblx0XHRcdHRhcCgoW2NvbmZpZywgY3JpdGVyaWFdKSA9PiB7XHJcblx0XHRcdFx0aWYgKCF0aGlzLl9zZWxlY3RlZEdyb3VwU3ViLmdldFZhbHVlKCkpIHtcclxuXHRcdFx0XHRcdHRoaXMuX3NlbGVjdGVkR3JvdXBTdWIubmV4dChjb25maWc/Lmdyb3VwPy5zZWxlY3RlZCB8fCAnd2VlaycpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLnBheWxvYWQgPSBfLm1lcmdlKHRoaXMucHJlcGFyZVNlbGVjdGVkR3JvdXBzKGNvbmZpZyksIGNyaXRlcmlhIHx8IHt9KTtcclxuXHRcdFx0fSksXHJcblx0XHRcdHN3aXRjaE1hcCgoW2NvbmZpZywgY3JpdGVyaWFdOiBbRHluYW1pY0xpbmVDaGFydCwgQ3JpdGVyaWFNb2RlbCwgYm9vbGVhbl0pID0+IHtcclxuXHRcdFx0XHRjb25zdCByZXF1ZXN0ID0gY29uZmlnPy5yZXF1ZXN0O1xyXG5cdFx0XHRcdGlmICghcmVxdWVzdCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIG9mKG51bGwpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRsZXQgX3BheWxvYWQgPSB0aGlzLnBheWxvYWQ7XHJcblx0XHRcdFx0aWYgKHJlcXVlc3Q/LmFjdGlvbnM/LmJlZm9yZVN1Ym1pdCAmJiB0eXBlb2YgcmVxdWVzdD8uYWN0aW9ucz8uYmVmb3JlU3VibWl0ID09PSAnc3RyaW5nJykge1xyXG5cdFx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdFx0X3BheWxvYWQgPSBFdmFsdWF0b3IuZXZhbHVhdGUoXHJcblx0XHRcdFx0XHRcdFx0cmVxdWVzdD8uYWN0aW9ucz8uYmVmb3JlU3VibWl0LFxyXG5cdFx0XHRcdFx0XHRcdHsgY29uZmlnLCBjcml0ZXJpYTogdGhpcy5wYXlsb2FkIH0sXHJcblx0XHRcdFx0XHRcdFx0J3BheWxvYWQnXHJcblx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoZSk7XHJcblx0XHRcdFx0XHRcdF9wYXlsb2FkID0gdGhpcy5wYXlsb2FkO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Y29uc3QgZGF0YSQgPSB0aGlzLl9uZGZSZXBvcnRzU2VydmljZS5nZXREYXRhKHJlcXVlc3QsIF9wYXlsb2FkKS5waXBlKFxyXG5cdFx0XHRcdFx0Y2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5lcnJvcihlcnJvcik7XHJcblx0XHRcdFx0XHRcdHJldHVybiBvZihudWxsKTtcclxuXHRcdFx0XHRcdH0pLFxyXG5cdFx0XHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmlzTG9hZGluZ1Jlc3VsdCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHRcdHJldHVybiBmb3JrSm9pbih7XHJcblx0XHRcdFx0XHRjb25maWc6IG9mKGNvbmZpZyksXHJcblx0XHRcdFx0XHRkYXRhOiBkYXRhJFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9KVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHByZXBhcmVTZWxlY3RlZEdyb3Vwcyhjb25maWc6IER5bmFtaWNMaW5lQ2hhcnQpIHtcclxuXHRcdGNvbnN0IGRhdGEgPSBjb25maWcuZGF0YXNvdXJjZS5tYXAoKHNvdXJjZSkgPT4gKHtcclxuXHRcdFx0bmFtZTogc291cmNlLmFnZ3JlZ2F0aW9uLFxyXG5cdFx0XHRpbnRlcnZhbDogdGhpcy5fc2VsZWN0ZWRHcm91cFN1Yi5nZXRWYWx1ZSgpXHJcblx0XHR9KSk7XHJcblxyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0cGF5bG9hZDoge1xyXG5cdFx0XHRcdGFnZ3JlZ2F0aW9uTmFtZXM6IGRhdGFcclxuXHRcdFx0fVxyXG5cdFx0fTtcclxuXHR9XHJcbn1cclxuIl19
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10aW1lbGluZS1yZXBvcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcmVwb3J0cy9uZGYtcmVwb3J0cy9zZXJ2aWNlcy9keW5hbWljLXRpbWVsaW5lLXJlcG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBaUIsTUFBTSxNQUFNLENBQUM7QUFFMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUV2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUcvQyxNQUFNLE9BQU8sNEJBQTRCO0lBWXhDLFlBQW9CLGtCQUFxQztRQUFyQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBWHpELG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBR1Asc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQWEsSUFBSSxDQUFDLENBQUM7UUFDM0UsbUJBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFdEMsdUJBQWtCLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFMUUsYUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVVLENBQUM7SUFJN0QsV0FBVyxDQUFDLEtBQWlCO1FBQzVCLElBQUksQ0FBQyxpQkFBaUIs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USxFQUFFO1NBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRUosT0FBTztZQUNOLE9BQU8sRUFBRTtnQkFDUixnQkFBZ0IsRUFBRSxJQUFJO2FBQ3RCO1NBQ0QsQ0FBQztJQUNILENBQUM7OzBIQWxGVyw0QkFBNEI7OEhBQTVCLDRCQUE0Qjs0RkFBNUIsNEJBQTRCO2tCQUR4QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZvcmtKb2luLCBvZiwgcGlwZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDcml0ZXJpYU1vZGVsLCBEeW5hbWljTGluZUNoYXJ0LCBUaW1lR3JvdXBzIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmluYWxpemUsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBOZGZSZXBvcnRzU2VydmljZSB9IGZyb20gJy4vaW5kZXgnO1xyXG5pbXBvcnQgeyBFdmFsdWF0b3IgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY1RpbWVsaW5lUmVwb3J0U2VydmljZSB7XHJcblx0X2lzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcclxuXHRpc0xvYWRpbmdSZXN1bHQgPSBmYWxzZTtcclxuXHJcblxyXG5cdHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdGVkR3JvdXBTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRpbWVHcm91cHM+KG51bGwpO1xyXG5cdHNlbGVjdGVkR3JvdXAkID0gdGhpcy5fc2VsZWN0ZWRHcm91cFN1Yi5hc09ic2VydmFibGUoKTtcclxuXHJcblx0cHJpdmF0ZSByZWFkb25seSBfcmVidWlsZFRyaWdnZXJTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcblx0cmVidWlsZCQgPSB0aGlzLl9yZWJ1aWxkVHJpZ2dlclN1Yi5hc09ic2VydmFibGUoKTtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfbmRmUmVwb3J0c1NlcnZpY2U6IE5kZlJlcG9ydHNTZXJ2aWNlKSB7fVxyXG5cclxuXHRwYXlsb2FkOiBDcml0ZXJpYU1vZGVsO1xyXG5cclxuXHRjaGFuZ2VHcm91cChncm91cDogVGltZUdyb3Vwcykge1xyXG5cdFx0dGhpcy5fc2VsZWN0ZWRHcm91cFN1Yi5uZXh0KGdyb3VwKTtcclxuXHRcdHRoaXMucmVidWlsZCgpO1xyXG5cdH1cclxuXHJcblx0cmVidWlsZCgpIHtcclxuXHRcdHRoaXMuX3JlYnVpbGRUcmlnZ2VyU3ViLm5leHQodHJ1ZSk7XHJcblx0fVxyXG5cclxuXHRwcmVwYXJlRGF0YSgpIHtcclxuXHRcdHJldHVybiBwaXBlKFxyXG5cdFx0XHR0YXAoKFtjb25maWcsIGNyaXRlcmlhXSkgPT4ge1xyXG5cdFx0XHRcdGlmICghdGhpcy5fc2VsZWN0ZWRHcm91cFN1Yi5nZXRWYWx1ZSgpKSB7XHJcblx0XHRcdFx0XHR0aGlzLl9zZWxlY3RlZEdyb3VwU3ViLm5leHQoY29uZmlnPy5ncm91cD8uc2VsZWN0ZWQgfHwgJ3dlZWsnKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5wYXlsb2FkID0gXy5tZXJnZSh0aGlzLnByZXBhcmVTZWxlY3RlZEdyb3Vwcyhjb25maWcpLCBjcml0ZXJpYSB8fCB7fSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRzd2l0Y2hNYXAoKFtjb25maWcsIGNyaXRlcmlhXTogW0R5bmFtaWNMaW5lQ2hhcnQsIENyaXRlcmlhTW9kZWwsIGJvb2xlYW5dKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgcmVxdWVzdCA9IGNvbmZpZz8ucmVxdWVzdDtcclxuXHRcdFx0XHRpZiAoIXJlcXVlc3QpIHtcclxuXHRcdFx0XHRcdHJldHVybiBvZihudWxsKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0bGV0IF9wYXlsb2FkID0gdGhpcy5wYXlsb2FkO1xyXG5cdFx0XHRcdGlmIChyZXF1ZXN0Py5hY3Rpb25zPy5iZWZvcmVTdWJtaXQgJiYgdHlwZW9mIHJlcXVlc3Q/LmFjdGlvbnM/LmJlZm9yZVN1Ym1pdCA9PT0gJ3N0cmluZycpIHtcclxuXHRcdFx0XHRcdHRyeSB7XHJcblx0XHRcdFx0XHRcdF9wYXlsb2FkID0gRXZhbHVhdG9yLmV2YWx1YXRlKFxyXG5cdFx0XHRcdFx0XHRcdHJlcXVlc3Q/LmFjdGlvbnM/LmJlZm9yZVN1Ym1pdCxcclxuXHRcdFx0XHRcdFx0XHR7IGNvbmZpZywgY3JpdGVyaWE6IHRoaXMucGF5bG9hZCB9LFxyXG5cdFx0XHRcdFx0XHRcdCdwYXlsb2FkJ1xyXG5cdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKGUpO1xyXG5cdFx0XHRcdFx0XHRfcGF5bG9hZCA9IHRoaXMucGF5bG9hZDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblxyXG5cclxuXHRcdFx0XHRjb25zdCBkYXRhJCA9IHRoaXMuX25kZlJlcG9ydHNTZXJ2aWNlLmdldERhdGEocmVxdWVzdCwgX3BheWxvYWQpLnBpcGUoXHJcblx0XHRcdFx0XHRjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKGVycm9yKTtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIG9mKG51bGwpO1xyXG5cdFx0XHRcdFx0fSksXHJcblx0XHRcdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMuaXNMb2FkaW5nUmVzdWx0ID0gZmFsc2U7XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdCk7XHJcblxyXG5cdFx0XHRcdHJldHVybiBmb3JrSm9pbih7XHJcblx0XHRcdFx0XHRjb25maWc6IG9mKGNvbmZpZyksXHJcblx0XHRcdFx0XHRkYXRhOiBkYXRhJFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9KVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHByZXBhcmVTZWxlY3RlZEdyb3Vwcyhjb25maWc6IER5bmFtaWNMaW5lQ2hhcnQpIHtcclxuXHRcdGNvbnN0IGRhdGEgPSBjb25maWcuZGF0YXNvdXJjZS5tYXAoKHNvdXJjZSkgPT4gKHtcclxuXHRcdFx0bmFtZTogc291cmNlLmFnZ3JlZ2F0aW9uLFxyXG5cdFx0XHRpbnRlcnZhbDogdGhpcy5fc2VsZWN0ZWRHcm91cFN1Yi5nZXRWYWx1ZSgpXHJcblx0XHR9KSk7XHJcblxyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0cGF5bG9hZDoge1xyXG5cdFx0XHRcdGFnZ3JlZ2F0aW9uTmFtZXM6IGRhdGFcclxuXHRcdFx0fVxyXG5cdFx0fTtcclxuXHR9XHJcbn1cclxuIl19
@@ -10,5 +10,6 @@ export * from './chart-plugins-registry.service';
10
10
  export * from './report-config-mapper.service';
11
11
  export * from './reports-data-transformers.service';
12
12
  export * from './custom-reports-registry.service';
13
- export * from './report-details.service';
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHFDQUFxQyxDQUFBO0FBQ25ELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbmRmLXJlcG9ydHMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQtbWFuYWdlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9yZXBvcnQtdHJhbnNmb3JtLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtdGltZWxpbmUtcmVwb3J0LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlcG9ydHMtc3RhdGUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGlnaXQtY2hhcnQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1jaGFydC1idWlsZGVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NoYXJ0LWRhdGEtdHJhbnNmb3JtZXJzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NoYXJ0LXBsdWdpbnMtcmVnaXN0cnkuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmVwb3J0LWNvbmZpZy1tYXBwZXIuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmVwb3J0cy1kYXRhLXRyYW5zZm9ybWVycy5zZXJ2aWNlJ1xyXG5leHBvcnQgKiBmcm9tICcuL2N1c3RvbS1yZXBvcnRzLXJlZ2lzdHJ5LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlcG9ydC1kZXRhaWxzLnNlcnZpY2UnO1xyXG4iXX0=
13
+ export * from './report-configuration.service';
14
+ export * from './chart-theme.service';
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHVCQUF1QixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9uZGYtcmVwb3J0cy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jaGFydC1tYW5hZ2VyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlcG9ydC10cmFuc2Zvcm0uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy10aW1lbGluZS1yZXBvcnQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmVwb3J0cy1zdGF0ZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9kaWdpdC1jaGFydC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9iYXNlLWNoYXJ0LWJ1aWxkZXIuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQtZGF0YS10cmFuc2Zvcm1lcnMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQtcGx1Z2lucy1yZWdpc3RyeS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9yZXBvcnQtY29uZmlnLW1hcHBlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9yZXBvcnRzLWRhdGEtdHJhbnNmb3JtZXJzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2N1c3RvbS1yZXBvcnRzLXJlZ2lzdHJ5LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlcG9ydC1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NoYXJ0LXRoZW1lLnNlcnZpY2UnXHJcbiJdfQ==