@tiba-spark/client-shared-lib 25.3.0-103 → 25.3.0-108
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/esm2022/libraries/guards/sub-module-guard.mjs +21 -10
- package/esm2022/libraries/modules/auth/auth.service.mjs +1 -1
- package/esm2022/libraries/modules/auth/session.actions.mjs +13 -3
- package/esm2022/libraries/modules/auth/session.state.mjs +43 -13
- package/esm2022/libraries/modules/login/login.actions.mjs +8 -1
- package/esm2022/libraries/modules/login/login.state.mjs +47 -10
- package/esm2022/libraries/modules/smartparks/smartpark.actions.mjs +27 -1
- package/esm2022/libraries/modules/smartparks/smartpark.state.mjs +42 -6
- package/esm2022/libraries/resolvers/mobile-command-center-module.resolver.mjs +17 -19
- package/esm2022/libraries/service-proxy/cloud-service-proxies.mjs +1342 -386
- package/esm2022/libraries/service-proxy/identity-service-proxies.mjs +100 -1
- package/esm2022/libraries/service-proxy/service-proxy.module.mjs +8 -4
- package/esm2022/libraries/services/auth-token.service.mjs +19 -3
- package/esm2022/libraries/services/tenant.service.mjs +12 -6
- package/fesm2022/tiba-spark-client-shared-lib.mjs +1617 -385
- package/fesm2022/tiba-spark-client-shared-lib.mjs.map +1 -1
- package/libraries/guards/sub-module-guard.d.ts +3 -1
- package/libraries/guards/sub-module-guard.d.ts.map +1 -1
- package/libraries/modules/auth/auth.service.d.ts.map +1 -1
- package/libraries/modules/auth/session.actions.d.ts +11 -2
- package/libraries/modules/auth/session.actions.d.ts.map +1 -1
- package/libraries/modules/auth/session.state.d.ts +7 -3
- package/libraries/modules/auth/session.state.d.ts.map +1 -1
- package/libraries/modules/login/login.actions.d.ts +6 -0
- package/libraries/modules/login/login.actions.d.ts.map +1 -1
- package/libraries/modules/login/login.state.d.ts +8 -5
- package/libraries/modules/login/login.state.d.ts.map +1 -1
- package/libraries/modules/smartparks/smartpark.actions.d.ts +19 -0
- package/libraries/modules/smartparks/smartpark.actions.d.ts.map +1 -1
- package/libraries/modules/smartparks/smartpark.state.d.ts +7 -3
- package/libraries/modules/smartparks/smartpark.state.d.ts.map +1 -1
- package/libraries/resolvers/mobile-command-center-module.resolver.d.ts +3 -5
- package/libraries/resolvers/mobile-command-center-module.resolver.d.ts.map +1 -1
- package/libraries/service-proxy/cloud-service-proxies.d.ts +140 -40
- package/libraries/service-proxy/cloud-service-proxies.d.ts.map +1 -1
- package/libraries/service-proxy/identity-service-proxies.d.ts +15 -0
- package/libraries/service-proxy/identity-service-proxies.d.ts.map +1 -1
- package/libraries/service-proxy/service-proxy.module.d.ts.map +1 -1
- package/libraries/services/auth-token.service.d.ts +4 -2
- package/libraries/services/auth-token.service.d.ts.map +1 -1
- package/libraries/services/tenant.service.d.ts +4 -1
- package/libraries/services/tenant.service.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -14,7 +14,7 @@ import { parseApiErrorMessage } from '../../utils/api-helper.util';
|
|
|
14
14
|
import { getDefaultDeviceStatus } from '../../utils/device.util';
|
|
15
15
|
import { ClearSelectedFacilityAction, SetSmartparkBasicAllAction } from '../facility/facility.actions';
|
|
16
16
|
import { MenuSubModuleLoadAction } from '../sidenav/sidenav.actions';
|
|
17
|
-
import { ClearSelectedParkAction, ClearSelectedSmartparkAction, ClearSmartparksBasicAction, ClearSpAndSparkVersionsAction, DisconnectSmartParkAction, ExportPdfSmartparksTableAction, ExportSmartparkAction, LoadMobileSmartparksBasicAction, LoadParkDevicesAction, LoadParksAction, LoadSmartparksAction, LoadSmartparksBasicAction, LoadSmartparksTableAction, LoadSpAndSparkVersionsAction, LoadVarsAction, SelectParkAction, SelectSmartParkAction, SetSmartParkAction, SetSmartParkTableAction, SetSmartParkVersionsAction, SmartParkDeviceStatusChangedAction, SyncUsersAndRolesBySmartparkIdAction } from './smartpark.actions';
|
|
17
|
+
import { ClearSelectedParkAction, ClearSelectedSmartparkAction, ClearSmartparksBasicAction, ClearSpAndSparkVersionsAction, DisconnectSmartParkAction, ExportPdfSmartparksTableAction, ExportSmartparkAction, LoadBackofficeSmartparksTableAction, LoadBackofficeSpAndSparkVersionsAction, LoadBackofficeVarsAction, LoadMobileSmartparksBasicAction, LoadParkDevicesAction, LoadParksAction, LoadSmartparksAction, LoadSmartparksBasicAction, LoadSmartparksTableAction, LoadSpAndSparkVersionsAction, LoadVarsAction, SelectParkAction, SelectSmartParkAction, SetSmartParkAction, SetSmartParkTableAction, SetSmartParkVersionsAction, SmartParkDeviceStatusChangedAction, SyncUsersAndRolesBySmartparkIdAction } from './smartpark.actions';
|
|
18
18
|
import * as i0 from "@angular/core";
|
|
19
19
|
import * as i1 from "@ngxs/store";
|
|
20
20
|
import * as i2 from "../../services/revenue.service";
|
|
@@ -26,7 +26,7 @@ import * as i7 from "@ngx-translate/core";
|
|
|
26
26
|
import * as i8 from "../../services/export-file.service";
|
|
27
27
|
import * as i9 from "../../service-proxy/identity-service-proxies";
|
|
28
28
|
let SmartparkState = class SmartparkState {
|
|
29
|
-
constructor(store, revenueService, cloudManagementServiceProxy, smartparkServiceProxy, facilityServiceProxy, deviceServiceProxy, messageBarService, routeService, translateService, exportFileService, mobileServiceProxyIdentity) {
|
|
29
|
+
constructor(store, revenueService, cloudManagementServiceProxy, smartparkServiceProxy, facilityServiceProxy, deviceServiceProxy, messageBarService, routeService, translateService, exportFileService, mobileServiceProxyIdentity, backofficeServiceProxy) {
|
|
30
30
|
this.store = store;
|
|
31
31
|
this.revenueService = revenueService;
|
|
32
32
|
this.cloudManagementServiceProxy = cloudManagementServiceProxy;
|
|
@@ -38,6 +38,7 @@ let SmartparkState = class SmartparkState {
|
|
|
38
38
|
this.translateService = translateService;
|
|
39
39
|
this.exportFileService = exportFileService;
|
|
40
40
|
this.mobileServiceProxyIdentity = mobileServiceProxyIdentity;
|
|
41
|
+
this.backofficeServiceProxy = backofficeServiceProxy;
|
|
41
42
|
}
|
|
42
43
|
static parks(state) {
|
|
43
44
|
return state.parks;
|
|
@@ -133,6 +134,16 @@ let SmartparkState = class SmartparkState {
|
|
|
133
134
|
});
|
|
134
135
|
}));
|
|
135
136
|
}
|
|
137
|
+
onLoadBackofficeSmartparksTableAction(ctx, { filter }) {
|
|
138
|
+
const smartparks$ = this.backofficeServiceProxy.getBackofficeSmartparks(filter);
|
|
139
|
+
return smartparks$.pipe(tap(smartparks => {
|
|
140
|
+
ctx.patchState({
|
|
141
|
+
latestSmartparks: smartparks.data.entities,
|
|
142
|
+
countSmartParks: smartparks.data.counter,
|
|
143
|
+
countParkingLots: smartparks.data.subCounter
|
|
144
|
+
});
|
|
145
|
+
}));
|
|
146
|
+
}
|
|
136
147
|
onSetSmartParkTableAction(ctx, { smartparks }) {
|
|
137
148
|
ctx.patchState({
|
|
138
149
|
smartparks
|
|
@@ -262,6 +273,14 @@ let SmartparkState = class SmartparkState {
|
|
|
262
273
|
}));
|
|
263
274
|
}
|
|
264
275
|
}
|
|
276
|
+
onLoadBackofficeSpAndSparkVersionsAction(ctx) {
|
|
277
|
+
if (ctx.getState().SpAndSparkVersions == null) {
|
|
278
|
+
const versions$ = this.backofficeServiceProxy.getBackofficeSpAndSparkVersions();
|
|
279
|
+
return versions$.pipe(tap(versions => {
|
|
280
|
+
ctx.patchState({ SpAndSparkVersions: versions.data });
|
|
281
|
+
}));
|
|
282
|
+
}
|
|
283
|
+
}
|
|
265
284
|
onClearSpAndSparkVersionsAction(ctx) {
|
|
266
285
|
ctx.patchState({
|
|
267
286
|
SpAndSparkVersions: null
|
|
@@ -275,8 +294,16 @@ let SmartparkState = class SmartparkState {
|
|
|
275
294
|
});
|
|
276
295
|
}));
|
|
277
296
|
}
|
|
297
|
+
onLoadBackofficeVarsAction(ctx, action) {
|
|
298
|
+
const vars$ = this.backofficeServiceProxy.getBackofficeVars(action.searchParamsDto.maxResults, action.searchParamsDto.searchTerm, action.searchParamsDto.orderBy.column, action.searchParamsDto.orderBy.orderDirection);
|
|
299
|
+
return vars$.pipe(tap(vars => {
|
|
300
|
+
ctx.patchState({
|
|
301
|
+
vars: vars.data
|
|
302
|
+
});
|
|
303
|
+
}));
|
|
304
|
+
}
|
|
278
305
|
onSyncUsersAndRolesBySmartparkIdAction(ctx, action) {
|
|
279
|
-
return this.
|
|
306
|
+
return this.backofficeServiceProxy.syncBackofficeUsersAndRolesBySmartparkId(action.smartpark.tenantID, action.smartpark.id).pipe(tap({
|
|
280
307
|
next: _ => this.messageBarService.success(Localization.successful_sync_users_and_roles_for_smartpark, { messageParams: { smartparkName: action.smartpark.name } }),
|
|
281
308
|
error: e => this.messageBarService.error(parseApiErrorMessage(e), { position: MessageBarPosition.Float }),
|
|
282
309
|
}));
|
|
@@ -327,7 +354,7 @@ let SmartparkState = class SmartparkState {
|
|
|
327
354
|
});
|
|
328
355
|
return countParkingLots;
|
|
329
356
|
}
|
|
330
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SmartparkState, deps: [{ token: i1.Store }, { token: i2.RevenueService }, { token: i3.CloudManagementServiceProxy }, { token: i3.SmartparkServiceProxy }, { token: i4.FacilityServiceProxy }, { token: i4.DeviceServiceProxy }, { token: i5.MessageBarService }, { token: i6.RouteService }, { token: i7.TranslateService }, { token: i8.ExportFileService }, { token: i9.MobileServiceProxyIdentity }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
357
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SmartparkState, deps: [{ token: i1.Store }, { token: i2.RevenueService }, { token: i3.CloudManagementServiceProxy }, { token: i3.SmartparkServiceProxy }, { token: i4.FacilityServiceProxy }, { token: i4.DeviceServiceProxy }, { token: i5.MessageBarService }, { token: i6.RouteService }, { token: i7.TranslateService }, { token: i8.ExportFileService }, { token: i9.MobileServiceProxyIdentity }, { token: i3.BackofficeServiceProxy }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
331
358
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SmartparkState }); }
|
|
332
359
|
};
|
|
333
360
|
__decorate([
|
|
@@ -345,6 +372,9 @@ __decorate([
|
|
|
345
372
|
__decorate([
|
|
346
373
|
Action(LoadSmartparksTableAction, { cancelUncompleted: true })
|
|
347
374
|
], SmartparkState.prototype, "onLoadSmartparksTableAction", null);
|
|
375
|
+
__decorate([
|
|
376
|
+
Action(LoadBackofficeSmartparksTableAction, { cancelUncompleted: true })
|
|
377
|
+
], SmartparkState.prototype, "onLoadBackofficeSmartparksTableAction", null);
|
|
348
378
|
__decorate([
|
|
349
379
|
Action(SetSmartParkTableAction)
|
|
350
380
|
], SmartparkState.prototype, "onSetSmartParkTableAction", null);
|
|
@@ -381,12 +411,18 @@ __decorate([
|
|
|
381
411
|
__decorate([
|
|
382
412
|
Action(LoadSpAndSparkVersionsAction)
|
|
383
413
|
], SmartparkState.prototype, "onLoadSpAndSparkVersionsAction", null);
|
|
414
|
+
__decorate([
|
|
415
|
+
Action(LoadBackofficeSpAndSparkVersionsAction)
|
|
416
|
+
], SmartparkState.prototype, "onLoadBackofficeSpAndSparkVersionsAction", null);
|
|
384
417
|
__decorate([
|
|
385
418
|
Action(ClearSpAndSparkVersionsAction)
|
|
386
419
|
], SmartparkState.prototype, "onClearSpAndSparkVersionsAction", null);
|
|
387
420
|
__decorate([
|
|
388
421
|
Action(LoadVarsAction, { cancelUncompleted: true })
|
|
389
422
|
], SmartparkState.prototype, "onLoadVarsAction", null);
|
|
423
|
+
__decorate([
|
|
424
|
+
Action(LoadBackofficeVarsAction, { cancelUncompleted: true })
|
|
425
|
+
], SmartparkState.prototype, "onLoadBackofficeVarsAction", null);
|
|
390
426
|
__decorate([
|
|
391
427
|
Action(SyncUsersAndRolesBySmartparkIdAction)
|
|
392
428
|
], SmartparkState.prototype, "onSyncUsersAndRolesBySmartparkIdAction", null);
|
|
@@ -469,5 +505,5 @@ SmartparkState = __decorate([
|
|
|
469
505
|
export { SmartparkState };
|
|
470
506
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SmartparkState, decorators: [{
|
|
471
507
|
type: Injectable
|
|
472
|
-
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.RevenueService }, { type: i3.CloudManagementServiceProxy }, { type: i3.SmartparkServiceProxy }, { type: i4.FacilityServiceProxy }, { type: i4.DeviceServiceProxy }, { type: i5.MessageBarService }, { type: i6.RouteService }, { type: i7.TranslateService }, { type: i8.ExportFileService }, { type: i9.MobileServiceProxyIdentity }], propDecorators: { onLoadSmartparksAction: [], onLoadSmartparksBasicAction: [], onLoadMobileSmartparksBasicAction: [], onClearSmartparksBasicAction: [], onLoadSmartparksTableAction: [], onSetSmartParkTableAction: [], onSetSmartParksAction: [], onSelectSmartParkAction: [], onLoadParksAction: [], onLoadParkDevices: [], onSelectParkAction: [], onClearSelectedParkAction: [], onClearSelectedsmartparkAction: [], onSmartParkDeviceStatusChangedAction: [], onDisconnectSmartparkAction: [], onSetSmartParkVersionsAction: [], onLoadSpAndSparkVersionsAction: [], onClearSpAndSparkVersionsAction: [], onLoadVarsAction: [], onSyncUsersAndRolesBySmartparkIdAction: [], onExportSmartparksAction: [], onExportPdfSmartparksTableAction: [] } });
|
|
473
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRwYXJrLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9tb2R1bGVzL3NtYXJ0cGFya3Mvc21hcnRwYXJrLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQXVCLE1BQU0sYUFBYSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsU0FBUyxFQUE4RyxlQUFlLEVBQUUsYUFBYSxFQUFpQyxNQUFNLDJDQUEyQyxDQUFDO0FBTWpQLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWpFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFN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LDhCQUE4QixNQVU5QiwrQkFBK0IsTUFPL0IsZ0JBQWdCLE1BV2hCLHNDQUFzQyxNQVF0Qyx3QkFBd0IsTUE0QnhCLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRlIH0gZnJvbSAnQG5neHMvcm91dGVyLXBsdWdpbic7XG5pbXBvcnQgeyBBY3Rpb24sIFNlbGVjdG9yLCBTdGF0ZSwgU3RhdGVDb250ZXh0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWVzc2FnZUJhclBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9tZXNzYWdlLWJhci9tZXNzYWdlLWJhci1wb3NpdGlvbi5lbnVtJztcbmltcG9ydCB7IE1lc3NhZ2VCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9tZXNzYWdlLWJhci9tZXNzYWdlLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7IFZFUlNJT05fVjEgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvdmVyc2lvbi1jb25zdGFudHMnO1xuaW1wb3J0IHsgU21hcnRQYXJrU3RhdHVzVGV4dCB9IGZyb20gJy4uLy4uL2VudW1zJztcbmltcG9ydCB7IExvY2FsaXphdGlvbiB9IGZyb20gJy4uLy4uL2VudW1zL2xvY2FsaXphdGlvbi5lbnVtJztcbmltcG9ydCB7IElQYXJrRGV0YWlscyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcGFyay1kZXRhaWxzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBNb2R1bGUsIENsb3VkTWFuYWdlbWVudFNlcnZpY2VQcm94eSwgRmFjaWxpdHlCYXNpY0R0bywgT2JqZWN0SHR0cFJlc3BvbnNlRGF0YSwgU21hcnRwYXJrRHRvLCBTbWFydHBhcmtTZXJ2aWNlUHJveHksIFNtYXJ0UGFya1N0YXR1cywgU21hcnRQYXJrVHlwZSwgU3BBbmRTcGFya1ZlcnNpb25zRHRvLCBWYXJEdG8gfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L2Nsb3VkLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBEZXZpY2VTZXJ2aWNlUHJveHksIEZhY2lsaXR5U2VydmljZVByb3h5LCBJRGV2aWNlRHRvLCBTbWFydHBhcmtCYXNpY0R0bywgU21hcnRQYXJrV3JhcHBlckR0byB9IGZyb20gJy4uLy4uL3NlcnZpY2UtcHJveHkvZWRnZS1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgTW9iaWxlU2VydmljZVByb3h5SWRlbnRpdHkgfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L2lkZW50aXR5LXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBFeHBvcnRGaWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V4cG9ydC1maWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmV2ZW51ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXZlbnVlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUm91dGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcm91dGUuc2VydmljZSc7XG5pbXBvcnQgeyBwYXJzZUFwaUVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWxzL2FwaS1oZWxwZXIudXRpbCc7XG5pbXBvcnQgeyBnZXREZWZhdWx0RGV2aWNlU3RhdHVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvZGV2aWNlLnV0aWwnO1xuaW1wb3J0IHsgU3RyaW5nTWFwIH0gZnJvbSAnLi4vLi4vdXRpbHMvbGFuZy51dGlsJztcbmltcG9ydCB7IENsZWFyU2VsZWN0ZWRGYWNpbGl0eUFjdGlvbiwgU2V0U21hcnRwYXJrQmFzaWNBbGxBY3Rpb24gfSBmcm9tICcuLi9mYWNpbGl0eS9mYWNpbGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IE1lbnVTdWJNb2R1bGVMb2FkQWN0aW9uIH0gZnJvbSAnLi4vc2lkZW5hdi9zaWRlbmF2LmFjdGlvbnMnO1xuaW1wb3J0IHtcbiAgQ2xlYXJTZWxlY3RlZFBhcmtBY3Rpb24sXG4gIENsZWFyU2VsZWN0ZWRTbWFydHBhcmtBY3Rpb24sXG4gIENsZWFyU21hcnRwYXJrc0Jhc2ljQWN0aW9uLCBDbGVhclNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbixcbiAgRGlzY29ubmVjdFNtYXJ0UGFya0FjdGlvbiwgRXhwb3J0UGRmU21hcnRwYXJrc1RhYmxlQWN0aW9uLCBFeHBvcnRTbWFydHBhcmtBY3Rpb24sIExvYWRNb2JpbGVTbWFydHBhcmtzQmFzaWNBY3Rpb24sIExvYWRQYXJrRGV2aWNlc0FjdGlvbiwgTG9hZFBhcmtzQWN0aW9uLCBMb2FkU21hcnRwYXJrc0FjdGlvbixcbiAgTG9hZFNtYXJ0cGFya3NCYXNpY0FjdGlvbiwgTG9hZFNtYXJ0cGFya3NUYWJsZUFjdGlvbiwgTG9hZFNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbiwgTG9hZFZhcnNBY3Rpb24sXG4gIFNlbGVjdFBhcmtBY3Rpb24sXG4gIFNlbGVjdFNtYXJ0UGFya0FjdGlvbiwgU2V0U21hcnRQYXJrQWN0aW9uLCBTZXRTbWFydFBhcmtUYWJsZUFjdGlvbiwgU2V0U21hcnRQYXJrVmVyc2lvbnNBY3Rpb24sXG4gIFNtYXJ0UGFya0RldmljZVN0YXR1c0NoYW5nZWRBY3Rpb24sXG4gIFN5bmNVc2Vyc0FuZFJvbGVzQnlTbWFydHBhcmtJZEFjdGlvblxufSBmcm9tICcuL3NtYXJ0cGFyay5hY3Rpb25zJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0cGFya3NTdGF0ZU1vZGVsIHtcbiAgc21hcnRwYXJrczogKFNtYXJ0cGFya0R0byB8IFNtYXJ0cGFya0Jhc2ljRHRvKVtdO1xuICBsYXRlc3RTbWFydHBhcmtzOiAoU21hcnRwYXJrRHRvIHwgU21hcnRwYXJrQmFzaWNEdG8pW107XG4gIFNwQW5kU3BhcmtWZXJzaW9uczogU3BBbmRTcGFya1ZlcnNpb25zRHRvO1xuICBjb3VudFNtYXJ0UGFya3M6IG51bWJlcjtcbiAgY291bnRQYXJraW5nTG90czogbnVtYmVyO1xuICBzZWxlY3RlZFNtYXJ0UGFya0lkOiBudW1iZXI7XG4gIHNlbGVjdGVkU21hcnRQYXJrOiBTbWFydHBhcmtEdG87XG4gIHBhcmtzOiBGYWNpbGl0eUJhc2ljRHRvW107XG4gIHNlbGVjdGVkUGFya0lkOiBudW1iZXI7XG4gIHNlbGVjdGVkUGFya0RldGFpbHM6IElQYXJrRGV0YWlscztcbiAgc21hcnRwYXJrR3VpZDogc3RyaW5nO1xuICB2ZXJzaW9uczogU3RyaW5nTWFwPHN0cmluZz47XG4gIHNtYXJ0UGFya1dyYXBwZXI6IFNtYXJ0UGFya1dyYXBwZXJEdG87XG4gIHZhcnM6IFZhckR0b1tdO1xuICBleHBvcnRQZGZTbWFydHBhcmtzOiAoU21hcnRwYXJrRHRvIHwgU21hcnRwYXJrQmFzaWNEdG8pW107XG59XG5cbkBJbmplY3RhYmxlKClcbkBTdGF0ZTxTbWFydHBhcmtzU3RhdGVNb2RlbD4oe1xuICBuYW1lOiAnc21hcnRwYXJrJyxcbiAgZGVmYXVsdHM6IHtcbiAgICBzbWFydHBhcmtzOiBudWxsLFxuICAgIGxhdGVzdFNtYXJ0cGFya3M6IG51bGwsXG4gICAgY291bnRTbWFydFBhcmtzOiAwLFxuICAgIGNvdW50UGFya2luZ0xvdHM6IDAsXG4gICAgc2VsZWN0ZWRTbWFydFBhcmtJZDogbnVsbCxcbiAgICBzZWxlY3RlZFNtYXJ0UGFyazogbnVsbCxcbiAgICBwYXJrczogbnVsbCxcbiAgICBzZWxlY3RlZFBhcmtJZDogbnVsbCxcbiAgICBzZWxlY3RlZFBhcmtEZXRhaWxzOiBudWxsLFxuICAgIHNtYXJ0cGFya0d1aWQ6IG51bGwsXG4gICAgdmVyc2lvbnM6IHt9LFxuICAgIFNwQW5kU3BhcmtWZXJzaW9uczogbnVsbCxcbiAgICBzbWFydFBhcmtXcmFwcGVyOiBudWxsLFxuICAgIHZhcnM6IFtdLFxuICAgIGV4cG9ydFBkZlNtYXJ0cGFya3M6IG51bGxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU21hcnRwYXJrU3RhdGUge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgcmV2ZW51ZVNlcnZpY2U6IFJldmVudWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2xvdWRNYW5hZ2VtZW50U2VydmljZVByb3h5OiBDbG91ZE1hbmFnZW1lbnRTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBzbWFydHBhcmtTZXJ2aWNlUHJveHk6IFNtYXJ0cGFya1NlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIGZhY2lsaXR5U2VydmljZVByb3h5OiBGYWNpbGl0eVNlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIGRldmljZVNlcnZpY2VQcm94eTogRGV2aWNlU2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgbWVzc2FnZUJhclNlcnZpY2U6IE1lc3NhZ2VCYXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVTZXJ2aWNlOiBSb3V0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZXhwb3J0RmlsZVNlcnZpY2U6IEV4cG9ydEZpbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbW9iaWxlU2VydmljZVByb3h5SWRlbnRpdHk6IE1vYmlsZVNlcnZpY2VQcm94eUlkZW50aXR5XG4gICkge1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBwYXJrcyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBGYWNpbGl0eUJhc2ljRHRvW10ge1xuICAgIHJldHVybiBzdGF0ZS5wYXJrcztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc2VsZWN0ZWRQYXJrSWQoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogbnVtYmVyIHtcbiAgICByZXR1cm4gc3RhdGUuc2VsZWN0ZWRQYXJrSWQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHNlbGVjdGVkUGFya0RldGFpbHMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogSVBhcmtEZXRhaWxzIHtcbiAgICByZXR1cm4gc3RhdGUuc2VsZWN0ZWRQYXJrRGV0YWlscztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgcGFya0RldmljZXMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogSURldmljZUR0b1tdIHtcbiAgICByZXR1cm4gc3RhdGUuc2VsZWN0ZWRQYXJrRGV0YWlscz8uZGV2aWNlcztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgZ3VpZChzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdGF0ZS5zbWFydHBhcmtHdWlkO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzbWFydHBhcmtzKHN0YXRlOiBTbWFydHBhcmtzU3RhdGVNb2RlbCk6IChTbWFydHBhcmtEdG8gfCBTbWFydHBhcmtCYXNpY0R0bylbXSB7XG4gICAgcmV0dXJuIHN0YXRlLnNtYXJ0cGFya3M7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGxhdGVzdFBhZ2Uoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogKFNtYXJ0cGFya0R0byB8IFNtYXJ0cGFya0Jhc2ljRHRvKVtdIHtcbiAgICByZXR1cm4gc3RhdGUubGF0ZXN0U21hcnRwYXJrcztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc2VsZWN0ZWRTbWFydFBhcmtJZChzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBudW1iZXIge1xuICAgIHJldHVybiBzdGF0ZS5zZWxlY3RlZFNtYXJ0UGFya0lkO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzZWxlY3RlZFNtYXJ0UGFya0RldGFpbHMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogU21hcnRwYXJrRHRvIHtcbiAgICByZXR1cm4gc3RhdGUuc2VsZWN0ZWRTbWFydFBhcms7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGNvdW50U21hcnRQYXJrcyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBudW1iZXIge1xuICAgIHJldHVybiBzdGF0ZS5jb3VudFNtYXJ0UGFya3M7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGNvdW50UGFya2luZ0xvdHMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogbnVtYmVyIHtcbiAgICByZXR1cm4gc3RhdGUuY291bnRQYXJraW5nTG90cztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgdmVyc2lvbnMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogU3RyaW5nTWFwPHN0cmluZz4ge1xuICAgIHJldHVybiBzdGF0ZS52ZXJzaW9ucztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc21hcnRwYXJrU2VhcmNoT3B0aW9ucyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBTcEFuZFNwYXJrVmVyc2lvbnNEdG8ge1xuICAgIHJldHVybiBzdGF0ZS5TcEFuZFNwYXJrVmVyc2lvbnM7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHNtYXJ0UGFya1dyYXBwZXIoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogU21hcnRQYXJrV3JhcHBlckR0byB7XG4gICAgcmV0dXJuIHN0YXRlLnNtYXJ0UGFya1dyYXBwZXI7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHZhcnMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogVmFyRHRvW10ge1xuICAgIHJldHVybiBzdGF0ZS52YXJzO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBleHBvcnRQZGZTbWFydHBhcmtzKHN0YXRlOiBTbWFydHBhcmtzU3RhdGVNb2RlbCk6IChTbWFydHBhcmtEdG8gfCBTbWFydHBhcmtCYXNpY0R0bylbXSB7XG4gICAgcmV0dXJuIHN0YXRlLmV4cG9ydFBkZlNtYXJ0cGFya3M7XG4gIH1cblxuICBAQWN0aW9uKExvYWRTbWFydHBhcmtzQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZFNtYXJ0cGFya3NBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IExvYWRTbWFydHBhcmtzQWN0aW9uKSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgc21hcnRwYXJrczogW10sXG4gICAgICBjb3VudFNtYXJ0UGFya3M6IDAsXG4gICAgICBjb3VudFBhcmtpbmdMb3RzOiB0aGlzLmNvdW50U21hcnRwYXJrRmFjaWxpdGllcyhbXSlcbiAgICB9KTtcblxuICAgIGNvbnN0IHNtYXJ0cGFya3MkID0gdGhpcy5zbWFydHBhcmtTZXJ2aWNlUHJveHkuZ2V0QWxsU21hcnRQYXJrcygpO1xuICAgIHJldHVybiBzbWFydHBhcmtzJC5waXBlKHRhcChzbWFydHBhcmtzID0+IHtcbiAgICAgIGN0eC5kaXNwYXRjaChuZXcgU2V0U21hcnRQYXJrQWN0aW9uKHNtYXJ0cGFya3MuZGF0YSwgYWN0aW9uLnJlbG9hZCkpO1xuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZFNtYXJ0cGFya3NCYXNpY0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWRTbWFydHBhcmtzQmFzaWNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IExvYWRTbWFydHBhcmtzQmFzaWNBY3Rpb24pIHtcbiAgICBjdHguZGlzcGF0Y2gobmV3IE1lbnVTdWJNb2R1bGVMb2FkQWN0aW9uKGFjdGlvbi5zdWJNb2R1bGUpKTtcbiAgICBjb25zdCBzbWFydHBhcmtzJCA9IHRoaXMuZmFjaWxpdHlTZXJ2aWNlUHJveHkuZ2V0U21hcnRwYXJrQmFzaWNBbGwoYWN0aW9uLmFwcE1vZHVsZSk7XG4gICAgcmV0dXJuIHNtYXJ0cGFya3MkLnBpcGUoc3dpdGNoTWFwKHNtYXJ0cGFya0Jhc2ljID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgc21hcnRQYXJrV3JhcHBlcjogc21hcnRwYXJrQmFzaWMuZGF0YSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNldFNtYXJ0cGFya0Jhc2ljQWxsQWN0aW9uKHNtYXJ0cGFya0Jhc2ljKSk7XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkTW9iaWxlU21hcnRwYXJrc0Jhc2ljQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZE1vYmlsZVNtYXJ0cGFya3NCYXNpY0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZE1vYmlsZVNtYXJ0cGFya3NCYXNpY0FjdGlvbikge1xuICAgIGN0eC5kaXNwYXRjaChuZXcgTWVudVN1Yk1vZHVsZUxvYWRBY3Rpb24oYWN0aW9uLnN1Yk1vZHVsZSkpO1xuICAgIGNvbnN0IHNtYXJ0cGFya3MkID0gdGhpcy5tb2JpbGVTZXJ2aWNlUHJveHlJZGVudGl0eS5mYWNpbGl0eUFsbE1vYmlsZShhY3Rpb24uYXBwTW9kdWxlLCBWRVJTSU9OX1YxKTtcbiAgICByZXR1cm4gc21hcnRwYXJrcyQucGlwZShzd2l0Y2hNYXAoc21hcnRwYXJrQmFzaWMgPT4ge1xuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICBzbWFydFBhcmtXcmFwcGVyOiBzbWFydHBhcmtCYXNpYy5kYXRhLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0U21hcnRwYXJrQmFzaWNBbGxBY3Rpb24oc21hcnRwYXJrQmFzaWMpKTtcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKENsZWFyU21hcnRwYXJrc0Jhc2ljQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uQ2xlYXJTbWFydHBhcmtzQmFzaWNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBfOiBDbGVhclNtYXJ0cGFya3NCYXNpY0FjdGlvbikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHNtYXJ0UGFya1dyYXBwZXI6IG51bGwsXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRTbWFydHBhcmtzVGFibGVBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkU21hcnRwYXJrc1RhYmxlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgeyBmaWx0ZXIgfTogTG9hZFNtYXJ0cGFya3NUYWJsZUFjdGlvbikge1xuICAgIGNvbnN0IHNtYXJ0cGFya3MkID0gdGhpcy5zbWFydHBhcmtTZXJ2aWNlUHJveHkuZ2V0U21hcnRwYXJrcyhmaWx0ZXIpO1xuICAgIHJldHVybiBzbWFydHBhcmtzJC5waXBlKHRhcChzbWFydHBhcmtzID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgbGF0ZXN0U21hcnRwYXJrczogc21hcnRwYXJrcy5kYXRhLmVudGl0aWVzLFxuICAgICAgICBjb3VudFNtYXJ0UGFya3M6IHNtYXJ0cGFya3MuZGF0YS5jb3VudGVyLFxuICAgICAgICBjb3VudFBhcmtpbmdMb3RzOiBzbWFydHBhcmtzLmRhdGEuc3ViQ291bnRlclxuICAgICAgfSk7XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihTZXRTbWFydFBhcmtUYWJsZUFjdGlvbilcbiAgb25TZXRTbWFydFBhcmtUYWJsZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIHsgc21hcnRwYXJrcyB9OiBTZXRTbWFydFBhcmtUYWJsZUFjdGlvbikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHNtYXJ0cGFya3NcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oU2V0U21hcnRQYXJrQWN0aW9uKVxuICBvblNldFNtYXJ0UGFya3NBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCB7IHNtYXJ0cGFya3MsIHJlbG9hZCB9OiBTZXRTbWFydFBhcmtBY3Rpb24pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBzbWFydHBhcmtzOiBzbWFydHBhcmtzIHx8IFtdLFxuICAgICAgY291bnRTbWFydFBhcmtzOiBzbWFydHBhcmtzPy5sZW5ndGggfHwgMCxcbiAgICAgIGNvdW50UGFya2luZ0xvdHM6IHRoaXMuY291bnRTbWFydHBhcmtGYWNpbGl0aWVzKHNtYXJ0cGFya3MpXG4gICAgfSk7XG5cbiAgICBpZiAoY3R4LmdldFN0YXRlKCkuc2VsZWN0ZWRTbWFydFBhcmtJZCkge1xuICAgICAgY3R4LmRpc3BhdGNoKG5ldyBTZWxlY3RTbWFydFBhcmtBY3Rpb24oY3R4LmdldFN0YXRlKCkuc2VsZWN0ZWRTbWFydFBhcmtJZCwgcmVsb2FkKSk7XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihTZWxlY3RTbWFydFBhcmtBY3Rpb24pXG4gIG9uU2VsZWN0U21hcnRQYXJrQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgYWN0aW9uOiBTZWxlY3RTbWFydFBhcmtBY3Rpb24pIHtcbiAgICBsZXQgc2VsZWN0ZWRTbWFydFBhcms7XG4gICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5jbGVhck1lc3NhZ2ViYXIoKTtcbiAgICBpZiAoY3R4LmdldFN0YXRlKCkuc21hcnRwYXJrcykge1xuICAgICAgc2VsZWN0ZWRTbWFydFBhcmsgPSBjdHguZ2V0U3RhdGUoKS5zbWFydHBhcmtzLmZpbmQoKHNtYXJ0cGFyaykgPT4gKHNtYXJ0cGFyayBhcyBTbWFydHBhcmtEdG8pLmlkID09PSBhY3Rpb24uc21hcnRQYXJrSWQpO1xuICAgICAgY3R4LnBhdGNoU3RhdGUoeyBzZWxlY3RlZFNtYXJ0UGFya0lkOiBhY3Rpb24uc21hcnRQYXJrSWQsIHNlbGVjdGVkU21hcnRQYXJrIH0pO1xuICAgICAgaWYgKGFjdGlvbi5yZWxvYWQpIHtcbiAgICAgICAgY3R4LmRpc3BhdGNoKG5ldyBMb2FkUGFya3NBY3Rpb24oKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihMb2FkUGFya3NBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkUGFya3NBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+KSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoeyBzZWxlY3RlZFBhcmtEZXRhaWxzOiBudWxsLCBzZWxlY3RlZFBhcmtJZDogbnVsbCB9KTtcblxuICAgIHJldHVybiB0aGlzLmZhY2lsaXR5U2VydmljZVByb3h5LmdldFNtYXJ0cGFya0Jhc2ljQWxsKEFwcE1vZHVsZS5NYW5hZ2VtZW50KS5waXBlKHRhcChzbWFydHBhcmtNYXAgPT4ge1xuICAgICAgY29uc3QgeyBndWlkLCB0eXBlIH0gPSBjdHguZ2V0U3RhdGUoKS5zZWxlY3RlZFNtYXJ0UGFyaztcbiAgICAgIGlmIChzbWFydHBhcmtNYXApIHtcbiAgICAgICAgbGV0IHNlbGVjdGVkUGFya0lkOiBudW1iZXI7XG4gICAgICAgIGNvbnN0IHBhcmtzID0gc21hcnRwYXJrTWFwLmRhdGEuc21hcnRQYXJrc1tndWlkXS5mYWNpbGl0aWVzO1xuICAgICAgICBpZiAodHlwZSA9PT0gU21hcnRQYXJrVHlwZS5TdXBlclBhcmspIHtcbiAgICAgICAgICBjb25zdCBtdWx0aVBhcmsgPSBwYXJrcy5maW5kKHBhcmsgPT4gcGFyay5pc011bHRpUGFyayk7XG4gICAgICAgICAgc2VsZWN0ZWRQYXJrSWQgPSBtdWx0aVBhcmsgPyBtdWx0aVBhcmsuaWQgOiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICAgIHBhcmtzOiBwYXJrcyB8fCBbXSxcbiAgICAgICAgICBzZWxlY3RlZFBhcmtJZDogc2VsZWN0ZWRQYXJrSWQgPz8gKHBhcmtzPy5sZW5ndGggJiYgcGFya3NbMF0uaWQgfHwgbnVsbCksXG4gICAgICAgICAgc21hcnRwYXJrR3VpZDogZ3VpZCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHBhcmtzPy5sZW5ndGgpIHtcbiAgICAgICAgICBjdHguZGlzcGF0Y2goTG9hZFBhcmtEZXZpY2VzQWN0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZFBhcmtEZXZpY2VzQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZFBhcmtEZXZpY2VzKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPikge1xuICAgIGNvbnN0IHBhcmtEZXRhaWwgPSBjdHguZ2V0U3RhdGUoKS5wYXJrcy5maW5kKChwYXJrKSA9PiBwYXJrLmlkID09PSBjdHguZ2V0U3RhdGUoKS5zZWxlY3RlZFBhcmtJZCk7XG4gICAgY29uc3QgZ3VpZCA9IGN0eC5nZXRTdGF0ZSgpLnNtYXJ0cGFya0d1aWQ7XG5cbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmZhY2lsaXR5U2VydmljZVByb3h5LmdldEZhY2lsaXR5KHBhcmtEZXRhaWwuaWQsIGd1aWQpLFxuICAgICAgdGhpcy5yZXZlbnVlU2VydmljZS5nZXRSZXZlbnVlKHBhcmtEZXRhaWwuaWQsIGd1aWQpLnBpcGUoZmlsdGVyKHJldmVudWUgPT4gISFyZXZlbnVlKSksXG4gICAgICB0aGlzLmRldmljZVNlcnZpY2VQcm94eS5nZXREZXZpY2VzKHBhcmtEZXRhaWwuaWQsIG51bGwsIG51bGwsIG51bGwsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBndWlkKSxcbiAgICBdKS5waXBlKHRhcCgoW2ZhY2lsaXR5LCByZXZlbnVlcywgZGV2aWNlc10pID0+IHtcbiAgICAgIGNvbnN0IHJldmVudWUgPSBwYXJrRGV0YWlsLmlzTXVsdGlQYXJrID09IDEgPyB0aGlzLnJldmVudWVTZXJ2aWNlLmNhbGN1bGF0ZVJldmVudWVGb3JNdWx0aVBhcmsocmV2ZW51ZXMpIDogcmV2ZW51ZXNbcGFya0RldGFpbC5pZF07XG4gICAgICBkZXZpY2VzPy5kYXRhLmZvckVhY2goZGV2aWNlID0+IGRldmljZS5kZXZpY2VTdGF0dXMgPSBkZXZpY2UuZGV2aWNlU3RhdHVzID8/IGdldERlZmF1bHREZXZpY2VTdGF0dXMoZGV2aWNlKSk7XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIHNlbGVjdGVkUGFya0RldGFpbHM6IHtcbiAgICAgICAgICBmYWNpbGl0eTogZmFjaWxpdHkuZGF0YSxcbiAgICAgICAgICBkZXZpY2VzOiBkZXZpY2VzLmRhdGEsXG4gICAgICAgICAgcmV2ZW51ZVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKFNlbGVjdFBhcmtBY3Rpb24pXG4gIG9uU2VsZWN0UGFya0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIGFjdGlvbjogU2VsZWN0UGFya0FjdGlvbikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHsgc2VsZWN0ZWRQYXJrSWQ6IGFjdGlvbi5wYXJrSWQgfSk7XG4gICAgY3R4LmRpc3BhdGNoKExvYWRQYXJrRGV2aWNlc0FjdGlvbik7XG4gIH1cblxuICBAQWN0aW9uKENsZWFyU2VsZWN0ZWRQYXJrQWN0aW9uKVxuICBvbkNsZWFyU2VsZWN0ZWRQYXJrQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHNlbGVjdGVkUGFya0RldGFpbHM6IG51bGwsXG4gICAgICBzZWxlY3RlZFBhcmtJZDogbnVsbCxcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oQ2xlYXJTZWxlY3RlZFNtYXJ0cGFya0FjdGlvbilcbiAgb25DbGVhclNlbGVjdGVkc21hcnRwYXJrQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHNlbGVjdGVkU21hcnRQYXJrSWQ6IG51bGwsXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKFNtYXJ0UGFya0RldmljZVN0YXR1c0NoYW5nZWRBY3Rpb24pXG4gIG9uU21hcnRQYXJrRGV2aWNlU3RhdHVzQ2hhbmdlZEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIGFjdGlvbjogU21hcnRQYXJrRGV2aWNlU3RhdHVzQ2hhbmdlZEFjdGlvbikge1xuICAgIGNvbnN0IHNlbGVjdGVkUGFya0RldGFpbHMgPSBjdHguZ2V0U3RhdGUoKS5zZWxlY3RlZFBhcmtEZXRhaWxzO1xuICAgIGlmIChzZWxlY3RlZFBhcmtEZXRhaWxzKSB7XG4gICAgICBjb25zdCBpbmRleCA9IHNlbGVjdGVkUGFya0RldGFpbHM/LmRldmljZXM/LmZpbmRJbmRleChkZXZpY2UgPT4gZGV2aWNlLmlkID09PSBhY3Rpb24uZGV2aWNlU3RhdHVzLmRldmljZUlEKTtcbiAgICAgIGNvbnN0IGNvbW11bmljYXRpb25QZXJjZW50YWdlID0gc2VsZWN0ZWRQYXJrRGV0YWlscy5kZXZpY2VzW2luZGV4XS5kZXZpY2VTdGF0dXMuY29tbXVuaWNhdGlvblBlcmNlbnRhZ2U7XG4gICAgICBjb25zdCBuZXdDb21tUGVyY2VudGFnZSA9IGFjdGlvbi5kZXZpY2VTdGF0dXMuY29tbXVuaWNhdGlvblBlcmNlbnRhZ2U7XG4gICAgICBpZiAoaW5kZXggPj0gMCAmJiBjb21tdW5pY2F0aW9uUGVyY2VudGFnZSAhPT0gbmV3Q29tbVBlcmNlbnRhZ2UpIHtcbiAgICAgICAgc2VsZWN0ZWRQYXJrRGV0YWlscy5kZXZpY2VzW2luZGV4XS5kZXZpY2VTdGF0dXMuY29tbXVuaWNhdGlvblBlcmNlbnRhZ2UgPSBuZXdDb21tUGVyY2VudGFnZTtcbiAgICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICAgIHNlbGVjdGVkUGFya0RldGFpbHM6IGNsb25lRGVlcChzZWxlY3RlZFBhcmtEZXRhaWxzKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihEaXNjb25uZWN0U21hcnRQYXJrQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uRGlzY29ubmVjdFNtYXJ0cGFya0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIHsgc21hcnRQYXJrR3VpZCwgc21hcnRQYXJrSWQsIHBhc3N3b3JkIH06IERpc2Nvbm5lY3RTbWFydFBhcmtBY3Rpb24pIHtcbiAgICBjb25zdCBzbWFydHBhcmskID0gdGhpcy5zbWFydHBhcmtTZXJ2aWNlUHJveHkuZGlzY29ubmVjdChwYXNzd29yZCwgc21hcnRQYXJrSWQsIFNtYXJ0UGFya1N0YXR1cy5Ob25hY3RpdmUpO1xuICAgIHJldHVybiBzbWFydHBhcmskLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6ICh2KSA9PiB7XG4gICAgICAgIGNvbnN0IHNtYXJ0cGFya3MgPSAoY3R4LmdldFN0YXRlKCkuc21hcnRwYXJrcyB8fCBbXSkuZmlsdGVyKHNwID0+IHNwLmd1aWQgIT09IHNtYXJ0UGFya0d1aWQpO1xuICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgc2VsZWN0ZWRTbWFydFBhcms6IG51bGwsXG4gICAgICAgICAgc2VsZWN0ZWRQYXJrSWQ6IG51bGwsXG4gICAgICAgICAgc21hcnRwYXJrcyxcbiAgICAgICAgICBjb3VudFNtYXJ0UGFya3M6IHNtYXJ0cGFya3M/Lmxlbmd0aCB8fCAwLFxuICAgICAgICAgIGNvdW50UGFya2luZ0xvdHM6IHRoaXMuY291bnRTbWFydHBhcmtGYWNpbGl0aWVzKHNtYXJ0cGFya3MpXG4gICAgICAgIH0pO1xuICAgICAgICBjdHguZGlzcGF0Y2gobmV3IENsZWFyU2VsZWN0ZWRGYWNpbGl0eUFjdGlvbigpKTtcbiAgICAgICAgY3R4LmRpc3BhdGNoKG5ldyBOYXZpZ2F0ZSh0aGlzLnJvdXRlU2VydmljZS5nZXROYXZpZ2F0aW9uUm91dGUoWydtYW5hZ2VtZW50JywgJ3NtYXJ0cGFya3MnXSkpKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihwYXJzZUFwaUVycm9yTWVzc2FnZShlKSwgeyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLlN0YXRpYywgaWQ6ICdtb2RhbCcgfSk7XG4gICAgICB9LFxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oU2V0U21hcnRQYXJrVmVyc2lvbnNBY3Rpb24pXG4gIG9uU2V0U21hcnRQYXJrVmVyc2lvbnNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IFNldFNtYXJ0UGFya1ZlcnNpb25zQWN0aW9uKSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgdmVyc2lvbnM6IGFjdGlvbi52ZXJzaW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZFNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbilcbiAgb25Mb2FkU3BBbmRTcGFya1ZlcnNpb25zQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPikge1xuICAgIGlmIChjdHguZ2V0U3RhdGUoKS5TcEFuZFNwYXJrVmVyc2lvbnMgPT0gbnVsbCkge1xuICAgICAgY29uc3QgdmVyc2lvbnMkID0gdGhpcy5zbWFydHBhcmtTZXJ2aWNlUHJveHkuZ2V0U3BBbmRTcGFya1ZlcnNpb25zKCk7XG4gICAgICByZXR1cm4gdmVyc2lvbnMkLnBpcGUodGFwKHZlcnNpb25zID0+IHtcbiAgICAgICAgY3R4LnBhdGNoU3RhdGUoeyBTcEFuZFNwYXJrVmVyc2lvbnM6IHZlcnNpb25zLmRhdGEgfSk7XG4gICAgICB9KSk7XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihDbGVhclNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbilcbiAgb25DbGVhclNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBTcEFuZFNwYXJrVmVyc2lvbnM6IG51bGxcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZFZhcnNBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkVmFyc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZFZhcnNBY3Rpb24pIHtcbiAgICBjb25zdCB2YXJzJCA9IHRoaXMuc21hcnRwYXJrU2VydmljZVByb3h5LnZhcnMoYWN0aW9uLnNlYXJjaFBhcmFtc0R0by5tYXhSZXN1bHRzLCBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvLnNlYXJjaFRlcm0sXG4gICAgICBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvLm9yZGVyQnkuY29sdW1uLCBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvLm9yZGVyQnkub3JkZXJEaXJlY3Rpb24pO1xuICAgIHJldHVybiB2YXJzJC5waXBlKHRhcCh2YXJzID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgdmFyczogdmFycy5kYXRhXG4gICAgICB9KTtcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKFN5bmNVc2Vyc0FuZFJvbGVzQnlTbWFydHBhcmtJZEFjdGlvbilcbiAgb25TeW5jVXNlcnNBbmRSb2xlc0J5U21hcnRwYXJrSWRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IFN5bmNVc2Vyc0FuZFJvbGVzQnlTbWFydHBhcmtJZEFjdGlvbik6IE9ic2VydmFibGU8T2JqZWN0SHR0cFJlc3BvbnNlRGF0YT4ge1xuICAgIHJldHVybiB0aGlzLmNsb3VkTWFuYWdlbWVudFNlcnZpY2VQcm94eS5zeW5jVXNlcnNBbmRSb2xlc0J5U21hcnRwYXJrSWQoYWN0aW9uLnNtYXJ0cGFyay50ZW5hbnRJRCwgYWN0aW9uLnNtYXJ0cGFyay5pZCkucGlwZSh0YXAoe1xuICAgICAgbmV4dDogXyA9PiB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLnN1Y2Nlc3MoTG9jYWxpemF0aW9uLnN1Y2Nlc3NmdWxfc3luY191c2Vyc19hbmRfcm9sZXNfZm9yX3NtYXJ0cGFyaywgeyBtZXNzYWdlUGFyYW1zOiB7IHNtYXJ0cGFya05hbWU6IGFjdGlvbi5zbWFydHBhcmsubmFtZSB9IH0pLFxuICAgICAgZXJyb3I6IGUgPT4gdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihwYXJzZUFwaUVycm9yTWVzc2FnZShlKSwgeyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLkZsb2F0IH0pLFxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oRXhwb3J0U21hcnRwYXJrQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uRXhwb3J0U21hcnRwYXJrc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIGFjdGlvbjogRXhwb3J0U21hcnRwYXJrQWN0aW9uKSB7XG4gICAgY29uc3Qgc21hcnRwYXJrcyQgPSB0aGlzLnNtYXJ0cGFya1NlcnZpY2VQcm94eS5nZXRTbWFydHBhcmtzKGFjdGlvbi5zbWFydHBhcmtGaWx0ZXIpO1xuICAgIHJldHVybiBzbWFydHBhcmtzJC5waXBlKHRhcCh7XG4gICAgICBuZXh0OiBzbWFydHBhcmtzID0+IHtcbiAgICAgICAgY29uc3QgdGFibGVSb3dzOiBhbnlbXVtdID0gW107XG4gICAgICAgIGNvbnN0IHNtYXJ0cGFya3NMaXN0OiBTbWFydHBhcmtEdG9bXSA9IHNtYXJ0cGFya3MuZGF0YS5lbnRpdGllcztcbiAgICAgICAgc21hcnRwYXJrc0xpc3QuZm9yRWFjaCgoc21hcnRwYXJrKSA9PiB7XG4gICAgICAgICAgdGFibGVSb3dzLnB1c2goW1xuICAgICAgICAgICAgc21hcnRwYXJrLm5hbWUsXG4gICAgICAgICAgICBTbWFydFBhcmtUeXBlW3NtYXJ0cGFyay50eXBlXS5yZXBsYWNlKC8oW0EtWl0pL2csICcgJDEnKS50cmltKCksXG4gICAgICAgICAgICBzbWFydHBhcmsudGVuYW50TmFtZSxcbiAgICAgICAgICAgIHNtYXJ0cGFyay52ZXJzaW9uLFxuICAgICAgICAgICAgc21hcnRwYXJrLnNwYXJrVmVyc2lvbixcbiAgICAgICAgICAgIHNtYXJ0cGFyay5jcmVhdGVkQXQsXG4gICAgICAgICAgICBzbWFydHBhcmsuZ3VpZCxcbiAgICAgICAgICAgIHNtYXJ0cGFyay52YXJOYW1lIHx8ICctJyxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFNtYXJ0UGFya1N0YXR1c1RleHRbU21hcnRQYXJrU3RhdHVzW3NtYXJ0cGFyay5zdGF0dXNdXSlcbiAgICAgICAgICBdKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZXhwb3J0RmlsZVNlcnZpY2UuZXhwb3J0KGFjdGlvbi5maWxlVHlwZSwgdGFibGVSb3dzLCBhY3Rpb24uY29sdW1uc0hlYWRlciwgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoTG9jYWxpemF0aW9uLnNtYXJ0cGFyaykpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoTG9jYWxpemF0aW9uLmZhaWxlZF9leHBvcnRfZmlsZSkpO1xuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oRXhwb3J0UGRmU21hcnRwYXJrc1RhYmxlQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uRXhwb3J0UGRmU21hcnRwYXJrc1RhYmxlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgeyBmaWx0ZXIgfTogRXhwb3J0UGRmU21hcnRwYXJrc1RhYmxlQWN0aW9uKSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgZXhwb3J0UGRmU21hcnRwYXJrczogbnVsbCxcbiAgICB9KTtcbiAgICBjb25zdCBzbWFydHBhcmtzJCA9IHRoaXMuc21hcnRwYXJrU2VydmljZVByb3h5LmdldFNtYXJ0cGFya3MoZmlsdGVyKTtcbiAgICByZXR1cm4gc21hcnRwYXJrcyQucGlwZSh0YXAoc21hcnRwYXJrcyA9PiB7XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIGV4cG9ydFBkZlNtYXJ0cGFya3M6IHNtYXJ0cGFya3MuZGF0YS5lbnRpdGllcyxcbiAgICAgIH0pO1xuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgY291bnRTbWFydHBhcmtGYWNpbGl0aWVzKHNtYXJ0cGFya3M6IChTbWFydHBhcmtEdG8gfCBTbWFydHBhcmtCYXNpY0R0bylbXSk6IG51bWJlciB7XG4gICAgbGV0IGNvdW50UGFya2luZ0xvdHMgPSAwO1xuICAgIHNtYXJ0cGFya3MuZm9yRWFjaChzbWFydFBhcmsgPT4ge1xuICAgICAgaWYgKHNtYXJ0UGFyay5mYWNpbGl0aWVzKSB7XG4gICAgICAgIGNvdW50UGFya2luZ0xvdHMgKz0gc21hcnRQYXJrLmZhY2lsaXRpZXMuZmlsdGVyKGYgPT4gIWYuaXNNdWx0aVBhcmspLmxlbmd0aDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gY291bnRQYXJraW5nTG90cztcbiAgfVxufVxuIl19
|
|
508
|
+
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.RevenueService }, { type: i3.CloudManagementServiceProxy }, { type: i3.SmartparkServiceProxy }, { type: i4.FacilityServiceProxy }, { type: i4.DeviceServiceProxy }, { type: i5.MessageBarService }, { type: i6.RouteService }, { type: i7.TranslateService }, { type: i8.ExportFileService }, { type: i9.MobileServiceProxyIdentity }, { type: i3.BackofficeServiceProxy }], propDecorators: { onLoadSmartparksAction: [], onLoadSmartparksBasicAction: [], onLoadMobileSmartparksBasicAction: [], onClearSmartparksBasicAction: [], onLoadSmartparksTableAction: [], onLoadBackofficeSmartparksTableAction: [], onSetSmartParkTableAction: [], onSetSmartParksAction: [], onSelectSmartParkAction: [], onLoadParksAction: [], onLoadParkDevices: [], onSelectParkAction: [], onClearSelectedParkAction: [], onClearSelectedsmartparkAction: [], onSmartParkDeviceStatusChangedAction: [], onDisconnectSmartparkAction: [], onSetSmartParkVersionsAction: [], onLoadSpAndSparkVersionsAction: [], onLoadBackofficeSpAndSparkVersionsAction: [], onClearSpAndSparkVersionsAction: [], onLoadVarsAction: [], onLoadBackofficeVarsAction: [], onSyncUsersAndRolesBySmartparkIdAction: [], onExportSmartparksAction: [], onExportPdfSmartparksTableAction: [] } });
|
|
509
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRwYXJrLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9tb2R1bGVzL3NtYXJ0cGFya3Mvc21hcnRwYXJrLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQXVCLE1BQU0sYUFBYSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsU0FBUyxFQUFzSSxlQUFlLEVBQUUsYUFBYSxFQUFpQyxNQUFNLDJDQUEyQyxDQUFDO0FBTXpRLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWpFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFN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QUFFLElBQUk7WUFDWCxjQUFjLEVBQUUsSUFBSTtZQUNwQixtQkFBbUIsRUFBRSxJQUFJO1lBQ3pCLGFBQWEsRUFBRSxJQUFJO1lBQ25CLFFBQVEsRUFBRSxFQUFFO1lBQ1osa0JBQWtCLEVBQUUsSUFBSTtZQUN4QixnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLElBQUksRUFBRSxFQUFFO1lBQ1IsbUJBQW1CLEVBQUUsSUFBSTtTQUMxQjtLQUNGLENBQUM7R0FDVyxjQUFjLENBeWExQjs7NEZBemFZLGNBQWM7a0JBckIxQixVQUFVO2ljQXdIVCxzQkFBc0IsTUFjdEIsMkJBQTJCLE1BWTNCLGlDQUFpQyxNQVlqQyw0QkFBNEIsTUFPNUIsMkJBQTJCLE1BWTNCLHFDQUFxQyxNQWFyQyx5QkFBeUIsTUFPekIscUJBQXFCLE1BYXJCLHVCQUF1QixNQWF2QixpQkFBaUIsTUEyQmpCLGlCQUFpQixNQXNCakIsa0JBQWtCLE1BTWxCLHlCQUF5QixNQVF6Qiw4QkFBOEIsTUFPOUIsb0NBQW9DLE1BZ0JwQywyQkFBMkIsTUFzQjNCLDRCQUE0QixNQU81Qiw4QkFBOEIsTUFVOUIsd0NBQXdDLE1BVXhDLCtCQUErQixNQU8vQixnQkFBZ0IsTUFZaEIsMEJBQTBCLE1BWTFCLHNDQUFzQyxNQVF0Qyx3QkFBd0IsTUE0QnhCLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRlIH0gZnJvbSAnQG5neHMvcm91dGVyLXBsdWdpbic7XG5pbXBvcnQgeyBBY3Rpb24sIFNlbGVjdG9yLCBTdGF0ZSwgU3RhdGVDb250ZXh0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWVzc2FnZUJhclBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9tZXNzYWdlLWJhci9tZXNzYWdlLWJhci1wb3NpdGlvbi5lbnVtJztcbmltcG9ydCB7IE1lc3NhZ2VCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9tZXNzYWdlLWJhci9tZXNzYWdlLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7IFZFUlNJT05fVjEgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvdmVyc2lvbi1jb25zdGFudHMnO1xuaW1wb3J0IHsgU21hcnRQYXJrU3RhdHVzVGV4dCB9IGZyb20gJy4uLy4uL2VudW1zJztcbmltcG9ydCB7IExvY2FsaXphdGlvbiB9IGZyb20gJy4uLy4uL2VudW1zL2xvY2FsaXphdGlvbi5lbnVtJztcbmltcG9ydCB7IElQYXJrRGV0YWlscyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcGFyay1kZXRhaWxzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBNb2R1bGUsIEJhY2tvZmZpY2VTZXJ2aWNlUHJveHksIENsb3VkTWFuYWdlbWVudFNlcnZpY2VQcm94eSwgRmFjaWxpdHlCYXNpY0R0bywgT2JqZWN0SHR0cFJlc3BvbnNlRGF0YSwgU21hcnRwYXJrRHRvLCBTbWFydHBhcmtTZXJ2aWNlUHJveHksIFNtYXJ0UGFya1N0YXR1cywgU21hcnRQYXJrVHlwZSwgU3BBbmRTcGFya1ZlcnNpb25zRHRvLCBWYXJEdG8gfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L2Nsb3VkLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBEZXZpY2VTZXJ2aWNlUHJveHksIEZhY2lsaXR5U2VydmljZVByb3h5LCBJRGV2aWNlRHRvLCBTbWFydHBhcmtCYXNpY0R0bywgU21hcnRQYXJrV3JhcHBlckR0byB9IGZyb20gJy4uLy4uL3NlcnZpY2UtcHJveHkvZWRnZS1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgTW9iaWxlU2VydmljZVByb3h5SWRlbnRpdHkgfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L2lkZW50aXR5LXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBFeHBvcnRGaWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V4cG9ydC1maWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmV2ZW51ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXZlbnVlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUm91dGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcm91dGUuc2VydmljZSc7XG5pbXBvcnQgeyBwYXJzZUFwaUVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWxzL2FwaS1oZWxwZXIudXRpbCc7XG5pbXBvcnQgeyBnZXREZWZhdWx0RGV2aWNlU3RhdHVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvZGV2aWNlLnV0aWwnO1xuaW1wb3J0IHsgU3RyaW5nTWFwIH0gZnJvbSAnLi4vLi4vdXRpbHMvbGFuZy51dGlsJztcbmltcG9ydCB7IENsZWFyU2VsZWN0ZWRGYWNpbGl0eUFjdGlvbiwgU2V0U21hcnRwYXJrQmFzaWNBbGxBY3Rpb24gfSBmcm9tICcuLi9mYWNpbGl0eS9mYWNpbGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IE1lbnVTdWJNb2R1bGVMb2FkQWN0aW9uIH0gZnJvbSAnLi4vc2lkZW5hdi9zaWRlbmF2LmFjdGlvbnMnO1xuaW1wb3J0IHtcbiAgQ2xlYXJTZWxlY3RlZFBhcmtBY3Rpb24sXG4gIENsZWFyU2VsZWN0ZWRTbWFydHBhcmtBY3Rpb24sXG4gIENsZWFyU21hcnRwYXJrc0Jhc2ljQWN0aW9uLCBDbGVhclNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbixcbiAgRGlzY29ubmVjdFNtYXJ0UGFya0FjdGlvbiwgRXhwb3J0UGRmU21hcnRwYXJrc1RhYmxlQWN0aW9uLCBFeHBvcnRTbWFydHBhcmtBY3Rpb24sIExvYWRCYWNrb2ZmaWNlU21hcnRwYXJrc1RhYmxlQWN0aW9uLCBMb2FkQmFja29mZmljZVNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbiwgTG9hZEJhY2tvZmZpY2VWYXJzQWN0aW9uLCBMb2FkTW9iaWxlU21hcnRwYXJrc0Jhc2ljQWN0aW9uLCBMb2FkUGFya0RldmljZXNBY3Rpb24sIExvYWRQYXJrc0FjdGlvbiwgTG9hZFNtYXJ0cGFya3NBY3Rpb24sXG4gIExvYWRTbWFydHBhcmtzQmFzaWNBY3Rpb24sIExvYWRTbWFydHBhcmtzVGFibGVBY3Rpb24sIExvYWRTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24sIExvYWRWYXJzQWN0aW9uLFxuICBTZWxlY3RQYXJrQWN0aW9uLFxuICBTZWxlY3RTbWFydFBhcmtBY3Rpb24sIFNldFNtYXJ0UGFya0FjdGlvbiwgU2V0U21hcnRQYXJrVGFibGVBY3Rpb24sIFNldFNtYXJ0UGFya1ZlcnNpb25zQWN0aW9uLFxuICBTbWFydFBhcmtEZXZpY2VTdGF0dXNDaGFuZ2VkQWN0aW9uLFxuICBTeW5jVXNlcnNBbmRSb2xlc0J5U21hcnRwYXJrSWRBY3Rpb25cbn0gZnJvbSAnLi9zbWFydHBhcmsuYWN0aW9ucyc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBTbWFydHBhcmtzU3RhdGVNb2RlbCB7XG4gIHNtYXJ0cGFya3M6IChTbWFydHBhcmtEdG8gfCBTbWFydHBhcmtCYXNpY0R0bylbXTtcbiAgbGF0ZXN0U21hcnRwYXJrczogKFNtYXJ0cGFya0R0byB8IFNtYXJ0cGFya0Jhc2ljRHRvKVtdO1xuICBTcEFuZFNwYXJrVmVyc2lvbnM6IFNwQW5kU3BhcmtWZXJzaW9uc0R0bztcbiAgY291bnRTbWFydFBhcmtzOiBudW1iZXI7XG4gIGNvdW50UGFya2luZ0xvdHM6IG51bWJlcjtcbiAgc2VsZWN0ZWRTbWFydFBhcmtJZDogbnVtYmVyO1xuICBzZWxlY3RlZFNtYXJ0UGFyazogU21hcnRwYXJrRHRvO1xuICBwYXJrczogRmFjaWxpdHlCYXNpY0R0b1tdO1xuICBzZWxlY3RlZFBhcmtJZDogbnVtYmVyO1xuICBzZWxlY3RlZFBhcmtEZXRhaWxzOiBJUGFya0RldGFpbHM7XG4gIHNtYXJ0cGFya0d1aWQ6IHN0cmluZztcbiAgdmVyc2lvbnM6IFN0cmluZ01hcDxzdHJpbmc+O1xuICBzbWFydFBhcmtXcmFwcGVyOiBTbWFydFBhcmtXcmFwcGVyRHRvO1xuICB2YXJzOiBWYXJEdG9bXTtcbiAgZXhwb3J0UGRmU21hcnRwYXJrczogKFNtYXJ0cGFya0R0byB8IFNtYXJ0cGFya0Jhc2ljRHRvKVtdO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5AU3RhdGU8U21hcnRwYXJrc1N0YXRlTW9kZWw+KHtcbiAgbmFtZTogJ3NtYXJ0cGFyaycsXG4gIGRlZmF1bHRzOiB7XG4gICAgc21hcnRwYXJrczogbnVsbCxcbiAgICBsYXRlc3RTbWFydHBhcmtzOiBudWxsLFxuICAgIGNvdW50U21hcnRQYXJrczogMCxcbiAgICBjb3VudFBhcmtpbmdMb3RzOiAwLFxuICAgIHNlbGVjdGVkU21hcnRQYXJrSWQ6IG51bGwsXG4gICAgc2VsZWN0ZWRTbWFydFBhcms6IG51bGwsXG4gICAgcGFya3M6IG51bGwsXG4gICAgc2VsZWN0ZWRQYXJrSWQ6IG51bGwsXG4gICAgc2VsZWN0ZWRQYXJrRGV0YWlsczogbnVsbCxcbiAgICBzbWFydHBhcmtHdWlkOiBudWxsLFxuICAgIHZlcnNpb25zOiB7fSxcbiAgICBTcEFuZFNwYXJrVmVyc2lvbnM6IG51bGwsXG4gICAgc21hcnRQYXJrV3JhcHBlcjogbnVsbCxcbiAgICB2YXJzOiBbXSxcbiAgICBleHBvcnRQZGZTbWFydHBhcmtzOiBudWxsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFNtYXJ0cGFya1N0YXRlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIHJldmVudWVTZXJ2aWNlOiBSZXZlbnVlU2VydmljZSxcbiAgICBwcml2YXRlIGNsb3VkTWFuYWdlbWVudFNlcnZpY2VQcm94eTogQ2xvdWRNYW5hZ2VtZW50U2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgc21hcnRwYXJrU2VydmljZVByb3h5OiBTbWFydHBhcmtTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBmYWNpbGl0eVNlcnZpY2VQcm94eTogRmFjaWxpdHlTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBkZXZpY2VTZXJ2aWNlUHJveHk6IERldmljZVNlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIG1lc3NhZ2VCYXJTZXJ2aWNlOiBNZXNzYWdlQmFyU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlU2VydmljZTogUm91dGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGV4cG9ydEZpbGVTZXJ2aWNlOiBFeHBvcnRGaWxlU2VydmljZSxcbiAgICBwcml2YXRlIG1vYmlsZVNlcnZpY2VQcm94eUlkZW50aXR5OiBNb2JpbGVTZXJ2aWNlUHJveHlJZGVudGl0eSxcbiAgICBwcml2YXRlIGJhY2tvZmZpY2VTZXJ2aWNlUHJveHk6IEJhY2tvZmZpY2VTZXJ2aWNlUHJveHksXG4gICkge1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBwYXJrcyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBGYWNpbGl0eUJhc2ljRHRvW10ge1xuICAgIHJldHVybiBzdGF0ZS5wYXJrcztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc2VsZWN0ZWRQYXJrSWQoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogbnVtYmVyIHtcbiAgICByZXR1cm4gc3RhdGUuc2VsZWN0ZWRQYXJrSWQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHNlbGVjdGVkUGFya0RldGFpbHMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogSVBhcmtEZXRhaWxzIHtcbiAgICByZXR1cm4gc3RhdGUuc2VsZWN0ZWRQYXJrRGV0YWlscztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgcGFya0RldmljZXMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogSURldmljZUR0b1tdIHtcbiAgICByZXR1cm4gc3RhdGUuc2VsZWN0ZWRQYXJrRGV0YWlscz8uZGV2aWNlcztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgZ3VpZChzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdGF0ZS5zbWFydHBhcmtHdWlkO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzbWFydHBhcmtzKHN0YXRlOiBTbWFydHBhcmtzU3RhdGVNb2RlbCk6IChTbWFydHBhcmtEdG8gfCBTbWFydHBhcmtCYXNpY0R0bylbXSB7XG4gICAgcmV0dXJuIHN0YXRlLnNtYXJ0cGFya3M7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGxhdGVzdFBhZ2Uoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogKFNtYXJ0cGFya0R0byB8IFNtYXJ0cGFya0Jhc2ljRHRvKVtdIHtcbiAgICByZXR1cm4gc3RhdGUubGF0ZXN0U21hcnRwYXJrcztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc2VsZWN0ZWRTbWFydFBhcmtJZChzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBudW1iZXIge1xuICAgIHJldHVybiBzdGF0ZS5zZWxlY3RlZFNtYXJ0UGFya0lkO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzZWxlY3RlZFNtYXJ0UGFya0RldGFpbHMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogU21hcnRwYXJrRHRvIHtcbiAgICByZXR1cm4gc3RhdGUuc2VsZWN0ZWRTbWFydFBhcms7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGNvdW50U21hcnRQYXJrcyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBudW1iZXIge1xuICAgIHJldHVybiBzdGF0ZS5jb3VudFNtYXJ0UGFya3M7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGNvdW50UGFya2luZ0xvdHMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogbnVtYmVyIHtcbiAgICByZXR1cm4gc3RhdGUuY291bnRQYXJraW5nTG90cztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgdmVyc2lvbnMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogU3RyaW5nTWFwPHN0cmluZz4ge1xuICAgIHJldHVybiBzdGF0ZS52ZXJzaW9ucztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc21hcnRwYXJrU2VhcmNoT3B0aW9ucyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBTcEFuZFNwYXJrVmVyc2lvbnNEdG8ge1xuICAgIHJldHVybiBzdGF0ZS5TcEFuZFNwYXJrVmVyc2lvbnM7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHNtYXJ0UGFya1dyYXBwZXIoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogU21hcnRQYXJrV3JhcHBlckR0byB7XG4gICAgcmV0dXJuIHN0YXRlLnNtYXJ0UGFya1dyYXBwZXI7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHZhcnMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogVmFyRHRvW10ge1xuICAgIHJldHVybiBzdGF0ZS52YXJzO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBleHBvcnRQZGZTbWFydHBhcmtzKHN0YXRlOiBTbWFydHBhcmtzU3RhdGVNb2RlbCk6IChTbWFydHBhcmtEdG8gfCBTbWFydHBhcmtCYXNpY0R0bylbXSB7XG4gICAgcmV0dXJuIHN0YXRlLmV4cG9ydFBkZlNtYXJ0cGFya3M7XG4gIH1cblxuICBAQWN0aW9uKExvYWRTbWFydHBhcmtzQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZFNtYXJ0cGFya3NBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IExvYWRTbWFydHBhcmtzQWN0aW9uKSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgc21hcnRwYXJrczogW10sXG4gICAgICBjb3VudFNtYXJ0UGFya3M6IDAsXG4gICAgICBjb3VudFBhcmtpbmdMb3RzOiB0aGlzLmNvdW50U21hcnRwYXJrRmFjaWxpdGllcyhbXSlcbiAgICB9KTtcblxuICAgIGNvbnN0IHNtYXJ0cGFya3MkID0gdGhpcy5zbWFydHBhcmtTZXJ2aWNlUHJveHkuZ2V0QWxsU21hcnRQYXJrcygpO1xuICAgIHJldHVybiBzbWFydHBhcmtzJC5waXBlKHRhcChzbWFydHBhcmtzID0+IHtcbiAgICAgIGN0eC5kaXNwYXRjaChuZXcgU2V0U21hcnRQYXJrQWN0aW9uKHNtYXJ0cGFya3MuZGF0YSwgYWN0aW9uLnJlbG9hZCkpO1xuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZFNtYXJ0cGFya3NCYXNpY0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWRTbWFydHBhcmtzQmFzaWNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IExvYWRTbWFydHBhcmtzQmFzaWNBY3Rpb24pIHtcbiAgICBjdHguZGlzcGF0Y2gobmV3IE1lbnVTdWJNb2R1bGVMb2FkQWN0aW9uKGFjdGlvbi5zdWJNb2R1bGUpKTtcbiAgICBjb25zdCBzbWFydHBhcmtzJCA9IHRoaXMuZmFjaWxpdHlTZXJ2aWNlUHJveHkuZ2V0U21hcnRwYXJrQmFzaWNBbGwoYWN0aW9uLmFwcE1vZHVsZSk7XG4gICAgcmV0dXJuIHNtYXJ0cGFya3MkLnBpcGUoc3dpdGNoTWFwKHNtYXJ0cGFya0Jhc2ljID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgc21hcnRQYXJrV3JhcHBlcjogc21hcnRwYXJrQmFzaWMuZGF0YSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNldFNtYXJ0cGFya0Jhc2ljQWxsQWN0aW9uKHNtYXJ0cGFya0Jhc2ljKSk7XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkTW9iaWxlU21hcnRwYXJrc0Jhc2ljQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZE1vYmlsZVNtYXJ0cGFya3NCYXNpY0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZE1vYmlsZVNtYXJ0cGFya3NCYXNpY0FjdGlvbikge1xuICAgIGN0eC5kaXNwYXRjaChuZXcgTWVudVN1Yk1vZHVsZUxvYWRBY3Rpb24oYWN0aW9uLnN1Yk1vZHVsZSkpO1xuICAgIGNvbnN0IHNtYXJ0cGFya3MkID0gdGhpcy5tb2JpbGVTZXJ2aWNlUHJveHlJZGVudGl0eS5mYWNpbGl0eUFsbE1vYmlsZShhY3Rpb24uYXBwTW9kdWxlLCBWRVJTSU9OX1YxKTtcbiAgICByZXR1cm4gc21hcnRwYXJrcyQucGlwZShzd2l0Y2hNYXAoc21hcnRwYXJrQmFzaWMgPT4ge1xuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICBzbWFydFBhcmtXcmFwcGVyOiBzbWFydHBhcmtCYXNpYy5kYXRhLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0U21hcnRwYXJrQmFzaWNBbGxBY3Rpb24oc21hcnRwYXJrQmFzaWMpKTtcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKENsZWFyU21hcnRwYXJrc0Jhc2ljQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uQ2xlYXJTbWFydHBhcmtzQmFzaWNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBfOiBDbGVhclNtYXJ0cGFya3NCYXNpY0FjdGlvbikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHNtYXJ0UGFya1dyYXBwZXI6IG51bGwsXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRTbWFydHBhcmtzVGFibGVBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkU21hcnRwYXJrc1RhYmxlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgeyBmaWx0ZXIgfTogTG9hZFNtYXJ0cGFya3NUYWJsZUFjdGlvbikge1xuICAgIGNvbnN0IHNtYXJ0cGFya3MkID0gdGhpcy5zbWFydHBhcmtTZXJ2aWNlUHJveHkuZ2V0U21hcnRwYXJrcyhmaWx0ZXIpO1xuICAgIHJldHVybiBzbWFydHBhcmtzJC5waXBlKHRhcChzbWFydHBhcmtzID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgbGF0ZXN0U21hcnRwYXJrczogc21hcnRwYXJrcy5kYXRhLmVudGl0aWVzLFxuICAgICAgICBjb3VudFNtYXJ0UGFya3M6IHNtYXJ0cGFya3MuZGF0YS5jb3VudGVyLFxuICAgICAgICBjb3VudFBhcmtpbmdMb3RzOiBzbWFydHBhcmtzLmRhdGEuc3ViQ291bnRlclxuICAgICAgfSk7XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkQmFja29mZmljZVNtYXJ0cGFya3NUYWJsZUFjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWRCYWNrb2ZmaWNlU21hcnRwYXJrc1RhYmxlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgeyBmaWx0ZXIgfTogTG9hZEJhY2tvZmZpY2VTbWFydHBhcmtzVGFibGVBY3Rpb24pIHtcbiAgICBjb25zdCBzbWFydHBhcmtzJCA9IHRoaXMuYmFja29mZmljZVNlcnZpY2VQcm94eS5nZXRCYWNrb2ZmaWNlU21hcnRwYXJrcyhmaWx0ZXIpO1xuICAgIHJldHVybiBzbWFydHBhcmtzJC5waXBlKHRhcChzbWFydHBhcmtzID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgbGF0ZXN0U21hcnRwYXJrczogc21hcnRwYXJrcy5kYXRhLmVudGl0aWVzLFxuICAgICAgICBjb3VudFNtYXJ0UGFya3M6IHNtYXJ0cGFya3MuZGF0YS5jb3VudGVyLFxuICAgICAgICBjb3VudFBhcmtpbmdMb3RzOiBzbWFydHBhcmtzLmRhdGEuc3ViQ291bnRlclxuICAgICAgfSk7XG4gICAgfSkpO1xuICB9XG5cblxuICBAQWN0aW9uKFNldFNtYXJ0UGFya1RhYmxlQWN0aW9uKVxuICBvblNldFNtYXJ0UGFya1RhYmxlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgeyBzbWFydHBhcmtzIH06IFNldFNtYXJ0UGFya1RhYmxlQWN0aW9uKSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgc21hcnRwYXJrc1xuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihTZXRTbWFydFBhcmtBY3Rpb24pXG4gIG9uU2V0U21hcnRQYXJrc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIHsgc21hcnRwYXJrcywgcmVsb2FkIH06IFNldFNtYXJ0UGFya0FjdGlvbikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHNtYXJ0cGFya3M6IHNtYXJ0cGFya3MgfHwgW10sXG4gICAgICBjb3VudFNtYXJ0UGFya3M6IHNtYXJ0cGFya3M/Lmxlbmd0aCB8fCAwLFxuICAgICAgY291bnRQYXJraW5nTG90czogdGhpcy5jb3VudFNtYXJ0cGFya0ZhY2lsaXRpZXMoc21hcnRwYXJrcylcbiAgICB9KTtcblxuICAgIGlmIChjdHguZ2V0U3RhdGUoKS5zZWxlY3RlZFNtYXJ0UGFya0lkKSB7XG4gICAgICBjdHguZGlzcGF0Y2gobmV3IFNlbGVjdFNtYXJ0UGFya0FjdGlvbihjdHguZ2V0U3RhdGUoKS5zZWxlY3RlZFNtYXJ0UGFya0lkLCByZWxvYWQpKTtcbiAgICB9XG4gIH1cblxuICBAQWN0aW9uKFNlbGVjdFNtYXJ0UGFya0FjdGlvbilcbiAgb25TZWxlY3RTbWFydFBhcmtBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IFNlbGVjdFNtYXJ0UGFya0FjdGlvbikge1xuICAgIGxldCBzZWxlY3RlZFNtYXJ0UGFyaztcbiAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmNsZWFyTWVzc2FnZWJhcigpO1xuICAgIGlmIChjdHguZ2V0U3RhdGUoKS5zbWFydHBhcmtzKSB7XG4gICAgICBzZWxlY3RlZFNtYXJ0UGFyayA9IGN0eC5nZXRTdGF0ZSgpLnNtYXJ0cGFya3MuZmluZCgoc21hcnRwYXJrKSA9PiAoc21hcnRwYXJrIGFzIFNtYXJ0cGFya0R0bykuaWQgPT09IGFjdGlvbi5zbWFydFBhcmtJZCk7XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7IHNlbGVjdGVkU21hcnRQYXJrSWQ6IGFjdGlvbi5zbWFydFBhcmtJZCwgc2VsZWN0ZWRTbWFydFBhcmsgfSk7XG4gICAgICBpZiAoYWN0aW9uLnJlbG9hZCkge1xuICAgICAgICBjdHguZGlzcGF0Y2gobmV3IExvYWRQYXJrc0FjdGlvbigpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAQWN0aW9uKExvYWRQYXJrc0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWRQYXJrc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7IHNlbGVjdGVkUGFya0RldGFpbHM6IG51bGwsIHNlbGVjdGVkUGFya0lkOiBudWxsIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuZmFjaWxpdHlTZXJ2aWNlUHJveHkuZ2V0U21hcnRwYXJrQmFzaWNBbGwoQXBwTW9kdWxlLk1hbmFnZW1lbnQpLnBpcGUodGFwKHNtYXJ0cGFya01hcCA9PiB7XG4gICAgICBjb25zdCB7IGd1aWQsIHR5cGUgfSA9IGN0eC5nZXRTdGF0ZSgpLnNlbGVjdGVkU21hcnRQYXJrO1xuICAgICAgaWYgKHNtYXJ0cGFya01hcCkge1xuICAgICAgICBsZXQgc2VsZWN0ZWRQYXJrSWQ6IG51bWJlcjtcbiAgICAgICAgY29uc3QgcGFya3MgPSBzbWFydHBhcmtNYXAuZGF0YS5zbWFydFBhcmtzW2d1aWRdLmZhY2lsaXRpZXM7XG4gICAgICAgIGlmICh0eXBlID09PSBTbWFydFBhcmtUeXBlLlN1cGVyUGFyaykge1xuICAgICAgICAgIGNvbnN0IG11bHRpUGFyayA9IHBhcmtzLmZpbmQocGFyayA9PiBwYXJrLmlzTXVsdGlQYXJrKTtcbiAgICAgICAgICBzZWxlY3RlZFBhcmtJZCA9IG11bHRpUGFyayA/IG11bHRpUGFyay5pZCA6IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgcGFya3M6IHBhcmtzIHx8IFtdLFxuICAgICAgICAgIHNlbGVjdGVkUGFya0lkOiBzZWxlY3RlZFBhcmtJZCA/PyAocGFya3M/Lmxlbmd0aCAmJiBwYXJrc1swXS5pZCB8fCBudWxsKSxcbiAgICAgICAgICBzbWFydHBhcmtHdWlkOiBndWlkLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAocGFya3M/Lmxlbmd0aCkge1xuICAgICAgICAgIGN0eC5kaXNwYXRjaChMb2FkUGFya0RldmljZXNBY3Rpb24pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkUGFya0RldmljZXNBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkUGFya0RldmljZXMoY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+KSB7XG4gICAgY29uc3QgcGFya0RldGFpbCA9IGN0eC5nZXRTdGF0ZSgpLnBhcmtzLmZpbmQoKHBhcmspID0+IHBhcmsuaWQgPT09IGN0eC5nZXRTdGF0ZSgpLnNlbGVjdGVkUGFya0lkKTtcbiAgICBjb25zdCBndWlkID0gY3R4LmdldFN0YXRlKCkuc21hcnRwYXJrR3VpZDtcblxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuZmFjaWxpdHlTZXJ2aWNlUHJveHkuZ2V0RmFjaWxpdHkocGFya0RldGFpbC5pZCwgZ3VpZCksXG4gICAgICB0aGlzLnJldmVudWVTZXJ2aWNlLmdldFJldmVudWUocGFya0RldGFpbC5pZCwgZ3VpZCkucGlwZShmaWx0ZXIocmV2ZW51ZSA9PiAhIXJldmVudWUpKSxcbiAgICAgIHRoaXMuZGV2aWNlU2VydmljZVByb3h5LmdldERldmljZXMocGFya0RldGFpbC5pZCwgbnVsbCwgbnVsbCwgbnVsbCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGd1aWQpLFxuICAgIF0pLnBpcGUodGFwKChbZmFjaWxpdHksIHJldmVudWVzLCBkZXZpY2VzXSkgPT4ge1xuICAgICAgY29uc3QgcmV2ZW51ZSA9IHBhcmtEZXRhaWwuaXNNdWx0aVBhcmsgPT0gMSA/IHRoaXMucmV2ZW51ZVNlcnZpY2UuY2FsY3VsYXRlUmV2ZW51ZUZvck11bHRpUGFyayhyZXZlbnVlcykgOiByZXZlbnVlc1twYXJrRGV0YWlsLmlkXTtcbiAgICAgIGRldmljZXM/LmRhdGEuZm9yRWFjaChkZXZpY2UgPT4gZGV2aWNlLmRldmljZVN0YXR1cyA9IGRldmljZS5kZXZpY2VTdGF0dXMgPz8gZ2V0RGVmYXVsdERldmljZVN0YXR1cyhkZXZpY2UpKTtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgc2VsZWN0ZWRQYXJrRGV0YWlsczoge1xuICAgICAgICAgIGZhY2lsaXR5OiBmYWNpbGl0eS5kYXRhLFxuICAgICAgICAgIGRldmljZXM6IGRldmljZXMuZGF0YSxcbiAgICAgICAgICByZXZlbnVlXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oU2VsZWN0UGFya0FjdGlvbilcbiAgb25TZWxlY3RQYXJrQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgYWN0aW9uOiBTZWxlY3RQYXJrQWN0aW9uKSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoeyBzZWxlY3RlZFBhcmtJZDogYWN0aW9uLnBhcmtJZCB9KTtcbiAgICBjdHguZGlzcGF0Y2goTG9hZFBhcmtEZXZpY2VzQWN0aW9uKTtcbiAgfVxuXG4gIEBBY3Rpb24oQ2xlYXJTZWxlY3RlZFBhcmtBY3Rpb24pXG4gIG9uQ2xlYXJTZWxlY3RlZFBhcmtBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+KSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgc2VsZWN0ZWRQYXJrRGV0YWlsczogbnVsbCxcbiAgICAgIHNlbGVjdGVkUGFya0lkOiBudWxsLFxuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihDbGVhclNlbGVjdGVkU21hcnRwYXJrQWN0aW9uKVxuICBvbkNsZWFyU2VsZWN0ZWRzbWFydHBhcmtBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+KSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgc2VsZWN0ZWRTbWFydFBhcmtJZDogbnVsbCxcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oU21hcnRQYXJrRGV2aWNlU3RhdHVzQ2hhbmdlZEFjdGlvbilcbiAgb25TbWFydFBhcmtEZXZpY2VTdGF0dXNDaGFuZ2VkQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgYWN0aW9uOiBTbWFydFBhcmtEZXZpY2VTdGF0dXNDaGFuZ2VkQWN0aW9uKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRQYXJrRGV0YWlscyA9IGN0eC5nZXRTdGF0ZSgpLnNlbGVjdGVkUGFya0RldGFpbHM7XG4gICAgaWYgKHNlbGVjdGVkUGFya0RldGFpbHMpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gc2VsZWN0ZWRQYXJrRGV0YWlscz8uZGV2aWNlcz8uZmluZEluZGV4KGRldmljZSA9PiBkZXZpY2UuaWQgPT09IGFjdGlvbi5kZXZpY2VTdGF0dXMuZGV2aWNlSUQpO1xuICAgICAgY29uc3QgY29tbXVuaWNhdGlvblBlcmNlbnRhZ2UgPSBzZWxlY3RlZFBhcmtEZXRhaWxzLmRldmljZXNbaW5kZXhdLmRldmljZVN0YXR1cy5jb21tdW5pY2F0aW9uUGVyY2VudGFnZTtcbiAgICAgIGNvbnN0IG5ld0NvbW1QZXJjZW50YWdlID0gYWN0aW9uLmRldmljZVN0YXR1cy5jb21tdW5pY2F0aW9uUGVyY2VudGFnZTtcbiAgICAgIGlmIChpbmRleCA+PSAwICYmIGNvbW11bmljYXRpb25QZXJjZW50YWdlICE9PSBuZXdDb21tUGVyY2VudGFnZSkge1xuICAgICAgICBzZWxlY3RlZFBhcmtEZXRhaWxzLmRldmljZXNbaW5kZXhdLmRldmljZVN0YXR1cy5jb21tdW5pY2F0aW9uUGVyY2VudGFnZSA9IG5ld0NvbW1QZXJjZW50YWdlO1xuICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgc2VsZWN0ZWRQYXJrRGV0YWlsczogY2xvbmVEZWVwKHNlbGVjdGVkUGFya0RldGFpbHMpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAQWN0aW9uKERpc2Nvbm5lY3RTbWFydFBhcmtBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25EaXNjb25uZWN0U21hcnRwYXJrQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgeyBzbWFydFBhcmtHdWlkLCBzbWFydFBhcmtJZCwgcGFzc3dvcmQgfTogRGlzY29ubmVjdFNtYXJ0UGFya0FjdGlvbikge1xuICAgIGNvbnN0IHNtYXJ0cGFyayQgPSB0aGlzLnNtYXJ0cGFya1NlcnZpY2VQcm94eS5kaXNjb25uZWN0KHBhc3N3b3JkLCBzbWFydFBhcmtJZCwgU21hcnRQYXJrU3RhdHVzLk5vbmFjdGl2ZSk7XG4gICAgcmV0dXJuIHNtYXJ0cGFyayQucGlwZSh0YXAoe1xuICAgICAgbmV4dDogKHYpID0+IHtcbiAgICAgICAgY29uc3Qgc21hcnRwYXJrcyA9IChjdHguZ2V0U3RhdGUoKS5zbWFydHBhcmtzIHx8IFtdKS5maWx0ZXIoc3AgPT4gc3AuZ3VpZCAhPT0gc21hcnRQYXJrR3VpZCk7XG4gICAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgICBzZWxlY3RlZFNtYXJ0UGFyazogbnVsbCxcbiAgICAgICAgICBzZWxlY3RlZFBhcmtJZDogbnVsbCxcbiAgICAgICAgICBzbWFydHBhcmtzLFxuICAgICAgICAgIGNvdW50U21hcnRQYXJrczogc21hcnRwYXJrcz8ubGVuZ3RoIHx8IDAsXG4gICAgICAgICAgY291bnRQYXJraW5nTG90czogdGhpcy5jb3VudFNtYXJ0cGFya0ZhY2lsaXRpZXMoc21hcnRwYXJrcylcbiAgICAgICAgfSk7XG4gICAgICAgIGN0eC5kaXNwYXRjaChuZXcgQ2xlYXJTZWxlY3RlZEZhY2lsaXR5QWN0aW9uKCkpO1xuICAgICAgICBjdHguZGlzcGF0Y2gobmV3IE5hdmlnYXRlKHRoaXMucm91dGVTZXJ2aWNlLmdldE5hdmlnYXRpb25Sb3V0ZShbJ21hbmFnZW1lbnQnLCAnc21hcnRwYXJrcyddKSkpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKHBhcnNlQXBpRXJyb3JNZXNzYWdlKGUpLCB7IHBvc2l0aW9uOiBNZXNzYWdlQmFyUG9zaXRpb24uU3RhdGljLCBpZDogJ21vZGFsJyB9KTtcbiAgICAgIH0sXG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihTZXRTbWFydFBhcmtWZXJzaW9uc0FjdGlvbilcbiAgb25TZXRTbWFydFBhcmtWZXJzaW9uc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIGFjdGlvbjogU2V0U21hcnRQYXJrVmVyc2lvbnNBY3Rpb24pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICB2ZXJzaW9uczogYWN0aW9uLnZlcnNpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkU3BBbmRTcGFya1ZlcnNpb25zQWN0aW9uKVxuICBvbkxvYWRTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+KSB7XG4gICAgaWYgKGN0eC5nZXRTdGF0ZSgpLlNwQW5kU3BhcmtWZXJzaW9ucyA9PSBudWxsKSB7XG4gICAgICBjb25zdCB2ZXJzaW9ucyQgPSB0aGlzLnNtYXJ0cGFya1NlcnZpY2VQcm94eS5nZXRTcEFuZFNwYXJrVmVyc2lvbnMoKTtcbiAgICAgIHJldHVybiB2ZXJzaW9ucyQucGlwZSh0YXAodmVyc2lvbnMgPT4ge1xuICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7IFNwQW5kU3BhcmtWZXJzaW9uczogdmVyc2lvbnMuZGF0YSB9KTtcbiAgICAgIH0pKTtcbiAgICB9XG4gIH1cblxuICBAQWN0aW9uKExvYWRCYWNrb2ZmaWNlU3BBbmRTcGFya1ZlcnNpb25zQWN0aW9uKVxuICBvbkxvYWRCYWNrb2ZmaWNlU3BBbmRTcGFya1ZlcnNpb25zQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPikge1xuICAgIGlmIChjdHguZ2V0U3RhdGUoKS5TcEFuZFNwYXJrVmVyc2lvbnMgPT0gbnVsbCkge1xuICAgICAgY29uc3QgdmVyc2lvbnMkID0gdGhpcy5iYWNrb2ZmaWNlU2VydmljZVByb3h5LmdldEJhY2tvZmZpY2VTcEFuZFNwYXJrVmVyc2lvbnMoKTtcbiAgICAgIHJldHVybiB2ZXJzaW9ucyQucGlwZSh0YXAodmVyc2lvbnMgPT4ge1xuICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7IFNwQW5kU3BhcmtWZXJzaW9uczogdmVyc2lvbnMuZGF0YSB9KVxuICAgICAgfSkpO1xuICAgIH1cbiAgfVxuXG4gIEBBY3Rpb24oQ2xlYXJTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24pXG4gIG9uQ2xlYXJTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+KSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgU3BBbmRTcGFya1ZlcnNpb25zOiBudWxsXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRWYXJzQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZFZhcnNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IExvYWRWYXJzQWN0aW9uKSB7XG4gICAgY29uc3QgdmFycyQgPSB0aGlzLnNtYXJ0cGFya1NlcnZpY2VQcm94eS52YXJzKGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8ubWF4UmVzdWx0cywgYWN0aW9uLnNlYXJjaFBhcmFtc0R0by5zZWFyY2hUZXJtLFxuICAgICAgYWN0aW9uLnNlYXJjaFBhcmFtc0R0by5vcmRlckJ5LmNvbHVtbiwgYWN0aW9uLnNlYXJjaFBhcmFtc0R0by5vcmRlckJ5Lm9yZGVyRGlyZWN0aW9uKTtcbiAgICByZXR1cm4gdmFycyQucGlwZSh0YXAodmFycyA9PiB7XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIHZhcnM6IHZhcnMuZGF0YVxuICAgICAgfSk7XG4gICAgfSkpO1xuICB9XG5cblxuICBAQWN0aW9uKExvYWRCYWNrb2ZmaWNlVmFyc0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWRCYWNrb2ZmaWNlVmFyc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZFZhcnNBY3Rpb24pIHtcbiAgICBjb25zdCB2YXJzJCA9IHRoaXMuYmFja29mZmljZVNlcnZpY2VQcm94eS5nZXRCYWNrb2ZmaWNlVmFycyhhY3Rpb24uc2VhcmNoUGFyYW1zRHRvLm1heFJlc3VsdHMsIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8uc2VhcmNoVGVybSxcbiAgICAgIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8ub3JkZXJCeS5jb2x1bW4sIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8ub3JkZXJCeS5vcmRlckRpcmVjdGlvbik7XG4gICAgcmV0dXJuIHZhcnMkLnBpcGUodGFwKHZhcnMgPT4ge1xuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICB2YXJzOiB2YXJzLmRhdGFcbiAgICAgIH0pXG4gICAgfSkpO1xuICB9XG5cblxuICBAQWN0aW9uKFN5bmNVc2Vyc0FuZFJvbGVzQnlTbWFydHBhcmtJZEFjdGlvbilcbiAgb25TeW5jVXNlcnNBbmRSb2xlc0J5U21hcnRwYXJrSWRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IFN5bmNVc2Vyc0FuZFJvbGVzQnlTbWFydHBhcmtJZEFjdGlvbik6IE9ic2VydmFibGU8T2JqZWN0SHR0cFJlc3BvbnNlRGF0YT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tvZmZpY2VTZXJ2aWNlUHJveHkuc3luY0JhY2tvZmZpY2VVc2Vyc0FuZFJvbGVzQnlTbWFydHBhcmtJZChhY3Rpb24uc21hcnRwYXJrLnRlbmFudElELCBhY3Rpb24uc21hcnRwYXJrLmlkKS5waXBlKHRhcCh7XG4gICAgICBuZXh0OiBfID0+IHRoaXMubWVzc2FnZUJhclNlcnZpY2Uuc3VjY2VzcyhMb2NhbGl6YXRpb24uc3VjY2Vzc2Z1bF9zeW5jX3VzZXJzX2FuZF9yb2xlc19mb3Jfc21hcnRwYXJrLCB7IG1lc3NhZ2VQYXJhbXM6IHsgc21hcnRwYXJrTmFtZTogYWN0aW9uLnNtYXJ0cGFyay5uYW1lIH0gfSksXG4gICAgICBlcnJvcjogZSA9PiB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKHBhcnNlQXBpRXJyb3JNZXNzYWdlKGUpLCB7IHBvc2l0aW9uOiBNZXNzYWdlQmFyUG9zaXRpb24uRmxvYXQgfSksXG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihFeHBvcnRTbWFydHBhcmtBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25FeHBvcnRTbWFydHBhcmtzQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgYWN0aW9uOiBFeHBvcnRTbWFydHBhcmtBY3Rpb24pIHtcbiAgICBjb25zdCBzbWFydHBhcmtzJCA9IHRoaXMuc21hcnRwYXJrU2VydmljZVByb3h5LmdldFNtYXJ0cGFya3MoYWN0aW9uLnNtYXJ0cGFya0ZpbHRlcik7XG4gICAgcmV0dXJuIHNtYXJ0cGFya3MkLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6IHNtYXJ0cGFya3MgPT4ge1xuICAgICAgICBjb25zdCB0YWJsZVJvd3M6IGFueVtdW10gPSBbXTtcbiAgICAgICAgY29uc3Qgc21hcnRwYXJrc0xpc3Q6IFNtYXJ0cGFya0R0b1tdID0gc21hcnRwYXJrcy5kYXRhLmVudGl0aWVzO1xuICAgICAgICBzbWFydHBhcmtzTGlzdC5mb3JFYWNoKChzbWFydHBhcmspID0+IHtcbiAgICAgICAgICB0YWJsZVJvd3MucHVzaChbXG4gICAgICAgICAgICBzbWFydHBhcmsubmFtZSxcbiAgICAgICAgICAgIFNtYXJ0UGFya1R5cGVbc21hcnRwYXJrLnR5cGVdLnJlcGxhY2UoLyhbQS1aXSkvZywgJyAkMScpLnRyaW0oKSxcbiAgICAgICAgICAgIHNtYXJ0cGFyay50ZW5hbnROYW1lLFxuICAgICAgICAgICAgc21hcnRwYXJrLnZlcnNpb24sXG4gICAgICAgICAgICBzbWFydHBhcmsuc3BhcmtWZXJzaW9uLFxuICAgICAgICAgICAgc21hcnRwYXJrLmNyZWF0ZWRBdCxcbiAgICAgICAgICAgIHNtYXJ0cGFyay5ndWlkLFxuICAgICAgICAgICAgc21hcnRwYXJrLnZhck5hbWUgfHwgJy0nLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoU21hcnRQYXJrU3RhdHVzVGV4dFtTbWFydFBhcmtTdGF0dXNbc21hcnRwYXJrLnN0YXR1c11dKVxuICAgICAgICAgIF0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5leHBvcnRGaWxlU2VydmljZS5leHBvcnQoYWN0aW9uLmZpbGVUeXBlLCB0YWJsZVJvd3MsIGFjdGlvbi5jb2x1bW5zSGVhZGVyLCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24uc21hcnRwYXJrKSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcih0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24uZmFpbGVkX2V4cG9ydF9maWxlKSk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihFeHBvcnRQZGZTbWFydHBhcmtzVGFibGVBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25FeHBvcnRQZGZTbWFydHBhcmtzVGFibGVBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCB7IGZpbHRlciB9OiBFeHBvcnRQZGZTbWFydHBhcmtzVGFibGVBY3Rpb24pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBleHBvcnRQZGZTbWFydHBhcmtzOiBudWxsLFxuICAgIH0pO1xuICAgIGNvbnN0IHNtYXJ0cGFya3MkID0gdGhpcy5zbWFydHBhcmtTZXJ2aWNlUHJveHkuZ2V0U21hcnRwYXJrcyhmaWx0ZXIpO1xuICAgIHJldHVybiBzbWFydHBhcmtzJC5waXBlKHRhcChzbWFydHBhcmtzID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgZXhwb3J0UGRmU21hcnRwYXJrczogc21hcnRwYXJrcy5kYXRhLmVudGl0aWVzLFxuICAgICAgfSk7XG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb3VudFNtYXJ0cGFya0ZhY2lsaXRpZXMoc21hcnRwYXJrczogKFNtYXJ0cGFya0R0byB8IFNtYXJ0cGFya0Jhc2ljRHRvKVtdKTogbnVtYmVyIHtcbiAgICBsZXQgY291bnRQYXJraW5nTG90cyA9IDA7XG4gICAgc21hcnRwYXJrcy5mb3JFYWNoKHNtYXJ0UGFyayA9PiB7XG4gICAgICBpZiAoc21hcnRQYXJrLmZhY2lsaXRpZXMpIHtcbiAgICAgICAgY291bnRQYXJraW5nTG90cyArPSBzbWFydFBhcmsuZmFjaWxpdGllcy5maWx0ZXIoZiA9PiAhZi5pc011bHRpUGFyaykubGVuZ3RoO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBjb3VudFBhcmtpbmdMb3RzO1xuICB9XG59XG4iXX0=
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import { first } from 'rxjs/operators';
|
|
3
|
-
import { VERSION_V1 } from '../constants/version-constants';
|
|
2
|
+
import { filter, first, tap } from 'rxjs/operators';
|
|
4
3
|
import { SetBasicMenuAction } from '../modules/facility/facility.actions';
|
|
5
4
|
import { MenuLoadAction } from '../modules/sidenav/sidenav.actions';
|
|
5
|
+
import { LoadMobileSmartparksBasicAction } from '../modules/smartparks/smartpark.actions';
|
|
6
|
+
import { SmartparkState } from '../modules/smartparks/smartpark.state';
|
|
6
7
|
import { AppModule, NotificationEventType } from '../service-proxy/edge-service-proxies';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../
|
|
9
|
-
import * as i2 from "../services/
|
|
10
|
-
import * as i3 from "../
|
|
11
|
-
import * as i4 from "
|
|
12
|
-
import * as i5 from "@ngxs/store";
|
|
9
|
+
import * as i1 from "../services/signalr.service";
|
|
10
|
+
import * as i2 from "../services/realtime-event.service";
|
|
11
|
+
import * as i3 from "../components/notification/notification-event.service";
|
|
12
|
+
import * as i4 from "@ngxs/store";
|
|
13
13
|
export class MobileCommandCenterModuleResolver {
|
|
14
|
-
constructor(
|
|
15
|
-
this.mobileServiceProxyIdentity = mobileServiceProxyIdentity;
|
|
14
|
+
constructor(signalR, realtimeEventService, notificationEventService, store) {
|
|
16
15
|
this.signalR = signalR;
|
|
17
16
|
this.realtimeEventService = realtimeEventService;
|
|
18
17
|
this.notificationEventService = notificationEventService;
|
|
@@ -20,13 +19,12 @@ export class MobileCommandCenterModuleResolver {
|
|
|
20
19
|
}
|
|
21
20
|
resolve(route, state) {
|
|
22
21
|
this.store.dispatch(new MenuLoadAction([], AppModule.Cc));
|
|
23
|
-
this.
|
|
24
|
-
|
|
25
|
-
this.store.dispatch(new SetBasicMenuAction(smartparkBasic.
|
|
26
|
-
this.subscribeToRealTimeEvents(smartparkBasic
|
|
27
|
-
this.subscribeToHandleAlertNotificationEvents(smartparkBasic
|
|
28
|
-
});
|
|
29
|
-
return null;
|
|
22
|
+
this.store.dispatch(new LoadMobileSmartparksBasicAction(AppModule.Cc, null));
|
|
23
|
+
return this.store.select(SmartparkState.smartParkWrapper).pipe(filter(smartparkBasic => !!smartparkBasic), first(), tap(smartparkBasic => {
|
|
24
|
+
this.store.dispatch(new SetBasicMenuAction(smartparkBasic.smartParks, AppModule.Cc));
|
|
25
|
+
this.subscribeToRealTimeEvents(smartparkBasic);
|
|
26
|
+
this.subscribeToHandleAlertNotificationEvents(smartparkBasic);
|
|
27
|
+
}));
|
|
30
28
|
}
|
|
31
29
|
subscribeToRealTimeEvents(smartparkBasic) {
|
|
32
30
|
const parksSubscription = this.realtimeEventService.getCrossParkSubscriptions(smartparkBasic);
|
|
@@ -44,10 +42,10 @@ export class MobileCommandCenterModuleResolver {
|
|
|
44
42
|
this.signalR.subscribeForNotifications(handledNotificationSubscriptionDto);
|
|
45
43
|
}
|
|
46
44
|
}
|
|
47
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MobileCommandCenterModuleResolver, deps: [{ token: i1.
|
|
45
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MobileCommandCenterModuleResolver, deps: [{ token: i1.SignalR }, { token: i2.RealtimeEventService }, { token: i3.NotificationEventService }, { token: i4.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
48
46
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MobileCommandCenterModuleResolver }); }
|
|
49
47
|
}
|
|
50
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MobileCommandCenterModuleResolver, decorators: [{
|
|
51
49
|
type: Injectable
|
|
52
|
-
}], ctorParameters: () => [{ type: i1.
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
}], ctorParameters: () => [{ type: i1.SignalR }, { type: i2.RealtimeEventService }, { type: i3.NotificationEventService }, { type: i4.Store }] });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLWNvbW1hbmQtY2VudGVyLW1vZHVsZS5yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvcmVzb2x2ZXJzL21vYmlsZS1jb21tYW5kLWNlbnRlci1tb2R1bGUucmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDMUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQXVCLE1BQU0sdUNBQXVDLENBQUM7Ozs7OztBQUs5RyxNQUFNLE9BQU8saUNBQWlDO0lBRTVDLFlBQ1UsT0FBZ0IsRUFDaEIsb0JBQTBDLEVBQzFDLHdCQUFrRCxFQUNsRCxLQUFZO1FBSFosWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsVUFBSyxHQUFMLEtBQUssQ0FBTztJQUN0QixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQTZCLEVBQUUsS0FBMEI7UUFDL0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxjQUFjLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksK0JBQStCLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRTdFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUM1RCxNQUFNLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEVBQzFDLEtBQUssRUFBRSxFQUNQLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUNuQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDckYsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyx3Q0FBd0MsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLHlCQUF5QixDQUFDLGNBQW1DO1FBQ25FLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHlCQUF5QixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzlGLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNyRCxNQUFNLHVCQUF1QixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQywrQkFBK0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxRyxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVPLHdDQUF3QyxDQUFDLGNBQW1DO1FBQ2xGLEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUMxRCxNQUFNLGlDQUFpQyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQywyQkFBMkIsQ0FBQyxxQkFBcUIsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNwSixpQ0FBaUMsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsaUNBQWlDLENBQUMsQ0FBQztZQUUxRSxNQUFNLGtDQUFrQyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQywyQkFBMkIsQ0FBQyxxQkFBcUIsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN0SixrQ0FBa0MsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUM3RSxDQUFDO0lBQ0gsQ0FBQzsrR0F6Q1UsaUNBQWlDO21IQUFqQyxpQ0FBaUM7OzRGQUFqQyxpQ0FBaUM7a0JBRDdDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBmaXJzdCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2V0QmFzaWNNZW51QWN0aW9uIH0gZnJvbSAnLi4vbW9kdWxlcy9mYWNpbGl0eS9mYWNpbGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IE1lbnVMb2FkQWN0aW9uIH0gZnJvbSAnLi4vbW9kdWxlcy9zaWRlbmF2L3NpZGVuYXYuYWN0aW9ucyc7XG5pbXBvcnQgeyBMb2FkTW9iaWxlU21hcnRwYXJrc0Jhc2ljQWN0aW9uIH0gZnJvbSAnLi4vbW9kdWxlcy9zbWFydHBhcmtzL3NtYXJ0cGFyay5hY3Rpb25zJztcbmltcG9ydCB7IFNtYXJ0cGFya1N0YXRlIH0gZnJvbSAnLi4vbW9kdWxlcy9zbWFydHBhcmtzL3NtYXJ0cGFyay5zdGF0ZSc7XG5pbXBvcnQgeyBBcHBNb2R1bGUsIE5vdGlmaWNhdGlvbkV2ZW50VHlwZSwgU21hcnRQYXJrV3JhcHBlckR0byB9IGZyb20gJy4uL3NlcnZpY2UtcHJveHkvZWRnZS1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgUmVhbHRpbWVFdmVudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9yZWFsdGltZS1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFNpZ25hbFIgfSBmcm9tICcuLi9zZXJ2aWNlcy9zaWduYWxyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTW9iaWxlQ29tbWFuZENlbnRlck1vZHVsZVJlc29sdmVyIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNpZ25hbFI6IFNpZ25hbFIsXG4gICAgcHJpdmF0ZSByZWFsdGltZUV2ZW50U2VydmljZTogUmVhbHRpbWVFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb25FdmVudFNlcnZpY2U6IE5vdGlmaWNhdGlvbkV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSkge1xuICB9XG5cbiAgcmVzb2x2ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPFNtYXJ0UGFya1dyYXBwZXJEdG8+IHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBNZW51TG9hZEFjdGlvbihbXSwgQXBwTW9kdWxlLkNjKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTG9hZE1vYmlsZVNtYXJ0cGFya3NCYXNpY0FjdGlvbihBcHBNb2R1bGUuQ2MsIG51bGwpKTtcblxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdChTbWFydHBhcmtTdGF0ZS5zbWFydFBhcmtXcmFwcGVyKS5waXBlKFxuICAgICAgZmlsdGVyKHNtYXJ0cGFya0Jhc2ljID0+ICEhc21hcnRwYXJrQmFzaWMpLFxuICAgICAgZmlyc3QoKSxcbiAgICAgIHRhcChzbWFydHBhcmtCYXNpYyA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNldEJhc2ljTWVudUFjdGlvbihzbWFydHBhcmtCYXNpYy5zbWFydFBhcmtzLCBBcHBNb2R1bGUuQ2MpKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVUb1JlYWxUaW1lRXZlbnRzKHNtYXJ0cGFya0Jhc2ljKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVUb0hhbmRsZUFsZXJ0Tm90aWZpY2F0aW9uRXZlbnRzKHNtYXJ0cGFya0Jhc2ljKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9SZWFsVGltZUV2ZW50cyhzbWFydHBhcmtCYXNpYzogU21hcnRQYXJrV3JhcHBlckR0bykge1xuICAgIGNvbnN0IHBhcmtzU3Vic2NyaXB0aW9uID0gdGhpcy5yZWFsdGltZUV2ZW50U2VydmljZS5nZXRDcm9zc1BhcmtTdWJzY3JpcHRpb25zKHNtYXJ0cGFya0Jhc2ljKTtcbiAgICB0aGlzLnNpZ25hbFIuc3Vic2NyaWJlRm9yUmVhbHRpbWUocGFya3NTdWJzY3JpcHRpb24pO1xuICAgIGNvbnN0IHBhcmVudFBhcmtzU3Vic2NyaXB0aW9uID0gdGhpcy5yZWFsdGltZUV2ZW50U2VydmljZS5nZXRDcm9zc1BhcmVudFBhcmtTdWJzY3JpcHRpb25zKHNtYXJ0cGFya0Jhc2ljKTtcbiAgICB0aGlzLnNpZ25hbFIuc3Vic2NyaWJlRm9yUmVhbHRpbWUocGFyZW50UGFya3NTdWJzY3JpcHRpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVUb0hhbmRsZUFsZXJ0Tm90aWZpY2F0aW9uRXZlbnRzKHNtYXJ0cGFya0Jhc2ljOiBTbWFydFBhcmtXcmFwcGVyRHRvKSB7XG4gICAgZm9yIChjb25zdCBndWlkIG9mIE9iamVjdC5rZXlzKHNtYXJ0cGFya0Jhc2ljLnNtYXJ0UGFya3MpKSB7XG4gICAgICBjb25zdCBoYW5kbGVOb3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG8gPSB0aGlzLm5vdGlmaWNhdGlvbkV2ZW50U2VydmljZS5nZXROb3RpZmljYXRpb25TdWJzY3JpcHRpb24oTm90aWZpY2F0aW9uRXZlbnRUeXBlLkhhbmRsZU5vdGlmaWNhdGlvbiwgZ3VpZCk7XG4gICAgICBoYW5kbGVOb3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG8udW5zdWJzY3JpYmUgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2lnbmFsUi5zdWJzY3JpYmVGb3JOb3RpZmljYXRpb25zKGhhbmRsZU5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0byk7XG5cbiAgICAgIGNvbnN0IGhhbmRsZWROb3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG8gPSB0aGlzLm5vdGlmaWNhdGlvbkV2ZW50U2VydmljZS5nZXROb3RpZmljYXRpb25TdWJzY3JpcHRpb24oTm90aWZpY2F0aW9uRXZlbnRUeXBlLkhhbmRsZWROb3RpZmljYXRpb24sIGd1aWQpO1xuICAgICAgaGFuZGxlZE5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0by51bnN1YnNjcmliZSA9IGZhbHNlO1xuICAgICAgdGhpcy5zaWduYWxSLnN1YnNjcmliZUZvck5vdGlmaWNhdGlvbnMoaGFuZGxlZE5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0byk7XG4gICAgfVxuICB9XG59XG4iXX0=
|