gamma-app-controller 1.1.29 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/application-controller/application-dataset-component/create-dataset/create-dataset.component.mjs +1 -5
- package/esm2020/lib/application-controller/application-dataset-component/dataset-query-bulder/dataset-query-bulder.component.mjs +1 -8
- package/esm2020/lib/application-controller/page-controller/page-config/page-config.component.mjs +1 -2
- package/esm2020/lib/application-controller/page-controller/page-config-multi-layout/page-config-multi-layout.component.mjs +1 -2
- package/esm2020/lib/application-controller/tokenStorage.servce.mjs +36 -0
- package/esm2020/lib/gamma-app-controller.module.mjs +2 -2
- package/esm2020/lib/shared/advanced-component/app-advance-header/app-header.component.mjs +20 -18
- package/esm2020/lib/shared/advanced-component/gamma-advance-operator-table/gamma-advance-operator-table.component.mjs +1 -2
- package/esm2020/lib/template-module/bookmarked-template/bookmarked-template.component.mjs +10 -9
- package/esm2020/lib/template-module/defaulLandingComponent/landing-component.component.mjs +10 -9
- package/esm2020/lib/template-module/kpiWithMultiLayout/dynamin-modal-multi.component.mjs +1 -2
- package/esm2020/lib/template-module/kpiWithMultiLayout/kpi-with-multilayout.component.mjs +17 -16
- package/esm2020/lib/template-module/kpiWithMultiLayout/kpiWithMultiayout.module.mjs +4 -4
- package/esm2020/lib/template-module/kpiWithMultiLayout/multi-layout-dataset-call.service.mjs +364 -0
- package/esm2020/lib/template-module/kpiWithSingleLayout/application-chat-api-call.service.mjs +38 -0
- package/esm2020/lib/template-module/kpiWithSingleLayout/dynamin-modal.component.mjs +1 -2
- package/esm2020/lib/template-module/kpiWithSingleLayout/kpi-with-dataset.component.mjs +85 -30
- package/esm2020/lib/template-module/kpiWithSingleLayout/kpiWithSingleLayout.module.mjs +5 -4
- package/esm2020/lib/template-module/kpiWithSingleLayout/single-layout-dataset-call.service.mjs +366 -0
- package/esm2020/public-api.mjs +5 -3
- package/fesm2015/gamma-app-controller.mjs +300 -193
- package/fesm2015/gamma-app-controller.mjs.map +1 -1
- package/fesm2020/gamma-app-controller.mjs +292 -189
- package/fesm2020/gamma-app-controller.mjs.map +1 -1
- package/lib/application-controller/application-dataset-component/dataset-query-bulder/dataset-query-bulder.component.d.ts +0 -1
- package/lib/application-controller/tokenStorage.servce.d.ts +12 -0
- package/lib/shared/advanced-component/app-advance-header/app-header.component.d.ts +3 -1
- package/lib/template-module/bookmarked-template/bookmarked-template.component.d.ts +3 -1
- package/lib/template-module/defaulLandingComponent/landing-component.component.d.ts +3 -1
- package/lib/template-module/kpiWithMultiLayout/kpi-with-multilayout.component.d.ts +4 -2
- package/lib/template-module/{kpiWithSingleLayout → kpiWithMultiLayout}/multi-layout-dataset-call.service.d.ts +1 -1
- package/lib/template-module/kpiWithSingleLayout/application-chat-api-call.service.d.ts +18 -0
- package/lib/template-module/kpiWithSingleLayout/kpi-with-dataset.component.d.ts +16 -2
- package/lib/template-module/{kpiWithMultiLayout → kpiWithSingleLayout}/single-layout-dataset-call.service.d.ts +4 -2
- package/package.json +1 -1
- package/public-api.d.ts +4 -2
- package/esm2020/lib/template-module/kpiWithMultiLayout/single-layout-dataset-call.service.mjs +0 -364
- package/esm2020/lib/template-module/kpiWithSingleLayout/multi-layout-dataset-call.service.mjs +0 -364
|
@@ -11,7 +11,8 @@ import { LoadingModule } from '../../shared/loading/loadingModule';
|
|
|
11
11
|
import { KpiWithDataSetTestComponent } from './kpi-with-dataset.component';
|
|
12
12
|
import { DynamicWidgetComponent } from './dynamin-modal.component';
|
|
13
13
|
import { KpiWithSingleLayoutService } from './kpi-single-layout.service';
|
|
14
|
-
import {
|
|
14
|
+
import { ApplicationChatApiCallService } from './application-chat-api-call.service';
|
|
15
|
+
import { SingleLayoutApplicationDatssetsCall } from './single-layout-dataset-call.service';
|
|
15
16
|
import * as i0 from "@angular/core";
|
|
16
17
|
export class KpiWithSingleLayoutModule {
|
|
17
18
|
}
|
|
@@ -58,7 +59,7 @@ KpiWithSingleLayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0
|
|
|
58
59
|
MatIconModule,
|
|
59
60
|
LoadingModule], exports: [DynamicWidgetComponent,
|
|
60
61
|
KpiWithDataSetTestComponent] });
|
|
61
|
-
KpiWithSingleLayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KpiWithSingleLayoutModule, providers: [KpiWithSingleLayoutService,
|
|
62
|
+
KpiWithSingleLayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KpiWithSingleLayoutModule, providers: [KpiWithSingleLayoutService, SingleLayoutApplicationDatssetsCall, ApplicationChatApiCallService], imports: [CommonModule,
|
|
62
63
|
LoadingModule,
|
|
63
64
|
CommonModule,
|
|
64
65
|
DevExtremeModule,
|
|
@@ -150,7 +151,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
150
151
|
DynamicWidgetComponent,
|
|
151
152
|
KpiWithDataSetTestComponent
|
|
152
153
|
],
|
|
153
|
-
providers: [KpiWithSingleLayoutService,
|
|
154
|
+
providers: [KpiWithSingleLayoutService, SingleLayoutApplicationDatssetsCall, ApplicationChatApiCallService],
|
|
154
155
|
}]
|
|
155
156
|
}] });
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3BpV2l0aFNpbmdsZUxheW91dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL3RlbXBsYXRlLW1vZHVsZS9rcGlXaXRoU2luZ2xlTGF5b3V0L2twaVdpdGhTaW5nbGVMYXlvdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIseUJBQXlCLEVBQ3pCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUVuQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEs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LGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLHlCQUF5Qjt3QkFDekIsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLGdCQUFnQjt3QkFFaEIsZ0JBQWdCO3dCQUNoQixhQUFhLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGdCQUFnQjt3QkFDbkUsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixhQUFhO3FCQUVkO29CQUNELE9BQU8sRUFBRTt3QkFDUCxzQkFBc0I7d0JBQ3RCLDJCQUEyQjtxQkFDNUI7b0JBQ0QsU0FBUyxFQUFFLENBQUMsMEJBQTBCLEVBQUUsbUNBQW1DLEVBQUUsNkJBQTZCLENBQUM7aUJBQzVHIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXhjZXB0aW9uLW9wZXJhdGlvbi5tb2R1bGUudHNcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5cbmltcG9ydCB7XG4gIERldkV4dHJlbWVNb2R1bGUsXG4gIER4QWNjb3JkaW9uTW9kdWxlLFxuICBEeEJ1dHRvbk1vZHVsZSxcbiAgRHhDaGVja0JveE1vZHVsZSxcbiAgRHhEYXRhR3JpZE1vZHVsZSxcbiAgRHhEcm9wRG93bkJveE1vZHVsZSxcbiAgRHhGb3JtTW9kdWxlLFxuICBEeEh0bWxFZGl0b3JNb2R1bGUsXG4gIER4TnVtYmVyQm94TW9kdWxlLFxuICBEeFBvcHVwTW9kdWxlLFxuICBEeFNlbGVjdEJveE1vZHVsZSxcbiAgRHhUYWdCb3hNb2R1bGUsXG4gIER4VGV4dEJveE1vZHVsZSxcbiAgRHhUcmVlVmlld01vZHVsZSxcbiAgRHhCdWxsZXRNb2R1bGUsXG4gIER4Q2hhcnRNb2R1bGUsXG4gIER4RGF0ZUJveE1vZHVsZSxcbiAgRHhMb2FkUGFuZWxNb2R1bGUsXG4gIER4TG9va3VwTW9kdWxlLFxuICBEeFBpdm90R3JpZE1vZHVsZSxcbiAgRHhUZW1wbGF0ZU1vZHVsZSxcbiAgRHhUZXh0QXJlYU1vZHVsZSxcbiAgRHhWYWxpZGF0aW9uU3VtbWFyeU1vZHVsZSxcbiAgRHhWYWxpZGF0b3JNb2R1bGUsXG4gIER4Q2FsZW5kYXJNb2R1bGUsXG4gIER4VG9vbHRpcE1vZHVsZSxcbiAgRHhDb250ZXh0TWVudU1vZHVsZSxcbiAgRHhMb2FkSW5kaWNhdG9yTW9kdWxlLFxuICBEeFBpZUNoYXJ0TW9kdWxlLFxuICBEeFNjcm9sbFZpZXdNb2R1bGVcblxufSBmcm9tIFwiZGV2ZXh0cmVtZS1hbmd1bGFyXCI7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMb2FkaW5nTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xvYWRpbmcvbG9hZGluZ01vZHVsZSc7XG5pbXBvcnQgeyBLcGlXaXRoRGF0YVNldFRlc3RDb21wb25lbnQgfSBmcm9tICcuL2twaS13aXRoLWRhdGFzZXQuY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaW4tbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IEtwaVdpdGhTaW5nbGVMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi9rcGktc2luZ2xlLWxheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uQ2hhdEFwaUNhbGxTZXJ2aWNlIH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1jaGF0LWFwaS1jYWxsLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2luZ2xlTGF5b3V0QXBwbGljYXRpb25EYXRzc2V0c0NhbGwgfSBmcm9tICcuL3NpbmdsZS1sYXlvdXQtZGF0YXNldC1jYWxsLnNlcnZpY2UnO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEtwaVdpdGhEYXRhU2V0VGVzdENvbXBvbmVudCxcbiAgICBEeW5hbWljV2lkZ2V0Q29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsXG4gICAgTG9hZGluZ01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRGV2RXh0cmVtZU1vZHVsZSxcbiAgICBEeEJ1dHRvbk1vZHVsZSxcbiAgICBEeENoZWNrQm94TW9kdWxlLFxuICAgIER4TnVtYmVyQm94TW9kdWxlLFxuICAgIER4RGF0YUdyaWRNb2R1bGUsXG4gICAgRHhEcm9wRG93bkJveE1vZHVsZSxcbiAgICBEeFRyZWVWaWV3TW9kdWxlLFxuICAgIER4U2Nyb2xsVmlld01vZHVsZSxcbiAgICBEeEZvcm1Nb2R1bGUsXG4gICAgRHhBY2NvcmRpb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgRHhUYWdCb3hNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIER4SHRtbEVkaXRvck1vZHVsZSxcbiAgICBEeEJ1bGxldE1vZHVsZSxcbiAgICBEeENoYXJ0TW9kdWxlLFxuICAgIER4RGF0ZUJveE1vZHVsZSxcbiAgICBEeExvYWRQYW5lbE1vZHVsZSxcbiAgICBEeExvb2t1cE1vZHVsZSxcbiAgICBEeFBpdm90R3JpZE1vZHVsZSxcbiAgICBEeFRlbXBsYXRlTW9kdWxlLFxuICAgIER4VGV4dEFyZWFNb2R1bGUsXG4gICAgRHhWYWxpZGF0aW9uU3VtbWFyeU1vZHVsZSxcbiAgICBEeFZhbGlkYXRvck1vZHVsZSxcbiAgICBEeENhbGVuZGFyTW9kdWxlLFxuICAgIER4VG9vbHRpcE1vZHVsZSxcbiAgICBEeENvbnRleHRNZW51TW9kdWxlLFxuICAgIER4TG9hZEluZGljYXRvck1vZHVsZSxcbiAgICBEeFBpZUNoYXJ0TW9kdWxlLFxuICAgIC8vIFN0cnVjdHVyZUtwaU1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIER4UG9wdXBNb2R1bGUsIER4U2VsZWN0Qm94TW9kdWxlLCBEeFRleHRCb3hNb2R1bGUsIER4VHJlZVZpZXdNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIExvYWRpbmdNb2R1bGUsXG4gICAgXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBEeW5hbWljV2lkZ2V0Q29tcG9uZW50LFxuICAgIEtwaVdpdGhEYXRhU2V0VGVzdENvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtLcGlXaXRoU2luZ2xlTGF5b3V0U2VydmljZSwgU2luZ2xlTGF5b3V0QXBwbGljYXRpb25EYXRzc2V0c0NhbGwsIEFwcGxpY2F0aW9uQ2hhdEFwaUNhbGxTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgS3BpV2l0aFNpbmdsZUxheW91dE1vZHVsZSB7IH0iXX0=
|
package/esm2020/lib/template-module/kpiWithSingleLayout/single-layout-dataset-call.service.mjs
ADDED
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import moment from '../../application-controller/moment-helper';
|
|
3
|
+
import { APP_ENVIRONMENT } from '../../application-controller/environment';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../kpiWithMultiLayout/kpi-multi-layout.service";
|
|
6
|
+
import * as i2 from "../../application-controller/kpi-service";
|
|
7
|
+
import * as i3 from "ngx-toastr";
|
|
8
|
+
import * as i4 from "@angular/router";
|
|
9
|
+
export class SingleLayoutApplicationDatssetsCall {
|
|
10
|
+
constructor(service, kpiService, toastr, router, environment) {
|
|
11
|
+
this.service = service;
|
|
12
|
+
this.kpiService = kpiService;
|
|
13
|
+
this.toastr = toastr;
|
|
14
|
+
this.router = router;
|
|
15
|
+
this.environment = environment;
|
|
16
|
+
this.uniqueDataSetObject = {};
|
|
17
|
+
}
|
|
18
|
+
getDataFromDataSet(dataset, datasetId, filters) {
|
|
19
|
+
if (dataset.datasetType == "mongo") {
|
|
20
|
+
return this.getDataSetForMongo(dataset, datasetId);
|
|
21
|
+
}
|
|
22
|
+
else if (dataset.datasetType == "querybuilder") {
|
|
23
|
+
return this.getDatasetForImpala(dataset, datasetId, filters);
|
|
24
|
+
}
|
|
25
|
+
else if (dataset.datasetType == "simpleApi") {
|
|
26
|
+
return this.getDatasetForSimpleApiImpala(dataset, datasetId, filters);
|
|
27
|
+
}
|
|
28
|
+
else if (dataset.datasetType == "plainjson") {
|
|
29
|
+
return this.getDatasetForPlainJson(dataset, datasetId, filters);
|
|
30
|
+
}
|
|
31
|
+
else if (dataset.datasetType == "sqlQuery") {
|
|
32
|
+
return this.getDatasetForSqlTemplate(dataset, datasetId, filters);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
return Promise.resolve();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
getDataSetForMongo(dataset, datasetId) {
|
|
39
|
+
return new Promise((resolve, reject) => {
|
|
40
|
+
let apiJsonObject = {
|
|
41
|
+
requestId: dataset.config.serviceId,
|
|
42
|
+
};
|
|
43
|
+
if (dataset.config.fixOperationLevles && dataset.config.fixOperationLevles.length != 0) {
|
|
44
|
+
for (const item of dataset.config.fixOperationLevles) {
|
|
45
|
+
Object.assign(apiJsonObject, item);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
const mon_config = this.kpiService.getAllSeviceApiJson(apiJsonObject);
|
|
49
|
+
this.service.getData(mon_config, dataset.config.api).subscribe({
|
|
50
|
+
next: (data) => {
|
|
51
|
+
const payload = data["Payload"] || data;
|
|
52
|
+
this.uniqueDataSetObject[datasetId] = payload;
|
|
53
|
+
resolve();
|
|
54
|
+
},
|
|
55
|
+
error: (err) => {
|
|
56
|
+
console.error('Error:', err);
|
|
57
|
+
reject(err);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
getDatasetForImpala(dataset, datasetId, filters) {
|
|
63
|
+
return new Promise((resolve, reject) => {
|
|
64
|
+
let request = dataset.config.queryConfig;
|
|
65
|
+
let transformedObject = {};
|
|
66
|
+
for (let item of request.reqFields) {
|
|
67
|
+
const key = Object.keys(item)[0];
|
|
68
|
+
const value = Object.values(item)[0];
|
|
69
|
+
if (key === 'startDate') {
|
|
70
|
+
transformedObject.recordDate = value;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
transformedObject[key] = value;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
const operator = (filters && filters.length !== 0) ? Object.keys(filters.operationFilter).map(key => ({ [key]: filters.operationFilter[key] })) : [];
|
|
77
|
+
transformedObject['filters'] = this.transformDataForMFilter(operator, request.mapedFilters);
|
|
78
|
+
transformedObject['sorters'] = request.sorters;
|
|
79
|
+
transformedObject["paginationRequired"] = false;
|
|
80
|
+
if (dataset.config.api == "/kpi/genericAggregatePaginatedKpiServiceResponse") {
|
|
81
|
+
transformedObject['measures'] = request.measures;
|
|
82
|
+
transformedObject['dimensions'] = request.dimensions;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
transformedObject['columns'] = this.getFormatObjectForColumn(request.columns);
|
|
86
|
+
}
|
|
87
|
+
if (request.havings && request.havings.length !== 0) {
|
|
88
|
+
transformedObject['havings'] = request.havings;
|
|
89
|
+
}
|
|
90
|
+
this.service.getData(transformedObject, dataset.config.api).subscribe({
|
|
91
|
+
next: (data) => {
|
|
92
|
+
const payload = data['dataset'];
|
|
93
|
+
this.uniqueDataSetObject[datasetId] = payload;
|
|
94
|
+
resolve();
|
|
95
|
+
},
|
|
96
|
+
error: (err) => {
|
|
97
|
+
console.error('Error:', err);
|
|
98
|
+
this.toastr.error(err.message);
|
|
99
|
+
reject(err);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
getFormatObjectForColumn(columns) {
|
|
105
|
+
let columnData = [];
|
|
106
|
+
columns.forEach(element => {
|
|
107
|
+
const { advancedColumn, columnName, enrichFunction, dataField } = element;
|
|
108
|
+
columnData.push({
|
|
109
|
+
"advancedColumn": advancedColumn,
|
|
110
|
+
"columnName": columnName,
|
|
111
|
+
"enrichFunction": enrichFunction,
|
|
112
|
+
"aliasName": dataField
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
return columnData;
|
|
116
|
+
}
|
|
117
|
+
transformDataForMFilter(filterdata, mapData) {
|
|
118
|
+
let result = [];
|
|
119
|
+
mapData.forEach(mapping => {
|
|
120
|
+
let resultObj = {
|
|
121
|
+
columnName: mapping.serverColumn,
|
|
122
|
+
dataType: mapping.dataType,
|
|
123
|
+
operator: mapping.operatorName,
|
|
124
|
+
value: mapping.defaultValue
|
|
125
|
+
};
|
|
126
|
+
if (mapping.serverColumn.includes('date') && typeof resultObj.value === 'string') {
|
|
127
|
+
if (mapping.formatter && mapping.formatter !== "") {
|
|
128
|
+
resultObj.value = moment(resultObj.value, "YYYY-MM-DD").format(mapping.formatter);
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
resultObj.value = moment(resultObj.value, "YYYY-MM-DD").format(this.environment.dataFormat);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
const filter = filterdata.find(f => f.hasOwnProperty(mapping.localColumn));
|
|
135
|
+
if (filter) {
|
|
136
|
+
if (mapping.defaultValue === "") {
|
|
137
|
+
const value = filter[mapping.localColumn];
|
|
138
|
+
if (Array.isArray(value)) {
|
|
139
|
+
resultObj.operator = "in";
|
|
140
|
+
resultObj.value = value.join(",");
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
resultObj.value = value;
|
|
144
|
+
}
|
|
145
|
+
if (mapping.serverColumn.includes('date') && typeof resultObj.value === 'string') {
|
|
146
|
+
if (mapping.formatter && mapping.formatter !== "") {
|
|
147
|
+
resultObj.value = moment(resultObj.value, "YYYY-MM-DD").format(mapping.formatter);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
resultObj.value = moment(resultObj.value, "YYYY-MM-DD").format(this.environment.dataFormat);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
else if (mapping.defaultValue === "") {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
result.push(resultObj);
|
|
159
|
+
});
|
|
160
|
+
filterdata = filterdata.filter(obj => {
|
|
161
|
+
const key = Object.keys(obj)[0];
|
|
162
|
+
return key !== 'startDate' && key !== 'endDate';
|
|
163
|
+
});
|
|
164
|
+
filterdata.forEach(filter => {
|
|
165
|
+
const filterKey = Object.keys(filter)[0];
|
|
166
|
+
const existingMapping = mapData.find(mapping => mapping.localColumn === filterKey);
|
|
167
|
+
if (!existingMapping) {
|
|
168
|
+
let resultObj = {
|
|
169
|
+
columnName: filterKey,
|
|
170
|
+
dataType: "string",
|
|
171
|
+
operator: "eq",
|
|
172
|
+
value: filter[filterKey]
|
|
173
|
+
};
|
|
174
|
+
if (Array.isArray(filter[filterKey])) {
|
|
175
|
+
resultObj.operator = "in";
|
|
176
|
+
resultObj.value = filter[filterKey].join(",");
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
resultObj.value = filter[filterKey];
|
|
180
|
+
}
|
|
181
|
+
if (filterKey == 'operator_key') {
|
|
182
|
+
resultObj.operator = "eq";
|
|
183
|
+
}
|
|
184
|
+
result.push(resultObj);
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
result = result.filter(obj => obj.value !== null && obj.value !== "");
|
|
188
|
+
return result;
|
|
189
|
+
}
|
|
190
|
+
getDatasetForSimpleApiImpala(dataset, datasetId, filters) {
|
|
191
|
+
return new Promise((resolve, reject) => {
|
|
192
|
+
dataset.config.queryConfig.mapedFilters.forEach(filter => {
|
|
193
|
+
if (filters.operationFilter.hasOwnProperty(filter.localColumn)) {
|
|
194
|
+
filter.defaultValue = filters.operationFilter[filter.localColumn];
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
if (dataset.config.apiType === "post") {
|
|
198
|
+
let serviceJson = {};
|
|
199
|
+
dataset.config.queryConfig.mapedFilters.forEach((filter) => {
|
|
200
|
+
let datecolumn = filter.serverColumn.toLowerCase();
|
|
201
|
+
if (datecolumn.includes('date') && typeof filter.dataType === 'string') {
|
|
202
|
+
serviceJson[filter.serverColumn] = moment(filter.defaultValue, "YYYY-MM-DD").format(this.environment.dataFormat);
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
serviceJson[filter.serverColumn] = filter.defaultValue;
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
this.service.getSimpleApiPostRequest(dataset.config.api, serviceJson).subscribe({
|
|
209
|
+
next: (data) => {
|
|
210
|
+
const payload = data["Payload"] || data;
|
|
211
|
+
this.uniqueDataSetObject[datasetId] = payload;
|
|
212
|
+
resolve();
|
|
213
|
+
},
|
|
214
|
+
error: (err) => {
|
|
215
|
+
console.error('Error:', err);
|
|
216
|
+
this.toastr.error(err.message);
|
|
217
|
+
reject(err);
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
else if (dataset.config.apiType === "get") {
|
|
222
|
+
let requestUrl = dataset.config.api + "?";
|
|
223
|
+
dataset.config.queryConfig.mapedFilters.forEach((filter, index) => {
|
|
224
|
+
requestUrl += `${filter.serverColumn}=${filter.defaultValue}`;
|
|
225
|
+
if (index < dataset.config.queryConfig.mapedFilters.length - 1) {
|
|
226
|
+
requestUrl += "&";
|
|
227
|
+
}
|
|
228
|
+
});
|
|
229
|
+
this.service.getSimpleApiGetRequest(requestUrl).subscribe({
|
|
230
|
+
next: (data) => {
|
|
231
|
+
const payload = data["Payload"] || data;
|
|
232
|
+
this.uniqueDataSetObject[datasetId] = payload;
|
|
233
|
+
resolve();
|
|
234
|
+
},
|
|
235
|
+
error: (err) => {
|
|
236
|
+
console.error('Error:', err);
|
|
237
|
+
this.toastr.error(err.message);
|
|
238
|
+
reject(err);
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
getDatasetForPlainJson(dataset, datasetId, filter) {
|
|
245
|
+
return new Promise((resolve, reject) => {
|
|
246
|
+
let requestapi = dataset.config.api + '?datasetId=' + dataset.datasetId;
|
|
247
|
+
this.service.getJsonDatasetPayload(requestapi).subscribe({
|
|
248
|
+
next: (data) => {
|
|
249
|
+
const payload = data["Payload"] || data;
|
|
250
|
+
this.uniqueDataSetObject[datasetId] = payload;
|
|
251
|
+
resolve();
|
|
252
|
+
},
|
|
253
|
+
error: (err) => {
|
|
254
|
+
console.error('Error:', err);
|
|
255
|
+
reject(err);
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
getDatasetForSqlTemplate(dataset, datasetId, filters) {
|
|
261
|
+
return new Promise((resolve, reject) => {
|
|
262
|
+
const operator = (filters && filters.length !== 0) ? Object.keys(filters.operationFilter).map(key => ({ [key]: filters.operationFilter[key] })) : [];
|
|
263
|
+
let requestAp = dataset.config.api;
|
|
264
|
+
let request_params = {
|
|
265
|
+
'dbConfig': dataset.config.queryConfig.dbConfig,
|
|
266
|
+
'databaseName': dataset.config.queryConfig.databaseName,
|
|
267
|
+
'filters': this.transformDataForMFilterForSQl(operator, dataset.config.queryConfig.mapedFilters),
|
|
268
|
+
'templateQuery': dataset.config.queryConfig.templateQuery,
|
|
269
|
+
'enrichments': dataset.config.queryConfig.enrichments,
|
|
270
|
+
};
|
|
271
|
+
this.service.genericSqlQueryResponse(requestAp, request_params).subscribe({
|
|
272
|
+
next: (data) => {
|
|
273
|
+
const payload = data["Payload"] || data;
|
|
274
|
+
this.uniqueDataSetObject[datasetId] = payload;
|
|
275
|
+
resolve();
|
|
276
|
+
},
|
|
277
|
+
error: (err) => {
|
|
278
|
+
console.error('Error:', err);
|
|
279
|
+
this.toastr.error(err.message);
|
|
280
|
+
reject(err);
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
transformDataForMFilterForSQl(filterdata, mapData) {
|
|
286
|
+
let result = [];
|
|
287
|
+
mapData.forEach(mapping => {
|
|
288
|
+
let resultObj = {
|
|
289
|
+
columnName: mapping.serverColumn,
|
|
290
|
+
dataType: mapping.dataType,
|
|
291
|
+
operator: mapping.operatorName,
|
|
292
|
+
value: mapping.defaultValue,
|
|
293
|
+
aliasColumnName: mapping.localColumn,
|
|
294
|
+
};
|
|
295
|
+
if (mapping.serverColumn.includes('date') && typeof resultObj.value === 'string') {
|
|
296
|
+
if (mapping.formatter && mapping.formatter !== "") {
|
|
297
|
+
resultObj.value = moment(resultObj.value, "YYYY-MM-DD").format(mapping.formatter);
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
resultObj.value = moment(resultObj.value, "YYYY-MM-DD").format(this.environment.dataFormat);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
const filter = filterdata.find(f => f.hasOwnProperty(mapping.localColumn));
|
|
304
|
+
if (filter) {
|
|
305
|
+
if (mapping.defaultValue === "") {
|
|
306
|
+
const value = filter[mapping.localColumn];
|
|
307
|
+
if (Array.isArray(value)) {
|
|
308
|
+
resultObj.operator = "in";
|
|
309
|
+
resultObj.value = value.join(",");
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
resultObj.value = value;
|
|
313
|
+
}
|
|
314
|
+
if (mapping.serverColumn.includes('date') && typeof resultObj.value === 'string') {
|
|
315
|
+
resultObj.value = moment(resultObj.value, "YYYY-MM-DD").format(this.environment.dataFormat);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
else if (mapping.defaultValue === "") {
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
result.push(resultObj);
|
|
323
|
+
});
|
|
324
|
+
filterdata = filterdata.filter(obj => {
|
|
325
|
+
const key = Object.keys(obj)[0];
|
|
326
|
+
return key !== 'startDate' && key !== 'endDate';
|
|
327
|
+
});
|
|
328
|
+
filterdata.forEach(filter => {
|
|
329
|
+
const filterKey = Object.keys(filter)[0];
|
|
330
|
+
const existingMapping = mapData.find(mapping => mapping.localColumn === filterKey);
|
|
331
|
+
if (!existingMapping) {
|
|
332
|
+
let resultObj = {
|
|
333
|
+
columnName: filterKey,
|
|
334
|
+
dataType: "string",
|
|
335
|
+
operator: "eq",
|
|
336
|
+
value: filter[filterKey]
|
|
337
|
+
};
|
|
338
|
+
if (Array.isArray(filter[filterKey])) {
|
|
339
|
+
resultObj.operator = "in";
|
|
340
|
+
resultObj.value = filter[filterKey].join(",");
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
resultObj.value = filter[filterKey];
|
|
344
|
+
}
|
|
345
|
+
if (filterKey == 'operator_key') {
|
|
346
|
+
resultObj.operator = "eq";
|
|
347
|
+
}
|
|
348
|
+
result.push(resultObj);
|
|
349
|
+
}
|
|
350
|
+
});
|
|
351
|
+
return result;
|
|
352
|
+
}
|
|
353
|
+
getUniqueDataSetObject() {
|
|
354
|
+
return this.uniqueDataSetObject;
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
SingleLayoutApplicationDatssetsCall.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SingleLayoutApplicationDatssetsCall, deps: [{ token: i1.KpiWithMultiLayoutService }, { token: i2.kpicommonService }, { token: i3.ToastrService }, { token: i4.Router }, { token: APP_ENVIRONMENT }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
358
|
+
SingleLayoutApplicationDatssetsCall.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SingleLayoutApplicationDatssetsCall, providedIn: "root" });
|
|
359
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SingleLayoutApplicationDatssetsCall, decorators: [{
|
|
360
|
+
type: Injectable,
|
|
361
|
+
args: [{ providedIn: "root" }]
|
|
362
|
+
}], ctorParameters: function () { return [{ type: i1.KpiWithMultiLayoutService }, { type: i2.kpicommonService }, { type: i3.ToastrService }, { type: i4.Router }, { type: undefined, decorators: [{
|
|
363
|
+
type: Inject,
|
|
364
|
+
args: [APP_ENVIRONMENT]
|
|
365
|
+
}] }]; } });
|
|
366
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLWxheW91dC1kYXRhc2V0LWNhbGwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dhbW1hLWFwcC1jb250cm9sbGVyL3NyYy9saWIvdGVtcGxhdGUtbW9kdWxlL2twaVdpdGhTaW5nbGVMYXlvdXQvc2luZ2xlLWxheW91dC1kYXRhc2V0LWNhbGwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLE1BQU0sTUFBTSw0Q0FBNEMsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7OztBQU0zRSxNQUFNLE9BQU8sbUNBQW1DO0lBSTVDLFlBQW9CLE9BQWtDLEVBQzFDLFVBQTRCLEVBQzVCLE1BQXFCLEVBQ3JCLE1BQWMsRUFDVyxXQUFnQjtRQUpqQyxZQUFPLEdBQVAsT0FBTyxDQUEyQjtRQUMxQyxlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUM1QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDVyxnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQU5yRCx3QkFBbUIsR0FBRyxFQUFFLENBQUM7SUFTekIsQ0FBQztJQUVELGtCQUFrQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTztRQUMxQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLElBQUksT0FBTyxFQUFFO1lBQ2hDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztTQUN0RDthQUFNLElBQUksT0FBTyxDQUFDLFdBQVcsSUFBSSxjQUFjLEVBQUU7WUFDOUMsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNoRTthQUFNLElB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QUFTLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztpQkFDN0I7Z0JBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMxQjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBSUgsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUdELHNCQUFzQjtRQUNsQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNwQyxDQUFDOztnSUEvWVEsbUNBQW1DLDhJQVFoQyxlQUFlO29JQVJsQixtQ0FBbUMsY0FEdEIsTUFBTTsyRkFDbkIsbUNBQW1DO2tCQUQvQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBU3pCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBpbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJy4uLy4uL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvbW9tZW50LWhlbHBlcic7XG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XG5pbXBvcnQgeyBBUFBfRU5WSVJPTk1FTlQgfSBmcm9tICcuLi8uLi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2Vudmlyb25tZW50JztcbmltcG9ydCB7IGtwaWNvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2twaS1zZXJ2aWNlJztcbmltcG9ydCB7IEtwaVdpdGhNdWx0aUxheW91dFNlcnZpY2UgfSBmcm9tICcuLi9rcGlXaXRoTXVsdGlMYXlvdXQva3BpLW11bHRpLWxheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FeHRyYXMsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogXCJyb290XCIgfSlcbmV4cG9ydCBjbGFzcyBTaW5nbGVMYXlvdXRBcHBsaWNhdGlvbkRhdHNzZXRzQ2FsbCB7XG5cbiAgICB1bmlxdWVEYXRhU2V0T2JqZWN0ID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2U6IEtwaVdpdGhNdWx0aUxheW91dFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUga3BpU2VydmljZToga3BpY29tbW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0b2FzdHI6IFRvYXN0clNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIEBJbmplY3QoQVBQX0VOVklST05NRU5UKSBwcml2YXRlIGVudmlyb25tZW50OiBhbnlcbiAgICApIHtcblxuICAgIH1cblxuICAgIGdldERhdGFGcm9tRGF0YVNldChkYXRhc2V0LCBkYXRhc2V0SWQsIGZpbHRlcnMpIHtcbiAgICAgICAgaWYgKGRhdGFzZXQuZGF0YXNldFR5cGUgPT0gXCJtb25nb1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRhU2V0Rm9yTW9uZ28oZGF0YXNldCwgZGF0YXNldElkKTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRhc2V0LmRhdGFzZXRUeXBlID09IFwicXVlcnlidWlsZGVyXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERhdGFzZXRGb3JJbXBhbGEoZGF0YXNldCwgZGF0YXNldElkLCBmaWx0ZXJzKTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRhc2V0LmRhdGFzZXRUeXBlID09IFwic2ltcGxlQXBpXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERhdGFzZXRGb3JTaW1wbGVBcGlJbXBhbGEoZGF0YXNldCwgZGF0YXNldElkLCBmaWx0ZXJzKTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRhc2V0LmRhdGFzZXRUeXBlID09IFwicGxhaW5qc29uXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERhdGFzZXRGb3JQbGFpbkpzb24oZGF0YXNldCwgZGF0YXNldElkLCBmaWx0ZXJzKTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRhc2V0LmRhdGFzZXRUeXBlID09IFwic3FsUXVlcnlcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0YXNldEZvclNxbFRlbXBsYXRlKGRhdGFzZXQsIGRhdGFzZXRJZCwgZmlsdGVycyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIGdldERhdGFTZXRGb3JNb25nbyhkYXRhc2V0LCBkYXRhc2V0SWQpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGxldCBhcGlKc29uT2JqZWN0ID0ge1xuICAgICAgICAgICAgICAgIHJlcXVlc3RJZDogZGF0YXNldC5jb25maWcuc2VydmljZUlkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChkYXRhc2V0LmNvbmZpZy5maXhPcGVyYXRpb25MZXZsZXMgJiYgZGF0YXNldC5jb25maWcuZml4T3BlcmF0aW9uTGV2bGVzLmxlbmd0aCAhPSAwKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGRhdGFzZXQuY29uZmlnLmZpeE9wZXJhdGlvbkxldmxlcykge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGFwaUpzb25PYmplY3QsIGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG1vbl9jb25maWcgPSB0aGlzLmtwaVNlcnZpY2UuZ2V0QWxsU2V2aWNlQXBpSnNvbihhcGlKc29uT2JqZWN0KTtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5nZXREYXRhKG1vbl9jb25maWcsIGRhdGFzZXQuY29uZmlnLmFwaSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSBkYXRhW1wiUGF5bG9hZFwiXSB8fCBkYXRhO1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLnVuaXF1ZURhdGFTZXRPYmplY3RbZGF0YXNldElkXSA9IHBheWxvYWQuc2xpY2UoMCwgMjApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVuaXF1ZURhdGFTZXRPYmplY3RbZGF0YXNldElkXSA9IHBheWxvYWQ7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6JywgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldERhdGFzZXRGb3JJbXBhbGEoZGF0YXNldCwgZGF0YXNldElkLCBmaWx0ZXJzKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGxldCByZXF1ZXN0ID0gZGF0YXNldC5jb25maWcucXVlcnlDb25maWc7XG4gICAgICAgICAgICBsZXQgdHJhbnNmb3JtZWRPYmplY3Q6IGFueSA9IHt9O1xuICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiByZXF1ZXN0LnJlcUZpZWxkcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IE9iamVjdC5rZXlzKGl0ZW0pWzBdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gT2JqZWN0LnZhbHVlcyhpdGVtKVswXTtcbiAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSAnc3RhcnREYXRlJykge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm1lZE9iamVjdC5yZWNvcmREYXRlID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtZWRPYmplY3Rba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG9wZXJhdG9yID0gKGZpbHRlcnMgJiYgZmlsdGVycy5sZW5ndGggIT09IDApID8gT2JqZWN0LmtleXMoZmlsdGVycy5vcGVyYXRpb25GaWx0ZXIpLm1hcChrZXkgPT4gKHsgW2tleV06IGZpbHRlcnMub3BlcmF0aW9uRmlsdGVyW2tleV0gfSkpIDogW107XG5cblxuICAgICAgICAgICAgdHJhbnNmb3JtZWRPYmplY3RbJ2ZpbHRlcnMnXSA9IHRoaXMudHJhbnNmb3JtRGF0YUZvck1GaWx0ZXIob3BlcmF0b3IsIHJlcXVlc3QubWFwZWRGaWx0ZXJzKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybWVkT2JqZWN0Wydzb3J0ZXJzJ10gPSByZXF1ZXN0LnNvcnRlcnM7XG4gICAgICAgICAgICB0cmFuc2Zvcm1lZE9iamVjdFtcInBhZ2luYXRpb25SZXF1aXJlZFwiXSA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAoZGF0YXNldC5jb25maWcuYXBpID09IFwiL2twaS9nZW5lcmljQWdncmVnYXRlUGFnaW5hdGVkS3BpU2VydmljZVJlc3BvbnNlXCIpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1lZE9iamVjdFsnbWVhc3VyZXMnXSA9IHJlcXVlc3QubWVhc3VyZXM7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtZWRPYmplY3RbJ2RpbWVuc2lvbnMnXSA9IHJlcXVlc3QuZGltZW5zaW9ucztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtZWRPYmplY3RbJ2NvbHVtbnMnXSA9IHRoaXMuZ2V0Rm9ybWF0T2JqZWN0Rm9yQ29sdW1uKHJlcXVlc3QuY29sdW1ucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocmVxdWVzdC5oYXZpbmdzICYmIHJlcXVlc3QuaGF2aW5ncy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1lZE9iamVjdFsnaGF2aW5ncyddID0gcmVxdWVzdC5oYXZpbmdzO1xuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIC8vIGxldCBuYXZpZ2F0aW9uOiBOYXZpZ2F0aW9uRXh0cmFzID0ge1xuICAgICAgICAgICAgLy8gICAgIHF1ZXJ5UGFyYW1zOiBhcHBsaWVkRmlsdGVyc1snb3BlcmF0aW9uRmlsdGVyJ10sXG4gICAgICAgICAgICAvLyAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogXCJtZXJnZVwiXG4gICAgICAgICAgICAvLyB9O1xuICAgICAgICAgICAgLy8gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIG5hdmlnYXRpb24pO1xuXG5cbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5nZXREYXRhKHRyYW5zZm9ybWVkT2JqZWN0LCBkYXRhc2V0LmNvbmZpZy5hcGkpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gZGF0YVsnZGF0YXNldCddO1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLnVuaXF1ZURhdGFTZXRPYmplY3RbZGF0YXNldElkXSA9IHBheWxvYWQuc2xpY2UoMCwgMzApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVuaXF1ZURhdGFTZXRPYmplY3RbZGF0YXNldElkXSA9IHBheWxvYWQ7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6JywgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoZXJyLm1lc3NhZ2UpXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIGdldEZvcm1hdE9iamVjdEZvckNvbHVtbihjb2x1bW5zKSB7XG4gICAgICAgIGxldCBjb2x1bW5EYXRhID0gW107XG4gICAgICAgIGNvbHVtbnMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgYWR2YW5jZWRDb2x1bW4sIGNvbHVtbk5hbWUsIGVucmljaEZ1bmN0aW9uLCBkYXRhRmllbGQgfSA9IGVsZW1lbnQ7XG4gICAgICAgICAgICBjb2x1bW5EYXRhLnB1c2goe1xuICAgICAgICAgICAgICAgIFwiYWR2YW5jZWRDb2x1bW5cIjogYWR2YW5jZWRDb2x1bW4sXG4gICAgICAgICAgICAgICAgXCJjb2x1bW5OYW1lXCI6IGNvbHVtbk5hbWUsXG4gICAgICAgICAgICAgICAgXCJlbnJpY2hGdW5jdGlvblwiOiBlbnJpY2hGdW5jdGlvbixcbiAgICAgICAgICAgICAgICBcImFsaWFzTmFtZVwiOiBkYXRhRmllbGRcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gY29sdW1uRGF0YTtcbiAgICB9XG5cbiAgICB0cmFuc2Zvcm1EYXRhRm9yTUZpbHRlcihmaWx0ZXJkYXRhLCBtYXBEYXRhKSB7XG4gICAgICAgIGxldCByZXN1bHQgPSBbXTtcbiAgICAgICAgbWFwRGF0YS5mb3JFYWNoKG1hcHBpbmcgPT4ge1xuICAgICAgICAgICAgbGV0IHJlc3VsdE9iaiA9IHtcbiAgICAgICAgICAgICAgICBjb2x1bW5OYW1lOiBtYXBwaW5nLnNlcnZlckNvbHVtbixcbiAgICAgICAgICAgICAgICBkYXRhVHlwZTogbWFwcGluZy5kYXRhVHlwZSxcbiAgICAgICAgICAgICAgICBvcGVyYXRvcjogbWFwcGluZy5vcGVyYXRvck5hbWUsXG4gICAgICAgICAgICAgICAgdmFsdWU6IG1hcHBpbmcuZGVmYXVsdFZhbHVlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKG1hcHBpbmcuc2VydmVyQ29sdW1uLmluY2x1ZGVzKCdkYXRlJykgJiYgdHlwZW9mIHJlc3VsdE9iai52YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAobWFwcGluZy5mb3JtYXR0ZXIgJiYgbWFwcGluZy5mb3JtYXR0ZXIgIT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLnZhbHVlID0gbW9tZW50KHJlc3VsdE9iai52YWx1ZSwgXCJZWVlZLU1NLUREXCIpLmZvcm1hdChtYXBwaW5nLmZvcm1hdHRlcik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLnZhbHVlID0gbW9tZW50KHJlc3VsdE9iai52YWx1ZSwgXCJZWVlZLU1NLUREXCIpLmZvcm1hdCh0aGlzLmVudmlyb25tZW50LmRhdGFGb3JtYXQpO1xuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gZmlsdGVyZGF0YS5maW5kKGYgPT4gZi5oYXNPd25Qcm9wZXJ0eShtYXBwaW5nLmxvY2FsQ29sdW1uKSk7XG4gICAgICAgICAgICBpZiAoZmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1hcHBpbmcuZGVmYXVsdFZhbHVlID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZmlsdGVyW21hcHBpbmcubG9jYWxDb2x1bW5dO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLm9wZXJhdG9yID0gXCJpblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLnZhbHVlID0gdmFsdWUuam9pbihcIixcIik7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAobWFwcGluZy5zZXJ2ZXJDb2x1bW4uaW5jbHVkZXMoJ2RhdGUnKSAmJiB0eXBlb2YgcmVzdWx0T2JqLnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1hcHBpbmcuZm9ybWF0dGVyICYmIG1hcHBpbmcuZm9ybWF0dGVyICE9PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLnZhbHVlID0gbW9tZW50KHJlc3VsdE9iai52YWx1ZSwgXCJZWVlZLU1NLUREXCIpLmZvcm1hdChtYXBwaW5nLmZvcm1hdHRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai52YWx1ZSA9IG1vbWVudChyZXN1bHRPYmoudmFsdWUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQodGhpcy5lbnZpcm9ubWVudC5kYXRhRm9ybWF0KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChtYXBwaW5nLmRlZmF1bHRWYWx1ZSA9PT0gXCJcIikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHJlc3VsdE9iaik7XG4gICAgICAgIH0pO1xuICAgICAgICBmaWx0ZXJkYXRhID0gZmlsdGVyZGF0YS5maWx0ZXIob2JqID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IE9iamVjdC5rZXlzKG9iailbMF07XG4gICAgICAgICAgICByZXR1cm4ga2V5ICE9PSAnc3RhcnREYXRlJyAmJiBrZXkgIT09ICdlbmREYXRlJztcbiAgICAgICAgfSk7XG4gICAgICAgIGZpbHRlcmRhdGEuZm9yRWFjaChmaWx0ZXIgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyS2V5ID0gT2JqZWN0LmtleXMoZmlsdGVyKVswXTtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nTWFwcGluZyA9IG1hcERhdGEuZmluZChtYXBwaW5nID0+IG1hcHBpbmcubG9jYWxDb2x1bW4gPT09IGZpbHRlcktleSk7XG5cbiAgICAgICAgICAgIGlmICghZXhpc3RpbmdNYXBwaW5nKSB7XG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdE9iaiA9IHtcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uTmFtZTogZmlsdGVyS2V5LFxuICAgICAgICAgICAgICAgICAgICBkYXRhVHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6IFwiZXFcIixcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZpbHRlcltmaWx0ZXJLZXldXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpbHRlcltmaWx0ZXJLZXldKSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoub3BlcmF0b3IgPSBcImluXCI7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai52YWx1ZSA9IGZpbHRlcltmaWx0ZXJLZXldLmpvaW4oXCIsXCIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai52YWx1ZSA9IGZpbHRlcltmaWx0ZXJLZXldO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIGZvciBtY2l0IG9ubHlcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyS2V5ID09ICdvcGVyYXRvcl9rZXknKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai5vcGVyYXRvciA9IFwiZXFcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2gocmVzdWx0T2JqKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cblxuICAgICAgICByZXN1bHQgPSByZXN1bHQuZmlsdGVyKG9iaiA9PiBvYmoudmFsdWUgIT09IG51bGwgJiYgb2JqLnZhbHVlICE9PSBcIlwiKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cblxuXG5cbiAgICBnZXREYXRhc2V0Rm9yU2ltcGxlQXBpSW1wYWxhKGRhdGFzZXQ6IGFueSwgZGF0YXNldElkOiBzdHJpbmcsIGZpbHRlcnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcblxuICAgICAgICAgICAgZGF0YXNldC5jb25maWcucXVlcnlDb25maWcubWFwZWRGaWx0ZXJzLmZvckVhY2goZmlsdGVyID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVycy5vcGVyYXRpb25GaWx0ZXIuaGFzT3duUHJvcGVydHkoZmlsdGVyLmxvY2FsQ29sdW1uKSkge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIuZGVmYXVsdFZhbHVlID0gZmlsdGVycy5vcGVyYXRpb25GaWx0ZXJbZmlsdGVyLmxvY2FsQ29sdW1uXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChkYXRhc2V0LmNvbmZpZy5hcGlUeXBlID09PSBcInBvc3RcIikge1xuXG4gICAgICAgICAgICAgICAgbGV0IHNlcnZpY2VKc29uOiBhbnkgPSB7fTtcbiAgICAgICAgICAgICAgICBkYXRhc2V0LmNvbmZpZy5xdWVyeUNvbmZpZy5tYXBlZEZpbHRlcnMuZm9yRWFjaCgoZmlsdGVyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGVjb2x1bW4gPSBmaWx0ZXIuc2VydmVyQ29sdW1uLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRlY29sdW1uLmluY2x1ZGVzKCdkYXRlJykgJiYgdHlwZW9mIGZpbHRlci5kYXRhVHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VKc29uW2ZpbHRlci5zZXJ2ZXJDb2x1bW5dID0gbW9tZW50KGZpbHRlci5kZWZhdWx0VmFsdWUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQodGhpcy5lbnZpcm9ubWVudC5kYXRhRm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VKc29uW2ZpbHRlci5zZXJ2ZXJDb2x1bW5dID0gZmlsdGVyLmRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZS5nZXRTaW1wbGVBcGlQb3N0UmVxdWVzdChkYXRhc2V0LmNvbmZpZy5hcGksIHNlcnZpY2VKc29uKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gZGF0YVtcIlBheWxvYWRcIl0gfHwgZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudW5pcXVlRGF0YVNldE9iamVjdFtkYXRhc2V0SWRdID0gcGF5bG9hZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6JywgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKGVyci5tZXNzYWdlKVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhc2V0LmNvbmZpZy5hcGlUeXBlID09PSBcImdldFwiKSB7XG5cbiAgICAgICAgICAgICAgICBsZXQgcmVxdWVzdFVybCA9IGRhdGFzZXQuY29uZmlnLmFwaSArIFwiP1wiO1xuICAgICAgICAgICAgICAgIGRhdGFzZXQuY29uZmlnLnF1ZXJ5Q29uZmlnLm1hcGVkRmlsdGVycy5mb3JFYWNoKChmaWx0ZXI6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0VXJsICs9IGAke2ZpbHRlci5zZXJ2ZXJDb2x1bW59PSR7ZmlsdGVyLmRlZmF1bHRWYWx1ZX1gO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPCBkYXRhc2V0LmNvbmZpZy5xdWVyeUNvbmZpZy5tYXBlZEZpbHRlcnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFVybCArPSBcIiZcIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmdldFNpbXBsZUFwaUdldFJlcXVlc3QocmVxdWVzdFVybCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IGRhdGFbXCJQYXlsb2FkXCJdIHx8IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVuaXF1ZURhdGFTZXRPYmplY3RbZGF0YXNldElkXSA9IHBheWxvYWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihlcnIubWVzc2FnZSlcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG5cbiAgICBnZXREYXRhc2V0Rm9yUGxhaW5Kc29uKGRhdGFzZXQsIGRhdGFzZXRJZCwgZmlsdGVyKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cbiAgICAgICAgICAgIGxldCByZXF1ZXN0YXBpID0gZGF0YXNldC5jb25maWcuYXBpICsgJz9kYXRhc2V0SWQ9JyArIGRhdGFzZXQuZGF0YXNldElkO1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmdldEpzb25EYXRhc2V0UGF5bG9hZChyZXF1ZXN0YXBpKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IGRhdGFbXCJQYXlsb2FkXCJdIHx8IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudW5pcXVlRGF0YVNldE9iamVjdFtkYXRhc2V0SWRdID0gcGF5bG9hZDtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycik7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIGdldERhdGFzZXRGb3JTcWxUZW1wbGF0ZShkYXRhc2V0LCBkYXRhc2V0SWQsIGZpbHRlcnMpIHtcblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXG5cbiAgICAgICAgICAgIGNvbnN0IG9wZXJhdG9yID0gKGZpbHRlcnMgJiYgZmlsdGVycy5sZW5ndGggIT09IDApID8gT2JqZWN0LmtleXMoZmlsdGVycy5vcGVyYXRpb25GaWx0ZXIpLm1hcChrZXkgPT4gKHsgW2tleV06IGZpbHRlcnMub3BlcmF0aW9uRmlsdGVyW2tleV0gfSkpIDogW107XG5cbiAgICAgICAgICAgIGxldCByZXF1ZXN0QXAgPSBkYXRhc2V0LmNvbmZpZy5hcGk7XG4gICAgICAgICAgICBsZXQgcmVxdWVzdF9wYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgJ2RiQ29uZmlnJzogZGF0YXNldC5jb25maWcucXVlcnlDb25maWcuZGJDb25maWcsXG4gICAgICAgICAgICAgICAgJ2RhdGFiYXNlTmFtZSc6IGRhdGFzZXQuY29uZmlnLnF1ZXJ5Q29uZmlnLmRhdGFiYXNlTmFtZSxcbiAgICAgICAgICAgICAgICAnZmlsdGVycyc6IHRoaXMudHJhbnNmb3JtRGF0YUZvck1GaWx0ZXJGb3JTUWwob3BlcmF0b3IsIGRhdGFzZXQuY29uZmlnLnF1ZXJ5Q29uZmlnLm1hcGVkRmlsdGVycyksXG4gICAgICAgICAgICAgICAgJ3RlbXBsYXRlUXVlcnknOiBkYXRhc2V0LmNvbmZpZy5xdWVyeUNvbmZpZy50ZW1wbGF0ZVF1ZXJ5LFxuICAgICAgICAgICAgICAgICdlbnJpY2htZW50cyc6IGRhdGFzZXQuY29uZmlnLnF1ZXJ5Q29uZmlnLmVucmljaG1lbnRzLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmdlbmVyaWNTcWxRdWVyeVJlc3BvbnNlKHJlcXVlc3RBcCwgcmVxdWVzdF9wYXJhbXMpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gZGF0YVtcIlBheWxvYWRcIl0gfHwgZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51bmlxdWVEYXRhU2V0T2JqZWN0W2RhdGFzZXRJZF0gPSBwYXlsb2FkO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKGVyci5tZXNzYWdlKVxuXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRyYW5zZm9ybURhdGFGb3JNRmlsdGVyRm9yU1FsKGZpbHRlcmRhdGEsIG1hcERhdGEpIHtcblxuICAgICAgICBsZXQgcmVzdWx0ID0gW107XG4gICAgICAgIG1hcERhdGEuZm9yRWFjaChtYXBwaW5nID0+IHtcbiAgICAgICAgICAgIGxldCByZXN1bHRPYmogPSB7XG4gICAgICAgICAgICAgICAgY29sdW1uTmFtZTogbWFwcGluZy5zZXJ2ZXJDb2x1bW4sXG4gICAgICAgICAgICAgICAgZGF0YVR5cGU6IG1hcHBpbmcuZGF0YVR5cGUsXG4gICAgICAgICAgICAgICAgb3BlcmF0b3I6IG1hcHBpbmcub3BlcmF0b3JOYW1lLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBtYXBwaW5nLmRlZmF1bHRWYWx1ZSxcbiAgICAgICAgICAgICAgICBhbGlhc0NvbHVtbk5hbWU6IG1hcHBpbmcubG9jYWxDb2x1bW4sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKG1hcHBpbmcuc2VydmVyQ29sdW1uLmluY2x1ZGVzKCdkYXRlJykgJiYgdHlwZW9mIHJlc3VsdE9iai52YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAobWFwcGluZy5mb3JtYXR0ZXIgJiYgbWFwcGluZy5mb3JtYXR0ZXIgIT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLnZhbHVlID0gbW9tZW50KHJlc3VsdE9iai52YWx1ZSwgXCJZWVlZLU1NLUREXCIpLmZvcm1hdChtYXBwaW5nLmZvcm1hdHRlcik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLnZhbHVlID0gbW9tZW50KHJlc3VsdE9iai52YWx1ZSwgXCJZWVlZLU1NLUREXCIpLmZvcm1hdCh0aGlzLmVudmlyb25tZW50LmRhdGFGb3JtYXQpO1xuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gZmlsdGVyZGF0YS5maW5kKGYgPT4gZi5oYXNPd25Qcm9wZXJ0eShtYXBwaW5nLmxvY2FsQ29sdW1uKSk7XG4gICAgICAgICAgICBpZiAoZmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1hcHBpbmcuZGVmYXVsdFZhbHVlID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZmlsdGVyW21hcHBpbmcubG9jYWxDb2x1bW5dO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLm9wZXJhdG9yID0gXCJpblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLnZhbHVlID0gdmFsdWUuam9pbihcIixcIik7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAobWFwcGluZy5zZXJ2ZXJDb2x1bW4uaW5jbHVkZXMoJ2RhdGUnKSAmJiB0eXBlb2YgcmVzdWx0T2JqLnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLnZhbHVlID0gbW9tZW50KHJlc3VsdE9iai52YWx1ZSwgXCJZWVlZLU1NLUREXCIpLmZvcm1hdCh0aGlzLmVudmlyb25tZW50LmRhdGFGb3JtYXQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChtYXBwaW5nLmRlZmF1bHRWYWx1ZSA9PT0gXCJcIikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHJlc3VsdE9iaik7XG4gICAgICAgIH0pO1xuICAgICAgICBmaWx0ZXJkYXRhID0gZmlsdGVyZGF0YS5maWx0ZXIob2JqID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IE9iamVjdC5rZXlzKG9iailbMF07XG4gICAgICAgICAgICByZXR1cm4ga2V5ICE9PSAnc3RhcnREYXRlJyAmJiBrZXkgIT09ICdlbmREYXRlJztcbiAgICAgICAgfSk7IGZpbHRlcmRhdGEuZm9yRWFjaChmaWx0ZXIgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyS2V5ID0gT2JqZWN0LmtleXMoZmlsdGVyKVswXTtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nTWFwcGluZyA9IG1hcERhdGEuZmluZChtYXBwaW5nID0+IG1hcHBpbmcubG9jYWxDb2x1bW4gPT09IGZpbHRlcktleSk7XG5cbiAgICAgICAgICAgIGlmICghZXhpc3RpbmdNYXBwaW5nKSB7XG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdE9iaiA9IHtcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uTmFtZTogZmlsdGVyS2V5LFxuICAgICAgICAgICAgICAgICAgICBkYXRhVHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6IFwiZXFcIixcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZpbHRlcltmaWx0ZXJLZXldXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpbHRlcltmaWx0ZXJLZXldKSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoub3BlcmF0b3IgPSBcImluXCI7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai52YWx1ZSA9IGZpbHRlcltmaWx0ZXJLZXldLmpvaW4oXCIsXCIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai52YWx1ZSA9IGZpbHRlcltmaWx0ZXJLZXldO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIGZvciBtY2l0IG9ubHlcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyS2V5ID09ICdvcGVyYXRvcl9rZXknKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai5vcGVyYXRvciA9IFwiZXFcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2gocmVzdWx0T2JqKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cblxuICAgICAgICAvLyByZXN1bHQgPSByZXN1bHQuZmlsdGVyKG9iaiA9PiBvYmoudmFsdWUgIT09IG51bGwgJiYgb2JqLnZhbHVlICE9PSBcIlwiKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cblxuICAgIGdldFVuaXF1ZURhdGFTZXRPYmplY3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVuaXF1ZURhdGFTZXRPYmplY3Q7XG4gICAgfVxuXG5cbiAgIFxuXG5cbn1cbiJdfQ==
|
package/esm2020/public-api.mjs
CHANGED
|
@@ -45,6 +45,7 @@ export * from './lib/application-controller/kpi-service';
|
|
|
45
45
|
export * from './lib/application-controller/app.http.service';
|
|
46
46
|
export * from './lib/gamma-app-controller.service';
|
|
47
47
|
export * from './lib/application-controller/application-content.service';
|
|
48
|
+
export * from './lib/application-controller/tokenStorage.servce';
|
|
48
49
|
export * from './lib/shared/safeHtmlPipe';
|
|
49
50
|
export * from './lib/application-controller/application-dataset-component/create-dataset-sql/sqlFormatter';
|
|
50
51
|
export * from './lib/shared/advanced-component/gamma-table-with-percentage/contentSafeHtml';
|
|
@@ -74,12 +75,13 @@ export * from './lib/template-module/kpiWithSingleLayout/kpiWithSingleLayout.mod
|
|
|
74
75
|
export * from './lib/template-module/kpiWithSingleLayout/kpi-with-dataset.component';
|
|
75
76
|
export * from './lib/template-module/kpiWithSingleLayout/dynamin-modal.component';
|
|
76
77
|
export * from './lib/template-module/kpiWithSingleLayout/kpi-single-layout.service';
|
|
77
|
-
export * from './lib/template-module/kpiWithSingleLayout/
|
|
78
|
+
export * from './lib/template-module/kpiWithSingleLayout/application-chat-api-call.service';
|
|
79
|
+
export * from './lib/template-module/kpiWithSingleLayout/single-layout-dataset-call.service';
|
|
78
80
|
export * from './lib/template-module/kpiWithMultiLayout/dynamin-modal-multi.component';
|
|
79
81
|
export * from './lib/template-module/kpiWithMultiLayout/kpi-with-multilayout.component';
|
|
80
82
|
export * from './lib/template-module/kpiWithMultiLayout/kpiWithMultiayout.module';
|
|
81
83
|
export * from './lib/template-module/kpiWithMultiLayout/kpi-multi-layout.service';
|
|
82
|
-
export * from './lib/template-module/kpiWithMultiLayout/
|
|
84
|
+
export * from './lib/template-module/kpiWithMultiLayout/multi-layout-dataset-call.service';
|
|
83
85
|
export * from './lib/template-module/defaulLandingComponent/landing-component.component';
|
|
84
86
|
export * from './lib/template-module/defaulLandingComponent/defaultLandingComponent.module';
|
|
85
87
|
export * from './lib/template-module/defaulLandingComponent/landing-component.service';
|
|
@@ -88,4 +90,4 @@ export * from './lib/template-module/bookmarked-template/bookmarked-template.com
|
|
|
88
90
|
export * from './lib/template-module/bookmarked-template/bookmarkedTemplate.module';
|
|
89
91
|
export * from './lib/template-module/bookmarked-template/bookmarked-layout.service';
|
|
90
92
|
export * from './lib/template-module/bookmarked-template/bookmarked-dataset-call.service';
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2dhbW1hLWFwcC1jb250cm9sbGVyL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw0REFBNEQsQ0FBQztBQU8zRSxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLHdEQUF3RCxDQUFDO0FBR3ZFLGNBQWMsOEVBQThFLENBQUM7QUFDN0YsY0FBYyw4R0FBOEcsQ0FBQztBQUM3SCxjQUFjLDRHQUE0RyxDQUFDO0FBQzNILGNBQWMsb0dBQW9HLENBQUM7QUFDbkgsY0FBYyx3R0FBd0csQ0FBQztBQUN2SCxjQUFjLHNHQUFzRyxDQUFDO0FBQ3JILGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxxR0FBcUcsQ0FBQztBQUNwSCxjQUFjLHlFQUF5RSxDQUFDO0FBQ3hGLGNBQWMsMkZBQTJGLENBQUM7QUFDMUcsY0FBYyxtRkFBbUYsQ0FBQztBQUNsRyxjQUFjLHFHQUFxRyxDQUFDO0FBQ3BILGNBQWMsbUdBQW1HLENBQUM7QUFDbEgsY0FBYyxxRkFBcUYsQ0FBQztBQUNwRyxjQUFjLHlFQUF5RSxDQUFDO0FBQ3hGLGNBQWMsbUdBQW1HLENBQUM7QUFDbEgsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMseUZBQXlGLENBQUM7QUFDeEcsY0FBYywyRUFBMkUsQ0FBQztBQUMxRixjQUFjLHVFQUF1RSxDQUFBO0FBQ3JGLGNBQWMseUVBQXlFLENBQUM7QUFDeEYsY0FBYywyRUFBMkUsQ0FBQztBQUUxRixjQUFjLGdGQUFnRixDQUFDO0FBQy9GLGNBQWMsMEdBQTBHLENBQUM7QUFDekgsY0FBYyx3RkFBd0YsQ0FBQztBQUd2RyxjQUFjLGdHQUFnRyxDQUFDO0FBQy9HLGNBQWMsZ0dBQWdHLENBQUM7QUFDL0csY0FBYyxnR0FBZ0csQ0FBQztBQUMvRyxjQUFjLHdHQUF3RyxDQUFDO0FBS3ZILGNBQWMsK0RBQStELENBQUM7QUFDOUUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYywwREFBMEQsQ0FBQTtBQUd4RSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNEZBQTRGLENBQUM7QUFDM0csY0FBYyw2RUFBNkUsQ0FBQztBQUc1RixjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDBDQUEwQyxDQUFDO0FBR3pELGNBQWMsaUZBQWlGLENBQUM7QUFDaEcsY0FBYyxpRkFBaUYsQ0FBQztBQUNoRyxjQUFjLG1HQUFtRyxDQUFDO0FBQ2xILGNBQWMsNkVBQTZFLENBQUM7QUFJNUYsY0FBYyw0Q0FBNEMsQ0FBQTtBQUkxRCxjQUFjLDJFQUEyRSxDQUFDO0FBQzFGLGNBQWMsb0VBQW9FLENBQUM7QUFFbkYsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLHdEQUF3RCxDQUFDO0FBRXZFLGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMsbUZBQW1GLENBQUM7QUFDbEcsY0FBYyxtRkFBbUYsQ0FBQztBQUNsRyxjQUFjLCtGQUErRixDQUFDO0FBQzlHLGNBQWMsdUZBQXVGLENBQUM7QUFDdEcsY0FBYyxtRkFBbUYsQ0FBQztBQUNsRyxjQUFjLHFGQUFxRixDQUFDO0FBR3BHLGNBQWMsc0VBQXNFLENBQUM7QUFDckYsY0FBYyxzRUFBc0UsQ0FBQztBQUNyRixjQUFjLG1FQUFtRSxDQUFDO0FBQ2xGLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyxxRUFBcUUsQ0FBQztBQUVwRixjQUFjLHdFQUF3RSxDQUFDO0FBQ3ZGLGNBQWMseUVBQXlFLENBQUM7QUFDeEYsY0FBYyxtRUFBbUUsQ0FBQztBQUNsRixjQUFjLG1FQUFtRSxDQUFDO0FBQ2xGLGNBQWMsNkVBQTZFLENBQUE7QUFFM0YsY0FBYywwRUFBMEUsQ0FBQztBQUN6RixjQUFjLDZFQUE2RSxDQUFDO0FBQzVGLGNBQWMsd0VBQXdFLENBQUM7QUFDdkYsY0FBYywyRUFBMkUsQ0FBQTtBQUV6RixjQUFjLHlFQUF5RSxDQUFDO0FBQ3hGLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyxxRUFBcUUsQ0FBQztBQUNwRixjQUFjLDJFQUEyRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBnYW1tYS1hcHAtY29udHJvbGxlclxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2dhbW1hLWFwcC1jb250cm9sbGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ2FtbWEtYXBwLWNvbnRyb2xsZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dhbW1hLWFwcC1jb250cm9sbGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pY29ucy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1jb250cm9sbGVyLm1vZHVsZSc7XG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWNvbnRlbnQuc2VydmljZSc7XG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWRhdGFzZXQtY2FsbC5zZXJ2aWNlJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvZW52aXJvbm1lbnQnO1xuXG5cbi8vIEV4cG9ydCBNb2R1bGVzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9nYW1tYS1hcHAtY29udHJvbGxlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1jb250cm9sbGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2xvYWRpbmcvbG9hZGluZ01vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xuXG4vLyBFeHBvcnQgQ29tcG9uZW50c1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1maWx0ZXIvYXBwbGljYXRpb24tZmlsdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2NyZWF0ZS1kYXRhc2V0LWpzb24vY3JlYXRlLWRhdGFzZXQtanNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9jcmVhdGUtZGF0YXNldC1zcWwvY3JlYXRlLWRhdGFzZXQtc3FsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2NyZWF0ZS1kYXRhc2V0L2NyZWF0ZS1kYXRhc2V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLXZpZXctY29tcG9uZW50cy9hcHBsaWNhdGlvbi12aWV3cy9hcHBsaWNhdGlvbi12aWV3cy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi12aWV3LWNvbXBvbmVudHMvY3JlYXRlLWNvbXAtdmlldy9jcmVhdGUtY29tcC12aWV3LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2NvbW1vbi1oZWFkZXIvY29tbW9uLWhlYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9hZHZhbmNlLXdpZGdldC1oZWFkZXItZmlsdGVyL2FkdmFuY2Utd2lkZ2V0LWhlYWRlci1maWx0ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvYXBwLWFkdmFuY2UtaGVhZGVyL2FwcC1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbS1zaW5nbGUtbnVtYmVyLWNhcmQvZ2FtbS1zaW5nbGUtbnVtYmVyLWNhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtYWR2YW5jZS1jaGFydC9nYW1tYS1hZHZhbmNlLWNoYXJ0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLWFkdmFuY2Utb3BlcmF0b3ItdGFibGUvZ2FtbWEtYWR2YW5jZS1vcGVyYXRvci10YWJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tYS10YWJsZS13aXRoLXBlcmNlbnRhZ2UvZ2FtbWEtdGFibGUtd2l0aC1wZXJjZW50YWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLXRvZGF5LXByZXZpb3VzL2dhbW1hLXRvZGF5LXByZXZpb3VzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dvb2dsZS1nZW8tbWFwL2dvb2dsZS1nZW8tbWFwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLXRhYmxlLWNsdW1uLWJhci1jaGFydC9nYW1tYS10YWJsZS1jbHVtbi1iYXItY2hhcnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hcHAtdGl0bGUvYXBwLXRpdGxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZ2FtYW0td2lkZ2V0L2dhbWFtLXdpZGdldC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2dhbW1hLWFkdmFuY2UtZmlsdGVyL2dhbW1hLWFkdmFuY2UtZmlsdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZ2FtbWEtYnJlYWQtY3J1bWJzL2JyZWFkLWNydW1icy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvc3VwcG9ydC1jb21wb25lbnRzL3RhYmxlLXdpdGgtYmFyL3RhYmxlLXdpdGgtYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL3N1cHBvcnQtY29tcG9uZW50cy9nZW8tbWFwL2dlby1tYXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtaGVhdG1hcC9nYW1tYS1oZWF0bWFwLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ29vZ2xlLWdlby1tYXAvZ29vZ2xlLWdlby1tYXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtZ2VvLWNoYXJ0L2dhbW1hLWdlby1jaGFydC5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL3BhZ2UtY29udHJvbGxlci9wYWdlLWNvbmZpZy9wYWdlLWNvbmZpZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9wYWdlLWNvbnRyb2xsZXIvcGFnZS1jb25maWctbXVsdGktbGF5b3V0L3BhZ2UtY29uZmlnLW11bHRpLWxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9wYWdlLWNvbnRyb2xsZXIvcGFnZS1jb250cm9sbGVyL3BhZ2UtY29udHJvbGxlci5jb21wb25lbnQnO1xuXG4vL21ldHJpYyBjb21wb25lbnRcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tbWV0cmljLWNvbmZpZy9jcmVhdGUtbWV0cmljcy9jcmVhdGUtbWV0cmljcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1tZXRyaWMtY29uZmlnL29mbGluZS1tZXRyaWNzL29mbGluZS1tZXRyaWNzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLW1ldHJpYy1jb25maWcvb25saW5lLW1ldHJpY3Mvb25saW5lLW1ldHJpY3MuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tbWV0cmljLWNvbmZpZy9hbGwtbWV0cmljcy1jb25maWcvYWxsLW1ldHJpY3MtY29uZmlnLmNvbXBvbmVudCc7XG5cblxuXG4vLyBFeHBvcnQgU2VydmljZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tZGF0YXNldC1jYWxsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9rcGktc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcC5odHRwLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ2FtbWEtYXBwLWNvbnRyb2xsZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWNvbnRlbnQuc2VydmljZSdcblxuLy8gRXhwb3J0IFBpcGVzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvc2FmZUh0bWxQaXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tZGF0YXNldC1jb21wb25lbnQvY3JlYXRlLWRhdGFzZXQtc3FsL3NxbEZvcm1hdHRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLXRhYmxlLXdpdGgtcGVyY2VudGFnZS9jb250ZW50U2FmZUh0bWwnO1xuXG4vLyBFeHBvcnQgTWlzY2VsbGFuZW91c1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ2FtbWEtYXBwLWNvbnRyb2xsZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ljb25zLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2NvbW1vbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2Vudmlyb25tZW50JztcblxuLy8gc3VwcG9ydCBjb21wb25lbnRcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvc3VwcG9ydC1jb21wb25lbnRzL2Rhc2gtY2hhcnQvZGFzaC1jaGFydC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9zdXBwb3J0LWNvbXBvbmVudHMvZGFzaC10YWJsZS9kYXNoLXRhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL3N1cHBvcnQtY29tcG9uZW50cy9kYXNoLXRvZGF5LXByZXZpb3VzL2Rhc2gtdG9kYXktcHJldmlvdXMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvc3VwcG9ydC1jb21wb25lbnRzL2hlYXQtbWFwL2hlYXQtbWFwLmNvbXBvbmVudCc7XG5cblxuLy9tb21lbnRcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvbW9tZW50LWhlbHBlcidcblxuXG4vLyBtb2R1bHMgZm9yIG9wdXNpZGUgdXNlXG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvZXhjZXB0aW9uQ29uZmlnTW9kdWxlL2V4Y2VwdGlvbi1vcGVyYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9leGNlcHRpb25Db25maWdNb2R1bGUvZXhjZXB0aW9uQ29uZmlnLm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9jZHJDb25maWdNb2R1bGUvY2RyLWNvbmZpZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2NkckNvbmZpZ01vZHVsZS9jZHJDb25maWcubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL0twaUNyZWF0aW9uTW9kdWxlL2NyZWF0ZS1rcGktdHJlZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL0twaUNyZWF0aW9uTW9kdWxlL2twaUNyZWF0aW9uLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvS3BpQ3JlYXRpb25Nb2R1bGUvdHJlZXZpZXcvdHJlZXZpZXcuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9LcGlDcmVhdGlvbk1vZHVsZS90cmVldmlldy9jb21wb25lbnRzL2FzaWRlL2FzaWRlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvS3BpQ3JlYXRpb25Nb2R1bGUvdHJlZXZpZXcvY29tcG9uZW50cy9iYXNpYy9iYXNpYy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL0twaUNyZWF0aW9uTW9kdWxlL3RyZWV2aWV3L2NvbXBvbmVudHMvY29sbGFwc2FibGUvY29sbGFwc2FibGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9LcGlDcmVhdGlvbk1vZHVsZS90cmVldmlldy9jb21wb25lbnRzL2RpdmlkZXIvZGl2aWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL0twaUNyZWF0aW9uTW9kdWxlL3RyZWV2aWV3L2NvbXBvbmVudHMvZ3JvdXAvZ3JvdXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9LcGlDcmVhdGlvbk1vZHVsZS90cmVldmlldy9jb21wb25lbnRzL3NwYWNlci9zcGFjZXIuY29tcG9uZW50JztcblxuXG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUva3BpV2l0aFNpbmdsZUxheW91dC9rcGlXaXRoU2luZ2xlTGF5b3V0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUva3BpV2l0aFNpbmdsZUxheW91dC9rcGktd2l0aC1kYXRhc2V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUva3BpV2l0aFNpbmdsZUxheW91dC9keW5hbWluLW1vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUva3BpV2l0aFNpbmdsZUxheW91dC9rcGktc2luZ2xlLWxheW91dC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9rcGlXaXRoU2luZ2xlTGF5b3V0L2twaS1zaW5nbGUtbGF5b3V0LnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUva3BpV2l0aE11bHRpTGF5b3V0L2R5bmFtaW4tbW9kYWwtbXVsdGkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9rcGlXaXRoTXVsdGlMYXlvdXQva3BpLXdpdGgtbXVsdGlsYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9rcGlXaXRoTXVsdGlMYXlvdXQva3BpV2l0aE11bHRpYXlvdXQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9rcGlXaXRoTXVsdGlMYXlvdXQva3BpLW11bHRpLWxheW91dC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9rcGlXaXRoTXVsdGlMYXlvdXQvc2luZ2xlLWxheW91dC1kYXRhc2V0LWNhbGwuc2VydmljZSdcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2RlZmF1bExhbmRpbmdDb21wb25lbnQvbGFuZGluZy1jb21wb25lbnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9kZWZhdWxMYW5kaW5nQ29tcG9uZW50L2RlZmF1bHRMYW5kaW5nQ29tcG9uZW50Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvZGVmYXVsTGFuZGluZ0NvbXBvbmVudC9sYW5kaW5nLWNvbXBvbmVudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9kZWZhdWxMYW5kaW5nQ29tcG9uZW50L2xhbmRpbmctZGF0YXNldC1jYWxsLnNlcnZpY2UnXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9ib29rbWFya2VkLXRlbXBsYXRlL2Jvb2ttYXJrZWQtdGVtcGxhdGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9ib29rbWFya2VkLXRlbXBsYXRlL2Jvb2ttYXJrZWRUZW1wbGF0ZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2Jvb2ttYXJrZWQtdGVtcGxhdGUvYm9va21hcmtlZC1sYXlvdXQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvYm9va21hcmtlZC10ZW1wbGF0ZS9ib29rbWFya2VkLWRhdGFzZXQtY2FsbC5zZXJ2aWNlJztcblxuXG5cblxuXG5cblxuXG5cbiJdfQ==
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2dhbW1hLWFwcC1jb250cm9sbGVyL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw0REFBNEQsQ0FBQztBQU8zRSxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLHdEQUF3RCxDQUFDO0FBR3ZFLGNBQWMsOEVBQThFLENBQUM7QUFDN0YsY0FBYyw4R0FBOEcsQ0FBQztBQUM3SCxjQUFjLDRHQUE0RyxDQUFDO0FBQzNILGNBQWMsb0dBQW9HLENBQUM7QUFDbkgsY0FBYyx3R0FBd0csQ0FBQztBQUN2SCxjQUFjLHNHQUFzRyxDQUFDO0FBQ3JILGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxxR0FBcUcsQ0FBQztBQUNwSCxjQUFjLHlFQUF5RSxDQUFDO0FBQ3hGLGNBQWMsMkZBQTJGLENBQUM7QUFDMUcsY0FBYyxtRkFBbUYsQ0FBQztBQUNsRyxjQUFjLHFHQUFxRyxDQUFDO0FBQ3BILGNBQWMsbUdBQW1HLENBQUM7QUFDbEgsY0FBYyxxRkFBcUYsQ0FBQztBQUNwRyxjQUFjLHlFQUF5RSxDQUFDO0FBQ3hGLGNBQWMsbUdBQW1HLENBQUM7QUFDbEgsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMseUZBQXlGLENBQUM7QUFDeEcsY0FBYywyRUFBMkUsQ0FBQztBQUMxRixjQUFjLHVFQUF1RSxDQUFBO0FBQ3JGLGNBQWMseUVBQXlFLENBQUM7QUFDeEYsY0FBYywyRUFBMkUsQ0FBQztBQUUxRixjQUFjLGdGQUFnRixDQUFDO0FBQy9GLGNBQWMsMEdBQTBHLENBQUM7QUFDekgsY0FBYyx3RkFBd0YsQ0FBQztBQUd2RyxjQUFjLGdHQUFnRyxDQUFDO0FBQy9HLGNBQWMsZ0dBQWdHLENBQUM7QUFDL0csY0FBYyxnR0FBZ0csQ0FBQztBQUMvRyxjQUFjLHdHQUF3RyxDQUFDO0FBS3ZILGNBQWMsK0RBQStELENBQUM7QUFDOUUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYywwREFBMEQsQ0FBQTtBQUN4RSxjQUFjLGtEQUFrRCxDQUFBO0FBR2hFLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw0RkFBNEYsQ0FBQztBQUMzRyxjQUFjLDZFQUE2RSxDQUFDO0FBRzVGLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsMENBQTBDLENBQUM7QUFHekQsY0FBYyxpRkFBaUYsQ0FBQztBQUNoRyxjQUFjLGlGQUFpRixDQUFDO0FBQ2hHLGNBQWMsbUdBQW1HLENBQUM7QUFDbEgsY0FBYyw2RUFBNkUsQ0FBQztBQUk1RixjQUFjLDRDQUE0QyxDQUFBO0FBSTFELGNBQWMsMkVBQTJFLENBQUM7QUFDMUYsY0FBYyxvRUFBb0UsQ0FBQztBQUVuRixjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsd0RBQXdELENBQUM7QUFFdkUsY0FBYyxtRUFBbUUsQ0FBQztBQUNsRixjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyxtRkFBbUYsQ0FBQztBQUNsRyxjQUFjLG1GQUFtRixDQUFDO0FBQ2xHLGNBQWMsK0ZBQStGLENBQUM7QUFDOUcsY0FBYyx1RkFBdUYsQ0FBQztBQUN0RyxjQUFjLG1GQUFtRixDQUFDO0FBQ2xHLGNBQWMscUZBQXFGLENBQUM7QUFHcEcsY0FBYyxzRUFBc0UsQ0FBQztBQUNyRixjQUFjLHNFQUFzRSxDQUFDO0FBQ3JGLGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYyxxRUFBcUUsQ0FBQztBQUNwRixjQUFjLDZFQUE2RSxDQUFDO0FBQzVGLGNBQWMsOEVBQThFLENBQUM7QUFFN0YsY0FBYyx3RUFBd0UsQ0FBQztBQUN2RixjQUFjLHlFQUF5RSxDQUFDO0FBQ3hGLGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYyxtRUFBbUUsQ0FBQztBQUNsRixjQUFjLDRFQUE0RSxDQUFDO0FBRTNGLGNBQWMsMEVBQTBFLENBQUM7QUFDekYsY0FBYyw2RUFBNkUsQ0FBQztBQUM1RixjQUFjLHdFQUF3RSxDQUFDO0FBQ3ZGLGNBQWMsMkVBQTJFLENBQUM7QUFFMUYsY0FBYyx5RUFBeUUsQ0FBQztBQUN4RixjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYywyRUFBMkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgZ2FtbWEtYXBwLWNvbnRyb2xsZXJcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9nYW1tYS1hcHAtY29udHJvbGxlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dhbW1hLWFwcC1jb250cm9sbGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9nYW1tYS1hcHAtY29udHJvbGxlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaWNvbnMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tY29udHJvbGxlci5tb2R1bGUnO1xuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1jb250ZW50LnNlcnZpY2UnO1xuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1kYXRhc2V0LWNhbGwuc2VydmljZSc7XG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2Vudmlyb25tZW50JztcblxuXG4vLyBFeHBvcnQgTW9kdWxlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ2FtbWEtYXBwLWNvbnRyb2xsZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tY29udHJvbGxlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9sb2FkaW5nL2xvYWRpbmdNb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50JztcblxuLy8gRXhwb3J0IENvbXBvbmVudHNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tZmlsdGVyL2FwcGxpY2F0aW9uLWZpbHRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9jcmVhdGUtZGF0YXNldC1qc29uL2NyZWF0ZS1kYXRhc2V0LWpzb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tZGF0YXNldC1jb21wb25lbnQvY3JlYXRlLWRhdGFzZXQtc3FsL2NyZWF0ZS1kYXRhc2V0LXNxbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9jcmVhdGUtZGF0YXNldC9jcmVhdGUtZGF0YXNldC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi12aWV3LWNvbXBvbmVudHMvYXBwbGljYXRpb24tdmlld3MvYXBwbGljYXRpb24tdmlld3MuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tdmlldy1jb21wb25lbnRzL2NyZWF0ZS1jb21wLXZpZXcvY3JlYXRlLWNvbXAtdmlldy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9jb21tb24taGVhZGVyL2NvbW1vbi1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvYWR2YW5jZS13aWRnZXQtaGVhZGVyLWZpbHRlci9hZHZhbmNlLXdpZGdldC1oZWFkZXItZmlsdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2FwcC1hZHZhbmNlLWhlYWRlci9hcHAtaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW0tc2luZ2xlLW51bWJlci1jYXJkL2dhbW0tc2luZ2xlLW51bWJlci1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLWFkdmFuY2UtY2hhcnQvZ2FtbWEtYWR2YW5jZS1jaGFydC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tYS1hZHZhbmNlLW9wZXJhdG9yLXRhYmxlL2dhbW1hLWFkdmFuY2Utb3BlcmF0b3ItdGFibGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtdGFibGUtd2l0aC1wZXJjZW50YWdlL2dhbW1hLXRhYmxlLXdpdGgtcGVyY2VudGFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tYS10b2RheS1wcmV2aW91cy9nYW1tYS10b2RheS1wcmV2aW91cy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nb29nbGUtZ2VvLW1hcC9nb29nbGUtZ2VvLW1hcC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tYS10YWJsZS1jbHVtbi1iYXItY2hhcnQvZ2FtbWEtdGFibGUtY2x1bW4tYmFyLWNoYXJ0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvYXBwLXRpdGxlL2FwcC10aXRsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2dhbWFtLXdpZGdldC9nYW1hbS13aWRnZXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9nYW1tYS1hZHZhbmNlLWZpbHRlci9nYW1tYS1hZHZhbmNlLWZpbHRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2dhbW1hLWJyZWFkLWNydW1icy9icmVhZC1jcnVtYnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL3N1cHBvcnQtY29tcG9uZW50cy90YWJsZS13aXRoLWJhci90YWJsZS13aXRoLWJhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9zdXBwb3J0LWNvbXBvbmVudHMvZ2VvLW1hcC9nZW8tbWFwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLWhlYXRtYXAvZ2FtbWEtaGVhdG1hcC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dvb2dsZS1nZW8tbWFwL2dvb2dsZS1nZW8tbWFwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLWdlby1jaGFydC9nYW1tYS1nZW8tY2hhcnQuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9wYWdlLWNvbnRyb2xsZXIvcGFnZS1jb25maWcvcGFnZS1jb25maWcuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvcGFnZS1jb250cm9sbGVyL3BhZ2UtY29uZmlnLW11bHRpLWxheW91dC9wYWdlLWNvbmZpZy1tdWx0aS1sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvcGFnZS1jb250cm9sbGVyL3BhZ2UtY29udHJvbGxlci9wYWdlLWNvbnRyb2xsZXIuY29tcG9uZW50JztcblxuLy9tZXRyaWMgY29tcG9uZW50XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLW1ldHJpYy1jb25maWcvY3JlYXRlLW1ldHJpY3MvY3JlYXRlLW1ldHJpY3MuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tbWV0cmljLWNvbmZpZy9vZmxpbmUtbWV0cmljcy9vZmxpbmUtbWV0cmljcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1tZXRyaWMtY29uZmlnL29ubGluZS1tZXRyaWNzL29ubGluZS1tZXRyaWNzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLW1ldHJpYy1jb25maWcvYWxsLW1ldHJpY3MtY29uZmlnL2FsbC1tZXRyaWNzLWNvbmZpZy5jb21wb25lbnQnO1xuXG5cblxuLy8gRXhwb3J0IFNlcnZpY2VzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWRhdGFzZXQtY2FsbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIva3BpLXNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHAuaHR0cC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dhbW1hLWFwcC1jb250cm9sbGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1jb250ZW50LnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL3Rva2VuU3RvcmFnZS5zZXJ2Y2UnXG5cbi8vIEV4cG9ydCBQaXBlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3NhZmVIdG1sUGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2NyZWF0ZS1kYXRhc2V0LXNxbC9zcWxGb3JtYXR0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tYS10YWJsZS13aXRoLXBlcmNlbnRhZ2UvY29udGVudFNhZmVIdG1sJztcblxuLy8gRXhwb3J0IE1pc2NlbGxhbmVvdXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dhbW1hLWFwcC1jb250cm9sbGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pY29ucy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9jb21tb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9lbnZpcm9ubWVudCc7XG5cbi8vIHN1cHBvcnQgY29tcG9uZW50XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL3N1cHBvcnQtY29tcG9uZW50cy9kYXNoLWNoYXJ0L2Rhc2gtY2hhcnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvc3VwcG9ydC1jb21wb25lbnRzL2Rhc2gtdGFibGUvZGFzaC10YWJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9zdXBwb3J0LWNvbXBvbmVudHMvZGFzaC10b2RheS1wcmV2aW91cy9kYXNoLXRvZGF5LXByZXZpb3VzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL3N1cHBvcnQtY29tcG9uZW50cy9oZWF0LW1hcC9oZWF0LW1hcC5jb21wb25lbnQnO1xuXG5cbi8vbW9tZW50XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL21vbWVudC1oZWxwZXInXG5cblxuLy8gbW9kdWxzIGZvciBvcHVzaWRlIHVzZVxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2V4Y2VwdGlvbkNvbmZpZ01vZHVsZS9leGNlcHRpb24tb3BlcmF0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvZXhjZXB0aW9uQ29uZmlnTW9kdWxlL2V4Y2VwdGlvbkNvbmZpZy5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvY2RyQ29uZmlnTW9kdWxlL2Nkci1jb25maWcuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9jZHJDb25maWdNb2R1bGUvY2RyQ29uZmlnLm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9LcGlDcmVhdGlvbk1vZHVsZS9jcmVhdGUta3BpLXRyZWUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9LcGlDcmVhdGlvbk1vZHVsZS9rcGlDcmVhdGlvbi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL0twaUNyZWF0aW9uTW9kdWxlL3RyZWV2aWV3L3RyZWV2aWV3LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvS3BpQ3JlYXRpb25Nb2R1bGUvdHJlZXZpZXcvY29tcG9uZW50cy9hc2lkZS9hc2lkZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL0twaUNyZWF0aW9uTW9kdWxlL3RyZWV2aWV3L2NvbXBvbmVudHMvYmFzaWMvYmFzaWMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9LcGlDcmVhdGlvbk1vZHVsZS90cmVldmlldy9jb21wb25lbnRzL2NvbGxhcHNhYmxlL2NvbGxhcHNhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvS3BpQ3JlYXRpb25Nb2R1bGUvdHJlZXZpZXcvY29tcG9uZW50cy9kaXZpZGVyL2RpdmlkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9LcGlDcmVhdGlvbk1vZHVsZS90cmVldmlldy9jb21wb25lbnRzL2dyb3VwL2dyb3VwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvS3BpQ3JlYXRpb25Nb2R1bGUvdHJlZXZpZXcvY29tcG9uZW50cy9zcGFjZXIvc3BhY2VyLmNvbXBvbmVudCc7XG5cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2twaVdpdGhTaW5nbGVMYXlvdXQva3BpV2l0aFNpbmdsZUxheW91dC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2twaVdpdGhTaW5nbGVMYXlvdXQva3BpLXdpdGgtZGF0YXNldC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2twaVdpdGhTaW5nbGVMYXlvdXQvZHluYW1pbi1tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2twaVdpdGhTaW5nbGVMYXlvdXQva3BpLXNpbmdsZS1sYXlvdXQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUva3BpV2l0aFNpbmdsZUxheW91dC9hcHBsaWNhdGlvbi1jaGF0LWFwaS1jYWxsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2twaVdpdGhTaW5nbGVMYXlvdXQvc2luZ2xlLWxheW91dC1kYXRhc2V0LWNhbGwuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9rcGlXaXRoTXVsdGlMYXlvdXQvZHluYW1pbi1tb2RhbC1tdWx0aS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2twaVdpdGhNdWx0aUxheW91dC9rcGktd2l0aC1tdWx0aWxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2twaVdpdGhNdWx0aUxheW91dC9rcGlXaXRoTXVsdGlheW91dC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2twaVdpdGhNdWx0aUxheW91dC9rcGktbXVsdGktbGF5b3V0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2twaVdpdGhNdWx0aUxheW91dC9tdWx0aS1sYXlvdXQtZGF0YXNldC1jYWxsLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvZGVmYXVsTGFuZGluZ0NvbXBvbmVudC9sYW5kaW5nLWNvbXBvbmVudC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2RlZmF1bExhbmRpbmdDb21wb25lbnQvZGVmYXVsdExhbmRpbmdDb21wb25lbnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9kZWZhdWxMYW5kaW5nQ29tcG9uZW50L2xhbmRpbmctY29tcG9uZW50LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2RlZmF1bExhbmRpbmdDb21wb25lbnQvbGFuZGluZy1kYXRhc2V0LWNhbGwuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9ib29rbWFya2VkLXRlbXBsYXRlL2Jvb2ttYXJrZWQtdGVtcGxhdGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9ib29rbWFya2VkLXRlbXBsYXRlL2Jvb2ttYXJrZWRUZW1wbGF0ZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2Jvb2ttYXJrZWQtdGVtcGxhdGUvYm9va21hcmtlZC1sYXlvdXQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvYm9va21hcmtlZC10ZW1wbGF0ZS9ib29rbWFya2VkLWRhdGFzZXQtY2FsbC5zZXJ2aWNlJztcblxuXG5cblxuXG5cblxuXG5cbiJdfQ==
|