@tiba-spark/client-shared-lib 25.4.0-183 → 25.4.0-192

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.
@@ -2,10 +2,8 @@ import { __decorate } from "tslib";
2
2
  import { Injectable } from '@angular/core';
3
3
  import { Action, Selector, State } from '@ngxs/store';
4
4
  import { tap } from 'rxjs/operators';
5
- import { VERSION_10_3_0, VERSION_9_1_0 } from '../../constants/version-constants';
6
5
  import { Localization } from '../../enums/localization.enum';
7
6
  import { SubModule } from '../../service-proxy/cloud-service-proxies';
8
- import { isVersionGreaterThanEqual } from '../../utils/support-version.util';
9
7
  import { SidenavState } from '../sidenav/sidenav.state';
10
8
  import { ClearSearchTicketAction, SearchTicketAction } from './remote-validation.actions';
11
9
  import * as i0 from "@angular/core";
@@ -27,23 +25,17 @@ let RemoteValidationState = class RemoteValidationState {
27
25
  onSearchTicketAction(ctx, { guid, parkId, searchValue, ticketDateTimeInSeconds }) {
28
26
  const ticket = this.translateService.instant(Localization.ticket);
29
27
  let searchResults$;
30
- const sparkVersion = this.store.selectSnapshot(({ smartpark: { versions } }) => versions[guid]);
31
- if (isVersionGreaterThanEqual(sparkVersion, VERSION_10_3_0)) {
32
- const subModule = this.store.selectSnapshot(SidenavState.subModule);
33
- switch (subModule) {
34
- case SubModule.EValidation:
35
- searchResults$ = this.validationRpcServiceProxy.transientValidationShallowSearch(guid, parkId, searchValue, ticketDateTimeInSeconds);
36
- break;
37
- case SubModule.HotelGuestsIO:
38
- searchResults$ = this.validationRpcServiceProxy.hotelGuestIOTransientValidationShallowSearch(guid, parkId, searchValue, ticketDateTimeInSeconds);
39
- break;
40
- default:
41
- console.error(`search ticket action not defined for sub module: ${subModule}`);
42
- break;
43
- }
44
- }
45
- else if (isVersionGreaterThanEqual(sparkVersion, VERSION_9_1_0)) {
46
- searchResults$ = this.validationRpcServiceProxy.transientValidationShallowSearch(guid, parkId, searchValue, ticketDateTimeInSeconds);
28
+ const subModule = this.store.selectSnapshot(SidenavState.subModule);
29
+ switch (subModule) {
30
+ case SubModule.EValidation:
31
+ searchResults$ = this.validationRpcServiceProxy.transientValidationShallowSearch(guid, parkId, searchValue, ticketDateTimeInSeconds);
32
+ break;
33
+ case SubModule.HotelGuestsIO:
34
+ searchResults$ = this.validationRpcServiceProxy.hotelGuestIOTransientValidationShallowSearch(guid, parkId, searchValue, ticketDateTimeInSeconds);
35
+ break;
36
+ default:
37
+ console.error(`search ticket action not defined for sub module: ${subModule}`);
38
+ break;
47
39
  }
48
40
  this.onClearSearchTicketAction(ctx);
49
41
  return searchResults$.pipe(tap(searchResults => {
@@ -88,4 +80,4 @@ export { RemoteValidationState };
88
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RemoteValidationState, decorators: [{
89
81
  type: Injectable
90
82
  }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Rpc.ValidationRpcServiceProxy }, { type: i3.TranslateService }], propDecorators: { onSearchTicketAction: [], onClearSearchTicketAction: [] } });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLXZhbGlkYXRpb24uc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL21vZHVsZXMvcmVtb3RlLXZhbGlkYXRpb24vcmVtb3RlLXZhbGlkYXRpb24uc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUF1QixNQUFNLGFBQWEsQ0FBQztBQUUzRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUFlbkYsSUFBTSxxQkFBcUIsR0FBM0IsTUFBTSxxQkFBcUI7SUFFaEMsWUFDVSxLQUFZLEVBQ1oseUJBQXdELEVBQ3hELGdCQUFrQztRQUZsQyxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1osOEJBQXlCLEdBQXpCLHlCQUF5QixDQUErQjtRQUN4RCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBQzVDLENBQUM7SUFHYSxBQUFQLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBaUM7UUFDM0QsT0FBTyxLQUFLLENBQUMsYUFBYSxDQUFDO0lBQzdCLENB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QWhCVSxxQkFBcUI7SUFQakMsS0FBSyxDQUE2QjtRQUNqQyxJQUFJLEVBQUUsa0JBQWtCO1FBQ3hCLFFBQVEsRUFBRTtZQUNSLGFBQWEsRUFBRSxJQUFJO1lBQ25CLHFCQUFxQixFQUFFLElBQUk7U0FDNUI7S0FDRixDQUFDO0dBQ1cscUJBQXFCLENBNkRqQzs7NEZBN0RZLHFCQUFxQjtrQkFSakMsVUFBVTtxSkEyQlQsb0JBQW9CLE1Bb0NwQix5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb24sIFNlbGVjdG9yLCBTdGF0ZSwgU3RhdGVDb250ZXh0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFZFUlNJT05fMTBfM18wLCBWRVJTSU9OXzlfMV8wIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3ZlcnNpb24tY29uc3RhbnRzJztcbmltcG9ydCB7IExvY2FsaXphdGlvbiB9IGZyb20gJy4uLy4uL2VudW1zL2xvY2FsaXphdGlvbi5lbnVtJztcbmltcG9ydCB7IFJwYyB9IGZyb20gJy4uLy4uL3NlcnZpY2UtcHJveHknO1xuaW1wb3J0IHsgU3ViTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgVHJhbnNpZW50VmFsaWRhdGlvblNoYWxsb3dEdG8sIFRyYW5zaWVudFZhbGlkYXRpb25TaGFsbG93RHRvSUVudW1lcmFibGVIdHRwUmVzcG9uc2VEYXRhIH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eS9ycGMtc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IGlzVmVyc2lvbkdyZWF0ZXJUaGFuRXF1YWwgfSBmcm9tICcuLi8uLi91dGlscy9zdXBwb3J0LXZlcnNpb24udXRpbCc7XG5pbXBvcnQgeyBTaWRlbmF2U3RhdGUgfSBmcm9tICcuLi9zaWRlbmF2L3NpZGVuYXYuc3RhdGUnO1xuaW1wb3J0IHsgQ2xlYXJTZWFyY2hUaWNrZXRBY3Rpb24sIFNlYXJjaFRpY2tldEFjdGlvbiB9IGZyb20gJy4vcmVtb3RlLXZhbGlkYXRpb24uYWN0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVtb3RlVmFsaWRhdGlvblN0YXRlTW9kZWwge1xuICBzZWFyY2hSZXN1bHRzOiBUcmFuc2llbnRWYWxpZGF0aW9uU2hhbGxvd0R0b1tdO1xuICB0aWNrZXRCcmVhZGNydW1iVmFsdWU6IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoKVxuQFN0YXRlPFJlbW90ZVZhbGlkYXRpb25TdGF0ZU1vZGVsPih7XG4gIG5hbWU6ICdyZW1vdGVWYWxpZGF0aW9uJyxcbiAgZGVmYXVsdHM6IHtcbiAgICBzZWFyY2hSZXN1bHRzOiBudWxsLFxuICAgIHRpY2tldEJyZWFkY3J1bWJWYWx1ZTogbnVsbFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBSZW1vdGVWYWxpZGF0aW9uU3RhdGUge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgdmFsaWRhdGlvblJwY1NlcnZpY2VQcm94eTogUnBjLlZhbGlkYXRpb25ScGNTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHNlYXJjaFJlc3VsdHMoc3RhdGU6IFJlbW90ZVZhbGlkYXRpb25TdGF0ZU1vZGVsKSB7XG4gICAgcmV0dXJuIHN0YXRlLnNlYXJjaFJlc3VsdHM7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHRpY2tldEJyZWFkY3J1bWJWYWx1ZShzdGF0ZTogUmVtb3RlVmFsaWRhdGlvblN0YXRlTW9kZWwpIHtcbiAgICByZXR1cm4gc3RhdGUudGlja2V0QnJlYWRjcnVtYlZhbHVlO1xuICB9XG5cbiAgQEFjdGlvbihTZWFyY2hUaWNrZXRBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25TZWFyY2hUaWNrZXRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UmVtb3RlVmFsaWRhdGlvblN0YXRlTW9kZWw+LCB7IGd1aWQsIHBhcmtJZCwgc2VhcmNoVmFsdWUsIHRpY2tldERhdGVUaW1lSW5TZWNvbmRzIH06IFNlYXJjaFRpY2tldEFjdGlvbikge1xuICAgIGNvbnN0IHRpY2tldCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi50aWNrZXQpO1xuICAgIGxldCBzZWFyY2hSZXN1bHRzJDogT2JzZXJ2YWJsZTxUcmFuc2llbnRWYWxpZGF0aW9uU2hhbGxvd0R0b0lFbnVtZXJhYmxlSHR0cFJlc3BvbnNlRGF0YT47XG4gICAgY29uc3Qgc3BhcmtWZXJzaW9uID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdCgoeyBzbWFydHBhcms6IHsgdmVyc2lvbnMgfSB9KSA9PiB2ZXJzaW9uc1tndWlkXSk7XG4gICAgaWYgKGlzVmVyc2lvbkdyZWF0ZXJUaGFuRXF1YWwoc3BhcmtWZXJzaW9uLCBWRVJTSU9OXzEwXzNfMCkpIHtcbiAgICAgIGNvbnN0IHN1Yk1vZHVsZSA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoU2lkZW5hdlN0YXRlLnN1Yk1vZHVsZSk7XG4gICAgICBzd2l0Y2ggKHN1Yk1vZHVsZSkge1xuICAgICAgICBjYXNlIFN1Yk1vZHVsZS5FVmFsaWRhdGlvbjpcbiAgICAgICAgICBzZWFyY2hSZXN1bHRzJCA9IHRoaXMudmFsaWRhdGlvblJwY1NlcnZpY2VQcm94eS50cmFuc2llbnRWYWxpZGF0aW9uU2hhbGxvd1NlYXJjaChndWlkLCBwYXJrSWQsIHNlYXJjaFZhbHVlLCB0aWNrZXREYXRlVGltZUluU2Vjb25kcyk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBTdWJNb2R1bGUuSG90ZWxHdWVzdHNJTzpcbiAgICAgICAgICBzZWFyY2hSZXN1bHRzJCA9IHRoaXMudmFsaWRhdGlvblJwY1NlcnZpY2VQcm94eS5ob3RlbEd1ZXN0SU9UcmFuc2llbnRWYWxpZGF0aW9uU2hhbGxvd1NlYXJjaChndWlkLCBwYXJrSWQsIHNlYXJjaFZhbHVlLCB0aWNrZXREYXRlVGltZUluU2Vjb25kcyk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBzZWFyY2ggdGlja2V0IGFjdGlvbiBub3QgZGVmaW5lZCBmb3Igc3ViIG1vZHVsZTogJHtzdWJNb2R1bGV9YCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpc1ZlcnNpb25HcmVhdGVyVGhhbkVxdWFsKHNwYXJrVmVyc2lvbiwgVkVSU0lPTl85XzFfMCkpIHtcbiAgICAgIHNlYXJjaFJlc3VsdHMkID0gdGhpcy52YWxpZGF0aW9uUnBjU2VydmljZVByb3h5LnRyYW5zaWVudFZhbGlkYXRpb25TaGFsbG93U2VhcmNoKGd1aWQsIHBhcmtJZCwgc2VhcmNoVmFsdWUsIHRpY2tldERhdGVUaW1lSW5TZWNvbmRzKTtcbiAgICB9XG5cbiAgICB0aGlzLm9uQ2xlYXJTZWFyY2hUaWNrZXRBY3Rpb24oY3R4KTtcblxuICAgIHJldHVybiBzZWFyY2hSZXN1bHRzJC5waXBlKHRhcChzZWFyY2hSZXN1bHRzID0+IHtcbiAgICAgIGNvbnN0IHRpY2tldEJyZWFkY3J1bWJWYWx1ZSA9IHNlYXJjaFJlc3VsdHM/LmRhdGE/Lmxlbmd0aCA+IDAgPyBgJHt0aWNrZXR9ICMke3NlYXJjaFJlc3VsdHMuZGF0YVswXS50aWNrZXROdW19YCA6IG51bGw7XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIHNlYXJjaFJlc3VsdHM6IHNlYXJjaFJlc3VsdHMuZGF0YSxcbiAgICAgICAgdGlja2V0QnJlYWRjcnVtYlZhbHVlXG4gICAgICB9KTtcbiAgICB9XG4gICAgKSk7XG4gIH1cblxuICBAQWN0aW9uKENsZWFyU2VhcmNoVGlja2V0QWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uQ2xlYXJTZWFyY2hUaWNrZXRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8UmVtb3RlVmFsaWRhdGlvblN0YXRlTW9kZWw+KSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgc2VhcmNoUmVzdWx0czogbnVsbCxcbiAgICAgIHRpY2tldEJyZWFkY3J1bWJWYWx1ZTogbnVsbFxuICAgIH0pO1xuICB9XG59XG4iXX0=
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLXZhbGlkYXRpb24uc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL21vZHVsZXMvcmVtb3RlLXZhbGlkYXRpb24vcmVtb3RlLXZhbGlkYXRpb24uc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUF1QixNQUFNLGFBQWEsQ0FBQztBQUUzRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7O0FBZW5GLElBQU0scUJBQXFCLEdBQTNCLE1BQU0scUJBQXFCO0lBRWhDLFlBQ1UsS0FBWSxFQUNaLHlCQUF3RCxFQUN4RCxnQkFBa0M7UUFGbEMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBK0I7UUFDeEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUM1QyxDQUFDO0lBR2EsQUFBUCxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQWlDO1FBQzNELE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQztJQUM3QixDQUFDO0lBR2EsQUFBUCxNQUFNLENBQUMscUJBQXFCLENBQUMsS0FBaUM7UUFDbkUsT0FBTyxLQUFLLENBQUMscUJBQXFCLENBQUM7SUFDckMsQ0FBQztJQUdELG9CQUFvQixDQUFDLEdBQTZDLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBc0I7UUFDNUksTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEUsSUFBSSxjQUFvRixDQUFDO1FBQ3pGLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRSxRQUFRLFNBQVMsRUFBRSxDQUFDO1lBQ2xCLEtBQUssU0FBUyxDQUFDLFdBQVc7Z0JBQ3hCLGNBQWMsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztnQkFDckksTUFBTTtZQUVSLEtBQUssU0FBUyxDQUFDLGFBQWE7Z0JBQzFCLGNBQWMsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsNENBQTRDLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztnQkFDakosTUFBTTtZQUVSO2dCQUNFLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0RBQW9ELFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQy9FLE1BQU07UUFDVixDQUFDO1FBRUQsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXBDLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDN0MsTUFBTSxxQkFBcUIsR0FBRyxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxLQUFLLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN2SCxHQUFHLENBQUMsVUFBVSxDQUFDO2dCQUNiLGFBQWEsRUFBRSxhQUFhLENBQUMsSUFBSTtnQkFDakMscUJBQXFCO2FBQ3RCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FDQSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QseUJBQXlCLENBQUMsR0FBNkM7UUFDckUsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNiLGFBQWEsRUFBRSxJQUFJO1lBQ25CLHFCQUFxQixFQUFFLElBQUk7U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F2RFUscUJBQXFCO21IQUFyQixxQkFBcUI7O0FBbUJoQztJQURDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDO2lFQTZCdkQ7QUFHRDtJQURDLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDO3NFQU01RDtBQTlDYTtJQURiLFFBQVEsRUFBRTtnREFHVjtBQUdhO0lBRGIsUUFBUSxFQUFFO3dEQUdWO0FBaEJVLHFCQUFxQjtJQVBqQyxLQUFLLENBQTZCO1FBQ2pDLElBQUksRUFBRSxrQkFBa0I7UUFDeEIsUUFBUSxFQUFFO1lBQ1IsYUFBYSxFQUFFLElBQUk7WUFDbkIscUJBQXFCLEVBQUUsSUFBSTtTQUM1QjtLQUNGLENBQUM7R0FDVyxxQkFBcUIsQ0F3RGpDOzs0RkF4RFkscUJBQXFCO2tCQVJqQyxVQUFVO3FKQTJCVCxvQkFBb0IsTUErQnBCLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEFjdGlvbiwgU2VsZWN0b3IsIFN0YXRlLCBTdGF0ZUNvbnRleHQsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uIH0gZnJvbSAnLi4vLi4vZW51bXMvbG9jYWxpemF0aW9uLmVudW0nO1xuaW1wb3J0IHsgUnBjIH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eSc7XG5pbXBvcnQgeyBTdWJNb2R1bGUgfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L2Nsb3VkLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBUcmFuc2llbnRWYWxpZGF0aW9uU2hhbGxvd0R0bywgVHJhbnNpZW50VmFsaWRhdGlvblNoYWxsb3dEdG9JRW51bWVyYWJsZUh0dHBSZXNwb25zZURhdGEgfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L3JwYy1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgU2lkZW5hdlN0YXRlIH0gZnJvbSAnLi4vc2lkZW5hdi9zaWRlbmF2LnN0YXRlJztcbmltcG9ydCB7IENsZWFyU2VhcmNoVGlja2V0QWN0aW9uLCBTZWFyY2hUaWNrZXRBY3Rpb24gfSBmcm9tICcuL3JlbW90ZS12YWxpZGF0aW9uLmFjdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlbW90ZVZhbGlkYXRpb25TdGF0ZU1vZGVsIHtcbiAgc2VhcmNoUmVzdWx0czogVHJhbnNpZW50VmFsaWRhdGlvblNoYWxsb3dEdG9bXTtcbiAgdGlja2V0QnJlYWRjcnVtYlZhbHVlOiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKClcbkBTdGF0ZTxSZW1vdGVWYWxpZGF0aW9uU3RhdGVNb2RlbD4oe1xuICBuYW1lOiAncmVtb3RlVmFsaWRhdGlvbicsXG4gIGRlZmF1bHRzOiB7XG4gICAgc2VhcmNoUmVzdWx0czogbnVsbCxcbiAgICB0aWNrZXRCcmVhZGNydW1iVmFsdWU6IG51bGxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgUmVtb3RlVmFsaWRhdGlvblN0YXRlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIHZhbGlkYXRpb25ScGNTZXJ2aWNlUHJveHk6IFJwYy5WYWxpZGF0aW9uUnBjU2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkge1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzZWFyY2hSZXN1bHRzKHN0YXRlOiBSZW1vdGVWYWxpZGF0aW9uU3RhdGVNb2RlbCkge1xuICAgIHJldHVybiBzdGF0ZS5zZWFyY2hSZXN1bHRzO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB0aWNrZXRCcmVhZGNydW1iVmFsdWUoc3RhdGU6IFJlbW90ZVZhbGlkYXRpb25TdGF0ZU1vZGVsKSB7XG4gICAgcmV0dXJuIHN0YXRlLnRpY2tldEJyZWFkY3J1bWJWYWx1ZTtcbiAgfVxuXG4gIEBBY3Rpb24oU2VhcmNoVGlja2V0QWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uU2VhcmNoVGlja2V0QWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFJlbW90ZVZhbGlkYXRpb25TdGF0ZU1vZGVsPiwgeyBndWlkLCBwYXJrSWQsIHNlYXJjaFZhbHVlLCB0aWNrZXREYXRlVGltZUluU2Vjb25kcyB9OiBTZWFyY2hUaWNrZXRBY3Rpb24pIHtcbiAgICBjb25zdCB0aWNrZXQgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24udGlja2V0KTtcbiAgICBsZXQgc2VhcmNoUmVzdWx0cyQ6IE9ic2VydmFibGU8VHJhbnNpZW50VmFsaWRhdGlvblNoYWxsb3dEdG9JRW51bWVyYWJsZUh0dHBSZXNwb25zZURhdGE+O1xuICAgIGNvbnN0IHN1Yk1vZHVsZSA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoU2lkZW5hdlN0YXRlLnN1Yk1vZHVsZSk7XG4gICAgc3dpdGNoIChzdWJNb2R1bGUpIHtcbiAgICAgIGNhc2UgU3ViTW9kdWxlLkVWYWxpZGF0aW9uOlxuICAgICAgICBzZWFyY2hSZXN1bHRzJCA9IHRoaXMudmFsaWRhdGlvblJwY1NlcnZpY2VQcm94eS50cmFuc2llbnRWYWxpZGF0aW9uU2hhbGxvd1NlYXJjaChndWlkLCBwYXJrSWQsIHNlYXJjaFZhbHVlLCB0aWNrZXREYXRlVGltZUluU2Vjb25kcyk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFN1Yk1vZHVsZS5Ib3RlbEd1ZXN0c0lPOlxuICAgICAgICBzZWFyY2hSZXN1bHRzJCA9IHRoaXMudmFsaWRhdGlvblJwY1NlcnZpY2VQcm94eS5ob3RlbEd1ZXN0SU9UcmFuc2llbnRWYWxpZGF0aW9uU2hhbGxvd1NlYXJjaChndWlkLCBwYXJrSWQsIHNlYXJjaFZhbHVlLCB0aWNrZXREYXRlVGltZUluU2Vjb25kcyk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zb2xlLmVycm9yKGBzZWFyY2ggdGlja2V0IGFjdGlvbiBub3QgZGVmaW5lZCBmb3Igc3ViIG1vZHVsZTogJHtzdWJNb2R1bGV9YCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHRoaXMub25DbGVhclNlYXJjaFRpY2tldEFjdGlvbihjdHgpO1xuXG4gICAgcmV0dXJuIHNlYXJjaFJlc3VsdHMkLnBpcGUodGFwKHNlYXJjaFJlc3VsdHMgPT4ge1xuICAgICAgY29uc3QgdGlja2V0QnJlYWRjcnVtYlZhbHVlID0gc2VhcmNoUmVzdWx0cz8uZGF0YT8ubGVuZ3RoID4gMCA/IGAke3RpY2tldH0gIyR7c2VhcmNoUmVzdWx0cy5kYXRhWzBdLnRpY2tldE51bX1gIDogbnVsbDtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgc2VhcmNoUmVzdWx0czogc2VhcmNoUmVzdWx0cy5kYXRhLFxuICAgICAgICB0aWNrZXRCcmVhZGNydW1iVmFsdWVcbiAgICAgIH0pO1xuICAgIH1cbiAgICApKTtcbiAgfVxuXG4gIEBBY3Rpb24oQ2xlYXJTZWFyY2hUaWNrZXRBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25DbGVhclNlYXJjaFRpY2tldEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxSZW1vdGVWYWxpZGF0aW9uU3RhdGVNb2RlbD4pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBzZWFyY2hSZXN1bHRzOiBudWxsLFxuICAgICAgdGlja2V0QnJlYWRjcnVtYlZhbHVlOiBudWxsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -526,4 +526,4 @@ export { SmartparkState };
526
526
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SmartparkState, decorators: [{
527
527
  type: Injectable
528
528
  }], ctorParameters: () => [{ type: i1.Store }, { type: i2.RevenueService }, { type: i3.SmartparkCloudServiceProxy }, { type: i4.FacilityRpcServiceProxy }, { type: i5.FacilityIdentityServiceProxy }, { type: i6.Rpc.DeviceRpcServiceProxy }, { type: i7.MessageBarService }, { type: i8.RouteService }, { type: i9.TranslateService }, { type: i10.ExportFileService }, { type: i5.MobileIdentityServiceProxy }, { type: i3.BackofficeCloudServiceProxy }, { type: i3.LicenseCloudServiceProxy }], propDecorators: { onLoadSmartparksAction: [], onLoadSmartparksBasicAction: [], onLoadMobileSmartparksBasicAction: [], onClearSmartparksBasicAction: [], onLoadSmartparksTableAction: [], onLoadBackofficeSmartparksTableAction: [], onSetSmartParkTableAction: [], onSetSmartParksAction: [], onSelectSmartParkAction: [], onLoadParksAction: [], onLoadParkDevices: [], onSelectParkAction: [], onClearSelectedParkAction: [], onClearSelectedsmartparkAction: [], onSmartParkDeviceStatusChangedAction: [], onDisconnectSmartparkAction: [], onSetSmartParkVersionsAction: [], onLoadSpAndSparkVersionsAction: [], onLoadBackofficeSpAndSparkVersionsAction: [], onClearSpAndSparkVersionsAction: [], onLoadVarsAction: [], onLoadBackofficeVarsAction: [], onSyncUsersAndRolesBySmartparkIdAction: [], onExportSmartparksAction: [], onExportPdfSmartparksTableAction: [], onLoadAllSmartparksAction: [] } });
529
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRwYXJrLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9tb2R1bGVzL3NtYXJ0cGFya3Mvc21hcnRwYXJrLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQXVCLE1BQU0sYUFBYSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUc3RCxPQUFPLEVBQ0wsU0FBUyxFQUVULGVBQWUsRUFBRSxhQUFhLEVBQy9CLE1BQU0sMkNBQTJDLENBQUM7QUFNbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFakUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0s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VCxzQkFBc0IsTUFjdEIsMkJBQTJCLE1BWTNCLGlDQUFpQyxNQVlqQyw0QkFBNEIsTUFPNUIsMkJBQTJCLE1BWTNCLHFDQUFxQyxNQWFyQyx5QkFBeUIsTUFPekIscUJBQXFCLE1BYXJCLHVCQUF1QixNQWF2QixpQkFBaUIsTUEyQmpCLGlCQUFpQixNQXVCakIsa0JBQWtCLE1BTWxCLHlCQUF5QixNQVF6Qiw4QkFBOEIsTUFPOUIsb0NBQW9DLE1BZ0JwQywyQkFBMkIsTUFzQjNCLDRCQUE0QixNQU81Qiw4QkFBOEIsTUFVOUIsd0NBQXdDLE1BVXhDLCtCQUErQixNQU8vQixnQkFBZ0IsTUFXaEIsMEJBQTBCLE1BVzFCLHNDQUFzQyxNQVF0Qyx3QkFBd0IsTUE0QnhCLGdDQUFnQyxNQWFoQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0ZSB9IGZyb20gJ0BuZ3hzL3JvdXRlci1wbHVnaW4nO1xuaW1wb3J0IHsgQWN0aW9uLCBTZWxlY3RvciwgU3RhdGUsIFN0YXRlQ29udGV4dCwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1lc3NhZ2VCYXJQb3NpdGlvbiB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbWVzc2FnZS1iYXIvbWVzc2FnZS1iYXItcG9zaXRpb24uZW51bSc7XG5pbXBvcnQgeyBNZXNzYWdlQmFyU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbWVzc2FnZS1iYXIvbWVzc2FnZS1iYXIuc2VydmljZSc7XG5pbXBvcnQgeyBWRVJTSU9OX1YxIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3ZlcnNpb24tY29uc3RhbnRzJztcbmltcG9ydCB7IFNtYXJ0UGFya1N0YXR1c1RleHQgfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb24gfSBmcm9tICcuLi8uLi9lbnVtcy9sb2NhbGl6YXRpb24uZW51bSc7XG5pbXBvcnQgeyBJUGFya0RldGFpbHMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3BhcmstZGV0YWlscy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUnBjIH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eSc7XG5pbXBvcnQge1xuICBBcHBNb2R1bGUsIEJhY2tvZmZpY2VDbG91ZFNlcnZpY2VQcm94eSwgRmFjaWxpdHlCYXNpY0R0bywgTGljZW5zZUNsb3VkU2VydmljZVByb3h5LCBPYmplY3RIdHRwUmVzcG9uc2VEYXRhLFxuICBTbWFydHBhcmtDbG91ZFNlcnZpY2VQcm94eSwgU21hcnRwYXJrRHRvLCBTbWFydHBhcmtGaWx0ZXJPcHRpb25EdG8sIFNtYXJ0cGFya0ZpbHRlck9wdGlvbkR0b0lFbnVtZXJhYmxlSHR0cFJlc3BvbnNlRGF0YSxcbiAgU21hcnRQYXJrU3RhdHVzLCBTbWFydFBhcmtUeXBlLCBTcEFuZFNwYXJrVmVyc2lvbnNEdG8sIFZhckR0b1xufSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L2Nsb3VkLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBGYWNpbGl0eUlkZW50aXR5U2VydmljZVByb3h5LCBNb2JpbGVJZGVudGl0eVNlcnZpY2VQcm94eSwgU21hcnRwYXJrQmFzaWNEdG8sIFNtYXJ0UGFya1dyYXBwZXJEdG8gfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L2lkZW50aXR5LXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBGYWNpbGl0eVJwY1NlcnZpY2VQcm94eSwgSURldmljZUR0byB9IGZyb20gJy4uLy4uL3NlcnZpY2UtcHJveHkvcnBjLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBFeHBvcnRGaWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V4cG9ydC1maWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmV2ZW51ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXZlbnVlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUm91dGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcm91dGUuc2VydmljZSc7XG5pbXBvcnQgeyBwYXJzZUFwaUVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWxzL2FwaS1oZWxwZXIudXRpbCc7XG5pbXBvcnQgeyBnZXREZWZhdWx0RGV2aWNlU3RhdHVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvZGV2aWNlLnV0aWwnO1xuaW1wb3J0IHsgU3RyaW5nTWFwIH0gZnJvbSAnLi4vLi4vdXRpbHMvbGFuZy51dGlsJztcbmltcG9ydCB7IENsZWFyU2VsZWN0ZWRGYWNpbGl0eUFjdGlvbiwgU2V0U21hcnRwYXJrQmFzaWNBbGxBY3Rpb24gfSBmcm9tICcuLi9mYWNpbGl0eS9mYWNpbGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IE1lbnVTdWJNb2R1bGVMb2FkQWN0aW9uIH0gZnJvbSAnLi4vc2lkZW5hdi9zaWRlbmF2LmFjdGlvbnMnO1xuaW1wb3J0IHtcbiAgQ2xlYXJTZWxlY3RlZFBhcmtBY3Rpb24sIENsZWFyU2VsZWN0ZWRTbWFydHBhcmtBY3Rpb24sIENsZWFyU21hcnRwYXJrc0Jhc2ljQWN0aW9uLCBDbGVhclNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbixcbiAgRGlzY29ubmVjdFNtYXJ0UGFya0FjdGlvbiwgRXhwb3J0UGRmU21hcnRwYXJrc1RhYmxlQWN0aW9uLCBFeHBvcnRTbWFydHBhcmtBY3Rpb24sIExvYWRCYWNrb2ZmaWNlU21hcnRwYXJrc1RhYmxlQWN0aW9uLFxuICBMb2FkQmFja29mZmljZVNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbiwgTG9hZEJhY2tvZmZpY2VWYXJzQWN0aW9uLCBMb2FkTW9iaWxlU21hcnRwYXJrc0Jhc2ljQWN0aW9uLFxuICBMb2FkUGFya0RldmljZXNBY3Rpb24sIExvYWRQYXJrc0FjdGlvbiwgTG9hZFNtYXJ0cGFya3NBY3Rpb24sIExvYWRTbWFydHBhcmtzQmFzaWNBY3Rpb24sIExvYWRTbWFydHBhcmtzRHJvcGRvd25BY3Rpb24sIExvYWRTbWFydHBhcmtzVGFibGVBY3Rpb24sXG4gIExvYWRTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24sIExvYWRWYXJzQWN0aW9uLCBTZWxlY3RQYXJrQWN0aW9uLCBTZWxlY3RTbWFydFBhcmtBY3Rpb24sIFNldFNtYXJ0UGFya0FjdGlvbixcbiAgU2V0U21hcnRQYXJrVGFibGVBY3Rpb24sIFNldFNtYXJ0UGFya1ZlcnNpb25zQWN0aW9uLCBTbWFydFBhcmtEZXZpY2VTdGF0dXNDaGFuZ2VkQWN0aW9uLCBTeW5jVXNlcnNBbmRSb2xlc0J5U21hcnRwYXJrSWRBY3Rpb25cbn0gZnJvbSAnLi9zbWFydHBhcmsuYWN0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRwYXJrc1N0YXRlTW9kZWwge1xuICBzbWFydHBhcmtzOiAoU21hcnRwYXJrRHRvIHwgU21hcnRwYXJrQmFzaWNEdG8pW107XG4gIGxhdGVzdFNtYXJ0cGFya3M6IChTbWFydHBhcmtEdG8gfCBTbWFydHBhcmtCYXNpY0R0bylbXTtcbiAgU3BBbmRTcGFya1ZlcnNpb25zOiBTcEFuZFNwYXJrVmVyc2lvbnNEdG87XG4gIGNvdW50U21hcnRQYXJrczogbnVtYmVyO1xuICBjb3VudFBhcmtpbmdMb3RzOiBudW1iZXI7XG4gIHNlbGVjdGVkU21hcnRQYXJrSWQ6IG51bWJlcjtcbiAgc2VsZWN0ZWRTbWFydFBhcms6IFNtYXJ0cGFya0R0bztcbiAgcGFya3M6IEZhY2lsaXR5QmFzaWNEdG9bXTtcbiAgc2VsZWN0ZWRQYXJrSWQ6IG51bWJlcjtcbiAgc2VsZWN0ZWRQYXJrRGV0YWlsczogSVBhcmtEZXRhaWxzO1xuICBzbWFydHBhcmtHdWlkOiBzdHJpbmc7XG4gIHZlcnNpb25zOiBTdHJpbmdNYXA8c3RyaW5nPjtcbiAgc21hcnRQYXJrV3JhcHBlcjogU21hcnRQYXJrV3JhcHBlckR0bztcbiAgdmFyczogVmFyRHRvW107XG4gIGV4cG9ydFBkZlNtYXJ0cGFya3M6IChTbWFydHBhcmtEdG8gfCBTbWFydHBhcmtCYXNpY0R0bylbXTtcbiAgZmFjaWxpdHlUcmVlOiBTbWFydHBhcmtGaWx0ZXJPcHRpb25EdG9bXTtcbn1cblxuQEluamVjdGFibGUoKVxuQFN0YXRlPFNtYXJ0cGFya3NTdGF0ZU1vZGVsPih7XG4gIG5hbWU6ICdzbWFydHBhcmsnLFxuICBkZWZhdWx0czoge1xuICAgIHNtYXJ0cGFya3M6IG51bGwsXG4gICAgbGF0ZXN0U21hcnRwYXJrczogbnVsbCxcbiAgICBjb3VudFNtYXJ0UGFya3M6IDAsXG4gICAgY291bnRQYXJraW5nTG90czogMCxcbiAgICBzZWxlY3RlZFNtYXJ0UGFya0lkOiBudWxsLFxuICAgIHNlbGVjdGVkU21hcnRQYXJrOiBudWxsLFxuICAgIHBhcmtzOiBudWxsLFxuICAgIHNlbGVjdGVkUGFya0lkOiBudWxsLFxuICAgIHNlbGVjdGVkUGFya0RldGFpbHM6IG51bGwsXG4gICAgc21hcnRwYXJrR3VpZDogbnVsbCxcbiAgICB2ZXJzaW9uczoge30sXG4gICAgU3BBbmRTcGFya1ZlcnNpb25zOiBudWxsLFxuICAgIHNtYXJ0UGFya1dyYXBwZXI6IG51bGwsXG4gICAgdmFyczogW10sXG4gICAgZXhwb3J0UGRmU21hcnRwYXJrczogbnVsbCxcbiAgICBmYWNpbGl0eVRyZWU6IFtdLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBTbWFydHBhcmtTdGF0ZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSByZXZlbnVlU2VydmljZTogUmV2ZW51ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzbWFydHBhcmtDbG91ZFNlcnZpY2VQcm94eTogU21hcnRwYXJrQ2xvdWRTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBmYWNpbGl0eVJwY1NlcnZpY2VQcm94eTogRmFjaWxpdHlScGNTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBmYWNpbGl0eUlkZW50aXR5U2VydmljZVByb3h5OiBGYWNpbGl0eUlkZW50aXR5U2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgZGV2aWNlUnBjU2VydmljZVByb3h5OiBScGMuRGV2aWNlUnBjU2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgbWVzc2FnZUJhclNlcnZpY2U6IE1lc3NhZ2VCYXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVTZXJ2aWNlOiBSb3V0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZXhwb3J0RmlsZVNlcnZpY2U6IEV4cG9ydEZpbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbW9iaWxlSWRlbnRpdHlTZXJ2aWNlUHJveHk6IE1vYmlsZUlkZW50aXR5U2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgYmFja29mZmljZUNsb3VkU2VydmljZVByb3h5OiBCYWNrb2ZmaWNlQ2xvdWRTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBsaWNlbnNlQ2xvdWRTZXJ2aWNlUHJveHk6IExpY2Vuc2VDbG91ZFNlcnZpY2VQcm94eSkge1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBwYXJrcyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBGYWNpbGl0eUJhc2ljRHRvW10ge1xuICAgIHJldHVybiBzdGF0ZS5wYXJrcztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc2VsZWN0ZWRQYXJrSWQoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogbnVtYmVyIHtcbiAgICByZXR1cm4gc3RhdGUuc2VsZWN0ZWRQYXJrSWQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHNlbGVjdGVkUGFya0RldGFpbHMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogSVBhcmtEZXRhaWxzIHtcbiAgICByZXR1cm4gc3RhdGUuc2VsZWN0ZWRQYXJrRGV0YWlscztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgcGFya0RldmljZXMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogSURldmljZUR0b1tdIHtcbiAgICByZXR1cm4gc3RhdGUuc2VsZWN0ZWRQYXJrRGV0YWlscz8uZGV2aWNlcztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgZ3VpZChzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdGF0ZS5zbWFydHBhcmtHdWlkO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzbWFydHBhcmtzKHN0YXRlOiBTbWFydHBhcmtzU3RhdGVNb2RlbCk6IChTbWFydHBhcmtEdG8gfCBTbWFydHBhcmtCYXNpY0R0bylbXSB7XG4gICAgcmV0dXJuIHN0YXRlLnNtYXJ0cGFya3M7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGxhdGVzdFBhZ2Uoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogKFNtYXJ0cGFya0R0byB8IFNtYXJ0cGFya0Jhc2ljRHRvKVtdIHtcbiAgICByZXR1cm4gc3RhdGUubGF0ZXN0U21hcnRwYXJrcztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc2VsZWN0ZWRTbWFydFBhcmtJZChzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBudW1iZXIge1xuICAgIHJldHVybiBzdGF0ZS5zZWxlY3RlZFNtYXJ0UGFya0lkO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzZWxlY3RlZFNtYXJ0UGFya0RldGFpbHMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogU21hcnRwYXJrRHRvIHtcbiAgICByZXR1cm4gc3RhdGUuc2VsZWN0ZWRTbWFydFBhcms7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGNvdW50U21hcnRQYXJrcyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBudW1iZXIge1xuICAgIHJldHVybiBzdGF0ZS5jb3VudFNtYXJ0UGFya3M7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGNvdW50UGFya2luZ0xvdHMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogbnVtYmVyIHtcbiAgICByZXR1cm4gc3RhdGUuY291bnRQYXJraW5nTG90cztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgdmVyc2lvbnMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogU3RyaW5nTWFwPHN0cmluZz4ge1xuICAgIHJldHVybiBzdGF0ZS52ZXJzaW9ucztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc21hcnRwYXJrU2VhcmNoT3B0aW9ucyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBTcEFuZFNwYXJrVmVyc2lvbnNEdG8ge1xuICAgIHJldHVybiBzdGF0ZS5TcEFuZFNwYXJrVmVyc2lvbnM7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHNtYXJ0UGFya1dyYXBwZXIoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogU21hcnRQYXJrV3JhcHBlckR0byB7XG4gICAgcmV0dXJuIHN0YXRlLnNtYXJ0UGFya1dyYXBwZXI7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHZhcnMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogVmFyRHRvW10ge1xuICAgIHJldHVybiBzdGF0ZS52YXJzO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBleHBvcnRQZGZTbWFydHBhcmtzKHN0YXRlOiBTbWFydHBhcmtzU3RhdGVNb2RlbCk6IChTbWFydHBhcmtEdG8gfCBTbWFydHBhcmtCYXNpY0R0bylbXSB7XG4gICAgcmV0dXJuIHN0YXRlLmV4cG9ydFBkZlNtYXJ0cGFya3M7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGZhY2lsaXR5VHJlZShzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBTbWFydHBhcmtGaWx0ZXJPcHRpb25EdG9bXSB7XG4gICAgcmV0dXJuIHN0YXRlLmZhY2lsaXR5VHJlZTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZFNtYXJ0cGFya3NBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkU21hcnRwYXJrc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZFNtYXJ0cGFya3NBY3Rpb24pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBzbWFydHBhcmtzOiBbXSxcbiAgICAgIGNvdW50U21hcnRQYXJrczogMCxcbiAgICAgIGNvdW50UGFya2luZ0xvdHM6IHRoaXMuY291bnRTbWFydHBhcmtGYWNpbGl0aWVzKFtdKVxuICAgIH0pO1xuXG4gICAgY29uc3Qgc21hcnRwYXJrcyQgPSB0aGlzLnNtYXJ0cGFya0Nsb3VkU2VydmljZVByb3h5LmdldEFsbFNtYXJ0UGFya3MoKTtcbiAgICByZXR1cm4gc21hcnRwYXJrcyQucGlwZSh0YXAoc21hcnRwYXJrcyA9PiB7XG4gICAgICBjdHguZGlzcGF0Y2gobmV3IFNldFNtYXJ0UGFya0FjdGlvbihzbWFydHBhcmtzLmRhdGEsIGFjdGlvbi5yZWxvYWQpKTtcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRTbWFydHBhcmtzQmFzaWNBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkU21hcnRwYXJrc0Jhc2ljQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgYWN0aW9uOiBMb2FkU21hcnRwYXJrc0Jhc2ljQWN0aW9uKSB7XG4gICAgY3R4LmRpc3BhdGNoKG5ldyBNZW51U3ViTW9kdWxlTG9hZEFjdGlvbihhY3Rpb24uc3ViTW9kdWxlKSk7XG4gICAgY29uc3Qgc21hcnRwYXJrcyQgPSB0aGlzLmZhY2lsaXR5SWRlbnRpdHlTZXJ2aWNlUHJveHkuZmFjaWxpdHlBbGwoYWN0aW9uLmFwcE1vZHVsZSk7XG4gICAgcmV0dXJuIHNtYXJ0cGFya3MkLnBpcGUoc3dpdGNoTWFwKHNtYXJ0cGFya0Jhc2ljID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgc21hcnRQYXJrV3JhcHBlcjogc21hcnRwYXJrQmFzaWMuZGF0YSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNldFNtYXJ0cGFya0Jhc2ljQWxsQWN0aW9uKHNtYXJ0cGFya0Jhc2ljKSk7XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkTW9iaWxlU21hcnRwYXJrc0Jhc2ljQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZE1vYmlsZVNtYXJ0cGFya3NCYXNpY0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZE1vYmlsZVNtYXJ0cGFya3NCYXNpY0FjdGlvbikge1xuICAgIGN0eC5kaXNwYXRjaChuZXcgTWVudVN1Yk1vZHVsZUxvYWRBY3Rpb24oYWN0aW9uLnN1Yk1vZHVsZSkpO1xuICAgIGNvbnN0IHNtYXJ0cGFya3MkID0gdGhpcy5tb2JpbGVJZGVudGl0eVNlcnZpY2VQcm94eS5tb2JpbGVHZXRTbWFydHBhcmtCYXNpY0FsbChhY3Rpb24uYXBwTW9kdWxlLCBWRVJTSU9OX1YxKTtcbiAgICByZXR1cm4gc21hcnRwYXJrcyQucGlwZShzd2l0Y2hNYXAoc21hcnRwYXJrQmFzaWMgPT4ge1xuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICBzbWFydFBhcmtXcmFwcGVyOiBzbWFydHBhcmtCYXNpYy5kYXRhLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0U21hcnRwYXJrQmFzaWNBbGxBY3Rpb24oc21hcnRwYXJrQmFzaWMpKTtcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKENsZWFyU21hcnRwYXJrc0Jhc2ljQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uQ2xlYXJTbWFydHBhcmtzQmFzaWNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBfOiBDbGVhclNtYXJ0cGFya3NCYXNpY0FjdGlvbikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHNtYXJ0UGFya1dyYXBwZXI6IG51bGwsXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRTbWFydHBhcmtzVGFibGVBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkU21hcnRwYXJrc1RhYmxlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgeyBmaWx0ZXIgfTogTG9hZFNtYXJ0cGFya3NUYWJsZUFjdGlvbikge1xuICAgIGNvbnN0IHNtYXJ0cGFya3MkID0gdGhpcy5iYWNrb2ZmaWNlQ2xvdWRTZXJ2aWNlUHJveHkuZ2V0QmFja29mZmljZVNtYXJ0cGFya3MoZmlsdGVyKTtcbiAgICByZXR1cm4gc21hcnRwYXJrcyQucGlwZSh0YXAoc21hcnRwYXJrcyA9PiB7XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIGxhdGVzdFNtYXJ0cGFya3M6IHNtYXJ0cGFya3MuZGF0YS5lbnRpdGllcyxcbiAgICAgICAgY291bnRTbWFydFBhcmtzOiBzbWFydHBhcmtzLmRhdGEuY291bnRlcixcbiAgICAgICAgY291bnRQYXJraW5nTG90czogc21hcnRwYXJrcy5kYXRhLnN1YkNvdW50ZXJcbiAgICAgIH0pO1xuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZEJhY2tvZmZpY2VTbWFydHBhcmtzVGFibGVBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkQmFja29mZmljZVNtYXJ0cGFya3NUYWJsZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIHsgZmlsdGVyIH06IExvYWRCYWNrb2ZmaWNlU21hcnRwYXJrc1RhYmxlQWN0aW9uKSB7XG4gICAgY29uc3Qgc21hcnRwYXJrcyQgPSB0aGlzLmJhY2tvZmZpY2VDbG91ZFNlcnZpY2VQcm94eS5nZXRCYWNrb2ZmaWNlU21hcnRwYXJrcyhmaWx0ZXIpO1xuICAgIHJldHVybiBzbWFydHBhcmtzJC5waXBlKHRhcChzbWFydHBhcmtzID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgbGF0ZXN0U21hcnRwYXJrczogc21hcnRwYXJrcy5kYXRhLmVudGl0aWVzLFxuICAgICAgICBjb3VudFNtYXJ0UGFya3M6IHNtYXJ0cGFya3MuZGF0YS5jb3VudGVyLFxuICAgICAgICBjb3VudFBhcmtpbmdMb3RzOiBzbWFydHBhcmtzLmRhdGEuc3ViQ291bnRlclxuICAgICAgfSk7XG4gICAgfSkpO1xuICB9XG5cblxuICBAQWN0aW9uKFNldFNtYXJ0UGFya1RhYmxlQWN0aW9uKVxuICBvblNldFNtYXJ0UGFya1RhYmxlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgeyBzbWFydHBhcmtzIH06IFNldFNtYXJ0UGFya1RhYmxlQWN0aW9uKSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgc21hcnRwYXJrc1xuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihTZXRTbWFydFBhcmtBY3Rpb24pXG4gIG9uU2V0U21hcnRQYXJrc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIHsgc21hcnRwYXJrcywgcmVsb2FkIH06IFNldFNtYXJ0UGFya0FjdGlvbikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHNtYXJ0cGFya3M6IHNtYXJ0cGFya3MgfHwgW10sXG4gICAgICBjb3VudFNtYXJ0UGFya3M6IHNtYXJ0cGFya3M/Lmxlbmd0aCB8fCAwLFxuICAgICAgY291bnRQYXJraW5nTG90czogdGhpcy5jb3VudFNtYXJ0cGFya0ZhY2lsaXRpZXMoc21hcnRwYXJrcylcbiAgICB9KTtcblxuICAgIGlmIChjdHguZ2V0U3RhdGUoKS5zZWxlY3RlZFNtYXJ0UGFya0lkKSB7XG4gICAgICBjdHguZGlzcGF0Y2gobmV3IFNlbGVjdFNtYXJ0UGFya0FjdGlvbihjdHguZ2V0U3RhdGUoKS5zZWxlY3RlZFNtYXJ0UGFya0lkLCByZWxvYWQpKTtcbiAgICB9XG4gIH1cblxuICBAQWN0aW9uKFNlbGVjdFNtYXJ0UGFya0FjdGlvbilcbiAgb25TZWxlY3RTbWFydFBhcmtBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IFNlbGVjdFNtYXJ0UGFya0FjdGlvbikge1xuICAgIGxldCBzZWxlY3RlZFNtYXJ0UGFyaztcbiAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmNsZWFyTWVzc2FnZWJhcigpO1xuICAgIGlmIChjdHguZ2V0U3RhdGUoKS5zbWFydHBhcmtzKSB7XG4gICAgICBzZWxlY3RlZFNtYXJ0UGFyayA9IGN0eC5nZXRTdGF0ZSgpLnNtYXJ0cGFya3MuZmluZCgoc21hcnRwYXJrKSA9PiAoc21hcnRwYXJrIGFzIFNtYXJ0cGFya0R0bykuaWQgPT09IGFjdGlvbi5zbWFydFBhcmtJZCk7XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7IHNlbGVjdGVkU21hcnRQYXJrSWQ6IGFjdGlvbi5zbWFydFBhcmtJZCwgc2VsZWN0ZWRTbWFydFBhcmsgfSk7XG4gICAgICBpZiAoYWN0aW9uLnJlbG9hZCkge1xuICAgICAgICBjdHguZGlzcGF0Y2gobmV3IExvYWRQYXJrc0FjdGlvbigpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAQWN0aW9uKExvYWRQYXJrc0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWRQYXJrc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7IHNlbGVjdGVkUGFya0RldGFpbHM6IG51bGwsIHNlbGVjdGVkUGFya0lkOiBudWxsIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuZmFjaWxpdHlJZGVudGl0eVNlcnZpY2VQcm94eS5mYWNpbGl0eUFsbChBcHBNb2R1bGUuTWFuYWdlbWVudCkucGlwZSh0YXAoc21hcnRwYXJrTWFwID0+IHtcbiAgICAgIGNvbnN0IHsgZ3VpZCwgdHlwZSB9ID0gY3R4LmdldFN0YXRlKCkuc2VsZWN0ZWRTbWFydFBhcms7XG4gICAgICBpZiAoc21hcnRwYXJrTWFwKSB7XG4gICAgICAgIGxldCBzZWxlY3RlZFBhcmtJZDogbnVtYmVyO1xuICAgICAgICBjb25zdCBwYXJrcyA9IHNtYXJ0cGFya01hcC5kYXRhLnNtYXJ0UGFya3NbZ3VpZF0uZmFjaWxpdGllcztcbiAgICAgICAgaWYgKHR5cGUgPT09IFNtYXJ0UGFya1R5cGUuU3VwZXJQYXJrKSB7XG4gICAgICAgICAgY29uc3QgbXVsdGlQYXJrID0gcGFya3MuZmluZChwYXJrID0+IHBhcmsuaXNNdWx0aVBhcmspO1xuICAgICAgICAgIHNlbGVjdGVkUGFya0lkID0gbXVsdGlQYXJrID8gbXVsdGlQYXJrLmlkIDogbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgICBwYXJrczogcGFya3MgfHwgW10sXG4gICAgICAgICAgc2VsZWN0ZWRQYXJrSWQ6IHNlbGVjdGVkUGFya0lkID8/IChwYXJrcz8ubGVuZ3RoICYmIHBhcmtzWzBdLmlkIHx8IG51bGwpLFxuICAgICAgICAgIHNtYXJ0cGFya0d1aWQ6IGd1aWQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChwYXJrcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgY3R4LmRpc3BhdGNoKExvYWRQYXJrRGV2aWNlc0FjdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRQYXJrRGV2aWNlc0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWRQYXJrRGV2aWNlcyhjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4pIHtcbiAgICBjb25zdCBwYXJrRGV0YWlsID0gY3R4LmdldFN0YXRlKCkucGFya3MuZmluZCgocGFyaykgPT4gcGFyay5pZCA9PT0gY3R4LmdldFN0YXRlKCkuc2VsZWN0ZWRQYXJrSWQpO1xuICAgIGNvbnN0IGd1aWQgPSBjdHguZ2V0U3RhdGUoKS5zbWFydHBhcmtHdWlkO1xuXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5mYWNpbGl0eVJwY1NlcnZpY2VQcm94eS5nZXRGYWNpbGl0eShndWlkLCBwYXJrRGV0YWlsLmlkKSxcbiAgICAgIHRoaXMucmV2ZW51ZVNlcnZpY2UuZ2V0UmV2ZW51ZShwYXJrRGV0YWlsLmlkLCBndWlkKS5waXBlKGZpbHRlcihyZXZlbnVlID0+ICEhcmV2ZW51ZSkpLFxuICAgICAgdGhpcy5kZXZpY2VScGNTZXJ2aWNlUHJveHkuZ2V0U21hcnRwYXJrc0RldmljZXMoZ3VpZCwgcGFya0RldGFpbC5pZCwgbnVsbCwgbnVsbCwgbnVsbCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpLFxuICAgIF0pLnBpcGUodGFwKChbZmFjaWxpdHksIHJldmVudWVzLCBkZXZpY2VzXSkgPT4ge1xuICAgICAgY29uc3QgcmV2ZW51ZSA9IHBhcmtEZXRhaWwuaXNNdWx0aVBhcmsgPT0gMSA/IHRoaXMucmV2ZW51ZVNlcnZpY2UuY2FsY3VsYXRlUmV2ZW51ZUZvck11bHRpUGFyayhyZXZlbnVlcykgOiByZXZlbnVlc1twYXJrRGV0YWlsLmlkXTtcbiAgICAgIGRldmljZXM/LmRhdGEuZm9yRWFjaChkZXZpY2UgPT4gZGV2aWNlLmRldmljZVN0YXR1cyA9IGRldmljZS5kZXZpY2VTdGF0dXMgPz8gZ2V0RGVmYXVsdERldmljZVN0YXR1cyhkZXZpY2UpKTtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgc2VsZWN0ZWRQYXJrRGV0YWlsczoge1xuICAgICAgICAgIGZhY2lsaXR5OiBmYWNpbGl0eS5kYXRhLFxuICAgICAgICAgIGRldmljZXM6IGRldmljZXMuZGF0YSxcbiAgICAgICAgICByZXZlbnVlXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pKTtcbiAgfVxuXG5cbiAgQEFjdGlvbihTZWxlY3RQYXJrQWN0aW9uKVxuICBvblNlbGVjdFBhcmtBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IFNlbGVjdFBhcmtBY3Rpb24pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7IHNlbGVjdGVkUGFya0lkOiBhY3Rpb24ucGFya0lkIH0pO1xuICAgIGN0eC5kaXNwYXRjaChMb2FkUGFya0RldmljZXNBY3Rpb24pO1xuICB9XG5cbiAgQEFjdGlvbihDbGVhclNlbGVjdGVkUGFya0FjdGlvbilcbiAgb25DbGVhclNlbGVjdGVkUGFya0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBzZWxlY3RlZFBhcmtEZXRhaWxzOiBudWxsLFxuICAgICAgc2VsZWN0ZWRQYXJrSWQ6IG51bGwsXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKENsZWFyU2VsZWN0ZWRTbWFydHBhcmtBY3Rpb24pXG4gIG9uQ2xlYXJTZWxlY3RlZHNtYXJ0cGFya0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBzZWxlY3RlZFNtYXJ0UGFya0lkOiBudWxsLFxuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihTbWFydFBhcmtEZXZpY2VTdGF0dXNDaGFuZ2VkQWN0aW9uKVxuICBvblNtYXJ0UGFya0RldmljZVN0YXR1c0NoYW5nZWRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IFNtYXJ0UGFya0RldmljZVN0YXR1c0NoYW5nZWRBY3Rpb24pIHtcbiAgICBjb25zdCBzZWxlY3RlZFBhcmtEZXRhaWxzID0gY3R4LmdldFN0YXRlKCkuc2VsZWN0ZWRQYXJrRGV0YWlscztcbiAgICBpZiAoc2VsZWN0ZWRQYXJrRGV0YWlscykge1xuICAgICAgY29uc3QgaW5kZXggPSBzZWxlY3RlZFBhcmtEZXRhaWxzPy5kZXZpY2VzPy5maW5kSW5kZXgoZGV2aWNlID0+IGRldmljZS5pZCA9PT0gYWN0aW9uLmRldmljZVN0YXR1cy5kZXZpY2VJRCk7XG4gICAgICBjb25zdCBjb21tdW5pY2F0aW9uUGVyY2VudGFnZSA9IHNlbGVjdGVkUGFya0RldGFpbHMuZGV2aWNlc1tpbmRleF0uZGV2aWNlU3RhdHVzLmNvbW11bmljYXRpb25QZXJjZW50YWdlO1xuICAgICAgY29uc3QgbmV3Q29tbVBlcmNlbnRhZ2UgPSBhY3Rpb24uZGV2aWNlU3RhdHVzLmNvbW11bmljYXRpb25QZXJjZW50YWdlO1xuICAgICAgaWYgKGluZGV4ID49IDAgJiYgY29tbXVuaWNhdGlvblBlcmNlbnRhZ2UgIT09IG5ld0NvbW1QZXJjZW50YWdlKSB7XG4gICAgICAgIHNlbGVjdGVkUGFya0RldGFpbHMuZGV2aWNlc1tpbmRleF0uZGV2aWNlU3RhdHVzLmNvbW11bmljYXRpb25QZXJjZW50YWdlID0gbmV3Q29tbVBlcmNlbnRhZ2U7XG4gICAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgICBzZWxlY3RlZFBhcmtEZXRhaWxzOiBjbG9uZURlZXAoc2VsZWN0ZWRQYXJrRGV0YWlscyksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBBY3Rpb24oRGlzY29ubmVjdFNtYXJ0UGFya0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkRpc2Nvbm5lY3RTbWFydHBhcmtBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCB7IHNtYXJ0UGFya0d1aWQsIHNtYXJ0UGFya0lkLCBwYXNzd29yZCB9OiBEaXNjb25uZWN0U21hcnRQYXJrQWN0aW9uKSB7XG4gICAgY29uc3Qgc21hcnRwYXJrJCA9IHRoaXMuc21hcnRwYXJrQ2xvdWRTZXJ2aWNlUHJveHkuZGlzY29ubmVjdChwYXNzd29yZCwgc21hcnRQYXJrSWQsIFNtYXJ0UGFya1N0YXR1cy5Ob25hY3RpdmUpO1xuICAgIHJldHVybiBzbWFydHBhcmskLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6ICh2KSA9PiB7XG4gICAgICAgIGNvbnN0IHNtYXJ0cGFya3MgPSAoY3R4LmdldFN0YXRlKCkuc21hcnRwYXJrcyB8fCBbXSkuZmlsdGVyKHNwID0+IHNwLmd1aWQgIT09IHNtYXJ0UGFya0d1aWQpO1xuICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgc2VsZWN0ZWRTbWFydFBhcms6IG51bGwsXG4gICAgICAgICAgc2VsZWN0ZWRQYXJrSWQ6IG51bGwsXG4gICAgICAgICAgc21hcnRwYXJrcyxcbiAgICAgICAgICBjb3VudFNtYXJ0UGFya3M6IHNtYXJ0cGFya3M/Lmxlbmd0aCB8fCAwLFxuICAgICAgICAgIGNvdW50UGFya2luZ0xvdHM6IHRoaXMuY291bnRTbWFydHBhcmtGYWNpbGl0aWVzKHNtYXJ0cGFya3MpXG4gICAgICAgIH0pO1xuICAgICAgICBjdHguZGlzcGF0Y2gobmV3IENsZWFyU2VsZWN0ZWRGYWNpbGl0eUFjdGlvbigpKTtcbiAgICAgICAgY3R4LmRpc3BhdGNoKG5ldyBOYXZpZ2F0ZSh0aGlzLnJvdXRlU2VydmljZS5nZXROYXZpZ2F0aW9uUm91dGUoWydtYW5hZ2VtZW50JywgJ3NtYXJ0cGFya3MnXSkpKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihwYXJzZUFwaUVycm9yTWVzc2FnZShlKSwgeyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLlN0YXRpYywgaWQ6ICdtb2RhbCcgfSk7XG4gICAgICB9LFxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oU2V0U21hcnRQYXJrVmVyc2lvbnNBY3Rpb24pXG4gIG9uU2V0U21hcnRQYXJrVmVyc2lvbnNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IFNldFNtYXJ0UGFya1ZlcnNpb25zQWN0aW9uKSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgdmVyc2lvbnM6IGFjdGlvbi52ZXJzaW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZFNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbilcbiAgb25Mb2FkU3BBbmRTcGFya1ZlcnNpb25zQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPikge1xuICAgIGlmIChjdHguZ2V0U3RhdGUoKS5TcEFuZFNwYXJrVmVyc2lvbnMgPT0gbnVsbCkge1xuICAgICAgY29uc3QgdmVyc2lvbnMkID0gdGhpcy5zbWFydHBhcmtDbG91ZFNlcnZpY2VQcm94eS5nZXRTcEFuZFNwYXJrVmVyc2lvbnMoKTtcbiAgICAgIHJldHVybiB2ZXJzaW9ucyQucGlwZSh0YXAodmVyc2lvbnMgPT4ge1xuICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7IFNwQW5kU3BhcmtWZXJzaW9uczogdmVyc2lvbnMuZGF0YSB9KTtcbiAgICAgIH0pKTtcbiAgICB9XG4gIH1cblxuICBAQWN0aW9uKExvYWRCYWNrb2ZmaWNlU3BBbmRTcGFya1ZlcnNpb25zQWN0aW9uKVxuICBvbkxvYWRCYWNrb2ZmaWNlU3BBbmRTcGFya1ZlcnNpb25zQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPikge1xuICAgIGlmIChjdHguZ2V0U3RhdGUoKS5TcEFuZFNwYXJrVmVyc2lvbnMgPT0gbnVsbCkge1xuICAgICAgY29uc3QgdmVyc2lvbnMkID0gdGhpcy5iYWNrb2ZmaWNlQ2xvdWRTZXJ2aWNlUHJveHkuZ2V0QmFja29mZmljZVNwQW5kU3BhcmtWZXJzaW9ucygpO1xuICAgICAgcmV0dXJuIHZlcnNpb25zJC5waXBlKHRhcCh2ZXJzaW9ucyA9PiB7XG4gICAgICAgIGN0eC5wYXRjaFN0YXRlKHsgU3BBbmRTcGFya1ZlcnNpb25zOiB2ZXJzaW9ucy5kYXRhIH0pO1xuICAgICAgfSkpO1xuICAgIH1cbiAgfVxuXG4gIEBBY3Rpb24oQ2xlYXJTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24pXG4gIG9uQ2xlYXJTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+KSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgU3BBbmRTcGFya1ZlcnNpb25zOiBudWxsXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRWYXJzQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZFZhcnNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IExvYWRWYXJzQWN0aW9uKSB7XG4gICAgY29uc3QgdmFycyQgPSB0aGlzLnNtYXJ0cGFya0Nsb3VkU2VydmljZVByb3h5LmdldFZhcnMoYWN0aW9uLnNlYXJjaFBhcmFtc0R0by5tYXhSZXN1bHRzLCBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvLnNlYXJjaFRlcm0sXG4gICAgICBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvLm9yZGVyQnkuY29sdW1uLCBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvLm9yZGVyQnkub3JkZXJEaXJlY3Rpb24pO1xuICAgIHJldHVybiB2YXJzJC5waXBlKHRhcCh2YXJzID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgdmFyczogdmFycy5kYXRhXG4gICAgICB9KTtcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRCYWNrb2ZmaWNlVmFyc0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWRCYWNrb2ZmaWNlVmFyc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZEJhY2tvZmZpY2VWYXJzQWN0aW9uKSB7XG4gICAgY29uc3QgdmFycyQgPSB0aGlzLmJhY2tvZmZpY2VDbG91ZFNlcnZpY2VQcm94eS5nZXRCYWNrb2ZmaWNlVmFycyhhY3Rpb24uc2VhcmNoUGFyYW1zRHRvLm1heFJlc3VsdHMsIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8uc2VhcmNoVGVybSxcbiAgICAgIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8ub3JkZXJCeS5jb2x1bW4sIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8ub3JkZXJCeS5vcmRlckRpcmVjdGlvbik7XG4gICAgcmV0dXJuIHZhcnMkLnBpcGUodGFwKHZhcnMgPT4ge1xuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICB2YXJzOiB2YXJzLmRhdGFcbiAgICAgIH0pO1xuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oU3luY1VzZXJzQW5kUm9sZXNCeVNtYXJ0cGFya0lkQWN0aW9uKVxuICBvblN5bmNVc2Vyc0FuZFJvbGVzQnlTbWFydHBhcmtJZEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIGFjdGlvbjogU3luY1VzZXJzQW5kUm9sZXNCeVNtYXJ0cGFya0lkQWN0aW9uKTogT2JzZXJ2YWJsZTxPYmplY3RIdHRwUmVzcG9uc2VEYXRhPiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja29mZmljZUNsb3VkU2VydmljZVByb3h5LnN5bmNVc2Vyc0J5U21hcnRwYXJrSWQoYWN0aW9uLnNtYXJ0cGFyay50ZW5hbnRJRCwgYWN0aW9uLnNtYXJ0cGFyay5pZCkucGlwZSh0YXAoe1xuICAgICAgbmV4dDogXyA9PiB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLnN1Y2Nlc3MoTG9jYWxpemF0aW9uLnN1Y2Nlc3NmdWxfc3luY191c2Vyc19hbmRfcm9sZXNfZm9yX3NtYXJ0cGFyaywgeyBtZXNzYWdlUGFyYW1zOiB7IHNtYXJ0cGFya05hbWU6IGFjdGlvbi5zbWFydHBhcmsubmFtZSB9IH0pLFxuICAgICAgZXJyb3I6IGUgPT4gdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihwYXJzZUFwaUVycm9yTWVzc2FnZShlKSwgeyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLkZsb2F0IH0pLFxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oRXhwb3J0U21hcnRwYXJrQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uRXhwb3J0U21hcnRwYXJrc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIGFjdGlvbjogRXhwb3J0U21hcnRwYXJrQWN0aW9uKSB7XG4gICAgY29uc3Qgc21hcnRwYXJrcyQgPSB0aGlzLmJhY2tvZmZpY2VDbG91ZFNlcnZpY2VQcm94eS5nZXRCYWNrb2ZmaWNlU21hcnRwYXJrcyhhY3Rpb24uc21hcnRwYXJrRmlsdGVyKTtcbiAgICByZXR1cm4gc21hcnRwYXJrcyQucGlwZSh0YXAoe1xuICAgICAgbmV4dDogc21hcnRwYXJrcyA9PiB7XG4gICAgICAgIGNvbnN0IHRhYmxlUm93czogYW55W11bXSA9IFtdO1xuICAgICAgICBjb25zdCBzbWFydHBhcmtzTGlzdDogU21hcnRwYXJrRHRvW10gPSBzbWFydHBhcmtzLmRhdGEuZW50aXRpZXM7XG4gICAgICAgIHNtYXJ0cGFya3NMaXN0LmZvckVhY2goKHNtYXJ0cGFyaykgPT4ge1xuICAgICAgICAgIHRhYmxlUm93cy5wdXNoKFtcbiAgICAgICAgICAgIHNtYXJ0cGFyay5uYW1lLFxuICAgICAgICAgICAgU21hcnRQYXJrVHlwZVtzbWFydHBhcmsudHlwZV0ucmVwbGFjZSgvKFtBLVpdKS9nLCAnICQxJykudHJpbSgpLFxuICAgICAgICAgICAgc21hcnRwYXJrLnRlbmFudE5hbWUsXG4gICAgICAgICAgICBzbWFydHBhcmsudmVyc2lvbixcbiAgICAgICAgICAgIHNtYXJ0cGFyay5zcGFya1ZlcnNpb24sXG4gICAgICAgICAgICBzbWFydHBhcmsuY3JlYXRlZEF0LFxuICAgICAgICAgICAgc21hcnRwYXJrLmd1aWQsXG4gICAgICAgICAgICBzbWFydHBhcmsudmFyTmFtZSB8fCAnLScsXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChTbWFydFBhcmtTdGF0dXNUZXh0W1NtYXJ0UGFya1N0YXR1c1tzbWFydHBhcmsuc3RhdHVzXV0pXG4gICAgICAgICAgXSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmV4cG9ydEZpbGVTZXJ2aWNlLmV4cG9ydChhY3Rpb24uZmlsZVR5cGUsIHRhYmxlUm93cywgYWN0aW9uLmNvbHVtbnNIZWFkZXIsIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5zbWFydHBhcmspKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5mYWlsZWRfZXhwb3J0X2ZpbGUpKTtcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKEV4cG9ydFBkZlNtYXJ0cGFya3NUYWJsZUFjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkV4cG9ydFBkZlNtYXJ0cGFya3NUYWJsZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIHsgZmlsdGVyIH06IEV4cG9ydFBkZlNtYXJ0cGFya3NUYWJsZUFjdGlvbikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIGV4cG9ydFBkZlNtYXJ0cGFya3M6IG51bGwsXG4gICAgfSk7XG4gICAgY29uc3Qgc21hcnRwYXJrcyQgPSB0aGlzLmJhY2tvZmZpY2VDbG91ZFNlcnZpY2VQcm94eS5nZXRCYWNrb2ZmaWNlU21hcnRwYXJrcyhmaWx0ZXIpO1xuICAgIHJldHVybiBzbWFydHBhcmtzJC5waXBlKHRhcChzbWFydHBhcmtzID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgZXhwb3J0UGRmU21hcnRwYXJrczogc21hcnRwYXJrcy5kYXRhLmVudGl0aWVzLFxuICAgICAgfSk7XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkU21hcnRwYXJrc0Ryb3Bkb3duQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZEFsbFNtYXJ0cGFya3NBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IExvYWRTbWFydHBhcmtzRHJvcGRvd25BY3Rpb24pOiBPYnNlcnZhYmxlPFNtYXJ0cGFya0ZpbHRlck9wdGlvbkR0b0lFbnVtZXJhYmxlSHR0cFJlc3BvbnNlRGF0YT4ge1xuICAgIGNvbnN0IHNtYXJ0cGFya3MkID0gdGhpcy5saWNlbnNlQ2xvdWRTZXJ2aWNlUHJveHkuYmFzZVNtYXJ0cGFya3MoYWN0aW9uLnNlYXJjaFBhcmFtc0R0by5tYXhSZXN1bHRzLFxuICAgICAgYWN0aW9uLnNlYXJjaFBhcmFtc0R0by5zZWFyY2hUZXJtLCBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvLm9yZGVyQnkuY29sdW1uLCBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvLm9yZGVyQnkub3JkZXJEaXJlY3Rpb24pO1xuXG4gICAgcmV0dXJuIHNtYXJ0cGFya3MkLnBpcGUodGFwKGZhY2lsaXR5VHJlZUR0byA9PiB7XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIGZhY2lsaXR5VHJlZTogZmFjaWxpdHlUcmVlRHRvLmRhdGEsXG4gICAgICB9KTtcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGNvdW50U21hcnRwYXJrRmFjaWxpdGllcyhzbWFydHBhcmtzOiAoU21hcnRwYXJrRHRvIHwgU21hcnRwYXJrQmFzaWNEdG8pW10pOiBudW1iZXIge1xuICAgIGxldCBjb3VudFBhcmtpbmdMb3RzID0gMDtcbiAgICBzbWFydHBhcmtzLmZvckVhY2goc21hcnRQYXJrID0+IHtcbiAgICAgIGlmIChzbWFydFBhcmsuZmFjaWxpdGllcykge1xuICAgICAgICBjb3VudFBhcmtpbmdMb3RzICs9IHNtYXJ0UGFyay5mYWNpbGl0aWVzLmZpbHRlcihmID0+ICFmLmlzTXVsdGlQYXJrKS5sZW5ndGg7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGNvdW50UGFya2luZ0xvdHM7XG4gIH1cbn1cbiJdfQ==
529
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRwYXJrLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9tb2R1bGVzL3NtYXJ0cGFya3Mvc21hcnRwYXJrLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQXVCLE1BQU0sYUFBYSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUc3RCxPQUFPLEVBQ0wsU0FBUyxFQUVULGVBQWUsRUFBRSxhQUFhLEVBQy9CLE1BQU0sMkNBQTJDLENBQUM7QUFNbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFakUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0s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VCxzQkFBc0IsTUFjdEIsMkJBQTJCLE1BWTNCLGlDQUFpQyxNQVlqQyw0QkFBNEIsTUFPNUIsMkJBQTJCLE1BWTNCLHFDQUFxQyxNQWFyQyx5QkFBeUIsTUFPekIscUJBQXFCLE1BYXJCLHVCQUF1QixNQWF2QixpQkFBaUIsTUEyQmpCLGlCQUFpQixNQXVCakIsa0JBQWtCLE1BTWxCLHlCQUF5QixNQVF6Qiw4QkFBOEIsTUFPOUIsb0NBQW9DLE1BZ0JwQywyQkFBMkIsTUFzQjNCLDRCQUE0QixNQU81Qiw4QkFBOEIsTUFVOUIsd0NBQXdDLE1BVXhDLCtCQUErQixNQU8vQixnQkFBZ0IsTUFXaEIsMEJBQTBCLE1BVzFCLHNDQUFzQyxNQVF0Qyx3QkFBd0IsTUE0QnhCLGdDQUFnQyxNQWFoQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0ZSB9IGZyb20gJ0BuZ3hzL3JvdXRlci1wbHVnaW4nO1xuaW1wb3J0IHsgQWN0aW9uLCBTZWxlY3RvciwgU3RhdGUsIFN0YXRlQ29udGV4dCwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1lc3NhZ2VCYXJQb3NpdGlvbiB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbWVzc2FnZS1iYXIvbWVzc2FnZS1iYXItcG9zaXRpb24uZW51bSc7XG5pbXBvcnQgeyBNZXNzYWdlQmFyU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbWVzc2FnZS1iYXIvbWVzc2FnZS1iYXIuc2VydmljZSc7XG5pbXBvcnQgeyBWRVJTSU9OX1YxIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3ZlcnNpb24tY29uc3RhbnRzJztcbmltcG9ydCB7IFNtYXJ0UGFya1N0YXR1c1RleHQgfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb24gfSBmcm9tICcuLi8uLi9lbnVtcy9sb2NhbGl6YXRpb24uZW51bSc7XG5pbXBvcnQgeyBJUGFya0RldGFpbHMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3BhcmstZGV0YWlscy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUnBjIH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eSc7XG5pbXBvcnQge1xuICBBcHBNb2R1bGUsIEJhY2tvZmZpY2VDbG91ZFNlcnZpY2VQcm94eSwgRmFjaWxpdHlCYXNpY0R0bywgTGljZW5zZUNsb3VkU2VydmljZVByb3h5LCBPYmplY3RIdHRwUmVzcG9uc2VEYXRhLFxuICBTbWFydHBhcmtDbG91ZFNlcnZpY2VQcm94eSwgU21hcnRwYXJrRHRvLCBTbWFydHBhcmtGaWx0ZXJPcHRpb25EdG8sIFNtYXJ0cGFya0ZpbHRlck9wdGlvbkR0b0lFbnVtZXJhYmxlSHR0cFJlc3BvbnNlRGF0YSxcbiAgU21hcnRQYXJrU3RhdHVzLCBTbWFydFBhcmtUeXBlLCBTcEFuZFNwYXJrVmVyc2lvbnNEdG8sIFZhckR0b1xufSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L2Nsb3VkLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBGYWNpbGl0eUlkZW50aXR5U2VydmljZVByb3h5LCBNb2JpbGVJZGVudGl0eVNlcnZpY2VQcm94eSwgU21hcnRwYXJrQmFzaWNEdG8sIFNtYXJ0UGFya1dyYXBwZXJEdG8gfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L2lkZW50aXR5LXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBGYWNpbGl0eVJwY1NlcnZpY2VQcm94eSwgSURldmljZUR0byB9IGZyb20gJy4uLy4uL3NlcnZpY2UtcHJveHkvcnBjLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBFeHBvcnRGaWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V4cG9ydC1maWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmV2ZW51ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXZlbnVlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUm91dGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcm91dGUuc2VydmljZSc7XG5pbXBvcnQgeyBwYXJzZUFwaUVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWxzL2FwaS1oZWxwZXIudXRpbCc7XG5pbXBvcnQgeyBnZXREZWZhdWx0RGV2aWNlU3RhdHVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvZGV2aWNlLnV0aWwnO1xuaW1wb3J0IHsgU3RyaW5nTWFwIH0gZnJvbSAnLi4vLi4vdXRpbHMvbGFuZy51dGlsJztcbmltcG9ydCB7IENsZWFyU2VsZWN0ZWRGYWNpbGl0eUFjdGlvbiwgU2V0U21hcnRwYXJrQmFzaWNBbGxBY3Rpb24gfSBmcm9tICcuLi9mYWNpbGl0eS9mYWNpbGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IE1lbnVTdWJNb2R1bGVMb2FkQWN0aW9uIH0gZnJvbSAnLi4vc2lkZW5hdi9zaWRlbmF2LmFjdGlvbnMnO1xuaW1wb3J0IHtcbiAgQ2xlYXJTZWxlY3RlZFBhcmtBY3Rpb24sIENsZWFyU2VsZWN0ZWRTbWFydHBhcmtBY3Rpb24sIENsZWFyU21hcnRwYXJrc0Jhc2ljQWN0aW9uLCBDbGVhclNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbixcbiAgRGlzY29ubmVjdFNtYXJ0UGFya0FjdGlvbiwgRXhwb3J0UGRmU21hcnRwYXJrc1RhYmxlQWN0aW9uLCBFeHBvcnRTbWFydHBhcmtBY3Rpb24sIExvYWRCYWNrb2ZmaWNlU21hcnRwYXJrc1RhYmxlQWN0aW9uLFxuICBMb2FkQmFja29mZmljZVNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbiwgTG9hZEJhY2tvZmZpY2VWYXJzQWN0aW9uLCBMb2FkTW9iaWxlU21hcnRwYXJrc0Jhc2ljQWN0aW9uLFxuICBMb2FkUGFya0RldmljZXNBY3Rpb24sIExvYWRQYXJrc0FjdGlvbiwgTG9hZFNtYXJ0cGFya3NBY3Rpb24sIExvYWRTbWFydHBhcmtzQmFzaWNBY3Rpb24sIExvYWRTbWFydHBhcmtzRHJvcGRvd25BY3Rpb24sIExvYWRTbWFydHBhcmtzVGFibGVBY3Rpb24sXG4gIExvYWRTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24sIExvYWRWYXJzQWN0aW9uLCBTZWxlY3RQYXJrQWN0aW9uLCBTZWxlY3RTbWFydFBhcmtBY3Rpb24sIFNldFNtYXJ0UGFya0FjdGlvbixcbiAgU2V0U21hcnRQYXJrVGFibGVBY3Rpb24sIFNldFNtYXJ0UGFya1ZlcnNpb25zQWN0aW9uLCBTbWFydFBhcmtEZXZpY2VTdGF0dXNDaGFuZ2VkQWN0aW9uLCBTeW5jVXNlcnNBbmRSb2xlc0J5U21hcnRwYXJrSWRBY3Rpb25cbn0gZnJvbSAnLi9zbWFydHBhcmsuYWN0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRwYXJrc1N0YXRlTW9kZWwge1xuICBzbWFydHBhcmtzOiAoU21hcnRwYXJrRHRvIHwgU21hcnRwYXJrQmFzaWNEdG8pW107XG4gIGxhdGVzdFNtYXJ0cGFya3M6IChTbWFydHBhcmtEdG8gfCBTbWFydHBhcmtCYXNpY0R0bylbXTtcbiAgU3BBbmRTcGFya1ZlcnNpb25zOiBTcEFuZFNwYXJrVmVyc2lvbnNEdG87XG4gIGNvdW50U21hcnRQYXJrczogbnVtYmVyO1xuICBjb3VudFBhcmtpbmdMb3RzOiBudW1iZXI7XG4gIHNlbGVjdGVkU21hcnRQYXJrSWQ6IG51bWJlcjtcbiAgc2VsZWN0ZWRTbWFydFBhcms6IFNtYXJ0cGFya0R0bztcbiAgcGFya3M6IEZhY2lsaXR5QmFzaWNEdG9bXTtcbiAgc2VsZWN0ZWRQYXJrSWQ6IG51bWJlcjtcbiAgc2VsZWN0ZWRQYXJrRGV0YWlsczogSVBhcmtEZXRhaWxzO1xuICBzbWFydHBhcmtHdWlkOiBzdHJpbmc7XG4gIHZlcnNpb25zOiBTdHJpbmdNYXA8c3RyaW5nPjtcbiAgc21hcnRQYXJrV3JhcHBlcjogU21hcnRQYXJrV3JhcHBlckR0bztcbiAgdmFyczogVmFyRHRvW107XG4gIGV4cG9ydFBkZlNtYXJ0cGFya3M6IChTbWFydHBhcmtEdG8gfCBTbWFydHBhcmtCYXNpY0R0bylbXTtcbiAgZmFjaWxpdHlUcmVlOiBTbWFydHBhcmtGaWx0ZXJPcHRpb25EdG9bXTtcbn1cblxuQEluamVjdGFibGUoKVxuQFN0YXRlPFNtYXJ0cGFya3NTdGF0ZU1vZGVsPih7XG4gIG5hbWU6ICdzbWFydHBhcmsnLFxuICBkZWZhdWx0czoge1xuICAgIHNtYXJ0cGFya3M6IG51bGwsXG4gICAgbGF0ZXN0U21hcnRwYXJrczogbnVsbCxcbiAgICBjb3VudFNtYXJ0UGFya3M6IDAsXG4gICAgY291bnRQYXJraW5nTG90czogMCxcbiAgICBzZWxlY3RlZFNtYXJ0UGFya0lkOiBudWxsLFxuICAgIHNlbGVjdGVkU21hcnRQYXJrOiBudWxsLFxuICAgIHBhcmtzOiBudWxsLFxuICAgIHNlbGVjdGVkUGFya0lkOiBudWxsLFxuICAgIHNlbGVjdGVkUGFya0RldGFpbHM6IG51bGwsXG4gICAgc21hcnRwYXJrR3VpZDogbnVsbCxcbiAgICB2ZXJzaW9uczoge30sXG4gICAgU3BBbmRTcGFya1ZlcnNpb25zOiBudWxsLFxuICAgIHNtYXJ0UGFya1dyYXBwZXI6IG51bGwsXG4gICAgdmFyczogW10sXG4gICAgZXhwb3J0UGRmU21hcnRwYXJrczogbnVsbCxcbiAgICBmYWNpbGl0eVRyZWU6IFtdLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBTbWFydHBhcmtTdGF0ZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSByZXZlbnVlU2VydmljZTogUmV2ZW51ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzbWFydHBhcmtDbG91ZFNlcnZpY2VQcm94eTogU21hcnRwYXJrQ2xvdWRTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBmYWNpbGl0eVJwY1NlcnZpY2VQcm94eTogRmFjaWxpdHlScGNTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBmYWNpbGl0eUlkZW50aXR5U2VydmljZVByb3h5OiBGYWNpbGl0eUlkZW50aXR5U2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgZGV2aWNlUnBjU2VydmljZVByb3h5OiBScGMuRGV2aWNlUnBjU2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgbWVzc2FnZUJhclNlcnZpY2U6IE1lc3NhZ2VCYXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVTZXJ2aWNlOiBSb3V0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZXhwb3J0RmlsZVNlcnZpY2U6IEV4cG9ydEZpbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbW9iaWxlSWRlbnRpdHlTZXJ2aWNlUHJveHk6IE1vYmlsZUlkZW50aXR5U2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgYmFja29mZmljZUNsb3VkU2VydmljZVByb3h5OiBCYWNrb2ZmaWNlQ2xvdWRTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBsaWNlbnNlQ2xvdWRTZXJ2aWNlUHJveHk6IExpY2Vuc2VDbG91ZFNlcnZpY2VQcm94eSkge1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBwYXJrcyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBGYWNpbGl0eUJhc2ljRHRvW10ge1xuICAgIHJldHVybiBzdGF0ZS5wYXJrcztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc2VsZWN0ZWRQYXJrSWQoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogbnVtYmVyIHtcbiAgICByZXR1cm4gc3RhdGUuc2VsZWN0ZWRQYXJrSWQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHNlbGVjdGVkUGFya0RldGFpbHMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogSVBhcmtEZXRhaWxzIHtcbiAgICByZXR1cm4gc3RhdGUuc2VsZWN0ZWRQYXJrRGV0YWlscztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgcGFya0RldmljZXMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogSURldmljZUR0b1tdIHtcbiAgICByZXR1cm4gc3RhdGUuc2VsZWN0ZWRQYXJrRGV0YWlscz8uZGV2aWNlcztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgZ3VpZChzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdGF0ZS5zbWFydHBhcmtHdWlkO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzbWFydHBhcmtzKHN0YXRlOiBTbWFydHBhcmtzU3RhdGVNb2RlbCk6IChTbWFydHBhcmtEdG8gfCBTbWFydHBhcmtCYXNpY0R0bylbXSB7XG4gICAgcmV0dXJuIHN0YXRlLnNtYXJ0cGFya3M7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGxhdGVzdFBhZ2Uoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogKFNtYXJ0cGFya0R0byB8IFNtYXJ0cGFya0Jhc2ljRHRvKVtdIHtcbiAgICByZXR1cm4gc3RhdGUubGF0ZXN0U21hcnRwYXJrcztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc2VsZWN0ZWRTbWFydFBhcmtJZChzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBudW1iZXIge1xuICAgIHJldHVybiBzdGF0ZS5zZWxlY3RlZFNtYXJ0UGFya0lkO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzZWxlY3RlZFNtYXJ0UGFya0RldGFpbHMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogU21hcnRwYXJrRHRvIHtcbiAgICByZXR1cm4gc3RhdGUuc2VsZWN0ZWRTbWFydFBhcms7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGNvdW50U21hcnRQYXJrcyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBudW1iZXIge1xuICAgIHJldHVybiBzdGF0ZS5jb3VudFNtYXJ0UGFya3M7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGNvdW50UGFya2luZ0xvdHMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogbnVtYmVyIHtcbiAgICByZXR1cm4gc3RhdGUuY291bnRQYXJraW5nTG90cztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgdmVyc2lvbnMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogU3RyaW5nTWFwPHN0cmluZz4ge1xuICAgIHJldHVybiBzdGF0ZS52ZXJzaW9ucztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc21hcnRwYXJrU2VhcmNoT3B0aW9ucyhzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBTcEFuZFNwYXJrVmVyc2lvbnNEdG8ge1xuICAgIHJldHVybiBzdGF0ZS5TcEFuZFNwYXJrVmVyc2lvbnM7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHNtYXJ0UGFya1dyYXBwZXIoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogU21hcnRQYXJrV3JhcHBlckR0byB7XG4gICAgcmV0dXJuIHN0YXRlLnNtYXJ0UGFya1dyYXBwZXI7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHZhcnMoc3RhdGU6IFNtYXJ0cGFya3NTdGF0ZU1vZGVsKTogVmFyRHRvW10ge1xuICAgIHJldHVybiBzdGF0ZS52YXJzO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBleHBvcnRQZGZTbWFydHBhcmtzKHN0YXRlOiBTbWFydHBhcmtzU3RhdGVNb2RlbCk6IChTbWFydHBhcmtEdG8gfCBTbWFydHBhcmtCYXNpY0R0bylbXSB7XG4gICAgcmV0dXJuIHN0YXRlLmV4cG9ydFBkZlNtYXJ0cGFya3M7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGZhY2lsaXR5VHJlZShzdGF0ZTogU21hcnRwYXJrc1N0YXRlTW9kZWwpOiBTbWFydHBhcmtGaWx0ZXJPcHRpb25EdG9bXSB7XG4gICAgcmV0dXJuIHN0YXRlLmZhY2lsaXR5VHJlZTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZFNtYXJ0cGFya3NBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkU21hcnRwYXJrc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZFNtYXJ0cGFya3NBY3Rpb24pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBzbWFydHBhcmtzOiBbXSxcbiAgICAgIGNvdW50U21hcnRQYXJrczogMCxcbiAgICAgIGNvdW50UGFya2luZ0xvdHM6IHRoaXMuY291bnRTbWFydHBhcmtGYWNpbGl0aWVzKFtdKVxuICAgIH0pO1xuXG4gICAgY29uc3Qgc21hcnRwYXJrcyQgPSB0aGlzLnNtYXJ0cGFya0Nsb3VkU2VydmljZVByb3h5LmdldEFsbFNtYXJ0UGFya3MoKTtcbiAgICByZXR1cm4gc21hcnRwYXJrcyQucGlwZSh0YXAoc21hcnRwYXJrcyA9PiB7XG4gICAgICBjdHguZGlzcGF0Y2gobmV3IFNldFNtYXJ0UGFya0FjdGlvbihzbWFydHBhcmtzLmRhdGEsIGFjdGlvbi5yZWxvYWQpKTtcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRTbWFydHBhcmtzQmFzaWNBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkU21hcnRwYXJrc0Jhc2ljQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgYWN0aW9uOiBMb2FkU21hcnRwYXJrc0Jhc2ljQWN0aW9uKSB7XG4gICAgY3R4LmRpc3BhdGNoKG5ldyBNZW51U3ViTW9kdWxlTG9hZEFjdGlvbihhY3Rpb24uc3ViTW9kdWxlKSk7XG4gICAgY29uc3Qgc21hcnRwYXJrcyQgPSB0aGlzLmZhY2lsaXR5SWRlbnRpdHlTZXJ2aWNlUHJveHkuZmFjaWxpdHlBbGwoYWN0aW9uLmFwcE1vZHVsZSk7XG4gICAgcmV0dXJuIHNtYXJ0cGFya3MkLnBpcGUoc3dpdGNoTWFwKHNtYXJ0cGFya0Jhc2ljID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgc21hcnRQYXJrV3JhcHBlcjogc21hcnRwYXJrQmFzaWMuZGF0YSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNldFNtYXJ0cGFya0Jhc2ljQWxsQWN0aW9uKHNtYXJ0cGFya0Jhc2ljKSk7XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkTW9iaWxlU21hcnRwYXJrc0Jhc2ljQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZE1vYmlsZVNtYXJ0cGFya3NCYXNpY0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZE1vYmlsZVNtYXJ0cGFya3NCYXNpY0FjdGlvbikge1xuICAgIGN0eC5kaXNwYXRjaChuZXcgTWVudVN1Yk1vZHVsZUxvYWRBY3Rpb24oYWN0aW9uLnN1Yk1vZHVsZSkpO1xuICAgIGNvbnN0IHNtYXJ0cGFya3MkID0gdGhpcy5tb2JpbGVJZGVudGl0eVNlcnZpY2VQcm94eS5tb2JpbGVHZXRTbWFydHBhcmtCYXNpY0FsbChhY3Rpb24uYXBwTW9kdWxlLCBWRVJTSU9OX1YxKTtcbiAgICByZXR1cm4gc21hcnRwYXJrcyQucGlwZShzd2l0Y2hNYXAoc21hcnRwYXJrQmFzaWMgPT4ge1xuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICBzbWFydFBhcmtXcmFwcGVyOiBzbWFydHBhcmtCYXNpYy5kYXRhLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0U21hcnRwYXJrQmFzaWNBbGxBY3Rpb24oc21hcnRwYXJrQmFzaWMpKTtcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKENsZWFyU21hcnRwYXJrc0Jhc2ljQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uQ2xlYXJTbWFydHBhcmtzQmFzaWNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBfOiBDbGVhclNtYXJ0cGFya3NCYXNpY0FjdGlvbikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHNtYXJ0UGFya1dyYXBwZXI6IG51bGwsXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRTbWFydHBhcmtzVGFibGVBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkU21hcnRwYXJrc1RhYmxlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgeyBmaWx0ZXIgfTogTG9hZFNtYXJ0cGFya3NUYWJsZUFjdGlvbikge1xuICAgIGNvbnN0IHNtYXJ0cGFya3MkID0gdGhpcy5iYWNrb2ZmaWNlQ2xvdWRTZXJ2aWNlUHJveHkuZ2V0QmFja29mZmljZVNtYXJ0cGFya3MoZmlsdGVyKTtcbiAgICByZXR1cm4gc21hcnRwYXJrcyQucGlwZSh0YXAoc21hcnRwYXJrcyA9PiB7XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIGxhdGVzdFNtYXJ0cGFya3M6IHNtYXJ0cGFya3MuZGF0YS5lbnRpdGllcyxcbiAgICAgICAgY291bnRTbWFydFBhcmtzOiBzbWFydHBhcmtzLmRhdGEuY291bnRlcixcbiAgICAgICAgY291bnRQYXJraW5nTG90czogc21hcnRwYXJrcy5kYXRhLnN1YkNvdW50ZXJcbiAgICAgIH0pO1xuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZEJhY2tvZmZpY2VTbWFydHBhcmtzVGFibGVBY3Rpb24sIHsgY2FuY2VsVW5jb21wbGV0ZWQ6IHRydWUgfSlcbiAgb25Mb2FkQmFja29mZmljZVNtYXJ0cGFya3NUYWJsZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIHsgZmlsdGVyIH06IExvYWRCYWNrb2ZmaWNlU21hcnRwYXJrc1RhYmxlQWN0aW9uKSB7XG4gICAgY29uc3Qgc21hcnRwYXJrcyQgPSB0aGlzLmJhY2tvZmZpY2VDbG91ZFNlcnZpY2VQcm94eS5nZXRCYWNrb2ZmaWNlU21hcnRwYXJrcyhmaWx0ZXIpO1xuICAgIHJldHVybiBzbWFydHBhcmtzJC5waXBlKHRhcChzbWFydHBhcmtzID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgbGF0ZXN0U21hcnRwYXJrczogc21hcnRwYXJrcy5kYXRhLmVudGl0aWVzLFxuICAgICAgICBjb3VudFNtYXJ0UGFya3M6IHNtYXJ0cGFya3MuZGF0YS5jb3VudGVyLFxuICAgICAgICBjb3VudFBhcmtpbmdMb3RzOiBzbWFydHBhcmtzLmRhdGEuc3ViQ291bnRlclxuICAgICAgfSk7XG4gICAgfSkpO1xuICB9XG5cblxuICBAQWN0aW9uKFNldFNtYXJ0UGFya1RhYmxlQWN0aW9uKVxuICBvblNldFNtYXJ0UGFya1RhYmxlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPiwgeyBzbWFydHBhcmtzIH06IFNldFNtYXJ0UGFya1RhYmxlQWN0aW9uKSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgc21hcnRwYXJrc1xuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihTZXRTbWFydFBhcmtBY3Rpb24pXG4gIG9uU2V0U21hcnRQYXJrc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIHsgc21hcnRwYXJrcywgcmVsb2FkIH06IFNldFNtYXJ0UGFya0FjdGlvbikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHNtYXJ0cGFya3M6IHNtYXJ0cGFya3MgfHwgW10sXG4gICAgICBjb3VudFNtYXJ0UGFya3M6IHNtYXJ0cGFya3M/Lmxlbmd0aCB8fCAwLFxuICAgICAgY291bnRQYXJraW5nTG90czogdGhpcy5jb3VudFNtYXJ0cGFya0ZhY2lsaXRpZXMoc21hcnRwYXJrcylcbiAgICB9KTtcblxuICAgIGlmIChjdHguZ2V0U3RhdGUoKS5zZWxlY3RlZFNtYXJ0UGFya0lkKSB7XG4gICAgICBjdHguZGlzcGF0Y2gobmV3IFNlbGVjdFNtYXJ0UGFya0FjdGlvbihjdHguZ2V0U3RhdGUoKS5zZWxlY3RlZFNtYXJ0UGFya0lkLCByZWxvYWQpKTtcbiAgICB9XG4gIH1cblxuICBAQWN0aW9uKFNlbGVjdFNtYXJ0UGFya0FjdGlvbilcbiAgb25TZWxlY3RTbWFydFBhcmtBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IFNlbGVjdFNtYXJ0UGFya0FjdGlvbikge1xuICAgIGxldCBzZWxlY3RlZFNtYXJ0UGFyaztcbiAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmNsZWFyTWVzc2FnZWJhcigpO1xuICAgIGlmIChjdHguZ2V0U3RhdGUoKS5zbWFydHBhcmtzKSB7XG4gICAgICBzZWxlY3RlZFNtYXJ0UGFyayA9IGN0eC5nZXRTdGF0ZSgpLnNtYXJ0cGFya3MuZmluZCgoc21hcnRwYXJrKSA9PiAoc21hcnRwYXJrIGFzIFNtYXJ0cGFya0R0bykuaWQgPT09IGFjdGlvbi5zbWFydFBhcmtJZCk7XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7IHNlbGVjdGVkU21hcnRQYXJrSWQ6IGFjdGlvbi5zbWFydFBhcmtJZCwgc2VsZWN0ZWRTbWFydFBhcmsgfSk7XG4gICAgICBpZiAoYWN0aW9uLnJlbG9hZCkge1xuICAgICAgICBjdHguZGlzcGF0Y2gobmV3IExvYWRQYXJrc0FjdGlvbigpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAQWN0aW9uKExvYWRQYXJrc0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWRQYXJrc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7IHNlbGVjdGVkUGFya0RldGFpbHM6IG51bGwsIHNlbGVjdGVkUGFya0lkOiBudWxsIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuZmFjaWxpdHlJZGVudGl0eVNlcnZpY2VQcm94eS5mYWNpbGl0eUFsbChBcHBNb2R1bGUuTWFuYWdlbWVudCkucGlwZSh0YXAoc21hcnRwYXJrTWFwID0+IHtcbiAgICAgIGNvbnN0IHsgZ3VpZCwgdHlwZSB9ID0gY3R4LmdldFN0YXRlKCkuc2VsZWN0ZWRTbWFydFBhcms7XG4gICAgICBpZiAoc21hcnRwYXJrTWFwKSB7XG4gICAgICAgIGxldCBzZWxlY3RlZFBhcmtJZDogbnVtYmVyO1xuICAgICAgICBjb25zdCBwYXJrcyA9IHNtYXJ0cGFya01hcC5kYXRhLnNtYXJ0UGFya3NbZ3VpZF0uZmFjaWxpdGllcztcbiAgICAgICAgaWYgKHR5cGUgPT09IFNtYXJ0UGFya1R5cGUuU3VwZXJQYXJrKSB7XG4gICAgICAgICAgY29uc3QgbXVsdGlQYXJrID0gcGFya3MuZmluZChwYXJrID0+IHBhcmsuaXNNdWx0aVBhcmspO1xuICAgICAgICAgIHNlbGVjdGVkUGFya0lkID0gbXVsdGlQYXJrID8gbXVsdGlQYXJrLmlkIDogbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgICBwYXJrczogcGFya3MgfHwgW10sXG4gICAgICAgICAgc2VsZWN0ZWRQYXJrSWQ6IHNlbGVjdGVkUGFya0lkID8/IChwYXJrcz8ubGVuZ3RoICYmIHBhcmtzWzBdLmlkIHx8IG51bGwpLFxuICAgICAgICAgIHNtYXJ0cGFya0d1aWQ6IGd1aWQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChwYXJrcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgY3R4LmRpc3BhdGNoKExvYWRQYXJrRGV2aWNlc0FjdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRQYXJrRGV2aWNlc0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWRQYXJrRGV2aWNlcyhjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4pIHtcbiAgICBjb25zdCBwYXJrRGV0YWlsID0gY3R4LmdldFN0YXRlKCkucGFya3MuZmluZCgocGFyaykgPT4gcGFyay5pZCA9PT0gY3R4LmdldFN0YXRlKCkuc2VsZWN0ZWRQYXJrSWQpO1xuICAgIGNvbnN0IGd1aWQgPSBjdHguZ2V0U3RhdGUoKS5zbWFydHBhcmtHdWlkO1xuXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5mYWNpbGl0eVJwY1NlcnZpY2VQcm94eS5nZXRGYWNpbGl0eShndWlkLCBwYXJrRGV0YWlsLmlkKSxcbiAgICAgIHRoaXMucmV2ZW51ZVNlcnZpY2UuZ2V0UmV2ZW51ZShwYXJrRGV0YWlsLmlkLCBndWlkKS5waXBlKGZpbHRlcihyZXZlbnVlID0+ICEhcmV2ZW51ZSkpLFxuICAgICAgdGhpcy5kZXZpY2VScGNTZXJ2aWNlUHJveHkuZ2V0U21hcnRwYXJrc0RldmljZXMoZ3VpZCwgcGFya0RldGFpbC5pZCwgbnVsbCwgbnVsbCwgbnVsbCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpLFxuICAgIF0pLnBpcGUodGFwKChbZmFjaWxpdHksIHJldmVudWVzLCBkZXZpY2VzXSkgPT4ge1xuICAgICAgY29uc3QgcmV2ZW51ZSA9IHBhcmtEZXRhaWwuaXNNdWx0aVBhcmsgPT0gMSA/IHRoaXMucmV2ZW51ZVNlcnZpY2UuY2FsY3VsYXRlUmV2ZW51ZUZvck11bHRpUGFyayhyZXZlbnVlcykgOiByZXZlbnVlc1twYXJrRGV0YWlsLmlkXTtcbiAgICAgIGRldmljZXM/LmRhdGEuZm9yRWFjaChkZXZpY2UgPT4gZGV2aWNlLmRldmljZVN0YXR1cyA9IGRldmljZS5kZXZpY2VTdGF0dXMgPz8gZ2V0RGVmYXVsdERldmljZVN0YXR1cyhkZXZpY2UpKTtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgc2VsZWN0ZWRQYXJrRGV0YWlsczoge1xuICAgICAgICAgIGZhY2lsaXR5OiBmYWNpbGl0eS5kYXRhLFxuICAgICAgICAgIGRldmljZXM6IGRldmljZXMuZGF0YSxcbiAgICAgICAgICByZXZlbnVlXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pKTtcbiAgfVxuXG5cbiAgQEFjdGlvbihTZWxlY3RQYXJrQWN0aW9uKVxuICBvblNlbGVjdFBhcmtBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IFNlbGVjdFBhcmtBY3Rpb24pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7IHNlbGVjdGVkUGFya0lkOiBhY3Rpb24ucGFya0lkIH0pO1xuICAgIGN0eC5kaXNwYXRjaChMb2FkUGFya0RldmljZXNBY3Rpb24pO1xuICB9XG5cbiAgQEFjdGlvbihDbGVhclNlbGVjdGVkUGFya0FjdGlvbilcbiAgb25DbGVhclNlbGVjdGVkUGFya0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBzZWxlY3RlZFBhcmtEZXRhaWxzOiBudWxsLFxuICAgICAgc2VsZWN0ZWRQYXJrSWQ6IG51bGwsXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKENsZWFyU2VsZWN0ZWRTbWFydHBhcmtBY3Rpb24pXG4gIG9uQ2xlYXJTZWxlY3RlZHNtYXJ0cGFya0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBzZWxlY3RlZFNtYXJ0UGFya0lkOiBudWxsLFxuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihTbWFydFBhcmtEZXZpY2VTdGF0dXNDaGFuZ2VkQWN0aW9uKVxuICBvblNtYXJ0UGFya0RldmljZVN0YXR1c0NoYW5nZWRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IFNtYXJ0UGFya0RldmljZVN0YXR1c0NoYW5nZWRBY3Rpb24pIHtcbiAgICBjb25zdCBzZWxlY3RlZFBhcmtEZXRhaWxzID0gY3R4LmdldFN0YXRlKCkuc2VsZWN0ZWRQYXJrRGV0YWlscztcbiAgICBpZiAoc2VsZWN0ZWRQYXJrRGV0YWlscykge1xuICAgICAgY29uc3QgaW5kZXggPSBzZWxlY3RlZFBhcmtEZXRhaWxzPy5kZXZpY2VzPy5maW5kSW5kZXgoZGV2aWNlID0+IGRldmljZS5pZCA9PT0gYWN0aW9uLmRldmljZVN0YXR1cy5kZXZpY2VJRCk7XG4gICAgICBjb25zdCBjb21tdW5pY2F0aW9uUGVyY2VudGFnZSA9IHNlbGVjdGVkUGFya0RldGFpbHMuZGV2aWNlc1tpbmRleF0uZGV2aWNlU3RhdHVzLmNvbW11bmljYXRpb25QZXJjZW50YWdlO1xuICAgICAgY29uc3QgbmV3Q29tbVBlcmNlbnRhZ2UgPSBhY3Rpb24uZGV2aWNlU3RhdHVzLmNvbW11bmljYXRpb25QZXJjZW50YWdlO1xuICAgICAgaWYgKGluZGV4ID49IDAgJiYgY29tbXVuaWNhdGlvblBlcmNlbnRhZ2UgIT09IG5ld0NvbW1QZXJjZW50YWdlKSB7XG4gICAgICAgIHNlbGVjdGVkUGFya0RldGFpbHMuZGV2aWNlc1tpbmRleF0uZGV2aWNlU3RhdHVzLmNvbW11bmljYXRpb25QZXJjZW50YWdlID0gbmV3Q29tbVBlcmNlbnRhZ2U7XG4gICAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgICBzZWxlY3RlZFBhcmtEZXRhaWxzOiBjbG9uZURlZXAoc2VsZWN0ZWRQYXJrRGV0YWlscyksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBBY3Rpb24oRGlzY29ubmVjdFNtYXJ0UGFya0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkRpc2Nvbm5lY3RTbWFydHBhcmtBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCB7IHNtYXJ0UGFya0d1aWQsIHNtYXJ0UGFya0lkLCBwYXNzd29yZCB9OiBEaXNjb25uZWN0U21hcnRQYXJrQWN0aW9uKSB7XG4gICAgY29uc3Qgc21hcnRwYXJrJCA9IHRoaXMuc21hcnRwYXJrQ2xvdWRTZXJ2aWNlUHJveHkuZGlzY29ubmVjdChwYXNzd29yZCwgc21hcnRQYXJrSWQsIFNtYXJ0UGFya1N0YXR1cy5Ob25hY3RpdmUpO1xuICAgIHJldHVybiBzbWFydHBhcmskLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6ICh2KSA9PiB7XG4gICAgICAgIGNvbnN0IHNtYXJ0cGFya3MgPSAoY3R4LmdldFN0YXRlKCkuc21hcnRwYXJrcyB8fCBbXSkuZmlsdGVyKHNwID0+IHNwLmd1aWQgIT09IHNtYXJ0UGFya0d1aWQpO1xuICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgc2VsZWN0ZWRTbWFydFBhcms6IG51bGwsXG4gICAgICAgICAgc2VsZWN0ZWRQYXJrSWQ6IG51bGwsXG4gICAgICAgICAgc21hcnRwYXJrcyxcbiAgICAgICAgICBjb3VudFNtYXJ0UGFya3M6IHNtYXJ0cGFya3M/Lmxlbmd0aCB8fCAwLFxuICAgICAgICAgIGNvdW50UGFya2luZ0xvdHM6IHRoaXMuY291bnRTbWFydHBhcmtGYWNpbGl0aWVzKHNtYXJ0cGFya3MpXG4gICAgICAgIH0pO1xuICAgICAgICBjdHguZGlzcGF0Y2gobmV3IENsZWFyU2VsZWN0ZWRGYWNpbGl0eUFjdGlvbigpKTtcbiAgICAgICAgY3R4LmRpc3BhdGNoKG5ldyBOYXZpZ2F0ZSh0aGlzLnJvdXRlU2VydmljZS5nZXROYXZpZ2F0aW9uUm91dGUoWydtYW5hZ2VtZW50JywgJ3NtYXJ0cGFya3MnXSkpKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihwYXJzZUFwaUVycm9yTWVzc2FnZShlKSwgeyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLlN0YXRpYywgaWQ6ICdtb2RhbCcgfSk7XG4gICAgICB9LFxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oU2V0U21hcnRQYXJrVmVyc2lvbnNBY3Rpb24pXG4gIG9uU2V0U21hcnRQYXJrVmVyc2lvbnNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IFNldFNtYXJ0UGFya1ZlcnNpb25zQWN0aW9uKSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgdmVyc2lvbnM6IGFjdGlvbi52ZXJzaW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZFNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbilcbiAgb25Mb2FkU3BBbmRTcGFya1ZlcnNpb25zQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPikge1xuICAgIGlmIChjdHguZ2V0U3RhdGUoKS5TcEFuZFNwYXJrVmVyc2lvbnMgPT0gbnVsbCkge1xuICAgICAgY29uc3QgdmVyc2lvbnMkID0gdGhpcy5zbWFydHBhcmtDbG91ZFNlcnZpY2VQcm94eS5nZXRTcEFuZFNwYXJrVmVyc2lvbnMoKTtcbiAgICAgIHJldHVybiB2ZXJzaW9ucyQucGlwZSh0YXAodmVyc2lvbnMgPT4ge1xuICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7IFNwQW5kU3BhcmtWZXJzaW9uczogdmVyc2lvbnMuZGF0YSB9KTtcbiAgICAgIH0pKTtcbiAgICB9XG4gIH1cblxuICBAQWN0aW9uKExvYWRCYWNrb2ZmaWNlU3BBbmRTcGFya1ZlcnNpb25zQWN0aW9uKVxuICBvbkxvYWRCYWNrb2ZmaWNlU3BBbmRTcGFya1ZlcnNpb25zQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNtYXJ0cGFya3NTdGF0ZU1vZGVsPikge1xuICAgIGlmIChjdHguZ2V0U3RhdGUoKS5TcEFuZFNwYXJrVmVyc2lvbnMgPT0gbnVsbCkge1xuICAgICAgY29uc3QgdmVyc2lvbnMkID0gdGhpcy5iYWNrb2ZmaWNlQ2xvdWRTZXJ2aWNlUHJveHkuZ2V0QmFja29mZmljZVNwQW5kU3BhcmtWZXJzaW9ucygpO1xuICAgICAgcmV0dXJuIHZlcnNpb25zJC5waXBlKHRhcCh2ZXJzaW9ucyA9PiB7XG4gICAgICAgIGN0eC5wYXRjaFN0YXRlKHsgU3BBbmRTcGFya1ZlcnNpb25zOiB2ZXJzaW9ucy5kYXRhIH0pO1xuICAgICAgfSkpO1xuICAgIH1cbiAgfVxuXG4gIEBBY3Rpb24oQ2xlYXJTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24pXG4gIG9uQ2xlYXJTcEFuZFNwYXJrVmVyc2lvbnNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+KSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgU3BBbmRTcGFya1ZlcnNpb25zOiBudWxsXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRWYXJzQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZFZhcnNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IExvYWRWYXJzQWN0aW9uKSB7XG4gICAgY29uc3QgdmFycyQgPSB0aGlzLnNtYXJ0cGFya0Nsb3VkU2VydmljZVByb3h5LmdldFZhcnMoYWN0aW9uLnNlYXJjaFBhcmFtc0R0by5tYXhSZXN1bHRzLCBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvLnNlYXJjaFRlcm0sXG4gICAgICBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvLm9yZGVyQnkuY29sdW1uLCBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvLm9yZGVyQnkub3JkZXJEaXJlY3Rpb24pO1xuICAgIHJldHVybiB2YXJzJC5waXBlKHRhcCh2YXJzID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgdmFyczogdmFycy5kYXRhXG4gICAgICB9KTtcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRCYWNrb2ZmaWNlVmFyc0FjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkxvYWRCYWNrb2ZmaWNlVmFyc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9hZEJhY2tvZmZpY2VWYXJzQWN0aW9uKSB7XG4gICAgY29uc3QgdmFycyQgPSB0aGlzLmJhY2tvZmZpY2VDbG91ZFNlcnZpY2VQcm94eS5nZXRCYWNrb2ZmaWNlVmFycyhhY3Rpb24uc2VhcmNoUGFyYW1zRHRvLm1heFJlc3VsdHMsIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8uc2VhcmNoVGVybSxcbiAgICAgIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8ub3JkZXJCeS5jb2x1bW4sIGFjdGlvbi5zZWFyY2hQYXJhbXNEdG8ub3JkZXJCeS5vcmRlckRpcmVjdGlvbik7XG4gICAgcmV0dXJuIHZhcnMkLnBpcGUodGFwKHZhcnMgPT4ge1xuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICB2YXJzOiB2YXJzLmRhdGFcbiAgICAgIH0pO1xuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oU3luY1VzZXJzQW5kUm9sZXNCeVNtYXJ0cGFya0lkQWN0aW9uKVxuICBvblN5bmNVc2Vyc0FuZFJvbGVzQnlTbWFydHBhcmtJZEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIGFjdGlvbjogU3luY1VzZXJzQW5kUm9sZXNCeVNtYXJ0cGFya0lkQWN0aW9uKTogT2JzZXJ2YWJsZTxPYmplY3RIdHRwUmVzcG9uc2VEYXRhPiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja29mZmljZUNsb3VkU2VydmljZVByb3h5LnN5bmNVc2Vyc0J5U21hcnRwYXJrSWQoYWN0aW9uLnNtYXJ0cGFyay50ZW5hbnRJRCwgYWN0aW9uLnNtYXJ0cGFyay5pZCkucGlwZSh0YXAoe1xuICAgICAgbmV4dDogXyA9PiB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLnN1Y2Nlc3MoTG9jYWxpemF0aW9uLnN1Y2Nlc3NmdWxfc3luY191c2Vyc19hbmRfcm9sZXNfZm9yX3NtYXJ0cGFyaywgeyBtZXNzYWdlUGFyYW1zOiB7IHNtYXJ0cGFya05hbWU6IGFjdGlvbi5zbWFydHBhcmsubmFtZSB9IH0pLFxuICAgICAgZXJyb3I6IGUgPT4gdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihwYXJzZUFwaUVycm9yTWVzc2FnZShlKSwgeyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLkZsb2F0IH0pLFxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oRXhwb3J0U21hcnRwYXJrQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uRXhwb3J0U21hcnRwYXJrc0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIGFjdGlvbjogRXhwb3J0U21hcnRwYXJrQWN0aW9uKSB7XG4gICAgY29uc3Qgc21hcnRwYXJrcyQgPSB0aGlzLmJhY2tvZmZpY2VDbG91ZFNlcnZpY2VQcm94eS5nZXRCYWNrb2ZmaWNlU21hcnRwYXJrcyhhY3Rpb24uc21hcnRwYXJrRmlsdGVyKTtcbiAgICByZXR1cm4gc21hcnRwYXJrcyQucGlwZSh0YXAoe1xuICAgICAgbmV4dDogc21hcnRwYXJrcyA9PiB7XG4gICAgICAgIGNvbnN0IHRhYmxlUm93czogYW55W11bXSA9IFtdO1xuICAgICAgICBjb25zdCBzbWFydHBhcmtzTGlzdDogU21hcnRwYXJrRHRvW10gPSBzbWFydHBhcmtzLmRhdGEuZW50aXRpZXM7XG4gICAgICAgIHNtYXJ0cGFya3NMaXN0LmZvckVhY2goKHNtYXJ0cGFyaykgPT4ge1xuICAgICAgICAgIHRhYmxlUm93cy5wdXNoKFtcbiAgICAgICAgICAgIHNtYXJ0cGFyay5uYW1lLFxuICAgICAgICAgICAgU21hcnRQYXJrVHlwZVtzbWFydHBhcmsudHlwZV0ucmVwbGFjZSgvKFtBLVpdKS9nLCAnICQxJykudHJpbSgpLFxuICAgICAgICAgICAgc21hcnRwYXJrLnRlbmFudE5hbWUsXG4gICAgICAgICAgICBzbWFydHBhcmsudmVyc2lvbixcbiAgICAgICAgICAgIHNtYXJ0cGFyay5zcGFya1ZlcnNpb24sXG4gICAgICAgICAgICBzbWFydHBhcmsuY3JlYXRlZEF0LFxuICAgICAgICAgICAgc21hcnRwYXJrLmd1aWQsXG4gICAgICAgICAgICBzbWFydHBhcmsudmFyTmFtZSB8fCAnLScsXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChTbWFydFBhcmtTdGF0dXNUZXh0W1NtYXJ0UGFya1N0YXR1c1tzbWFydHBhcmsuc3RhdHVzXV0pXG4gICAgICAgICAgXSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmV4cG9ydEZpbGVTZXJ2aWNlLmV4cG9ydChhY3Rpb24uZmlsZVR5cGUsIHRhYmxlUm93cywgYWN0aW9uLmNvbHVtbnNIZWFkZXIsIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5zbWFydHBhcmspKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5mYWlsZWRfZXhwb3J0X2ZpbGUpKTtcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKEV4cG9ydFBkZlNtYXJ0cGFya3NUYWJsZUFjdGlvbiwgeyBjYW5jZWxVbmNvbXBsZXRlZDogdHJ1ZSB9KVxuICBvbkV4cG9ydFBkZlNtYXJ0cGFya3NUYWJsZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTbWFydHBhcmtzU3RhdGVNb2RlbD4sIHsgZmlsdGVyIH06IEV4cG9ydFBkZlNtYXJ0cGFya3NUYWJsZUFjdGlvbikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIGV4cG9ydFBkZlNtYXJ0cGFya3M6IG51bGwsXG4gICAgfSk7XG4gICAgY29uc3Qgc21hcnRwYXJrcyQgPSB0aGlzLmJhY2tvZmZpY2VDbG91ZFNlcnZpY2VQcm94eS5nZXRCYWNrb2ZmaWNlU21hcnRwYXJrcyhmaWx0ZXIpO1xuICAgIHJldHVybiBzbWFydHBhcmtzJC5waXBlKHRhcChzbWFydHBhcmtzID0+IHtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgZXhwb3J0UGRmU21hcnRwYXJrczogc21hcnRwYXJrcy5kYXRhLmVudGl0aWVzLFxuICAgICAgfSk7XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkU21hcnRwYXJrc0Ryb3Bkb3duQWN0aW9uLCB7IGNhbmNlbFVuY29tcGxldGVkOiB0cnVlIH0pXG4gIG9uTG9hZEFsbFNtYXJ0cGFya3NBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U21hcnRwYXJrc1N0YXRlTW9kZWw+LCBhY3Rpb246IExvYWRTbWFydHBhcmtzRHJvcGRvd25BY3Rpb24pOiBPYnNlcnZhYmxlPFNtYXJ0cGFya0ZpbHRlck9wdGlvbkR0b0lFbnVtZXJhYmxlSHR0cFJlc3BvbnNlRGF0YT4ge1xuICAgIGNvbnN0IHNtYXJ0cGFya3MkID0gdGhpcy5saWNlbnNlQ2xvdWRTZXJ2aWNlUHJveHkuYmFzZVNtYXJ0cGFya3MoYWN0aW9uLnNlYXJjaFBhcmFtc0R0by5tYXhSZXN1bHRzLFxuICAgICAgYWN0aW9uLnNlYXJjaFBhcmFtc0R0by5zZWFyY2hUZXJtLCBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvLm9yZGVyQnkuY29sdW1uLCBhY3Rpb24uc2VhcmNoUGFyYW1zRHRvLm9yZGVyQnkub3JkZXJEaXJlY3Rpb24pO1xuXG4gICAgcmV0dXJuIHNtYXJ0cGFya3MkLnBpcGUodGFwKGZhY2lsaXR5VHJlZUR0byA9PiB7XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIGZhY2lsaXR5VHJlZTogZmFjaWxpdHlUcmVlRHRvLmRhdGEsXG4gICAgICB9KTtcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGNvdW50U21hcnRwYXJrRmFjaWxpdGllcyhzbWFydHBhcmtzOiAoU21hcnRwYXJrRHRvIHwgU21hcnRwYXJrQmFzaWNEdG8pW10pOiBudW1iZXIge1xuICAgIGxldCBjb3VudFBhcmtpbmdMb3RzID0gMDtcblxuICAgIHNtYXJ0cGFya3MuZm9yRWFjaChzbWFydFBhcmsgPT4ge1xuICAgICAgaWYgKHNtYXJ0UGFyay5mYWNpbGl0aWVzKSB7XG4gICAgICAgIGNvdW50UGFya2luZ0xvdHMgKz0gc21hcnRQYXJrLmZhY2lsaXRpZXMuZmlsdGVyKGYgPT4gIWYuaXNNdWx0aVBhcmspLmxlbmd0aDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBjb3VudFBhcmtpbmdMb3RzO1xuICB9XG59XG4iXX0=
@@ -7,5 +7,4 @@ export * from './mobile-command-center-module.resolver';
7
7
  export * from './mobile-config.resolver';
8
8
  export * from './mobile-version.resolver';
9
9
  export * from './realtime.resolver';
10
- export * from './version.resolver';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL3Jlc29sdmVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBQ1osY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBSZXNvbHZlcnNcbmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZC1jZW50ZXItbW9kdWxlLnJlc29sdmVyJztcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlnLnJlc29sdmVyJztcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3ItcGFnZS5yZXNvbHZlcic7XG5leHBvcnQgKiBmcm9tICcuL2xvY2FsaXphdGlvbi5yZXNvbHZlcic7XG5leHBvcnQgKiBmcm9tICcuL21vYmlsZS1jb21tYW5kLWNlbnRlci1tb2R1bGUucmVzb2x2ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9tb2JpbGUtY29uZmlnLnJlc29sdmVyJztcbmV4cG9ydCAqIGZyb20gJy4vbW9iaWxlLXZlcnNpb24ucmVzb2x2ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9yZWFsdGltZS5yZXNvbHZlcic7XG5leHBvcnQgKiBmcm9tICcuL3ZlcnNpb24ucmVzb2x2ZXInO1xuIl19
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL3Jlc29sdmVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBQ1osY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gUmVzb2x2ZXJzXG5leHBvcnQgKiBmcm9tICcuL2NvbW1hbmQtY2VudGVyLW1vZHVsZS5yZXNvbHZlcic7XG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZy5yZXNvbHZlcic7XG5leHBvcnQgKiBmcm9tICcuL2Vycm9yLXBhZ2UucmVzb2x2ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9sb2NhbGl6YXRpb24ucmVzb2x2ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9tb2JpbGUtY29tbWFuZC1jZW50ZXItbW9kdWxlLnJlc29sdmVyJztcbmV4cG9ydCAqIGZyb20gJy4vbW9iaWxlLWNvbmZpZy5yZXNvbHZlcic7XG5leHBvcnQgKiBmcm9tICcuL21vYmlsZS12ZXJzaW9uLnJlc29sdmVyJztcbmV4cG9ydCAqIGZyb20gJy4vcmVhbHRpbWUucmVzb2x2ZXInO1xuIl19
@@ -1,29 +1,21 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { map } from 'rxjs/operators';
3
- import { VERSION_9_1_0 } from '../constants/version-constants';
4
3
  import { RevenueDto } from '../service-proxy/rpc-service-proxies';
5
- import { isVersionGreaterThanEqual } from '../utils/support-version.util';
6
4
  import * as i0 from "@angular/core";
7
- import * as i1 from "@ngxs/store";
8
- import * as i2 from "../service-proxy/rpc-service-proxies";
5
+ import * as i1 from "../service-proxy/rpc-service-proxies";
9
6
  export class RevenueService {
10
- constructor(store, facilityRpcServiceProxy) {
11
- this.store = store;
7
+ constructor(facilityRpcServiceProxy) {
12
8
  this.facilityRpcServiceProxy = facilityRpcServiceProxy;
13
9
  }
14
10
  getRevenue(parkId, guid) {
15
- // Backwards compatibility
16
- const sparkVersion = this.store.selectSnapshot(({ smartpark: { versions } }) => versions[guid]);
17
- if (isVersionGreaterThanEqual(sparkVersion, VERSION_9_1_0)) {
18
- const revenues$ = this.facilityRpcServiceProxy.getRevenues(guid, parkId);
19
- return revenues$.pipe(map(revenueDtos => {
20
- const revenues = revenueDtos.data.reduce((allrevenues, revenue) => {
21
- allrevenues[revenue.parkID] = revenue;
22
- return allrevenues;
23
- }, {});
24
- return revenues;
25
- }));
26
- }
11
+ const revenues$ = this.facilityRpcServiceProxy.getRevenues(guid, parkId);
12
+ return revenues$.pipe(map(revenueDtos => {
13
+ const revenues = revenueDtos.data.reduce((allrevenues, revenue) => {
14
+ allrevenues[revenue.parkID] = revenue;
15
+ return allrevenues;
16
+ }, {});
17
+ return revenues;
18
+ }));
27
19
  }
28
20
  calculateRevenueForMultiPark(revenues) {
29
21
  const superParkRevenue = new RevenueDto();
@@ -43,10 +35,10 @@ export class RevenueService {
43
35
  return superParkRevenue;
44
36
  }, superParkRevenue);
45
37
  }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RevenueService, deps: [{ token: i1.Store }, { token: i2.FacilityRpcServiceProxy }], target: i0.ɵɵFactoryTarget.Injectable }); }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RevenueService, deps: [{ token: i1.FacilityRpcServiceProxy }], target: i0.ɵɵFactoryTarget.Injectable }); }
47
39
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RevenueService }); }
48
40
  }
49
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RevenueService, decorators: [{
50
42
  type: Injectable
51
- }], ctorParameters: () => [{ type: i1.Store }, { type: i2.FacilityRpcServiceProxy }] });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2ZW51ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9zZXJ2aWNlcy9yZXZlbnVlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFpQixhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RSxPQUFPLEVBQTJCLFVBQVUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRTNGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7O0FBRzFFLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQ1UsS0FBWSxFQUNaLHVCQUFnRDtRQURoRCxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1osNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtJQUN0RCxDQUFDO0lBRUwsVUFBVSxDQUFDLE1BQWMsRUFBRSxJQUFZO1FBQ3JDLDBCQUEwQjtRQUMxQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEcsSUFBSSx5QkFBeUIsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUMzRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN6RSxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLFFBQVEsR0FBMEIsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLEVBQUU7b0JBQ3ZGLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDO29CQUN0QyxPQUFPLFdBQVcsQ0FBQztnQkFDckIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUVQLE9BQU8sUUFBUSxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDO0lBQ0gsQ0FBQztJQUVNLDRCQUE0QixDQUFDLFFBQStCO1FBQ2pFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUMxQyxnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFBO1FBQ3pCLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUE7UUFDbEMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQTtRQUMzQixnQkFBZ0IsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFBO1FBQ3BDLGdCQUFnQixDQUFDLEtBQUssR0FBRyxDQUFDLENBQUE7UUFDMUIsZ0JBQWdCLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQTtRQUVuQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsZ0JBQTRCLEVBQUUsT0FBbUIsRUFBRSxFQUFFO1lBQzFGLGdCQUFnQixDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3RDLGdCQUFnQixDQUFDLGFBQWEsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDO1lBQ3hELGdCQUFnQixDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQzFDLGdCQUFnQixDQUFDLGVBQWUsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDO1lBQzVELGdCQUFnQixDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ3hDLGdCQUFnQixDQUFDLGNBQWMsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQzFELE9BQU8sZ0JBQWdCLENBQUM7UUFDMUIsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDdkIsQ0FBQzsrR0F4Q1UsY0FBYzttSEFBZCxjQUFjOzs0RkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBWRVJTSU9OXzhfMV8wLCBWRVJTSU9OXzlfMV8wIH0gZnJvbSAnLi4vY29uc3RhbnRzL3ZlcnNpb24tY29uc3RhbnRzJztcbmltcG9ydCB7IEZhY2lsaXR5UnBjU2VydmljZVByb3h5LCBSZXZlbnVlRHRvIH0gZnJvbSAnLi4vc2VydmljZS1wcm94eS9ycGMtc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IE51bWJlck1hcCB9IGZyb20gJy4uL3V0aWxzL2xhbmcudXRpbCc7XG5pbXBvcnQgeyBpc1ZlcnNpb25HcmVhdGVyVGhhbkVxdWFsIH0gZnJvbSAnLi4vdXRpbHMvc3VwcG9ydC12ZXJzaW9uLnV0aWwnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUmV2ZW51ZVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIGZhY2lsaXR5UnBjU2VydmljZVByb3h5OiBGYWNpbGl0eVJwY1NlcnZpY2VQcm94eVxuICApIHsgfVxuXG4gIGdldFJldmVudWUocGFya0lkOiBudW1iZXIsIGd1aWQ6IHN0cmluZyk6IE9ic2VydmFibGU8TnVtYmVyTWFwPFJldmVudWVEdG8+PiB7XG4gICAgLy8gQmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICBjb25zdCBzcGFya1ZlcnNpb24gPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KCh7IHNtYXJ0cGFyazogeyB2ZXJzaW9ucyB9IH0pID0+IHZlcnNpb25zW2d1aWRdKTtcbiAgICBpZiAoaXNWZXJzaW9uR3JlYXRlclRoYW5FcXVhbChzcGFya1ZlcnNpb24sIFZFUlNJT05fOV8xXzApKSB7XG4gICAgICBjb25zdCByZXZlbnVlcyQgPSB0aGlzLmZhY2lsaXR5UnBjU2VydmljZVByb3h5LmdldFJldmVudWVzKGd1aWQsIHBhcmtJZCk7XG4gICAgICByZXR1cm4gcmV2ZW51ZXMkLnBpcGUobWFwKHJldmVudWVEdG9zID0+IHtcbiAgICAgICAgY29uc3QgcmV2ZW51ZXM6IE51bWJlck1hcDxSZXZlbnVlRHRvPiA9IHJldmVudWVEdG9zLmRhdGEucmVkdWNlKChhbGxyZXZlbnVlcywgcmV2ZW51ZSkgPT4ge1xuICAgICAgICAgIGFsbHJldmVudWVzW3JldmVudWUucGFya0lEXSA9IHJldmVudWU7XG4gICAgICAgICAgcmV0dXJuIGFsbHJldmVudWVzO1xuICAgICAgICB9LCB7fSk7XG5cbiAgICAgICAgcmV0dXJuIHJldmVudWVzO1xuICAgICAgfSkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjYWxjdWxhdGVSZXZlbnVlRm9yTXVsdGlQYXJrKHJldmVudWVzOiBOdW1iZXJNYXA8UmV2ZW51ZUR0bz4pOiBSZXZlbnVlRHRvIHtcbiAgICBjb25zdCBzdXBlclBhcmtSZXZlbnVlID0gbmV3IFJldmVudWVEdG8oKTtcbiAgICBzdXBlclBhcmtSZXZlbnVlLmNhc2ggPSAwXG4gICAgc3VwZXJQYXJrUmV2ZW51ZS5jYXNoQ2FuY2VsbGVkID0gMFxuICAgIHN1cGVyUGFya1JldmVudWUuY3JlZGl0ID0gMFxuICAgIHN1cGVyUGFya1JldmVudWUuY3JlZGl0Q2FuY2VsbGVkID0gMFxuICAgIHN1cGVyUGFya1JldmVudWUuZGViaXQgPSAwXG4gICAgc3VwZXJQYXJrUmV2ZW51ZS5kZWJpdENhbmNlbGxlZCA9IDBcblxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHJldmVudWVzKS5yZWR1Y2UoKHN1cGVyUGFya1JldmVudWU6IFJldmVudWVEdG8sIHJldmVudWU6IFJldmVudWVEdG8pID0+IHtcbiAgICAgIHN1cGVyUGFya1JldmVudWUuY2FzaCArPSByZXZlbnVlLmNhc2g7XG4gICAgICBzdXBlclBhcmtSZXZlbnVlLmNhc2hDYW5jZWxsZWQgKz0gcmV2ZW51ZS5jYXNoQ2FuY2VsbGVkO1xuICAgICAgc3VwZXJQYXJrUmV2ZW51ZS5jcmVkaXQgKz0gcmV2ZW51ZS5jcmVkaXQ7XG4gICAgICBzdXBlclBhcmtSZXZlbnVlLmNyZWRpdENhbmNlbGxlZCArPSByZXZlbnVlLmNyZWRpdENhbmNlbGxlZDtcbiAgICAgIHN1cGVyUGFya1JldmVudWUuZGViaXQgKz0gcmV2ZW51ZS5kZWJpdDtcbiAgICAgIHN1cGVyUGFya1JldmVudWUuZGViaXRDYW5jZWxsZWQgKz0gcmV2ZW51ZS5kZWJpdENhbmNlbGxlZDtcbiAgICAgIHJldHVybiBzdXBlclBhcmtSZXZlbnVlO1xuICAgIH0sIHN1cGVyUGFya1JldmVudWUpO1xuICB9XG59XG4iXX0=
43
+ }], ctorParameters: () => [{ type: i1.FacilityRpcServiceProxy }] });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2ZW51ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9zZXJ2aWNlcy9yZXZlbnVlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUEyQixVQUFVLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7O0FBSTNGLE1BQU0sT0FBTyxjQUFjO0lBRXpCLFlBQW9CLHVCQUFnRDtRQUFoRCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO0lBQUksQ0FBQztJQUV6RSxVQUFVLENBQUMsTUFBYyxFQUFFLElBQVk7UUFDckMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDekUsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN0QyxNQUFNLFFBQVEsR0FBMEIsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLEVBQUU7Z0JBQ3ZGLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDO2dCQUN0QyxPQUFPLFdBQVcsQ0FBQztZQUNyQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFUCxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVNLDRCQUE0QixDQUFDLFFBQStCO1FBQ2pFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUMxQyxnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFBO1FBQ3pCLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUE7UUFDbEMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQTtRQUMzQixnQkFBZ0IsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFBO1FBQ3BDLGdCQUFnQixDQUFDLEtBQUssR0FBRyxDQUFDLENBQUE7UUFDMUIsZ0JBQWdCLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQTtRQUVuQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsZ0JBQTRCLEVBQUUsT0FBbUIsRUFBRSxFQUFFO1lBQzFGLGdCQUFnQixDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3RDLGdCQUFnQixDQUFDLGFBQWEsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDO1lBQ3hELGdCQUFnQixDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQzFDLGdCQUFnQixDQUFDLGVBQWUsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDO1lBQzVELGdCQUFnQixDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ3hDLGdCQUFnQixDQUFDLGNBQWMsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQzFELE9BQU8sZ0JBQWdCLENBQUM7UUFDMUIsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDdkIsQ0FBQzsrR0FsQ1UsY0FBYzttSEFBZCxjQUFjOzs0RkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRmFjaWxpdHlScGNTZXJ2aWNlUHJveHksIFJldmVudWVEdG8gfSBmcm9tICcuLi9zZXJ2aWNlLXByb3h5L3JwYy1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgTnVtYmVyTWFwIH0gZnJvbSAnLi4vdXRpbHMvbGFuZy51dGlsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJldmVudWVTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZhY2lsaXR5UnBjU2VydmljZVByb3h5OiBGYWNpbGl0eVJwY1NlcnZpY2VQcm94eSkgeyB9XG5cbiAgZ2V0UmV2ZW51ZShwYXJrSWQ6IG51bWJlciwgZ3VpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxOdW1iZXJNYXA8UmV2ZW51ZUR0bz4+IHtcbiAgICBjb25zdCByZXZlbnVlcyQgPSB0aGlzLmZhY2lsaXR5UnBjU2VydmljZVByb3h5LmdldFJldmVudWVzKGd1aWQsIHBhcmtJZCk7XG4gICAgcmV0dXJuIHJldmVudWVzJC5waXBlKG1hcChyZXZlbnVlRHRvcyA9PiB7XG4gICAgICBjb25zdCByZXZlbnVlczogTnVtYmVyTWFwPFJldmVudWVEdG8+ID0gcmV2ZW51ZUR0b3MuZGF0YS5yZWR1Y2UoKGFsbHJldmVudWVzLCByZXZlbnVlKSA9PiB7XG4gICAgICAgIGFsbHJldmVudWVzW3JldmVudWUucGFya0lEXSA9IHJldmVudWU7XG4gICAgICAgIHJldHVybiBhbGxyZXZlbnVlcztcbiAgICAgIH0sIHt9KTtcblxuICAgICAgcmV0dXJuIHJldmVudWVzO1xuICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBjYWxjdWxhdGVSZXZlbnVlRm9yTXVsdGlQYXJrKHJldmVudWVzOiBOdW1iZXJNYXA8UmV2ZW51ZUR0bz4pOiBSZXZlbnVlRHRvIHtcbiAgICBjb25zdCBzdXBlclBhcmtSZXZlbnVlID0gbmV3IFJldmVudWVEdG8oKTtcbiAgICBzdXBlclBhcmtSZXZlbnVlLmNhc2ggPSAwXG4gICAgc3VwZXJQYXJrUmV2ZW51ZS5jYXNoQ2FuY2VsbGVkID0gMFxuICAgIHN1cGVyUGFya1JldmVudWUuY3JlZGl0ID0gMFxuICAgIHN1cGVyUGFya1JldmVudWUuY3JlZGl0Q2FuY2VsbGVkID0gMFxuICAgIHN1cGVyUGFya1JldmVudWUuZGViaXQgPSAwXG4gICAgc3VwZXJQYXJrUmV2ZW51ZS5kZWJpdENhbmNlbGxlZCA9IDBcblxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHJldmVudWVzKS5yZWR1Y2UoKHN1cGVyUGFya1JldmVudWU6IFJldmVudWVEdG8sIHJldmVudWU6IFJldmVudWVEdG8pID0+IHtcbiAgICAgIHN1cGVyUGFya1JldmVudWUuY2FzaCArPSByZXZlbnVlLmNhc2g7XG4gICAgICBzdXBlclBhcmtSZXZlbnVlLmNhc2hDYW5jZWxsZWQgKz0gcmV2ZW51ZS5jYXNoQ2FuY2VsbGVkO1xuICAgICAgc3VwZXJQYXJrUmV2ZW51ZS5jcmVkaXQgKz0gcmV2ZW51ZS5jcmVkaXQ7XG4gICAgICBzdXBlclBhcmtSZXZlbnVlLmNyZWRpdENhbmNlbGxlZCArPSByZXZlbnVlLmNyZWRpdENhbmNlbGxlZDtcbiAgICAgIHN1cGVyUGFya1JldmVudWUuZGViaXQgKz0gcmV2ZW51ZS5kZWJpdDtcbiAgICAgIHN1cGVyUGFya1JldmVudWUuZGViaXRDYW5jZWxsZWQgKz0gcmV2ZW51ZS5kZWJpdENhbmNlbGxlZDtcbiAgICAgIHJldHVybiBzdXBlclBhcmtSZXZlbnVlO1xuICAgIH0sIHN1cGVyUGFya1JldmVudWUpO1xuICB9XG59XG4iXX0=
@@ -4,7 +4,7 @@ import { delay, map, startWith, tap } from 'rxjs/operators';
4
4
  import { RestartLinkComponent } from '../components';
5
5
  import { ONE_SECOND_IN_MILLISECONDS } from '../constants/global-constants';
6
6
  import { ClearFacilityDictionaryAction, SetSmartparkBasicAllAction } from '../modules/facility/facility.actions';
7
- import { ClearSmartparksBasicAction, SetSmartParkTableAction } from '../modules/smartparks/smartpark.actions';
7
+ import { ClearSmartparksBasicAction, SetSmartParkTableAction, SetSmartParkVersionsAction } from '../modules/smartparks/smartpark.actions';
8
8
  import { SmartparkState } from '../modules/smartparks/smartpark.state';
9
9
  import { HttpStatusCode } from '../service-proxy/identity-service-proxies';
10
10
  import * as i0 from "@angular/core";
@@ -39,6 +39,7 @@ export class SmartparkService {
39
39
  const response = this.facilityIdentityServiceProxy.facilityAll(appModule);
40
40
  return response.pipe(tap(smartparkBasic => {
41
41
  if (setSmartparkBasic) {
42
+ this.store.dispatch(new SetSmartParkVersionsAction(this.extractSparkVersions(smartparkBasic.data.smartParks)));
42
43
  this.store.dispatch(new SetSmartparkBasicAllAction(smartparkBasic));
43
44
  }
44
45
  this.loading.next(false);
@@ -84,10 +85,17 @@ export class SmartparkService {
84
85
  }
85
86
  return loadingOverlayOptions;
86
87
  }
88
+ extractSparkVersions(smartparks) {
89
+ const versions = {};
90
+ for (const guid of Object.keys(smartparks)) {
91
+ versions[guid] = smartparks[guid].sparkVersion;
92
+ }
93
+ return versions;
94
+ }
87
95
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SmartparkService, deps: [{ token: i1.Store }, { token: i2.FacilityIdentityServiceProxy }, { token: i3.ActionStatusService }, { token: i4.MessageBarService }], target: i0.ɵɵFactoryTarget.Injectable }); }
88
96
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SmartparkService }); }
89
97
  }
90
98
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SmartparkService, decorators: [{
91
99
  type: Injectable
92
100
  }], ctorParameters: () => [{ type: i1.Store }, { type: i2.FacilityIdentityServiceProxy }, { type: i3.ActionStatusService }, { type: i4.MessageBarService }] });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRwYXJrLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL3NlcnZpY2VzL3NtYXJ0cGFyay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQWtDLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUV2RSxPQUFPLEVBQWdDLGNBQWMsRUFBdUMsTUFBTSwyQ0FBMkMsQ0FBQzs7Ozs7O0FBSTlJLE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUtELFlBQW9CLEtBQVksRUFDdEIsNEJBQTBELEVBQzFELG1CQUF3QyxFQUN4QyxpQkFBb0M7UUFIMUIsVUFBSyxHQUFMLEtBQUssQ0FBTztR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LElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO2dCQUNyRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDO2FBQ3BELENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxhQUFhLENBQUMsRUFBRSxFQUFFLENBQUMsaUJBQWlCLElBQUksYUFBYSxDQUFDLEVBQy9FLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FDaEIsQ0FDRixDQUFDO1FBQ0osT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxPQUFrQztRQUN2RCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVPLDJCQUEyQixDQUFDLFFBQTZCLEVBQUUsU0FBOEIsRUFBRSxhQUFxQjtRQUN0SCxNQUFNLHFCQUFxQixHQUEwQjtZQUNuRCxRQUFRO1lBQ1IsU0FBUztTQUNWLENBQUM7UUFFRixJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2xCLHFCQUFxQixDQUFDLG1CQUFtQixHQUFHLEVBQUUsYUFBYSxFQUFFLENBQUM7UUFDaEUsQ0FBQztRQUVELE9BQU8scUJBQXFCLENBQUM7SUFDL0IsQ0FBQzsrR0E5RlUsZ0JBQWdCO21IQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb25UeXBlLCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY2F0Y2hFcnJvciwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVsYXksIG1hcCwgc3RhcnRXaXRoLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNZXNzYWdlQmFyU2VydmljZSwgTWVzc2FnZUluZm8sIFJlc3RhcnRMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBPTkVfU0VDT05EX0lOX01JTExJU0VDT05EUyB9IGZyb20gJy4uL2NvbnN0YW50cy9nbG9iYWwtY29uc3RhbnRzJztcbmltcG9ydCB7IExvYWRpbmdPdmVybGF5T3B0aW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMvbG9hZGluZy1vdmVybGF5LW9wdGlvbnMnO1xuaW1wb3J0IHsgQ2xlYXJGYWNpbGl0eURpY3Rpb25hcnlBY3Rpb24sIFNldFNtYXJ0cGFya0Jhc2ljQWxsQWN0aW9uIH0gZnJvbSAnLi4vbW9kdWxlcy9mYWNpbGl0eS9mYWNpbGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IENsZWFyU21hcnRwYXJrc0Jhc2ljQWN0aW9uLCBTZXRTbWFydFBhcmtUYWJsZUFjdGlvbiB9IGZyb20gJy4uL21vZHVsZXMvc21hcnRwYXJrcy9zbWFydHBhcmsuYWN0aW9ucyc7XG5pbXBvcnQgeyBTbWFydHBhcmtTdGF0ZSB9IGZyb20gJy4uL21vZHVsZXMvc21hcnRwYXJrcy9zbWFydHBhcmsuc3RhdGUnO1xuaW1wb3J0IHsgQXBwTW9kdWxlIH0gZnJvbSAnLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgRmFjaWxpdHlJZGVudGl0eVNlcnZpY2VQcm94eSwgSHR0cFN0YXR1c0NvZGUsIFNtYXJ0UGFya1dyYXBwZXJEdG9IdHRwUmVzcG9uc2VEYXRhIH0gZnJvbSAnLi4vc2VydmljZS1wcm94eS9pZGVudGl0eS1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgQWN0aW9uU3RhdHVzU2VydmljZSB9IGZyb20gJy4uL3V0aWxzL25neHMvYWN0aW9uLXN0YXR1cy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNtYXJ0cGFya1NlcnZpY2Uge1xuXG4gIGdldCBsb2FkaW5nJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGhhc0Vycm9yJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5oYXNFcnJvci5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZGluZzogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHByaXZhdGUgaGFzRXJyb3I6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgZmFjaWxpdHlJZGVudGl0eVNlcnZpY2VQcm94eTogRmFjaWxpdHlJZGVudGl0eVNlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIGFjdGlvblN0YXR1c1NlcnZpY2U6IEFjdGlvblN0YXR1c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZXNzYWdlQmFyU2VydmljZTogTWVzc2FnZUJhclNlcnZpY2UpIHtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTbWFydHBhcmtCYXNpY0FsbChhcHBNb2R1bGU6IEFwcE1vZHVsZSwgc2V0U21hcnRwYXJrQmFzaWMgPSB0cnVlKTogT2JzZXJ2YWJsZTxTbWFydFBhcmtXcmFwcGVyRHRvSHR0cFJlc3BvbnNlRGF0YT4ge1xuICAgIHRoaXMuaGFzRXJyb3IubmV4dChmYWxzZSk7XG4gICAgdGhpcy5sb2FkaW5nLm5leHQodHJ1ZSk7XG5cbiAgICBpZiAoc2V0U21hcnRwYXJrQmFzaWMpIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNldFNtYXJ0UGFya1RhYmxlQWN0aW9uKG51bGwpKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IENsZWFyU21hcnRwYXJrc0Jhc2ljQWN0aW9uKCkpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgQ2xlYXJGYWNpbGl0eURpY3Rpb25hcnlBY3Rpb24oKSk7XG4gICAgfVxuXG4gICAgLy8gdGhlIHN1Yk1vZHVsZSBzZW50IGluIHRoZSBoZWFkZXIgYnkgdGhlIENsb3VkQXV0aFRva2VuSW50ZXJjZXB0b3JcbiAgICBjb25zdCByZXNwb25zZTogT2JzZXJ2YWJsZTxTbWFydFBhcmtXcmFwcGVyRHRvSHR0cFJlc3BvbnNlRGF0YT4gPSB0aGlzLmZhY2lsaXR5SWRlbnRpdHlTZXJ2aWNlUHJveHkuZmFjaWxpdHlBbGwoYXBwTW9kdWxlKTtcbiAgICByZXR1cm4gcmVzcG9uc2UucGlwZShcbiAgICAgIHRhcChzbWFydHBhcmtCYXNpYyA9PiB7XG4gICAgICAgIGlmIChzZXRTbWFydHBhcmtCYXNpYykge1xuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNldFNtYXJ0cGFya0Jhc2ljQWxsQWN0aW9uKHNtYXJ0cGFya0Jhc2ljKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2FkaW5nLm5leHQoZmFsc2UpO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKGUgPT4ge1xuICAgICAgICB0aGlzLmhhc0Vycm9yLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMubG9hZGluZy5uZXh0KGZhbHNlKTtcblxuICAgICAgICBpZiAoZS5zdGF0dXMgIT09IEh0dHBTdGF0dXNDb2RlLlJlcXVlc3RUaW1lb3V0KSB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZUluZm86IE1lc3NhZ2VJbmZvID0ge1xuICAgICAgICAgICAgZHVyYXRpb246IE9ORV9TRUNPTkRfSU5fTUlMTElTRUNPTkRTICogMTUsXG4gICAgICAgICAgICBhY3Rpb246IHtcbiAgICAgICAgICAgICAgY29tcG9uZW50OiBSZXN0YXJ0TGlua0NvbXBvbmVudFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2Uud2FybihcIlwiLCBtZXNzYWdlSW5mbyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBlO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldExvYWRpbmdPdmVybGF5T3B0aW9ucyhhY3Rpb25zOiBBY3Rpb25UeXBlIHwgQWN0aW9uVHlwZVtdLCBub0RhdGFNZXNzYWdlOiBzdHJpbmcgPSBudWxsKTogTG9hZGluZ092ZXJsYXlPcHRpb25zIHtcbiAgICBjb25zdCBsb2FkaW5nJCA9IHRoaXMuZ2V0TG9hZGluZ1N0cmVhbShhY3Rpb25zKTtcbiAgICBjb25zdCBoYXNFcnJvciQgPSB0aGlzLmdldEVycm9yU3RyZWFtKGFjdGlvbnMpO1xuXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlTG9hZGluZ092ZXJsYXlPcHRpb25zKGxvYWRpbmckLCBoYXNFcnJvciQsIG5vRGF0YU1lc3NhZ2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRMb2FkaW5nU3RyZWFtKGFjdGlvbnM6IEFjdGlvblR5cGUgfCBBY3Rpb25UeXBlW10pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBpc1NtYXJ0cGFya0RhdGFMb2FkZWQgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNtYXJ0cGFya1N0YXRlLnNtYXJ0cGFya3MpICE9PSBudWxsO1xuICAgIGNvbnN0IHJlc3BvbnNlJCA9IGlzU21hcnRwYXJrRGF0YUxvYWRlZCA/IHRoaXMuYWN0aW9uU3RhdHVzU2VydmljZS5hY3Rpb25zRXhlY3V0aW5nJChhY3Rpb25zKSA6XG4gICAgICAoXG4gICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgIHRoaXMubG9hZGluZyQucGlwZShkZWxheShPTkVfU0VDT05EX0lOX01JTExJU0VDT05EUykpLFxuICAgICAgICAgIHRoaXMuYWN0aW9uU3RhdHVzU2VydmljZS5hY3Rpb25zRXhlY3V0aW5nJChhY3Rpb25zKVxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgIG1hcCgoW3NtYXJ0cGFya3NMb2FkaW5nLCBhY3Rpb25Mb2FkaW5nXSkgPT4gc21hcnRwYXJrc0xvYWRpbmcgfHwgYWN0aW9uTG9hZGluZyksXG4gICAgICAgICAgc3RhcnRXaXRoKHRydWUpXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgcmV0dXJuIHJlc3BvbnNlJDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXJyb3JTdHJlYW0oYWN0aW9uczogQWN0aW9uVHlwZSB8IEFjdGlvblR5cGVbXSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmFjdGlvblN0YXR1c1NlcnZpY2UuYWN0aW9uc0Vycm9yZWQkKGFjdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVMb2FkaW5nT3ZlcmxheU9wdGlvbnMobG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4sIGhhc0Vycm9yJDogT2JzZXJ2YWJsZTxib29sZWFuPiwgbm9EYXRhTWVzc2FnZTogc3RyaW5nKTogTG9hZGluZ092ZXJsYXlPcHRpb25zIHtcbiAgICBjb25zdCBsb2FkaW5nT3ZlcmxheU9wdGlvbnM6IExvYWRpbmdPdmVybGF5T3B0aW9ucyA9IHtcbiAgICAgIGxvYWRpbmckLFxuICAgICAgaGFzRXJyb3IkLFxuICAgIH07XG5cbiAgICBpZiAobm9EYXRhTWVzc2FnZSkge1xuICAgICAgbG9hZGluZ092ZXJsYXlPcHRpb25zLmVtcHR5UmVzdWx0c09wdGlvbnMgPSB7IG5vRGF0YU1lc3NhZ2UgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbG9hZGluZ092ZXJsYXlPcHRpb25zO1xuICB9XG59XG4iXX0=
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRwYXJrLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL3NlcnZpY2VzL3NtYXJ0cGFyay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQWtDLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSx1QkFBdUIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzFJLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUV2RSxPQUFPLEVBQWdDLGNBQWMsRUFBMEQsTUFBTSwyQ0FBMkMsQ0FBQzs7Ozs7O0FBS2pLLE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUtELFlBQW9CLEtBQVksRUFDdEIsNEJBQTBELEVBQzFELG1CQUF3QyxFQUN4QyxpQkFBb0M7UUFIMUIsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUN0QixpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQThCO1FBQzFELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQU50QyxZQUFPLEdBQTZCLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9ELGFBQVEsR0FBNkIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFNeEUsQ0FBQztJQUVNLG9CQUFvQixDQUFDLFNBQW9CLEVBQUUsaUJBQWlCLEdBQUcsSUFBSTtRQUN4RSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV4QixJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksMEJBQTBCLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksNkJBQTZCLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFFRCxvRUFBb0U7UUFDcEUsTUFBTSxRQUFRLEdBQW9ELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0gsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUNsQixHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDbkIsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLDBCQUEwQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDL0csSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSwwQkFBMEIsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQ3RFLENBQUM7WUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUV6QixJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssY0FBYyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUMvQyxNQUFNLFdBQVcsR0FBZ0I7b0JBQy9CLFFBQVEsRUFBRSwwQkFBMEIsR0FBRyxFQUFFO29CQUN6QyxNQUFNLEVBQUU7d0JBQ04sU0FBUyxFQUFFLG9CQUFvQjtxQkFDaEM7aUJBQ0YsQ0FBQztnQkFDRixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUMvQyxDQUFDO1lBRUQsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVNLHdCQUF3QixDQUFDLE9BQWtDLEVBQUUsZ0JBQXdCLElBQUk7UUFDOUYsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFL0MsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsT0FBa0M7UUFDekQsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxDQUFDO1FBQzVGLE1BQU0sU0FBUyxHQUFHLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUM3RixDQUNFLGFBQWEsQ0FBQztnQkFDWixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztnQkFDckQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQzthQUNwRCxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsYUFBYSxDQUFDLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixJQUFJLGFBQWEsQ0FBQyxFQUMvRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQ2hCLENBQ0YsQ0FBQztRQUNKLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTyxjQUFjLENBQUMsT0FBa0M7UUFDdkQsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTywyQkFBMkIsQ0FBQyxRQUE2QixFQUFFLFNBQThCLEVBQUUsYUFBcUI7UUFDdEgsTUFBTSxxQkFBcUIsR0FBMEI7WUFDbkQsUUFBUTtZQUNSLFNBQVM7U0FDVixDQUFDO1FBRUYsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixxQkFBcUIsQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLGFBQWEsRUFBRSxDQUFDO1FBQ2hFLENBQUM7UUFFRCxPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxVQUF3QztRQUNuRSxNQUFNLFFBQVEsR0FBc0IsRUFBRSxDQUFDO1FBRXZDLEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzNDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDO1FBQ2pELENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOytHQXpHVSxnQkFBZ0I7bUhBQWhCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvblR5cGUsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjYXRjaEVycm9yLCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSwgbWFwLCBzdGFydFdpdGgsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1lc3NhZ2VCYXJTZXJ2aWNlLCBNZXNzYWdlSW5mbywgUmVzdGFydExpbmtDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzJztcbmltcG9ydCB7IE9ORV9TRUNPTkRfSU5fTUlMTElTRUNPTkRTIH0gZnJvbSAnLi4vY29uc3RhbnRzL2dsb2JhbC1jb25zdGFudHMnO1xuaW1wb3J0IHsgTG9hZGluZ092ZXJsYXlPcHRpb25zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9sb2FkaW5nLW92ZXJsYXktb3B0aW9ucyc7XG5pbXBvcnQgeyBDbGVhckZhY2lsaXR5RGljdGlvbmFyeUFjdGlvbiwgU2V0U21hcnRwYXJrQmFzaWNBbGxBY3Rpb24gfSBmcm9tICcuLi9tb2R1bGVzL2ZhY2lsaXR5L2ZhY2lsaXR5LmFjdGlvbnMnO1xuaW1wb3J0IHsgQ2xlYXJTbWFydHBhcmtzQmFzaWNBY3Rpb24sIFNldFNtYXJ0UGFya1RhYmxlQWN0aW9uLCBTZXRTbWFydFBhcmtWZXJzaW9uc0FjdGlvbiB9IGZyb20gJy4uL21vZHVsZXMvc21hcnRwYXJrcy9zbWFydHBhcmsuYWN0aW9ucyc7XG5pbXBvcnQgeyBTbWFydHBhcmtTdGF0ZSB9IGZyb20gJy4uL21vZHVsZXMvc21hcnRwYXJrcy9zbWFydHBhcmsuc3RhdGUnO1xuaW1wb3J0IHsgQXBwTW9kdWxlIH0gZnJvbSAnLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgRmFjaWxpdHlJZGVudGl0eVNlcnZpY2VQcm94eSwgSHR0cFN0YXR1c0NvZGUsIFNtYXJ0cGFya0Jhc2ljRHRvLCBTbWFydFBhcmtXcmFwcGVyRHRvSHR0cFJlc3BvbnNlRGF0YSB9IGZyb20gJy4uL3NlcnZpY2UtcHJveHkvaWRlbnRpdHktc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IFN0cmluZ01hcCB9IGZyb20gJy4uL3V0aWxzL2xhbmcudXRpbCc7XG5pbXBvcnQgeyBBY3Rpb25TdGF0dXNTZXJ2aWNlIH0gZnJvbSAnLi4vdXRpbHMvbmd4cy9hY3Rpb24tc3RhdHVzLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU21hcnRwYXJrU2VydmljZSB7XG5cbiAgZ2V0IGxvYWRpbmckKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmxvYWRpbmcuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgaGFzRXJyb3IkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmhhc0Vycm9yLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkaW5nOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHJpdmF0ZSBoYXNFcnJvcjogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBmYWNpbGl0eUlkZW50aXR5U2VydmljZVByb3h5OiBGYWNpbGl0eUlkZW50aXR5U2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgYWN0aW9uU3RhdHVzU2VydmljZTogQWN0aW9uU3RhdHVzU2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VCYXJTZXJ2aWNlOiBNZXNzYWdlQmFyU2VydmljZSkge1xuICB9XG5cbiAgcHVibGljIGdldFNtYXJ0cGFya0Jhc2ljQWxsKGFwcE1vZHVsZTogQXBwTW9kdWxlLCBzZXRTbWFydHBhcmtCYXNpYyA9IHRydWUpOiBPYnNlcnZhYmxlPFNtYXJ0UGFya1dyYXBwZXJEdG9IdHRwUmVzcG9uc2VEYXRhPiB7XG4gICAgdGhpcy5oYXNFcnJvci5uZXh0KGZhbHNlKTtcbiAgICB0aGlzLmxvYWRpbmcubmV4dCh0cnVlKTtcblxuICAgIGlmIChzZXRTbWFydHBhcmtCYXNpYykge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0U21hcnRQYXJrVGFibGVBY3Rpb24obnVsbCkpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgQ2xlYXJTbWFydHBhcmtzQmFzaWNBY3Rpb24oKSk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBDbGVhckZhY2lsaXR5RGljdGlvbmFyeUFjdGlvbigpKTtcbiAgICB9XG5cbiAgICAvLyB0aGUgc3ViTW9kdWxlIHNlbnQgaW4gdGhlIGhlYWRlciBieSB0aGUgQ2xvdWRBdXRoVG9rZW5JbnRlcmNlcHRvclxuICAgIGNvbnN0IHJlc3BvbnNlOiBPYnNlcnZhYmxlPFNtYXJ0UGFya1dyYXBwZXJEdG9IdHRwUmVzcG9uc2VEYXRhPiA9IHRoaXMuZmFjaWxpdHlJZGVudGl0eVNlcnZpY2VQcm94eS5mYWNpbGl0eUFsbChhcHBNb2R1bGUpO1xuICAgIHJldHVybiByZXNwb25zZS5waXBlKFxuICAgICAgdGFwKHNtYXJ0cGFya0Jhc2ljID0+IHtcbiAgICAgICAgaWYgKHNldFNtYXJ0cGFya0Jhc2ljKSB7XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0U21hcnRQYXJrVmVyc2lvbnNBY3Rpb24odGhpcy5leHRyYWN0U3BhcmtWZXJzaW9ucyhzbWFydHBhcmtCYXNpYy5kYXRhLnNtYXJ0UGFya3MpKSk7XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0U21hcnRwYXJrQmFzaWNBbGxBY3Rpb24oc21hcnRwYXJrQmFzaWMpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvYWRpbmcubmV4dChmYWxzZSk7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoZSA9PiB7XG4gICAgICAgIHRoaXMuaGFzRXJyb3IubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nLm5leHQoZmFsc2UpO1xuXG4gICAgICAgIGlmIChlLnN0YXR1cyAhPT0gSHR0cFN0YXR1c0NvZGUuUmVxdWVzdFRpbWVvdXQpIHtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlSW5mbzogTWVzc2FnZUluZm8gPSB7XG4gICAgICAgICAgICBkdXJhdGlvbjogT05FX1NFQ09ORF9JTl9NSUxMSVNFQ09ORFMgKiAxNSxcbiAgICAgICAgICAgIGFjdGlvbjoge1xuICAgICAgICAgICAgICBjb21wb25lbnQ6IFJlc3RhcnRMaW5rQ29tcG9uZW50XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS53YXJuKFwiXCIsIG1lc3NhZ2VJbmZvKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IGU7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TG9hZGluZ092ZXJsYXlPcHRpb25zKGFjdGlvbnM6IEFjdGlvblR5cGUgfCBBY3Rpb25UeXBlW10sIG5vRGF0YU1lc3NhZ2U6IHN0cmluZyA9IG51bGwpOiBMb2FkaW5nT3ZlcmxheU9wdGlvbnMge1xuICAgIGNvbnN0IGxvYWRpbmckID0gdGhpcy5nZXRMb2FkaW5nU3RyZWFtKGFjdGlvbnMpO1xuICAgIGNvbnN0IGhhc0Vycm9yJCA9IHRoaXMuZ2V0RXJyb3JTdHJlYW0oYWN0aW9ucyk7XG5cbiAgICByZXR1cm4gdGhpcy5jcmVhdGVMb2FkaW5nT3ZlcmxheU9wdGlvbnMobG9hZGluZyQsIGhhc0Vycm9yJCwgbm9EYXRhTWVzc2FnZSk7XG4gIH1cblxuICBwcml2YXRlIGdldExvYWRpbmdTdHJlYW0oYWN0aW9uczogQWN0aW9uVHlwZSB8IEFjdGlvblR5cGVbXSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGlzU21hcnRwYXJrRGF0YUxvYWRlZCA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoU21hcnRwYXJrU3RhdGUuc21hcnRwYXJrcykgIT09IG51bGw7XG4gICAgY29uc3QgcmVzcG9uc2UkID0gaXNTbWFydHBhcmtEYXRhTG9hZGVkID8gdGhpcy5hY3Rpb25TdGF0dXNTZXJ2aWNlLmFjdGlvbnNFeGVjdXRpbmckKGFjdGlvbnMpIDpcbiAgICAgIChcbiAgICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgdGhpcy5sb2FkaW5nJC5waXBlKGRlbGF5KE9ORV9TRUNPTkRfSU5fTUlMTElTRUNPTkRTKSksXG4gICAgICAgICAgdGhpcy5hY3Rpb25TdGF0dXNTZXJ2aWNlLmFjdGlvbnNFeGVjdXRpbmckKGFjdGlvbnMpXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgbWFwKChbc21hcnRwYXJrc0xvYWRpbmcsIGFjdGlvbkxvYWRpbmddKSA9PiBzbWFydHBhcmtzTG9hZGluZyB8fCBhY3Rpb25Mb2FkaW5nKSxcbiAgICAgICAgICBzdGFydFdpdGgodHJ1ZSlcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICByZXR1cm4gcmVzcG9uc2UkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFcnJvclN0cmVhbShhY3Rpb25zOiBBY3Rpb25UeXBlIHwgQWN0aW9uVHlwZVtdKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9uU3RhdHVzU2VydmljZS5hY3Rpb25zRXJyb3JlZCQoYWN0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUxvYWRpbmdPdmVybGF5T3B0aW9ucyhsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiwgaGFzRXJyb3IkOiBPYnNlcnZhYmxlPGJvb2xlYW4+LCBub0RhdGFNZXNzYWdlOiBzdHJpbmcpOiBMb2FkaW5nT3ZlcmxheU9wdGlvbnMge1xuICAgIGNvbnN0IGxvYWRpbmdPdmVybGF5T3B0aW9uczogTG9hZGluZ092ZXJsYXlPcHRpb25zID0ge1xuICAgICAgbG9hZGluZyQsXG4gICAgICBoYXNFcnJvciQsXG4gICAgfTtcblxuICAgIGlmIChub0RhdGFNZXNzYWdlKSB7XG4gICAgICBsb2FkaW5nT3ZlcmxheU9wdGlvbnMuZW1wdHlSZXN1bHRzT3B0aW9ucyA9IHsgbm9EYXRhTWVzc2FnZSB9O1xuICAgIH1cblxuICAgIHJldHVybiBsb2FkaW5nT3ZlcmxheU9wdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RTcGFya1ZlcnNpb25zKHNtYXJ0cGFya3M6IFN0cmluZ01hcDxTbWFydHBhcmtCYXNpY0R0bz4pOiBTdHJpbmdNYXA8c3RyaW5nPiB7XG4gICAgY29uc3QgdmVyc2lvbnM6IFN0cmluZ01hcDxzdHJpbmc+ID0ge307XG5cbiAgICBmb3IgKGNvbnN0IGd1aWQgb2YgT2JqZWN0LmtleXMoc21hcnRwYXJrcykpIHtcbiAgICAgIHZlcnNpb25zW2d1aWRdID0gc21hcnRwYXJrc1tndWlkXS5zcGFya1ZlcnNpb247XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcnNpb25zO1xuICB9XG59XG4iXX0=