@tiba-spark/client-shared-lib 25.3.0-212 → 25.3.0-215
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/modules/auth/session.actions.mjs +7 -6
- package/esm2022/libraries/modules/auth/session.state.mjs +21 -20
- package/esm2022/libraries/services/signalr.service.mjs +4 -4
- package/fesm2022/tiba-spark-client-shared-lib.mjs +29 -27
- package/fesm2022/tiba-spark-client-shared-lib.mjs.map +1 -1
- package/libraries/modules/auth/session.actions.d.ts +0 -4
- package/libraries/modules/auth/session.actions.d.ts.map +1 -1
- package/libraries/modules/auth/session.state.d.ts +1 -2
- package/libraries/modules/auth/session.state.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -264,17 +264,17 @@ export class SignalR {
|
|
|
264
264
|
this.devicesStatusChanged(DeviceStatusDto.fromJS(data));
|
|
265
265
|
break;
|
|
266
266
|
case RtEventType.DynamicPricingCondition:
|
|
267
|
-
datadogLogs.logger.
|
|
267
|
+
datadogLogs.logger.debug(`RT - Got ${JSON.stringify(data)} event`);
|
|
268
268
|
this.notificationChanged(NotificationDto.fromJS(data), obj.guid);
|
|
269
269
|
break;
|
|
270
270
|
case RtEventType.Alert:
|
|
271
271
|
case RtEventType.LostTicket:
|
|
272
272
|
case RtEventType.LPRmismatch:
|
|
273
|
-
datadogLogs.logger.
|
|
273
|
+
datadogLogs.logger.debug(`RT - Got ${JSON.stringify(data)} event`);
|
|
274
274
|
this.alertChanged(AlertDto.fromJS(data), obj.guid);
|
|
275
275
|
break;
|
|
276
276
|
case RtEventType.ParkState:
|
|
277
|
-
datadogLogs.logger.
|
|
277
|
+
datadogLogs.logger.debug(`RT - Got ${JSON.stringify(data)} event`);
|
|
278
278
|
this.deviceActivityChanged(data);
|
|
279
279
|
this.parkActivityChanged(data);
|
|
280
280
|
break;
|
|
@@ -440,4 +440,4 @@ export function getSecondsBackoff(retryCount) {
|
|
|
440
440
|
const [minSeconds, maxSeconds] = delaysTableInSeconds[retryCount] || [0, 0];
|
|
441
441
|
return (Math.floor(Math.random() * (maxSeconds - minSeconds + 1)) + minSeconds) * ONE_SECOND_IN_MILLISECONDS;
|
|
442
442
|
}
|
|
443
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9zZXJ2aWNlcy9zaWduYWxyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFpQixvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQTRCLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDakcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSx5QkFBeUIsRUFBRSx3QkFBd0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQzlNLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxtQ0FBbUMsRUFBRSxrQ0FBa0MsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pLLE9BQU8sRUFB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QUFFLENBQUMsRUFBRSxZQUFZO1FBQ3pCLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxZQUFZO1FBQ3pCLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRyxZQUFZO0tBQzdCLENBQUM7SUFDRixNQUFNLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxHQUFHLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVFLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLFVBQVUsR0FBRyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsR0FBRywwQkFBMEIsQ0FBQztBQUMvRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFN0YXR1c0NvZGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGF0YWRvZ0xvZ3MgfSBmcm9tICdAZGF0YWRvZy9icm93c2VyLWxvZ3MnO1xuaW1wb3J0IHsgSHR0cFRyYW5zcG9ydFR5cGUsIEh1YkNvbm5lY3Rpb24sIEh1YkNvbm5lY3Rpb25CdWlsZGVyLCBIdWJDb25uZWN0aW9uU3RhdGUgfSBmcm9tICdAbWljcm9zb2Z0L3NpZ25hbHInO1xuaW1wb3J0IHsgRGlzcGF0Y2ggfSBmcm9tICdAbmd4cy1sYWJzL2Rpc3BhdGNoLWRlY29yYXRvcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbkV2ZW50U2VydmljZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IE9ORV9TRUNPTkRfSU5fTUlMTElTRUNPTkRTIH0gZnJvbSAnLi4vY29uc3RhbnRzL2dsb2JhbC1jb25zdGFudHMnO1xuaW1wb3J0IHsgQXBwVHlwZSB9IGZyb20gJy4uL2VudW1zL2FwcC10eXBlLmVudW0nO1xuaW1wb3J0IHsgQWxlcnRDaGFuZ2VkQWN0aW9uLCBIYW5kbGVBbGVydHNBY3Rpb24sIEhhbmRsZWROb3RpZmljYXRpb25BY3Rpb24sIEhhbmRsZU5vdGlmaWNhdGlvbkFjdGlvbiwgTm90aWZpY2F0aW9uQ2hhbmdlZEFjdGlvbiB9IGZyb20gJy4uL21vZHVsZXMvYWxlcnRzLWFuZC1ub3RpZmljYXRpb25zL2FsZXJ0cy1hbmQtbm90aWZpY2F0aW9ucy5hY3Rpb25zJztcbmltcG9ydCB7IFNpZ25hbFJSZWZyZXNoVG9rZW5BY3Rpb24gfSBmcm9tICcuLi9tb2R1bGVzL2F1dGgvcmVmcmVzaC10b2tlbi5hY3Rpb25zJztcbmltcG9ydCB7IEZhY2lsaXR5Q2hhbmdlZEFjdGlvbiwgRmFjaWxpdHlSZW1vdGVDb21tYW5kRXhlY3V0ZWRBY3Rpb24sIFNlcnZpY2VzUnVubmluZ1N0YXR1c0NoYW5nZWRBY3Rpb24sIFpvbmVDaGFuZ2VkQWN0aW9uIH0gZnJvbSAnLi4vbW9kdWxlcy9mYWNpbGl0eS9mYWNpbGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IEZhY2lsaXR5U3RhdGUgfSBmcm9tICcuLi9tb2R1bGVzL2ZhY2lsaXR5L2ZhY2lsaXR5LnN0YXRlJztcbmltcG9ydCB7IFBhcmtBY3Rpdml0eUNoYW5nZWRBY3Rpb24gfSBmcm9tICcuLi9tb2R1bGVzL3BhcmstYWN0aXZpdGllcy9wYXJrLWFjdGl2aXRpZXMuYWN0aW9ucyc7XG5pbXBvcnQgeyBEZXZpY2VBY3Rpdml0eUNoYW5nZWRBY3Rpb24sIERldmljZUV2ZW50Q2hhbmdlZEFjdGlvbiwgRGV2aWNlU3RhdHVzQ2hhbmdlZEFjdGlvbiwgTHByVHJhbnNhY3Rpb25zQ2hhbmdlZEFjdGlvbiB9IGZyb20gJy4uL21vZHVsZXMvcGFyay1tYW5hZ2VyL3BhcmstbWFuYWdlci5hY3Rpb25zJztcbmltcG9ydCB7IFNpZGVuYXZTdGF0ZSB9IGZyb20gJy4uL21vZHVsZXMvc2lkZW5hdi9zaWRlbmF2LnN0YXRlJztcbmltcG9ydCB7IEFkZFNtYXJ0cGFya0FjdGlvbiB9IGZyb20gJy4uL21vZHVsZXMvc21hcnRwYXJrcy9zbWFydHBhcmstZGlhbG9nLmFjdGlvbnMnO1xuaW1wb3J0IHsgQWxlcnREdG8sIE5vdGlmaWNhdGlvbkR0bywgU21hcnRwYXJrRHRvIH0gZnJvbSAnLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHtcbiAgRGV2aWNlRXZlbnREdG8sIERldmljZVN0YXR1c0R0bywgRXZlbnRBY3Rpdml0eUR0bywgRmFjaWxpdHlEdG8sIEZhY2lsaXR5UmVtb3RlQ29tbWFuZEV2ZW50LFxuICBGYWNpbGl0eVJlbW90ZUNvbW1hbmRUeXBlcywgTHByVHJhbnNhY3Rpb25EdG8sIE5vdGlmaWNhdGlvbkV2ZW50VHlwZSwgTm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRHRvLFxuICBSVEV2ZW50U3Vic2NyaXB0aW9uRHRvLCBSdEV2ZW50VHlwZSwgU2VydmljZXNSdW5uaW5nU3RhdHVzRHRvLCBab25lRHRvXG59IGZyb20gJy4uL3NlcnZpY2UtcHJveHkvZWRnZS1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4vYXBwLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IEdlbmVyYWxBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9nZW5lcmFsLWFjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFJlYWx0aW1lRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9yZWFsdGltZS1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4vc2Vzc2lvbi1zdG9yYWdlLnNlcnZpY2UnO1xuXG5leHBvcnQgY2xhc3MgU2lnbmFsUk9iamVjdCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBndWlkOiBzdHJpbmcsIHB1YmxpYyBqc29uUGF5bG9hZDogc3RyaW5nKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJUT2JqZWN0T2JqZWN0IGV4dGVuZHMgU2lnbmFsUk9iamVjdCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBydEV2ZW50VHlwZTogUnRFdmVudFR5cGUsIHB1YmxpYyBwYXJrSWQ6IG51bWJlciwgcHVibGljIGd1aWQ6IHN0cmluZywgcHVibGljIGpzb25QYXlsb2FkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihndWlkLCBqc29uUGF5bG9hZCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNwYXJrTm90aWZpY2F0aW9uIGV4dGVuZHMgU2lnbmFsUk9iamVjdCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBub3RpZmljYXRpb25UeXBlOiBOb3RpZmljYXRpb25FdmVudFR5cGUsIHB1YmxpYyBndWlkOiBzdHJpbmcsIHB1YmxpYyBpZGVudGlmaWVyOiBzdHJpbmcsIHB1YmxpYyBqc29uUGF5bG9hZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoZ3VpZCwganNvblBheWxvYWQpO1xuICB9XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTaWduYWxSIHtcblxuICBwdWJsaWMgY29ubmVjdGlvbjogSHViQ29ubmVjdGlvbjtcbiAgcHVibGljIHN1YnNjcmlwdGlvblF1ZXVlOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgbm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uUXVldWU6IGFueVtdID0gW107XG5cbiAgcHJvdGVjdGVkIHN0b3JlOiBTdG9yZTtcbiAgcHJvdGVjdGVkIHJlYWx0aW1lRXZlbnRTZXJ2aWNlOiBSZWFsdGltZUV2ZW50U2VydmljZTtcbiAgcHJvdGVjdGVkIG5vdGlmaWNhdGlvbkV2ZW50U2VydmljZTogTm90aWZpY2F0aW9uRXZlbnRTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2U7XG4gIHByb3RlY3RlZCBhcHBDb25maWc6IEFwcENvbmZpZ1NlcnZpY2U7XG4gIHByb3RlY3RlZCBnZW5lcmFsQWN0aW9uU2VydmljZTogR2VuZXJhbEFjdGlvblNlcnZpY2U7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIHRoaXMuc3RvcmUgPSBpbmplY3Rvci5nZXQoU3RvcmUpO1xuICAgIHRoaXMucmVhbHRpbWVFdmVudFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoUmVhbHRpbWVFdmVudFNlcnZpY2UpO1xuICAgIHRoaXMubm90aWZpY2F0aW9uRXZlbnRTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KE5vdGlmaWNhdGlvbkV2ZW50U2VydmljZSk7XG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlKTtcbiAgICB0aGlzLmFwcENvbmZpZyA9IGluamVjdG9yLmdldChBcHBDb25maWdTZXJ2aWNlKTtcbiAgICB0aGlzLmdlbmVyYWxBY3Rpb25TZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KEdlbmVyYWxBY3Rpb25TZXJ2aWNlKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0UmVhbHRpbWVFdmVudExpc3RlbmVycygpIHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmFwcENvbmZpZy5nZXRDb25maWcoKTtcbiAgICBjb25zdCBiYXNlVXJsID0gY29uZmlnLmFwcFR5cGUgPT09IEFwcFR5cGUuTW9iaWxlID8gY29uZmlnLmFwaUJhc2VVUkwgOiAnJztcbiAgICBjb25zdCB1cmwgPSBgJHtiYXNlVXJsfS9yZWFsdGltZWA7XG5cbiAgICBkYXRhZG9nTG9ncy5sb2dnZXIuaW5mbyhgUlQgQVBJIEJhc2UgVXJsIC0gJHt1cmx9YCk7XG5cbiAgICBjb25zdCBtYXhDb25zZWN1dGl2ZUZhaWxlZFJldHJ5Q291bnQgPSBjb25maWcuc2lnbmFsUi5tYXhDb25zZWN1dGl2ZUZhaWxlZFJldHJ5Q291bnQ7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb24gPSBuZXcgSHViQ29ubmVjdGlvbkJ1aWxkZXIoKVxuICAgICAgLndpdGhVcmwodXJsLCB7XG4gICAgICAgIGFjY2Vzc1Rva2VuRmFjdG9yeTogKCkgPT4gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuYWNjZXNzVG9rZW4sXG4gICAgICAgIHNraXBOZWdvdGlhdGlvbjogdHJ1ZSwgIC8vIFNraXAgdGhlIG5lZ290aWF0aW9uIHN0ZXBcbiAgICAgICAgdHJhbnNwb3J0OiBIdHRwVHJhbnNwb3J0VHlwZS5XZWJTb2NrZXRzICAvLyBVc2UgV2ViU29ja2V0cyBkaXJlY3RseVxuICAgICAgfSlcbiAgICAgIC53aXRoQXV0b21hdGljUmVjb25uZWN0KG5ldyBUaWJhUmV0cnlQb2xpY3kobWF4Q29uc2VjdXRpdmVGYWlsZWRSZXRyeUNvdW50KSlcbiAgICAgIC5idWlsZCgpO1xuXG4gICAgdGhpcy5jb25uZWN0aW9uLm9ucmVjb25uZWN0aW5nKChlcnJvcikgPT4ge1xuICAgICAgZGF0YWRvZ0xvZ3MubG9nZ2VyLmluZm8oJ0F0dGVtcHRpbmcgdG8gcmVjb25uZWN0OicsIGVycm9yKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY29ubmVjdGlvbi5vbmNsb3NlKChlcnJvcikgPT4ge1xuICAgICAgZGF0YWRvZ0xvZ3MubG9nZ2VyLmluZm8oJ0Nvbm5lY3Rpb24gY2xvc2VkIGFmdGVyIGFsbCByZXRyeSBhdHRlbXB0czonLCBlcnJvcik7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb24ub25yZWNvbm5lY3RlZCgoY29ubmVjdGlvbklkKSA9PiB7XG4gICAgICBkYXRhZG9nTG9ncy5sb2dnZXIuaW5mbyhgU3VjY2Vzc2Z1bGx5IHJlY29ubmVjdGVkIFNJR05BTFIhLiBDb25uZWN0aW9uSWQ6ICR7Y29ubmVjdGlvbklkfWApO1xuXG4gICAgICB0aGlzLmNoZWNrRm9yVXBkYXRlKCk7XG4gICAgICBjb25zdCBndWlkID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChGYWNpbGl0eVN0YXRlLmd1aWQpO1xuICAgICAgaWYgKCEhZ3VpZCkge1xuICAgICAgICB0aGlzLnNldFNwYXJrQ29yZUNvbm5lY3Rpb24odHJ1ZSwgZ3VpZCk7XG4gICAgICB9XG4gICAgICBjb25zdCByZWNvbm5lY3RSdEV2ZW50c1N1YnNjcmlwdGlvbnMgPSB0aGlzLnJlYWx0aW1lRXZlbnRTZXJ2aWNlLmdldFN1YnNjcmlwdGlvbkZvclJlY29ubmVjdCgpO1xuICAgICAgdGhpcy5pbnZva2VSZWFsdGltZVJlZ2lzdHJhdGlvbihyZWNvbm5lY3RSdEV2ZW50c1N1YnNjcmlwdGlvbnMsIHRoaXMuaGFuZGxlUmVhbFRpbWVBd2FpdGluZ1N1YnNjcmlwdGlvbnMuYmluZCh0aGlzKSk7XG5cbiAgICAgIGNvbnN0IG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbnMgPSB0aGlzLm5vdGlmaWNhdGlvbkV2ZW50U2VydmljZS5nZXRTdWJzY3JpcHRpb25Gb3JSZWNvbm5lY3QoKTtcbiAgICAgIG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbnMuZm9yRWFjaChub3RpZmljYXRpb25TdWJzY3JpcHRpb24gPT4ge1xuICAgICAgICB0aGlzLmludm9rZU5vdGlmaWNhdGlvblJlZ2lzdHJhdGlvbihub3RpZmljYXRpb25TdWJzY3JpcHRpb24pO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuaGFuZGxlTm90aWZpY2F0aW9uQXdhaXRpbmdTdWJzY3JpcHRpb24oKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY29ubmVjdGlvbi5vbignUnRFdmVudCcsIChydEV2ZW50VHlwZTogUnRFdmVudFR5cGUsIHBhcmtJZDogbnVtYmVyLCBndWlkOiBzdHJpbmcsIGpzb25QYXlsb2FkOiBzdHJpbmcpID0+IHtcbiAgICAgIG9mKG5ldyBSVE9iamVjdE9iamVjdChydEV2ZW50VHlwZSwgcGFya0lkLCBndWlkLCBqc29uUGF5bG9hZCkpXG4gICAgICAgIC5waXBlKHRoaXMuaGFuZGxlSnNvblBheWxvYWRUb0xvd2VyKCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoUnRFdmVudChyZXMgYXMgUlRPYmplY3RPYmplY3QpO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIHRoaXMuY29ubmVjdGlvbi5vbignTm90aWZpY2F0aW9uJywgKHR5cGU6IE5vdGlmaWNhdGlvbkV2ZW50VHlwZSwgZ3VpZDogc3RyaW5nLCBpZGVudGlmaWVyOiBzdHJpbmcsIGpzb25QYXlsb2FkOiBzdHJpbmcpID0+IHtcbiAgICAgIG9mKG5ldyBTcGFya05vdGlmaWNhdGlvbih0eXBlLCBndWlkLCBpZGVudGlmaWVyLCBqc29uUGF5bG9hZCkpXG4gICAgICAgIC5waXBlKHRoaXMuaGFuZGxlSnNvblBheWxvYWRUb0xvd2VyKCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoTm90aWZpY2F0aW9uKHJlcyBhcyBTcGFya05vdGlmaWNhdGlvbik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNoZWNrRm9yVXBkYXRlKCk6IHZvaWQ7XG5cbiAgcHVibGljIGNvbm5lY3QoKSB7XG4gICAgdGhpcy5fY29ubmVjdCh0aGlzLmNvbm5lY3Rpb24pO1xuICB9XG5cbiAgcHVibGljIGRpc2Nvbm5lY3QoKSB7XG4gICAgdGhpcy5fZGlzY29ubmVjdCh0aGlzLmNvbm5lY3Rpb24pO1xuICB9XG5cbiAgc3Vic2NyaWJlRm9yUmVhbHRpbWUocnRFdmVudFN1YnNjcmlwdGlvbnM6IFJURXZlbnRTdWJzY3JpcHRpb25EdG8sIHRyaWdnZXJGdW5jdGlvbj86ICgpID0+IHZvaWQpIHtcbiAgICBpZiAodGhpcy5jb25uZWN0aW9uKSB7XG4gICAgICBpZiAodGhpcy5jb25uZWN0aW9uLnN0YXRlICE9PSBIdWJDb25uZWN0aW9uU3RhdGUuQ29ubmVjdGVkKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uUXVldWUucHVzaCgoKSA9PiB0aGlzLnN1YnNjcmliZUZvclJlYWx0aW1lKHJ0RXZlbnRTdWJzY3JpcHRpb25zLCB0cmlnZ2VyRnVuY3Rpb24pKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHJ0RXZlbnRTdWJzY3JpcHRpb25EZWx0YSA9IHRoaXMucmVhbHRpbWVFdmVudFNlcnZpY2UuaGFuZGxlUmVhbHRpbWVFdmVudHNTdWJzY3JpcHRpb25zKHJ0RXZlbnRTdWJzY3JpcHRpb25zKTtcbiAgICAgICAgaWYgKHJ0RXZlbnRTdWJzY3JpcHRpb25EZWx0YS5zdWJzY3JpYmUubGVuZ3RoIHx8IHJ0RXZlbnRTdWJzY3JpcHRpb25EZWx0YS51blN1YnNjcmliZS5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmludm9rZVJlYWx0aW1lUmVnaXN0cmF0aW9uKHJ0RXZlbnRTdWJzY3JpcHRpb25EZWx0YSwgdHJpZ2dlckZ1bmN0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHN1YnNjcmliZUZvck5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uOiBOb3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG8sIHRyaWdnZXJGdW5jdGlvbj86ICgpID0+IHZvaWQpIHtcbiAgICBpZiAodGhpcy5jb25uZWN0aW9uKSB7XG4gICAgICBpZiAodGhpcy5jb25uZWN0aW9uLnN0YXRlICE9PSBIdWJDb25uZWN0aW9uU3RhdGUuQ29ubmVjdGVkKSB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uUXVldWUucHVzaCgoKSA9PiB0aGlzLnN1YnNjcmliZUZvck5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uLCB0cmlnZ2VyRnVuY3Rpb24pKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkRlbHRhID0gdGhpcy5ub3RpZmljYXRpb25FdmVudFNlcnZpY2UuaGFuZGxlTm90aWZpY2F0aW9uU3Vic2NyaXB0aW9ucyhub3RpZmljYXRpb25TdWJzY3JpcHRpb24pO1xuICAgICAgICBpZiAoISFub3RpZmljYXRpb25TdWJzY3JpcHRpb25EZWx0YSkge1xuICAgICAgICAgIHRoaXMuaW52b2tlTm90aWZpY2F0aW9uUmVnaXN0cmF0aW9uKG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkRlbHRhLCB0cmlnZ2VyRnVuY3Rpb24pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbnZva2VSZWFsdGltZVJlZ2lzdHJhdGlvbihydEV2ZW50U3Vic2NyaXB0aW9uczogUlRFdmVudFN1YnNjcmlwdGlvbkR0bywgdHJpZ2dlckZ1bmN0aW9uPzogKCkgPT4gdm9pZCkge1xuICAgIGNvbnN0IGFwcE1vZHVsZSA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoU2lkZW5hdlN0YXRlLmFwcE1vZHVsZSk7XG4gICAgaWYgKHJ0RXZlbnRTdWJzY3JpcHRpb25zLnVzZXJJZCkge1xuICAgICAgdGhpcy5jb25uZWN0aW9uLmludm9rZTxSVEV2ZW50U3Vic2NyaXB0aW9uRHRvPignUmVnaXN0ZXJQYXJrJywgcnRFdmVudFN1YnNjcmlwdGlvbnMsIGFwcE1vZHVsZSkudGhlbigoc3ViVG8pID0+IHtcbiAgICAgICAgaWYgKHRyaWdnZXJGdW5jdGlvbikge1xuICAgICAgICAgIHRyaWdnZXJGdW5jdGlvbigpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGludm9rZU5vdGlmaWNhdGlvblJlZ2lzdHJhdGlvbihub3RpZmljYXRpb25TdWJzY3JpcHRpb246IE5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0bywgdHJpZ2dlckZ1bmN0aW9uPzogKCkgPT4gdm9pZCkge1xuICAgIGlmIChub3RpZmljYXRpb25TdWJzY3JpcHRpb24gJiYgbm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uLnVzZXJJZCkge1xuICAgICAgdGhpcy5jb25uZWN0aW9uLmludm9rZTxOb3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG8+KCdSZWdpc3Rlck5vdGlmaWNhdGlvbnMnLCBub3RpZmljYXRpb25TdWJzY3JpcHRpb24pLnRoZW4oKHN1YlRvKSA9PiB7XG4gICAgICAgIGlmICh0cmlnZ2VyRnVuY3Rpb24pIHtcbiAgICAgICAgICB0cmlnZ2VyRnVuY3Rpb24oKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldFNwYXJrQ29yZUNvbm5lY3Rpb24oaXNDb25uZWN0ZWQ6IGJvb2xlYW4sIGd1aWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHNlcnZpY2VzUnVubmluZ1N0YXR1cyA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoRmFjaWxpdHlTdGF0ZS5zZXJ2aWNlc1J1bm5pbmdTdGF0dXNEaWN0aW9uYXJ5KVtndWlkXTtcbiAgICBzZXJ2aWNlc1J1bm5pbmdTdGF0dXMuaXNTcGFya0NvcmVDb25uZWN0ZWQgPSBpc0Nvbm5lY3RlZDtcbiAgICBpZiAoIWlzQ29ubmVjdGVkKSB7XG4gICAgICBjb25zdCBmYWNpbGl0eUd1aWQgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KEZhY2lsaXR5U3RhdGUuZ3VpZCk7XG4gICAgICBjb25zdCBzZXJ2ZXJDbGllbnRUaW1lU3BhbiA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoRmFjaWxpdHlTdGF0ZS5jbGllbnRTZXJ2ZXJEaWZmRGljdGlvbmFyeSlbZmFjaWxpdHlHdWlkXSB8fCAwO1xuICAgICAgc2VydmljZXNSdW5uaW5nU3RhdHVzLnNwYXJrQ29yZURpc2Nvbm5lY3RlZFRpbWVzdGFtcCA9IG1vbWVudCgpLnN1YnRyYWN0KHNlcnZlckNsaWVudFRpbWVTcGFuLCAnbWlsbGlzZWNvbmRzJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlcnZpY2VzUnVubmluZ1N0YXR1cy5zcGFya0NvcmVEaXNjb25uZWN0ZWRUaW1lc3RhbXAgPSBudWxsO1xuICAgIH1cbiAgICB0aGlzLnNlcnZpY2VzUnVubmluZ1N0YXR1c0NoYW5nZWQoc2VydmljZXNSdW5uaW5nU3RhdHVzLCBndWlkKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSnNvblBheWxvYWRUb0xvd2VyKCk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxTaWduYWxST2JqZWN0PiB7XG4gICAgcmV0dXJuICRpbnB1dCA9PiAkaW5wdXQucGlwZShtYXAocmVzID0+IHtcbiAgICAgIGNvbnN0IG9iaiA9IEpTT04ucGFyc2UocmVzLmpzb25QYXlsb2FkKTtcbiAgICAgIHJlcy5qc29uUGF5bG9hZCA9IEpTT04uc3RyaW5naWZ5KG9iaiwgKGtleSwgdmFsdWUpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgY29uc3QgcmVwbGFjZW1lbnQgPSB7fTtcbiAgICAgICAgICBmb3IgKGNvbnN0IGsgaW4gdmFsdWUpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgaykpIHtcbiAgICAgICAgICAgICAgaWYgKGsubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgICAgICAgcmVwbGFjZW1lbnRbayAmJiBrLnRvTG93ZXJDYXNlKCldID0gdmFsdWVba107XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVwbGFjZW1lbnRbayAmJiBrLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpICsgay5zdWJzdHJpbmcoMSldID0gdmFsdWVba107XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlcGxhY2VtZW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZGlzcGF0Y2hOb3RpZmljYXRpb24ob2JqOiBTcGFya05vdGlmaWNhdGlvbik6IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hOb3RpZmljYXRpb24ob2JqOiBTcGFya05vdGlmaWNhdGlvbikge1xuICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKG9iai5qc29uUGF5bG9hZCk7XG4gICAgY29uc29sZS5kZWJ1ZyhgUmVjZWl2ZWQgTm90aWZpY2F0aW9uIHR5cGUgPT09PiAke29iai5ub3RpZmljYXRpb25UeXBlfWApO1xuICAgIHN3aXRjaCAob2JqLm5vdGlmaWNhdGlvblR5cGUpIHtcbiAgICAgIGNhc2UgTm90aWZpY2F0aW9uRXZlbnRUeXBlLkluaXRpYWxDbG91ZENvbm5lY3Q6XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVNtYXJ0UGFya0Nvbm5lY3Rpb24oZGF0YSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBOb3RpZmljYXRpb25FdmVudFR5cGUuRmFjaWxpdHlSZW1vdGVDb21tYW5kRXhlY3V0ZWQ6XG4gICAgICAgIC8vIFRPRE86IHRoaXMgY29uZGl0aW9uIHdpbGwgYmUgcmVtb3ZlZCB3aGVuIGFsbCBcIkZhY2lsaXR5UmVtb3RlQ29tbWFuZEV4ZWN1dGVkXCIgbm90aWZpY2F0aW9uXG4gICAgICAgIC8vIHdpbGwgYmUgcmVtb3ZlZCB1cG9uIGJlaW5nIGV4ZWN1dGVkIGluIHRoZSBzZXJ2ZXJcbiAgICAgICAgLy8gRm9yIG1vcmUgZXhwbGFuYXRpb24gc2VlOiBTUFJLMy02NzA0XG4gICAgICAgIGlmIChkYXRhLnR5cGUgPT09IEZhY2lsaXR5UmVtb3RlQ29tbWFuZFR5cGVzLlRyYW5zbWl0U3BlY2lhbERheXMpIHtcbiAgICAgICAgICBjb25zdCBub3RpZmljYXRpb25TdWJzY3JpcHRpb24gPSB0aGlzLm5vdGlmaWNhdGlvbkV2ZW50U2VydmljZS5nZXROb3RpZmljYXRpb25TdWJzY3JpcHRpb25zRW50aXR5KCk7XG4gICAgICAgICAgbm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uLnR5cGUgPSBvYmoubm90aWZpY2F0aW9uVHlwZTtcbiAgICAgICAgICBub3RpZmljYXRpb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUgPSB0cnVlO1xuICAgICAgICAgIG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbi5pZGVudGlmaWVyID0gdGhpcy5ub3RpZmljYXRpb25FdmVudFNlcnZpY2UuZ2V0Tm90aWZpY2F0aW9uSWRlbnRpZmllcihkYXRhLmd1aWQsIGRhdGEucGFya0lkLFxuICAgICAgICAgICAgb2JqLm5vdGlmaWNhdGlvblR5cGUsIG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbi51c2VySWQpO1xuICAgICAgICAgIHRoaXMuc3Vic2NyaWJlRm9yTm90aWZpY2F0aW9ucyhub3RpZmljYXRpb25TdWJzY3JpcHRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5mYWNpbGl0eVJlbW90ZUNvbW1hbmRFeGVjdXRlZChkYXRhKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE5vdGlmaWNhdGlvbkV2ZW50VHlwZS5HZW5lcmFsQWN0aW9uczpcbiAgICAgICAgdGhpcy5nZW5lcmFsQWN0aW9uU2VydmljZS5kaXNwYXRjaEdlbmVyYWxBY3Rpb25zKGRhdGEpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTm90aWZpY2F0aW9uRXZlbnRUeXBlLkhhbmRsZUFsZXJ0OlxuICAgICAgICB0aGlzLmhhbmRsZUFsZXJ0cyhBbGVydER0by5mcm9tSlMoZGF0YSksIG9iai5ndWlkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE5vdGlmaWNhdGlvbkV2ZW50VHlwZS5IYW5kbGVkTm90aWZpY2F0aW9uOlxuICAgICAgICB0aGlzLmhhbmRsZWROb3RpZmljYXRpb24oTm90aWZpY2F0aW9uRHRvLmZyb21KUyhkYXRhKSwgb2JqLmd1aWQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTm90aWZpY2F0aW9uRXZlbnRUeXBlLkhhbmRsZU5vdGlmaWNhdGlvbjpcbiAgICAgICAgdGhpcy5oYW5kbGVOb3RpZmljYXRpb24oTm90aWZpY2F0aW9uRHRvLmZyb21KUyhkYXRhKSwgb2JqLmd1aWQpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBOb3RpZmljYXRpb25FdmVudFR5cGUuUmVwb3J0R2VuZXJhdGVkOlxuICAgICAgY2FzZSBOb3RpZmljYXRpb25FdmVudFR5cGUuUmVjZWlwdEdlbmVyYXRlZDpcbiAgICAgIGNhc2UgTm90aWZpY2F0aW9uRXZlbnRUeXBlLlN0aWNrZXJHZW5lcmF0ZWQ6XG4gICAgICBjYXNlIE5vdGlmaWNhdGlvbkV2ZW50VHlwZS5BcHBsaWNhdGlvblVwZGF0ZTpcbiAgICAgIGNhc2UgTm90aWZpY2F0aW9uRXZlbnRUeXBlLkNyZWF0ZVJvbGU6XG4gICAgICBjYXNlIE5vdGlmaWNhdGlvbkV2ZW50VHlwZS5VcGRhdGVSb2xlOlxuICAgICAgICB0aGlzLmRpc3BhdGNoTm90aWZpY2F0aW9uKG9iaik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhgVW5rbm93biBub3RpZmljYXRpb24gdHlwZSA9PT0+ICR7b2JqLm5vdGlmaWNhdGlvblR5cGV9YCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBkaXNwYXRjaFJ0RXZlbnQob2JqOiBSVE9iamVjdE9iamVjdCk6IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hSdEV2ZW50KG9iajogUlRPYmplY3RPYmplY3QpIHtcbiAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShvYmouanNvblBheWxvYWQpO1xuICAgIHN3aXRjaCAob2JqLnJ0RXZlbnRUeXBlKSB7XG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLkRldmljZVN0YXR1czpcbiAgICAgICAgdGhpcy5kZXZpY2VzU3RhdHVzQ2hhbmdlZChEZXZpY2VTdGF0dXNEdG8uZnJvbUpTKGRhdGEpKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuRHluYW1pY1ByaWNpbmdDb25kaXRpb246XG4gICAgICAgIGRhdGFkb2dMb2dzLmxvZ2dlci5pbmZvKGBSVCAtIEdvdCAke0pTT04uc3RyaW5naWZ5KGRhdGEpfSBldmVudGApO1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkNoYW5nZWQoTm90aWZpY2F0aW9uRHRvLmZyb21KUyhkYXRhKSwgb2JqLmd1aWQpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBSdEV2ZW50VHlwZS5BbGVydDpcbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuTG9zdFRpY2tldDpcbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuTFBSbWlzbWF0Y2g6XG4gICAgICAgIGRhdGFkb2dMb2dzLmxvZ2dlci5pbmZvKGBSVCAtIEdvdCAke0pTT04uc3RyaW5naWZ5KGRhdGEpfSBldmVudGApO1xuICAgICAgICB0aGlzLmFsZXJ0Q2hhbmdlZChBbGVydER0by5mcm9tSlMoZGF0YSksIG9iai5ndWlkKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuUGFya1N0YXRlOlxuICAgICAgICBkYXRhZG9nTG9ncy5sb2dnZXIuaW5mbyhgUlQgLSBHb3QgJHtKU09OLnN0cmluZ2lmeShkYXRhKX0gZXZlbnRgKTtcbiAgICAgICAgdGhpcy5kZXZpY2VBY3Rpdml0eUNoYW5nZWQoZGF0YSk7XG4gICAgICAgIHRoaXMucGFya0FjdGl2aXR5Q2hhbmdlZChkYXRhKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuRGV2aWNlRXZlbnQ6XG4gICAgICAgIHRoaXMuZGV2aWNlRXZlbnRDaGFuZ2VkKGRhdGEpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBSdEV2ZW50VHlwZS5TZXJ2aWNlc1N0YXR1czpcbiAgICAgICAgdGhpcy5zZXJ2aWNlc1J1bm5pbmdTdGF0dXNDaGFuZ2VkKFNlcnZpY2VzUnVubmluZ1N0YXR1c0R0by5mcm9tSlMoZGF0YSksIG9iai5ndWlkKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuWm9uZTpcbiAgICAgICAgdGhpcy56b25lQ2hhbmdlZChab25lRHRvLmZyb21KUyhkYXRhKSwgb2JqLnBhcmtJZCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLkZhY2lsaXR5OlxuICAgICAgICB0aGlzLmZhY2lsaXR5Q2hhbmdlZChGYWNpbGl0eUR0by5mcm9tSlMoZGF0YSksIG9iai5ndWlkKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuT2NjdXBhbmN5OlxuICAgICAgY2FzZSBSdEV2ZW50VHlwZS5SZXZlbnVlOlxuICAgICAgY2FzZSBSdEV2ZW50VHlwZS5PcGVuVGlja2V0VHJhbnNhY3Rpb246XG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLkNsb3NlVGlja2V0VHJhbnNhY3Rpb246XG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLk1vbnRobHlUcmFuc2FjdGlvbjpcbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuR3Vlc3RUcmFuc2FjdGlvbjpcbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuUGF5bWVudFRyYW5zYWN0aW9uOlxuICAgICAgY2FzZSBSdEV2ZW50VHlwZS5MUFJUcmFuc2FjdGlvbjpcbiAgICAgICAgdGhpcy5kaXNwYXRjaFJ0RXZlbnQob2JqKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnNvbGUuZGVidWcoYFVua25vd24gZXZlbnQgdHlwZSA9PT0+ICR7b2JqLnJ0RXZlbnRUeXBlfWApO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jb25uZWN0KGNvbm5lY3Rpb246IEh1YkNvbm5lY3Rpb24pIHtcbiAgICBjb25zb2xlLmRlYnVnKCdTaWduYWxSIEVzdGFibGlzaGluZyBDb25uZWN0aW9uLi4uJyk7XG4gICAgY29ubmVjdGlvbi5zdGFydCgpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZGVidWcoYFNpZ25hbFIgQ29ubmVjdGlvbiBFc3RhYmxpc2hlZCFgKTtcbiAgICAgICAgdGhpcy5oYW5kbGVSZWFsVGltZUF3YWl0aW5nU3Vic2NyaXB0aW9ucygpO1xuICAgICAgICB0aGlzLmhhbmRsZU5vdGlmaWNhdGlvbkF3YWl0aW5nU3Vic2NyaXB0aW9uKCk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGFzeW5jIChlKSA9PiB7XG4gICAgICAgIHRoaXMucmV0cnlDb25uZWN0aW9uKGNvbm5lY3Rpb24sIDEpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9kaXNjb25uZWN0KGNvbm5lY3Rpb246IEh1YkNvbm5lY3Rpb24pIHtcbiAgICBjb25zb2xlLmRlYnVnKCdTaWduYWxSIFN0b3BwaW5nIENvbm5lY3Rpb24uLi4nKTtcbiAgICBjb25uZWN0aW9uPy5zdG9wKClcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhgU2lnbmFsUiBDb25uZWN0aW9uIFN0b3BwZWQhYCk7XG4gICAgICAgIHRoaXMuaGFuZGxlRGlzY29ubmVjdCgpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChhc3luYyAoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yID0+ICR7ZXJyfSwgVGltZXN0YW1wOiAke25ldyBEYXRlKCl9YCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmV0cnlDb25uZWN0aW9uKGNvbm5lY3Rpb246IEh1YkNvbm5lY3Rpb24sIHJldHJ5Q291bnQ6IG51bWJlcik6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgU2lnbmFsUiBFc3RhYmxpc2hpbmcgQ29ubmVjdGlvbi4gUmV0cnkgIyR7cmV0cnlDb3VudH0uIFRpbWVzdGFtcDogJHtuZXcgRGF0ZSgpfWApO1xuICAgICAgY29ubmVjdGlvbi5zdGFydCgpXG4gICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmRlYnVnKGBTaWduYWxSIENvbm5lY3Rpb24gRXN0YWJsaXNoZWQhIFJldHJ5ICMke3JldHJ5Q291bnR9YCk7XG4gICAgICAgICAgdGhpcy5oYW5kbGVSZWFsVGltZUF3YWl0aW5nU3Vic2NyaXB0aW9ucygpO1xuICAgICAgICAgIHRoaXMuaGFuZGxlTm90aWZpY2F0aW9uQXdhaXRpbmdTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmFwcENvbmZpZy5nZXRDb25maWcoKTtcblxuICAgICAgICAgIGlmIChyZXRyeUNvdW50IDw9IGNvbmZpZy5zaWduYWxSLm1heENvbnNlY3V0aXZlRmFpbGVkUmV0cnlDb3VudCkge1xuICAgICAgICAgICAgdGhpcy5yZXRyeUNvbm5lY3Rpb24oY29ubmVjdGlvbiwgcmV0cnlDb3VudCArIDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgZ2V0U2Vjb25kc0JhY2tvZmYocmV0cnlDb3VudCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVSZWFsVGltZUF3YWl0aW5nU3Vic2NyaXB0aW9ucygpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvblF1ZXVlLmZvckVhY2goYXdhaXRpbmdTdWJzY3JpcHRpb24gPT4gYXdhaXRpbmdTdWJzY3JpcHRpb24oKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25RdWV1ZS5zcGxpY2UoMCk7XG4gIH1cbiAgcHJpdmF0ZSBoYW5kbGVOb3RpZmljYXRpb25Bd2FpdGluZ1N1YnNjcmlwdGlvbigpIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblN1YnNjcmlwdGlvblF1ZXVlLmZvckVhY2goYXdhaXRpbmdTdWJzY3JpcHRpb24gPT4gYXdhaXRpbmdTdWJzY3JpcHRpb24oKSk7XG4gICAgdGhpcy5ub3RpZmljYXRpb25TdWJzY3JpcHRpb25RdWV1ZS5zcGxpY2UoMCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZURpc2Nvbm5lY3QoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25RdWV1ZSA9IFtdO1xuICAgIHRoaXMubm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uUXVldWUgPSBbXTtcbiAgICB0aGlzLnJlYWx0aW1lRXZlbnRTZXJ2aWNlLnJlc2V0QWxsU3Vic2NyaXB0aW9ucygpO1xuICB9XG5cbiAgQERpc3BhdGNoKCkgZGV2aWNlc1N0YXR1c0NoYW5nZWQgPSAoZGV2aWNlU3RhdHVzOiBEZXZpY2VTdGF0dXNEdG8pID0+XG4gICAgbmV3IERldmljZVN0YXR1c0NoYW5nZWRBY3Rpb24oZGV2aWNlU3RhdHVzKTtcbiAgQERpc3BhdGNoKCkgZmFjaWxpdHlDaGFuZ2VkID0gKGRhdGE6IEZhY2lsaXR5RHRvLCBndWlkOiBzdHJpbmcpID0+XG4gICAgbmV3IEZhY2lsaXR5Q2hhbmdlZEFjdGlvbihkYXRhLCBndWlkKTtcbiAgQERpc3BhdGNoKCkgc2VydmljZXNSdW5uaW5nU3RhdHVzQ2hhbmdlZCA9IChzZXJ2aWNlc1J1bm5pbmdTdGF0dXM6IFNlcnZpY2VzUnVubmluZ1N0YXR1c0R0bywgZ3VpZDogc3RyaW5nKSA9PlxuICAgIG5ldyBTZXJ2aWNlc1J1bm5pbmdTdGF0dXNDaGFuZ2VkQWN0aW9uKHNlcnZpY2VzUnVubmluZ1N0YXR1cywgZ3VpZCk7XG4gIEBEaXNwYXRjaCgpIHBhcmtBY3Rpdml0eUNoYW5nZWQgPSAoYWN0aXZpdHk6IEV2ZW50QWN0aXZpdHlEdG8pID0+XG4gICAgbmV3IFBhcmtBY3Rpdml0eUNoYW5nZWRBY3Rpb24oYWN0aXZpdHkpO1xuICBARGlzcGF0Y2goKSBkZXZpY2VFdmVudENoYW5nZWQgPSAoZGV2RXZlbnQ6IERldmljZUV2ZW50RHRvKSA9PlxuICAgIG5ldyBEZXZpY2VFdmVudENoYW5nZWRBY3Rpb24oZGV2RXZlbnQpO1xuICBARGlzcGF0Y2goKSBkZXZpY2VBY3Rpdml0eUNoYW5nZWQgPSAoZXZlbnRBY3Rpdml0eTogRXZlbnRBY3Rpdml0eUR0bykgPT5cbiAgICBuZXcgRGV2aWNlQWN0aXZpdHlDaGFuZ2VkQWN0aW9uKGV2ZW50QWN0aXZpdHkpO1xuICBARGlzcGF0Y2goKSBscHJUcmFuc2FjdGlvbnNDaGFuZ2VkID0gKGxwclRyYW5zOiBMcHJUcmFuc2FjdGlvbkR0bykgPT5cbiAgICBuZXcgTHByVHJhbnNhY3Rpb25zQ2hhbmdlZEFjdGlvbihscHJUcmFucyk7XG4gIEBEaXNwYXRjaCgpIGFsZXJ0Q2hhbmdlZCA9IChhbGVydER0bzogQWxlcnREdG8sIGd1aWQ6IHN0cmluZykgPT5cbiAgICBuZXcgQWxlcnRDaGFuZ2VkQWN0aW9uKGFsZXJ0RHRvLCBndWlkKTtcbiAgQERpc3BhdGNoKCkgbm90aWZpY2F0aW9uQ2hhbmdlZCA9IChub3RpZmljYXRpb25EdG86IE5vdGlmaWNhdGlvbkR0bywgZ3VpZDogc3RyaW5nKSA9PlxuICAgIG5ldyBOb3RpZmljYXRpb25DaGFuZ2VkQWN0aW9uKG5vdGlmaWNhdGlvbkR0bywgZ3VpZCk7XG4gIEBEaXNwYXRjaCgpIGhhbmRsZWROb3RpZmljYXRpb24gPSAobm90aWZpY2F0aW9uRHRvOiBOb3RpZmljYXRpb25EdG8sIGd1aWQ6IHN0cmluZykgPT5cbiAgICBuZXcgSGFuZGxlZE5vdGlmaWNhdGlvbkFjdGlvbihub3RpZmljYXRpb25EdG8sIGd1aWQpO1xuICBARGlzcGF0Y2goKSBoYW5kbGVBbGVydHMgPSAoYWxlcnREdG86IEFsZXJ0RHRvLCBndWlkOiBzdHJpbmcpID0+XG4gICAgbmV3IEhhbmRsZUFsZXJ0c0FjdGlvbihhbGVydER0bywgZ3VpZCk7XG4gIEBEaXNwYXRjaCgpIGhhbmRsZU5vdGlmaWNhdGlvbiA9IChub3RpZmljYXRpb25EdG86IE5vdGlmaWNhdGlvbkR0bywgZ3VpZDogc3RyaW5nKSA9PlxuICAgIG5ldyBIYW5kbGVOb3RpZmljYXRpb25BY3Rpb24obm90aWZpY2F0aW9uRHRvLCBndWlkKTtcbiAgQERpc3BhdGNoKCkgem9uZUNoYW5nZWQgPSAoem9uZUR0bzogWm9uZUR0bywgcGFya0lkOiBudW1iZXIpID0+XG4gICAgbmV3IFpvbmVDaGFuZ2VkQWN0aW9uKHpvbmVEdG8sIHBhcmtJZCk7XG4gIEBEaXNwYXRjaCgpIGluaXRpYWxpemVTbWFydFBhcmtDb25uZWN0aW9uID0gKHNtYXJ0cGFyazogU21hcnRwYXJrRHRvKSA9PlxuICAgIG5ldyBBZGRTbWFydHBhcmtBY3Rpb24oc21hcnRwYXJrKTtcbiAgQERpc3BhdGNoKCkgZmFjaWxpdHlSZW1vdGVDb21tYW5kRXhlY3V0ZWQgPSAoZmFjaWxpdHlSZW1vdGVDb21tYW5kRXZlbnQ6IEZhY2lsaXR5UmVtb3RlQ29tbWFuZEV2ZW50KSA9PlxuICAgIG5ldyBGYWNpbGl0eVJlbW90ZUNvbW1hbmRFeGVjdXRlZEFjdGlvbihmYWNpbGl0eVJlbW90ZUNvbW1hbmRFdmVudCk7XG59XG5cbmV4cG9ydCBjbGFzcyBUaWJhUmV0cnlQb2xpY3kgaW1wbGVtZW50cyBzaWduYWxSLklSZXRyeVBvbGljeSB7XG5cbiAgcHJpdmF0ZSBtYXhDb25zZWN1dGl2ZUZhaWxlZFJldHJ5Q291bnQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihtYXhDb25zZWN1dGl2ZUZhaWxlZFJldHJ5Q291bnQ6IG51bWJlcikge1xuICAgIHRoaXMubWF4Q29uc2VjdXRpdmVGYWlsZWRSZXRyeUNvdW50ID0gbWF4Q29uc2VjdXRpdmVGYWlsZWRSZXRyeUNvdW50O1xuICB9XG5cbiAgbmV4dFJldHJ5RGVsYXlJbk1pbGxpc2Vjb25kcyhyZXRyeUNvbnRleHQ6IHNpZ25hbFIuUmV0cnlDb250ZXh0KTogbnVtYmVyIHtcbiAgICBsZXQgbWlsbGlzZWNvbmRzOiBudW1iZXIgPSBudWxsO1xuICAgIGNvbnN0IGN1cnJlbnRSZXRyeUNvdW50ID0gcmV0cnlDb250ZXh0LnByZXZpb3VzUmV0cnlDb3VudCArIDE7XG5cbiAgICBpZiAoY3VycmVudFJldHJ5Q291bnQgPCB0aGlzLm1heENvbnNlY3V0aXZlRmFpbGVkUmV0cnlDb3VudCkge1xuICAgICAgY29uc3QgdW5hdXRob3JpemVkID0gcmV0cnlDb250ZXh0LnJldHJ5UmVhc29uLm1lc3NhZ2UuaW5jbHVkZXMoYFN0YXR1cyBjb2RlICcke0h0dHBTdGF0dXNDb2RlLlVuYXV0aG9yaXplZH0nYCk7XG5cbiAgICAgIGlmICh1bmF1dGhvcml6ZWQpIHtcbiAgICAgICAgZGF0YWRvZ0xvZ3MubG9nZ2VyLmluZm8oYFRpYmFSZXRyeVBvbGljeSAtPiB1bmF1dGhvcml6ZWQgdG9rZW4uIE1lc3NhZ2U6ICAke3JldHJ5Q29udGV4dC5yZXRyeVJlYXNvbi5tZXNzYWdlfWApO1xuICAgICAgICB0aGlzLnNpZ25hbFJSZWZyZXNoVG9rZW4oKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRhdGFkb2dMb2dzLmxvZ2dlci5pbmZvKGBUaWJhUmV0cnlQb2xpY3kgLT4gZmFpbGVkIG5lZ290aWF0aW9uICMke2N1cnJlbnRSZXRyeUNvdW50fS4gTWVzc2FnZTogJHtyZXRyeUNvbnRleHQucmV0cnlSZWFzb24ubWVzc2FnZX1gKTtcblxuICAgICAgICBtaWxsaXNlY29uZHMgPSBnZXRTZWNvbmRzQmFja29mZihjdXJyZW50UmV0cnlDb3VudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1pbGxpc2Vjb25kcztcbiAgfVxuXG4gIEBEaXNwYXRjaCgpIHNpZ25hbFJSZWZyZXNoVG9rZW4gPSAoKSA9PiBuZXcgU2lnbmFsUlJlZnJlc2hUb2tlbkFjdGlvbigpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2Vjb25kc0JhY2tvZmYocmV0cnlDb3VudDogbnVtYmVyKTogbnVtYmVyIHtcbiAgY29uc3QgZGVsYXlzVGFibGVJblNlY29uZHM6IHsgW2tleTogbnVtYmVyXTogbnVtYmVyW107IH0gPSB7XG4gICAgMTogWzUsIDIwXSwgLy81cyAtIDIwc1xuICAgIDI6IFsyNSwgNDBdLCAvLyAyNXMgLSA0MHNcbiAgICAzOiBbNDUsIDYwXSwgLy8gNDVzIC0gNjBzXG4gICAgNDogWzY1LCA4MF0sIC8vIDY1cyAtIDgwc1xuICAgIDU6IFs2MDAsIDkwMF0sICAvLyAxMG0gLSAxNW1cbiAgfTtcbiAgY29uc3QgW21pblNlY29uZHMsIG1heFNlY29uZHNdID0gZGVsYXlzVGFibGVJblNlY29uZHNbcmV0cnlDb3VudF0gfHwgWzAsIDBdO1xuICByZXR1cm4gKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIChtYXhTZWNvbmRzIC0gbWluU2Vjb25kcyArIDEpKSArIG1pblNlY29uZHMpICogT05FX1NFQ09ORF9JTl9NSUxMSVNFQ09ORFM7XG59XG4iXX0=
|
|
443
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9zZXJ2aWNlcy9zaWduYWxyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFpQixvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQTRCLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDakcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSx5QkFBeUIsRUFBRSx3QkFBd0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQzlNLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxtQ0FBbUMsRUFBRSxrQ0FBa0MsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pLLE9BQU8sRUFB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QUFFLENBQUMsRUFBRSxZQUFZO1FBQ3pCLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxZQUFZO1FBQ3pCLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRyxZQUFZO0tBQzdCLENBQUM7SUFDRixNQUFNLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxHQUFHLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVFLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLFVBQVUsR0FBRyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsR0FBRywwQkFBMEIsQ0FBQztBQUMvRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFN0YXR1c0NvZGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGF0YWRvZ0xvZ3MgfSBmcm9tICdAZGF0YWRvZy9icm93c2VyLWxvZ3MnO1xuaW1wb3J0IHsgSHR0cFRyYW5zcG9ydFR5cGUsIEh1YkNvbm5lY3Rpb24sIEh1YkNvbm5lY3Rpb25CdWlsZGVyLCBIdWJDb25uZWN0aW9uU3RhdGUgfSBmcm9tICdAbWljcm9zb2Z0L3NpZ25hbHInO1xuaW1wb3J0IHsgRGlzcGF0Y2ggfSBmcm9tICdAbmd4cy1sYWJzL2Rpc3BhdGNoLWRlY29yYXRvcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbkV2ZW50U2VydmljZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IE9ORV9TRUNPTkRfSU5fTUlMTElTRUNPTkRTIH0gZnJvbSAnLi4vY29uc3RhbnRzL2dsb2JhbC1jb25zdGFudHMnO1xuaW1wb3J0IHsgQXBwVHlwZSB9IGZyb20gJy4uL2VudW1zL2FwcC10eXBlLmVudW0nO1xuaW1wb3J0IHsgQWxlcnRDaGFuZ2VkQWN0aW9uLCBIYW5kbGVBbGVydHNBY3Rpb24sIEhhbmRsZWROb3RpZmljYXRpb25BY3Rpb24sIEhhbmRsZU5vdGlmaWNhdGlvbkFjdGlvbiwgTm90aWZpY2F0aW9uQ2hhbmdlZEFjdGlvbiB9IGZyb20gJy4uL21vZHVsZXMvYWxlcnRzLWFuZC1ub3RpZmljYXRpb25zL2FsZXJ0cy1hbmQtbm90aWZpY2F0aW9ucy5hY3Rpb25zJztcbmltcG9ydCB7IFNpZ25hbFJSZWZyZXNoVG9rZW5BY3Rpb24gfSBmcm9tICcuLi9tb2R1bGVzL2F1dGgvcmVmcmVzaC10b2tlbi5hY3Rpb25zJztcbmltcG9ydCB7IEZhY2lsaXR5Q2hhbmdlZEFjdGlvbiwgRmFjaWxpdHlSZW1vdGVDb21tYW5kRXhlY3V0ZWRBY3Rpb24sIFNlcnZpY2VzUnVubmluZ1N0YXR1c0NoYW5nZWRBY3Rpb24sIFpvbmVDaGFuZ2VkQWN0aW9uIH0gZnJvbSAnLi4vbW9kdWxlcy9mYWNpbGl0eS9mYWNpbGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IEZhY2lsaXR5U3RhdGUgfSBmcm9tICcuLi9tb2R1bGVzL2ZhY2lsaXR5L2ZhY2lsaXR5LnN0YXRlJztcbmltcG9ydCB7IFBhcmtBY3Rpdml0eUNoYW5nZWRBY3Rpb24gfSBmcm9tICcuLi9tb2R1bGVzL3BhcmstYWN0aXZpdGllcy9wYXJrLWFjdGl2aXRpZXMuYWN0aW9ucyc7XG5pbXBvcnQgeyBEZXZpY2VBY3Rpdml0eUNoYW5nZWRBY3Rpb24sIERldmljZUV2ZW50Q2hhbmdlZEFjdGlvbiwgRGV2aWNlU3RhdHVzQ2hhbmdlZEFjdGlvbiwgTHByVHJhbnNhY3Rpb25zQ2hhbmdlZEFjdGlvbiB9IGZyb20gJy4uL21vZHVsZXMvcGFyay1tYW5hZ2VyL3BhcmstbWFuYWdlci5hY3Rpb25zJztcbmltcG9ydCB7IFNpZGVuYXZTdGF0ZSB9IGZyb20gJy4uL21vZHVsZXMvc2lkZW5hdi9zaWRlbmF2LnN0YXRlJztcbmltcG9ydCB7IEFkZFNtYXJ0cGFya0FjdGlvbiB9IGZyb20gJy4uL21vZHVsZXMvc21hcnRwYXJrcy9zbWFydHBhcmstZGlhbG9nLmFjdGlvbnMnO1xuaW1wb3J0IHsgQWxlcnREdG8sIE5vdGlmaWNhdGlvbkR0bywgU21hcnRwYXJrRHRvIH0gZnJvbSAnLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHtcbiAgRGV2aWNlRXZlbnREdG8sIERldmljZVN0YXR1c0R0bywgRXZlbnRBY3Rpdml0eUR0bywgRmFjaWxpdHlEdG8sIEZhY2lsaXR5UmVtb3RlQ29tbWFuZEV2ZW50LFxuICBGYWNpbGl0eVJlbW90ZUNvbW1hbmRUeXBlcywgTHByVHJhbnNhY3Rpb25EdG8sIE5vdGlmaWNhdGlvbkV2ZW50VHlwZSwgTm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRHRvLFxuICBSVEV2ZW50U3Vic2NyaXB0aW9uRHRvLCBSdEV2ZW50VHlwZSwgU2VydmljZXNSdW5uaW5nU3RhdHVzRHRvLCBab25lRHRvXG59IGZyb20gJy4uL3NlcnZpY2UtcHJveHkvZWRnZS1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4vYXBwLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IEdlbmVyYWxBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9nZW5lcmFsLWFjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFJlYWx0aW1lRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9yZWFsdGltZS1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4vc2Vzc2lvbi1zdG9yYWdlLnNlcnZpY2UnO1xuXG5leHBvcnQgY2xhc3MgU2lnbmFsUk9iamVjdCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBndWlkOiBzdHJpbmcsIHB1YmxpYyBqc29uUGF5bG9hZDogc3RyaW5nKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJUT2JqZWN0T2JqZWN0IGV4dGVuZHMgU2lnbmFsUk9iamVjdCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBydEV2ZW50VHlwZTogUnRFdmVudFR5cGUsIHB1YmxpYyBwYXJrSWQ6IG51bWJlciwgcHVibGljIGd1aWQ6IHN0cmluZywgcHVibGljIGpzb25QYXlsb2FkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihndWlkLCBqc29uUGF5bG9hZCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNwYXJrTm90aWZpY2F0aW9uIGV4dGVuZHMgU2lnbmFsUk9iamVjdCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBub3RpZmljYXRpb25UeXBlOiBOb3RpZmljYXRpb25FdmVudFR5cGUsIHB1YmxpYyBndWlkOiBzdHJpbmcsIHB1YmxpYyBpZGVudGlmaWVyOiBzdHJpbmcsIHB1YmxpYyBqc29uUGF5bG9hZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoZ3VpZCwganNvblBheWxvYWQpO1xuICB9XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTaWduYWxSIHtcblxuICBwdWJsaWMgY29ubmVjdGlvbjogSHViQ29ubmVjdGlvbjtcbiAgcHVibGljIHN1YnNjcmlwdGlvblF1ZXVlOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgbm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uUXVldWU6IGFueVtdID0gW107XG5cbiAgcHJvdGVjdGVkIHN0b3JlOiBTdG9yZTtcbiAgcHJvdGVjdGVkIHJlYWx0aW1lRXZlbnRTZXJ2aWNlOiBSZWFsdGltZUV2ZW50U2VydmljZTtcbiAgcHJvdGVjdGVkIG5vdGlmaWNhdGlvbkV2ZW50U2VydmljZTogTm90aWZpY2F0aW9uRXZlbnRTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2U7XG4gIHByb3RlY3RlZCBhcHBDb25maWc6IEFwcENvbmZpZ1NlcnZpY2U7XG4gIHByb3RlY3RlZCBnZW5lcmFsQWN0aW9uU2VydmljZTogR2VuZXJhbEFjdGlvblNlcnZpY2U7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIHRoaXMuc3RvcmUgPSBpbmplY3Rvci5nZXQoU3RvcmUpO1xuICAgIHRoaXMucmVhbHRpbWVFdmVudFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoUmVhbHRpbWVFdmVudFNlcnZpY2UpO1xuICAgIHRoaXMubm90aWZpY2F0aW9uRXZlbnRTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KE5vdGlmaWNhdGlvbkV2ZW50U2VydmljZSk7XG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlKTtcbiAgICB0aGlzLmFwcENvbmZpZyA9IGluamVjdG9yLmdldChBcHBDb25maWdTZXJ2aWNlKTtcbiAgICB0aGlzLmdlbmVyYWxBY3Rpb25TZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KEdlbmVyYWxBY3Rpb25TZXJ2aWNlKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0UmVhbHRpbWVFdmVudExpc3RlbmVycygpIHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmFwcENvbmZpZy5nZXRDb25maWcoKTtcbiAgICBjb25zdCBiYXNlVXJsID0gY29uZmlnLmFwcFR5cGUgPT09IEFwcFR5cGUuTW9iaWxlID8gY29uZmlnLmFwaUJhc2VVUkwgOiAnJztcbiAgICBjb25zdCB1cmwgPSBgJHtiYXNlVXJsfS9yZWFsdGltZWA7XG5cbiAgICBkYXRhZG9nTG9ncy5sb2dnZXIuaW5mbyhgUlQgQVBJIEJhc2UgVXJsIC0gJHt1cmx9YCk7XG5cbiAgICBjb25zdCBtYXhDb25zZWN1dGl2ZUZhaWxlZFJldHJ5Q291bnQgPSBjb25maWcuc2lnbmFsUi5tYXhDb25zZWN1dGl2ZUZhaWxlZFJldHJ5Q291bnQ7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb24gPSBuZXcgSHViQ29ubmVjdGlvbkJ1aWxkZXIoKVxuICAgICAgLndpdGhVcmwodXJsLCB7XG4gICAgICAgIGFjY2Vzc1Rva2VuRmFjdG9yeTogKCkgPT4gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuYWNjZXNzVG9rZW4sXG4gICAgICAgIHNraXBOZWdvdGlhdGlvbjogdHJ1ZSwgIC8vIFNraXAgdGhlIG5lZ290aWF0aW9uIHN0ZXBcbiAgICAgICAgdHJhbnNwb3J0OiBIdHRwVHJhbnNwb3J0VHlwZS5XZWJTb2NrZXRzICAvLyBVc2UgV2ViU29ja2V0cyBkaXJlY3RseVxuICAgICAgfSlcbiAgICAgIC53aXRoQXV0b21hdGljUmVjb25uZWN0KG5ldyBUaWJhUmV0cnlQb2xpY3kobWF4Q29uc2VjdXRpdmVGYWlsZWRSZXRyeUNvdW50KSlcbiAgICAgIC5idWlsZCgpO1xuXG4gICAgdGhpcy5jb25uZWN0aW9uLm9ucmVjb25uZWN0aW5nKChlcnJvcikgPT4ge1xuICAgICAgZGF0YWRvZ0xvZ3MubG9nZ2VyLmluZm8oJ0F0dGVtcHRpbmcgdG8gcmVjb25uZWN0OicsIGVycm9yKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY29ubmVjdGlvbi5vbmNsb3NlKChlcnJvcikgPT4ge1xuICAgICAgZGF0YWRvZ0xvZ3MubG9nZ2VyLmluZm8oJ0Nvbm5lY3Rpb24gY2xvc2VkIGFmdGVyIGFsbCByZXRyeSBhdHRlbXB0czonLCBlcnJvcik7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb24ub25yZWNvbm5lY3RlZCgoY29ubmVjdGlvbklkKSA9PiB7XG4gICAgICBkYXRhZG9nTG9ncy5sb2dnZXIuaW5mbyhgU3VjY2Vzc2Z1bGx5IHJlY29ubmVjdGVkIFNJR05BTFIhLiBDb25uZWN0aW9uSWQ6ICR7Y29ubmVjdGlvbklkfWApO1xuXG4gICAgICB0aGlzLmNoZWNrRm9yVXBkYXRlKCk7XG4gICAgICBjb25zdCBndWlkID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChGYWNpbGl0eVN0YXRlLmd1aWQpO1xuICAgICAgaWYgKCEhZ3VpZCkge1xuICAgICAgICB0aGlzLnNldFNwYXJrQ29yZUNvbm5lY3Rpb24odHJ1ZSwgZ3VpZCk7XG4gICAgICB9XG4gICAgICBjb25zdCByZWNvbm5lY3RSdEV2ZW50c1N1YnNjcmlwdGlvbnMgPSB0aGlzLnJlYWx0aW1lRXZlbnRTZXJ2aWNlLmdldFN1YnNjcmlwdGlvbkZvclJlY29ubmVjdCgpO1xuICAgICAgdGhpcy5pbnZva2VSZWFsdGltZVJlZ2lzdHJhdGlvbihyZWNvbm5lY3RSdEV2ZW50c1N1YnNjcmlwdGlvbnMsIHRoaXMuaGFuZGxlUmVhbFRpbWVBd2FpdGluZ1N1YnNjcmlwdGlvbnMuYmluZCh0aGlzKSk7XG5cbiAgICAgIGNvbnN0IG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbnMgPSB0aGlzLm5vdGlmaWNhdGlvbkV2ZW50U2VydmljZS5nZXRTdWJzY3JpcHRpb25Gb3JSZWNvbm5lY3QoKTtcbiAgICAgIG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbnMuZm9yRWFjaChub3RpZmljYXRpb25TdWJzY3JpcHRpb24gPT4ge1xuICAgICAgICB0aGlzLmludm9rZU5vdGlmaWNhdGlvblJlZ2lzdHJhdGlvbihub3RpZmljYXRpb25TdWJzY3JpcHRpb24pO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuaGFuZGxlTm90aWZpY2F0aW9uQXdhaXRpbmdTdWJzY3JpcHRpb24oKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY29ubmVjdGlvbi5vbignUnRFdmVudCcsIChydEV2ZW50VHlwZTogUnRFdmVudFR5cGUsIHBhcmtJZDogbnVtYmVyLCBndWlkOiBzdHJpbmcsIGpzb25QYXlsb2FkOiBzdHJpbmcpID0+IHtcbiAgICAgIG9mKG5ldyBSVE9iamVjdE9iamVjdChydEV2ZW50VHlwZSwgcGFya0lkLCBndWlkLCBqc29uUGF5bG9hZCkpXG4gICAgICAgIC5waXBlKHRoaXMuaGFuZGxlSnNvblBheWxvYWRUb0xvd2VyKCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoUnRFdmVudChyZXMgYXMgUlRPYmplY3RPYmplY3QpO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIHRoaXMuY29ubmVjdGlvbi5vbignTm90aWZpY2F0aW9uJywgKHR5cGU6IE5vdGlmaWNhdGlvbkV2ZW50VHlwZSwgZ3VpZDogc3RyaW5nLCBpZGVudGlmaWVyOiBzdHJpbmcsIGpzb25QYXlsb2FkOiBzdHJpbmcpID0+IHtcbiAgICAgIG9mKG5ldyBTcGFya05vdGlmaWNhdGlvbih0eXBlLCBndWlkLCBpZGVudGlmaWVyLCBqc29uUGF5bG9hZCkpXG4gICAgICAgIC5waXBlKHRoaXMuaGFuZGxlSnNvblBheWxvYWRUb0xvd2VyKCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoTm90aWZpY2F0aW9uKHJlcyBhcyBTcGFya05vdGlmaWNhdGlvbik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNoZWNrRm9yVXBkYXRlKCk6IHZvaWQ7XG5cbiAgcHVibGljIGNvbm5lY3QoKSB7XG4gICAgdGhpcy5fY29ubmVjdCh0aGlzLmNvbm5lY3Rpb24pO1xuICB9XG5cbiAgcHVibGljIGRpc2Nvbm5lY3QoKSB7XG4gICAgdGhpcy5fZGlzY29ubmVjdCh0aGlzLmNvbm5lY3Rpb24pO1xuICB9XG5cbiAgc3Vic2NyaWJlRm9yUmVhbHRpbWUocnRFdmVudFN1YnNjcmlwdGlvbnM6IFJURXZlbnRTdWJzY3JpcHRpb25EdG8sIHRyaWdnZXJGdW5jdGlvbj86ICgpID0+IHZvaWQpIHtcbiAgICBpZiAodGhpcy5jb25uZWN0aW9uKSB7XG4gICAgICBpZiAodGhpcy5jb25uZWN0aW9uLnN0YXRlICE9PSBIdWJDb25uZWN0aW9uU3RhdGUuQ29ubmVjdGVkKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uUXVldWUucHVzaCgoKSA9PiB0aGlzLnN1YnNjcmliZUZvclJlYWx0aW1lKHJ0RXZlbnRTdWJzY3JpcHRpb25zLCB0cmlnZ2VyRnVuY3Rpb24pKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHJ0RXZlbnRTdWJzY3JpcHRpb25EZWx0YSA9IHRoaXMucmVhbHRpbWVFdmVudFNlcnZpY2UuaGFuZGxlUmVhbHRpbWVFdmVudHNTdWJzY3JpcHRpb25zKHJ0RXZlbnRTdWJzY3JpcHRpb25zKTtcbiAgICAgICAgaWYgKHJ0RXZlbnRTdWJzY3JpcHRpb25EZWx0YS5zdWJzY3JpYmUubGVuZ3RoIHx8IHJ0RXZlbnRTdWJzY3JpcHRpb25EZWx0YS51blN1YnNjcmliZS5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmludm9rZVJlYWx0aW1lUmVnaXN0cmF0aW9uKHJ0RXZlbnRTdWJzY3JpcHRpb25EZWx0YSwgdHJpZ2dlckZ1bmN0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHN1YnNjcmliZUZvck5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uOiBOb3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG8sIHRyaWdnZXJGdW5jdGlvbj86ICgpID0+IHZvaWQpIHtcbiAgICBpZiAodGhpcy5jb25uZWN0aW9uKSB7XG4gICAgICBpZiAodGhpcy5jb25uZWN0aW9uLnN0YXRlICE9PSBIdWJDb25uZWN0aW9uU3RhdGUuQ29ubmVjdGVkKSB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uUXVldWUucHVzaCgoKSA9PiB0aGlzLnN1YnNjcmliZUZvck5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uLCB0cmlnZ2VyRnVuY3Rpb24pKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkRlbHRhID0gdGhpcy5ub3RpZmljYXRpb25FdmVudFNlcnZpY2UuaGFuZGxlTm90aWZpY2F0aW9uU3Vic2NyaXB0aW9ucyhub3RpZmljYXRpb25TdWJzY3JpcHRpb24pO1xuICAgICAgICBpZiAoISFub3RpZmljYXRpb25TdWJzY3JpcHRpb25EZWx0YSkge1xuICAgICAgICAgIHRoaXMuaW52b2tlTm90aWZpY2F0aW9uUmVnaXN0cmF0aW9uKG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkRlbHRhLCB0cmlnZ2VyRnVuY3Rpb24pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbnZva2VSZWFsdGltZVJlZ2lzdHJhdGlvbihydEV2ZW50U3Vic2NyaXB0aW9uczogUlRFdmVudFN1YnNjcmlwdGlvbkR0bywgdHJpZ2dlckZ1bmN0aW9uPzogKCkgPT4gdm9pZCkge1xuICAgIGNvbnN0IGFwcE1vZHVsZSA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoU2lkZW5hdlN0YXRlLmFwcE1vZHVsZSk7XG4gICAgaWYgKHJ0RXZlbnRTdWJzY3JpcHRpb25zLnVzZXJJZCkge1xuICAgICAgdGhpcy5jb25uZWN0aW9uLmludm9rZTxSVEV2ZW50U3Vic2NyaXB0aW9uRHRvPignUmVnaXN0ZXJQYXJrJywgcnRFdmVudFN1YnNjcmlwdGlvbnMsIGFwcE1vZHVsZSkudGhlbigoc3ViVG8pID0+IHtcbiAgICAgICAgaWYgKHRyaWdnZXJGdW5jdGlvbikge1xuICAgICAgICAgIHRyaWdnZXJGdW5jdGlvbigpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGludm9rZU5vdGlmaWNhdGlvblJlZ2lzdHJhdGlvbihub3RpZmljYXRpb25TdWJzY3JpcHRpb246IE5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0bywgdHJpZ2dlckZ1bmN0aW9uPzogKCkgPT4gdm9pZCkge1xuICAgIGlmIChub3RpZmljYXRpb25TdWJzY3JpcHRpb24gJiYgbm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uLnVzZXJJZCkge1xuICAgICAgdGhpcy5jb25uZWN0aW9uLmludm9rZTxOb3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG8+KCdSZWdpc3Rlck5vdGlmaWNhdGlvbnMnLCBub3RpZmljYXRpb25TdWJzY3JpcHRpb24pLnRoZW4oKHN1YlRvKSA9PiB7XG4gICAgICAgIGlmICh0cmlnZ2VyRnVuY3Rpb24pIHtcbiAgICAgICAgICB0cmlnZ2VyRnVuY3Rpb24oKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldFNwYXJrQ29yZUNvbm5lY3Rpb24oaXNDb25uZWN0ZWQ6IGJvb2xlYW4sIGd1aWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHNlcnZpY2VzUnVubmluZ1N0YXR1cyA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoRmFjaWxpdHlTdGF0ZS5zZXJ2aWNlc1J1bm5pbmdTdGF0dXNEaWN0aW9uYXJ5KVtndWlkXTtcbiAgICBzZXJ2aWNlc1J1bm5pbmdTdGF0dXMuaXNTcGFya0NvcmVDb25uZWN0ZWQgPSBpc0Nvbm5lY3RlZDtcbiAgICBpZiAoIWlzQ29ubmVjdGVkKSB7XG4gICAgICBjb25zdCBmYWNpbGl0eUd1aWQgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KEZhY2lsaXR5U3RhdGUuZ3VpZCk7XG4gICAgICBjb25zdCBzZXJ2ZXJDbGllbnRUaW1lU3BhbiA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoRmFjaWxpdHlTdGF0ZS5jbGllbnRTZXJ2ZXJEaWZmRGljdGlvbmFyeSlbZmFjaWxpdHlHdWlkXSB8fCAwO1xuICAgICAgc2VydmljZXNSdW5uaW5nU3RhdHVzLnNwYXJrQ29yZURpc2Nvbm5lY3RlZFRpbWVzdGFtcCA9IG1vbWVudCgpLnN1YnRyYWN0KHNlcnZlckNsaWVudFRpbWVTcGFuLCAnbWlsbGlzZWNvbmRzJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlcnZpY2VzUnVubmluZ1N0YXR1cy5zcGFya0NvcmVEaXNjb25uZWN0ZWRUaW1lc3RhbXAgPSBudWxsO1xuICAgIH1cbiAgICB0aGlzLnNlcnZpY2VzUnVubmluZ1N0YXR1c0NoYW5nZWQoc2VydmljZXNSdW5uaW5nU3RhdHVzLCBndWlkKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSnNvblBheWxvYWRUb0xvd2VyKCk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxTaWduYWxST2JqZWN0PiB7XG4gICAgcmV0dXJuICRpbnB1dCA9PiAkaW5wdXQucGlwZShtYXAocmVzID0+IHtcbiAgICAgIGNvbnN0IG9iaiA9IEpTT04ucGFyc2UocmVzLmpzb25QYXlsb2FkKTtcbiAgICAgIHJlcy5qc29uUGF5bG9hZCA9IEpTT04uc3RyaW5naWZ5KG9iaiwgKGtleSwgdmFsdWUpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgY29uc3QgcmVwbGFjZW1lbnQgPSB7fTtcbiAgICAgICAgICBmb3IgKGNvbnN0IGsgaW4gdmFsdWUpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgaykpIHtcbiAgICAgICAgICAgICAgaWYgKGsubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgICAgICAgcmVwbGFjZW1lbnRbayAmJiBrLnRvTG93ZXJDYXNlKCldID0gdmFsdWVba107XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVwbGFjZW1lbnRbayAmJiBrLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpICsgay5zdWJzdHJpbmcoMSldID0gdmFsdWVba107XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlcGxhY2VtZW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZGlzcGF0Y2hOb3RpZmljYXRpb24ob2JqOiBTcGFya05vdGlmaWNhdGlvbik6IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hOb3RpZmljYXRpb24ob2JqOiBTcGFya05vdGlmaWNhdGlvbikge1xuICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKG9iai5qc29uUGF5bG9hZCk7XG4gICAgY29uc29sZS5kZWJ1ZyhgUmVjZWl2ZWQgTm90aWZpY2F0aW9uIHR5cGUgPT09PiAke29iai5ub3RpZmljYXRpb25UeXBlfWApO1xuICAgIHN3aXRjaCAob2JqLm5vdGlmaWNhdGlvblR5cGUpIHtcbiAgICAgIGNhc2UgTm90aWZpY2F0aW9uRXZlbnRUeXBlLkluaXRpYWxDbG91ZENvbm5lY3Q6XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVNtYXJ0UGFya0Nvbm5lY3Rpb24oZGF0YSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBOb3RpZmljYXRpb25FdmVudFR5cGUuRmFjaWxpdHlSZW1vdGVDb21tYW5kRXhlY3V0ZWQ6XG4gICAgICAgIC8vIFRPRE86IHRoaXMgY29uZGl0aW9uIHdpbGwgYmUgcmVtb3ZlZCB3aGVuIGFsbCBcIkZhY2lsaXR5UmVtb3RlQ29tbWFuZEV4ZWN1dGVkXCIgbm90aWZpY2F0aW9uXG4gICAgICAgIC8vIHdpbGwgYmUgcmVtb3ZlZCB1cG9uIGJlaW5nIGV4ZWN1dGVkIGluIHRoZSBzZXJ2ZXJcbiAgICAgICAgLy8gRm9yIG1vcmUgZXhwbGFuYXRpb24gc2VlOiBTUFJLMy02NzA0XG4gICAgICAgIGlmIChkYXRhLnR5cGUgPT09IEZhY2lsaXR5UmVtb3RlQ29tbWFuZFR5cGVzLlRyYW5zbWl0U3BlY2lhbERheXMpIHtcbiAgICAgICAgICBjb25zdCBub3RpZmljYXRpb25TdWJzY3JpcHRpb24gPSB0aGlzLm5vdGlmaWNhdGlvbkV2ZW50U2VydmljZS5nZXROb3RpZmljYXRpb25TdWJzY3JpcHRpb25zRW50aXR5KCk7XG4gICAgICAgICAgbm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uLnR5cGUgPSBvYmoubm90aWZpY2F0aW9uVHlwZTtcbiAgICAgICAgICBub3RpZmljYXRpb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUgPSB0cnVlO1xuICAgICAgICAgIG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbi5pZGVudGlmaWVyID0gdGhpcy5ub3RpZmljYXRpb25FdmVudFNlcnZpY2UuZ2V0Tm90aWZpY2F0aW9uSWRlbnRpZmllcihkYXRhLmd1aWQsIGRhdGEucGFya0lkLFxuICAgICAgICAgICAgb2JqLm5vdGlmaWNhdGlvblR5cGUsIG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbi51c2VySWQpO1xuICAgICAgICAgIHRoaXMuc3Vic2NyaWJlRm9yTm90aWZpY2F0aW9ucyhub3RpZmljYXRpb25TdWJzY3JpcHRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5mYWNpbGl0eVJlbW90ZUNvbW1hbmRFeGVjdXRlZChkYXRhKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE5vdGlmaWNhdGlvbkV2ZW50VHlwZS5HZW5lcmFsQWN0aW9uczpcbiAgICAgICAgdGhpcy5nZW5lcmFsQWN0aW9uU2VydmljZS5kaXNwYXRjaEdlbmVyYWxBY3Rpb25zKGRhdGEpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTm90aWZpY2F0aW9uRXZlbnRUeXBlLkhhbmRsZUFsZXJ0OlxuICAgICAgICB0aGlzLmhhbmRsZUFsZXJ0cyhBbGVydER0by5mcm9tSlMoZGF0YSksIG9iai5ndWlkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE5vdGlmaWNhdGlvbkV2ZW50VHlwZS5IYW5kbGVkTm90aWZpY2F0aW9uOlxuICAgICAgICB0aGlzLmhhbmRsZWROb3RpZmljYXRpb24oTm90aWZpY2F0aW9uRHRvLmZyb21KUyhkYXRhKSwgb2JqLmd1aWQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTm90aWZpY2F0aW9uRXZlbnRUeXBlLkhhbmRsZU5vdGlmaWNhdGlvbjpcbiAgICAgICAgdGhpcy5oYW5kbGVOb3RpZmljYXRpb24oTm90aWZpY2F0aW9uRHRvLmZyb21KUyhkYXRhKSwgb2JqLmd1aWQpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBOb3RpZmljYXRpb25FdmVudFR5cGUuUmVwb3J0R2VuZXJhdGVkOlxuICAgICAgY2FzZSBOb3RpZmljYXRpb25FdmVudFR5cGUuUmVjZWlwdEdlbmVyYXRlZDpcbiAgICAgIGNhc2UgTm90aWZpY2F0aW9uRXZlbnRUeXBlLlN0aWNrZXJHZW5lcmF0ZWQ6XG4gICAgICBjYXNlIE5vdGlmaWNhdGlvbkV2ZW50VHlwZS5BcHBsaWNhdGlvblVwZGF0ZTpcbiAgICAgIGNhc2UgTm90aWZpY2F0aW9uRXZlbnRUeXBlLkNyZWF0ZVJvbGU6XG4gICAgICBjYXNlIE5vdGlmaWNhdGlvbkV2ZW50VHlwZS5VcGRhdGVSb2xlOlxuICAgICAgICB0aGlzLmRpc3BhdGNoTm90aWZpY2F0aW9uKG9iaik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhgVW5rbm93biBub3RpZmljYXRpb24gdHlwZSA9PT0+ICR7b2JqLm5vdGlmaWNhdGlvblR5cGV9YCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBkaXNwYXRjaFJ0RXZlbnQob2JqOiBSVE9iamVjdE9iamVjdCk6IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hSdEV2ZW50KG9iajogUlRPYmplY3RPYmplY3QpIHtcbiAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShvYmouanNvblBheWxvYWQpO1xuICAgIHN3aXRjaCAob2JqLnJ0RXZlbnRUeXBlKSB7XG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLkRldmljZVN0YXR1czpcbiAgICAgICAgdGhpcy5kZXZpY2VzU3RhdHVzQ2hhbmdlZChEZXZpY2VTdGF0dXNEdG8uZnJvbUpTKGRhdGEpKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuRHluYW1pY1ByaWNpbmdDb25kaXRpb246XG4gICAgICAgIGRhdGFkb2dMb2dzLmxvZ2dlci5kZWJ1ZyhgUlQgLSBHb3QgJHtKU09OLnN0cmluZ2lmeShkYXRhKX0gZXZlbnRgKTtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25DaGFuZ2VkKE5vdGlmaWNhdGlvbkR0by5mcm9tSlMoZGF0YSksIG9iai5ndWlkKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuQWxlcnQ6XG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLkxvc3RUaWNrZXQ6XG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLkxQUm1pc21hdGNoOlxuICAgICAgICBkYXRhZG9nTG9ncy5sb2dnZXIuZGVidWcoYFJUIC0gR290ICR7SlNPTi5zdHJpbmdpZnkoZGF0YSl9IGV2ZW50YCk7XG4gICAgICAgIHRoaXMuYWxlcnRDaGFuZ2VkKEFsZXJ0RHRvLmZyb21KUyhkYXRhKSwgb2JqLmd1aWQpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBSdEV2ZW50VHlwZS5QYXJrU3RhdGU6XG4gICAgICAgIGRhdGFkb2dMb2dzLmxvZ2dlci5kZWJ1ZyhgUlQgLSBHb3QgJHtKU09OLnN0cmluZ2lmeShkYXRhKX0gZXZlbnRgKTtcbiAgICAgICAgdGhpcy5kZXZpY2VBY3Rpdml0eUNoYW5nZWQoZGF0YSk7XG4gICAgICAgIHRoaXMucGFya0FjdGl2aXR5Q2hhbmdlZChkYXRhKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuRGV2aWNlRXZlbnQ6XG4gICAgICAgIHRoaXMuZGV2aWNlRXZlbnRDaGFuZ2VkKGRhdGEpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBSdEV2ZW50VHlwZS5TZXJ2aWNlc1N0YXR1czpcbiAgICAgICAgdGhpcy5zZXJ2aWNlc1J1bm5pbmdTdGF0dXNDaGFuZ2VkKFNlcnZpY2VzUnVubmluZ1N0YXR1c0R0by5mcm9tSlMoZGF0YSksIG9iai5ndWlkKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuWm9uZTpcbiAgICAgICAgdGhpcy56b25lQ2hhbmdlZChab25lRHRvLmZyb21KUyhkYXRhKSwgb2JqLnBhcmtJZCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLkZhY2lsaXR5OlxuICAgICAgICB0aGlzLmZhY2lsaXR5Q2hhbmdlZChGYWNpbGl0eUR0by5mcm9tSlMoZGF0YSksIG9iai5ndWlkKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuT2NjdXBhbmN5OlxuICAgICAgY2FzZSBSdEV2ZW50VHlwZS5SZXZlbnVlOlxuICAgICAgY2FzZSBSdEV2ZW50VHlwZS5PcGVuVGlja2V0VHJhbnNhY3Rpb246XG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLkNsb3NlVGlja2V0VHJhbnNhY3Rpb246XG4gICAgICBjYXNlIFJ0RXZlbnRUeXBlLk1vbnRobHlUcmFuc2FjdGlvbjpcbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuR3Vlc3RUcmFuc2FjdGlvbjpcbiAgICAgIGNhc2UgUnRFdmVudFR5cGUuUGF5bWVudFRyYW5zYWN0aW9uOlxuICAgICAgY2FzZSBSdEV2ZW50VHlwZS5MUFJUcmFuc2FjdGlvbjpcbiAgICAgICAgdGhpcy5kaXNwYXRjaFJ0RXZlbnQob2JqKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnNvbGUuZGVidWcoYFVua25vd24gZXZlbnQgdHlwZSA9PT0+ICR7b2JqLnJ0RXZlbnRUeXBlfWApO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jb25uZWN0KGNvbm5lY3Rpb246IEh1YkNvbm5lY3Rpb24pIHtcbiAgICBjb25zb2xlLmRlYnVnKCdTaWduYWxSIEVzdGFibGlzaGluZyBDb25uZWN0aW9uLi4uJyk7XG4gICAgY29ubmVjdGlvbi5zdGFydCgpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZGVidWcoYFNpZ25hbFIgQ29ubmVjdGlvbiBFc3RhYmxpc2hlZCFgKTtcbiAgICAgICAgdGhpcy5oYW5kbGVSZWFsVGltZUF3YWl0aW5nU3Vic2NyaXB0aW9ucygpO1xuICAgICAgICB0aGlzLmhhbmRsZU5vdGlmaWNhdGlvbkF3YWl0aW5nU3Vic2NyaXB0aW9uKCk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGFzeW5jIChlKSA9PiB7XG4gICAgICAgIHRoaXMucmV0cnlDb25uZWN0aW9uKGNvbm5lY3Rpb24sIDEpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9kaXNjb25uZWN0KGNvbm5lY3Rpb246IEh1YkNvbm5lY3Rpb24pIHtcbiAgICBjb25zb2xlLmRlYnVnKCdTaWduYWxSIFN0b3BwaW5nIENvbm5lY3Rpb24uLi4nKTtcbiAgICBjb25uZWN0aW9uPy5zdG9wKClcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhgU2lnbmFsUiBDb25uZWN0aW9uIFN0b3BwZWQhYCk7XG4gICAgICAgIHRoaXMuaGFuZGxlRGlzY29ubmVjdCgpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChhc3luYyAoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yID0+ICR7ZXJyfSwgVGltZXN0YW1wOiAke25ldyBEYXRlKCl9YCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmV0cnlDb25uZWN0aW9uKGNvbm5lY3Rpb246IEh1YkNvbm5lY3Rpb24sIHJldHJ5Q291bnQ6IG51bWJlcik6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgU2lnbmFsUiBFc3RhYmxpc2hpbmcgQ29ubmVjdGlvbi4gUmV0cnkgIyR7cmV0cnlDb3VudH0uIFRpbWVzdGFtcDogJHtuZXcgRGF0ZSgpfWApO1xuICAgICAgY29ubmVjdGlvbi5zdGFydCgpXG4gICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmRlYnVnKGBTaWduYWxSIENvbm5lY3Rpb24gRXN0YWJsaXNoZWQhIFJldHJ5ICMke3JldHJ5Q291bnR9YCk7XG4gICAgICAgICAgdGhpcy5oYW5kbGVSZWFsVGltZUF3YWl0aW5nU3Vic2NyaXB0aW9ucygpO1xuICAgICAgICAgIHRoaXMuaGFuZGxlTm90aWZpY2F0aW9uQXdhaXRpbmdTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmFwcENvbmZpZy5nZXRDb25maWcoKTtcblxuICAgICAgICAgIGlmIChyZXRyeUNvdW50IDw9IGNvbmZpZy5zaWduYWxSLm1heENvbnNlY3V0aXZlRmFpbGVkUmV0cnlDb3VudCkge1xuICAgICAgICAgICAgdGhpcy5yZXRyeUNvbm5lY3Rpb24oY29ubmVjdGlvbiwgcmV0cnlDb3VudCArIDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgZ2V0U2Vjb25kc0JhY2tvZmYocmV0cnlDb3VudCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVSZWFsVGltZUF3YWl0aW5nU3Vic2NyaXB0aW9ucygpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvblF1ZXVlLmZvckVhY2goYXdhaXRpbmdTdWJzY3JpcHRpb24gPT4gYXdhaXRpbmdTdWJzY3JpcHRpb24oKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25RdWV1ZS5zcGxpY2UoMCk7XG4gIH1cbiAgcHJpdmF0ZSBoYW5kbGVOb3RpZmljYXRpb25Bd2FpdGluZ1N1YnNjcmlwdGlvbigpIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblN1YnNjcmlwdGlvblF1ZXVlLmZvckVhY2goYXdhaXRpbmdTdWJzY3JpcHRpb24gPT4gYXdhaXRpbmdTdWJzY3JpcHRpb24oKSk7XG4gICAgdGhpcy5ub3RpZmljYXRpb25TdWJzY3JpcHRpb25RdWV1ZS5zcGxpY2UoMCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZURpc2Nvbm5lY3QoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25RdWV1ZSA9IFtdO1xuICAgIHRoaXMubm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uUXVldWUgPSBbXTtcbiAgICB0aGlzLnJlYWx0aW1lRXZlbnRTZXJ2aWNlLnJlc2V0QWxsU3Vic2NyaXB0aW9ucygpO1xuICB9XG5cbiAgQERpc3BhdGNoKCkgZGV2aWNlc1N0YXR1c0NoYW5nZWQgPSAoZGV2aWNlU3RhdHVzOiBEZXZpY2VTdGF0dXNEdG8pID0+XG4gICAgbmV3IERldmljZVN0YXR1c0NoYW5nZWRBY3Rpb24oZGV2aWNlU3RhdHVzKTtcbiAgQERpc3BhdGNoKCkgZmFjaWxpdHlDaGFuZ2VkID0gKGRhdGE6IEZhY2lsaXR5RHRvLCBndWlkOiBzdHJpbmcpID0+XG4gICAgbmV3IEZhY2lsaXR5Q2hhbmdlZEFjdGlvbihkYXRhLCBndWlkKTtcbiAgQERpc3BhdGNoKCkgc2VydmljZXNSdW5uaW5nU3RhdHVzQ2hhbmdlZCA9IChzZXJ2aWNlc1J1bm5pbmdTdGF0dXM6IFNlcnZpY2VzUnVubmluZ1N0YXR1c0R0bywgZ3VpZDogc3RyaW5nKSA9PlxuICAgIG5ldyBTZXJ2aWNlc1J1bm5pbmdTdGF0dXNDaGFuZ2VkQWN0aW9uKHNlcnZpY2VzUnVubmluZ1N0YXR1cywgZ3VpZCk7XG4gIEBEaXNwYXRjaCgpIHBhcmtBY3Rpdml0eUNoYW5nZWQgPSAoYWN0aXZpdHk6IEV2ZW50QWN0aXZpdHlEdG8pID0+XG4gICAgbmV3IFBhcmtBY3Rpdml0eUNoYW5nZWRBY3Rpb24oYWN0aXZpdHkpO1xuICBARGlzcGF0Y2goKSBkZXZpY2VFdmVudENoYW5nZWQgPSAoZGV2RXZlbnQ6IERldmljZUV2ZW50RHRvKSA9PlxuICAgIG5ldyBEZXZpY2VFdmVudENoYW5nZWRBY3Rpb24oZGV2RXZlbnQpO1xuICBARGlzcGF0Y2goKSBkZXZpY2VBY3Rpdml0eUNoYW5nZWQgPSAoZXZlbnRBY3Rpdml0eTogRXZlbnRBY3Rpdml0eUR0bykgPT5cbiAgICBuZXcgRGV2aWNlQWN0aXZpdHlDaGFuZ2VkQWN0aW9uKGV2ZW50QWN0aXZpdHkpO1xuICBARGlzcGF0Y2goKSBscHJUcmFuc2FjdGlvbnNDaGFuZ2VkID0gKGxwclRyYW5zOiBMcHJUcmFuc2FjdGlvbkR0bykgPT5cbiAgICBuZXcgTHByVHJhbnNhY3Rpb25zQ2hhbmdlZEFjdGlvbihscHJUcmFucyk7XG4gIEBEaXNwYXRjaCgpIGFsZXJ0Q2hhbmdlZCA9IChhbGVydER0bzogQWxlcnREdG8sIGd1aWQ6IHN0cmluZykgPT5cbiAgICBuZXcgQWxlcnRDaGFuZ2VkQWN0aW9uKGFsZXJ0RHRvLCBndWlkKTtcbiAgQERpc3BhdGNoKCkgbm90aWZpY2F0aW9uQ2hhbmdlZCA9IChub3RpZmljYXRpb25EdG86IE5vdGlmaWNhdGlvbkR0bywgZ3VpZDogc3RyaW5nKSA9PlxuICAgIG5ldyBOb3RpZmljYXRpb25DaGFuZ2VkQWN0aW9uKG5vdGlmaWNhdGlvbkR0bywgZ3VpZCk7XG4gIEBEaXNwYXRjaCgpIGhhbmRsZWROb3RpZmljYXRpb24gPSAobm90aWZpY2F0aW9uRHRvOiBOb3RpZmljYXRpb25EdG8sIGd1aWQ6IHN0cmluZykgPT5cbiAgICBuZXcgSGFuZGxlZE5vdGlmaWNhdGlvbkFjdGlvbihub3RpZmljYXRpb25EdG8sIGd1aWQpO1xuICBARGlzcGF0Y2goKSBoYW5kbGVBbGVydHMgPSAoYWxlcnREdG86IEFsZXJ0RHRvLCBndWlkOiBzdHJpbmcpID0+XG4gICAgbmV3IEhhbmRsZUFsZXJ0c0FjdGlvbihhbGVydER0bywgZ3VpZCk7XG4gIEBEaXNwYXRjaCgpIGhhbmRsZU5vdGlmaWNhdGlvbiA9IChub3RpZmljYXRpb25EdG86IE5vdGlmaWNhdGlvbkR0bywgZ3VpZDogc3RyaW5nKSA9PlxuICAgIG5ldyBIYW5kbGVOb3RpZmljYXRpb25BY3Rpb24obm90aWZpY2F0aW9uRHRvLCBndWlkKTtcbiAgQERpc3BhdGNoKCkgem9uZUNoYW5nZWQgPSAoem9uZUR0bzogWm9uZUR0bywgcGFya0lkOiBudW1iZXIpID0+XG4gICAgbmV3IFpvbmVDaGFuZ2VkQWN0aW9uKHpvbmVEdG8sIHBhcmtJZCk7XG4gIEBEaXNwYXRjaCgpIGluaXRpYWxpemVTbWFydFBhcmtDb25uZWN0aW9uID0gKHNtYXJ0cGFyazogU21hcnRwYXJrRHRvKSA9PlxuICAgIG5ldyBBZGRTbWFydHBhcmtBY3Rpb24oc21hcnRwYXJrKTtcbiAgQERpc3BhdGNoKCkgZmFjaWxpdHlSZW1vdGVDb21tYW5kRXhlY3V0ZWQgPSAoZmFjaWxpdHlSZW1vdGVDb21tYW5kRXZlbnQ6IEZhY2lsaXR5UmVtb3RlQ29tbWFuZEV2ZW50KSA9PlxuICAgIG5ldyBGYWNpbGl0eVJlbW90ZUNvbW1hbmRFeGVjdXRlZEFjdGlvbihmYWNpbGl0eVJlbW90ZUNvbW1hbmRFdmVudCk7XG59XG5cbmV4cG9ydCBjbGFzcyBUaWJhUmV0cnlQb2xpY3kgaW1wbGVtZW50cyBzaWduYWxSLklSZXRyeVBvbGljeSB7XG5cbiAgcHJpdmF0ZSBtYXhDb25zZWN1dGl2ZUZhaWxlZFJldHJ5Q291bnQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihtYXhDb25zZWN1dGl2ZUZhaWxlZFJldHJ5Q291bnQ6IG51bWJlcikge1xuICAgIHRoaXMubWF4Q29uc2VjdXRpdmVGYWlsZWRSZXRyeUNvdW50ID0gbWF4Q29uc2VjdXRpdmVGYWlsZWRSZXRyeUNvdW50O1xuICB9XG5cbiAgbmV4dFJldHJ5RGVsYXlJbk1pbGxpc2Vjb25kcyhyZXRyeUNvbnRleHQ6IHNpZ25hbFIuUmV0cnlDb250ZXh0KTogbnVtYmVyIHtcbiAgICBsZXQgbWlsbGlzZWNvbmRzOiBudW1iZXIgPSBudWxsO1xuICAgIGNvbnN0IGN1cnJlbnRSZXRyeUNvdW50ID0gcmV0cnlDb250ZXh0LnByZXZpb3VzUmV0cnlDb3VudCArIDE7XG5cbiAgICBpZiAoY3VycmVudFJldHJ5Q291bnQgPCB0aGlzLm1heENvbnNlY3V0aXZlRmFpbGVkUmV0cnlDb3VudCkge1xuICAgICAgY29uc3QgdW5hdXRob3JpemVkID0gcmV0cnlDb250ZXh0LnJldHJ5UmVhc29uLm1lc3NhZ2UuaW5jbHVkZXMoYFN0YXR1cyBjb2RlICcke0h0dHBTdGF0dXNDb2RlLlVuYXV0aG9yaXplZH0nYCk7XG5cbiAgICAgIGlmICh1bmF1dGhvcml6ZWQpIHtcbiAgICAgICAgZGF0YWRvZ0xvZ3MubG9nZ2VyLmluZm8oYFRpYmFSZXRyeVBvbGljeSAtPiB1bmF1dGhvcml6ZWQgdG9rZW4uIE1lc3NhZ2U6ICAke3JldHJ5Q29udGV4dC5yZXRyeVJlYXNvbi5tZXNzYWdlfWApO1xuICAgICAgICB0aGlzLnNpZ25hbFJSZWZyZXNoVG9rZW4oKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRhdGFkb2dMb2dzLmxvZ2dlci5pbmZvKGBUaWJhUmV0cnlQb2xpY3kgLT4gZmFpbGVkIG5lZ290aWF0aW9uICMke2N1cnJlbnRSZXRyeUNvdW50fS4gTWVzc2FnZTogJHtyZXRyeUNvbnRleHQucmV0cnlSZWFzb24ubWVzc2FnZX1gKTtcblxuICAgICAgICBtaWxsaXNlY29uZHMgPSBnZXRTZWNvbmRzQmFja29mZihjdXJyZW50UmV0cnlDb3VudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1pbGxpc2Vjb25kcztcbiAgfVxuXG4gIEBEaXNwYXRjaCgpIHNpZ25hbFJSZWZyZXNoVG9rZW4gPSAoKSA9PiBuZXcgU2lnbmFsUlJlZnJlc2hUb2tlbkFjdGlvbigpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2Vjb25kc0JhY2tvZmYocmV0cnlDb3VudDogbnVtYmVyKTogbnVtYmVyIHtcbiAgY29uc3QgZGVsYXlzVGFibGVJblNlY29uZHM6IHsgW2tleTogbnVtYmVyXTogbnVtYmVyW107IH0gPSB7XG4gICAgMTogWzUsIDIwXSwgLy81cyAtIDIwc1xuICAgIDI6IFsyNSwgNDBdLCAvLyAyNXMgLSA0MHNcbiAgICAzOiBbNDUsIDYwXSwgLy8gNDVzIC0gNjBzXG4gICAgNDogWzY1LCA4MF0sIC8vIDY1cyAtIDgwc1xuICAgIDU6IFs2MDAsIDkwMF0sICAvLyAxMG0gLSAxNW1cbiAgfTtcbiAgY29uc3QgW21pblNlY29uZHMsIG1heFNlY29uZHNdID0gZGVsYXlzVGFibGVJblNlY29uZHNbcmV0cnlDb3VudF0gfHwgWzAsIDBdO1xuICByZXR1cm4gKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIChtYXhTZWNvbmRzIC0gbWluU2Vjb25kcyArIDEpKSArIG1pblNlY29uZHMpICogT05FX1NFQ09ORF9JTl9NSUxMSVNFQ09ORFM7XG59XG4iXX0=
|
|
@@ -90775,11 +90775,12 @@ class AuditLogoutAction {
|
|
|
90775
90775
|
constructor() {
|
|
90776
90776
|
}
|
|
90777
90777
|
}
|
|
90778
|
-
|
|
90779
|
-
|
|
90780
|
-
|
|
90781
|
-
|
|
90782
|
-
}
|
|
90778
|
+
//TODO , enable backoffice logout when , BE Audit for backoffice is implemented
|
|
90779
|
+
// export class AuditBackofficeAction {
|
|
90780
|
+
// public static readonly type = '[Session] AuditBackoffice';
|
|
90781
|
+
// constructor() {
|
|
90782
|
+
// }
|
|
90783
|
+
// }
|
|
90783
90784
|
class AuditLogoutMobileAction {
|
|
90784
90785
|
static { this.type = '[Session] AuditLogoutMobile'; }
|
|
90785
90786
|
constructor() {
|
|
@@ -92195,25 +92196,28 @@ let SessionState = class SessionState {
|
|
|
92195
92196
|
AuditLogoutAction(ctx, action) {
|
|
92196
92197
|
const sparkSessions = this.getSparkSessions();
|
|
92197
92198
|
const tenantName = sessionStorage.getItem(TENANT_KEY);
|
|
92198
|
-
const tenantInfo = ctx.getState().sparkSessions[tenantName]
|
|
92199
|
+
const tenantInfo = ctx.getState().sparkSessions[tenantName]?.tenant;
|
|
92199
92200
|
if (this.isTenantUndefined(tenantInfo, sparkSessions[tenantName])) {
|
|
92200
92201
|
return of(null); // Handle the case where tenant or sparkSessions are undefined
|
|
92201
92202
|
}
|
|
92202
92203
|
return this.usersServiceProxy.auditLogout().pipe(tap$1(() => { }));
|
|
92203
92204
|
}
|
|
92204
|
-
|
|
92205
|
-
|
|
92206
|
-
|
|
92207
|
-
|
|
92208
|
-
|
|
92209
|
-
|
|
92210
|
-
|
|
92211
|
-
|
|
92212
|
-
}
|
|
92205
|
+
//TODO , enable backoffice logout when , BE Audit for backoffice is implemented
|
|
92206
|
+
// @Action(AuditBackofficeAction)
|
|
92207
|
+
// public onAuditBackofficeAction(ctx: StateContext<SessionStateModel>, action: AuditBackofficeAction) {
|
|
92208
|
+
// const sparkSessions = this.getSparkSessions();
|
|
92209
|
+
// const tenantName = sessionStorage.getItem(TENANT_KEY);
|
|
92210
|
+
// const tenantInfo = ctx.getState().sparkSessions[tenantName].tenant;
|
|
92211
|
+
// if (this.isTenantUndefined(tenantInfo, sparkSessions[tenantName])) {
|
|
92212
|
+
// return of(null); // Handle the case where tenant or sparkSessions are undefined
|
|
92213
|
+
// }
|
|
92214
|
+
// return this.backofficeServiceProxy.backofficeAuditLogout().pipe(
|
|
92215
|
+
// tap(() => { }));
|
|
92216
|
+
// }
|
|
92213
92217
|
AuditLogoutMobileAction(ctx, action) {
|
|
92214
92218
|
const sparkSessions = this.getSparkSessions();
|
|
92215
92219
|
const tenantName = sessionStorage.getItem(TENANT_KEY);
|
|
92216
|
-
const tenantInfo = ctx.getState().sparkSessions[tenantName]
|
|
92220
|
+
const tenantInfo = ctx.getState().sparkSessions[tenantName]?.tenant;
|
|
92217
92221
|
if (this.isTenantUndefined(tenantInfo, sparkSessions[tenantName])) {
|
|
92218
92222
|
return of(null); // Handle the case where tenant or sparkSessions are undefined
|
|
92219
92223
|
}
|
|
@@ -92271,9 +92275,10 @@ let SessionState = class SessionState {
|
|
|
92271
92275
|
if (logoutAudit) {
|
|
92272
92276
|
ctx.dispatch(new AuditLogoutAction());
|
|
92273
92277
|
}
|
|
92274
|
-
|
|
92275
|
-
|
|
92276
|
-
|
|
92278
|
+
//TODO , enable backoffice logout when , BE Audit for backoffice is implemented
|
|
92279
|
+
// if (logoutBackofficeAudit) {
|
|
92280
|
+
// ctx.dispatch(new AuditBackofficeAction());
|
|
92281
|
+
// }
|
|
92277
92282
|
return this.router.events.pipe(// observe all route events
|
|
92278
92283
|
filter$1(e => e instanceof NavigationEnd && e.url.includes('/account/login')), // filter only NavigationEnd events
|
|
92279
92284
|
distinctUntilChanged$1(), first$1(), switchMap(() => {
|
|
@@ -92422,9 +92427,6 @@ __decorate([
|
|
|
92422
92427
|
__decorate([
|
|
92423
92428
|
Action(AuditLogoutAction)
|
|
92424
92429
|
], SessionState.prototype, "AuditLogoutAction", null);
|
|
92425
|
-
__decorate([
|
|
92426
|
-
Action(AuditBackofficeAction)
|
|
92427
|
-
], SessionState.prototype, "onAuditBackofficeAction", null);
|
|
92428
92430
|
__decorate([
|
|
92429
92431
|
Action(AuditLogoutMobileAction)
|
|
92430
92432
|
], SessionState.prototype, "AuditLogoutMobileAction", null);
|
|
@@ -92508,7 +92510,7 @@ SessionState = SessionState_1 = __decorate([
|
|
|
92508
92510
|
], SessionState);
|
|
92509
92511
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SessionState, decorators: [{
|
|
92510
92512
|
type: Injectable
|
|
92511
|
-
}], ctorParameters: () => [{ type: SessionStorageService }, { type: LocalStorageService }, { type: AppConfigService }, { type: AuthService }, { type: ConfigurationServiceProxy$1 }, { type: BackofficeServiceProxy }, { type: i1$8.Router }, { type: HttpCancelService }, { type: i1$5.TranslateService }, { type: i10.MsalService }, { type: UsersServiceProxy$1 }, { type: OpenIdAuthService }, { type: MessageBarService }, { type: MobileServiceProxy }, { type: MobileServiceProxyIdentity }], propDecorators: { onLogin: [], onSetTenantUserAction: [], onUpdateAuthTokenAction: [], setSessionState: [], SetUserNameAction: [], AuditLogoutAction: [],
|
|
92513
|
+
}], ctorParameters: () => [{ type: SessionStorageService }, { type: LocalStorageService }, { type: AppConfigService }, { type: AuthService }, { type: ConfigurationServiceProxy$1 }, { type: BackofficeServiceProxy }, { type: i1$8.Router }, { type: HttpCancelService }, { type: i1$5.TranslateService }, { type: i10.MsalService }, { type: UsersServiceProxy$1 }, { type: OpenIdAuthService }, { type: MessageBarService }, { type: MobileServiceProxy }, { type: MobileServiceProxyIdentity }], propDecorators: { onLogin: [], onSetTenantUserAction: [], onUpdateAuthTokenAction: [], setSessionState: [], SetUserNameAction: [], AuditLogoutAction: [], AuditLogoutMobileAction: [], onMobileLogoutAction: [], onLogout: [], onTenantLoadAction: [], onTenantClearAction: [], onHealthActionAction: [], onUpdateUserSettings: [], onUpdateTenantInfoProps: [], onAuthenticate2FAforUser: [], onLoadSessionFromLocalStorageAction: [], onBackofficeAppConfigurationAction: [], onAppConfigurationAction: [], onLoadAppConfigurationMobileAction: [] } });
|
|
92512
92514
|
|
|
92513
92515
|
let UpdateUserSettingsAction = class UpdateUserSettingsAction {
|
|
92514
92516
|
static { this.type = '[user-settings] Update-user-settings'; }
|
|
@@ -95032,17 +95034,17 @@ class SignalR {
|
|
|
95032
95034
|
this.devicesStatusChanged(DeviceStatusDto.fromJS(data));
|
|
95033
95035
|
break;
|
|
95034
95036
|
case RtEventType.DynamicPricingCondition:
|
|
95035
|
-
datadogLogs.logger.
|
|
95037
|
+
datadogLogs.logger.debug(`RT - Got ${JSON.stringify(data)} event`);
|
|
95036
95038
|
this.notificationChanged(NotificationDto.fromJS(data), obj.guid);
|
|
95037
95039
|
break;
|
|
95038
95040
|
case RtEventType.Alert:
|
|
95039
95041
|
case RtEventType.LostTicket:
|
|
95040
95042
|
case RtEventType.LPRmismatch:
|
|
95041
|
-
datadogLogs.logger.
|
|
95043
|
+
datadogLogs.logger.debug(`RT - Got ${JSON.stringify(data)} event`);
|
|
95042
95044
|
this.alertChanged(AlertDto$1.fromJS(data), obj.guid);
|
|
95043
95045
|
break;
|
|
95044
95046
|
case RtEventType.ParkState:
|
|
95045
|
-
datadogLogs.logger.
|
|
95047
|
+
datadogLogs.logger.debug(`RT - Got ${JSON.stringify(data)} event`);
|
|
95046
95048
|
this.deviceActivityChanged(data);
|
|
95047
95049
|
this.parkActivityChanged(data);
|
|
95048
95050
|
break;
|
|
@@ -109411,5 +109413,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
109411
109413
|
* Generated bundle index. Do not edit.
|
|
109412
109414
|
*/
|
|
109413
109415
|
|
|
109414
|
-
export { ACCESS_PROFILE_DAT_TYPES_SP, ACTIVE_BYTE, ADVANCED_OPTIONS_VALUE, AES_DEFAULT_IV, ALERT_NOTIFICATION_CONTAINER, ALLOWED_FILES_FORMATS, ALLOWED_FILES_MAX_SIZE_MB, ALLOWED_FILES__SIZE_200_KB, ALLOWED_FILES__SIZE_2_MB, ALLOWED_NUMBER_OF_DAYS, ALLOWED_UPLOAD_FILES_QUANTITY, ALL_DAYS_IN_BINARY, ALL_DAYS_IN_BYTE, AccessProfileChangeValidTypesText, AccessProfileDayTypesText, AccessProfileRestrictionTypesText, AccessProfileShortDayTypesText, AccessProfileSpecialDaysMap, AccessProfileTypesText, AccountFrameMessageBarComponent, AccountSetPasswordAction, AccountSetPasswordErrorAction, AccountSetPasswordInitAction, ActionReasonsModule, ActionReasonsState, ActionStatusService, AddSmartparkAction, AddUserAction, AdministrativeNotificationEntityType, AdministrativeNotificationsModule, AdministrativeNotificationsState, AggregatedStatusText, AlertChangedAction, AlertNotificationBorderClass, AlertNotificationClassificationMap, AlertNotificationComponent, AlertNotificationService, AlertsAndNotificationsService, AlertsAndNotificationsState, AlertsDeviceTypeLabel, AlertsDeviceTypeOptions, AlertsDeviceTypeOptionsMapping, AlertsPreferencesDto, AmountStepSurchargeMinLimit, AnalyticsCommandsText, AnalyticsEventsText, AnalyticsService, AnalyticsSourceComponent, AnalyticsSourceProps, AppConfigService, AppModuleService, AppModuleToMainPermissionTypeMap, AppSectionLabel, AppSectionModuleMenu, AppSectionRoute, AppSettingsService, AppType, AuditActionTypeText, AuditBackofficeAction, AuditLogoutAction, AuditLogoutMobileAction, AuthModule, AuthRouteGuard, AuthService, AuthTokenService, Authenticate2FAforUser, AuthenticateMultipleTenantsAction, AutofocusDirective, BOM_UNICODE, BackofficeAutheticateAction, BarcodeTypeLength, BarrireStateText, BaseComponent, BaseDeviceItemComponent, BaseDeviceService, BaseFacilityCommandsService, BaseNotificationService, BillDispenserStatusText, BillTypeText, BillValidatorStatusText, ButtonStatus, CANCEL_ALL_RELAY_VALUE, CLogItPipe, COLORS, CREDIT_CARD_POSTFIX_LENGTH, CalculatorModule, CalculatorState, CanDeactivateService, CassetteStatusText, CentToCoinPipe, ChangeLanguageAction, ChangeMobileLanguageAction, ChangePasswordAction, ChangePasswordMobileAction, ChartLayout, CleanLogoAction, ClearActionReasonsAction, ClearAdministrativeNotificationsAction, ClearAlertsAndNotificationsAction, ClearBaseZonesAction, ClearCalculatorPriceAction, ClearCategoriesAction, ClearDeviceAction, ClearDeviceEventsExpanded, ClearDevicesAction, ClearEventActivitiesExpanded, ClearFacilityDictionaryAction, ClearGroupsAction, ClearGuestAction, ClearGuestProfilesAction, ClearGuestsListAction, ClearHandledGuest, ClearInactiveSelectedParkAction, ClearJobTitlesAction, ClearLocateTicketSearchAction, ClearLocatedTicketAction, ClearLprTransactionsExpanded, ClearMacroCommandsAction, ClearParkerAction, ClearRateAction, ClearSearchResultsAction, ClearSearchTermAction, ClearSearchTicketAction, ClearSelectedFacilityAction, ClearSelectedParkAction, ClearSelectedRow, ClearSelectedSmartparkAction, ClearSmartparksBasicAction, ClearSpAndSparkVersionsAction, ClearSuspendedParkActivitiesAction, ClearUsersAction, ClearValidationTypesAction, ClearZoneAction, ClearZonesAction, ClearZsAction, cloudServiceProxies as Cloud, CloudConfirmDialogComponent, CofCredentialSubTypeText, CoinStatusText, CollapsedGuestsByBatchIdAction, ComAggregatedStatus, ComAggregatedStatusText, ComStatusIconComponent, CommandCenterModuleResolver, CommandNotificationBorderClass, CommandNotificationComponent, CommandNotificationDisplayCase, CommandNotificationService, CommandNotificationType, CommandsLocalizationKey, CommonPagesModule, CompanyService, ConfigMobileResolver, ConfigResolver, ConnectSmartparkAction, ContainerRefDirective, CoreEntities, CouponSearchFieldSelectorText, CreateBasicBatchAction, CreateBasicGuestAction, CreateBatchAction, CreateGuestAction, CreateOrUpdateSMTPDetailsAction, CredentialTypeText, CreditCardTypeText, CrudOperationText, CurlyToBoldPipe, DATA_IMAGE_BASE64_PREFIX, DATA_IMAGE_BASE64_SVG_PREFIX, DEFAULT_DATE_FORMAT, DEFAULT_EXPIRATION_MONTHS_COUNT, DEFAULT_MINIMUM_LENGTH, DEFAULT_PASSWORD_HISTORY_COUNT, DEFAULT_PERMITTED_CREDENTIALS, DEFAULT_SMART_PARK_DATE_TIME, DEFAULT_SORT_MENU, DEFAULT_STICKER_NUM, DEVICE_EVENT_OPTIONS_KEY, DEVICE_NAVIGATE_KEY, DISABLED_FOCUS_ELEMENT_CLASSES, DISABLED_FOCUS_ELEMENT_TYPES, DYNAMIC_PRICING_CONDITION, DataQaAttribute, DateService, DateValidityText, DaysText, DecimalToAmountPipe, DecimalToCurrencyPipe, DefaultImageTimeout, DeleteGuestAction, DeleteLogoAction, DeleteUserAction, DetectBrowserService, DeviceActivityChangedAction, DeviceActivityLabel, DeviceActivityMode, DeviceActivityModeText, DeviceActivityStatus, DeviceActivityType, DeviceAggregatedStatus, DeviceAggregatedStatusText, DeviceEventChangedAction, DeviceIconComponent, DeviceIndicationStatus, DeviceLaneTypes, DeviceLoop, DeviceModule, DevicePipeModule, DevicePrinterStatusText, DeviceRemoteCommandsService, DeviceSortBy, DeviceStatusBaseComponent, DeviceStatusChangedAction, DeviceTypeIconName, DeviceTypeText, DeviceTypesAlertsMapping, DevicesViewMode, DialogMode, DipSwitchStatus, Disable2FAAction, DisconnectSmartParkAction, DoorSensorStatus, DoorStatusText, DurationMessageBar, DynamicContainerComponent, DynamicEllipsisTooltipDirective, ENGLISH_LANGUAGE, ENVIRONMENT, EXPIRATION_MONTHS_COUNT_OPTIONS, edgeServiceProxies as Edge, EditUserAction, ElectronicWalletPaymentMethodTypesText, EllipsisMultilineDirective, EmailServerModule, EmailServerState, EmptyResultsComponent, Enable2FAAction, EnumsToArrayPipe, EnvironmentModeText, ErrorPageComponent, ErrorPageResolver, ExceedingBehaviorTypeText, ExpandGuestsByBatchIdAction, ExportFileService, ExportGuestsAction, ExportPdfSmartparksTableAction, ExportSmartparkAction, FONT_BASE64, FacilityChangedAction, FacilityMenuService, FacilityModule, FacilityRemoteCommandExecutedAction, FacilityRemoteCommandTypesIcon, FacilityRemoteCommandsLocalizationKey, FacilityRemoteCommandsMenuItems, FacilityService, FacilityState, FieldLabelComponent, FieldValidationsComponent, FileGenerateMethod, FileSanitizerService, FileService, FilterByDeviceType, FilterDevicesByTypePipe, FilterDevicesByZonePipe, FilterKeysPipe, FilterNumbersPipe, FilterPipe, FlattenedCoreEntities, FloatMessageBarService, ForgotPasswordAction, ForgotPasswordTenantlessAction, FormValidationsComponent, FormattedInputDirective, FrequentParkingActionText, FrequentParkingErrorActionText, GATE_STATE_VALUE, GeneralActionService, GenerateSearchParamsDto, GetAllLocalizationsAction, GetAllLocalizationsMobileAction, GetLogoAction, GetMobileLogoAction, GetRateByIdAction, GlobalErrorService, GlobalMessageContainerComponent, GroupPermissionsPipe, GuestModule, GuestSearchFieldSelectorText, GuestState, GuestTypeCastText, GuestTypesText, HOUR_FORMAT_12, HOUR_FORMAT_24, HOUR_FORMAT_FULL_DAY, HandleAlertsAction, HandleNotificationAction, HandledNotificationAction, HasActionErrored, HealthAction, HoldRelayMode, HoldRelayModeText, HopperStatusText, HotelGuestSearchFieldSelectorText, HttpCancelBlackListUrls, HttpCancelInterceptor, HttpCancelService, INPUT_SEARCH_DEBOUNCE_TIME, INPUT_SEARCH_DEBOUNCE_TIME_LOW, INPUT_SEARCH_DEBOUNCE_TIME_MEDIUM, IconColumnComponent, IconComponent, IconModule, IconsHelper, IconsHelperText, identityServiceProxies as Identity, ImportMonthyStastusFieldSelectorText, InitAddSmartparkConnectionAction, InitSMTPDetailsAction, InitSessionFromLocalStorageAction, InitSmartparkTransportAction, InternetConnectionService, InternetConnectionStatus, IsActionExecuting, IsEllipsisDirective, LOCAL_ENGLISH_LANGUAGE, LOCATION_OPTIONS, LOGGED_TENANT_KEY, LanguageTypeKeys, LayoutModule, LayoutState, Load2FAUserAction, LoadActionReasonsAction, LoadAdministrativeNotificationsAction, LoadAlertsAndNotificationsAction, LoadAppConfigurationAction, LoadAppConfigurationMobileAction, LoadBackofficeAppConfigurationAction, LoadBackofficeSmartparksTableAction, LoadBackofficeSpAndSparkVersionsAction, LoadBackofficeVarsAction, LoadBaseZonesAction, LoadCalculatorPriceAction, LoadCategoriesAction, LoadDeviceAction, LoadDeviceEventActivitiesAction, LoadDeviceEventsAction, LoadDeviceEventsCollapse, LoadDeviceLprTransactionsAction, LoadDeviceStatusAction, LoadDevicesAction, LoadEventActivitiesCollapse, LoadFacilityAction, LoadFacilityRemoteCommandsRefAction, LoadGroupsAction, LoadGuestByIdAction, LoadGuestProfilesAction, LoadGuestsAction, LoadGuestsByBatchIdAction, LoadGuestsByBatchIdCancelledAction, LoadJobTitlesAction, LoadLocateTicketSearchAction, LoadLocatedTicketAction, LoadLprTransactionsCollapse, LoadMacroCommandsAction, LoadMobileNotificationsAction, LoadMobileSmartparksBasicAction, LoadOverflowPriceTableAction, LoadParkActivitiesAction, LoadParkDevicesAction, LoadParkerAction, LoadParkersAction, LoadParkingLotAction, LoadParksAction, LoadRateByIdAction, LoadRatesAction, LoadRemoteCommandsRefAction, LoadSMTPDetailsAction, LoadSelectedDeviceAction, LoadSmartparksAction, LoadSmartparksBasicAction, LoadSmartparksTableAction, LoadSpAndSparkVersionsAction, LoadStickerPriceTableAction, LoadTicketNumParkersAction, LoadTransientPriceTableAction, LoadUserPermissionsAction, LoadUsersAction, LoadUsersAdministrativeNotificationsAction, LoadValidationTypeAction, LoadVarsAction, LoadZoneAction, LoadZonesAction, LoadZsAction, LoadingOverlayComponent, LocalStorageMigrator, LocalStorageService, Localization, LocalizationModule, LocalizationResolver, LocalizationService, LocalizationState, LoginModule, LoginRequestAction, LoginService, LoginState, LoginSuccess, LogoComponent, LogoState, LogoutAction, LogoutMobileAction, LoopStatus, LowerCaseUrlSerializer, LprTransactionsChangedAction, LprTransactionsOptionsText, LprTransactionsSearchFieldSelectorText, MANUAL_ACTION_REASON_NAME_MAX_LENGTH, MAX_ALLOWED_BADGE_VALUE, MAX_ALLOWED_CURRENT_BALANCE, MAX_ALLOWED_DEDUCTION_VALUE, MAX_ALLOWED_GUEST_UNIT_QUANTITY, MAX_ALLOWED_IDENTIFIER_VALUE, MAX_ALLOWED_STARTING_PURSE_VALUE, MAX_CARDS, MAX_CAR_PLATES, MAX_EMAIL_CHARACTERS_LENGTH, MAX_EXPORT_RECORDS, MAX_HOTEL_ROOM_NUMBER_LENGTH, MAX_INT16_VALUE, MAX_INT32_VALUE, MAX_INTEGER_VALUE, MAX_LENGTH_BATCH_NAME, MAX_LENGTH_DESCRIPTION_50, MAX_LENGTH_DESCRIPTION_70, MAX_LENGTH_FOOTER, MAX_LENGTH_LEFT, MAX_LENGTH_LEFT_BACKWARD_COMPATIBILITY, MAX_LENGTH_MANUAL_TEXT, MAX_LENGTH_NAME_20, MAX_LENGTH_NAME_30, MAX_LENGTH_NAME_50, MAX_LENGTH_QUANTITY, MAX_LENGTH_REASON_DESCRIPTION, MAX_LENGTH_SERACH_TERM, MAX_LENGTH_SERACH_TERM_30, MAX_MOBILE_LENGTH, MAX_NUMBER_OF_NIGHTS, MAX_NUMBER_OF_ROW_IN_MENU, MAX_OCCUPANCY_VALUE, MAX_PERIOD_TIME, MAX_PLATE_ID_LENGTH, MAX_PRICE_NO_TIME_LIMIT_VALUE, MAX_PRICE_PERIOD_VALUE, MAX_REPEAT_COUNT_VALUE, MAX_RESULTS, MAX_ROLE_NAME_LENGTH, MAX_SP, MAX_TIME_RANGE_ITEMS_PER_KEY, MC_READER_ID, MESSAGE_BAR_DEFAULT_ID, MINIMUM_DROPDOWN_RESULTS_WITHOUT_SEARCH, MINIMUM_LENGTH_OPTIONS, MINUTES_PER_HOUR, MIN_ALLOWED_GUEST_UNIT_QUANTITY, MIN_LENGTH_QUANTITY, MIN_NUMBER_OF_ROW_IN_MENU, MIN_TIME_RANGE_ITEMS_PER_KEY, MOBILE_REFRESH_INFO, MSALGuardConfigFactory, MSALInstanceFactory, MSALInterceptorConfigFactory, MSLAuthService, MULTIPLE, MainModuleToSubModulesPermissionTypeMap, MatHintErrorDirective, MaxAllowedSurchargeAmount, MaxAllowedSurchargeMaxLimit, MaxAllowedSurchargeMinLimit, MaxDisplayTimeout, MaxIPV4TextLength, MaxSurchargeNameLength, MenuAppModuleLoadAction, MenuClearAction, MenuLoadAction, MenuService, MenuSubModuleClearAction, MenuSubModuleLoadAction, MessageBarComponent, MessageBarContainerComponent, MessageBarModule, MessageBarPosition, MessageBarService, MessageBarStatus, MiddayPeriod, MinAllowedSurchargeAmount, MinAllowedSurchargeMaxLimit, MinAllowedSurchargeMinLimit, MinDisplayTimeout, MobileAppSectionLabel, MobileAuthenticateMultipleTenantsAction, MobileCommandCenterModuleResolver, MobileLogoutAction, ModalButtonsWrapperComponent, ModalService, ModuleGuard, ModuleMenuBaseComponent, MonthlyRenewalSettingsActionTypesText, MonthlyRenewalSettingsActionTypesValueText, MonthlySearchFieldSelectorText, MslEventType, NONE_ACTIVE_BYTE, NONE_USER_ID, NO_RESULT, NativeElementInjectorDirective, NotSupportedBrowserGuard, NotSupportedBrowserPageComponent, NotificationChangedAction, NotificationClass, NotificationClassficationType, NotificationCloseAllButtonComponent, NotificationConfig, NotificationEventService, NotificationHPositions, NotificationModule, NotificationSeverityText, NotificationTypeLabelComponent, NotificationTypeText, NotificationVPositions, NotificationsModule, ONE_DAY_IN_MINUTES_VALUE, ONE_MINUTE_IN_MILLISECONDS, ONE_SECOND_IN_MILLISECONDS, OffScreenDirective, OpenIdAuthInitializeService, OpenIdAuthService, OpenIdAutheticateAction, Operator, OrderBy, OrderByPipe, OrderDirection$1 as OrderDirection, OrphanFacilitiesPipe, PARKER_SEARCH_AUTO_REDIRECT, PASSWORD_EXPIRED, PASSWORD_HISTORY_COUNT_OPTIONS, PREVENT_CLICK_ELEMENT_CLASSES, ParkActivitiesModule, ParkActivitiesState, ParkActivityChangedAction, ParkConnectionStatus, ParkConnectionStatusClass, ParkConnectionStatusText, ParkManagerModule, ParkManagerState, ParkService, ParkTimeService, ParkerSearchTerm, ParkerService, ParkerState, ParkerTagsText, ParkerTypesText, PasswordScore, PasswordStrengthService, PaymentSearchFieldSelectorText, PaymentServiceTypeText, PaymentsTypesText, PermissionGroupText, PermissionTypeSupportedVersionDictionary, PermissionTypeText, PermissionsService, PrintReceiptAction, ProfileTypeText, RATE_ID_WITH_VALUE_2, REDIRECT_URL, RELAY_2_VALUE, RELAY_3_VALUE, RELAY_4_VALUE, RESET_PASSWORD_EMAIL, RTObjectObject, RateModule, RateState, RealtimeEventService, RealtimeResolver, ReceiptGeneratedAction, RefreshTokenService, RefreshTokenState, RelayStatus, ReloadParkerAction, RemoteCommandService, RemoteCommandTypesIcon, RemoteValidationModule, RemoteValidationState, RemoveExpiredAlertsAndNotificationsAction, ReportCategories, ReportCategoriesText, ReportMethodDictionary, ReportSectionMenu, ResendPendingAdminInvitationsAction, ResendUserInvitationAction, ResetRatesAction, RestrictionLocationTypeText, RestrictionLocationTypeTextTable, RestrictionTypeText, RevenueService, RouteService, RowOperation, SESSION, STATUS_CODE_SERVER_VALIDATION, STATUS_CODE_UNAUTHORIZED, STRING_ZERO, SUPER_PARK_ROUTE_KEY, SUPPORETD_RESTORE_TICKET_TYPES, SUPPORTED_CAR_ON_LOOP_DEVICE_TYPES, SUPPORTED_DEVICES_SCHEDULER, SUPPORTED_GATE_DEVICE_TYPES, SUPPORTED_LPR_TRANSACTIONS_DEVICE_TYPES, SUPPORTED_PAYMENT_FOR_ISF_TYPES, SUPPORTED_RESTORE_TICKET_DEVICE_TYPES, SUPPORTED_STATUS_DEVICE_TYPES, SUPPORTED_TICKET_INSIDE_DEVICE_TYPES, SYSTEM_ALERT_VALUE, SearchFacilitiesMode, SearchFieldSelectorText, SearchTicketAction, SearchValueHighlightComponent, SecurityModule, SecurityState, SelectDeviceAction, SelectParkAction, SelectSmartParkAction, SelectedRowAction, SendEmailFromEntityAction, SendEmailToGuest, SendGuestPassesToEmailAction, SendTestEmailAction, ServiceProxyModule, ServicesRunningStatusChangedAction, SessionState, SessionStorageService, SetBackofficeSmartParkVersionsAction, SetBasicMenuAction, SetDeviceEventsExpanded, SetDeviceRemoteCommandsMapAction, SetDeviceStatusAction, SetDeviceViewModeAction, SetEventActivitiesExpanded, SetFacilityRemoteCommandsMapAction, SetGuestsAction, SetLprTransactionsExpanded, SetMobileModeAction, SetParkActivitiesAction, SetRealTimeEventStatusAction, SetSearchTermAction, SetSelectedParkAction, SetSmartParkAction, SetSmartParkTableAction, SetSmartParkVersionsAction, SetSmartparkBasicAction, SetSmartparkBasicAllAction, SetStateAction, SetTFASetupAction, SetTenantUserAction, SetTicketIdentifierAction, SetUserNameAction, SetUserStatusAction, SetUsersAction, SetkeepMeLoggedInAction, SharedComponentsModule, SharedDirectivesModule, SharedModule, SharedPipesModule, SideNavSortBy, SidenavModule, SidenavState, SignalR, SignalRObject, SignalRRefreshTokenAction, SingleSignOnProviderText, SmartParkDeviceStatusChangedAction, SmartParkStatusText, SmartparkDateTimePipe, SmartparkDialogState, SmartparkModule, SmartparkService, SmartparkState, SortDevicesPipe, SortPipe, SparkNotification, SpecialDaysPipe, SpinnerDiameterSize, StaticMessageBarService, StatusIconComponent, StickerSearchFieldSelectorText, StopPropagationDirective, StringItPipe, SubModuleGuard, SubstrHightlightManyPipe, SubstrHightlightPipe, SubstrHightlightSinglePipe, SwallowUnitStatusText, SyncUsersAndRolesBySmartparkIdAction, TBFormatPipe, TBNumberDirective, TENANT_KEY, TENS_MULTIPLIER, TableRowHeightSizes, TableTypeText, TagLabelType, TenantClearAction, TenantLoadAction, TenantLogoModule, TenantService, TenantlessLoginMode, TibaDateFormat, TibaMatDialogConfig, TibaRetryPolicy, TibaValidators, TicketService, TimeAgoPipe, TimeElapsedCounterComponent, TimeElapsedFormats, TimeElapsedPipe, TimeRangeFormats, TimeRangePipe, ToggleDrawerAction, ToggleDrawerCollapseAction, TooltipPositions, TrackAction, TransientParkingActionText, TranslateLocalPipe, TreeFilterKeysPipe, TreeMode, TypeCastText, UNSAVED_DATA, USER_IS_TEMPORARY_BLOCKED, UnloadParkingLotAction, UpdateAndActivateUserAction, UpdateAuthTokenAction, UpdateBasicGuestAction, UpdateBasicGuestTempAction, UpdateDocumentAction, UpdateGuestAction, UpdateGuestLocationAction, UpdateMobileMode, UpdateSmartparkAction, UpdateTenantInfoProps, UpdateTenantSingleSignOnAction, UpdateTicketPlateIdAction, UpdateUserAlertsPreferencesAction, UpdateUserNotificaitonsPreferencesAction, UpdateUserSettingsAction, UpdateUserSettingsInSessionAction, UpdateUserSettingsMobileAction, UploadLogoAction, UserCreationType, UserModule, UserSettingsModule, UserSettingsState, UserState, VALIDATION_TYPE_BY_HOURS_41, VALIDATION_TYPE_BY_HOURS_42, VALID_TIME_MAX_LENGTH, VERSION_10_1_0, VERSION_10_2_0, VERSION_10_2_1, VERSION_10_3_0, VERSION_10_3_9, VERSION_10_4_0, VERSION_25_1_0, VERSION_25_2_0, VERSION_25_2_1, VERSION_25_3_0, VERSION_7_4_0, VERSION_7_4_1, VERSION_8_1_0, VERSION_8_2_0, VERSION_8_3_0, VERSION_8_4_0, VERSION_9_1_0, VERSION_9_2_0, VERSION_9_2_2, VERSION_9_3_0, VERSION_9_4_0, VERSION_V1, VGuestWithBatchTableData, ValidateUserTokenAction, ValidationService, ValidationStickerType, ValidationTypeModule, ValidationTypeState, VarDirective, Verify2FactorAuthenticationAction, VersionMobileResolver, VersionResolver, VirtualValidationStatusText, WrapFnPipe, ZerofyNegativePipe, ZoneChangedAction, ZoneModule, ZoneState, accountModuleAnimation, adjustForTimezone, allowSpecialKeys, alphanumericRegex, appModuleAnimation, areDatesIdentical, areVersionsCompatible, arrayEquals, arraysAreDifferent, baseReduce, blobToBase64, buildMessageInfos, buildMessages, camelize, canceled, capitalizeFirstLetter, compareValues, convert24HoursToAmPM, convertAmPmTo24Hours, convertBinaryToDecimal, convertCentToWholeCoin, convertDecimalToBinary, convertFeaturePermissionsToDictionary, convertFormatWithoutTime, convertWholeCoinToCent, createDescriptor, createMessageText, dateDiffInSeconds, days, daysTranslation, decimalNumberRegex, decimalPercentageRegex, decimalPositiveNumberRegex, decryptClientSecret, delayCancellation, deviceIndicationStatusLocalization, deviceTypeFilterOptions, diffInMillis, dispatched, distinctObjectByProperties, distinctObjectByProperty, downloadFile, ensureObjectMetadata, entryDevicesLaneTypes, errored, exitDevicesLaneTypes, extractErrorsChanges, extractNumber, extractResetChanges, extractSetValueChanges, extractToggleStatusChanges, extractTouchedChanges, extractUpdateValueAndValidityChanges, filterDevicesByTypes, filterKeyValueBaseReduce, findChildRoute, findObjectDifferences, findParentElement, findParentElementDimensions, findParentRoute, findParentRouteConfig, flattenByKey, formatMinutesToTimeNumber, formatTimeToMinutes, formatTimeToString, formatTimeWithMidnight, formatTimeWithSeparator, formatTimeWithoutMidnight, formatTimeWithoutSeparator, formatTimeWithoutSeperatorAndWithMidnight, formatTimeWithoutSeperatorAndWithoutMidnight, getActivatedRoutePathSegment, getAddress, getCurrentLang, getDateTimeInSeconds, getDateWithoutTime, getDaysFromValue, getDefaultDeviceStatus, getFormattedTime, getMomenWithTime, getMomentNullable, getMomentWithoutTime, getNavigationRoute, getObjectMetadata, getParkerTypesText, getPasswordMinimalLength, getSecondsBackoff, getTooltipTextByParkerType, getUserTimeZone, getUtcMomentNullable, hasRequiredField, hasValue, humanizeTimeElapsed, humanizeUtcTimeElapsed, identity, initializeMsal, initializeOpenId, integerNumberRegex, integerPositiveNumberRegex, ipv4Regex, isBoolean, isCharacterLengthValid, isDefinedAndNotEmpty, isDeviceActive, isDeviceInFilterDeviceTypes, isDeviceInFiltersDeviceTypes, isFalsy, isIOSDevice, isMaxDaysRangeValid, isNullOrEmpty, isNumber, isObjectEmpty, isSearchFieldChanged, isSingularOrPlural, isTrueInBinary, isTruthy, isVersionGreaterThanEqual, loadHTMLContent, lowerCase, lowerCaseFirstLetter, mapTransientTags, markEntitiesAsChanged, markEntityAsUnchanged, matchesDeviceCriteria, matchesDeviceParkingLotCriteria, matchesDevicesParkingLotCriteria, minutesToTime, mobileRegex, nameof, navigateToForbiddenAccessPage, navigateToNotSupportedBrowserPage, noEmojiRegex, notificationAnimation, numberWithLeadingZero, ofStatus, omitKeys, openBackgroundIframe, openCloseFiltersAnimation, parentParkBaseEventTypes, parentParkEventTypes, parkBaseEventTypes, parkEventTypes, parkerEnumToText, parseApiErrorData, parseApiErrorMessage, parseDateTimeToSparkParkTime, parseSmartParkTime, passwordRegex, percentageRegex, printSpecialDaysText, printStackTrace, readjustForTimezone, regexExp, remoteCommandLocalizationMap, replaceAll, rtEventPermissions, safeParse, searchBarPopupAnimation, setErrorMessage, shortDaysTranslation, sleep, slideFromBottom, slideFromRight, slideFromUp, slideUpDown, successful, timeToMinutes, timeToMoment, toInt, toNumberMap, toStringMap, wrapConstructor };
|
|
109416
|
+
export { ACCESS_PROFILE_DAT_TYPES_SP, ACTIVE_BYTE, ADVANCED_OPTIONS_VALUE, AES_DEFAULT_IV, ALERT_NOTIFICATION_CONTAINER, ALLOWED_FILES_FORMATS, ALLOWED_FILES_MAX_SIZE_MB, ALLOWED_FILES__SIZE_200_KB, ALLOWED_FILES__SIZE_2_MB, ALLOWED_NUMBER_OF_DAYS, ALLOWED_UPLOAD_FILES_QUANTITY, ALL_DAYS_IN_BINARY, ALL_DAYS_IN_BYTE, AccessProfileChangeValidTypesText, AccessProfileDayTypesText, AccessProfileRestrictionTypesText, AccessProfileShortDayTypesText, AccessProfileSpecialDaysMap, AccessProfileTypesText, AccountFrameMessageBarComponent, AccountSetPasswordAction, AccountSetPasswordErrorAction, AccountSetPasswordInitAction, ActionReasonsModule, ActionReasonsState, ActionStatusService, AddSmartparkAction, AddUserAction, AdministrativeNotificationEntityType, AdministrativeNotificationsModule, AdministrativeNotificationsState, AggregatedStatusText, AlertChangedAction, AlertNotificationBorderClass, AlertNotificationClassificationMap, AlertNotificationComponent, AlertNotificationService, AlertsAndNotificationsService, AlertsAndNotificationsState, AlertsDeviceTypeLabel, AlertsDeviceTypeOptions, AlertsDeviceTypeOptionsMapping, AlertsPreferencesDto, AmountStepSurchargeMinLimit, AnalyticsCommandsText, AnalyticsEventsText, AnalyticsService, AnalyticsSourceComponent, AnalyticsSourceProps, AppConfigService, AppModuleService, AppModuleToMainPermissionTypeMap, AppSectionLabel, AppSectionModuleMenu, AppSectionRoute, AppSettingsService, AppType, AuditActionTypeText, AuditLogoutAction, AuditLogoutMobileAction, AuthModule, AuthRouteGuard, AuthService, AuthTokenService, Authenticate2FAforUser, AuthenticateMultipleTenantsAction, AutofocusDirective, BOM_UNICODE, BackofficeAutheticateAction, BarcodeTypeLength, BarrireStateText, BaseComponent, BaseDeviceItemComponent, BaseDeviceService, BaseFacilityCommandsService, BaseNotificationService, BillDispenserStatusText, BillTypeText, BillValidatorStatusText, ButtonStatus, CANCEL_ALL_RELAY_VALUE, CLogItPipe, COLORS, CREDIT_CARD_POSTFIX_LENGTH, CalculatorModule, CalculatorState, CanDeactivateService, CassetteStatusText, CentToCoinPipe, ChangeLanguageAction, ChangeMobileLanguageAction, ChangePasswordAction, ChangePasswordMobileAction, ChartLayout, CleanLogoAction, ClearActionReasonsAction, ClearAdministrativeNotificationsAction, ClearAlertsAndNotificationsAction, ClearBaseZonesAction, ClearCalculatorPriceAction, ClearCategoriesAction, ClearDeviceAction, ClearDeviceEventsExpanded, ClearDevicesAction, ClearEventActivitiesExpanded, ClearFacilityDictionaryAction, ClearGroupsAction, ClearGuestAction, ClearGuestProfilesAction, ClearGuestsListAction, ClearHandledGuest, ClearInactiveSelectedParkAction, ClearJobTitlesAction, ClearLocateTicketSearchAction, ClearLocatedTicketAction, ClearLprTransactionsExpanded, ClearMacroCommandsAction, ClearParkerAction, ClearRateAction, ClearSearchResultsAction, ClearSearchTermAction, ClearSearchTicketAction, ClearSelectedFacilityAction, ClearSelectedParkAction, ClearSelectedRow, ClearSelectedSmartparkAction, ClearSmartparksBasicAction, ClearSpAndSparkVersionsAction, ClearSuspendedParkActivitiesAction, ClearUsersAction, ClearValidationTypesAction, ClearZoneAction, ClearZonesAction, ClearZsAction, cloudServiceProxies as Cloud, CloudConfirmDialogComponent, CofCredentialSubTypeText, CoinStatusText, CollapsedGuestsByBatchIdAction, ComAggregatedStatus, ComAggregatedStatusText, ComStatusIconComponent, CommandCenterModuleResolver, CommandNotificationBorderClass, CommandNotificationComponent, CommandNotificationDisplayCase, CommandNotificationService, CommandNotificationType, CommandsLocalizationKey, CommonPagesModule, CompanyService, ConfigMobileResolver, ConfigResolver, ConnectSmartparkAction, ContainerRefDirective, CoreEntities, CouponSearchFieldSelectorText, CreateBasicBatchAction, CreateBasicGuestAction, CreateBatchAction, CreateGuestAction, CreateOrUpdateSMTPDetailsAction, CredentialTypeText, CreditCardTypeText, CrudOperationText, CurlyToBoldPipe, DATA_IMAGE_BASE64_PREFIX, DATA_IMAGE_BASE64_SVG_PREFIX, DEFAULT_DATE_FORMAT, DEFAULT_EXPIRATION_MONTHS_COUNT, DEFAULT_MINIMUM_LENGTH, DEFAULT_PASSWORD_HISTORY_COUNT, DEFAULT_PERMITTED_CREDENTIALS, DEFAULT_SMART_PARK_DATE_TIME, DEFAULT_SORT_MENU, DEFAULT_STICKER_NUM, DEVICE_EVENT_OPTIONS_KEY, DEVICE_NAVIGATE_KEY, DISABLED_FOCUS_ELEMENT_CLASSES, DISABLED_FOCUS_ELEMENT_TYPES, DYNAMIC_PRICING_CONDITION, DataQaAttribute, DateService, DateValidityText, DaysText, DecimalToAmountPipe, DecimalToCurrencyPipe, DefaultImageTimeout, DeleteGuestAction, DeleteLogoAction, DeleteUserAction, DetectBrowserService, DeviceActivityChangedAction, DeviceActivityLabel, DeviceActivityMode, DeviceActivityModeText, DeviceActivityStatus, DeviceActivityType, DeviceAggregatedStatus, DeviceAggregatedStatusText, DeviceEventChangedAction, DeviceIconComponent, DeviceIndicationStatus, DeviceLaneTypes, DeviceLoop, DeviceModule, DevicePipeModule, DevicePrinterStatusText, DeviceRemoteCommandsService, DeviceSortBy, DeviceStatusBaseComponent, DeviceStatusChangedAction, DeviceTypeIconName, DeviceTypeText, DeviceTypesAlertsMapping, DevicesViewMode, DialogMode, DipSwitchStatus, Disable2FAAction, DisconnectSmartParkAction, DoorSensorStatus, DoorStatusText, DurationMessageBar, DynamicContainerComponent, DynamicEllipsisTooltipDirective, ENGLISH_LANGUAGE, ENVIRONMENT, EXPIRATION_MONTHS_COUNT_OPTIONS, edgeServiceProxies as Edge, EditUserAction, ElectronicWalletPaymentMethodTypesText, EllipsisMultilineDirective, EmailServerModule, EmailServerState, EmptyResultsComponent, Enable2FAAction, EnumsToArrayPipe, EnvironmentModeText, ErrorPageComponent, ErrorPageResolver, ExceedingBehaviorTypeText, ExpandGuestsByBatchIdAction, ExportFileService, ExportGuestsAction, ExportPdfSmartparksTableAction, ExportSmartparkAction, FONT_BASE64, FacilityChangedAction, FacilityMenuService, FacilityModule, FacilityRemoteCommandExecutedAction, FacilityRemoteCommandTypesIcon, FacilityRemoteCommandsLocalizationKey, FacilityRemoteCommandsMenuItems, FacilityService, FacilityState, FieldLabelComponent, FieldValidationsComponent, FileGenerateMethod, FileSanitizerService, FileService, FilterByDeviceType, FilterDevicesByTypePipe, FilterDevicesByZonePipe, FilterKeysPipe, FilterNumbersPipe, FilterPipe, FlattenedCoreEntities, FloatMessageBarService, ForgotPasswordAction, ForgotPasswordTenantlessAction, FormValidationsComponent, FormattedInputDirective, FrequentParkingActionText, FrequentParkingErrorActionText, GATE_STATE_VALUE, GeneralActionService, GenerateSearchParamsDto, GetAllLocalizationsAction, GetAllLocalizationsMobileAction, GetLogoAction, GetMobileLogoAction, GetRateByIdAction, GlobalErrorService, GlobalMessageContainerComponent, GroupPermissionsPipe, GuestModule, GuestSearchFieldSelectorText, GuestState, GuestTypeCastText, GuestTypesText, HOUR_FORMAT_12, HOUR_FORMAT_24, HOUR_FORMAT_FULL_DAY, HandleAlertsAction, HandleNotificationAction, HandledNotificationAction, HasActionErrored, HealthAction, HoldRelayMode, HoldRelayModeText, HopperStatusText, HotelGuestSearchFieldSelectorText, HttpCancelBlackListUrls, HttpCancelInterceptor, HttpCancelService, INPUT_SEARCH_DEBOUNCE_TIME, INPUT_SEARCH_DEBOUNCE_TIME_LOW, INPUT_SEARCH_DEBOUNCE_TIME_MEDIUM, IconColumnComponent, IconComponent, IconModule, IconsHelper, IconsHelperText, identityServiceProxies as Identity, ImportMonthyStastusFieldSelectorText, InitAddSmartparkConnectionAction, InitSMTPDetailsAction, InitSessionFromLocalStorageAction, InitSmartparkTransportAction, InternetConnectionService, InternetConnectionStatus, IsActionExecuting, IsEllipsisDirective, LOCAL_ENGLISH_LANGUAGE, LOCATION_OPTIONS, LOGGED_TENANT_KEY, LanguageTypeKeys, LayoutModule, LayoutState, Load2FAUserAction, LoadActionReasonsAction, LoadAdministrativeNotificationsAction, LoadAlertsAndNotificationsAction, LoadAppConfigurationAction, LoadAppConfigurationMobileAction, LoadBackofficeAppConfigurationAction, LoadBackofficeSmartparksTableAction, LoadBackofficeSpAndSparkVersionsAction, LoadBackofficeVarsAction, LoadBaseZonesAction, LoadCalculatorPriceAction, LoadCategoriesAction, LoadDeviceAction, LoadDeviceEventActivitiesAction, LoadDeviceEventsAction, LoadDeviceEventsCollapse, LoadDeviceLprTransactionsAction, LoadDeviceStatusAction, LoadDevicesAction, LoadEventActivitiesCollapse, LoadFacilityAction, LoadFacilityRemoteCommandsRefAction, LoadGroupsAction, LoadGuestByIdAction, LoadGuestProfilesAction, LoadGuestsAction, LoadGuestsByBatchIdAction, LoadGuestsByBatchIdCancelledAction, LoadJobTitlesAction, LoadLocateTicketSearchAction, LoadLocatedTicketAction, LoadLprTransactionsCollapse, LoadMacroCommandsAction, LoadMobileNotificationsAction, LoadMobileSmartparksBasicAction, LoadOverflowPriceTableAction, LoadParkActivitiesAction, LoadParkDevicesAction, LoadParkerAction, LoadParkersAction, LoadParkingLotAction, LoadParksAction, LoadRateByIdAction, LoadRatesAction, LoadRemoteCommandsRefAction, LoadSMTPDetailsAction, LoadSelectedDeviceAction, LoadSmartparksAction, LoadSmartparksBasicAction, LoadSmartparksTableAction, LoadSpAndSparkVersionsAction, LoadStickerPriceTableAction, LoadTicketNumParkersAction, LoadTransientPriceTableAction, LoadUserPermissionsAction, LoadUsersAction, LoadUsersAdministrativeNotificationsAction, LoadValidationTypeAction, LoadVarsAction, LoadZoneAction, LoadZonesAction, LoadZsAction, LoadingOverlayComponent, LocalStorageMigrator, LocalStorageService, Localization, LocalizationModule, LocalizationResolver, LocalizationService, LocalizationState, LoginModule, LoginRequestAction, LoginService, LoginState, LoginSuccess, LogoComponent, LogoState, LogoutAction, LogoutMobileAction, LoopStatus, LowerCaseUrlSerializer, LprTransactionsChangedAction, LprTransactionsOptionsText, LprTransactionsSearchFieldSelectorText, MANUAL_ACTION_REASON_NAME_MAX_LENGTH, MAX_ALLOWED_BADGE_VALUE, MAX_ALLOWED_CURRENT_BALANCE, MAX_ALLOWED_DEDUCTION_VALUE, MAX_ALLOWED_GUEST_UNIT_QUANTITY, MAX_ALLOWED_IDENTIFIER_VALUE, MAX_ALLOWED_STARTING_PURSE_VALUE, MAX_CARDS, MAX_CAR_PLATES, MAX_EMAIL_CHARACTERS_LENGTH, MAX_EXPORT_RECORDS, MAX_HOTEL_ROOM_NUMBER_LENGTH, MAX_INT16_VALUE, MAX_INT32_VALUE, MAX_INTEGER_VALUE, MAX_LENGTH_BATCH_NAME, MAX_LENGTH_DESCRIPTION_50, MAX_LENGTH_DESCRIPTION_70, MAX_LENGTH_FOOTER, MAX_LENGTH_LEFT, MAX_LENGTH_LEFT_BACKWARD_COMPATIBILITY, MAX_LENGTH_MANUAL_TEXT, MAX_LENGTH_NAME_20, MAX_LENGTH_NAME_30, MAX_LENGTH_NAME_50, MAX_LENGTH_QUANTITY, MAX_LENGTH_REASON_DESCRIPTION, MAX_LENGTH_SERACH_TERM, MAX_LENGTH_SERACH_TERM_30, MAX_MOBILE_LENGTH, MAX_NUMBER_OF_NIGHTS, MAX_NUMBER_OF_ROW_IN_MENU, MAX_OCCUPANCY_VALUE, MAX_PERIOD_TIME, MAX_PLATE_ID_LENGTH, MAX_PRICE_NO_TIME_LIMIT_VALUE, MAX_PRICE_PERIOD_VALUE, MAX_REPEAT_COUNT_VALUE, MAX_RESULTS, MAX_ROLE_NAME_LENGTH, MAX_SP, MAX_TIME_RANGE_ITEMS_PER_KEY, MC_READER_ID, MESSAGE_BAR_DEFAULT_ID, MINIMUM_DROPDOWN_RESULTS_WITHOUT_SEARCH, MINIMUM_LENGTH_OPTIONS, MINUTES_PER_HOUR, MIN_ALLOWED_GUEST_UNIT_QUANTITY, MIN_LENGTH_QUANTITY, MIN_NUMBER_OF_ROW_IN_MENU, MIN_TIME_RANGE_ITEMS_PER_KEY, MOBILE_REFRESH_INFO, MSALGuardConfigFactory, MSALInstanceFactory, MSALInterceptorConfigFactory, MSLAuthService, MULTIPLE, MainModuleToSubModulesPermissionTypeMap, MatHintErrorDirective, MaxAllowedSurchargeAmount, MaxAllowedSurchargeMaxLimit, MaxAllowedSurchargeMinLimit, MaxDisplayTimeout, MaxIPV4TextLength, MaxSurchargeNameLength, MenuAppModuleLoadAction, MenuClearAction, MenuLoadAction, MenuService, MenuSubModuleClearAction, MenuSubModuleLoadAction, MessageBarComponent, MessageBarContainerComponent, MessageBarModule, MessageBarPosition, MessageBarService, MessageBarStatus, MiddayPeriod, MinAllowedSurchargeAmount, MinAllowedSurchargeMaxLimit, MinAllowedSurchargeMinLimit, MinDisplayTimeout, MobileAppSectionLabel, MobileAuthenticateMultipleTenantsAction, MobileCommandCenterModuleResolver, MobileLogoutAction, ModalButtonsWrapperComponent, ModalService, ModuleGuard, ModuleMenuBaseComponent, MonthlyRenewalSettingsActionTypesText, MonthlyRenewalSettingsActionTypesValueText, MonthlySearchFieldSelectorText, MslEventType, NONE_ACTIVE_BYTE, NONE_USER_ID, NO_RESULT, NativeElementInjectorDirective, NotSupportedBrowserGuard, NotSupportedBrowserPageComponent, NotificationChangedAction, NotificationClass, NotificationClassficationType, NotificationCloseAllButtonComponent, NotificationConfig, NotificationEventService, NotificationHPositions, NotificationModule, NotificationSeverityText, NotificationTypeLabelComponent, NotificationTypeText, NotificationVPositions, NotificationsModule, ONE_DAY_IN_MINUTES_VALUE, ONE_MINUTE_IN_MILLISECONDS, ONE_SECOND_IN_MILLISECONDS, OffScreenDirective, OpenIdAuthInitializeService, OpenIdAuthService, OpenIdAutheticateAction, Operator, OrderBy, OrderByPipe, OrderDirection$1 as OrderDirection, OrphanFacilitiesPipe, PARKER_SEARCH_AUTO_REDIRECT, PASSWORD_EXPIRED, PASSWORD_HISTORY_COUNT_OPTIONS, PREVENT_CLICK_ELEMENT_CLASSES, ParkActivitiesModule, ParkActivitiesState, ParkActivityChangedAction, ParkConnectionStatus, ParkConnectionStatusClass, ParkConnectionStatusText, ParkManagerModule, ParkManagerState, ParkService, ParkTimeService, ParkerSearchTerm, ParkerService, ParkerState, ParkerTagsText, ParkerTypesText, PasswordScore, PasswordStrengthService, PaymentSearchFieldSelectorText, PaymentServiceTypeText, PaymentsTypesText, PermissionGroupText, PermissionTypeSupportedVersionDictionary, PermissionTypeText, PermissionsService, PrintReceiptAction, ProfileTypeText, RATE_ID_WITH_VALUE_2, REDIRECT_URL, RELAY_2_VALUE, RELAY_3_VALUE, RELAY_4_VALUE, RESET_PASSWORD_EMAIL, RTObjectObject, RateModule, RateState, RealtimeEventService, RealtimeResolver, ReceiptGeneratedAction, RefreshTokenService, RefreshTokenState, RelayStatus, ReloadParkerAction, RemoteCommandService, RemoteCommandTypesIcon, RemoteValidationModule, RemoteValidationState, RemoveExpiredAlertsAndNotificationsAction, ReportCategories, ReportCategoriesText, ReportMethodDictionary, ReportSectionMenu, ResendPendingAdminInvitationsAction, ResendUserInvitationAction, ResetRatesAction, RestrictionLocationTypeText, RestrictionLocationTypeTextTable, RestrictionTypeText, RevenueService, RouteService, RowOperation, SESSION, STATUS_CODE_SERVER_VALIDATION, STATUS_CODE_UNAUTHORIZED, STRING_ZERO, SUPER_PARK_ROUTE_KEY, SUPPORETD_RESTORE_TICKET_TYPES, SUPPORTED_CAR_ON_LOOP_DEVICE_TYPES, SUPPORTED_DEVICES_SCHEDULER, SUPPORTED_GATE_DEVICE_TYPES, SUPPORTED_LPR_TRANSACTIONS_DEVICE_TYPES, SUPPORTED_PAYMENT_FOR_ISF_TYPES, SUPPORTED_RESTORE_TICKET_DEVICE_TYPES, SUPPORTED_STATUS_DEVICE_TYPES, SUPPORTED_TICKET_INSIDE_DEVICE_TYPES, SYSTEM_ALERT_VALUE, SearchFacilitiesMode, SearchFieldSelectorText, SearchTicketAction, SearchValueHighlightComponent, SecurityModule, SecurityState, SelectDeviceAction, SelectParkAction, SelectSmartParkAction, SelectedRowAction, SendEmailFromEntityAction, SendEmailToGuest, SendGuestPassesToEmailAction, SendTestEmailAction, ServiceProxyModule, ServicesRunningStatusChangedAction, SessionState, SessionStorageService, SetBackofficeSmartParkVersionsAction, SetBasicMenuAction, SetDeviceEventsExpanded, SetDeviceRemoteCommandsMapAction, SetDeviceStatusAction, SetDeviceViewModeAction, SetEventActivitiesExpanded, SetFacilityRemoteCommandsMapAction, SetGuestsAction, SetLprTransactionsExpanded, SetMobileModeAction, SetParkActivitiesAction, SetRealTimeEventStatusAction, SetSearchTermAction, SetSelectedParkAction, SetSmartParkAction, SetSmartParkTableAction, SetSmartParkVersionsAction, SetSmartparkBasicAction, SetSmartparkBasicAllAction, SetStateAction, SetTFASetupAction, SetTenantUserAction, SetTicketIdentifierAction, SetUserNameAction, SetUserStatusAction, SetUsersAction, SetkeepMeLoggedInAction, SharedComponentsModule, SharedDirectivesModule, SharedModule, SharedPipesModule, SideNavSortBy, SidenavModule, SidenavState, SignalR, SignalRObject, SignalRRefreshTokenAction, SingleSignOnProviderText, SmartParkDeviceStatusChangedAction, SmartParkStatusText, SmartparkDateTimePipe, SmartparkDialogState, SmartparkModule, SmartparkService, SmartparkState, SortDevicesPipe, SortPipe, SparkNotification, SpecialDaysPipe, SpinnerDiameterSize, StaticMessageBarService, StatusIconComponent, StickerSearchFieldSelectorText, StopPropagationDirective, StringItPipe, SubModuleGuard, SubstrHightlightManyPipe, SubstrHightlightPipe, SubstrHightlightSinglePipe, SwallowUnitStatusText, SyncUsersAndRolesBySmartparkIdAction, TBFormatPipe, TBNumberDirective, TENANT_KEY, TENS_MULTIPLIER, TableRowHeightSizes, TableTypeText, TagLabelType, TenantClearAction, TenantLoadAction, TenantLogoModule, TenantService, TenantlessLoginMode, TibaDateFormat, TibaMatDialogConfig, TibaRetryPolicy, TibaValidators, TicketService, TimeAgoPipe, TimeElapsedCounterComponent, TimeElapsedFormats, TimeElapsedPipe, TimeRangeFormats, TimeRangePipe, ToggleDrawerAction, ToggleDrawerCollapseAction, TooltipPositions, TrackAction, TransientParkingActionText, TranslateLocalPipe, TreeFilterKeysPipe, TreeMode, TypeCastText, UNSAVED_DATA, USER_IS_TEMPORARY_BLOCKED, UnloadParkingLotAction, UpdateAndActivateUserAction, UpdateAuthTokenAction, UpdateBasicGuestAction, UpdateBasicGuestTempAction, UpdateDocumentAction, UpdateGuestAction, UpdateGuestLocationAction, UpdateMobileMode, UpdateSmartparkAction, UpdateTenantInfoProps, UpdateTenantSingleSignOnAction, UpdateTicketPlateIdAction, UpdateUserAlertsPreferencesAction, UpdateUserNotificaitonsPreferencesAction, UpdateUserSettingsAction, UpdateUserSettingsInSessionAction, UpdateUserSettingsMobileAction, UploadLogoAction, UserCreationType, UserModule, UserSettingsModule, UserSettingsState, UserState, VALIDATION_TYPE_BY_HOURS_41, VALIDATION_TYPE_BY_HOURS_42, VALID_TIME_MAX_LENGTH, VERSION_10_1_0, VERSION_10_2_0, VERSION_10_2_1, VERSION_10_3_0, VERSION_10_3_9, VERSION_10_4_0, VERSION_25_1_0, VERSION_25_2_0, VERSION_25_2_1, VERSION_25_3_0, VERSION_7_4_0, VERSION_7_4_1, VERSION_8_1_0, VERSION_8_2_0, VERSION_8_3_0, VERSION_8_4_0, VERSION_9_1_0, VERSION_9_2_0, VERSION_9_2_2, VERSION_9_3_0, VERSION_9_4_0, VERSION_V1, VGuestWithBatchTableData, ValidateUserTokenAction, ValidationService, ValidationStickerType, ValidationTypeModule, ValidationTypeState, VarDirective, Verify2FactorAuthenticationAction, VersionMobileResolver, VersionResolver, VirtualValidationStatusText, WrapFnPipe, ZerofyNegativePipe, ZoneChangedAction, ZoneModule, ZoneState, accountModuleAnimation, adjustForTimezone, allowSpecialKeys, alphanumericRegex, appModuleAnimation, areDatesIdentical, areVersionsCompatible, arrayEquals, arraysAreDifferent, baseReduce, blobToBase64, buildMessageInfos, buildMessages, camelize, canceled, capitalizeFirstLetter, compareValues, convert24HoursToAmPM, convertAmPmTo24Hours, convertBinaryToDecimal, convertCentToWholeCoin, convertDecimalToBinary, convertFeaturePermissionsToDictionary, convertFormatWithoutTime, convertWholeCoinToCent, createDescriptor, createMessageText, dateDiffInSeconds, days, daysTranslation, decimalNumberRegex, decimalPercentageRegex, decimalPositiveNumberRegex, decryptClientSecret, delayCancellation, deviceIndicationStatusLocalization, deviceTypeFilterOptions, diffInMillis, dispatched, distinctObjectByProperties, distinctObjectByProperty, downloadFile, ensureObjectMetadata, entryDevicesLaneTypes, errored, exitDevicesLaneTypes, extractErrorsChanges, extractNumber, extractResetChanges, extractSetValueChanges, extractToggleStatusChanges, extractTouchedChanges, extractUpdateValueAndValidityChanges, filterDevicesByTypes, filterKeyValueBaseReduce, findChildRoute, findObjectDifferences, findParentElement, findParentElementDimensions, findParentRoute, findParentRouteConfig, flattenByKey, formatMinutesToTimeNumber, formatTimeToMinutes, formatTimeToString, formatTimeWithMidnight, formatTimeWithSeparator, formatTimeWithoutMidnight, formatTimeWithoutSeparator, formatTimeWithoutSeperatorAndWithMidnight, formatTimeWithoutSeperatorAndWithoutMidnight, getActivatedRoutePathSegment, getAddress, getCurrentLang, getDateTimeInSeconds, getDateWithoutTime, getDaysFromValue, getDefaultDeviceStatus, getFormattedTime, getMomenWithTime, getMomentNullable, getMomentWithoutTime, getNavigationRoute, getObjectMetadata, getParkerTypesText, getPasswordMinimalLength, getSecondsBackoff, getTooltipTextByParkerType, getUserTimeZone, getUtcMomentNullable, hasRequiredField, hasValue, humanizeTimeElapsed, humanizeUtcTimeElapsed, identity, initializeMsal, initializeOpenId, integerNumberRegex, integerPositiveNumberRegex, ipv4Regex, isBoolean, isCharacterLengthValid, isDefinedAndNotEmpty, isDeviceActive, isDeviceInFilterDeviceTypes, isDeviceInFiltersDeviceTypes, isFalsy, isIOSDevice, isMaxDaysRangeValid, isNullOrEmpty, isNumber, isObjectEmpty, isSearchFieldChanged, isSingularOrPlural, isTrueInBinary, isTruthy, isVersionGreaterThanEqual, loadHTMLContent, lowerCase, lowerCaseFirstLetter, mapTransientTags, markEntitiesAsChanged, markEntityAsUnchanged, matchesDeviceCriteria, matchesDeviceParkingLotCriteria, matchesDevicesParkingLotCriteria, minutesToTime, mobileRegex, nameof, navigateToForbiddenAccessPage, navigateToNotSupportedBrowserPage, noEmojiRegex, notificationAnimation, numberWithLeadingZero, ofStatus, omitKeys, openBackgroundIframe, openCloseFiltersAnimation, parentParkBaseEventTypes, parentParkEventTypes, parkBaseEventTypes, parkEventTypes, parkerEnumToText, parseApiErrorData, parseApiErrorMessage, parseDateTimeToSparkParkTime, parseSmartParkTime, passwordRegex, percentageRegex, printSpecialDaysText, printStackTrace, readjustForTimezone, regexExp, remoteCommandLocalizationMap, replaceAll, rtEventPermissions, safeParse, searchBarPopupAnimation, setErrorMessage, shortDaysTranslation, sleep, slideFromBottom, slideFromRight, slideFromUp, slideUpDown, successful, timeToMinutes, timeToMoment, toInt, toNumberMap, toStringMap, wrapConstructor };
|
|
109415
109417
|
//# sourceMappingURL=tiba-spark-client-shared-lib.mjs.map
|