ontimize-web-ngx 15.6.0-next.0 → 15.6.0-next.2
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/components/app-header/o-app-header.component.mjs +3 -3
- package/esm2020/lib/components/app-sidenav/menu-item/o-app-sidenav-menu-item.component.mjs +3 -3
- package/esm2020/lib/components/input/o-form-service-component.class.mjs +2 -2
- package/esm2020/lib/components/list/list-item/o-list-item.component.mjs +8 -3
- package/esm2020/lib/components/list/o-list.component.mjs +16 -3
- package/esm2020/lib/components/table/extensions/o-table.dao.mjs +9 -11
- package/esm2020/lib/components/table/o-table-base.class.mjs +1 -1
- package/esm2020/lib/components/user-info/o-user-info.component.mjs +5 -4
- package/esm2020/lib/config/app-config.mjs +1 -1
- package/esm2020/lib/config/o-providers.mjs +3 -5
- package/esm2020/lib/services/base-data-service.class.mjs +2 -1
- package/esm2020/lib/services/factories.mjs +7 -7
- package/esm2020/lib/services/index.mjs +2 -1
- package/esm2020/lib/services/jsonapi/jsonapi-preferences.service.mjs +16 -14
- package/esm2020/lib/services/jsonapi/jsonapi.service.mjs +1 -2
- package/esm2020/lib/services/ontimize/index.mjs +1 -2
- package/esm2020/lib/services/ontimize/ontimize-ee.service.mjs +1 -5
- package/esm2020/lib/services/ontimize/ontimize-export-3xx.service.mjs +2 -2
- package/esm2020/lib/services/ontimize/ontimize-preferences.service.mjs +4 -6
- package/esm2020/lib/services/query-arguments/jsonapi-query-arguments.adapter.mjs +2 -3
- package/esm2020/lib/services/translate/o-translate.service.mjs +7 -4
- package/esm2020/lib/util/preference-mapping-util.mjs +22 -7
- package/esm2020/lib/util/util.mjs +16 -1
- package/fesm2015/ontimize-web-ngx.mjs +345 -316
- package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
- package/fesm2020/ontimize-web-ngx.mjs +342 -315
- package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
- package/lib/components/list/o-list.component.d.ts +3 -1
- package/lib/components/table/extensions/o-table.dao.d.ts +3 -2
- package/lib/components/table/o-table-base.class.d.ts +1 -0
- package/lib/components/user-info/o-user-info.component.d.ts +2 -1
- package/lib/config/app-config.d.ts +1 -1
- package/lib/services/base-data-service.class.d.ts +1 -0
- package/lib/services/factories.d.ts +3 -3
- package/lib/services/index.d.ts +1 -0
- package/lib/services/jsonapi/jsonapi-preferences.service.d.ts +1 -1
- package/lib/services/jsonapi/jsonapi.service.d.ts +0 -1
- package/lib/services/ontimize/index.d.ts +0 -1
- package/lib/services/ontimize/ontimize-ee.service.d.ts +0 -1
- package/lib/services/translate/o-translate.service.d.ts +1 -0
- package/lib/util/preference-mapping-util.d.ts +22 -3
- package/lib/util/util.d.ts +2 -0
- package/package.json +1 -1
- package/esm2020/lib/services/ontimize/o-preference-query-argument.adapter.mjs +0 -17
- package/lib/services/ontimize/o-preference-query-argument.adapter.d.ts +0 -7
|
@@ -3,6 +3,7 @@ export class BaseDataService extends BaseService {
|
|
|
3
3
|
constructor(injector) {
|
|
4
4
|
super(injector);
|
|
5
5
|
this.injector = injector;
|
|
6
|
+
this.path = '';
|
|
6
7
|
}
|
|
7
8
|
clientErrorFallback(errorCode) {
|
|
8
9
|
if (errorCode === 401) {
|
|
@@ -16,4 +17,4 @@ export class BaseDataService extends BaseService {
|
|
|
16
17
|
}
|
|
17
18
|
}
|
|
18
19
|
}
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kYXRhLXNlcnZpY2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvc2VydmljZXMvYmFzZS1kYXRhLXNlcnZpY2UuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBS25ELE1BQU0sT0FBZ0IsZUFBbUIsU0FBUSxXQUE0QjtJQUUzRSxZQUFzQixRQUFrQjtRQUN0QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFESSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBR2pDLFNBQUksR0FBVyxFQUFFLENBQUM7SUFEekIsQ0FBQztJQVNNLG1CQUFtQixDQUFDLFNBQWlCO1FBQzFDLElBQUksU0FBUyxLQUFLLEdBQUcsRUFBRTtZQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVELG9CQUFvQixDQUFDLE9BQTBCO1FBQzdDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gXCIuL2Jhc2Utc2VydmljZS5jbGFzc1wiO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgU2VydmljZVJlc3BvbnNlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvc2VydmljZS1yZXNwb25zZS5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IFBhZ2luYXRpb25Db250ZXh0IH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvcGFnaW5hdGlvbi1jb250ZXh0LmludGVyZmFjZVwiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZURhdGFTZXJ2aWNlPFQ+IGV4dGVuZHMgQmFzZVNlcnZpY2U8U2VydmljZVJlc3BvbnNlPiB7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIHN1cGVyKGluamVjdG9yKTtcbiAgfVxuICBwdWJsaWMgcGF0aDogc3RyaW5nID0gJyc7XG4gIGFic3RyYWN0IHF1ZXJ5KC4uLmFyZ3M6ICBbYW55LCAuLi5hbnlbXV0pOiBPYnNlcnZhYmxlPFQ+O1xuICBhYnN0cmFjdCBxdWVyeUJ5SWQoLi4uYXJnczogIFthbnksIC4uLmFueVtdXSk6IE9ic2VydmFibGU8VD47XG4gIGFic3RyYWN0IGFkdmFuY2VkUXVlcnkoLi4uYXJnczogIFthbnksIC4uLmFueVtdXSk6IE9ic2VydmFibGU8VD47XG4gIGFic3RyYWN0IGluc2VydCguLi5hcmdzOiAgW2FueSwgLi4uYW55W11dKTogT2JzZXJ2YWJsZTxUPjtcbiAgYWJzdHJhY3QgdXBkYXRlKC4uLmFyZ3M6ICBbYW55LCAuLi5hbnlbXV0pOiBPYnNlcnZhYmxlPFQ+O1xuICBhYnN0cmFjdCBkZWxldGUoLi4uYXJnczogW2FueSwgLi4uYW55W11dKTogT2JzZXJ2YWJsZTxUPjtcblxuICBwdWJsaWMgY2xpZW50RXJyb3JGYWxsYmFjayhlcnJvckNvZGU6IG51bWJlcikge1xuICAgIGlmIChlcnJvckNvZGUgPT09IDQwMSkge1xuICAgICAgdGhpcy5hdXRoU2VydmljZS5sb2dvdXQoKTtcbiAgICB9XG4gIH1cblxuICBzZXRQYWdpbmF0aW9uQ29udGV4dChjb250ZXh0OiBQYWdpbmF0aW9uQ29udGV4dCk6IHZvaWQge1xuICAgIHN1cGVyLnNldFBhZ2luYXRpb25Db250ZXh0KGNvbnRleHQpO1xuICAgIGlmICh0aGlzLmFkYXB0ZXIpIHtcbiAgICAgIHRoaXMuYWRhcHRlci5jb250ZXh0ID0gY29udGV4dDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -6,6 +6,7 @@ import { AuthService } from './auth.service';
|
|
|
6
6
|
import { JSONAPIPreferencesService } from './jsonapi/jsonapi-preferences.service';
|
|
7
7
|
import { JSONAPIServiceResponseAdapter } from './jsonapi/jsonapi-service-response.adapter';
|
|
8
8
|
import { JSONAPIService } from './jsonapi/jsonapi.service';
|
|
9
|
+
import { LocalStorageService } from './local-storage.service';
|
|
9
10
|
import { NameConventionLower } from './name-convention/name-convention-lower.service';
|
|
10
11
|
import { NameConventionUpper } from './name-convention/name-convention-upper.service';
|
|
11
12
|
import { NameConvention } from './name-convention/name-convention.service';
|
|
@@ -24,7 +25,6 @@ import { OntimizePermissionsService } from './permissions/ontimize-permissions.s
|
|
|
24
25
|
import { JSONAPIQueryArgumentsAdapter } from './query-arguments/jsonapi-query-arguments.adapter';
|
|
25
26
|
import { OntimizeQueryArgumentsAdapter } from './query-arguments/ontimize-query-arguments.adapter';
|
|
26
27
|
import { AbstractComponentStateService, DefaultComponentStateService } from './state/o-component-state.service';
|
|
27
|
-
import { LocalStorageService } from './local-storage.service';
|
|
28
28
|
export const O_DATA_SERVICE = new InjectionToken('Ontimize data service');
|
|
29
29
|
export const O_RESPONSE_ADAPTER = new InjectionToken('Service response adapter');
|
|
30
30
|
export const O_TRANSLATE_SERVICE = new InjectionToken('Translate service');
|
|
@@ -108,10 +108,10 @@ export function exportDataFactory(injector) {
|
|
|
108
108
|
export function serviceRequestAdapterFactory(injector) {
|
|
109
109
|
const config = injector.get(AppConfig).getConfiguration();
|
|
110
110
|
if (!Util.isDefined(config.serviceType) ||
|
|
111
|
-
(
|
|
111
|
+
Util.isOntimizeEEService(injector)) {
|
|
112
112
|
return new OntimizeQueryArgumentsAdapter();
|
|
113
113
|
}
|
|
114
|
-
else if (
|
|
114
|
+
else if (Util.isJsonApiService(injector)) {
|
|
115
115
|
return new JSONAPIQueryArgumentsAdapter();
|
|
116
116
|
}
|
|
117
117
|
return new OntimizeQueryArgumentsAdapter();
|
|
@@ -124,10 +124,10 @@ export function serviceResponseAdapterFactory(injector) {
|
|
|
124
124
|
}
|
|
125
125
|
const config = injector.get(AppConfig).getConfiguration();
|
|
126
126
|
if (!Util.isDefined(config.serviceType) ||
|
|
127
|
-
(
|
|
127
|
+
(Util.isOntimizeEEService(injector))) {
|
|
128
128
|
return new OntimizeServiceResponseAdapter();
|
|
129
129
|
}
|
|
130
|
-
else if (
|
|
130
|
+
else if (Util.isJsonApiService(injector)) {
|
|
131
131
|
return new JSONAPIServiceResponseAdapter();
|
|
132
132
|
}
|
|
133
133
|
return new JSONAPIServiceResponseAdapter();
|
|
@@ -149,7 +149,7 @@ export function permissionsServiceFactory(injector) {
|
|
|
149
149
|
}
|
|
150
150
|
export function preferencesServiceFactory(injector) {
|
|
151
151
|
const config = injector.get(AppConfig).getConfiguration();
|
|
152
|
-
if (!Util.isDefined(config.serviceType) || (
|
|
152
|
+
if (!Util.isDefined(config.serviceType) || Util.isOntimizeEEService(injector)) {
|
|
153
153
|
return new OntimizePreferencesService(injector);
|
|
154
154
|
}
|
|
155
155
|
else if (ServiceType.JSONAPI === config.serviceType) {
|
|
@@ -194,4 +194,4 @@ export function nameConventionServiceFactory(injector) {
|
|
|
194
194
|
}
|
|
195
195
|
return new NameConvention();
|
|
196
196
|
}
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3NlcnZpY2VzL2ZhY3Rvcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFVakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN0RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUV0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdkQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakcsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0s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SW5qZWN0aW9uVG9rZW4sIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFwcENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy9hcHAtY29uZmlnJztcbmltcG9ydCB7IElDaGFydE9uRGVtYW5kU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvY2hhcnQtb24tZGVtYW5kLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRXhwb3J0RGF0YVByb3ZpZGVyIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9leHBvcnQtZGF0YS1wcm92aWRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUV4cG9ydFNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2V4cG9ydC1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRmlsZVNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ZpbGUtc2VydmljZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSVBlcm1pc3Npb25zU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcGVybWlzc2lvbnMtc2VydmljZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSVByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcHJlZmVyZWNlcy1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJUmVwb3J0U2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LW9uLWRlbWFuZC1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJU2VydmljZVJlc3BvbnNlQWRhcHRlciB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2VydmljZS1yZXNwb25zZS1hZGFwdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPTWF0RXJyb3JPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXMvby1tYXQtZXJyb3IudHlwZSc7XG5pbXBvcnQgeyBTZXJ2aWNlVHlwZSB9IGZyb20gJy4uL3R5cGVzL3NlcnZpY2UtdHlwZS50eXBlJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlU2VydmljZVJlc3BvbnNlIH0gZnJvbSAnLi9iYXNlLXNlcnZpY2UtcmVzcG9uc2UuY2xhc3MnO1xuaW1wb3J0IHsgSlNPTkFQSVByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4vanNvbmFwaS9qc29uYXBpLXByZWZlcmVuY2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgSlNPTkFQSVNlcnZpY2VSZXNwb25zZUFkYXB0ZXIgfSBmcm9tICcuL2pzb25hcGkvanNvbmFwaS1zZXJ2aWNlLXJlc3BvbnNlLmFkYXB0ZXInO1xuaW1wb3J0IHsgSlNPTkFQSVNlcnZpY2UgfSBmcm9tICcuL2pzb25hcGkvanNvbmFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IE5hbWVDb252ZW50aW9uTG93ZXIgfSBmcm9tICcuL25hbWUtY29udmVudGlvbi9uYW1lLWNvbnZlbnRpb24tbG93ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBOYW1lQ29udmVudGlvblVwcGVyIH0gZnJvbSAnLi9uYW1lLWNvbnZlbnRpb24vbmFtZS1jb252ZW50aW9uLXVwcGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSU5hbWVDb252ZW50aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9uYW1lLWNvbnZlbnRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IE5hbWVDb252ZW50aW9uIH0gZnJvbSAnLi9uYW1lLWNvbnZlbnRpb24vbmFtZS1jb252ZW50aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgT250aW1pemVBdXRoU2VydmljZSB9IGZyb20gJy4vby1hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgT0Vycm9yRGlhbG9nTWFuYWdlciB9IGZyb20gJy4vby1lcnJvci1kaWFsb2ctbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplRXhwb3J0RGF0YVByb3ZpZGVyU2VydmljZTNYIH0gZnJvbSAnLi9vbnRpbWl6ZS1leHBvcnQtZGF0YS1wcm92aWRlci0zeC5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplRXhwb3J0RGF0YVByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4vb250aW1pemUtZXhwb3J0LWRhdGEtcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZUVFU2VydmljZSB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtZWUuc2VydmljZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZUV4cG9ydFNlcnZpY2UzWCB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtZXhwb3J0LTN4eC5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplRXhwb3J0U2VydmljZSB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtZXhwb3J0LnNlcnZpY2UnO1xuaW1wb3J0IHsgT250aW1pemVGaWxlU2VydmljZSB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi9vbnRpbWl6ZS9vbnRpbWl6ZS1wcmVmZXJlbmNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplU2VydmljZVJlc3BvbnNlQWRhcHRlciB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtc2VydmljZS1yZXNwb25zZS5hZGFwdGVyJztcbmltcG9ydCB7IE9udGltaXplU2VydmljZSB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUuc2VydmljZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZUVFUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi9wZXJtaXNzaW9ucy9vbnRpbWl6ZS1lZS1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi9wZXJtaXNzaW9ucy9vbnRpbWl6ZS1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IElCYXNlUXVlcnlBcmd1bWVudCB9IGZyb20gJy4vcXVlcnktYXJndW1lbnRzL2Jhc2UtcXVlcnktYXJndW1lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEpTT05BUElRdWVyeUFyZ3VtZW50c0FkYXB0ZXIgfSBmcm9tICcuL3F1ZXJ5LWFyZ3VtZW50cy9qc29uYXBpLXF1ZXJ5LWFyZ3VtZW50cy5hZGFwdGVyJztcbmltcG9ydCB7IE9udGltaXplUXVlcnlBcmd1bWVudHNBZGFwdGVyIH0gZnJvbSAnLi9xdWVyeS1hcmd1bWVudHMvb250aW1pemUtcXVlcnktYXJndW1lbnRzLmFkYXB0ZXInO1xuaW1wb3J0IHsgQWJzdHJhY3RDb21wb25lbnRTdGF0ZVNlcnZpY2UsIERlZmF1bHRDb21wb25lbnRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL3N0YXRlL28tY29tcG9uZW50LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IElMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9sb2NhbC1zZXJ2aWNlLmludGVyZmFjZSc7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIElOSkVDVElPTiBUT0tFTlMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byByZXBsYWNlIHRoZSBkYXRhIHNlcnZpY2UgYE9udGltaXplU2VydmljZWAgb3IgYE9udGltaXplRUVTZXJ2aWNlYC5cbiAqL1xuZXhwb3J0IGNvbnN0IE9fREFUQV9TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuKCdPbnRpbWl6ZSBkYXRhIHNlcnZpY2UnKTtcblxuZXhwb3J0IGNvbnN0IE9fUkVTUE9OU0VfQURBUFRFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJU2VydmljZVJlc3BvbnNlQWRhcHRlcjxCYXNlU2VydmljZVJlc3BvbnNlPj4oJ1NlcnZpY2UgcmVzcG9uc2UgYWRhcHRlcicpO1xuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlcGxhY2UgdGhlIHRyYW5zbGF0ZSBzZXJ2aWNlIGBPVHJhbnNsYXRlU2VydmljZWAuXG4gKi9cbmV4cG9ydCBjb25zdCBPX1RSQU5TTEFURV9TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuKCdUcmFuc2xhdGUgc2VydmljZScpO1xuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlcGxhY2UgdGhlIGZpbGUgc2VydmljZSBgT250aW1pemVGaWxlU2VydmljZWAuXG4gKi9cbmV4cG9ydCBjb25zdCBPX0ZJTEVfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJRmlsZVNlcnZpY2U+KCdGaWxlIHVwbG9hZGVyIHNlcnZpY2UnKTtcblxuLyoqXG4gKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byByZXBsYWNlIHRoZSBsb2NhbHN0b3JhZ2Ugc2VydmljZSBgTG9jYWxTdG9yYWdlU2VydmljZWAuXG4gKi9cbmV4cG9ydCBjb25zdCBPX0xPQ0FMU1RPUkFHRV9TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuPElMb2NhbFN0b3JhZ2VTZXJ2aWNlPignTG9jYWwgc3RvcmFnZSBzZXJ2aWNlJyk7XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVwbGFjZSB0aGUgZXhwb3J0YXRpb24gc2VydmljZSBgT250aW1pemVFeHBvcnRTZXJ2aWNlYC5cbiAqL1xuZXhwb3J0IGNvbnN0IE9fRVhQT1JUX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SUV4cG9ydFNlcnZpY2U+KCdFeHBvcnQgc2VydmljZScpO1xuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlcGxhY2UgdGhlIHBlcm1pc3Npb24gc2VydmljZSBgT250aW1pemVQZXJtaXNzaW9uc1NlcnZpY2Ugb3IgT250aW1pemVFRVBlcm1pc3Npb25zU2VydmljZWAuXG4gKi9cbmV4cG9ydCBjb25zdCBPX1BFUk1JU1NJT05fU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJUGVybWlzc2lvbnNTZXJ2aWNlPignUGVybWlzc2lvbiBzZXJ2aWNlJyk7XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVwbGFjZSB0aGUgYXV0aGVudGljYXRpb24gc2VydmljZSBgQXV0aFNlcnZpY2VgLlxuICovXG5leHBvcnQgY29uc3QgT19BVVRIX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48QXV0aFNlcnZpY2U+KCdBdXRoZW50aWNhdGlvbiBzZXJ2aWNlJyk7XG5cbi8qKlxuKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byByZXBsYWNlIHRoZSBjb21wb25lbnQgc3RhdGUgc2VydmljZSBgRGVmYXVsdENvbXBvbmVudFN0YXRlU2VydmljZWAuXG4qL1xuZXhwb3J0IGNvbnN0IE9fQ09NUE9ORU5UX1NUQVRFX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48RGVmYXVsdENvbXBvbmVudFN0YXRlU2VydmljZT4oJ0NvbXBvbmVudCBzdGF0ZSBzZXJ2aWNlJyk7XG5cblxuLyoqXG4qIEluamVjdGlvbiB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlcGxhY2UgdGhlIGNvbXBvbmVudCBzdGF0ZSBzZXJ2aWNlIGBEZWZhdWx0Q29tcG9uZW50U3RhdGVTZXJ2aWNlYC5cbiovXG5leHBvcnQgY29uc3QgT19DSEFSVF9PTl9ERU1BTkRfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJQ2hhcnRPbkRlbWFuZFNlcnZpY2U+KCdDaGFydCBvbiBkZW1hbmQgc2VydmljZScpO1xuXG5leHBvcnQgY29uc3QgT19SRVBPUlRfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJUmVwb3J0U2VydmljZT4oJ1JlcG9ydCBzZXJ2aWNlJyk7XG5cbmV4cG9ydCBjb25zdCBPX0VSUk9SX0RJQUxPR19NQU5BR0VSID0gbmV3IEluamVjdGlvblRva2VuPE9FcnJvckRpYWxvZ01hbmFnZXI+KCdFcnJvciBkaWFsb2cgbWFuYWdlcicpO1xuXG5leHBvcnQgY29uc3QgT19FWFBPUlRfREFUQV9TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuPElFeHBvcnREYXRhUHJvdmlkZXI+KCdFeHBvcnQgZGF0YSBwcm92aWRlcicpO1xuXG5leHBvcnQgY29uc3QgT19NQVRfRVJST1JfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPTWF0RXJyb3JPcHRpb25zPignby1tYXQtZXJyb3Itb3B0aW9ucycpO1xuXG5leHBvcnQgY29uc3QgT19GT1JNX01FU1NBR0VfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbignT250aW1pemUgby1mb3JtIG1lc3NhZ2Ugc2VydmljZScpO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRkFDVE9SSUVTIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgZGF0YSBzZXJ2aWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGF0YVNlcnZpY2VGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IGFueSB7XG4gIGNvbnN0IHNlcnZpY2VDbGFzcyA9IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlKE9fREFUQV9TRVJWSUNFLCBpbmplY3Rvcik7XG4gIGNvbnN0IHNlcnZpY2UgPSBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlQ2xhc3MsIGluamVjdG9yKTtcbiAgaWYgKFV0aWwuaXNEZWZpbmVkKHNlcnZpY2UpKSB7XG4gICAgcmV0dXJuIHNlcnZpY2U7XG4gIH1cbiAgY29uc3QgY29uZmlnID0gaW5qZWN0b3IuZ2V0KEFwcENvbmZpZykuZ2V0Q29uZmlndXJhdGlvbigpO1xuICBjb25zdCBzZXJ2aWNlVHlwZSA9IGNvbmZpZy5zZXJ2aWNlVHlwZTtcbiAgcmV0dXJuIGNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlVHlwZSwgaW5qZWN0b3IpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VydmljZUluc3RhbmNlKHNlcnZpY2VUeXBlOiBTZXJ2aWNlVHlwZSwgaW5qZWN0b3I6IEluamVjdG9yKTogYW55IHtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHNlcnZpY2VUeXBlKSB8fCBTZXJ2aWNlVHlwZS5PbnRpbWl6ZUVFID09PSBzZXJ2aWNlVHlwZSkge1xuICAgICAgcmV0dXJuIG5ldyBPbnRpbWl6ZUVFU2VydmljZShpbmplY3Rvcik7XG4gICAgfVxuICAgIGlmIChTZXJ2aWNlVHlwZS5PbnRpbWl6ZSA9PT0gc2VydmljZVR5cGUpIHtcbiAgICAgIHJldHVybiBuZXcgT250aW1pemVTZXJ2aWNlKGluamVjdG9yKTtcbiAgICB9XG4gICAgaWYgKFNlcnZpY2VUeXBlLkpTT05BUEkgPT09IHNlcnZpY2VUeXBlKSB7XG4gICAgICByZXR1cm4gbmV3IEpTT05BUElTZXJ2aWNlKGluamVjdG9yKTtcbiAgICB9XG4gICAgcmV0dXJuIFV0aWwuY3JlYXRlU2VydmljZUluc3RhbmNlKHNlcnZpY2VUeXBlLCBpbmplY3Rvcik7XG5cbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBmaWxlIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWxlU2VydmljZUZhY3RvcnkoaW5qZWN0b3I6IEluamVjdG9yKTogSUZpbGVTZXJ2aWNlIHtcbiAgY29uc3Qgc2VydmljZUNsYXNzID0gX2dldEluamVjdGlvblRva2VuVmFsdWUoT19GSUxFX1NFUlZJQ0UsIGluamVjdG9yKTtcbiAgY29uc3Qgc2VydmljZSA9IFV0aWwuY3JlYXRlU2VydmljZUluc3RhbmNlKHNlcnZpY2VDbGFzcywgaW5qZWN0b3IpO1xuICByZXR1cm4gVXRpbC5pc0RlZmluZWQoc2VydmljZSkgPyBzZXJ2aWNlIDogbmV3IE9udGltaXplRmlsZVNlcnZpY2UoaW5qZWN0b3IpO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGxvY2FsIHN0b3JhZ2Ugc2VydmljZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvY2FsU3RvcmFnZVNlcnZpY2VGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IElMb2NhbFN0b3JhZ2VTZXJ2aWNlIHtcbiAgY29uc3Qgc2VydmljZUNsYXNzID0gX2dldEluamVjdGlvblRva2VuVmFsdWUoT19MT0NBTFNUT1JBR0VfU0VSVklDRSwgaW5qZWN0b3IpO1xuICBjb25zdCBzZXJ2aWNlID0gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZUNsYXNzLCBpbmplY3Rvcik7XG4gIHJldHVybiBVdGlsLmlzRGVmaW5lZChzZXJ2aWNlKSA/IHNlcnZpY2UgOiBuZXcgTG9jYWxTdG9yYWdlU2VydmljZShpbmplY3Rvcik7XG59XG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGV4cG9ydGF0aW9uIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHBvcnRTZXJ2aWNlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBJRXhwb3J0U2VydmljZSB7XG4gIGNvbnN0IHNlcnZpY2VDbGFzcyA9IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlKE9fRVhQT1JUX1NFUlZJQ0UsIGluamVjdG9yKTtcbiAgY29uc3Qgc2VydmljZSA9IFV0aWwuY3JlYXRlU2VydmljZUluc3RhbmNlKHNlcnZpY2VDbGFzcywgaW5qZWN0b3IpO1xuICBpZiAoVXRpbC5pc0RlZmluZWQoc2VydmljZSkpIHtcbiAgICByZXR1cm4gc2VydmljZTtcbiAgfVxuICBjb25zdCBjb25maWcgPSBpbmplY3Rvci5nZXQoQXBwQ29uZmlnKS5nZXRDb25maWd1cmF0aW9uKCk7XG5cbiAgaWYgKHR5cGVvZiAoY29uZmlnLmV4cG9ydFNlcnZpY2VUeXBlKSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBpZiAoY29uZmlnLmV4cG9ydENvbmZpZ3VyYXRpb24pIHtcbiAgICAgIHJldHVybiBuZXcgT250aW1pemVFeHBvcnRTZXJ2aWNlM1goaW5qZWN0b3IpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbmV3IE9udGltaXplRXhwb3J0U2VydmljZShpbmplY3Rvcik7XG4gICAgfVxuICB9XG4gIHJldHVybiBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShjb25maWcuZXhwb3J0U2VydmljZVR5cGUsIGluamVjdG9yKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cG9ydERhdGFGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IElFeHBvcnREYXRhUHJvdmlkZXIge1xuICBjb25zdCBwcm92aWRlciA9IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlKE9fRVhQT1JUX0RBVEFfU0VSVklDRSwgaW5qZWN0b3IpO1xuICBjb25zdCBzZXJ2aWNlID0gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2UocHJvdmlkZXIsIGluamVjdG9yKTtcbiAgaWYgKFV0aWwuaXNEZWZpbmVkKHNlcnZpY2UpKSB7XG4gICAgcmV0dXJuIHNlcnZpY2U7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgY29uZmlnID0gaW5qZWN0b3IuZ2V0KEFwcENvbmZpZykuZ2V0Q29uZmlndXJhdGlvbigpO1xuICAgIGlmICh0eXBlb2YgKGNvbmZpZy5leHBvcnRDb25maWd1cmF0aW9uKSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiBuZXcgT250aW1pemVFeHBvcnREYXRhUHJvdmlkZXJTZXJ2aWNlKGluamVjdG9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBPbnRpbWl6ZUV4cG9ydERhdGFQcm92aWRlclNlcnZpY2UzWChpbmplY3Rvcik7XG4gICAgfVxuICB9XG5cbn1cbmV4cG9ydCBmdW5jdGlvbiBzZXJ2aWNlUmVxdWVzdEFkYXB0ZXJGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IElCYXNlUXVlcnlBcmd1bWVudCB7XG4gIGNvbnN0IGNvbmZpZyA9IGluamVjdG9yLmdldChBcHBDb25maWcpLmdldENvbmZpZ3VyYXRpb24oKTtcbiAgaWYgKCFVdGlsLmlzRGVmaW5lZChjb25maWcuc2VydmljZVR5cGUpIHx8XG4gICAgKFNlcnZpY2VUeXBlLk9udGltaXplRUUgPT09IGNvbmZpZy5zZXJ2aWNlVHlwZSB8fCBTZXJ2aWNlVHlwZS5PbnRpbWl6ZSA9PT0gY29uZmlnLnNlcnZpY2VUeXBlKSkge1xuICAgIHJldHVybiBuZXcgT250aW1pemVRdWVyeUFyZ3VtZW50c0FkYXB0ZXIoKTtcbiAgfSBlbHNlIGlmIChTZXJ2aWNlVHlwZS5KU09OQVBJID09PSBjb25maWcuc2VydmljZVR5cGUpIHtcbiAgICByZXR1cm4gbmV3IEpTT05BUElRdWVyeUFyZ3VtZW50c0FkYXB0ZXIoKTtcbiAgfVxuICByZXR1cm4gbmV3IE9udGltaXplUXVlcnlBcmd1bWVudHNBZGFwdGVyKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJ2aWNlUmVzcG9uc2VBZGFwdGVyRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBJU2VydmljZVJlc3BvbnNlQWRhcHRlcjxCYXNlU2VydmljZVJlc3BvbnNlPiB7XG4gIGNvbnN0IHNlcnZpY2VDbGFzcyA9IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlKE9fUkVTUE9OU0VfQURBUFRFUiwgaW5qZWN0b3IpO1xuICBjb25zdCBzZXJ2aWNlID0gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZUNsYXNzLCBpbmplY3Rvcik7XG5cbiAgaWYgKFV0aWwuaXNEZWZpbmVkKHNlcnZpY2UpKSB7XG4gICAgcmV0dXJuIHNlcnZpY2U7XG4gIH1cbiAgY29uc3QgY29uZmlnID0gaW5qZWN0b3IuZ2V0KEFwcENvbmZpZykuZ2V0Q29uZmlndXJhdGlvbigpO1xuICBpZiAoIVV0aWwuaXNEZWZpbmVkKGNvbmZpZy5zZXJ2aWNlVHlwZSkgfHxcbiAgICAoU2VydmljZVR5cGUuT250aW1pemVFRSA9PT0gY29uZmlnLnNlcnZpY2VUeXBlIHx8IFNlcnZpY2VUeXBlLk9udGltaXplID09PSBjb25maWcuc2VydmljZVR5cGUpKSB7XG4gICAgcmV0dXJuIG5ldyBPbnRpbWl6ZVNlcnZpY2VSZXNwb25zZUFkYXB0ZXIoKTtcbiAgfSBlbHNlIGlmIChTZXJ2aWNlVHlwZS5KU09OQVBJID09PSBjb25maWcuc2VydmljZVR5cGUpIHtcbiAgICByZXR1cm4gbmV3IEpTT05BUElTZXJ2aWNlUmVzcG9uc2VBZGFwdGVyKCk7XG4gIH1cbiAgcmV0dXJuIG5ldyBKU09OQVBJU2VydmljZVJlc3BvbnNlQWRhcHRlcigpO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHBlcm1pc3Npb24gc2VydmljZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBlcm1pc3Npb25zU2VydmljZUZhY3RvcnkoaW5qZWN0b3I6IEluamVjdG9yKTogSVBlcm1pc3Npb25zU2VydmljZSB7XG4gIGNvbnN0IHNlcnZpY2VDbGFzcyA9IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlKE9fUEVSTUlTU0lPTl9TRVJWSUNFLCBpbmplY3Rvcik7XG4gIGNvbnN0IHNlcnZpY2UgPSBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlQ2xhc3MsIGluamVjdG9yKTtcbiAgaWYgKFV0aWwuaXNEZWZpbmVkKHNlcnZpY2UpKSB7XG4gICAgcmV0dXJuIHNlcnZpY2U7XG4gIH1cbiAgY29uc3QgY29uZmlnID0gaW5qZWN0b3IuZ2V0KEFwcENvbmZpZykuZ2V0Q29uZmlndXJhdGlvbigpO1xuXG4gIGlmICghVXRpbC5pc0RlZmluZWQoY29uZmlnLnBlcm1pc3Npb25zU2VydmljZVR5cGUpIHx8ICdPbnRpbWl6ZUVFUGVybWlzc2lvbnMnID09PSBjb25maWcucGVybWlzc2lvbnNTZXJ2aWNlVHlwZSkge1xuICAgIHJldHVybiBuZXcgT250aW1pemVFRVBlcm1pc3Npb25zU2VydmljZShpbmplY3Rvcik7XG4gIH0gZWxzZSBpZiAoJ09udGltaXplUGVybWlzc2lvbnMnID09PSBjb25maWcucGVybWlzc2lvbnNTZXJ2aWNlVHlwZSkge1xuICAgIHJldHVybiBuZXcgT250aW1pemVQZXJtaXNzaW9uc1NlcnZpY2UoaW5qZWN0b3IpO1xuICB9XG4gIHJldHVybiBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShjb25maWcucGVybWlzc2lvbnNTZXJ2aWNlVHlwZSwgaW5qZWN0b3IpO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHByZWZlcmVuY2VzIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVmZXJlbmNlc1NlcnZpY2VGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IElQcmVmZXJlbmNlc1NlcnZpY2Uge1xuXG4gIGNvbnN0IGNvbmZpZyA9IGluamVjdG9yLmdldChBcHBDb25maWcpLmdldENvbmZpZ3VyYXRpb24oKTtcblxuICBpZiAoIVV0aWwuaXNEZWZpbmVkKGNvbmZpZy5zZXJ2aWNlVHlwZSkgfHwgKFNlcnZpY2VUeXBlLk9udGltaXplRUUgPT09IGNvbmZpZy5zZXJ2aWNlVHlwZSB8fCBTZXJ2aWNlVHlwZS5PbnRpbWl6ZSA9PT0gY29uZmlnLnNlcnZpY2VUeXBlKSkge1xuICAgIHJldHVybiBuZXcgT250aW1pemVQcmVmZXJlbmNlc1NlcnZpY2UoaW5qZWN0b3IpO1xuICB9IGVsc2UgaWYgKFNlcnZpY2VUeXBlLkpTT05BUEkgPT09IGNvbmZpZy5zZXJ2aWNlVHlwZSkge1xuICAgIHJldHVybiBuZXcgSlNPTkFQSVByZWZlcmVuY2VzU2VydmljZShpbmplY3Rvcik7XG4gIH1cbiAgcmV0dXJuIG5ldyBKU09OQVBJUHJlZmVyZW5jZXNTZXJ2aWNlKGluamVjdG9yKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBzZXJ2aWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXV0aFNlcnZpY2VGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IEF1dGhTZXJ2aWNlIHtcbiAgY29uc3Qgc2VydmljZUNsYXNzID0gX2dldEluamVjdGlvblRva2VuVmFsdWUoT19BVVRIX1NFUlZJQ0UsIGluamVjdG9yKTtcbiAgY29uc3Qgc2VydmljZSA9IFV0aWwuY3JlYXRlU2VydmljZUluc3RhbmNlKHNlcnZpY2VDbGFzcywgaW5qZWN0b3IpO1xuICByZXR1cm4gVXRpbC5pc0RlZmluZWQoc2VydmljZSkgPyBzZXJ2aWNlIDogbmV3IE9udGltaXplQXV0aFNlcnZpY2UoaW5qZWN0b3IpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcG9uZW50U3RhdGVGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IEFic3RyYWN0Q29tcG9uZW50U3RhdGVTZXJ2aWNlPGFueSwgYW55PiB7XG4gIGNvbnN0IHNlcnZpY2UgPSBfZ2V0SW5qZWN0aW9uVG9rZW5WYWx1ZShPX0NPTVBPTkVOVF9TVEFURV9TRVJWSUNFLCBpbmplY3Rvcik7XG4gIHJldHVybiBVdGlsLmlzRGVmaW5lZChzZXJ2aWNlKSA/IHNlcnZpY2UgOiBuZXcgRGVmYXVsdENvbXBvbmVudFN0YXRlU2VydmljZShpbmplY3Rvcik7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFBST1ZJREVSUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVzaW5nIHRoZSBzYW1lIHByb3ZpZGVyIG11bHRpcGxlIHRpbWVzIGFjY3Jvc3MgdGhlIHByb2plY3QgcHJvZHVjZXMgbmFtZXNwYWNlcyBjb25mbGljdHMgd2hlblxuICogYnVpbGRpbmcgd2l0aCBuZy1wYWNrYWdyLCBzbyB3ZSByZXVzZWQgdGhlIHByb3ZpZGVycyBkZWZpbmVkIGhlcmUuXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbmV4cG9ydCBjb25zdCBPbnRpbWl6ZVNlcnZpY2VQcm92aWRlciA9IHsgcHJvdmlkZTogT250aW1pemVTZXJ2aWNlLCB1c2VGYWN0b3J5OiBkYXRhU2VydmljZUZhY3RvcnksIGRlcHM6IFtJbmplY3Rvcl0gfTtcblxuZXhwb3J0IGNvbnN0IE9udGltaXplRXhwb3J0U2VydmljZVByb3ZpZGVyID0geyBwcm92aWRlOiBPbnRpbWl6ZUV4cG9ydFNlcnZpY2UsIHVzZUZhY3Rvcnk6IGV4cG9ydFNlcnZpY2VGYWN0b3J5LCBkZXBzOiBbSW5qZWN0b3JdIH07XG5cbmV4cG9ydCBjb25zdCBPbnRpbWl6ZUF1dGhTZXJ2aWNlUHJvdmlkZXIgPSB7IHByb3ZpZGU6IEF1dGhTZXJ2aWNlLCB1c2VGYWN0b3J5OiBhdXRoU2VydmljZUZhY3RvcnksIGRlcHM6IFtJbmplY3Rvcl0gfTtcblxuZXhwb3J0IGNvbnN0IENvbXBvbmVudFN0YXRlU2VydmljZVByb3ZpZGVyID0geyBwcm92aWRlOiBBYnN0cmFjdENvbXBvbmVudFN0YXRlU2VydmljZSwgdXNlRmFjdG9yeTogY29tcG9uZW50U3RhdGVGYWN0b3J5LCBkZXBzOiBbSW5qZWN0b3JdIH07XG5cbmV4cG9ydCBjb25zdCBFeHBvcnREYXRhU2VydmljZVByb3ZpZGVyID0geyBwcm92aWRlOiBPbnRpbWl6ZUV4cG9ydERhdGFQcm92aWRlclNlcnZpY2UsIHVzZUZhY3Rvcnk6IGV4cG9ydERhdGFGYWN0b3J5LCBkZXBzOiBbSW5qZWN0b3JdIH07XG5cbmV4cG9ydCBjb25zdCBTZXJ2aWNlUmVxdWVzdEFkYXB0ZXIgPSB7IHByb3ZpZGU6IE9udGltaXplUXVlcnlBcmd1bWVudHNBZGFwdGVyLCB1c2VGYWN0b3J5OiBzZXJ2aWNlUmVxdWVzdEFkYXB0ZXJGYWN0b3J5LCBkZXBzOiBbSW5qZWN0b3JdIH07XG5cbmV4cG9ydCBjb25zdCBTZXJ2aWNlUmVzcG9uc2VBZGFwdGVyID0geyBwcm92aWRlOiBPbnRpbWl6ZVNlcnZpY2VSZXNwb25zZUFkYXB0ZXIsIHVzZUZhY3Rvcnk6IHNlcnZpY2VSZXNwb25zZUFkYXB0ZXJGYWN0b3J5LCBkZXBzOiBbSW5qZWN0b3JdIH07XG5cbmV4cG9ydCBjb25zdCBOYW1lQ29udmVudGlvblByb3ZpZGVyID0geyBwcm92aWRlOiBOYW1lQ29udmVudGlvbiwgdXNlRmFjdG9yeTogbmFtZUNvbnZlbnRpb25TZXJ2aWNlRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuZXhwb3J0IGNvbnN0IE9udGltaXplTG9jYWxTdG9yYWdlU2VydmljZVByb3ZpZGVyID0geyBwcm92aWRlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCB1c2VGYWN0b3J5OiBsb2NhbFN0b3JhZ2VTZXJ2aWNlRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVXRpbGl0eSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFJldHVybnMgdGhlIHZhbHVlIGZvciB0aGUgcHJvdmlkZWQgaW5qZWN0aW9uIHRva2VuXG4gKiBAcGFyYW0gdG9rZW4gdGhlIGluamVjdGlvbiB0b2tlblxuICogQHBhcmFtIGluamVjdG9yIHRoZSBpbmplY3RvclxuICovXG5leHBvcnQgZnVuY3Rpb24gX2dldEluamVjdGlvblRva2VuVmFsdWU8VD4odG9rZW46IEluamVjdGlvblRva2VuPFQ+LCBpbmplY3RvcjogSW5qZWN0b3IpOiBUIHtcbiAgbGV0IHNlcnZpY2U6IFQ7XG4gIHRyeSB7XG4gICAgc2VydmljZSA9IGluamVjdG9yLmdldCh0b2tlbik7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvLyBObyB2YWx1ZSBwcm92aWRlZCBmb3IgdGhlIGluamVjdGlvbiB0b2tlblxuICB9XG4gIHJldHVybiBzZXJ2aWNlO1xufVxuXG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgcHJlZmVyZW5jZXMgc2VydmljZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5hbWVDb252ZW50aW9uU2VydmljZUZhY3RvcnkoaW5qZWN0b3I6IEluamVjdG9yKTogSU5hbWVDb252ZW50aW9uIHtcblxuICBjb25zdCBjb25maWcgPSBpbmplY3Rvci5nZXQoQXBwQ29uZmlnKS5nZXRDb25maWd1cmF0aW9uKCk7XG5cbiAgaWYgKGNvbmZpZz8ubmFtZUNvbnZlbnRpb24gPT09ICdsb3dlcicpIHtcbiAgICByZXR1cm4gbmV3IE5hbWVDb252ZW50aW9uTG93ZXIoKTtcbiAgfSBlbHNlIGlmIChjb25maWc/Lm5hbWVDb252ZW50aW9uID09PSAndXBwZXInKSB7XG4gICAgcmV0dXJuIG5ldyBOYW1lQ29udmVudGlvblVwcGVyKCk7XG4gIH1cbiAgcmV0dXJuIG5ldyBOYW1lQ29udmVudGlvbigpO1xufVxuXG5cblxuIl19
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3NlcnZpY2VzL2ZhY3Rvcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFZakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN0RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdkQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakcsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0s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LENBQUMsTUFBTSxzQkFBc0IsR0FBRyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLDRCQUE0QixFQUFFLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7QUFDOUgsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUcsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLDBCQUEwQixFQUFFLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7QUFVOUksTUFBTSxVQUFVLHVCQUF1QixDQUFJLEtBQXdCLEVBQUUsUUFBa0I7SUFDckYsSUFBSSxPQUFVLENBQUM7SUFDZixJQUFJO1FBQ0YsT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDL0I7SUFBQyxPQUFPLENBQUMsRUFBRTtLQUVYO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQU1ELE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxRQUFrQjtJQUU3RCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFFMUQsSUFBSSxNQUFNLEVBQUUsY0FBYyxLQUFLLE9BQU8sRUFBRTtRQUN0QyxPQUFPLElBQUksbUJBQW1CLEVBQUUsQ0FBQztLQUNsQztTQUFNLElBQUksTUFBTSxFQUFFLGNBQWMsS0FBSyxPQUFPLEVBQUU7UUFDN0MsT0FBTyxJQUFJLG1CQUFtQixFQUFFLENBQUM7S0FDbEM7SUFDRCxPQUFPLElBQUksY0FBYyxFQUFFLENBQUM7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBcHBDb25maWcgfSBmcm9tICcuLi9jb25maWcvYXBwLWNvbmZpZyc7XG5pbXBvcnQgeyBJQ2hhcnRPbkRlbWFuZFNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NoYXJ0LW9uLWRlbWFuZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUV4cG9ydERhdGFQcm92aWRlciB9IGZyb20gJy4uL2ludGVyZmFjZXMvZXhwb3J0LWRhdGEtcHJvdmlkZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IElFeHBvcnRTZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9leHBvcnQtc2VydmljZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUZpbGVTZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9maWxlLXNlcnZpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IElMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9sb2NhbC1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJTmFtZUNvbnZlbnRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL25hbWUtY29udmVudGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSVBlcm1pc3Npb25zU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcGVybWlzc2lvbnMtc2VydmljZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSVByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcHJlZmVyZWNlcy1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJUmVwb3J0U2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LW9uLWRlbWFuZC1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJU2VydmljZVJlc3BvbnNlQWRhcHRlciB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2VydmljZS1yZXNwb25zZS1hZGFwdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPTWF0RXJyb3JPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXMvby1tYXQtZXJyb3IudHlwZSc7XG5pbXBvcnQgeyBTZXJ2aWNlVHlwZSB9IGZyb20gJy4uL3R5cGVzL3NlcnZpY2UtdHlwZS50eXBlJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlU2VydmljZVJlc3BvbnNlIH0gZnJvbSAnLi9iYXNlLXNlcnZpY2UtcmVzcG9uc2UuY2xhc3MnO1xuaW1wb3J0IHsgSlNPTkFQSVByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4vanNvbmFwaS9qc29uYXBpLXByZWZlcmVuY2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgSlNPTkFQSVNlcnZpY2VSZXNwb25zZUFkYXB0ZXIgfSBmcm9tICcuL2pzb25hcGkvanNvbmFwaS1zZXJ2aWNlLXJlc3BvbnNlLmFkYXB0ZXInO1xuaW1wb3J0IHsgSlNPTkFQSVNlcnZpY2UgfSBmcm9tICcuL2pzb25hcGkvanNvbmFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBOYW1lQ29udmVudGlvbkxvd2VyIH0gZnJvbSAnLi9uYW1lLWNvbnZlbnRpb24vbmFtZS1jb252ZW50aW9uLWxvd2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmFtZUNvbnZlbnRpb25VcHBlciB9IGZyb20gJy4vbmFtZS1jb252ZW50aW9uL25hbWUtY29udmVudGlvbi11cHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IE5hbWVDb252ZW50aW9uIH0gZnJvbSAnLi9uYW1lLWNvbnZlbnRpb24vbmFtZS1jb252ZW50aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgT250aW1pemVBdXRoU2VydmljZSB9IGZyb20gJy4vby1hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgT0Vycm9yRGlhbG9nTWFuYWdlciB9IGZyb20gJy4vby1lcnJvci1kaWFsb2ctbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplRXhwb3J0RGF0YVByb3ZpZGVyU2VydmljZTNYIH0gZnJvbSAnLi9vbnRpbWl6ZS1leHBvcnQtZGF0YS1wcm92aWRlci0zeC5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplRXhwb3J0RGF0YVByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4vb250aW1pemUtZXhwb3J0LWRhdGEtcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZUVFU2VydmljZSB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtZWUuc2VydmljZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZUV4cG9ydFNlcnZpY2UzWCB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtZXhwb3J0LTN4eC5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplRXhwb3J0U2VydmljZSB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtZXhwb3J0LnNlcnZpY2UnO1xuaW1wb3J0IHsgT250aW1pemVGaWxlU2VydmljZSB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi9vbnRpbWl6ZS9vbnRpbWl6ZS1wcmVmZXJlbmNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplU2VydmljZVJlc3BvbnNlQWRhcHRlciB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtc2VydmljZS1yZXNwb25zZS5hZGFwdGVyJztcbmltcG9ydCB7IE9udGltaXplU2VydmljZSB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUuc2VydmljZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZUVFUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi9wZXJtaXNzaW9ucy9vbnRpbWl6ZS1lZS1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi9wZXJtaXNzaW9ucy9vbnRpbWl6ZS1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IElCYXNlUXVlcnlBcmd1bWVudCB9IGZyb20gJy4vcXVlcnktYXJndW1lbnRzL2Jhc2UtcXVlcnktYXJndW1lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEpTT05BUElRdWVyeUFyZ3VtZW50c0FkYXB0ZXIgfSBmcm9tICcuL3F1ZXJ5LWFyZ3VtZW50cy9qc29uYXBpLXF1ZXJ5LWFyZ3VtZW50cy5hZGFwdGVyJztcbmltcG9ydCB7IE9udGltaXplUXVlcnlBcmd1bWVudHNBZGFwdGVyIH0gZnJvbSAnLi9xdWVyeS1hcmd1bWVudHMvb250aW1pemUtcXVlcnktYXJndW1lbnRzLmFkYXB0ZXInO1xuaW1wb3J0IHsgQWJzdHJhY3RDb21wb25lbnRTdGF0ZVNlcnZpY2UsIERlZmF1bHRDb21wb25lbnRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL3N0YXRlL28tY29tcG9uZW50LXN0YXRlLnNlcnZpY2UnO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBJTkpFQ1RJT04gVE9LRU5TIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVwbGFjZSB0aGUgZGF0YSBzZXJ2aWNlIGBPbnRpbWl6ZVNlcnZpY2VgIG9yIGBPbnRpbWl6ZUVFU2VydmljZWAuXG4gKi9cbmV4cG9ydCBjb25zdCBPX0RBVEFfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbignT250aW1pemUgZGF0YSBzZXJ2aWNlJyk7XG5cbmV4cG9ydCBjb25zdCBPX1JFU1BPTlNFX0FEQVBURVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48SVNlcnZpY2VSZXNwb25zZUFkYXB0ZXI8QmFzZVNlcnZpY2VSZXNwb25zZT4+KCdTZXJ2aWNlIHJlc3BvbnNlIGFkYXB0ZXInKTtcblxuLyoqXG4gKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byByZXBsYWNlIHRoZSB0cmFuc2xhdGUgc2VydmljZSBgT1RyYW5zbGF0ZVNlcnZpY2VgLlxuICovXG5leHBvcnQgY29uc3QgT19UUkFOU0xBVEVfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbignVHJhbnNsYXRlIHNlcnZpY2UnKTtcblxuLyoqXG4gKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byByZXBsYWNlIHRoZSBmaWxlIHNlcnZpY2UgYE9udGltaXplRmlsZVNlcnZpY2VgLlxuICovXG5leHBvcnQgY29uc3QgT19GSUxFX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SUZpbGVTZXJ2aWNlPignRmlsZSB1cGxvYWRlciBzZXJ2aWNlJyk7XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVwbGFjZSB0aGUgbG9jYWxzdG9yYWdlIHNlcnZpY2UgYExvY2FsU3RvcmFnZVNlcnZpY2VgLlxuICovXG5leHBvcnQgY29uc3QgT19MT0NBTFNUT1JBR0VfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJTG9jYWxTdG9yYWdlU2VydmljZT4oJ0xvY2FsIHN0b3JhZ2Ugc2VydmljZScpO1xuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlcGxhY2UgdGhlIGV4cG9ydGF0aW9uIHNlcnZpY2UgYE9udGltaXplRXhwb3J0U2VydmljZWAuXG4gKi9cbmV4cG9ydCBjb25zdCBPX0VYUE9SVF9TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuPElFeHBvcnRTZXJ2aWNlPignRXhwb3J0IHNlcnZpY2UnKTtcblxuLyoqXG4gKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byByZXBsYWNlIHRoZSBwZXJtaXNzaW9uIHNlcnZpY2UgYE9udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlIG9yIE9udGltaXplRUVQZXJtaXNzaW9uc1NlcnZpY2VgLlxuICovXG5leHBvcnQgY29uc3QgT19QRVJNSVNTSU9OX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SVBlcm1pc3Npb25zU2VydmljZT4oJ1Blcm1pc3Npb24gc2VydmljZScpO1xuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlcGxhY2UgdGhlIGF1dGhlbnRpY2F0aW9uIHNlcnZpY2UgYEF1dGhTZXJ2aWNlYC5cbiAqL1xuZXhwb3J0IGNvbnN0IE9fQVVUSF9TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuPEF1dGhTZXJ2aWNlPignQXV0aGVudGljYXRpb24gc2VydmljZScpO1xuXG4vKipcbiogSW5qZWN0aW9uIHRva2VuIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVwbGFjZSB0aGUgY29tcG9uZW50IHN0YXRlIHNlcnZpY2UgYERlZmF1bHRDb21wb25lbnRTdGF0ZVNlcnZpY2VgLlxuKi9cbmV4cG9ydCBjb25zdCBPX0NPTVBPTkVOVF9TVEFURV9TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuPERlZmF1bHRDb21wb25lbnRTdGF0ZVNlcnZpY2U+KCdDb21wb25lbnQgc3RhdGUgc2VydmljZScpO1xuXG5cbi8qKlxuKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byByZXBsYWNlIHRoZSBjb21wb25lbnQgc3RhdGUgc2VydmljZSBgRGVmYXVsdENvbXBvbmVudFN0YXRlU2VydmljZWAuXG4qL1xuZXhwb3J0IGNvbnN0IE9fQ0hBUlRfT05fREVNQU5EX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SUNoYXJ0T25EZW1hbmRTZXJ2aWNlPignQ2hhcnQgb24gZGVtYW5kIHNlcnZpY2UnKTtcblxuZXhwb3J0IGNvbnN0IE9fUkVQT1JUX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SVJlcG9ydFNlcnZpY2U+KCdSZXBvcnQgc2VydmljZScpO1xuXG5leHBvcnQgY29uc3QgT19FUlJPUl9ESUFMT0dfTUFOQUdFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPRXJyb3JEaWFsb2dNYW5hZ2VyPignRXJyb3IgZGlhbG9nIG1hbmFnZXInKTtcblxuZXhwb3J0IGNvbnN0IE9fRVhQT1JUX0RBVEFfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJRXhwb3J0RGF0YVByb3ZpZGVyPignRXhwb3J0IGRhdGEgcHJvdmlkZXInKTtcblxuZXhwb3J0IGNvbnN0IE9fTUFUX0VSUk9SX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48T01hdEVycm9yT3B0aW9ucz4oJ28tbWF0LWVycm9yLW9wdGlvbnMnKTtcblxuZXhwb3J0IGNvbnN0IE9fRk9STV9NRVNTQUdFX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ09udGltaXplIG8tZm9ybSBtZXNzYWdlIHNlcnZpY2UnKTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZBQ1RPUklFUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGRhdGEgc2VydmljZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGFTZXJ2aWNlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBhbnkge1xuICBjb25zdCBzZXJ2aWNlQ2xhc3MgPSBfZ2V0SW5qZWN0aW9uVG9rZW5WYWx1ZShPX0RBVEFfU0VSVklDRSwgaW5qZWN0b3IpO1xuICBjb25zdCBzZXJ2aWNlID0gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZUNsYXNzLCBpbmplY3Rvcik7XG4gIGlmIChVdGlsLmlzRGVmaW5lZChzZXJ2aWNlKSkge1xuICAgIHJldHVybiBzZXJ2aWNlO1xuICB9XG4gIGNvbnN0IGNvbmZpZyA9IGluamVjdG9yLmdldChBcHBDb25maWcpLmdldENvbmZpZ3VyYXRpb24oKTtcbiAgY29uc3Qgc2VydmljZVR5cGUgPSBjb25maWcuc2VydmljZVR5cGU7XG4gIHJldHVybiBjcmVhdGVTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZVR5cGUsIGluamVjdG9yKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlVHlwZTogU2VydmljZVR5cGUsIGluamVjdG9yOiBJbmplY3Rvcik6IGFueSB7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZChzZXJ2aWNlVHlwZSkgfHwgU2VydmljZVR5cGUuT250aW1pemVFRSA9PT0gc2VydmljZVR5cGUpIHtcbiAgICAgIHJldHVybiBuZXcgT250aW1pemVFRVNlcnZpY2UoaW5qZWN0b3IpO1xuICAgIH1cbiAgICBpZiAoU2VydmljZVR5cGUuT250aW1pemUgPT09IHNlcnZpY2VUeXBlKSB7XG4gICAgICByZXR1cm4gbmV3IE9udGltaXplU2VydmljZShpbmplY3Rvcik7XG4gICAgfVxuICAgIGlmIChTZXJ2aWNlVHlwZS5KU09OQVBJID09PSBzZXJ2aWNlVHlwZSkge1xuICAgICAgcmV0dXJuIG5ldyBKU09OQVBJU2VydmljZShpbmplY3Rvcik7XG4gICAgfVxuICAgIHJldHVybiBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlVHlwZSwgaW5qZWN0b3IpO1xuXG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgZmlsZSBzZXJ2aWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsZVNlcnZpY2VGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IElGaWxlU2VydmljZSB7XG4gIGNvbnN0IHNlcnZpY2VDbGFzcyA9IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlKE9fRklMRV9TRVJWSUNFLCBpbmplY3Rvcik7XG4gIGNvbnN0IHNlcnZpY2UgPSBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlQ2xhc3MsIGluamVjdG9yKTtcbiAgcmV0dXJuIFV0aWwuaXNEZWZpbmVkKHNlcnZpY2UpID8gc2VydmljZSA6IG5ldyBPbnRpbWl6ZUZpbGVTZXJ2aWNlKGluamVjdG9yKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBsb2NhbCBzdG9yYWdlIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2NhbFN0b3JhZ2VTZXJ2aWNlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBJTG9jYWxTdG9yYWdlU2VydmljZSB7XG4gIGNvbnN0IHNlcnZpY2VDbGFzcyA9IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlKE9fTE9DQUxTVE9SQUdFX1NFUlZJQ0UsIGluamVjdG9yKTtcbiAgY29uc3Qgc2VydmljZSA9IFV0aWwuY3JlYXRlU2VydmljZUluc3RhbmNlKHNlcnZpY2VDbGFzcywgaW5qZWN0b3IpO1xuICByZXR1cm4gVXRpbC5pc0RlZmluZWQoc2VydmljZSkgPyBzZXJ2aWNlIDogbmV3IExvY2FsU3RvcmFnZVNlcnZpY2UoaW5qZWN0b3IpO1xufVxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBleHBvcnRhdGlvbiBzZXJ2aWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhwb3J0U2VydmljZUZhY3RvcnkoaW5qZWN0b3I6IEluamVjdG9yKTogSUV4cG9ydFNlcnZpY2Uge1xuICBjb25zdCBzZXJ2aWNlQ2xhc3MgPSBfZ2V0SW5qZWN0aW9uVG9rZW5WYWx1ZShPX0VYUE9SVF9TRVJWSUNFLCBpbmplY3Rvcik7XG4gIGNvbnN0IHNlcnZpY2UgPSBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlQ2xhc3MsIGluamVjdG9yKTtcbiAgaWYgKFV0aWwuaXNEZWZpbmVkKHNlcnZpY2UpKSB7XG4gICAgcmV0dXJuIHNlcnZpY2U7XG4gIH1cbiAgY29uc3QgY29uZmlnID0gaW5qZWN0b3IuZ2V0KEFwcENvbmZpZykuZ2V0Q29uZmlndXJhdGlvbigpO1xuXG4gIGlmICh0eXBlb2YgKGNvbmZpZy5leHBvcnRTZXJ2aWNlVHlwZSkgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgaWYgKGNvbmZpZy5leHBvcnRDb25maWd1cmF0aW9uKSB7XG4gICAgICByZXR1cm4gbmV3IE9udGltaXplRXhwb3J0U2VydmljZTNYKGluamVjdG9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBPbnRpbWl6ZUV4cG9ydFNlcnZpY2UoaW5qZWN0b3IpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2UoY29uZmlnLmV4cG9ydFNlcnZpY2VUeXBlLCBpbmplY3Rvcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHBvcnREYXRhRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBJRXhwb3J0RGF0YVByb3ZpZGVyIHtcbiAgY29uc3QgcHJvdmlkZXIgPSBfZ2V0SW5qZWN0aW9uVG9rZW5WYWx1ZShPX0VYUE9SVF9EQVRBX1NFUlZJQ0UsIGluamVjdG9yKTtcbiAgY29uc3Qgc2VydmljZSA9IFV0aWwuY3JlYXRlU2VydmljZUluc3RhbmNlKHByb3ZpZGVyLCBpbmplY3Rvcik7XG4gIGlmIChVdGlsLmlzRGVmaW5lZChzZXJ2aWNlKSkge1xuICAgIHJldHVybiBzZXJ2aWNlO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGNvbmZpZyA9IGluamVjdG9yLmdldChBcHBDb25maWcpLmdldENvbmZpZ3VyYXRpb24oKTtcbiAgICBpZiAodHlwZW9mIChjb25maWcuZXhwb3J0Q29uZmlndXJhdGlvbikgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gbmV3IE9udGltaXplRXhwb3J0RGF0YVByb3ZpZGVyU2VydmljZShpbmplY3Rvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXcgT250aW1pemVFeHBvcnREYXRhUHJvdmlkZXJTZXJ2aWNlM1goaW5qZWN0b3IpO1xuICAgIH1cbiAgfVxuXG59XG5leHBvcnQgZnVuY3Rpb24gc2VydmljZVJlcXVlc3RBZGFwdGVyRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBJQmFzZVF1ZXJ5QXJndW1lbnQge1xuICBjb25zdCBjb25maWcgPSBpbmplY3Rvci5nZXQoQXBwQ29uZmlnKS5nZXRDb25maWd1cmF0aW9uKCk7XG4gIGlmICghVXRpbC5pc0RlZmluZWQoY29uZmlnLnNlcnZpY2VUeXBlKSB8fFxuICAgIFV0aWwuaXNPbnRpbWl6ZUVFU2VydmljZShpbmplY3RvcikpIHtcbiAgICByZXR1cm4gbmV3IE9udGltaXplUXVlcnlBcmd1bWVudHNBZGFwdGVyKCk7XG4gIH0gZWxzZSBpZiAoVXRpbC5pc0pzb25BcGlTZXJ2aWNlKGluamVjdG9yKSkge1xuICAgIHJldHVybiBuZXcgSlNPTkFQSVF1ZXJ5QXJndW1lbnRzQWRhcHRlcigpO1xuICB9XG4gIHJldHVybiBuZXcgT250aW1pemVRdWVyeUFyZ3VtZW50c0FkYXB0ZXIoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNlcnZpY2VSZXNwb25zZUFkYXB0ZXJGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IElTZXJ2aWNlUmVzcG9uc2VBZGFwdGVyPEJhc2VTZXJ2aWNlUmVzcG9uc2U+IHtcbiAgY29uc3Qgc2VydmljZUNsYXNzID0gX2dldEluamVjdGlvblRva2VuVmFsdWUoT19SRVNQT05TRV9BREFQVEVSLCBpbmplY3Rvcik7XG4gIGNvbnN0IHNlcnZpY2UgPSBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlQ2xhc3MsIGluamVjdG9yKTtcblxuICBpZiAoVXRpbC5pc0RlZmluZWQoc2VydmljZSkpIHtcbiAgICByZXR1cm4gc2VydmljZTtcbiAgfVxuICBjb25zdCBjb25maWcgPSBpbmplY3Rvci5nZXQoQXBwQ29uZmlnKS5nZXRDb25maWd1cmF0aW9uKCk7XG4gIGlmICghVXRpbC5pc0RlZmluZWQoY29uZmlnLnNlcnZpY2VUeXBlKSB8fFxuICAgIChVdGlsLmlzT250aW1pemVFRVNlcnZpY2UoaW5qZWN0b3IpKSkge1xuICAgIHJldHVybiBuZXcgT250aW1pemVTZXJ2aWNlUmVzcG9uc2VBZGFwdGVyKCk7XG4gIH0gZWxzZSBpZiAoVXRpbC5pc0pzb25BcGlTZXJ2aWNlKGluamVjdG9yKSkge1xuXG4gICAgcmV0dXJuIG5ldyBKU09OQVBJU2VydmljZVJlc3BvbnNlQWRhcHRlcigpO1xuICB9XG4gIHJldHVybiBuZXcgSlNPTkFQSVNlcnZpY2VSZXNwb25zZUFkYXB0ZXIoKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBwZXJtaXNzaW9uIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwZXJtaXNzaW9uc1NlcnZpY2VGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IElQZXJtaXNzaW9uc1NlcnZpY2Uge1xuICBjb25zdCBzZXJ2aWNlQ2xhc3MgPSBfZ2V0SW5qZWN0aW9uVG9rZW5WYWx1ZShPX1BFUk1JU1NJT05fU0VSVklDRSwgaW5qZWN0b3IpO1xuICBjb25zdCBzZXJ2aWNlID0gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZUNsYXNzLCBpbmplY3Rvcik7XG4gIGlmIChVdGlsLmlzRGVmaW5lZChzZXJ2aWNlKSkge1xuICAgIHJldHVybiBzZXJ2aWNlO1xuICB9XG4gIGNvbnN0IGNvbmZpZyA9IGluamVjdG9yLmdldChBcHBDb25maWcpLmdldENvbmZpZ3VyYXRpb24oKTtcblxuICBpZiAoIVV0aWwuaXNEZWZpbmVkKGNvbmZpZy5wZXJtaXNzaW9uc1NlcnZpY2VUeXBlKSB8fCAnT250aW1pemVFRVBlcm1pc3Npb25zJyA9PT0gY29uZmlnLnBlcm1pc3Npb25zU2VydmljZVR5cGUpIHtcbiAgICByZXR1cm4gbmV3IE9udGltaXplRUVQZXJtaXNzaW9uc1NlcnZpY2UoaW5qZWN0b3IpO1xuICB9IGVsc2UgaWYgKCdPbnRpbWl6ZVBlcm1pc3Npb25zJyA9PT0gY29uZmlnLnBlcm1pc3Npb25zU2VydmljZVR5cGUpIHtcbiAgICByZXR1cm4gbmV3IE9udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlKGluamVjdG9yKTtcbiAgfVxuICByZXR1cm4gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2UoY29uZmlnLnBlcm1pc3Npb25zU2VydmljZVR5cGUsIGluamVjdG9yKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBwcmVmZXJlbmNlcyBzZXJ2aWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJlZmVyZW5jZXNTZXJ2aWNlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBJUHJlZmVyZW5jZXNTZXJ2aWNlIHtcblxuICBjb25zdCBjb25maWcgPSBpbmplY3Rvci5nZXQoQXBwQ29uZmlnKS5nZXRDb25maWd1cmF0aW9uKCk7XG5cbiAgaWYgKCFVdGlsLmlzRGVmaW5lZChjb25maWcuc2VydmljZVR5cGUpIHx8IFV0aWwuaXNPbnRpbWl6ZUVFU2VydmljZShpbmplY3RvcikpIHtcbiAgICByZXR1cm4gbmV3IE9udGltaXplUHJlZmVyZW5jZXNTZXJ2aWNlKGluamVjdG9yKTtcbiAgfSBlbHNlIGlmIChTZXJ2aWNlVHlwZS5KU09OQVBJID09PSBjb25maWcuc2VydmljZVR5cGUpIHtcbiAgICByZXR1cm4gbmV3IEpTT05BUElQcmVmZXJlbmNlc1NlcnZpY2UoaW5qZWN0b3IpO1xuICB9XG4gIHJldHVybiBuZXcgSlNPTkFQSVByZWZlcmVuY2VzU2VydmljZShpbmplY3Rvcik7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgYXV0aGVudGljYXRpb24gc2VydmljZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGF1dGhTZXJ2aWNlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBBdXRoU2VydmljZSB7XG4gIGNvbnN0IHNlcnZpY2VDbGFzcyA9IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlKE9fQVVUSF9TRVJWSUNFLCBpbmplY3Rvcik7XG4gIGNvbnN0IHNlcnZpY2UgPSBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlQ2xhc3MsIGluamVjdG9yKTtcbiAgcmV0dXJuIFV0aWwuaXNEZWZpbmVkKHNlcnZpY2UpID8gc2VydmljZSA6IG5ldyBPbnRpbWl6ZUF1dGhTZXJ2aWNlKGluamVjdG9yKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvbmVudFN0YXRlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBBYnN0cmFjdENvbXBvbmVudFN0YXRlU2VydmljZTxhbnksIGFueT4ge1xuICBjb25zdCBzZXJ2aWNlID0gX2dldEluamVjdGlvblRva2VuVmFsdWUoT19DT01QT05FTlRfU1RBVEVfU0VSVklDRSwgaW5qZWN0b3IpO1xuICByZXR1cm4gVXRpbC5pc0RlZmluZWQoc2VydmljZSkgPyBzZXJ2aWNlIDogbmV3IERlZmF1bHRDb21wb25lbnRTdGF0ZVNlcnZpY2UoaW5qZWN0b3IpO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQUk9WSURFUlMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVc2luZyB0aGUgc2FtZSBwcm92aWRlciBtdWx0aXBsZSB0aW1lcyBhY2Nyb3NzIHRoZSBwcm9qZWN0IHByb2R1Y2VzIG5hbWVzcGFjZXMgY29uZmxpY3RzIHdoZW5cbiAqIGJ1aWxkaW5nIHdpdGggbmctcGFja2Fnciwgc28gd2UgcmV1c2VkIHRoZSBwcm92aWRlcnMgZGVmaW5lZCBoZXJlLlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5leHBvcnQgY29uc3QgT250aW1pemVTZXJ2aWNlUHJvdmlkZXIgPSB7IHByb3ZpZGU6IE9udGltaXplU2VydmljZSwgdXNlRmFjdG9yeTogZGF0YVNlcnZpY2VGYWN0b3J5LCBkZXBzOiBbSW5qZWN0b3JdIH07XG5cbmV4cG9ydCBjb25zdCBPbnRpbWl6ZUV4cG9ydFNlcnZpY2VQcm92aWRlciA9IHsgcHJvdmlkZTogT250aW1pemVFeHBvcnRTZXJ2aWNlLCB1c2VGYWN0b3J5OiBleHBvcnRTZXJ2aWNlRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuXG5leHBvcnQgY29uc3QgT250aW1pemVBdXRoU2VydmljZVByb3ZpZGVyID0geyBwcm92aWRlOiBBdXRoU2VydmljZSwgdXNlRmFjdG9yeTogYXV0aFNlcnZpY2VGYWN0b3J5LCBkZXBzOiBbSW5qZWN0b3JdIH07XG5cbmV4cG9ydCBjb25zdCBDb21wb25lbnRTdGF0ZVNlcnZpY2VQcm92aWRlciA9IHsgcHJvdmlkZTogQWJzdHJhY3RDb21wb25lbnRTdGF0ZVNlcnZpY2UsIHVzZUZhY3Rvcnk6IGNvbXBvbmVudFN0YXRlRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuXG5leHBvcnQgY29uc3QgRXhwb3J0RGF0YVNlcnZpY2VQcm92aWRlciA9IHsgcHJvdmlkZTogT250aW1pemVFeHBvcnREYXRhUHJvdmlkZXJTZXJ2aWNlLCB1c2VGYWN0b3J5OiBleHBvcnREYXRhRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuXG5leHBvcnQgY29uc3QgU2VydmljZVJlcXVlc3RBZGFwdGVyID0geyBwcm92aWRlOiBPbnRpbWl6ZVF1ZXJ5QXJndW1lbnRzQWRhcHRlciwgdXNlRmFjdG9yeTogc2VydmljZVJlcXVlc3RBZGFwdGVyRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuXG5leHBvcnQgY29uc3QgU2VydmljZVJlc3BvbnNlQWRhcHRlciA9IHsgcHJvdmlkZTogT250aW1pemVTZXJ2aWNlUmVzcG9uc2VBZGFwdGVyLCB1c2VGYWN0b3J5OiBzZXJ2aWNlUmVzcG9uc2VBZGFwdGVyRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuXG5leHBvcnQgY29uc3QgTmFtZUNvbnZlbnRpb25Qcm92aWRlciA9IHsgcHJvdmlkZTogTmFtZUNvbnZlbnRpb24sIHVzZUZhY3Rvcnk6IG5hbWVDb252ZW50aW9uU2VydmljZUZhY3RvcnksIGRlcHM6IFtJbmplY3Rvcl0gfTtcbmV4cG9ydCBjb25zdCBPbnRpbWl6ZUxvY2FsU3RvcmFnZVNlcnZpY2VQcm92aWRlciA9IHsgcHJvdmlkZTogTG9jYWxTdG9yYWdlU2VydmljZSwgdXNlRmFjdG9yeTogbG9jYWxTdG9yYWdlU2VydmljZUZhY3RvcnksIGRlcHM6IFtJbmplY3Rvcl0gfTtcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFV0aWxpdHkgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSB2YWx1ZSBmb3IgdGhlIHByb3ZpZGVkIGluamVjdGlvbiB0b2tlblxuICogQHBhcmFtIHRva2VuIHRoZSBpbmplY3Rpb24gdG9rZW5cbiAqIEBwYXJhbSBpbmplY3RvciB0aGUgaW5qZWN0b3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlPFQ+KHRva2VuOiBJbmplY3Rpb25Ub2tlbjxUPiwgaW5qZWN0b3I6IEluamVjdG9yKTogVCB7XG4gIGxldCBzZXJ2aWNlOiBUO1xuICB0cnkge1xuICAgIHNlcnZpY2UgPSBpbmplY3Rvci5nZXQodG9rZW4pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gTm8gdmFsdWUgcHJvdmlkZWQgZm9yIHRoZSBpbmplY3Rpb24gdG9rZW5cbiAgfVxuICByZXR1cm4gc2VydmljZTtcbn1cblxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHByZWZlcmVuY2VzIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBuYW1lQ29udmVudGlvblNlcnZpY2VGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IElOYW1lQ29udmVudGlvbiB7XG5cbiAgY29uc3QgY29uZmlnID0gaW5qZWN0b3IuZ2V0KEFwcENvbmZpZykuZ2V0Q29uZmlndXJhdGlvbigpO1xuXG4gIGlmIChjb25maWc/Lm5hbWVDb252ZW50aW9uID09PSAnbG93ZXInKSB7XG4gICAgcmV0dXJuIG5ldyBOYW1lQ29udmVudGlvbkxvd2VyKCk7XG4gIH0gZWxzZSBpZiAoY29uZmlnPy5uYW1lQ29udmVudGlvbiA9PT0gJ3VwcGVyJykge1xuICAgIHJldHVybiBuZXcgTmFtZUNvbnZlbnRpb25VcHBlcigpO1xuICB9XG4gIHJldHVybiBuZXcgTmFtZUNvbnZlbnRpb24oKTtcbn1cblxuXG5cbiJdfQ==
|
|
@@ -35,4 +35,5 @@ export * from './appearance.service';
|
|
|
35
35
|
export * from './query-arguments/index';
|
|
36
36
|
export * from './name-convention/index';
|
|
37
37
|
export * from './pagination-context.service';
|
|
38
|
-
|
|
38
|
+
export * from './base-data-service.class';
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FwcC1jb25maWcucHJvdmlkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9hcHAtbWVudS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC1ndWFyZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1zZXJ2aWNlLXJlc3BvbnNlLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1zZXJ2aWNlLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vY3VycmVuY3kuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpYWxvZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZmFjdG9yaWVzJztcbmV4cG9ydCAqIGZyb20gJy4vaWNvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9naW4tc3RvcmFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9tZW50LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9udW1iZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL28tYXV0aC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vby1lcnJvci1kaWFsb2ctbWFuYWdlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vby1icmVhZGNydW1iLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWZvcm0tbGF5b3V0LW1hbmFnZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL28tbW9kdWxlcy1pbmZvLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vLXVzZXItaW5mby5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vb250aW1pemUtaWNvbi1yZWdpc3RyeS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vb250aW1pemUvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9qc29uYXBpL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vcGFyc2VyL28tc2VydmljZS1yZXNwb25zZS5wYXJzZXInO1xuZXhwb3J0ICogZnJvbSAnLi9wZXJtaXNzaW9ucy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3JlbW90ZS1jb25maWcuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlLWNhbi1hY3RpdmF0ZS1jaGlsZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc25hY2tiYXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0YXRlL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNsYXRlL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vb250aW1pemUtZXhwb3J0LWRhdGEtcHJvdmlkZXItM3guc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL29udGltaXplLWV4cG9ydC1kYXRhLXByb3ZpZGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcHBlYXJhbmNlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyeS1hcmd1bWVudHMvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9uYW1lLWNvbnZlbnRpb24vaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdpbmF0aW9uLWNvbnRleHQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtZGF0YS1zZXJ2aWNlLmNsYXNzJztcbiJdfQ==
|
|
@@ -1,36 +1,38 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { JSONAPIService } from './jsonapi.service';
|
|
3
|
+
import { OPreferenceMappingUtils } from '../../util/preference-mapping-util';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export class JSONAPIPreferencesService extends JSONAPIService {
|
|
5
6
|
configureService(config) {
|
|
6
7
|
super.configureService(config);
|
|
7
|
-
this.path = config
|
|
8
|
+
this.path = config['preferences']?.path ? config['preferences']?.path : '/Preference';
|
|
9
|
+
}
|
|
10
|
+
parseObjectToPreference(preferencesparams) {
|
|
11
|
+
preferencesparams['preferenceparameters'] = btoa(JSON.stringify(preferencesparams['preferenceparameters']));
|
|
12
|
+
preferencesparams['preferenceentity'] = preferencesparams['preferenceentity'] + '-' + preferencesparams['preferenceservice'];
|
|
13
|
+
preferencesparams['preferencetype'] = preferencesparams['preferencetype'] === 'REPORT' ? 0 : 1;
|
|
14
|
+
delete preferencesparams['preferenceservice'];
|
|
15
|
+
return preferencesparams;
|
|
8
16
|
}
|
|
9
17
|
saveAsPreferences(preferencesparams) {
|
|
10
18
|
preferencesparams = this.parseObjectToPreference(preferencesparams);
|
|
19
|
+
preferencesparams = OPreferenceMappingUtils.jsonApiPreferencesDataMapping(preferencesparams);
|
|
11
20
|
return super.insert(preferencesparams, 'Preference');
|
|
12
21
|
}
|
|
13
22
|
savePreferences(id, preferencesparams) {
|
|
14
23
|
preferencesparams = this.parseObjectToPreference(preferencesparams);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
parseObjectToPreference(preferencesparams) {
|
|
18
|
-
preferencesparams['preferencepreferences'] = btoa(JSON.stringify(preferencesparams['preferenceparameters']));
|
|
19
|
-
preferencesparams['preferenceentity'] = preferencesparams['preferenceentity'] + '-' + preferencesparams['preferenceservice'];
|
|
20
|
-
preferencesparams['preferencetype'] = preferencesparams['preferencetype'] === 'REPORT' ? 0 : 1;
|
|
21
|
-
delete preferencesparams['preferenceparameters'];
|
|
22
|
-
delete preferencesparams['preferenceservice'];
|
|
23
|
-
return preferencesparams;
|
|
24
|
+
preferencesparams = OPreferenceMappingUtils.jsonApiPreferencesDataMapping(preferencesparams);
|
|
25
|
+
return super.update({ PREFERENCEID: id }, preferencesparams, 'Preference');
|
|
24
26
|
}
|
|
25
27
|
getPreferences(entity, service, type) {
|
|
26
28
|
let queryParams = { fields: {}, filter: {} };
|
|
27
|
-
let fields = { preference: '
|
|
28
|
-
queryParams.fields['Preference'] =
|
|
29
|
+
let fields = { preference: 'PREFERENCEID,PREFERENCENAME,PREFERENCEDESCRIPTION,PREFERENCEPREFERENCES,PREFERENCEENTITY,PREFERENCETYPE' };
|
|
30
|
+
queryParams.fields['Preference'] = fields.preference;
|
|
29
31
|
queryParams.filter = { preferenceentity: entity + '-' + service, preferencetype: (type === 'REPORT' ? 0 : 1) };
|
|
30
32
|
return super.query(queryParams);
|
|
31
33
|
}
|
|
32
34
|
deletePreferences(id) {
|
|
33
|
-
const url = this.urlBase
|
|
35
|
+
const url = `${this.urlBase}${this.path}/${id}`;
|
|
34
36
|
return this.doRequest({
|
|
35
37
|
method: 'DELETE',
|
|
36
38
|
url: url
|
|
@@ -42,4 +44,4 @@ JSONAPIPreferencesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.
|
|
|
42
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: JSONAPIPreferencesService, decorators: [{
|
|
43
45
|
type: Injectable
|
|
44
46
|
}] });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmFwaS1wcmVmZXJlbmNlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3NlcnZpY2VzL2pzb25hcGkvanNvbmFwaS1wcmVmZXJlbmNlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQUc3RSxNQUFNLE9BQU8seUJBQTBCLFNBQVEsY0FBYztJQUVwRCxnQkFBZ0IsQ0FBQyxNQUFXO1FBQ2pDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQTtJQUN2RixDQUFDO0lBRVMsdUJBQXVCLENBQUMsaUJBQXlCO1FBQ3pELGlCQUFpQixDQUFDLHNCQUFzQixDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUcsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzdILGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9GLE9BQU8saUJBQWlCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUM5QyxPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxpQkFBeUI7UUFDaEQsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDcEUsaUJBQWlCLEdBQUcsdUJBQXVCLENBQUMsNkJBQTZCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM3RixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVNLGVBQWUsQ0FBQyxFQUFVLEVBQUUsaUJBQXlCO1FBQzFELGlCQUFpQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BFLGlCQUFpQixHQUFHLHVCQUF1QixDQUFDLDZCQUE2QixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDN0YsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxFQUFFLGlCQUFpQixFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFTSxjQUFjLENBQUMsTUFBYyxFQUFFLE9BQWUsRUFBRSxJQUFZO1FBQ2pFLElBQUksV0FBVyxHQUEwQixFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBRXBFLElBQUksTUFBTSxHQUFHLEVBQUUsVUFBVSxFQUFFLHlHQUF5RyxFQUFFLENBQUM7UUFDdkksV0FBVyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3JELFdBQVcsQ0FBQyxNQUFNLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEdBQUcsR0FBRyxHQUFHLE9BQU8sRUFBRSxjQUFjLEVBQUUsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDL0csT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFHTSxpQkFBaUIsQ0FBQyxFQUFXO1FBQ2xDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ2hELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNwQixNQUFNLEVBQUUsUUFBUTtZQUNoQixHQUFHLEVBQUUsR0FBRztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7O3NIQTNDVSx5QkFBeUI7MEhBQXpCLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBKU09OQVBJUXVlcnlQYXJhbWV0ZXIgfSBmcm9tICcuLi8uLi90eXBlcy9qc29uLXF1ZXJ5LXBhcmFtZXRlci50eXBlJztcbmltcG9ydCB7IEpTT05BUElTZXJ2aWNlIH0gZnJvbSAnLi9qc29uYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgT1ByZWZlcmVuY2VNYXBwaW5nVXRpbHMgfSBmcm9tICcuLi8uLi91dGlsL3ByZWZlcmVuY2UtbWFwcGluZy11dGlsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEpTT05BUElQcmVmZXJlbmNlc1NlcnZpY2UgZXh0ZW5kcyBKU09OQVBJU2VydmljZSB7XG5cbiAgcHVibGljIGNvbmZpZ3VyZVNlcnZpY2UoY29uZmlnOiBhbnkpOiB2b2lkIHtcbiAgICBzdXBlci5jb25maWd1cmVTZXJ2aWNlKGNvbmZpZyk7XG4gICAgdGhpcy5wYXRoID0gY29uZmlnWydwcmVmZXJlbmNlcyddPy5wYXRoID8gY29uZmlnWydwcmVmZXJlbmNlcyddPy5wYXRoIDogJy9QcmVmZXJlbmNlJ1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlT2JqZWN0VG9QcmVmZXJlbmNlKHByZWZlcmVuY2VzcGFyYW1zOiBvYmplY3QpIHtcbiAgICBwcmVmZXJlbmNlc3BhcmFtc1sncHJlZmVyZW5jZXBhcmFtZXRlcnMnXSA9IGJ0b2EoSlNPTi5zdHJpbmdpZnkocHJlZmVyZW5jZXNwYXJhbXNbJ3ByZWZlcmVuY2VwYXJhbWV0ZXJzJ10pKTtcbiAgICBwcmVmZXJlbmNlc3BhcmFtc1sncHJlZmVyZW5jZWVudGl0eSddID0gcHJlZmVyZW5jZXNwYXJhbXNbJ3ByZWZlcmVuY2VlbnRpdHknXSArICctJyArIHByZWZlcmVuY2VzcGFyYW1zWydwcmVmZXJlbmNlc2VydmljZSddO1xuICAgIHByZWZlcmVuY2VzcGFyYW1zWydwcmVmZXJlbmNldHlwZSddID0gcHJlZmVyZW5jZXNwYXJhbXNbJ3ByZWZlcmVuY2V0eXBlJ10gPT09ICdSRVBPUlQnID8gMCA6IDE7XG4gICAgZGVsZXRlIHByZWZlcmVuY2VzcGFyYW1zWydwcmVmZXJlbmNlc2VydmljZSddO1xuICAgIHJldHVybiBwcmVmZXJlbmNlc3BhcmFtcztcbiAgfVxuXG4gIHB1YmxpYyBzYXZlQXNQcmVmZXJlbmNlcyhwcmVmZXJlbmNlc3BhcmFtczogb2JqZWN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBwcmVmZXJlbmNlc3BhcmFtcyA9IHRoaXMucGFyc2VPYmplY3RUb1ByZWZlcmVuY2UocHJlZmVyZW5jZXNwYXJhbXMpO1xuICAgIHByZWZlcmVuY2VzcGFyYW1zID0gT1ByZWZlcmVuY2VNYXBwaW5nVXRpbHMuanNvbkFwaVByZWZlcmVuY2VzRGF0YU1hcHBpbmcocHJlZmVyZW5jZXNwYXJhbXMpO1xuICAgIHJldHVybiBzdXBlci5pbnNlcnQocHJlZmVyZW5jZXNwYXJhbXMsICdQcmVmZXJlbmNlJyk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZVByZWZlcmVuY2VzKGlkOiBudW1iZXIsIHByZWZlcmVuY2VzcGFyYW1zOiBvYmplY3QpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHByZWZlcmVuY2VzcGFyYW1zID0gdGhpcy5wYXJzZU9iamVjdFRvUHJlZmVyZW5jZShwcmVmZXJlbmNlc3BhcmFtcyk7XG4gICAgcHJlZmVyZW5jZXNwYXJhbXMgPSBPUHJlZmVyZW5jZU1hcHBpbmdVdGlscy5qc29uQXBpUHJlZmVyZW5jZXNEYXRhTWFwcGluZyhwcmVmZXJlbmNlc3BhcmFtcyk7XG4gICAgcmV0dXJuIHN1cGVyLnVwZGF0ZSh7IFBSRUZFUkVOQ0VJRDogaWQgfSwgcHJlZmVyZW5jZXNwYXJhbXMsICdQcmVmZXJlbmNlJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UHJlZmVyZW5jZXMoZW50aXR5OiBzdHJpbmcsIHNlcnZpY2U6IHN0cmluZywgdHlwZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgcXVlcnlQYXJhbXM6IEpTT05BUElRdWVyeVBhcmFtZXRlciA9IHsgZmllbGRzOiB7fSwgZmlsdGVyOiB7fSB9O1xuXG4gICAgbGV0IGZpZWxkcyA9IHsgcHJlZmVyZW5jZTogJ1BSRUZFUkVOQ0VJRCxQUkVGRVJFTkNFTkFNRSxQUkVGRVJFTkNFREVTQ1JJUFRJT04sUFJFRkVSRU5DRVBSRUZFUkVOQ0VTLFBSRUZFUkVOQ0VFTlRJVFksUFJFRkVSRU5DRVRZUEUnIH07XG4gICAgcXVlcnlQYXJhbXMuZmllbGRzWydQcmVmZXJlbmNlJ10gPSBmaWVsZHMucHJlZmVyZW5jZTtcbiAgICBxdWVyeVBhcmFtcy5maWx0ZXIgPSB7IHByZWZlcmVuY2VlbnRpdHk6IGVudGl0eSArICctJyArIHNlcnZpY2UsIHByZWZlcmVuY2V0eXBlOiAodHlwZSA9PT0gJ1JFUE9SVCcgPyAwIDogMSkgfTtcbiAgICByZXR1cm4gc3VwZXIucXVlcnkocXVlcnlQYXJhbXMpO1xuICB9XG5cblxuICBwdWJsaWMgZGVsZXRlUHJlZmVyZW5jZXMoaWQ/OiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsQmFzZX0ke3RoaXMucGF0aH0vJHtpZH1gO1xuICAgIHJldHVybiB0aGlzLmRvUmVxdWVzdCh7XG4gICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgdXJsOiB1cmxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -9,7 +9,6 @@ export class JSONAPIService extends BaseDataService {
|
|
|
9
9
|
constructor(injector) {
|
|
10
10
|
super(injector);
|
|
11
11
|
this.injector = injector;
|
|
12
|
-
this.path = '';
|
|
13
12
|
this.config = this.injector.get(AppConfig);
|
|
14
13
|
}
|
|
15
14
|
startsession(user, password) {
|
|
@@ -163,4 +162,4 @@ JSONAPIService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", versi
|
|
|
163
162
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: JSONAPIService, decorators: [{
|
|
164
163
|
type: Injectable
|
|
165
164
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3NlcnZpY2VzL2pzb25hcGkvanNvbmFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJcEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHN0QsTUFBTSxPQUFPLGNBQWUsU0FBUSxlQUFnQztJQU1sRSxZQUFzQixRQUFrQjtRQUN0QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFESSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBTGpDLFNBQUksR0FBVyxFQUFFLENBQUM7UUFPdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sWUFBWSxDQUFDLElBQVksRUFBRSxRQUFnQjtRQUNoRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUNsRCxNQUFNLE9BQU8sR0FBUTtZQUNuQixPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUM7Z0JBQ3ZCLGFBQWEsRUFBRSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsUUFBUSxDQUFDO2FBQ3RELENBQUM7WUFDRixPQUFP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RkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgc2hhcmUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlnL2FwcC1jb25maWcnO1xuaW1wb3J0IHsgSUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9hdXRoLXNlcnZpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEpTT05BUElSZXNwb25zZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvanNvbmFwaS1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSlNPTkFQSVF1ZXJ5UGFyYW1ldGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMvanNvbi1xdWVyeS1wYXJhbWV0ZXIudHlwZSc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IEJhc2VEYXRhU2VydmljZSB9IGZyb20gJy4uL2Jhc2UtZGF0YS1zZXJ2aWNlLmNsYXNzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEpTT05BUElTZXJ2aWNlIGV4dGVuZHMgQmFzZURhdGFTZXJ2aWNlPEpTT05BUElSZXNwb25zZT4gaW1wbGVtZW50cyBJQXV0aFNlcnZpY2Uge1xuICBwdWJsaWMgcGF0aDogc3RyaW5nID0gJyc7XG4gIHByb3RlY3RlZCBfc3RhcnRTZXNzaW9uUGF0aDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgY29uZmlnOiBBcHBDb25maWc7XG5cblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIHRoaXMuY29uZmlnID0gdGhpcy5pbmplY3Rvci5nZXQoQXBwQ29uZmlnKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGFydHNlc3Npb24odXNlcjogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudW1iZXI+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLnVybEJhc2UgKyB0aGlzLl9zdGFydFNlc3Npb25QYXRoO1xuICAgIGNvbnN0IG9wdGlvbnM6IGFueSA9IHtcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgIEF1dGhvcml6YXRpb246ICdCYXNpYyAnICsgYnRvYSh1c2VyICsgJzonICsgcGFzc3dvcmQpXG4gICAgICB9KSxcbiAgICAgIG9ic2VydmU6ICdyZXNwb25zZSdcbiAgICB9O1xuICAgIGNvbnN0IGRhdGFPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bWJlcj4gPSBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICB0aGlzLmh0dHBDbGllbnQucG9zdCh1cmwsIG51bGwsIG9wdGlvbnMpLnN1YnNjcmliZShcbiAgICAgICAge1xuICAgICAgICAgIG5leHQ6IChyZXNwOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChyZXNwKSAmJiBVdGlsLmlzRGVmaW5lZChyZXNwLmhlYWRlcnMpICYmIFV0aWwuaXNEZWZpbmVkKHJlc3AuaGVhZGVycy5nZXQoJ1gtQXV0aC1Ub2tlbicpKSkge1xuICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHJlc3AuaGVhZGVycy5nZXQoJ1gtQXV0aC1Ub2tlbicpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIEludmFsaWQgc2Vzc2lvbklkIC4uLlxuICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcignSW52YWxpZCB1c2VyIG9yIHBhc3N3b3JkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgICwgZXJyb3I6IChlcnJvcikgPT4gb2JzZXJ2ZXIuZXJyb3IoZXJyb3IpXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBkYXRhT2JzZXJ2YWJsZS5waXBlKHNoYXJlKCkpO1xuICB9XG5cbiAgcHVibGljIGVuZHNlc3Npb24odXNlcjogc3RyaW5nLCBzZXNzaW9uSWQ6IG51bWJlcik6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy51cmxCYXNlICsgJy9lbmRzZXNzaW9uP3VzZXI9JyArIHVzZXIgKyAnJnNlc3Npb25pZD0nICsgc2Vzc2lvbklkO1xuICAgIGNvbnN0IGRhdGFPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT4gPSBuZXcgT2JzZXJ2YWJsZShfY2xvc2VTZXNzaW9uT2JzZXJ2ZXIgPT4ge1xuICAgICAgdGhpcy5odHRwQ2xpZW50LmdldCh1cmwpLnN1YnNjcmliZShcbiAgICAgICAge1xuICAgICAgICAgIG5leHQ6IChyZXNwKSA9PiB7XG4gICAgICAgICAgICBfY2xvc2VTZXNzaW9uT2JzZXJ2ZXIubmV4dChyZXNwKTtcbiAgICAgICAgICB9LCBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDEgfHwgZXJyb3Iuc3RhdHVzID09PSAwIHx8ICFlcnJvci5vaykge1xuICAgICAgICAgICAgICBfY2xvc2VTZXNzaW9uT2JzZXJ2ZXIubmV4dCgwKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIF9jbG9zZVNlc3Npb25PYnNlcnZlci5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgIH0pO1xuICAgIHJldHVybiBkYXRhT2JzZXJ2YWJsZS5waXBlKHNoYXJlKCkpO1xuXG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRIZWFkZXJzKCk6IEh0dHBIZWFkZXJzIHtcbiAgICBsZXQgaGVhZGVycyA9IHN1cGVyLmJ1aWxkSGVhZGVycygpO1xuICAgIGNvbnN0IHNlc3Npb25JZCA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0U2Vzc2lvbkluZm8oKS5pZDtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoc2Vzc2lvbklkKSkge1xuICAgICAgaGVhZGVycyA9IGhlYWRlcnMuYXBwZW5kKCdBdXRob3JpemF0aW9uJywgJ0JlYXJlciAnICsgc2Vzc2lvbklkKTtcbiAgICB9XG4gICAgcmV0dXJuIGhlYWRlcnM7XG4gIH1cblxuICBwdWJsaWMgaGFzc2Vzc2lvbih1c2VyOiBzdHJpbmcsIHNlc3Npb25JZDogYW55KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgY29uc3QgZGF0YU9ic2VydmFibGU6IE9ic2VydmFibGU8YW55PiA9IG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgIG9ic2VydmVyLm5leHQodHJ1ZSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGRhdGFPYnNlcnZhYmxlLnBpcGUoc2hhcmUoKSk7XG4gIH1cblxuICBwdWJsaWMgY29uZmlndXJlU2VydmljZShjb25maWc6IGFueSk6IHZvaWQge1xuICAgIHN1cGVyLmNvbmZpZ3VyZVNlcnZpY2UoY29uZmlnKTtcbiAgICB0aGlzLl9zdGFydFNlc3Npb25QYXRoID0gdGhpcy5fYXBwQ29uZmlnLnN0YXJ0U2Vzc2lvblBhdGggPyB0aGlzLl9hcHBDb25maWcuc3RhcnRTZXNzaW9uUGF0aCA6ICcvYXV0aC9sb2dpbic7XG4gICAgdGhpcy5wYXRoID0gY29uZmlnLnBhdGg7XG4gICAgLy8gVE9ETyBpbml0IG90aGVyIHBhcmFtc1xuXG4gIH1cblxuICBxdWVyeShxdWVyeVBhcmFtczogSlNPTkFQSVF1ZXJ5UGFyYW1ldGVyKTogT2JzZXJ2YWJsZTxKU09OQVBJUmVzcG9uc2U+IHtcbiAgICBxdWVyeVBhcmFtcyA9IHRoaXMucGFyc2VOYW1lQ29udmVudGlvblF1ZXJ5UGFyYW1zKHF1ZXJ5UGFyYW1zKTtcbiAgICBxdWVyeVBhcmFtcyA9IFV0aWwub2JqZWN0VG9RdWVyeVN0cmluZyhxdWVyeVBhcmFtcyk7XG5cbiAgICBjb25zdCBxdWVyeVBhcmFtc1N0cmluZyA9IFV0aWwuaXNEZWZpbmVkKHF1ZXJ5UGFyYW1zKSA/ICc/JyArIHF1ZXJ5UGFyYW1zIDogJyc7XG5cbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnVybEJhc2V9JHt0aGlzLnBhdGh9JHtxdWVyeVBhcmFtc1N0cmluZ31gO1xuXG4gICAgcmV0dXJuIHRoaXMuZG9SZXF1ZXN0KHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB1cmw6IHVybCxcbiAgICAgIHN1Y2Nlc3NDYWxsYmFjazogdGhpcy5wYXJzZVN1Y2Nlc3NmdWxRdWVyeVJlc3BvbnNlLFxuICAgICAgZXJyb3JDYWxsQmFjazogdGhpcy5wYXJzZVVuc3VjY2Vzc2Z1bFF1ZXJ5UmVzcG9uc2VcbiAgICB9KTtcbiAgfVxuXG4gIGFkdmFuY2VkUXVlcnkocXVlcnlQYXJhbXM6IEpTT05BUElRdWVyeVBhcmFtZXRlcik6IE9ic2VydmFibGU8SlNPTkFQSVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMucXVlcnkocXVlcnlQYXJhbXMpO1xuICB9XG5cbiAgcXVlcnlCeUlkKHF1ZXJ5UGFyYW1zOiBKU09OQVBJUXVlcnlQYXJhbWV0ZXIpOiBPYnNlcnZhYmxlPEpTT05BUElSZXNwb25zZT4ge1xuXG4gICAgcXVlcnlQYXJhbXMgPSB0aGlzLnBhcnNlTmFtZUNvbnZlbnRpb25RdWVyeVBhcmFtcyhxdWVyeVBhcmFtcyk7XG5cbiAgICBjb25zdCBpZCA9IE9iamVjdC52YWx1ZXMocXVlcnlQYXJhbXMuZmlsdGVyKVswXTtcblxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsQmFzZX0ke3RoaXMucGF0aH0vJHtpZH0/JHtVdGlsLm9iamVjdFRvUXVlcnlTdHJpbmcocXVlcnlQYXJhbXMpfWA7XG5cbiAgICByZXR1cm4gdGhpcy5kb1JlcXVlc3Qoe1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHVybDogdXJsLFxuICAgICAgc3VjY2Vzc0NhbGxiYWNrOiB0aGlzLnBhcnNlU3VjY2Vzc2Z1bFF1ZXJ5UmVzcG9uc2UsXG4gICAgICBlcnJvckNhbGxCYWNrOiB0aGlzLnBhcnNlVW5zdWNjZXNzZnVsUXVlcnlSZXNwb25zZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZU5hbWVDb252ZW50aW9uUXVlcnlQYXJhbXMocXVlcnlQYXJhbXM6IEpTT05BUElRdWVyeVBhcmFtZXRlcik6IEpTT05BUElRdWVyeVBhcmFtZXRlciB7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHF1ZXJ5UGFyYW1zLmZpZWxkcykpIHtcbiAgICAgIGNvbnN0IGVudGl0eSA9IE9iamVjdC5rZXlzKHF1ZXJ5UGFyYW1zLmZpZWxkcylbMF07XG4gICAgICBjb25zdCBmaWVsZHMgPSBPYmplY3QudmFsdWVzKHF1ZXJ5UGFyYW1zLmZpZWxkcylbMF07XG4gICAgICBxdWVyeVBhcmFtcy5maWVsZHNbZW50aXR5XSA9IHRoaXMubmFtZUNvbnZlbnRpb24ucGFyc2VDb2x1bW5zVG9OYW1lQ29udmVudGlvbkZvckpTT05BUEkoZmllbGRzKTtcbiAgICB9XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHF1ZXJ5UGFyYW1zLnNvcnQpKSB7XG4gICAgICBxdWVyeVBhcmFtcy5zb3J0ID0gdGhpcy5uYW1lQ29udmVudGlvbi5wYXJzZUNvbHVtbnNUb05hbWVDb252ZW50aW9uRm9ySlNPTkFQSShxdWVyeVBhcmFtcy5zb3J0KTtcbiAgICB9XG5cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQocXVlcnlQYXJhbXMuZmlsdGVyKSkge1xuICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5uYW1lQ29udmVudGlvbi5wYXJzZUZpbHRlclRvTmFtZUNvbnZlbnRpb24ocXVlcnlQYXJhbXMuZmlsdGVyKTtcbiAgICAgIHF1ZXJ5UGFyYW1zLmZpbHRlciA9IHsgLi4uZmlsdGVyIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHF1ZXJ5UGFyYW1zO1xuICB9XG5cbiAgaW5zZXJ0KGF2OiBvYmplY3QsIGVudGl0eTogc3RyaW5nKTogT2JzZXJ2YWJsZTxKU09OQVBJUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnVybEJhc2V9JHt0aGlzLnBhdGh9YDtcblxuICAgIGF2ID0gdGhpcy5uYW1lQ29udmVudGlvbi5wYXJzZURhdGFUb05hbWVDb252ZW50aW9uKGF2KTtcblxuICAgIGxldCBhdHRyaWJ1dGVzID0geyBhdHRyaWJ1dGVzOiBhdiwgdHlwZTogZW50aXR5IH07XG4gICAgY29uc3QgYm9keSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGRhdGE6IGF0dHJpYnV0ZXNcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmRvUmVxdWVzdCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHVybDogdXJsLFxuICAgICAgYm9keTogYm9keSxcbiAgICAgIHN1Y2Nlc3NDYWxsYmFjazogdGhpcy5wYXJzZVN1Y2Nlc3NmdWxJbnNlcnRSZXNwb25zZSxcbiAgICAgIGVycm9yQ2FsbEJhY2s6IHRoaXMucGFyc2VVbnN1Y2Nlc3NmdWxJbnNlcnRSZXNwb25zZVxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlKGt2OiBvYmplY3QsIGF2OiBvYmplY3QsIGVudGl0eT86IHN0cmluZyk6IE9ic2VydmFibGU8SlNPTkFQSVJlc3BvbnNlPiB7XG4gICAgY29uc3QgaWQgPSBPYmplY3QudmFsdWVzKGt2KVswXTtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnVybEJhc2V9JHt0aGlzLnBhdGh9LyR7aWR9YDtcblxuICAgIGF2ID0gdGhpcy5uYW1lQ29udmVudGlvbi5wYXJzZURhdGFUb05hbWVDb252ZW50aW9uKGF2KTtcblxuICAgIGxldCBhdHRyaWJ1dGVzID0geyAuLi57IGF0dHJpYnV0ZXM6IGF2IH0sIC4uLnsgaWQ6IGlkIH0sIC4uLnsgdHlwZTogZW50aXR5IH0gfTtcblxuICAgIGNvbnN0IGJvZHkgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBkYXRhOiBhdHRyaWJ1dGVzXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5kb1JlcXVlc3Qoe1xuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgdXJsOiB1cmwsXG4gICAgICBib2R5OiBib2R5LFxuICAgICAgc3VjY2Vzc0NhbGxiYWNrOiB0aGlzLnBhcnNlU3VjY2Vzc2Z1bFVwZGF0ZVJlc3BvbnNlLFxuICAgICAgZXJyb3JDYWxsQmFjazogdGhpcy5wYXJzZVVuc3VjY2Vzc2Z1bFVwZGF0ZVJlc3BvbnNlXG4gICAgfSk7XG4gIH1cblxuICBkZWxldGUoa3Y6IG9iamVjdCA9IHt9KTogT2JzZXJ2YWJsZTxKU09OQVBJUmVzcG9uc2U+IHtcbiAgICBjb25zdCBpZCA9IE9iamVjdC52YWx1ZXMoa3YpWzBdO1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsQmFzZX0ke3RoaXMucGF0aH0vJHtpZH1gO1xuXG4gICAgcmV0dXJuIHRoaXMuZG9SZXF1ZXN0KHtcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICB1cmw6IHVybCxcbiAgICAgIHN1Y2Nlc3NDYWxsYmFjazogdGhpcy5wYXJzZVN1Y2Nlc3NmdWxEZWxldGVSZXNwb25zZSxcbiAgICAgIGVycm9yQ2FsbEJhY2s6IHRoaXMucGFyc2VVbnN1Y2Nlc3NmdWxEZWxldGVSZXNwb25zZVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICogR2V0cyBzdGFuZGFydCBlbnRpdHlcbiAgKiBAcGFyYW0gZW50aXR5XG4gICogQHJldHVybnMgIHJldHVybiB0aGUgZmlyc3QgY2hhcnQgb2YgdGhlIGVudGl0eSBpbiB1cHBlcmNhc2VcbiAgKi9cblxuICBnZXRTdGFuZGFydEVudGl0eShlbnRpdHk6IHN0cmluZykge1xuICAgIHJldHVybiBlbnRpdHkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBlbnRpdHkuc2xpY2UoMSk7XG4gIH1cblxufVxuIl19
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3NlcnZpY2VzL2pzb25hcGkvanNvbmFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJcEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHN0QsTUFBTSxPQUFPLGNBQWUsU0FBUSxlQUFnQztJQUlsRSxZQUFzQixRQUFrQjtRQUN0QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFESSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRXRDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUFZLEVBQUUsUUFBZ0I7UUFDaEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDbEQsTUFBTSxPQUFPLEdBQVE7WUFDbkIsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDO2dCQUN2QixhQUFhLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQzthQUN0RCxDQUFDO1lBQ0YsT0FBTyxFQUFFLFVBQVU7U0FDcEIsQ0FBQztRQUNG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dXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHNoYXJlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFwcENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbmZpZy9hcHAtY29uZmlnJztcbmltcG9ydCB7IElBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYXV0aC1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBKU09OQVBJUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2pzb25hcGktcmVzcG9uc2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEpTT05BUElRdWVyeVBhcmFtZXRlciB9IGZyb20gJy4uLy4uL3R5cGVzL2pzb24tcXVlcnktcGFyYW1ldGVyLnR5cGUnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBCYXNlRGF0YVNlcnZpY2UgfSBmcm9tICcuLi9iYXNlLWRhdGEtc2VydmljZS5jbGFzcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBKU09OQVBJU2VydmljZSBleHRlbmRzIEJhc2VEYXRhU2VydmljZTxKU09OQVBJUmVzcG9uc2U+IGltcGxlbWVudHMgSUF1dGhTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIF9zdGFydFNlc3Npb25QYXRoOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBjb25maWc6IEFwcENvbmZpZztcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIHRoaXMuY29uZmlnID0gdGhpcy5pbmplY3Rvci5nZXQoQXBwQ29uZmlnKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGFydHNlc3Npb24odXNlcjogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudW1iZXI+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLnVybEJhc2UgKyB0aGlzLl9zdGFydFNlc3Npb25QYXRoO1xuICAgIGNvbnN0IG9wdGlvbnM6IGFueSA9IHtcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgIEF1dGhvcml6YXRpb246ICdCYXNpYyAnICsgYnRvYSh1c2VyICsgJzonICsgcGFzc3dvcmQpXG4gICAgICB9KSxcbiAgICAgIG9ic2VydmU6ICdyZXNwb25zZSdcbiAgICB9O1xuICAgIGNvbnN0IGRhdGFPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bWJlcj4gPSBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICB0aGlzLmh0dHBDbGllbnQucG9zdCh1cmwsIG51bGwsIG9wdGlvbnMpLnN1YnNjcmliZShcbiAgICAgICAge1xuICAgICAgICAgIG5leHQ6IChyZXNwOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChyZXNwKSAmJiBVdGlsLmlzRGVmaW5lZChyZXNwLmhlYWRlcnMpICYmIFV0aWwuaXNEZWZpbmVkKHJlc3AuaGVhZGVycy5nZXQoJ1gtQXV0aC1Ub2tlbicpKSkge1xuICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHJlc3AuaGVhZGVycy5nZXQoJ1gtQXV0aC1Ub2tlbicpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIEludmFsaWQgc2Vzc2lvbklkIC4uLlxuICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcignSW52YWxpZCB1c2VyIG9yIHBhc3N3b3JkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgICwgZXJyb3I6IChlcnJvcikgPT4gb2JzZXJ2ZXIuZXJyb3IoZXJyb3IpXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBkYXRhT2JzZXJ2YWJsZS5waXBlKHNoYXJlKCkpO1xuICB9XG5cbiAgcHVibGljIGVuZHNlc3Npb24odXNlcjogc3RyaW5nLCBzZXNzaW9uSWQ6IG51bWJlcik6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy51cmxCYXNlICsgJy9lbmRzZXNzaW9uP3VzZXI9JyArIHVzZXIgKyAnJnNlc3Npb25pZD0nICsgc2Vzc2lvbklkO1xuICAgIGNvbnN0IGRhdGFPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT4gPSBuZXcgT2JzZXJ2YWJsZShfY2xvc2VTZXNzaW9uT2JzZXJ2ZXIgPT4ge1xuICAgICAgdGhpcy5odHRwQ2xpZW50LmdldCh1cmwpLnN1YnNjcmliZShcbiAgICAgICAge1xuICAgICAgICAgIG5leHQ6IChyZXNwKSA9PiB7XG4gICAgICAgICAgICBfY2xvc2VTZXNzaW9uT2JzZXJ2ZXIubmV4dChyZXNwKTtcbiAgICAgICAgICB9LCBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDEgfHwgZXJyb3Iuc3RhdHVzID09PSAwIHx8ICFlcnJvci5vaykge1xuICAgICAgICAgICAgICBfY2xvc2VTZXNzaW9uT2JzZXJ2ZXIubmV4dCgwKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIF9jbG9zZVNlc3Npb25PYnNlcnZlci5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgIH0pO1xuICAgIHJldHVybiBkYXRhT2JzZXJ2YWJsZS5waXBlKHNoYXJlKCkpO1xuXG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRIZWFkZXJzKCk6IEh0dHBIZWFkZXJzIHtcbiAgICBsZXQgaGVhZGVycyA9IHN1cGVyLmJ1aWxkSGVhZGVycygpO1xuICAgIGNvbnN0IHNlc3Npb25JZCA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0U2Vzc2lvbkluZm8oKS5pZDtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoc2Vzc2lvbklkKSkge1xuICAgICAgaGVhZGVycyA9IGhlYWRlcnMuYXBwZW5kKCdBdXRob3JpemF0aW9uJywgJ0JlYXJlciAnICsgc2Vzc2lvbklkKTtcbiAgICB9XG4gICAgcmV0dXJuIGhlYWRlcnM7XG4gIH1cblxuICBwdWJsaWMgaGFzc2Vzc2lvbih1c2VyOiBzdHJpbmcsIHNlc3Npb25JZDogYW55KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgY29uc3QgZGF0YU9ic2VydmFibGU6IE9ic2VydmFibGU8YW55PiA9IG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgIG9ic2VydmVyLm5leHQodHJ1ZSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGRhdGFPYnNlcnZhYmxlLnBpcGUoc2hhcmUoKSk7XG4gIH1cblxuICBwdWJsaWMgY29uZmlndXJlU2VydmljZShjb25maWc6IGFueSk6IHZvaWQge1xuICAgIHN1cGVyLmNvbmZpZ3VyZVNlcnZpY2UoY29uZmlnKTtcbiAgICB0aGlzLl9zdGFydFNlc3Npb25QYXRoID0gdGhpcy5fYXBwQ29uZmlnLnN0YXJ0U2Vzc2lvblBhdGggPyB0aGlzLl9hcHBDb25maWcuc3RhcnRTZXNzaW9uUGF0aCA6ICcvYXV0aC9sb2dpbic7XG4gICAgdGhpcy5wYXRoID0gY29uZmlnLnBhdGg7XG4gIH1cblxuICBxdWVyeShxdWVyeVBhcmFtczogSlNPTkFQSVF1ZXJ5UGFyYW1ldGVyKTogT2JzZXJ2YWJsZTxKU09OQVBJUmVzcG9uc2U+IHtcbiAgICBxdWVyeVBhcmFtcyA9IHRoaXMucGFyc2VOYW1lQ29udmVudGlvblF1ZXJ5UGFyYW1zKHF1ZXJ5UGFyYW1zKTtcbiAgICBxdWVyeVBhcmFtcyA9IFV0aWwub2JqZWN0VG9RdWVyeVN0cmluZyhxdWVyeVBhcmFtcyk7XG5cbiAgICBjb25zdCBxdWVyeVBhcmFtc1N0cmluZyA9IFV0aWwuaXNEZWZpbmVkKHF1ZXJ5UGFyYW1zKSA/ICc/JyArIHF1ZXJ5UGFyYW1zIDogJyc7XG5cbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnVybEJhc2V9JHt0aGlzLnBhdGh9JHtxdWVyeVBhcmFtc1N0cmluZ31gO1xuXG4gICAgcmV0dXJuIHRoaXMuZG9SZXF1ZXN0KHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB1cmw6IHVybCxcbiAgICAgIHN1Y2Nlc3NDYWxsYmFjazogdGhpcy5wYXJzZVN1Y2Nlc3NmdWxRdWVyeVJlc3BvbnNlLFxuICAgICAgZXJyb3JDYWxsQmFjazogdGhpcy5wYXJzZVVuc3VjY2Vzc2Z1bFF1ZXJ5UmVzcG9uc2VcbiAgICB9KTtcbiAgfVxuXG4gIGFkdmFuY2VkUXVlcnkocXVlcnlQYXJhbXM6IEpTT05BUElRdWVyeVBhcmFtZXRlcik6IE9ic2VydmFibGU8SlNPTkFQSVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMucXVlcnkocXVlcnlQYXJhbXMpO1xuICB9XG5cbiAgcXVlcnlCeUlkKHF1ZXJ5UGFyYW1zOiBKU09OQVBJUXVlcnlQYXJhbWV0ZXIpOiBPYnNlcnZhYmxlPEpTT05BUElSZXNwb25zZT4ge1xuXG4gICAgcXVlcnlQYXJhbXMgPSB0aGlzLnBhcnNlTmFtZUNvbnZlbnRpb25RdWVyeVBhcmFtcyhxdWVyeVBhcmFtcyk7XG5cbiAgICBjb25zdCBpZCA9IE9iamVjdC52YWx1ZXMocXVlcnlQYXJhbXMuZmlsdGVyKVswXTtcblxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsQmFzZX0ke3RoaXMucGF0aH0vJHtpZH0/JHtVdGlsLm9iamVjdFRvUXVlcnlTdHJpbmcocXVlcnlQYXJhbXMpfWA7XG5cbiAgICByZXR1cm4gdGhpcy5kb1JlcXVlc3Qoe1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHVybDogdXJsLFxuICAgICAgc3VjY2Vzc0NhbGxiYWNrOiB0aGlzLnBhcnNlU3VjY2Vzc2Z1bFF1ZXJ5UmVzcG9uc2UsXG4gICAgICBlcnJvckNhbGxCYWNrOiB0aGlzLnBhcnNlVW5zdWNjZXNzZnVsUXVlcnlSZXNwb25zZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZU5hbWVDb252ZW50aW9uUXVlcnlQYXJhbXMocXVlcnlQYXJhbXM6IEpTT05BUElRdWVyeVBhcmFtZXRlcik6IEpTT05BUElRdWVyeVBhcmFtZXRlciB7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHF1ZXJ5UGFyYW1zLmZpZWxkcykpIHtcbiAgICAgIGNvbnN0IGVudGl0eSA9IE9iamVjdC5rZXlzKHF1ZXJ5UGFyYW1zLmZpZWxkcylbMF07XG4gICAgICBjb25zdCBmaWVsZHMgPSBPYmplY3QudmFsdWVzKHF1ZXJ5UGFyYW1zLmZpZWxkcylbMF07XG4gICAgICBxdWVyeVBhcmFtcy5maWVsZHNbZW50aXR5XSA9IHRoaXMubmFtZUNvbnZlbnRpb24ucGFyc2VDb2x1bW5zVG9OYW1lQ29udmVudGlvbkZvckpTT05BUEkoZmllbGRzKTtcbiAgICB9XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHF1ZXJ5UGFyYW1zLnNvcnQpKSB7XG4gICAgICBxdWVyeVBhcmFtcy5zb3J0ID0gdGhpcy5uYW1lQ29udmVudGlvbi5wYXJzZUNvbHVtbnNUb05hbWVDb252ZW50aW9uRm9ySlNPTkFQSShxdWVyeVBhcmFtcy5zb3J0KTtcbiAgICB9XG5cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQocXVlcnlQYXJhbXMuZmlsdGVyKSkge1xuICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5uYW1lQ29udmVudGlvbi5wYXJzZUZpbHRlclRvTmFtZUNvbnZlbnRpb24ocXVlcnlQYXJhbXMuZmlsdGVyKTtcbiAgICAgIHF1ZXJ5UGFyYW1zLmZpbHRlciA9IHsgLi4uZmlsdGVyIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHF1ZXJ5UGFyYW1zO1xuICB9XG5cbiAgaW5zZXJ0KGF2OiBvYmplY3QsIGVudGl0eTogc3RyaW5nKTogT2JzZXJ2YWJsZTxKU09OQVBJUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnVybEJhc2V9JHt0aGlzLnBhdGh9YDtcblxuICAgIGF2ID0gdGhpcy5uYW1lQ29udmVudGlvbi5wYXJzZURhdGFUb05hbWVDb252ZW50aW9uKGF2KTtcblxuICAgIGxldCBhdHRyaWJ1dGVzID0geyBhdHRyaWJ1dGVzOiBhdiwgdHlwZTogZW50aXR5IH07XG4gICAgY29uc3QgYm9keSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGRhdGE6IGF0dHJpYnV0ZXNcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmRvUmVxdWVzdCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHVybDogdXJsLFxuICAgICAgYm9keTogYm9keSxcbiAgICAgIHN1Y2Nlc3NDYWxsYmFjazogdGhpcy5wYXJzZVN1Y2Nlc3NmdWxJbnNlcnRSZXNwb25zZSxcbiAgICAgIGVycm9yQ2FsbEJhY2s6IHRoaXMucGFyc2VVbnN1Y2Nlc3NmdWxJbnNlcnRSZXNwb25zZVxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlKGt2OiBvYmplY3QsIGF2OiBvYmplY3QsIGVudGl0eT86IHN0cmluZyk6IE9ic2VydmFibGU8SlNPTkFQSVJlc3BvbnNlPiB7XG4gICAgY29uc3QgaWQgPSBPYmplY3QudmFsdWVzKGt2KVswXTtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnVybEJhc2V9JHt0aGlzLnBhdGh9LyR7aWR9YDtcblxuICAgIGF2ID0gdGhpcy5uYW1lQ29udmVudGlvbi5wYXJzZURhdGFUb05hbWVDb252ZW50aW9uKGF2KTtcblxuICAgIGxldCBhdHRyaWJ1dGVzID0geyAuLi57IGF0dHJpYnV0ZXM6IGF2IH0sIC4uLnsgaWQ6IGlkIH0sIC4uLnsgdHlwZTogZW50aXR5IH0gfTtcblxuICAgIGNvbnN0IGJvZHkgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBkYXRhOiBhdHRyaWJ1dGVzXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5kb1JlcXVlc3Qoe1xuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgdXJsOiB1cmwsXG4gICAgICBib2R5OiBib2R5LFxuICAgICAgc3VjY2Vzc0NhbGxiYWNrOiB0aGlzLnBhcnNlU3VjY2Vzc2Z1bFVwZGF0ZVJlc3BvbnNlLFxuICAgICAgZXJyb3JDYWxsQmFjazogdGhpcy5wYXJzZVVuc3VjY2Vzc2Z1bFVwZGF0ZVJlc3BvbnNlXG4gICAgfSk7XG4gIH1cblxuICBkZWxldGUoa3Y6IG9iamVjdCA9IHt9KTogT2JzZXJ2YWJsZTxKU09OQVBJUmVzcG9uc2U+IHtcbiAgICBjb25zdCBpZCA9IE9iamVjdC52YWx1ZXMoa3YpWzBdO1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsQmFzZX0ke3RoaXMucGF0aH0vJHtpZH1gO1xuXG4gICAgcmV0dXJuIHRoaXMuZG9SZXF1ZXN0KHtcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICB1cmw6IHVybCxcbiAgICAgIHN1Y2Nlc3NDYWxsYmFjazogdGhpcy5wYXJzZVN1Y2Nlc3NmdWxEZWxldGVSZXNwb25zZSxcbiAgICAgIGVycm9yQ2FsbEJhY2s6IHRoaXMucGFyc2VVbnN1Y2Nlc3NmdWxEZWxldGVSZXNwb25zZVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICogR2V0cyBzdGFuZGFydCBlbnRpdHlcbiAgKiBAcGFyYW0gZW50aXR5XG4gICogQHJldHVybnMgIHJldHVybiB0aGUgZmlyc3QgY2hhcnQgb2YgdGhlIGVudGl0eSBpbiB1cHBlcmNhc2VcbiAgKi9cblxuICBnZXRTdGFuZGFydEVudGl0eShlbnRpdHk6IHN0cmluZykge1xuICAgIHJldHVybiBlbnRpdHkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBlbnRpdHkuc2xpY2UoMSk7XG4gIH1cblxufVxuIl19
|
|
@@ -7,6 +7,5 @@ export * from './ontimize-service-response.adapter';
|
|
|
7
7
|
export * from './ontimize-service-response.class';
|
|
8
8
|
export * from './ontimize.service';
|
|
9
9
|
export * from './ontimize-preferences.service';
|
|
10
|
-
export * from './o-preference-query-argument.adapter';
|
|
11
10
|
export * from './o-preference-response.adapter';
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvc2VydmljZXMvb250aW1pemUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywrQkFBK0IsQ0FBQTtBQUM3QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vb250aW1pemUtYmFzZS1zZXJ2aWNlLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vb250aW1pemUtZWUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL29udGltaXplLWV4cG9ydC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vb250aW1pemUtZXhwb3J0LTN4eC5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9vbnRpbWl6ZS1maWxlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vbnRpbWl6ZS1zZXJ2aWNlLXJlc3BvbnNlLmFkYXB0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9vbnRpbWl6ZS1zZXJ2aWNlLXJlc3BvbnNlLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vb250aW1pemUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL29udGltaXplLXByZWZlcmVuY2VzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vLXByZWZlcmVuY2UtcmVzcG9uc2UuYWRhcHRlcic7XG4iXX0=
|
|
@@ -6,10 +6,6 @@ import { Util } from '../../util/util';
|
|
|
6
6
|
import { OntimizeBaseService } from './ontimize-base-service.class';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export class OntimizeEEService extends OntimizeBaseService {
|
|
9
|
-
constructor() {
|
|
10
|
-
super(...arguments);
|
|
11
|
-
this.path = '';
|
|
12
|
-
}
|
|
13
9
|
configureService(config) {
|
|
14
10
|
super.configureService(config);
|
|
15
11
|
this._startSessionPath = this._appConfig.startSessionPath ? this._appConfig.startSessionPath : '/users/login';
|
|
@@ -169,4 +165,4 @@ OntimizeEEService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ve
|
|
|
169
165
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OntimizeEEService, decorators: [{
|
|
170
166
|
type: Injectable
|
|
171
167
|
}] });
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib250aW1pemUtZWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9zZXJ2aWNlcy9vbnRpbWl6ZS9vbnRpbWl6ZS1lZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXZDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFHcEUsTUFBTSxPQUFPLGlCQUFrQixTQUFRLG1CQUFtQjtJQUQxRDs7UUFHUyxTQUFJLEdBQVcsRUFBRSxDQUFDO0tBa00xQjtJQWhNUSxnQkFBZ0IsQ0FBQyxNQUFXO1FBQ2pDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO1FBQzlHLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztJQUUxQixDQUFDO0lBRU0sWUFBWSxDQUFDLElBQVksRUFBRSxRQUFnQjtRQUNoRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUNsRCxNQUFNLE9BQU8sR0FBUTtZQUNuQixPQUFPLEVBQUUsSUFBSSxX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QUFFLFFBQVE7U0FDbkIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3BCLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLEdBQUcsRUFBRSxHQUFHO1lBQ1IsSUFBSSxFQUFFLElBQUk7WUFDVixlQUFlLEVBQUUsSUFBSSxDQUFDLDZCQUE2QjtZQUNuRCxhQUFhLEVBQUUsSUFBSSxDQUFDLCtCQUErQjtTQUNwRCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsWUFBWTtRQUNwQixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDdkQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzdCLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxTQUFTLEdBQUcsU0FBUyxDQUFDLENBQUM7U0FDbEU7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOzs4R0FsTVUsaUJBQWlCO2tIQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2hhcmUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IElEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZGF0YS1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZXJ2aWNlUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NlcnZpY2UtcmVzcG9uc2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgT250aW1pemVCYXNlU2VydmljZSB9IGZyb20gJy4vb250aW1pemUtYmFzZS1zZXJ2aWNlLmNsYXNzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9udGltaXplRUVTZXJ2aWNlIGV4dGVuZHMgT250aW1pemVCYXNlU2VydmljZSBpbXBsZW1lbnRzIElEYXRhU2VydmljZSB7XG5cbiAgcHVibGljIHBhdGg6IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyBjb25maWd1cmVTZXJ2aWNlKGNvbmZpZzogYW55KTogdm9pZCB7XG4gICAgc3VwZXIuY29uZmlndXJlU2VydmljZShjb25maWcpO1xuICAgIHRoaXMuX3N0YXJ0U2Vzc2lvblBhdGggPSB0aGlzLl9hcHBDb25maWcuc3RhcnRTZXNzaW9uUGF0aCA/IHRoaXMuX2FwcENvbmZpZy5zdGFydFNlc3Npb25QYXRoIDogJy91c2Vycy9sb2dpbic7XG4gICAgdGhpcy5wYXRoID0gY29uZmlnLnBhdGg7XG4gICAgLy8gVE9ETyBpbml0IG90aGVyIHBhcmFtc1xuICB9XG5cbiAgcHVibGljIHN0YXJ0c2Vzc2lvbih1c2VyOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bWJlcj4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMudXJsQmFzZSArIHRoaXMuX3N0YXJ0U2Vzc2lvblBhdGg7XG4gICAgY29uc3Qgb3B0aW9uczogYW55ID0ge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogJ0Jhc2ljICcgKyBidG9hKHVzZXIgKyAnOicgKyBwYXNzd29yZClcbiAgICAgIH0pLFxuICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ1xuICAgIH07XG4gICAgY29uc3QgZGF0YU9ic2VydmFibGU6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVtYmVyPiA9IG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgIHRoaXMuaHR0cENsaWVudC5wb3N0KHVybCwgbnVsbCwgb3B0aW9ucykuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlc3A6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChyZXNwKSAmJiBVdGlsLmlzRGVmaW5lZChyZXNwLmhlYWRlcnMpICYmIFV0aWwuaXNEZWZpbmVkKHJlc3AuaGVhZGVycy5nZXQoJ1gtQXV0aC1Ub2tlbicpKSkge1xuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChyZXNwLmhlYWRlcnMuZ2V0KCdYLUF1dGgtVG9rZW4nKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEludmFsaWQgc2Vzc2lvbklkIC4uLlxuICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoJ0ludmFsaWQgdXNlciBvciBwYXNzd29yZCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgZXJyb3I6IChlcnJvcikgPT4gb2JzZXJ2ZXIuZXJyb3IoZXJyb3IpXG4gICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YU9ic2VydmFibGUucGlwZShzaGFyZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBlbmRzZXNzaW9uKHVzZXI6IHN0cmluZywgc2Vzc2lvbklkOiBhbnkpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIGNvbnN0IGRhdGFPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT4gPSBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgb2JzZXJ2ZXIubmV4dCgwKTtcbiAgICAgIH0sIDApO1xuICAgIH0pO1xuICAgIHJldHVybiBkYXRhT2JzZXJ2YWJsZS5waXBlKHNoYXJlKCkpO1xuICB9XG5cbiAgcHVibGljIGhhc3Nlc3Npb24odXNlcjogc3RyaW5nLCBzZXNzaW9uSWQ6IGFueSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGRhdGFPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT4gPSBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICBvYnNlcnZlci5uZXh0KHRydWUpO1xuICAgIH0pO1xuICAgIHJldHVybiBkYXRhT2JzZXJ2YWJsZS5waXBlKHNoYXJlKCkpO1xuICB9XG5cbiAgcHVibGljIHF1ZXJ5KGt2Pzogb2JqZWN0LCBhdj86IEFycmF5PHN0cmluZz4sIGVudGl0eT86IHN0cmluZywgc3FsdHlwZXM/OiBvYmplY3QpOiBPYnNlcnZhYmxlPFNlcnZpY2VSZXNwb25zZT4ge1xuICAgIC8vIFRPRE8gaW1wcm92ZSB0aGlzIC0+IG1lcmdlIGJldHdlZW4gZ2xvYmFsIGNvbmYgYW5kIHNwZWNpZmljIHBhcmFtcyBvZiBtZXRob2QgY2FsbGluZ1xuICAgIGt2ID0gKFV0aWwuaXNEZWZpbmVkKGt2KSkgPyBrdiA6IHRoaXMua3Y7XG4gICAgYXYgPSAoVXRpbC5pc0RlZmluZWQoYXYpKSA/IGF2IDogdGhpcy5hdjtcbiAgICBzcWx0eXBlcyA9IChVdGlsLmlzRGVmaW5lZChzcWx0eXBlcykpID8gc3FsdHlwZXMgOiB0aGlzLnNxbHR5cGVzO1xuXG4gICAga3YgPSB0aGlzLm5hbWVDb252ZW50aW9uLnBhcnNlRmlsdGVyVG9OYW1lQ29udmVudGlvbihrdik7XG4gICAgYXYgPSB0aGlzLm5hbWVDb252ZW50aW9uLnBhcnNlQ29sdW1uc1RvTmFtZUNvbnZlbnRpb25Gb3JPbnRpbWl6ZShhdik7XG4gICAgc3FsdHlwZXMgPSB0aGlzLm5hbWVDb252ZW50aW9uLnBhcnNlRGF0YVRvTmFtZUNvbnZlbnRpb24oc3FsdHlwZXMpO1xuXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy51cmxCYXNlfSR7dGhpcy5wYXRofS8ke2VudGl0eX0vc2VhcmNoYDtcblxuICAgIGNvbnN0IGJvZHkgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBmaWx0ZXI6IGt2LFxuICAgICAgY29sdW1uczogYXYsXG4gICAgICBzcWx0eXBlczogc3FsdHlwZXNcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmRvUmVxdWVzdCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHVybDogdXJsLFxuICAgICAgYm9keTogYm9keSxcbiAgICAgIHN1Y2Nlc3NDYWxsYmFjazogdGhpcy5wYXJzZVN1Y2Nlc3NmdWxRdWVyeVJlc3BvbnNlLFxuICAgICAgZXJyb3JDYWxsQmFjazogdGhpcy5wYXJzZVVuc3VjY2Vzc2Z1bFF1ZXJ5UmVzcG9uc2VcbiAgICB9KTtcbiAgfVxuXG4gIHF1ZXJ5QnlJZChrdj86IG9iamVjdCwgYXY/OiBzdHJpbmdbXSwgZW50aXR5Pzogc3RyaW5nLCBzcWx0eXBlcz86IG9iamVjdCk6IE9ic2VydmFibGU8U2VydmljZVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMucXVlcnkoa3YsIGF2LCBlbnRpdHksIHNxbHR5cGVzKTtcbiAgfVxuXG5cbiAgcHVibGljIGFkdmFuY2VkUXVlcnkoa3Y/OiBvYmplY3QsIGF2PzogQXJyYXk8c3RyaW5nPiwgZW50aXR5Pzogc3RyaW5nLCBzcWx0eXBlcz86IG9iamVjdCxcbiAgICBvZmZzZXQ/OiBudW1iZXIsIHBhZ2VzaXplPzogbnVtYmVyLCBvcmRlcmJ5PzogQXJyYXk8b2JqZWN0Pik6IE9ic2VydmFibGU8U2VydmljZVJlc3BvbnNlPiB7XG5cbiAgICAvLyBUT0RPIGltcHJvdmUgdGhpcyAtPiBtZXJnZSBiZXR3ZWVuIGdsb2JhbCBjb25mIGFuZCBzcGVjaWZpYyBwYXJhbXMgb2YgbWV0aG9kIGNhbGxpbmdcbiAgICBrdiA9IChVdGlsLmlzRGVmaW5lZChrdikpID8ga3YgOiB0aGlzLmt2O1xuICAgIGF2ID0gKFV0aWwuaXNEZWZpbmVkKGF2KSkgPyBhdiA6IHRoaXMuYXY7XG4gICAgc3FsdHlwZXMgPSAoVXRpbC5pc0RlZmluZWQoc3FsdHlwZXMpKSA/IHNxbHR5cGVzIDogdGhpcy5zcWx0eXBlcztcbiAgICBvcmRlcmJ5ID0gKFV0aWwuaXNEZWZpbmVkKG9yZGVyYnkpKSA/IG9yZGVyYnkgOiB0aGlzLm9yZGVyYnk7XG4gICAgb2Zmc2V0ID0gKFV0aWwuaXNEZWZpbmVkKG9mZnNldCkpID8gb2Zmc2V0IDogdGhpcy5vZmZzZXQ7XG4gICAgcGFnZXNpemUgPSAoVXRpbC5pc0RlZmluZWQocGFnZXNpemUpKSA/IHBhZ2VzaXplIDogdGhpcy5wYWdlc2l6ZTtcblxuICAgIGlmIChVdGlsLmlzRGVmaW5lZChrdikgJiYgIVV0aWwuaXNPYmplY3RFbXB0eShrdikpIHtcbiAgICAgIGt2PSB0aGlzLm5hbWVDb252ZW50aW9uLnBhcnNlRmlsdGVyVG9OYW1lQ29udmVudGlvbihrdik7XG4gICAgfVxuXG4gICAgYXYgPSB0aGlzLm5hbWVDb252ZW50aW9uLnBhcnNlQ29sdW1uc1RvTmFtZUNvbnZlbnRpb25Gb3JPbnRpbWl6ZShhdik7XG4gICAgc3FsdHlwZXMgPSB0aGlzLm5hbWVDb252ZW50aW9uLnBhcnNlRGF0YVRvTmFtZUNvbnZlbnRpb24oc3FsdHlwZXMpO1xuXG4gICAgb3JkZXJieSA9IG9yZGVyYnkubWFwKG9yZGVyQnlJdGVtID0+IHRoaXMubmFtZUNvbnZlbnRpb24ucGFyc2VWYWx1ZXNEYXRhVG9OYW1lQ29udmVudGlvbihvcmRlckJ5SXRlbSkpO1xuXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy51cmxCYXNlfSR7dGhpcy5wYXRofS8ke2VudGl0eX0vYWR2YW5jZWRzZWFyY2hgO1xuXG4gICAgY29uc3QgYm9keSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGZpbHRlcjoga3YsXG4gICAgICBjb2x1bW5zOiBhdixcbiAgICAgIHNxbHR5cGVzOiBzcWx0eXBlcyxcbiAgICAgIG9mZnNldDogb2Zmc2V0LFxuICAgICAgcGFnZVNpemU6IHBhZ2VzaXplLFxuICAgICAgb3JkZXJCeTogb3JkZXJieVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuZG9SZXF1ZXN0KHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgdXJsOiB1cmwsXG4gICAgICBib2R5OiBib2R5LFxuICAgICAgc3VjY2Vzc0NhbGxiYWNrOiB0aGlzLnBhcnNlU3VjY2Vzc2Z1bEFkdmFuY2VkUXVlcnlSZXNwb25zZSxcbiAgICAgIGVycm9yQ2FsbEJhY2s6IHRoaXMucGFyc2VVbnN1Y2Nlc3NmdWxBZHZhbmNlZFF1ZXJ5UmVzcG9uc2VcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBpbnNlcnQoYXY6IG9iamVjdCA9IHt9LCBlbnRpdHk6IHN0cmluZywgc3FsdHlwZXM/OiBvYmplY3QpOiBPYnNlcnZhYmxlPFNlcnZpY2VSZXNwb25zZT4ge1xuXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy51cmxCYXNlfSR7dGhpcy5wYXRofS8ke2VudGl0eX1gO1xuXG4gICAgYXYgPSB0aGlzLm5hbWVDb252ZW50aW9uLnBhcnNlRGF0YVRvTmFtZUNvbnZlbnRpb24oYXYpO1xuICAgIHNxbHR5cGVzID0gdGhpcy5uYW1lQ29udmVudGlvbi5wYXJzZURhdGFUb05hbWVDb252ZW50aW9uKHNxbHR5cGVzKTtcblxuICAgIGNvbnN0IGJvZHkgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBkYXRhOiBhdixcbiAgICAgIHNxbHR5cGVzOiBzcWx0eXBlc1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuZG9SZXF1ZXN0KHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgdXJsOiB1cmwsXG4gICAgICBib2R5OiBib2R5LFxuICAgICAgc3VjY2Vzc0NhbGxiYWNrOiB0aGlzLnBhcnNlU3VjY2Vzc2Z1bEluc2VydFJlc3BvbnNlLFxuICAgICAgZXJyb3JDYWxsQmFjazogdGhpcy5wYXJzZVVuc3VjY2Vzc2Z1bEluc2VydFJlc3BvbnNlXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlKGt2OiBvYmplY3QgPSB7fSwgYXY6IG9iamVjdCA9IHt9LCBlbnRpdHk/OiBzdHJpbmcsIHNxbHR5cGVzPzogb2JqZWN0KTogT2JzZXJ2YWJsZTxTZXJ2aWNlUmVzcG9uc2U+IHtcblxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsQmFzZX0ke3RoaXMucGF0aH0vJHtlbnRpdHl9YDtcblxuICAgIGt2ID0gdGhpcy5uYW1lQ29udmVudGlvbi5wYXJzZURhdGFUb05hbWVDb252ZW50aW9uKGt2KTtcbiAgICBhdiA9IHRoaXMubmFtZUNvbnZlbnRpb24ucGFyc2VEYXRhVG9OYW1lQ29udmVudGlvbihhdik7XG4gICAgc3FsdHlwZXMgPSB0aGlzLm5hbWVDb252ZW50aW9uLnBhcnNlRGF0YVRvTmFtZUNvbnZlbnRpb24oc3FsdHlwZXMpO1xuXG4gICAgY29uc3QgYm9keSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGZpbHRlcjoga3YsXG4gICAgICBkYXRhOiBhdixcbiAgICAgIHNxbHR5cGVzOiBzcWx0eXBlc1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuZG9SZXF1ZXN0KHtcbiAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgICB1cmw6IHVybCxcbiAgICAgIGJvZHk6IGJvZHksXG4gICAgICBzdWNjZXNzQ2FsbGJhY2s6IHRoaXMucGFyc2VTdWNjZXNzZnVsVXBkYXRlUmVzcG9uc2UsXG4gICAgICBlcnJvckNhbGxCYWNrOiB0aGlzLnBhcnNlVW5zdWNjZXNzZnVsVXBkYXRlUmVzcG9uc2VcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGUoa3Y6IG9iamVjdCA9IHt9LCBlbnRpdHk/OiBzdHJpbmcsIHNxbHR5cGVzPzogb2JqZWN0KTogT2JzZXJ2YWJsZTxTZXJ2aWNlUmVzcG9uc2U+IHtcblxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsQmFzZX0ke3RoaXMucGF0aH0vJHtlbnRpdHl9YDtcblxuICAgIGt2ID0gdGhpcy5uYW1lQ29udmVudGlvbi5wYXJzZURhdGFUb05hbWVDb252ZW50aW9uKGt2KTtcbiAgICBzcWx0eXBlcyA9IHRoaXMubmFtZUNvbnZlbnRpb24ucGFyc2VEYXRhVG9OYW1lQ29udmVudGlvbihzcWx0eXBlcyk7XG5cbiAgICBjb25zdCBib2R5ID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgZmlsdGVyOiBrdixcbiAgICAgIHNxbHR5cGVzOiBzcWx0eXBlc1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuZG9SZXF1ZXN0KHtcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICB1cmw6IHVybCxcbiAgICAgIGJvZHk6IGJvZHksXG4gICAgICBzdWNjZXNzQ2FsbGJhY2s6IHRoaXMucGFyc2VTdWNjZXNzZnVsRGVsZXRlUmVzcG9uc2UsXG4gICAgICBlcnJvckNhbGxCYWNrOiB0aGlzLnBhcnNlVW5zdWNjZXNzZnVsRGVsZXRlUmVzcG9uc2VcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZEhlYWRlcnMoKTogSHR0cEhlYWRlcnMge1xuICAgIGxldCBoZWFkZXJzID0gc3VwZXIuYnVpbGRIZWFkZXJzKCk7XG4gICAgY29uc3Qgc2Vzc2lvbklkID0gdGhpcy5hdXRoU2VydmljZS5nZXRTZXNzaW9uSW5mbygpLmlkO1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZChzZXNzaW9uSWQpKSB7XG4gICAgICBoZWFkZXJzID0gaGVhZGVycy5hcHBlbmQoJ0F1dGhvcml6YXRpb24nLCAnQmVhcmVyICcgKyBzZXNzaW9uSWQpO1xuICAgIH1cbiAgICByZXR1cm4gaGVhZGVycztcbiAgfVxuXG59XG4iXX0=
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib250aW1pemUtZWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9zZXJ2aWNlcy9vbnRpbWl6ZS9vbnRpbWl6ZS1lZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXZDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFHcEUsTUFBTSxPQUFPLGlCQUFrQixTQUFRLG1CQUFtQjtJQUVqRCxnQkFBZ0IsQ0FBQyxNQUFXO1FBQ2pDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO1FBQzlHLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztJQUUxQixDQUFDO0lBRU0sWUFBWSxDQUFDLElBQVksRUFBRSxRQUFnQjtRQUNoRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUNsRCxNQUFNLE9BQU8sR0FBUTtZQUNuQixPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUM7Z0JBQ3ZCLGFBQWEsRUFBRSxRQUFRLEdBQUcsSUFB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LENBQUMsU0FBUyxDQUFDO1lBQ3BCLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLEdBQUcsRUFBRSxHQUFHO1lBQ1IsSUFBSSxFQUFFLElBQUk7WUFDVixlQUFlLEVBQUUsSUFBSSxDQUFDLDZCQUE2QjtZQUNuRCxhQUFhLEVBQUUsSUFBSSxDQUFDLCtCQUErQjtTQUNwRCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsWUFBWTtRQUNwQixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDdkQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzdCLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxTQUFTLEdBQUcsU0FBUyxDQUFDLENBQUM7U0FDbEU7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOzs4R0FoTVUsaUJBQWlCO2tIQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2hhcmUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IElEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZGF0YS1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZXJ2aWNlUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NlcnZpY2UtcmVzcG9uc2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgT250aW1pemVCYXNlU2VydmljZSB9IGZyb20gJy4vb250aW1pemUtYmFzZS1zZXJ2aWNlLmNsYXNzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9udGltaXplRUVTZXJ2aWNlIGV4dGVuZHMgT250aW1pemVCYXNlU2VydmljZSBpbXBsZW1lbnRzIElEYXRhU2VydmljZSB7XG5cbiAgcHVibGljIGNvbmZpZ3VyZVNlcnZpY2UoY29uZmlnOiBhbnkpOiB2b2lkIHtcbiAgICBzdXBlci5jb25maWd1cmVTZXJ2aWNlKGNvbmZpZyk7XG4gICAgdGhpcy5fc3RhcnRTZXNzaW9uUGF0aCA9IHRoaXMuX2FwcENvbmZpZy5zdGFydFNlc3Npb25QYXRoID8gdGhpcy5fYXBwQ29uZmlnLnN0YXJ0U2Vzc2lvblBhdGggOiAnL3VzZXJzL2xvZ2luJztcbiAgICB0aGlzLnBhdGggPSBjb25maWcucGF0aDtcbiAgICAvLyBUT0RPIGluaXQgb3RoZXIgcGFyYW1zXG4gIH1cblxuICBwdWJsaWMgc3RhcnRzZXNzaW9uKHVzZXI6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVtYmVyPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy51cmxCYXNlICsgdGhpcy5fc3RhcnRTZXNzaW9uUGF0aDtcbiAgICBjb25zdCBvcHRpb25zOiBhbnkgPSB7XG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICBBdXRob3JpemF0aW9uOiAnQmFzaWMgJyArIGJ0b2EodXNlciArICc6JyArIHBhc3N3b3JkKVxuICAgICAgfSksXG4gICAgICBvYnNlcnZlOiAncmVzcG9uc2UnXG4gICAgfTtcbiAgICBjb25zdCBkYXRhT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudW1iZXI+ID0gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuICAgICAgdGhpcy5odHRwQ2xpZW50LnBvc3QodXJsLCBudWxsLCBvcHRpb25zKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzcDogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKFV0aWwuaXNEZWZpbmVkKHJlc3ApICYmIFV0aWwuaXNEZWZpbmVkKHJlc3AuaGVhZGVycykgJiYgVXRpbC5pc0RlZmluZWQocmVzcC5oZWFkZXJzLmdldCgnWC1BdXRoLVRva2VuJykpKSB7XG4gICAgICAgICAgICBvYnNlcnZlci5uZXh0KHJlc3AuaGVhZGVycy5nZXQoJ1gtQXV0aC1Ub2tlbicpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gSW52YWxpZCBzZXNzaW9uSWQgLi4uXG4gICAgICAgICAgICBvYnNlcnZlci5lcnJvcignSW52YWxpZCB1c2VyIG9yIHBhc3N3b3JkJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCBlcnJvcjogKGVycm9yKSA9PiBvYnNlcnZlci5lcnJvcihlcnJvcilcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBkYXRhT2JzZXJ2YWJsZS5waXBlKHNoYXJlKCkpO1xuICB9XG5cbiAgcHVibGljIGVuZHNlc3Npb24odXNlcjogc3RyaW5nLCBzZXNzaW9uSWQ6IGFueSk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgY29uc3QgZGF0YU9ic2VydmFibGU6IE9ic2VydmFibGU8YW55PiA9IG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBvYnNlcnZlci5uZXh0KDApO1xuICAgICAgfSwgMCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGRhdGFPYnNlcnZhYmxlLnBpcGUoc2hhcmUoKSk7XG4gIH1cblxuICBwdWJsaWMgaGFzc2Vzc2lvbih1c2VyOiBzdHJpbmcsIHNlc3Npb25JZDogYW55KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgY29uc3QgZGF0YU9ic2VydmFibGU6IE9ic2VydmFibGU8YW55PiA9IG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgIG9ic2VydmVyLm5leHQodHJ1ZSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGRhdGFPYnNlcnZhYmxlLnBpcGUoc2hhcmUoKSk7XG4gIH1cblxuICBwdWJsaWMgcXVlcnkoa3Y/OiBvYmplY3QsIGF2PzogQXJyYXk8c3RyaW5nPiwgZW50aXR5Pzogc3RyaW5nLCBzcWx0eXBlcz86IG9iamVjdCk6IE9ic2VydmFibGU8U2VydmljZVJlc3BvbnNlPiB7XG4gICAgLy8gVE9ETyBpbXByb3ZlIHRoaXMgLT4gbWVyZ2UgYmV0d2VlbiBnbG9iYWwgY29uZiBhbmQgc3BlY2lmaWMgcGFyYW1zIG9mIG1ldGhvZCBjYWxsaW5nXG4gICAga3YgPSAoVXRpbC5pc0RlZmluZWQoa3YpKSA/IGt2IDogdGhpcy5rdjtcbiAgICBhdiA9IChVdGlsLmlzRGVmaW5lZChhdikpID8gYXYgOiB0aGlzLmF2O1xuICAgIHNxbHR5cGVzID0gKFV0aWwuaXNEZWZpbmVkKHNxbHR5cGVzKSkgPyBzcWx0eXBlcyA6IHRoaXMuc3FsdHlwZXM7XG5cbiAgICBrdiA9IHRoaXMubmFtZUNvbnZlbnRpb24ucGFyc2VGaWx0ZXJUb05hbWVDb252ZW50aW9uKGt2KTtcbiAgICBhdiA9IHRoaXMubmFtZUNvbnZlbnRpb24ucGFyc2VDb2x1bW5zVG9OYW1lQ29udmVudGlvbkZvck9udGltaXplKGF2KTtcbiAgICBzcWx0eXBlcyA9IHRoaXMubmFtZUNvbnZlbnRpb24ucGFyc2VEYXRhVG9OYW1lQ29udmVudGlvbihzcWx0eXBlcyk7XG5cbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnVybEJhc2V9JHt0aGlzLnBhdGh9LyR7ZW50aXR5fS9zZWFyY2hgO1xuXG4gICAgY29uc3QgYm9keSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGZpbHRlcjoga3YsXG4gICAgICBjb2x1bW5zOiBhdixcbiAgICAgIHNxbHR5cGVzOiBzcWx0eXBlc1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuZG9SZXF1ZXN0KHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgdXJsOiB1cmwsXG4gICAgICBib2R5OiBib2R5LFxuICAgICAgc3VjY2Vzc0NhbGxiYWNrOiB0aGlzLnBhcnNlU3VjY2Vzc2Z1bFF1ZXJ5UmVzcG9uc2UsXG4gICAgICBlcnJvckNhbGxCYWNrOiB0aGlzLnBhcnNlVW5zdWNjZXNzZnVsUXVlcnlSZXNwb25zZVxuICAgIH0pO1xuICB9XG5cbiAgcXVlcnlCeUlkKGt2Pzogb2JqZWN0LCBhdj86IHN0cmluZ1tdLCBlbnRpdHk/OiBzdHJpbmcsIHNxbHR5cGVzPzogb2JqZWN0KTogT2JzZXJ2YWJsZTxTZXJ2aWNlUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeShrdiwgYXYsIGVudGl0eSwgc3FsdHlwZXMpO1xuICB9XG5cblxuICBwdWJsaWMgYWR2YW5jZWRRdWVyeShrdj86IG9iamVjdCwgYXY/OiBBcnJheTxzdHJpbmc+LCBlbnRpdHk/OiBzdHJpbmcsIHNxbHR5cGVzPzogb2JqZWN0LFxuICAgIG9mZnNldD86IG51bWJlciwgcGFnZXNpemU/OiBudW1iZXIsIG9yZGVyYnk/OiBBcnJheTxvYmplY3Q+KTogT2JzZXJ2YWJsZTxTZXJ2aWNlUmVzcG9uc2U+IHtcblxuICAgIC8vIFRPRE8gaW1wcm92ZSB0aGlzIC0+IG1lcmdlIGJldHdlZW4gZ2xvYmFsIGNvbmYgYW5kIHNwZWNpZmljIHBhcmFtcyBvZiBtZXRob2QgY2FsbGluZ1xuICAgIGt2ID0gKFV0aWwuaXNEZWZpbmVkKGt2KSkgPyBrdiA6IHRoaXMua3Y7XG4gICAgYXYgPSAoVXRpbC5pc0RlZmluZWQoYXYpKSA/IGF2IDogdGhpcy5hdjtcbiAgICBzcWx0eXBlcyA9IChVdGlsLmlzRGVmaW5lZChzcWx0eXBlcykpID8gc3FsdHlwZXMgOiB0aGlzLnNxbHR5cGVzO1xuICAgIG9yZGVyYnkgPSAoVXRpbC5pc0RlZmluZWQob3JkZXJieSkpID8gb3JkZXJieSA6IHRoaXMub3JkZXJieTtcbiAgICBvZmZzZXQgPSAoVXRpbC5pc0RlZmluZWQob2Zmc2V0KSkgPyBvZmZzZXQgOiB0aGlzLm9mZnNldDtcbiAgICBwYWdlc2l6ZSA9IChVdGlsLmlzRGVmaW5lZChwYWdlc2l6ZSkpID8gcGFnZXNpemUgOiB0aGlzLnBhZ2VzaXplO1xuXG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKGt2KSAmJiAhVXRpbC5pc09iamVjdEVtcHR5KGt2KSkge1xuICAgICAga3Y9IHRoaXMubmFtZUNvbnZlbnRpb24ucGFyc2VGaWx0ZXJUb05hbWVDb252ZW50aW9uKGt2KTtcbiAgICB9XG5cbiAgICBhdiA9IHRoaXMubmFtZUNvbnZlbnRpb24ucGFyc2VDb2x1bW5zVG9OYW1lQ29udmVudGlvbkZvck9udGltaXplKGF2KTtcbiAgICBzcWx0eXBlcyA9IHRoaXMubmFtZUNvbnZlbnRpb24ucGFyc2VEYXRhVG9OYW1lQ29udmVudGlvbihzcWx0eXBlcyk7XG5cbiAgICBvcmRlcmJ5ID0gb3JkZXJieS5tYXAob3JkZXJCeUl0ZW0gPT4gdGhpcy5uYW1lQ29udmVudGlvbi5wYXJzZVZhbHVlc0RhdGFUb05hbWVDb252ZW50aW9uKG9yZGVyQnlJdGVtKSk7XG5cbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnVybEJhc2V9JHt0aGlzLnBhdGh9LyR7ZW50aXR5fS9hZHZhbmNlZHNlYXJjaGA7XG5cbiAgICBjb25zdCBib2R5ID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgZmlsdGVyOiBrdixcbiAgICAgIGNvbHVtbnM6IGF2LFxuICAgICAgc3FsdHlwZXM6IHNxbHR5cGVzLFxuICAgICAgb2Zmc2V0OiBvZmZzZXQsXG4gICAgICBwYWdlU2l6ZTogcGFnZXNpemUsXG4gICAgICBvcmRlckJ5OiBvcmRlcmJ5XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5kb1JlcXVlc3Qoe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICB1cmw6IHVybCxcbiAgICAgIGJvZHk6IGJvZHksXG4gICAgICBzdWNjZXNzQ2FsbGJhY2s6IHRoaXMucGFyc2VTdWNjZXNzZnVsQWR2YW5jZWRRdWVyeVJlc3BvbnNlLFxuICAgICAgZXJyb3JDYWxsQmFjazogdGhpcy5wYXJzZVVuc3VjY2Vzc2Z1bEFkdmFuY2VkUXVlcnlSZXNwb25zZVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGluc2VydChhdjogb2JqZWN0ID0ge30sIGVudGl0eTogc3RyaW5nLCBzcWx0eXBlcz86IG9iamVjdCk6IE9ic2VydmFibGU8U2VydmljZVJlc3BvbnNlPiB7XG5cbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnVybEJhc2V9JHt0aGlzLnBhdGh9LyR7ZW50aXR5fWA7XG5cbiAgICBhdiA9IHRoaXMubmFtZUNvbnZlbnRpb24ucGFyc2VEYXRhVG9OYW1lQ29udmVudGlvbihhdik7XG4gICAgc3FsdHlwZXMgPSB0aGlzLm5hbWVDb252ZW50aW9uLnBhcnNlRGF0YVRvTmFtZUNvbnZlbnRpb24oc3FsdHlwZXMpO1xuXG4gICAgY29uc3QgYm9keSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGRhdGE6IGF2LFxuICAgICAgc3FsdHlwZXM6IHNxbHR5cGVzXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5kb1JlcXVlc3Qoe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICB1cmw6IHVybCxcbiAgICAgIGJvZHk6IGJvZHksXG4gICAgICBzdWNjZXNzQ2FsbGJhY2s6IHRoaXMucGFyc2VTdWNjZXNzZnVsSW5zZXJ0UmVzcG9uc2UsXG4gICAgICBlcnJvckNhbGxCYWNrOiB0aGlzLnBhcnNlVW5zdWNjZXNzZnVsSW5zZXJ0UmVzcG9uc2VcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGUoa3Y6IG9iamVjdCA9IHt9LCBhdjogb2JqZWN0ID0ge30sIGVudGl0eT86IHN0cmluZywgc3FsdHlwZXM/OiBvYmplY3QpOiBPYnNlcnZhYmxlPFNlcnZpY2VSZXNwb25zZT4ge1xuXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy51cmxCYXNlfSR7dGhpcy5wYXRofS8ke2VudGl0eX1gO1xuXG4gICAga3YgPSB0aGlzLm5hbWVDb252ZW50aW9uLnBhcnNlRGF0YVRvTmFtZUNvbnZlbnRpb24oa3YpO1xuICAgIGF2ID0gdGhpcy5uYW1lQ29udmVudGlvbi5wYXJzZURhdGFUb05hbWVDb252ZW50aW9uKGF2KTtcbiAgICBzcWx0eXBlcyA9IHRoaXMubmFtZUNvbnZlbnRpb24ucGFyc2VEYXRhVG9OYW1lQ29udmVudGlvbihzcWx0eXBlcyk7XG5cbiAgICBjb25zdCBib2R5ID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgZmlsdGVyOiBrdixcbiAgICAgIGRhdGE6IGF2LFxuICAgICAgc3FsdHlwZXM6IHNxbHR5cGVzXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5kb1JlcXVlc3Qoe1xuICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgIHVybDogdXJsLFxuICAgICAgYm9keTogYm9keSxcbiAgICAgIHN1Y2Nlc3NDYWxsYmFjazogdGhpcy5wYXJzZVN1Y2Nlc3NmdWxVcGRhdGVSZXNwb25zZSxcbiAgICAgIGVycm9yQ2FsbEJhY2s6IHRoaXMucGFyc2VVbnN1Y2Nlc3NmdWxVcGRhdGVSZXNwb25zZVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZShrdjogb2JqZWN0ID0ge30sIGVudGl0eT86IHN0cmluZywgc3FsdHlwZXM/OiBvYmplY3QpOiBPYnNlcnZhYmxlPFNlcnZpY2VSZXNwb25zZT4ge1xuXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy51cmxCYXNlfSR7dGhpcy5wYXRofS8ke2VudGl0eX1gO1xuXG4gICAga3YgPSB0aGlzLm5hbWVDb252ZW50aW9uLnBhcnNlRGF0YVRvTmFtZUNvbnZlbnRpb24oa3YpO1xuICAgIHNxbHR5cGVzID0gdGhpcy5uYW1lQ29udmVudGlvbi5wYXJzZURhdGFUb05hbWVDb252ZW50aW9uKHNxbHR5cGVzKTtcblxuICAgIGNvbnN0IGJvZHkgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBmaWx0ZXI6IGt2LFxuICAgICAgc3FsdHlwZXM6IHNxbHR5cGVzXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5kb1JlcXVlc3Qoe1xuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgIHVybDogdXJsLFxuICAgICAgYm9keTogYm9keSxcbiAgICAgIHN1Y2Nlc3NDYWxsYmFjazogdGhpcy5wYXJzZVN1Y2Nlc3NmdWxEZWxldGVSZXNwb25zZSxcbiAgICAgIGVycm9yQ2FsbEJhY2s6IHRoaXMucGFyc2VVbnN1Y2Nlc3NmdWxEZWxldGVSZXNwb25zZVxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkSGVhZGVycygpOiBIdHRwSGVhZGVycyB7XG4gICAgbGV0IGhlYWRlcnMgPSBzdXBlci5idWlsZEhlYWRlcnMoKTtcbiAgICBjb25zdCBzZXNzaW9uSWQgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldFNlc3Npb25JbmZvKCkuaWQ7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHNlc3Npb25JZCkpIHtcbiAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLmFwcGVuZCgnQXV0aG9yaXphdGlvbicsICdCZWFyZXIgJyArIHNlc3Npb25JZCk7XG4gICAgfVxuICAgIHJldHVybiBoZWFkZXJzO1xuICB9XG5cbn1cbiJdfQ==
|