@sabstravtech/obtservices 0.0.22050309 → 0.0.22051001
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/angular/fetchers.d.ts +4 -0
- package/angular/lib/vendor/fetchers/get-cancellation-info.fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/get-irl-supplier-station.fetcher.d.ts +7 -0
- package/angular/lib/vendor/services/enterprise-basket.service.d.ts +4 -3
- package/angular/lib/vendor/services/search.service.d.ts +4 -3
- package/angular/lib/vendor/services/ticket-queue.service.d.ts +6 -0
- package/angular/lib/vendor/types/graphql.angular.types.d.ts +96 -15
- package/angular/sabstravtech-obtservices-angular.d.ts +0 -1
- package/angular/sabstravtech-obtservices-angular.metadata.json +1 -1
- package/angular/services.d.ts +1 -0
- package/base/fetchers.d.ts +4 -0
- package/base/interfaces.d.ts +2 -0
- package/base/lib/vendor/classes/cabhire-enterprise-search.d.ts +2 -1
- package/base/lib/vendor/classes/carhire-enterprise-search.d.ts +1 -0
- package/base/lib/vendor/classes/eurostar-enterprise-search.d.ts +2 -1
- package/base/lib/vendor/classes/fast-track-enterprise-search.d.ts +16 -11
- package/base/lib/vendor/classes/flight-enterprise-search.d.ts +2 -1
- package/base/lib/vendor/classes/hotel-enterprise-search.d.ts +2 -1
- package/base/lib/vendor/classes/irl-enterprise-search.d.ts +20 -6
- package/base/lib/vendor/classes/lounges-enterprise-search.d.ts +1 -0
- package/base/lib/vendor/classes/management-info-and-valid.d.ts +6 -1
- package/base/lib/vendor/classes/modal-types.enum.d.ts +1 -0
- package/base/lib/vendor/classes/parking-enterprise-search.d.ts +1 -0
- package/base/lib/vendor/classes/rail-enterprise-search.d.ts +3 -2
- package/base/lib/vendor/fetchers/fast-track-quote.fetcher.d.ts +1 -1
- package/base/lib/vendor/fetchers/get-cancellation-info.fetcher.d.ts +20 -0
- package/base/lib/vendor/fetchers/get-irl-supplier-station.fetcher.d.ts +21 -0
- package/base/lib/vendor/interfaces/Icabhire-enterprise-search.d.ts +1 -0
- package/base/lib/vendor/interfaces/Icarhire-enterprise-search.d.ts +1 -0
- package/base/lib/vendor/interfaces/Ienterprise-basket.service.d.ts +6 -3
- package/base/lib/vendor/interfaces/Ieurostar-enterprise-search.d.ts +1 -0
- package/base/lib/vendor/interfaces/Ifast-track-enterprise-search.d.ts +5 -1
- package/base/lib/vendor/interfaces/Iflight-enterprise-search.d.ts +1 -0
- package/base/lib/vendor/interfaces/Ihotel-enterprise-search.d.ts +2 -0
- package/base/lib/vendor/interfaces/Iirl-enterprise-search.d.ts +8 -3
- package/base/lib/vendor/interfaces/Ilounges-enterprise-search.d.ts +1 -0
- package/base/lib/vendor/interfaces/Iparking-enterprise-search.d.ts +1 -0
- package/base/lib/vendor/interfaces/Irail-enterprise-search.d.ts +1 -0
- package/base/lib/vendor/interfaces/Iuser.service.d.ts +2 -1
- package/base/lib/vendor/interfaces/fast-track-filters.interface.d.ts +4 -0
- package/base/lib/vendor/interfaces/rail-basket-item.interface.d.ts +2 -0
- package/base/lib/vendor/interfaces/summary-interface.d.ts +2 -0
- package/base/lib/vendor/services/enterprise-basket.service.d.ts +13 -6
- package/base/lib/vendor/services/requires-reason.service.d.ts +20 -0
- package/base/lib/vendor/services/search.service.d.ts +5 -3
- package/base/lib/vendor/services/webtoken.service.d.ts +1 -0
- package/base/lib/vendor/types/graphql.types.d.ts +91 -15
- package/base/lib/vendor/types/types.d.ts +28 -15
- package/base/sabstravtech-obtservices-base.metadata.json +1 -1
- package/base/services.d.ts +1 -0
- package/bundles/sabstravtech-obtservices-angular.umd.js +175 -79
- package/bundles/sabstravtech-obtservices-angular.umd.js.map +1 -1
- package/bundles/sabstravtech-obtservices-angular.umd.min.js +1 -1
- package/bundles/sabstravtech-obtservices-angular.umd.min.js.map +1 -1
- package/bundles/sabstravtech-obtservices-base.umd.js +2511 -143
- package/bundles/sabstravtech-obtservices-base.umd.js.map +1 -1
- package/bundles/sabstravtech-obtservices-base.umd.min.js +2 -2
- package/bundles/sabstravtech-obtservices-base.umd.min.js.map +1 -1
- package/esm2015/angular/fetchers.js +5 -1
- package/esm2015/angular/lib/vendor/fetchers/get-cancellation-info.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/get-irl-supplier-station.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/services/enterprise-basket.service.js +8 -5
- package/esm2015/angular/lib/vendor/services/http-call.service.js +6 -2
- package/esm2015/angular/lib/vendor/services/search.service.js +28 -25
- package/esm2015/angular/lib/vendor/services/ticket-queue.service.js +23 -0
- package/esm2015/angular/lib/vendor/types/graphql.angular.types.js +62 -7
- package/esm2015/angular/obtservices.module.js +3 -1
- package/esm2015/angular/sabstravtech-obtservices-angular.js +1 -2
- package/esm2015/angular/services.js +2 -1
- package/esm2015/base/fetchers.js +5 -1
- package/esm2015/base/interfaces.js +3 -1
- package/esm2015/base/lib/vendor/classes/basket-info-mi-details.impl.js +4 -1
- package/esm2015/base/lib/vendor/classes/cabhire-enterprise-search.js +37 -5
- package/esm2015/base/lib/vendor/classes/carhire-enterprise-search.js +43 -12
- package/esm2015/base/lib/vendor/classes/eurostar-enterprise-search.js +35 -14
- package/esm2015/base/lib/vendor/classes/fast-track-enterprise-search.js +81 -14
- package/esm2015/base/lib/vendor/classes/flight-enterprise-search.js +44 -5
- package/esm2015/base/lib/vendor/classes/helpers.js +6 -2
- package/esm2015/base/lib/vendor/classes/hotel-enterprise-search.js +48 -14
- package/esm2015/base/lib/vendor/classes/irl-enterprise-search.js +197 -23
- package/esm2015/base/lib/vendor/classes/lounges-enterprise-search.js +22 -6
- package/esm2015/base/lib/vendor/classes/management-info-and-valid.js +1 -1
- package/esm2015/base/lib/vendor/classes/modal-types.enum.js +2 -1
- package/esm2015/base/lib/vendor/classes/parking-enterprise-search.js +27 -7
- package/esm2015/base/lib/vendor/classes/rail-enterprise-search.js +62 -13
- package/esm2015/base/lib/vendor/classes/supplementary-booking-info-impl.js +2 -2
- package/esm2015/base/lib/vendor/fetchers/fast-track-quote.fetcher.js +2 -2
- package/esm2015/base/lib/vendor/fetchers/get-cancellation-info.fetcher.js +10 -0
- package/esm2015/base/lib/vendor/fetchers/get-irl-supplier-station.fetcher.js +11 -0
- package/esm2015/base/lib/vendor/interfaces/Icabhire-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Icarhire-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Ienterprise-basket.service.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Ieurostar-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Ifast-track-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Iflight-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Ihotel-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Iirl-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Ilounges-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Iparking-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Irail-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Iuser.service.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/fast-track-filters.interface.js +2 -0
- package/esm2015/base/lib/vendor/interfaces/rail-basket-item.interface.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/summary-interface.js +1 -1
- package/esm2015/base/lib/vendor/services/enterprise-basket.service.js +63 -17
- package/esm2015/base/lib/vendor/services/hotel-avallibility.service.js +16 -12
- package/esm2015/base/lib/vendor/services/requires-reason.service.js +49 -0
- package/esm2015/base/lib/vendor/services/search.service.js +11 -5
- package/esm2015/base/lib/vendor/services/user.service.js +25 -4
- package/esm2015/base/lib/vendor/services/webtoken.service.js +9 -5
- package/esm2015/base/lib/vendor/types/graphql.types.js +9 -1
- package/esm2015/base/lib/vendor/types/types.js +1649 -8
- package/esm2015/base/services.js +2 -1
- package/fesm2015/sabstravtech-obtservices-angular.js +131 -17
- package/fesm2015/sabstravtech-obtservices-angular.js.map +1 -1
- package/fesm2015/sabstravtech-obtservices-base.js +2435 -149
- package/fesm2015/sabstravtech-obtservices-base.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BehaviorSubject } from 'rxjs';
|
|
2
|
-
import { map } from 'rxjs/operators';
|
|
2
|
+
import { map, take, tap } from 'rxjs/operators';
|
|
3
3
|
import { Suppliers } from '../classes/user-favourite.enum';
|
|
4
4
|
import { TravellerObject } from '../models/traveller.object';
|
|
5
5
|
import { BookerType } from '../types/graphql.types';
|
|
@@ -22,13 +22,24 @@ export class BaseUserService {
|
|
|
22
22
|
travllerObject: new BehaviorSubject(null),
|
|
23
23
|
userConfigs: new BehaviorSubject(null),
|
|
24
24
|
userData: new BehaviorSubject(null),
|
|
25
|
-
userServices: new BehaviorSubject(null)
|
|
25
|
+
userServices: new BehaviorSubject(null),
|
|
26
|
+
allDetails: new BehaviorSubject(null)
|
|
26
27
|
};
|
|
27
28
|
this.changeUser = new BehaviorSubject(null);
|
|
28
29
|
}
|
|
29
30
|
setUser(user_data) {
|
|
30
31
|
const userdata = this.fullUserDetails.userData.value;
|
|
31
32
|
if (!userdata || userdata.username !== user_data.username) {
|
|
33
|
+
if (userdata === null || userdata === void 0 ? void 0 : userdata.user_id) {
|
|
34
|
+
this.getUserFetcher.fetchOne({
|
|
35
|
+
id: userdata.user_id.toString()
|
|
36
|
+
})
|
|
37
|
+
.pipe(take(1))
|
|
38
|
+
.subscribe((user) => {
|
|
39
|
+
this.fullUserDetails.allDetails.next(user);
|
|
40
|
+
this.checkEmitUser();
|
|
41
|
+
});
|
|
42
|
+
}
|
|
32
43
|
this.userUiConfigsFetcher.fetchKeyedObject('key').subscribe((result1) => {
|
|
33
44
|
this.fullUserDetails.userConfigs.next(result1);
|
|
34
45
|
this.checkEmitUser();
|
|
@@ -49,6 +60,16 @@ export class BaseUserService {
|
|
|
49
60
|
});
|
|
50
61
|
this.fullUserDetails.travllerObject.next(TravellerObject.makeTravellerObjectFromUser(user_data));
|
|
51
62
|
}
|
|
63
|
+
if (user_data === null || user_data === void 0 ? void 0 : user_data.user_id) {
|
|
64
|
+
this.getUserFetcher.fetchOne({
|
|
65
|
+
id: user_data === null || user_data === void 0 ? void 0 : user_data.user_id.toString()
|
|
66
|
+
})
|
|
67
|
+
.pipe(take(1))
|
|
68
|
+
.subscribe((user) => {
|
|
69
|
+
this.fullUserDetails.allDetails.next(user);
|
|
70
|
+
this.checkEmitUser();
|
|
71
|
+
});
|
|
72
|
+
}
|
|
52
73
|
this.fullUserDetails.userData.next(user_data);
|
|
53
74
|
this.storageService.setSessionItem('lightning_user_data', user_data);
|
|
54
75
|
}
|
|
@@ -262,7 +283,7 @@ export class BaseUserService {
|
|
|
262
283
|
}));
|
|
263
284
|
}
|
|
264
285
|
editUser(user) {
|
|
265
|
-
return this.editUserUpdater.updateOne(user);
|
|
286
|
+
return this.editUserUpdater.updateOne(user).pipe(tap((user) => this.fullUserDetails.allDetails.next(user)));
|
|
266
287
|
}
|
|
267
288
|
}
|
|
268
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2J0c2VydmljZXMvYmFzZS9zcmMvbGliL3ZlbmRvci9zZXJ2aWNlcy91c2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLFNBQVMsRUFBa0IsTUFBTSxnQ0FBZ0MsQ0FBQztBQXVCM0UsT0FBTyxFQUFhLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hFLE9BQU8sRUFFTCxVQUFVLEVBT1gsTUFBTSx3QkFBd0IsQ0FBQztBQUdoQyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsZ0JBQWdCLENBQUM7QUFDL0MsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQztBQWM3QyxNQUFNLE9BQU8sZUFBZTtJQXVCMUIsWUFDVSxjQUF3QyxFQUN4QyxvQkFBb0QsRUFDcEQsbUJBQWtELEVBQ2xELG1CQUFrRCxFQUNsRCwwQkFBNkQsRUFDN0Qsc0JBQXlELEVBQ3pELGVBQTJDLEVBQzNDLGNBQWtDLEVBQ2xDLE9BQTJCO1FBUjNCLG1CQUFjLEdBQWQsY0FBYyxDQUEwQjtRQUN4Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQWdDO1FBQ3BELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBK0I7UUFDbEQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUErQjtRQUNsRCwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQW1DO1FBQzdELDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBbUM7UUFDekQsb0JBQWUsR0FBZixlQUFlLENBQTRCO1FBQzNDLG1CQUFjLEdBQWQsY0FBYyxDQUFvQjtRQUNsQyxZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQXRCOUIsb0JBQWUs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QUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQmFzZUhlbHBlclJvdXRpbmVzIH0gZnJvbSAnLi4vY2xhc3Nlcy9oZWxwZXJzJztcclxuXHJcbmltcG9ydCB7IFN1cHBsaWVycywgVXNlckZhdm9ydXJpdGUgfSBmcm9tICcuLi9jbGFzc2VzL3VzZXItZmF2b3VyaXRlLmVudW0nO1xyXG5pbXBvcnQge1xyXG4gIEJhc2VVc2VyTWVzc2FnZXNGZXRjaGVyLFxyXG4gIFVzZXJNZXNzYWdlRmV0Y2hlclR5cGVcclxufSBmcm9tICcuLi9mZXRjaGVycy91c2VyLW1lc3NhZ2UuZmV0Y2hlcic7XHJcbmltcG9ydCB7XHJcbiAgQmFzZVVzZXJQcm9kdWN0c0ZldGNoZXIsXHJcbiAgVXNlclByb2R1Y3RzRmV0Y2hlclR5cGVcclxufSBmcm9tICcuLi9mZXRjaGVycy91c2VyLXByb2R1Y3RzLWZldGNoZXInO1xyXG5pbXBvcnQge1xyXG4gIEJhc2VVc2VyVWlDb25maWdzRmV0Y2hlcixcclxuICBVc2VyVWlDb25maWdzRmV0Y2hlclR5cGVcclxufSBmcm9tICcuLi9mZXRjaGVycy91c2VyLXVpLWNvbmZpZ3MtZmV0Y2hlcic7XHJcbmltcG9ydCB7XHJcbiAgQmFzZUdldFVzZXJGZXRjaGVyLFxyXG4gIFNlYXJjaEdldFVzZXJGZXRjaGVyVHlwZVxyXG59IGZyb20gJy4uL2ZldGNoZXJzL3VzZXItZmV0Y2hlcic7XHJcbmltcG9ydCB7XHJcbiAgRnVsbFVzZXJEZXRhaWxzLFxyXG4gIFVzZXJTZXJ2aWNlSW50ZXJmYWNlLFxyXG4gIFVzZXJTZXJ2aWNlc1xyXG59IGZyb20gJy4uL2ludGVyZmFjZXMvSXVzZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFVzZXJEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy91c2VyLmRhdGEnO1xyXG5pbXBvcnQgeyBUcmF2ZWxsZXIsIFRyYXZlbGxlck9iamVjdCB9IGZyb20gJy4uL21vZGVscy90cmF2ZWxsZXIub2JqZWN0JztcclxuaW1wb3J0IHtcclxuICBEb2N1bWVudCxcclxuICBCb29rZXJUeXBlLFxyXG4gIE1lc3NhZ2UsXHJcbiAgTXV0YXRpb25FZGl0VXNlckFyZ3MsXHJcbiAgU2VydmljZSxcclxuICBTZXJ2aWNlVHlwZSxcclxuICBVc2VyLFxyXG4gIERvY1R5cGVcclxufSBmcm9tICcuLi90eXBlcy9ncmFwaHFsLnR5cGVzJztcclxuaW1wb3J0IHsgU2VydmljZVByb3ZpZGVyLCBVbnBhY2tlZCwgVXNlclVpQ29uZmlnc1Jlc3VsdCB9IGZyb20gJy4uL3R5cGVzL3R5cGVzJztcclxuaW1wb3J0IHsgQmFzZVN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yYWdlLnNlcnZpY2UnO1xyXG5leHBvcnQgY29uc3QgVVNFUl9TSUdORURPVVQgPSAnVVNFUl9TSUdORURPVVQnO1xyXG5leHBvcnQgY29uc3QgVVNFUl9TSUdORURJTiA9ICdVU0VSX1NJR05FRElOJztcclxuaW1wb3J0IHtcclxuICBCYXNlQ29uZmlybU1lc3NhZ2VzVXBkYXRlcixcclxuICBDb25maXJtTWVzc2FnZXNGZXRjaGVyVHlwZVxyXG59IGZyb20gJy4uL3VwZGF0ZXJzL2NvbmZpcm0tbWVzc2FnZXMtdXBkYXRlcic7XHJcbmltcG9ydCB7XHJcbiAgQmFzZVNldFVzZXJMYW5ndWFnZVVwZGF0ZXIsXHJcbiAgU2V0VXNlckxhbmd1YWdlRmV0Y2hlclR5cGVcclxufSBmcm9tICcuLi91cGRhdGVycy9zZXQtdXNlci1sYW5ndWFnZS11cGRhdGVyJztcclxuaW1wb3J0IHtcclxuICBCYXNlRWRpdFVzZXJVcGRhdGVyLFxyXG4gIEVkaXRVc2VyRmV0Y2hlclR5cGVcclxufSBmcm9tICcuLi91cGRhdGVycy9lZGl0LXVzZXItdXBkYXRlcic7XHJcblxyXG5leHBvcnQgY2xhc3MgQmFzZVVzZXJTZXJ2aWNlPFxyXG4gIEdVX1EgZXh0ZW5kcyBTZWFyY2hHZXRVc2VyRmV0Y2hlclR5cGUsXHJcbiAgVUNfUSBleHRlbmRzIFVzZXJVaUNvbmZpZ3NGZXRjaGVyVHlwZSxcclxuICBVU19RIGV4dGVuZHMgVXNlclByb2R1Y3RzRmV0Y2hlclR5cGUsXHJcbiAgVU1fUSBleHRlbmRzIFVzZXJNZXNzYWdlRmV0Y2hlclR5cGUsXHJcbiAgQ01VX1EgZXh0ZW5kcyBDb25maXJtTWVzc2FnZXNGZXRjaGVyVHlwZSxcclxuICBTTFVfUSBleHRlbmRzIFNldFVzZXJMYW5ndWFnZUZldGNoZXJUeXBlLFxyXG4gIEVVVV9RIGV4dGVuZHMgRWRpdFVzZXJGZXRjaGVyVHlwZVxyXG4+IGltcGxlbWVudHMgVXNlclNlcnZpY2VJbnRlcmZhY2Vcclxue1xyXG4gIHB1YmxpYyBmdWxsVXNlckRldGFpbHM6IEZ1bGxVc2VyRGV0YWlscyA9IHtcclxuICAgIGJvb2tpbmdBbGxvd2VkRm9yOiAnJyxcclxuICAgIG1lc3NhZ2VzOiBuZXcgQmVoYXZpb3JTdWJqZWN0PE1lc3NhZ2VbXT4obnVsbCksXHJcbiAgICB0cmF2bGxlck9iamVjdDogbmV3IEJlaGF2aW9yU3ViamVjdDxUcmF2ZWxsZXI+KG51bGwpLFxyXG4gICAgdXNlckNvbmZpZ3M6IG5ldyBCZWhhdmlvclN1YmplY3Q8e1xyXG4gICAgICBba2V5OiBzdHJpbmddOiBVbnBhY2tlZDxVc2VyVWlDb25maWdzUmVzdWx0PjtcclxuICAgIH0+KG51bGwpLFxyXG4gICAgdXNlckRhdGE6IG5ldyBCZWhhdmlvclN1YmplY3Q8VXNlckRhdGE+KG51bGwpLFxyXG4gICAgdXNlclNlcnZpY2VzOiBuZXcgQmVoYXZpb3JTdWJqZWN0PFVzZXJTZXJ2aWNlcz4obnVsbClcclxuICB9O1xyXG4gIGNoYW5nZVVzZXI6IEJlaGF2aW9yU3ViamVjdDxGdWxsVXNlckRldGFpbHM+ID1cclxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8RnVsbFVzZXJEZXRhaWxzPihudWxsKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGdldFVzZXJGZXRjaGVyOiBCYXNlR2V0VXNlckZldGNoZXI8R1VfUT4sXHJcbiAgICBwcml2YXRlIHVzZXJVaUNvbmZpZ3NGZXRjaGVyOiBCYXNlVXNlclVpQ29uZmlnc0ZldGNoZXI8VUNfUT4sXHJcbiAgICBwcml2YXRlIHVzZXJQcm9kdWN0c0ZldGNoZXI6IEJhc2VVc2VyUHJvZHVjdHNGZXRjaGVyPFVTX1E+LFxyXG4gICAgcHJpdmF0ZSB1c2VyTWVzc2FnZXNGZXRjaGVyOiBCYXNlVXNlck1lc3NhZ2VzRmV0Y2hlcjxVTV9RPixcclxuICAgIHByaXZhdGUgYmFzZUNvbmZpcm1NZXNzYWdlc1VwZGF0ZXI6IEJhc2VDb25maXJtTWVzc2FnZXNVcGRhdGVyPENNVV9RPixcclxuICAgIHByaXZhdGUgc2V0VXNlckxhbmd1YWdlVXBkYXRlcjogQmFzZVNldFVzZXJMYW5ndWFnZVVwZGF0ZXI8U0xVX1E+LFxyXG4gICAgcHJpdmF0ZSBlZGl0VXNlclVwZGF0ZXI6IEJhc2VFZGl0VXNlclVwZGF0ZXI8RVVVX1E+LFxyXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogQmFzZVN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBoZWxwZXJzOiBCYXNlSGVscGVyUm91dGluZXNcclxuICApIHt9XHJcblxyXG4gIHNldFVzZXIodXNlcl9kYXRhOiBVc2VyRGF0YSk6IHZvaWQge1xyXG4gICAgY29uc3QgdXNlcmRhdGEgPSB0aGlzLmZ1bGxVc2VyRGV0YWlscy51c2VyRGF0YS52YWx1ZTtcclxuICAgIGlmICghdXNlcmRhdGEgfHwgdXNlcmRhdGEudXNlcm5hbWUgIT09IHVzZXJfZGF0YS51c2VybmFtZSkge1xyXG4gICAgICB0aGlzLnVzZXJVaUNvbmZpZ3NGZXRjaGVyLmZldGNoS2V5ZWRPYmplY3QoJ2tleScpLnN1YnNjcmliZShcclxuICAgICAgICAocmVzdWx0MTogeyBba2V5OiBzdHJpbmddOiBVbnBhY2tlZDxVc2VyVWlDb25maWdzUmVzdWx0PiB9KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZ1bGxVc2VyRGV0YWlscy51c2VyQ29uZmlncy5uZXh0KHJlc3VsdDEpO1xyXG4gICAgICAgICAgdGhpcy5jaGVja0VtaXRVc2VyKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgICAgdGhpcy51c2VyUHJvZHVjdHNGZXRjaGVyXHJcbiAgICAgICAgLmZldGNoS2V5ZWRPYmplY3RBcnJheSgndHlwZScpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0MjogVXNlclNlcnZpY2VzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZ1bGxVc2VyRGV0YWlscy51c2VyU2VydmljZXMubmV4dChyZXN1bHQyKTtcclxuXHJcbiAgICAgICAgICB0aGlzLmNoZWNrRW1pdFVzZXIoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgdGhpcy51c2VyTWVzc2FnZXNGZXRjaGVyLmZldGNoTGlzdCgpLnN1YnNjcmliZShcclxuICAgICAgICAocmVzdWx0MzogTWVzc2FnZVtdKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZ1bGxVc2VyRGV0YWlscy5tZXNzYWdlcy5uZXh0KHJlc3VsdDMpO1xyXG4gICAgICAgICAgdGhpcy5jaGVja0VtaXRVc2VyKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuXHJcbiAgICAgIHRoaXMuZnVsbFVzZXJEZXRhaWxzLnRyYXZsbGVyT2JqZWN0Lm5leHQoXHJcbiAgICAgICAgVHJhdmVsbGVyT2JqZWN0Lm1ha2VUcmF2ZWxsZXJPYmplY3RGcm9tVXNlcih1c2VyX2RhdGEpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5mdWxsVXNlckRldGFpbHMudXNlckRhdGEubmV4dCh1c2VyX2RhdGEpO1xyXG5cclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0U2Vzc2lvbkl0ZW0oJ2xpZ2h0bmluZ191c2VyX2RhdGEnLCB1c2VyX2RhdGEpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tFbWl0VXNlcigpIHtcclxuICAgIGlmIChcclxuICAgICAgISF0aGlzLmZ1bGxVc2VyRGV0YWlscy51c2VyQ29uZmlncy52YWx1ZSAmJlxyXG4gICAgICAhIXRoaXMuZnVsbFVzZXJEZXRhaWxzLnVzZXJEYXRhLnZhbHVlICYmXHJcbiAgICAgICEhdGhpcy5mdWxsVXNlckRldGFpbHMudXNlclNlcnZpY2VzLnZhbHVlICYmXHJcbiAgICAgICEhdGhpcy5mdWxsVXNlckRldGFpbHMubWVzc2FnZXMudmFsdWVcclxuICAgICkge1xyXG4gICAgICB0aGlzLmNoYW5nZVVzZXIubmV4dCh0aGlzLmZ1bGxVc2VyRGV0YWlscyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRmdWxsVXNlckRldGFpbHMoYWRtaW46IGJvb2xlYW4gPSBmYWxzZSk6IEZ1bGxVc2VyRGV0YWlscyB8IG51bGwge1xyXG4gICAgaWYgKGFkbWluKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9nZXRGdWxsVXNlckRldGFpbHMoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fZ2V0RnVsbFVzZXJEZXRhaWxzKCk7XHJcbiAgICAvLyByZXR1cm4gdGhpcy5vbkJlaGFsZlVzZXIgfHwgdGhpcy5fZ2V0VXNlckRldGFpbHMoKTtcclxuICB9XHJcblxyXG4gIF9nZXRGdWxsVXNlckRldGFpbHMoKTogRnVsbFVzZXJEZXRhaWxzIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuZnVsbFVzZXJEZXRhaWxzIHx8XHJcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0U2Vzc2lvbkl0ZW0oJ2xpZ2h0bmluZ191c2VyX2RhdGEnKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFVzZXJEcm9wZG93bkluZm8oKToge1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG4gICAgZW1haWw6IHN0cmluZztcclxuICAgIGFjY291bnRfdHlwZTogQm9va2VyVHlwZSB8IHN0cmluZztcclxuICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgfSB7XHJcbiAgICBjb25zdCBkcm9wZG93bl9pbmZvID0ge1xyXG4gICAgICBuYW1lOiAnVW5hYmxlIHRvIHJldHJpZXZlIG5hbWUuJyxcclxuICAgICAgZW1haWw6ICdVbmFibGUgdG8gcmVyaWV2ZSBlbWFpbCcsXHJcbiAgICAgIGFjY291bnRfdHlwZTogJ1Vua25vd24nLFxyXG4gICAgICB0aXRsZTogJydcclxuICAgIH07XHJcbiAgICBjb25zdCBuYW1lID0gdGhpcy5nZXRVc2Vyc0Z1bGxuYW1lKCk7XHJcbiAgICBjb25zdCBlbWFpbCA9IHRoaXMuZ2V0VXNlckVtYWlsKCk7XHJcbiAgICBjb25zdCB0eXBlID0gdGhpcy5nZXRVc2VyQm9va2luZ1R5cGUoKTtcclxuICAgIGNvbnN0IHRpdGxlID0gdGhpcy5nZXRVc2VyVGl0bGUoKTtcclxuXHJcbiAgICBpZiAobmFtZSkge1xyXG4gICAgICBkcm9wZG93bl9pbmZvLm5hbWUgPSBuYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChlbWFpbCkge1xyXG4gICAgICBkcm9wZG93bl9pbmZvLmVtYWlsID0gZW1haWw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR5cGUpIHtcclxuICAgICAgZHJvcGRvd25faW5mby5hY2NvdW50X3R5cGUgPSB0eXBlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aXRsZSkge1xyXG4gICAgICBkcm9wZG93bl9pbmZvLnRpdGxlID0gdGl0bGU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRyb3Bkb3duX2luZm87XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyVGl0bGUoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHVzZXI6IEZ1bGxVc2VyRGV0YWlscyA9IHRoaXMuZ2V0ZnVsbFVzZXJEZXRhaWxzKCk7XHJcbiAgICByZXR1cm4gdXNlciAmJiB1c2VyLnVzZXJEYXRhID8gdXNlci51c2VyRGF0YS52YWx1ZS50aXRsZSA6ICcnO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlckZvcmVuYW1lKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB1c2VyOiBGdWxsVXNlckRldGFpbHMgPSB0aGlzLmdldGZ1bGxVc2VyRGV0YWlscygpO1xyXG4gICAgcmV0dXJuIHVzZXIgJiYgdXNlci51c2VyRGF0YSA/IHVzZXIudXNlckRhdGEudmFsdWUuZm9yZW5hbWUgOiAnJztcclxuICB9XHJcblxyXG4gIGdldFVzZXJTdXJuYW1lKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB1c2VyOiBGdWxsVXNlckRldGFpbHMgPSB0aGlzLmdldGZ1bGxVc2VyRGV0YWlscygpO1xyXG4gICAgcmV0dXJuIHVzZXIgJiYgdXNlci51c2VyRGF0YSA/IHVzZXIudXNlckRhdGEudmFsdWUuc3VybmFtZSA6ICcnO1xyXG4gIH1cclxuXHJcbiAgZ2V0RnVsbFBob25lTnVtYmVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyRW1haWwoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHVzZXI6IEZ1bGxVc2VyRGV0YWlscyA9IHRoaXMuZ2V0ZnVsbFVzZXJEZXRhaWxzKCk7XHJcbiAgICByZXR1cm4gdXNlciAmJiB1c2VyLnVzZXJEYXRhID8gdXNlci51c2VyRGF0YS52YWx1ZS51c2VybmFtZSA6ICcnO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlckJvb2tpbmdUeXBlKCk6IEJvb2tlclR5cGUge1xyXG4gICAgY29uc3QgdXNlcjogRnVsbFVzZXJEZXRhaWxzID0gdGhpcy5nZXRmdWxsVXNlckRldGFpbHMoKTtcclxuICAgIHJldHVybiB1c2VyICYmIHVzZXIudXNlckRhdGEgPyB1c2VyLnVzZXJEYXRhLnZhbHVlLmJvb2tlcl90eXBlIDogbnVsbDtcclxuICB9XHJcblxyXG4gIGdldFVzZXJzRnVsbG5hbWUoKTogc3RyaW5nIHwgZmFsc2Uge1xyXG4gICAgY29uc3QgdXNlcjogRnVsbFVzZXJEZXRhaWxzID0gdGhpcy5nZXRmdWxsVXNlckRldGFpbHMoKTtcclxuICAgIHJldHVybiB1c2VyICYmIHVzZXIudXNlckRhdGFcclxuICAgICAgPyB1c2VyLnVzZXJEYXRhLnZhbHVlLmZvcmVuYW1lICsgJyAnICsgdXNlci51c2VyRGF0YS52YWx1ZS5zdXJuYW1lXHJcbiAgICAgIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnZXRVc2Vyc1RpdGxlQW5kRnVsbE5hbWUoKTogc3RyaW5nIHwgZmFsc2Uge1xyXG4gICAgY29uc3QgdXNlcjogRnVsbFVzZXJEZXRhaWxzID0gdGhpcy5nZXRmdWxsVXNlckRldGFpbHMoKTtcclxuICAgIHJldHVybiB1c2VyICYmIHVzZXIudXNlckRhdGFcclxuICAgICAgPyB1c2VyLnVzZXJEYXRhLnZhbHVlLnRpdGxlICtcclxuICAgICAgICAgICcgJyArXHJcbiAgICAgICAgICB1c2VyLnVzZXJEYXRhLnZhbHVlLmZvcmVuYW1lICtcclxuICAgICAgICAgICcgJyArXHJcbiAgICAgICAgICB1c2VyLnVzZXJEYXRhLnZhbHVlLnN1cm5hbWVcclxuICAgICAgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGdldFVzZXJGYXZvcml0ZVZhbHVlKFxyXG4gICAgdWY6IFVzZXJGYXZvcnVyaXRlLFxyXG4gICAgc3VwcGxpZXI6IFN1cHBsaWVycyA9IFN1cHBsaWVycy5ub25cclxuICApOiBzdHJpbmcge1xyXG4gICAgY29uc3QgdWZWYWx1ZTogUmVjb3JkPHN0cmluZywgYW55PiA9IHRoaXMuZnVsbFVzZXJEZXRhaWxzLnVzZXJDb25maWdzLnZhbHVlO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmhlbHBlcnMuZnJvbU9iamVjdCh1ZlZhbHVlLCB1Zi52YWx1ZSwgJ2NvbmZpZycsIHVmLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldFVzZXJGYXZvcml0ZU9iamVjdDxUPih1ZjogVXNlckZhdm9ydXJpdGUpOiBUIHtcclxuICAgIGNvbnN0IHVmVmFsdWU6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB0aGlzLmZ1bGxVc2VyRGV0YWlscy51c2VyQ29uZmlncy52YWx1ZTtcclxuICAgIHJldHVybiB0aGlzLmhlbHBlcnMuZnJvbU9iamVjdCh1ZlZhbHVlLCB1Zi52YWx1ZSwgJ2NvbmZpZycpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlckZhdm9yaXRlTnVtYmVyKHVmOiBVc2VyRmF2b3J1cml0ZSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB1ZlZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gdGhpcy5mdWxsVXNlckRldGFpbHMudXNlckNvbmZpZ3MudmFsdWU7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaGVscGVycy5mcm9tT2JqZWN0KHVmVmFsdWUsIHVmLnZhbHVlLCAnY29uZmlnJywgJ3ZhbHVlJyk7XHJcbiAgfVxyXG5cclxuICBpc1VzZXJGYXZvcml0ZVNldChcclxuICAgIHVmOiBVc2VyRmF2b3J1cml0ZSxcclxuICAgIHN1cHBsaWVyOiBTdXBwbGllcnMgPSBTdXBwbGllcnMubm9uXHJcbiAgKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCB1ZlZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gdGhpcy5mdWxsVXNlckRldGFpbHMudXNlckNvbmZpZ3MudmFsdWU7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaGVscGVycy5mcm9tT2JqZWN0KHVmVmFsdWUsIHVmLnZhbHVlLCAnY29uZmlnJywgJ3ZhbHVlJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzYyAtIGNyZWF0ZSBhIGR1bW15IHVzZXIgZm9yIHNlbGYgYm9va2Vyc1xyXG4gICAqL1xyXG4gIGNyZWF0ZVNlbGZUcmF2ZWxsZXIoKTogVHJhdmVsbGVyIHtcclxuICAgIHJldHVybiB0aGlzLmZ1bGxVc2VyRGV0YWlscy50cmF2bGxlck9iamVjdC52YWx1ZTtcclxuICB9XHJcblxyXG4gIHRyYXZlbGxlcklzVXNlcih0cmF2ZWxsZXI6IFRyYXZlbGxlcik6IGJvb2xlYW4ge1xyXG4gICAgLy8gVE9ETyBjaGVjayB0aGUgdHJhdmVsbGVyIGlzbid0IHRoZSBjdXJyZW50IHVzZXIgb3IgYWdlbnQgYm9va1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZW1wdHlVc2VyRGF0YSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZnVsbFVzZXJEZXRhaWxzLnVzZXJEYXRhLm5leHQobnVsbCk7XHJcbiAgICB0aGlzLmZ1bGxVc2VyRGV0YWlscy51c2VyQ29uZmlncy5uZXh0KG51bGwpO1xyXG4gICAgdGhpcy5mdWxsVXNlckRldGFpbHMudXNlclNlcnZpY2VzLm5leHQobnVsbCk7XHJcbiAgICB0aGlzLmZ1bGxVc2VyRGV0YWlscy5tZXNzYWdlcy5uZXh0KG51bGwpO1xyXG4gICAgdGhpcy5jaGFuZ2VVc2VyLm5leHQodGhpcy5mdWxsVXNlckRldGFpbHMpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlR3Vlc3RVc2VyKFxyXG4gICAgdGl0bGU6IHN0cmluZyxcclxuICAgIGZvcmVuYW1lOiBzdHJpbmcsXHJcbiAgICBzdXJuYW1lOiBzdHJpbmcsXHJcbiAgICBlbWFpbDogc3RyaW5nLFxyXG4gICAgZ3Vlc3RNb2JpbGVDb3VudHJ5Tm86IHN0cmluZyxcclxuICAgIGd1ZXN0TW9iaWxlTnVtYmVyOiBzdHJpbmcsXHJcbiAgICBndWVzdF9uYXRpb25hbGl0eTogc3RyaW5nLFxyXG4gICAgZ2VuZGVyOiBzdHJpbmcsXHJcbiAgICBpc0NoaWxkOiBib29sZWFuLFxyXG4gICAgaXNJbmZhbnQ6IGJvb2xlYW4sXHJcbiAgICBjaGlsZERPQjogRGF0ZVxyXG4gICk6IFRyYXZlbGxlciB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBpc0NoaWxkLFxyXG4gICAgICBpc0luZmFudCxcclxuICAgICAgY2hpbGRET0IsXHJcbiAgICAgIGd1ZXN0OiB0cnVlLFxyXG4gICAgICBpZDogJycsXHJcbiAgICAgIGZvcmVuYW1lLFxyXG4gICAgICBzdXJuYW1lLFxyXG4gICAgICBlbWFpbCxcclxuICAgICAgdGl0bGUsXHJcbiAgICAgIG5hbWU6IFt0aXRsZSwgZm9yZW5hbWUsIHN1cm5hbWVdLmpvaW4oJyAnKVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHVzZXJJc0NsaWVudCgpOiBib29sZWFuIHtcclxuICAgIC8qIFRPRE9cclxuICAgIGNvbnN0IHVzZXIgPSB0aGlzLmdldFVzZXJEZXRhaWxzKCk7XHJcbiAgICByZXR1cm4gdXNlciAmJiAhdGhpcy5pc0FnZW5jeVVzZXIoKSAmJiBbJ1RyYXZlbGxlcicsICdNZScsICdPdGhlcnMnLCAnQm9va2VyJ10uaW5jbHVkZXModXNlci5Cb29raW5nQWxsb3dlZEZvcik7XHJcbiAgICAqL1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBoYXNJZ25vcmVQb2xpY3koKTogYm9vbGVhbiB7XHJcbiAgICAvKiBUT0RPXHJcbiAgICBjb25zdCB1c2VyID0gdGhpcy5nZXRVc2VyRGV0YWlscygpO1xyXG4gICAgcmV0dXJuIHVzZXIgJiYgdXNlci5Cb29raW5nUG9saWN5T3ZlcnJpZGUgJiYgdXNlci5Cb29raW5nUG9saWN5T3ZlcnJpZGUgPT09ICc5OTk5LTAxLTAxIDAwOjAwOjAwJzsqL1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICB1c2VBZ2VudENhbkJvb2tGb3IoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTsgLy8gVE9ET1xyXG4gIH1cclxuXHJcbiAgY2FuQm9vayhzZXJ2aWNlOiBTZXJ2aWNlVHlwZSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qgc2VydmljZXM6IFVzZXJTZXJ2aWNlcyA9IHRoaXMuZnVsbFVzZXJEZXRhaWxzLnVzZXJTZXJ2aWNlcy52YWx1ZTtcclxuICAgIHJldHVybiBzZXJ2aWNlcyAmJiAhIXNlcnZpY2VzW3NlcnZpY2VdO1xyXG4gIH1cclxuXHJcbiAgaXNUcmF2ZWxsZXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmZ1bGxVc2VyRGV0YWlscy51c2VyRGF0YS52YWx1ZS5ib29rZXJfdHlwZSA9PT0gQm9va2VyVHlwZS5UcmF2ZWxsZXJcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1c2VySXNBZ2VudCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuZnVsbFVzZXJEZXRhaWxzLnVzZXJEYXRhLnZhbHVlLmJvb2tlcl90eXBlID09PSBCb29rZXJUeXBlLkNvbXBhbnlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1c2VySXNBZG1pbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmZ1bGxVc2VyRGV0YWlscy51c2VyRGF0YS52YWx1ZS5hZG1pbjtcclxuICB9XHJcblxyXG4gIHVzZXJJc0NvbXBhbnlBZG1pbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmZ1bGxVc2VyRGV0YWlscy51c2VyRGF0YS52YWx1ZS5jb21wYW55X2FkbWluO1xyXG4gIH1cclxuXHJcbiAgaXNTZWxmQm9vaygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuZnVsbFVzZXJEZXRhaWxzLnVzZXJEYXRhLnZhbHVlLmJvb2tlcl90eXBlID09PSBCb29rZXJUeXBlLlNlbGZCb29rXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgaXNCb29rZXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmZ1bGxVc2VyRGV0YWlscy51c2VyRGF0YS52YWx1ZS5ib29rZXJfdHlwZSA9PT0gQm9va2VyVHlwZS5Cb29rZXJcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VySWQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmZ1bGxVc2VyRGV0YWlscy51c2VyRGF0YS52YWx1ZS51c2VyX2lkO1xyXG4gIH1cclxuXHJcbiAgdXNlckhhc1NlcnZpY2VQcm92aWRlcihcclxuICAgIHNlcnZpY2U6IFNlcnZpY2VUeXBlLFxyXG4gICAgcHJvdmlkZXI6IFNlcnZpY2VQcm92aWRlclxyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuZnVsbFVzZXJEZXRhaWxzLnVzZXJTZXJ2aWNlcy52YWx1ZSkge1xyXG4gICAgICByZXR1cm4gISEodGhpcy5mdWxsVXNlckRldGFpbHMudXNlclNlcnZpY2VzLnZhbHVlW3NlcnZpY2VdIHx8IFtdKS5maW5kKFxyXG4gICAgICAgICh2YWx1ZTogU2VydmljZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHZhbHVlLm5hbWUgPT09IChwcm92aWRlciBhcyBzdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZpbmRTZXJ2aWNlKGlkOiBzdHJpbmcpOiBTZXJ2aWNlIHtcclxuICAgIGlmICh0aGlzLmZ1bGxVc2VyRGV0YWlscy51c2VyU2VydmljZXMudmFsdWUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaGVscGVycy5maW5kU2VydmljZShcclxuICAgICAgICB0aGlzLmZ1bGxVc2VyRGV0YWlscy51c2VyU2VydmljZXMudmFsdWUsXHJcbiAgICAgICAgaWRcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlck1lc3NhZ2VzKCk6IE9ic2VydmFibGU8TWVzc2FnZVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VyTWVzc2FnZXNGZXRjaGVyLmZldGNoTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgY29uZmlybU1lc3NhZ2VzKGlkOiBzdHJpbmcgfCBzdHJpbmdbXSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFzZUNvbmZpcm1NZXNzYWdlc1VwZGF0ZXIudXBkYXRlT25lKHsgbWVzc2FnZXM6IGlkIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlcigpOiBPYnNlcnZhYmxlPFVzZXI+IHtcclxuICAgIGNvbnN0IHVzZXI6IEZ1bGxVc2VyRGV0YWlscyA9IHRoaXMuZ2V0ZnVsbFVzZXJEZXRhaWxzKCk7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRVc2VyRmV0Y2hlci5mZXRjaE9uZSh7XHJcbiAgICAgIGlkOiB1c2VyLnVzZXJEYXRhLnZhbHVlLnVzZXJfaWQudG9TdHJpbmcoKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRVc2VyTGFuZ3VhZ2UoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0VXNlckxhbmd1YWdlVXBkYXRlci51cGRhdGVPbmUoeyBsYW5ndWFnZTogaWQgfSk7XHJcbiAgfVxyXG5cclxuICBnZXREb2N1bWVudHModHlwZTogRG9jVHlwZSk6IE9ic2VydmFibGU8RG9jdW1lbnRbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0VXNlcigpLnBpcGUoXHJcbiAgICAgIG1hcCgodXNlcjogVXNlcikgPT4gdXNlci5kb2N1bWVudHMgfHwgW10pLFxyXG4gICAgICBtYXAoKGRvY3M6IERvY3VtZW50W10pID0+IHtcclxuICAgICAgICByZXR1cm4gdHlwZVxyXG4gICAgICAgICAgPyBkb2NzLmZpbHRlcigoZG9jOiBEb2N1bWVudCkgPT4gZG9jLmRvY1R5cGUgPT09IHR5cGUpXHJcbiAgICAgICAgICA6IGRvY3M7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBlZGl0VXNlcih1c2VyOiBNdXRhdGlvbkVkaXRVc2VyQXJncyk6IE9ic2VydmFibGU8VXNlcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZWRpdFVzZXJVcGRhdGVyLnVwZGF0ZU9uZSh1c2VyKTtcclxuICB9XHJcbn1cclxuIl19
|
|
289
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2J0c2VydmljZXMvYmFzZS9zcmMvbGliL3ZlbmRvci9zZXJ2aWNlcy91c2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdoRCxPQUFPLEVBQUUsU0FBUyxFQUFrQixNQUFNLGdDQUFnQyxDQUFDO0FBdUIzRSxPQUFPLEVBQWEsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEUsT0FBTyxFQUVMLFVBQVUsRUFPWCxNQUFNLHdCQUF3QixDQUFDO0FBR2hDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQztBQUMvQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDO0FBYzdDLE1BQU0sT0FBTyxlQUFlO0lBd0IxQixZQUNVLGNBQXdDLEVBQ3hDLG9CQUFvRCxFQUNwRCxtQkFBa0QsRUFDbEQsbUJBQWtELEVBQ2xELDBCQUE2RCxFQUM3RCxzQkFBeUQsRUFDekQsZUFBMkMsRUFDM0MsY0FBa0MsRUFDbEMsT0FBMkI7UUFSM0IsbUJBQWMsR0FBZCxjQUFjLENBQTBCO1FBQ3hDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBZ0M7UUFDcEQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUErQjtRQUNsRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQStCO1FBQ2xELCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBbUM7UUFDN0QsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUFtQztRQUN6RCxvQkFBZSxHQUFmLGVBQWUsQ0FBNEI7UUFDM0MsbUJBQWMsR0FBZCxjQUFjLENBQW9CO1FBQ2xDLFlBQU8sR0FBUCxPQUFP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O0lBQ2pILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQmFzZUhlbHBlclJvdXRpbmVzIH0gZnJvbSAnLi4vY2xhc3Nlcy9oZWxwZXJzJztcclxuXHJcbmltcG9ydCB7IFN1cHBsaWVycywgVXNlckZhdm9ydXJpdGUgfSBmcm9tICcuLi9jbGFzc2VzL3VzZXItZmF2b3VyaXRlLmVudW0nO1xyXG5pbXBvcnQge1xyXG4gIEJhc2VVc2VyTWVzc2FnZXNGZXRjaGVyLFxyXG4gIFVzZXJNZXNzYWdlRmV0Y2hlclR5cGVcclxufSBmcm9tICcuLi9mZXRjaGVycy91c2VyLW1lc3NhZ2UuZmV0Y2hlcic7XHJcbmltcG9ydCB7XHJcbiAgQmFzZVVzZXJQcm9kdWN0c0ZldGNoZXIsXHJcbiAgVXNlclByb2R1Y3RzRmV0Y2hlclR5cGVcclxufSBmcm9tICcuLi9mZXRjaGVycy91c2VyLXByb2R1Y3RzLWZldGNoZXInO1xyXG5pbXBvcnQge1xyXG4gIEJhc2VVc2VyVWlDb25maWdzRmV0Y2hlcixcclxuICBVc2VyVWlDb25maWdzRmV0Y2hlclR5cGVcclxufSBmcm9tICcuLi9mZXRjaGVycy91c2VyLXVpLWNvbmZpZ3MtZmV0Y2hlcic7XHJcbmltcG9ydCB7XHJcbiAgQmFzZUdldFVzZXJGZXRjaGVyLFxyXG4gIFNlYXJjaEdldFVzZXJGZXRjaGVyVHlwZVxyXG59IGZyb20gJy4uL2ZldGNoZXJzL3VzZXItZmV0Y2hlcic7XHJcbmltcG9ydCB7XHJcbiAgRnVsbFVzZXJEZXRhaWxzLFxyXG4gIFVzZXJTZXJ2aWNlSW50ZXJmYWNlLFxyXG4gIFVzZXJTZXJ2aWNlc1xyXG59IGZyb20gJy4uL2ludGVyZmFjZXMvSXVzZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFVzZXJEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy91c2VyLmRhdGEnO1xyXG5pbXBvcnQgeyBUcmF2ZWxsZXIsIFRyYXZlbGxlck9iamVjdCB9IGZyb20gJy4uL21vZGVscy90cmF2ZWxsZXIub2JqZWN0JztcclxuaW1wb3J0IHtcclxuICBEb2N1bWVudCxcclxuICBCb29rZXJUeXBlLFxyXG4gIE1lc3NhZ2UsXHJcbiAgTXV0YXRpb25FZGl0VXNlckFyZ3MsXHJcbiAgU2VydmljZSxcclxuICBTZXJ2aWNlVHlwZSxcclxuICBVc2VyLFxyXG4gIERvY1R5cGVcclxufSBmcm9tICcuLi90eXBlcy9ncmFwaHFsLnR5cGVzJztcclxuaW1wb3J0IHsgU2VydmljZVByb3ZpZGVyLCBVbnBhY2tlZCwgVXNlclVpQ29uZmlnc1Jlc3VsdCB9IGZyb20gJy4uL3R5cGVzL3R5cGVzJztcclxuaW1wb3J0IHsgQmFzZVN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yYWdlLnNlcnZpY2UnO1xyXG5leHBvcnQgY29uc3QgVVNFUl9TSUdORURPVVQgPSAnVVNFUl9TSUdORURPVVQnO1xyXG5leHBvcnQgY29uc3QgVVNFUl9TSUdORURJTiA9ICdVU0VSX1NJR05FRElOJztcclxuaW1wb3J0IHtcclxuICBCYXNlQ29uZmlybU1lc3NhZ2VzVXBkYXRlcixcclxuICBDb25maXJtTWVzc2FnZXNGZXRjaGVyVHlwZVxyXG59IGZyb20gJy4uL3VwZGF0ZXJzL2NvbmZpcm0tbWVzc2FnZXMtdXBkYXRlcic7XHJcbmltcG9ydCB7XHJcbiAgQmFzZVNldFVzZXJMYW5ndWFnZVVwZGF0ZXIsXHJcbiAgU2V0VXNlckxhbmd1YWdlRmV0Y2hlclR5cGVcclxufSBmcm9tICcuLi91cGRhdGVycy9zZXQtdXNlci1sYW5ndWFnZS11cGRhdGVyJztcclxuaW1wb3J0IHtcclxuICBCYXNlRWRpdFVzZXJVcGRhdGVyLFxyXG4gIEVkaXRVc2VyRmV0Y2hlclR5cGVcclxufSBmcm9tICcuLi91cGRhdGVycy9lZGl0LXVzZXItdXBkYXRlcic7XHJcblxyXG5leHBvcnQgY2xhc3MgQmFzZVVzZXJTZXJ2aWNlPFxyXG4gIEdVX1EgZXh0ZW5kcyBTZWFyY2hHZXRVc2VyRmV0Y2hlclR5cGUsXHJcbiAgVUNfUSBleHRlbmRzIFVzZXJVaUNvbmZpZ3NGZXRjaGVyVHlwZSxcclxuICBVU19RIGV4dGVuZHMgVXNlclByb2R1Y3RzRmV0Y2hlclR5cGUsXHJcbiAgVU1fUSBleHRlbmRzIFVzZXJNZXNzYWdlRmV0Y2hlclR5cGUsXHJcbiAgQ01VX1EgZXh0ZW5kcyBDb25maXJtTWVzc2FnZXNGZXRjaGVyVHlwZSxcclxuICBTTFVfUSBleHRlbmRzIFNldFVzZXJMYW5ndWFnZUZldGNoZXJUeXBlLFxyXG4gIEVVVV9RIGV4dGVuZHMgRWRpdFVzZXJGZXRjaGVyVHlwZVxyXG4+IGltcGxlbWVudHMgVXNlclNlcnZpY2VJbnRlcmZhY2Vcclxue1xyXG4gIHB1YmxpYyBmdWxsVXNlckRldGFpbHM6IEZ1bGxVc2VyRGV0YWlscyA9IHtcclxuICAgIGJvb2tpbmdBbGxvd2VkRm9yOiAnJyxcclxuICAgIG1lc3NhZ2VzOiBuZXcgQmVoYXZpb3JTdWJqZWN0PE1lc3NhZ2VbXT4obnVsbCksXHJcbiAgICB0cmF2bGxlck9iamVjdDogbmV3IEJlaGF2aW9yU3ViamVjdDxUcmF2ZWxsZXI+KG51bGwpLFxyXG4gICAgdXNlckNvbmZpZ3M6IG5ldyBCZWhhdmlvclN1YmplY3Q8e1xyXG4gICAgICBba2V5OiBzdHJpbmddOiBVbnBhY2tlZDxVc2VyVWlDb25maWdzUmVzdWx0PjtcclxuICAgIH0+KG51bGwpLFxyXG4gICAgdXNlckRhdGE6IG5ldyBCZWhhdmlvclN1YmplY3Q8VXNlckRhdGE+KG51bGwpLFxyXG4gICAgdXNlclNlcnZpY2VzOiBuZXcgQmVoYXZpb3JTdWJqZWN0PFVzZXJTZXJ2aWNlcz4obnVsbCksXHJcbiAgICBhbGxEZXRhaWxzOiBuZXcgQmVoYXZpb3JTdWJqZWN0PFVzZXI+KG51bGwpXHJcbiAgfTtcclxuICBjaGFuZ2VVc2VyOiBCZWhhdmlvclN1YmplY3Q8RnVsbFVzZXJEZXRhaWxzPiA9XHJcbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PEZ1bGxVc2VyRGV0YWlscz4obnVsbCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBnZXRVc2VyRmV0Y2hlcjogQmFzZUdldFVzZXJGZXRjaGVyPEdVX1E+LFxyXG4gICAgcHJpdmF0ZSB1c2VyVWlDb25maWdzRmV0Y2hlcjogQmFzZVVzZXJVaUNvbmZpZ3NGZXRjaGVyPFVDX1E+LFxyXG4gICAgcHJpdmF0ZSB1c2VyUHJvZHVjdHNGZXRjaGVyOiBCYXNlVXNlclByb2R1Y3RzRmV0Y2hlcjxVU19RPixcclxuICAgIHByaXZhdGUgdXNlck1lc3NhZ2VzRmV0Y2hlcjogQmFzZVVzZXJNZXNzYWdlc0ZldGNoZXI8VU1fUT4sXHJcbiAgICBwcml2YXRlIGJhc2VDb25maXJtTWVzc2FnZXNVcGRhdGVyOiBCYXNlQ29uZmlybU1lc3NhZ2VzVXBkYXRlcjxDTVVfUT4sXHJcbiAgICBwcml2YXRlIHNldFVzZXJMYW5ndWFnZVVwZGF0ZXI6IEJhc2VTZXRVc2VyTGFuZ3VhZ2VVcGRhdGVyPFNMVV9RPixcclxuICAgIHByaXZhdGUgZWRpdFVzZXJVcGRhdGVyOiBCYXNlRWRpdFVzZXJVcGRhdGVyPEVVVV9RPixcclxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IEJhc2VTdG9yYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgaGVscGVyczogQmFzZUhlbHBlclJvdXRpbmVzXHJcbiAgKSB7fVxyXG5cclxuICBzZXRVc2VyKHVzZXJfZGF0YTogVXNlckRhdGEpOiB2b2lkIHtcclxuICAgIGNvbnN0IHVzZXJkYXRhID0gdGhpcy5mdWxsVXNlckRldGFpbHMudXNlckRhdGEudmFsdWU7XHJcbiAgICBpZiAoIXVzZXJkYXRhIHx8IHVzZXJkYXRhLnVzZXJuYW1lICE9PSB1c2VyX2RhdGEudXNlcm5hbWUpIHtcclxuICAgICAgaWYgKHVzZXJkYXRhPy51c2VyX2lkKSB7XHJcbiAgICAgICAgdGhpcy5nZXRVc2VyRmV0Y2hlci5mZXRjaE9uZSh7XHJcbiAgICAgICAgICBpZDogdXNlcmRhdGEudXNlcl9pZC50b1N0cmluZygpXHJcbiAgICAgICAgfSlcclxuICAgICAgICAucGlwZSh0YWtlKDEpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICh1c2VyOiBVc2VyKSA9PiB7XHJcbiAgICAgICAgICAgdGhpcy5mdWxsVXNlckRldGFpbHMuYWxsRGV0YWlscy5uZXh0KHVzZXIpO1xyXG4gICAgICAgICAgIHRoaXMuY2hlY2tFbWl0VXNlcigpO1xyXG4gICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnVzZXJVaUNvbmZpZ3NGZXRjaGVyLmZldGNoS2V5ZWRPYmplY3QoJ2tleScpLnN1YnNjcmliZShcclxuICAgICAgICAocmVzdWx0MTogeyBba2V5OiBzdHJpbmddOiBVbnBhY2tlZDxVc2VyVWlDb25maWdzUmVzdWx0PiB9KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZ1bGxVc2VyRGV0YWlscy51c2VyQ29uZmlncy5uZXh0KHJlc3VsdDEpO1xyXG4gICAgICAgICAgdGhpcy5jaGVja0VtaXRVc2VyKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgICAgdGhpcy51c2VyUHJvZHVjdHNGZXRjaGVyXHJcbiAgICAgICAgLmZldGNoS2V5ZWRPYmplY3RBcnJheSgndHlwZScpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0MjogVXNlclNlcnZpY2VzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZ1bGxVc2VyRGV0YWlscy51c2VyU2VydmljZXMubmV4dChyZXN1bHQyKTtcclxuXHJcbiAgICAgICAgICB0aGlzLmNoZWNrRW1pdFVzZXIoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgdGhpcy51c2VyTWVzc2FnZXNGZXRjaGVyLmZldGNoTGlzdCgpLnN1YnNjcmliZShcclxuICAgICAgICAocmVzdWx0MzogTWVzc2FnZVtdKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZ1bGxVc2VyRGV0YWlscy5tZXNzYWdlcy5uZXh0KHJlc3VsdDMpO1xyXG4gICAgICAgICAgdGhpcy5jaGVja0VtaXRVc2VyKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuXHJcbiAgICAgIHRoaXMuZnVsbFVzZXJEZXRhaWxzLnRyYXZsbGVyT2JqZWN0Lm5leHQoXHJcbiAgICAgICAgVHJhdmVsbGVyT2JqZWN0Lm1ha2VUcmF2ZWxsZXJPYmplY3RGcm9tVXNlcih1c2VyX2RhdGEpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodXNlcl9kYXRhPy51c2VyX2lkKSB7XHJcbiAgICAgIHRoaXMuZ2V0VXNlckZldGNoZXIuZmV0Y2hPbmUoe1xyXG4gICAgICAgIGlkOiB1c2VyX2RhdGE/LnVzZXJfaWQudG9TdHJpbmcoKVxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZSh0YWtlKDEpKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgKHVzZXI6IFVzZXIpID0+IHtcclxuICAgICAgICAgdGhpcy5mdWxsVXNlckRldGFpbHMuYWxsRGV0YWlscy5uZXh0KHVzZXIpO1xyXG4gICAgICAgICB0aGlzLmNoZWNrRW1pdFVzZXIoKTtcclxuICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuZnVsbFVzZXJEZXRhaWxzLnVzZXJEYXRhLm5leHQodXNlcl9kYXRhKTtcclxuXHJcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldFNlc3Npb25JdGVtKCdsaWdodG5pbmdfdXNlcl9kYXRhJywgdXNlcl9kYXRhKTtcclxuICB9XHJcblxyXG4gIGNoZWNrRW1pdFVzZXIoKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgICEhdGhpcy5mdWxsVXNlckRldGFpbHMudXNlckNvbmZpZ3MudmFsdWUgJiZcclxuICAgICAgISF0aGlzLmZ1bGxVc2VyRGV0YWlscy51c2VyRGF0YS52YWx1ZSAmJlxyXG4gICAgICAhIXRoaXMuZnVsbFVzZXJEZXRhaWxzLnVzZXJTZXJ2aWNlcy52YWx1ZSAmJlxyXG4gICAgICAhIXRoaXMuZnVsbFVzZXJEZXRhaWxzLm1lc3NhZ2VzLnZhbHVlXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5jaGFuZ2VVc2VyLm5leHQodGhpcy5mdWxsVXNlckRldGFpbHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0ZnVsbFVzZXJEZXRhaWxzKGFkbWluOiBib29sZWFuID0gZmFsc2UpOiBGdWxsVXNlckRldGFpbHMgfCBudWxsIHtcclxuICAgIGlmIChhZG1pbikge1xyXG4gICAgICByZXR1cm4gdGhpcy5fZ2V0RnVsbFVzZXJEZXRhaWxzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX2dldEZ1bGxVc2VyRGV0YWlscygpO1xyXG4gICAgLy8gcmV0dXJuIHRoaXMub25CZWhhbGZVc2VyIHx8IHRoaXMuX2dldFVzZXJEZXRhaWxzKCk7XHJcbiAgfVxyXG5cclxuICBfZ2V0RnVsbFVzZXJEZXRhaWxzKCk6IEZ1bGxVc2VyRGV0YWlscyB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmZ1bGxVc2VyRGV0YWlscyB8fFxyXG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFNlc3Npb25JdGVtKCdsaWdodG5pbmdfdXNlcl9kYXRhJylcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyRHJvcGRvd25JbmZvKCk6IHtcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIGVtYWlsOiBzdHJpbmc7XHJcbiAgICBhY2NvdW50X3R5cGU6IEJvb2tlclR5cGUgfCBzdHJpbmc7XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gIH0ge1xyXG4gICAgY29uc3QgZHJvcGRvd25faW5mbyA9IHtcclxuICAgICAgbmFtZTogJ1VuYWJsZSB0byByZXRyaWV2ZSBuYW1lLicsXHJcbiAgICAgIGVtYWlsOiAnVW5hYmxlIHRvIHJlcmlldmUgZW1haWwnLFxyXG4gICAgICBhY2NvdW50X3R5cGU6ICdVbmtub3duJyxcclxuICAgICAgdGl0bGU6ICcnXHJcbiAgICB9O1xyXG4gICAgY29uc3QgbmFtZSA9IHRoaXMuZ2V0VXNlcnNGdWxsbmFtZSgpO1xyXG4gICAgY29uc3QgZW1haWwgPSB0aGlzLmdldFVzZXJFbWFpbCgpO1xyXG4gICAgY29uc3QgdHlwZSA9IHRoaXMuZ2V0VXNlckJvb2tpbmdUeXBlKCk7XHJcbiAgICBjb25zdCB0aXRsZSA9IHRoaXMuZ2V0VXNlclRpdGxlKCk7XHJcblxyXG4gICAgaWYgKG5hbWUpIHtcclxuICAgICAgZHJvcGRvd25faW5mby5uYW1lID0gbmFtZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZW1haWwpIHtcclxuICAgICAgZHJvcGRvd25faW5mby5lbWFpbCA9IGVtYWlsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlKSB7XHJcbiAgICAgIGRyb3Bkb3duX2luZm8uYWNjb3VudF90eXBlID0gdHlwZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGl0bGUpIHtcclxuICAgICAgZHJvcGRvd25faW5mby50aXRsZSA9IHRpdGxlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkcm9wZG93bl9pbmZvO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlclRpdGxlKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB1c2VyOiBGdWxsVXNlckRldGFpbHMgPSB0aGlzLmdldGZ1bGxVc2VyRGV0YWlscygpO1xyXG4gICAgcmV0dXJuIHVzZXIgJiYgdXNlci51c2VyRGF0YSA/IHVzZXIudXNlckRhdGEudmFsdWUudGl0bGUgOiAnJztcclxuICB9XHJcblxyXG4gIGdldFVzZXJGb3JlbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgdXNlcjogRnVsbFVzZXJEZXRhaWxzID0gdGhpcy5nZXRmdWxsVXNlckRldGFpbHMoKTtcclxuICAgIHJldHVybiB1c2VyICYmIHVzZXIudXNlckRhdGEgPyB1c2VyLnVzZXJEYXRhLnZhbHVlLmZvcmVuYW1lIDogJyc7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyU3VybmFtZSgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgdXNlcjogRnVsbFVzZXJEZXRhaWxzID0gdGhpcy5nZXRmdWxsVXNlckRldGFpbHMoKTtcclxuICAgIHJldHVybiB1c2VyICYmIHVzZXIudXNlckRhdGEgPyB1c2VyLnVzZXJEYXRhLnZhbHVlLnN1cm5hbWUgOiAnJztcclxuICB9XHJcblxyXG4gIGdldEZ1bGxQaG9uZU51bWJlcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlckVtYWlsKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB1c2VyOiBGdWxsVXNlckRldGFpbHMgPSB0aGlzLmdldGZ1bGxVc2VyRGV0YWlscygpO1xyXG4gICAgcmV0dXJuIHVzZXIgJiYgdXNlci51c2VyRGF0YSA/IHVzZXIudXNlckRhdGEudmFsdWUudXNlcm5hbWUgOiAnJztcclxuICB9XHJcblxyXG4gIGdldFVzZXJCb29raW5nVHlwZSgpOiBCb29rZXJUeXBlIHtcclxuICAgIGNvbnN0IHVzZXI6IEZ1bGxVc2VyRGV0YWlscyA9IHRoaXMuZ2V0ZnVsbFVzZXJEZXRhaWxzKCk7XHJcbiAgICByZXR1cm4gdXNlciAmJiB1c2VyLnVzZXJEYXRhID8gdXNlci51c2VyRGF0YS52YWx1ZS5ib29rZXJfdHlwZSA6IG51bGw7XHJcbiAgfVxyXG5cclxuICBnZXRVc2Vyc0Z1bGxuYW1lKCk6IHN0cmluZyB8IGZhbHNlIHtcclxuICAgIGNvbnN0IHVzZXI6IEZ1bGxVc2VyRGV0YWlscyA9IHRoaXMuZ2V0ZnVsbFVzZXJEZXRhaWxzKCk7XHJcbiAgICByZXR1cm4gdXNlciAmJiB1c2VyLnVzZXJEYXRhXHJcbiAgICAgID8gdXNlci51c2VyRGF0YS52YWx1ZS5mb3JlbmFtZSArICcgJyArIHVzZXIudXNlckRhdGEudmFsdWUuc3VybmFtZVxyXG4gICAgICA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlcnNUaXRsZUFuZEZ1bGxOYW1lKCk6IHN0cmluZyB8IGZhbHNlIHtcclxuICAgIGNvbnN0IHVzZXI6IEZ1bGxVc2VyRGV0YWlscyA9IHRoaXMuZ2V0ZnVsbFVzZXJEZXRhaWxzKCk7XHJcbiAgICByZXR1cm4gdXNlciAmJiB1c2VyLnVzZXJEYXRhXHJcbiAgICAgID8gdXNlci51c2VyRGF0YS52YWx1ZS50aXRsZSArXHJcbiAgICAgICAgICAnICcgK1xyXG4gICAgICAgICAgdXNlci51c2VyRGF0YS52YWx1ZS5mb3JlbmFtZSArXHJcbiAgICAgICAgICAnICcgK1xyXG4gICAgICAgICAgdXNlci51c2VyRGF0YS52YWx1ZS5zdXJuYW1lXHJcbiAgICAgIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyRmF2b3JpdGVWYWx1ZShcclxuICAgIHVmOiBVc2VyRmF2b3J1cml0ZSxcclxuICAgIHN1cHBsaWVyOiBTdXBwbGllcnMgPSBTdXBwbGllcnMubm9uXHJcbiAgKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHVmVmFsdWU6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB0aGlzLmZ1bGxVc2VyRGV0YWlscy51c2VyQ29uZmlncy52YWx1ZTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5oZWxwZXJzLmZyb21PYmplY3QodWZWYWx1ZSwgdWYudmFsdWUsICdjb25maWcnLCB1Zi52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyRmF2b3JpdGVPYmplY3Q8VD4odWY6IFVzZXJGYXZvcnVyaXRlKTogVCB7XHJcbiAgICBjb25zdCB1ZlZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gdGhpcy5mdWxsVXNlckRldGFpbHMudXNlckNvbmZpZ3MudmFsdWU7XHJcbiAgICByZXR1cm4gdGhpcy5oZWxwZXJzLmZyb21PYmplY3QodWZWYWx1ZSwgdWYudmFsdWUsICdjb25maWcnKTtcclxuICB9XHJcblxyXG4gIGdldFVzZXJGYXZvcml0ZU51bWJlcih1ZjogVXNlckZhdm9ydXJpdGUpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgdWZWYWx1ZTogUmVjb3JkPHN0cmluZywgYW55PiA9IHRoaXMuZnVsbFVzZXJEZXRhaWxzLnVzZXJDb25maWdzLnZhbHVlO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmhlbHBlcnMuZnJvbU9iamVjdCh1ZlZhbHVlLCB1Zi52YWx1ZSwgJ2NvbmZpZycsICd2YWx1ZScpO1xyXG4gIH1cclxuXHJcbiAgaXNVc2VyRmF2b3JpdGVTZXQoXHJcbiAgICB1ZjogVXNlckZhdm9ydXJpdGUsXHJcbiAgICBzdXBwbGllcjogU3VwcGxpZXJzID0gU3VwcGxpZXJzLm5vblxyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgdWZWYWx1ZTogUmVjb3JkPHN0cmluZywgYW55PiA9IHRoaXMuZnVsbFVzZXJEZXRhaWxzLnVzZXJDb25maWdzLnZhbHVlO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmhlbHBlcnMuZnJvbU9iamVjdCh1ZlZhbHVlLCB1Zi52YWx1ZSwgJ2NvbmZpZycsICd2YWx1ZScpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2MgLSBjcmVhdGUgYSBkdW1teSB1c2VyIGZvciBzZWxmIGJvb2tlcnNcclxuICAgKi9cclxuICBjcmVhdGVTZWxmVHJhdmVsbGVyKCk6IFRyYXZlbGxlciB7XHJcbiAgICByZXR1cm4gdGhpcy5mdWxsVXNlckRldGFpbHMudHJhdmxsZXJPYmplY3QudmFsdWU7XHJcbiAgfVxyXG5cclxuICB0cmF2ZWxsZXJJc1VzZXIodHJhdmVsbGVyOiBUcmF2ZWxsZXIpOiBib29sZWFuIHtcclxuICAgIC8vIFRPRE8gY2hlY2sgdGhlIHRyYXZlbGxlciBpc24ndCB0aGUgY3VycmVudCB1c2VyIG9yIGFnZW50IGJvb2tcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGVtcHR5VXNlckRhdGEoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZ1bGxVc2VyRGV0YWlscy51c2VyRGF0YS5uZXh0KG51bGwpO1xyXG4gICAgdGhpcy5mdWxsVXNlckRldGFpbHMudXNlckNvbmZpZ3MubmV4dChudWxsKTtcclxuICAgIHRoaXMuZnVsbFVzZXJEZXRhaWxzLnVzZXJTZXJ2aWNlcy5uZXh0KG51bGwpO1xyXG4gICAgdGhpcy5mdWxsVXNlckRldGFpbHMubWVzc2FnZXMubmV4dChudWxsKTtcclxuICAgIHRoaXMuY2hhbmdlVXNlci5uZXh0KHRoaXMuZnVsbFVzZXJEZXRhaWxzKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUd1ZXN0VXNlcihcclxuICAgIHRpdGxlOiBzdHJpbmcsXHJcbiAgICBmb3JlbmFtZTogc3RyaW5nLFxyXG4gICAgc3VybmFtZTogc3RyaW5nLFxyXG4gICAgZW1haWw6IHN0cmluZyxcclxuICAgIGd1ZXN0TW9iaWxlQ291bnRyeU5vOiBzdHJpbmcsXHJcbiAgICBndWVzdE1vYmlsZU51bWJlcjogc3RyaW5nLFxyXG4gICAgZ3Vlc3RfbmF0aW9uYWxpdHk6IHN0cmluZyxcclxuICAgIGdlbmRlcjogc3RyaW5nLFxyXG4gICAgaXNDaGlsZDogYm9vbGVhbixcclxuICAgIGlzSW5mYW50OiBib29sZWFuLFxyXG4gICAgY2hpbGRET0I6IERhdGVcclxuICApOiBUcmF2ZWxsZXIge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaXNDaGlsZCxcclxuICAgICAgaXNJbmZhbnQsXHJcbiAgICAgIGNoaWxkRE9CLFxyXG4gICAgICBndWVzdDogdHJ1ZSxcclxuICAgICAgaWQ6ICcnLFxyXG4gICAgICBmb3JlbmFtZSxcclxuICAgICAgc3VybmFtZSxcclxuICAgICAgZW1haWwsXHJcbiAgICAgIHRpdGxlLFxyXG4gICAgICBuYW1lOiBbdGl0bGUsIGZvcmVuYW1lLCBzdXJuYW1lXS5qb2luKCcgJylcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICB1c2VySXNDbGllbnQoKTogYm9vbGVhbiB7XHJcbiAgICAvKiBUT0RPXHJcbiAgICBjb25zdCB1c2VyID0gdGhpcy5nZXRVc2VyRGV0YWlscygpO1xyXG4gICAgcmV0dXJuIHVzZXIgJiYgIXRoaXMuaXNBZ2VuY3lVc2VyKCkgJiYgWydUcmF2ZWxsZXInLCAnTWUnLCAnT3RoZXJzJywgJ0Jvb2tlciddLmluY2x1ZGVzKHVzZXIuQm9va2luZ0FsbG93ZWRGb3IpO1xyXG4gICAgKi9cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgaGFzSWdub3JlUG9saWN5KCk6IGJvb2xlYW4ge1xyXG4gICAgLyogVE9ET1xyXG4gICAgY29uc3QgdXNlciA9IHRoaXMuZ2V0VXNlckRldGFpbHMoKTtcclxuICAgIHJldHVybiB1c2VyICYmIHVzZXIuQm9va2luZ1BvbGljeU92ZXJyaWRlICYmIHVzZXIuQm9va2luZ1BvbGljeU92ZXJyaWRlID09PSAnOTk5OS0wMS0wMSAwMDowMDowMCc7Ki9cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgdXNlQWdlbnRDYW5Cb29rRm9yKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7IC8vIFRPRE9cclxuICB9XHJcblxyXG4gIGNhbkJvb2soc2VydmljZTogU2VydmljZVR5cGUpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHNlcnZpY2VzOiBVc2VyU2VydmljZXMgPSB0aGlzLmZ1bGxVc2VyRGV0YWlscy51c2VyU2VydmljZXMudmFsdWU7XHJcbiAgICByZXR1cm4gc2VydmljZXMgJiYgISFzZXJ2aWNlc1tzZXJ2aWNlXTtcclxuICB9XHJcblxyXG4gIGlzVHJhdmVsbGVyKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5mdWxsVXNlckRldGFpbHMudXNlckRhdGEudmFsdWUuYm9va2VyX3R5cGUgPT09IEJvb2tlclR5cGUuVHJhdmVsbGVyXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXNlcklzQWdlbnQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmZ1bGxVc2VyRGV0YWlscy51c2VyRGF0YS52YWx1ZS5ib29rZXJfdHlwZSA9PT0gQm9va2VyVHlwZS5Db21wYW55XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXNlcklzQWRtaW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5mdWxsVXNlckRldGFpbHMudXNlckRhdGEudmFsdWUuYWRtaW47XHJcbiAgfVxyXG5cclxuICB1c2VySXNDb21wYW55QWRtaW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5mdWxsVXNlckRldGFpbHMudXNlckRhdGEudmFsdWUuY29tcGFueV9hZG1pbjtcclxuICB9XHJcblxyXG4gIGlzU2VsZkJvb2soKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmZ1bGxVc2VyRGV0YWlscy51c2VyRGF0YS52YWx1ZS5ib29rZXJfdHlwZSA9PT0gQm9va2VyVHlwZS5TZWxmQm9va1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGlzQm9va2VyKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5mdWxsVXNlckRldGFpbHMudXNlckRhdGEudmFsdWUuYm9va2VyX3R5cGUgPT09IEJvb2tlclR5cGUuQm9va2VyXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlcklkKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5mdWxsVXNlckRldGFpbHMudXNlckRhdGEudmFsdWUudXNlcl9pZDtcclxuICB9XHJcblxyXG4gIHVzZXJIYXNTZXJ2aWNlUHJvdmlkZXIoXHJcbiAgICBzZXJ2aWNlOiBTZXJ2aWNlVHlwZSxcclxuICAgIHByb3ZpZGVyOiBTZXJ2aWNlUHJvdmlkZXJcclxuICApOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLmZ1bGxVc2VyRGV0YWlscy51c2VyU2VydmljZXMudmFsdWUpIHtcclxuICAgICAgcmV0dXJuICEhKHRoaXMuZnVsbFVzZXJEZXRhaWxzLnVzZXJTZXJ2aWNlcy52YWx1ZVtzZXJ2aWNlXSB8fCBbXSkuZmluZChcclxuICAgICAgICAodmFsdWU6IFNlcnZpY2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiB2YWx1ZS5uYW1lID09PSAocHJvdmlkZXIgYXMgc3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaW5kU2VydmljZShpZDogc3RyaW5nKTogU2VydmljZSB7XHJcbiAgICBpZiAodGhpcy5mdWxsVXNlckRldGFpbHMudXNlclNlcnZpY2VzLnZhbHVlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmhlbHBlcnMuZmluZFNlcnZpY2UoXHJcbiAgICAgICAgdGhpcy5mdWxsVXNlckRldGFpbHMudXNlclNlcnZpY2VzLnZhbHVlLFxyXG4gICAgICAgIGlkXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGdldFVzZXJNZXNzYWdlcygpOiBPYnNlcnZhYmxlPE1lc3NhZ2VbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlck1lc3NhZ2VzRmV0Y2hlci5mZXRjaExpc3QoKTtcclxuICB9XHJcblxyXG4gIGNvbmZpcm1NZXNzYWdlcyhpZDogc3RyaW5nIHwgc3RyaW5nW10pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLmJhc2VDb25maXJtTWVzc2FnZXNVcGRhdGVyLnVwZGF0ZU9uZSh7IG1lc3NhZ2VzOiBpZCB9KTtcclxuICB9XHJcblxyXG4gIGdldFVzZXIoKTogT2JzZXJ2YWJsZTxVc2VyPiB7XHJcbiAgICBjb25zdCB1c2VyOiBGdWxsVXNlckRldGFpbHMgPSB0aGlzLmdldGZ1bGxVc2VyRGV0YWlscygpO1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0VXNlckZldGNoZXIuZmV0Y2hPbmUoe1xyXG4gICAgICBpZDogdXNlci51c2VyRGF0YS52YWx1ZS51c2VyX2lkLnRvU3RyaW5nKClcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0VXNlckxhbmd1YWdlKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVzZXI+IHtcclxuICAgIHJldHVybiB0aGlzLnNldFVzZXJMYW5ndWFnZVVwZGF0ZXIudXBkYXRlT25lKHsgbGFuZ3VhZ2U6IGlkIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0RG9jdW1lbnRzKHR5cGU6IERvY1R5cGUpOiBPYnNlcnZhYmxlPERvY3VtZW50W10+IHtcclxuICAgIHJldHVybiB0aGlzLmdldFVzZXIoKS5waXBlKFxyXG4gICAgICBtYXAoKHVzZXI6IFVzZXIpID0+IHVzZXIuZG9jdW1lbnRzIHx8IFtdKSxcclxuICAgICAgbWFwKChkb2NzOiBEb2N1bWVudFtdKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVcclxuICAgICAgICAgID8gZG9jcy5maWx0ZXIoKGRvYzogRG9jdW1lbnQpID0+IGRvYy5kb2NUeXBlID09PSB0eXBlKVxyXG4gICAgICAgICAgOiBkb2NzO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGVkaXRVc2VyKHVzZXI6IE11dGF0aW9uRWRpdFVzZXJBcmdzKTogT2JzZXJ2YWJsZTxVc2VyPiB7XHJcbiAgICByZXR1cm4gdGhpcy5lZGl0VXNlclVwZGF0ZXIudXBkYXRlT25lKHVzZXIpLnBpcGUodGFwKCh1c2VyOlVzZXIpPT50aGlzLmZ1bGxVc2VyRGV0YWlscy5hbGxEZXRhaWxzLm5leHQodXNlcikpKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -22,6 +22,9 @@ export class BaseWebTokenService {
|
|
|
22
22
|
this._jwtToken = value;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
+
get jwtToken() {
|
|
26
|
+
return this._jwtToken || null;
|
|
27
|
+
}
|
|
25
28
|
_updateTimer() {
|
|
26
29
|
window.clearTimeout(this.timer);
|
|
27
30
|
this.timer = null;
|
|
@@ -31,10 +34,11 @@ export class BaseWebTokenService {
|
|
|
31
34
|
}, 60000);
|
|
32
35
|
}
|
|
33
36
|
checkToLogout() {
|
|
34
|
-
|
|
35
|
-
const
|
|
36
|
-
const
|
|
37
|
-
|
|
37
|
+
var _a;
|
|
38
|
+
const current = moment().unix();
|
|
39
|
+
const last = ((_a = this.lastUpdated) === null || _a === void 0 ? void 0 : _a.unix()) || 0;
|
|
40
|
+
const maxTime = this.timeoutDuration;
|
|
41
|
+
if (current - last > maxTime) {
|
|
38
42
|
this.timer = null;
|
|
39
43
|
this.lastUpdated = moment();
|
|
40
44
|
this.modalOpenerService
|
|
@@ -53,4 +57,4 @@ export class BaseWebTokenService {
|
|
|
53
57
|
}
|
|
54
58
|
}
|
|
55
59
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VidG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3Ivc2VydmljZXMvd2VidG9rZW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc1QyxNQUFNLE9BQWdCLG1CQUFtQjtJQXlCdkMsWUFDVSxrQkFBMEMsRUFDbEQsV0FBNEI7UUFEcEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUF3QjtRQXpCcEQsMENBQTBDO1FBQ2hDLGNBQVMsR0FBVyxJQUFJLENBQUM7UUFDekIsVUFBSyxHQUFXLElBQUksQ0FBQztRQUNyQixvQkFBZSxHQUFXLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFFNUMscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBdUJwQixJQUFJLENBQUMsZUFBZSxHQUFHLFdBQVcsQ0FBQyxjQUFjLENBQUM7SUFDcEQsQ0FBQztJQXRCRDs7T0FFRztJQUNILElBQUksZUFBZSxDQUFDLEtBQWE7UUFDL0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsS0FBYTtRQUN4QixJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQVNTLFlBQVk7UUFDcEIsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNaLENBQUM7SUFFUyxhQUFhOztRQUNyQixNQUFNLE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNoQyxNQUFNLElBQUksR0FBRyxPQUFBLElBQUksQ0FBQyxXQUFXLDBDQUFFLElBQUksT0FBTSxDQUFDLENBQUM7UUFDM0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUNyQyxJQUFJLE9BQU8sR0FBRyxJQUFJLEdBQUcsT0FBTyxFQUFFO1lBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGtCQUFrQjtpQkFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQztpQkFDdEQsSUFBSSxDQUFDLENBQUMsTUFBa0IsRUFBRSxFQUFFO2dCQUMzQixJQUFJLE1BQU0sS0FBSyxVQUFVLENBQUMsTUFBTSxFQUFFO29CQUNoQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7aUJBQ3JCO3FCQUFNO29CQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2lCQUN2QjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ047YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjtJQUNILENBQUM7Q0FHRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgQmFzZUVudmlyb25tZW50IH0gZnJvbSAnLi4vY2xhc3Nlcy9lbnZpcm9tZW50JztcclxuaW1wb3J0IHsgTW9kYWxUeXBlcyB9IGZyb20gJy4uL2NsYXNzZXMvbW9kYWwtdHlwZXMuZW51bSc7XHJcbmltcG9ydCB7IExvZ291dEVudW0gfSBmcm9tICcuLi90eXBlcy90eXBlcyc7XHJcbmltcG9ydCB7IEJhc2VNb2RhbE9wZW5lclNlcnZpY2UgfSBmcm9tICcuL21vZGFsLW9wZW5lci5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlV2ViVG9rZW5TZXJ2aWNlIHtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IHZhcmlhYmxlLW5hbWVcclxuICBwcm90ZWN0ZWQgX2p3dFRva2VuOiBzdHJpbmcgPSBudWxsO1xyXG4gIHByb3RlY3RlZCB0aW1lcjogbnVtYmVyID0gbnVsbDtcclxuICBwcm90ZWN0ZWQgdGltZW91dER1cmF0aW9uOiBudW1iZXIgPSA2MCAqIDYwO1xyXG4gIHByb3RlY3RlZCBsYXN0VXBkYXRlZDogbW9tZW50Lk1vbWVudDtcclxuICBhdXRvTG9nb3V0Q29uZmlnID0ge307XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSB2YWx1ZTogIG51bWJlciAvLyBUaGUgdGltZSBpbiBtaW51dGVzIGJlZm9yZSBodGUgdXNlciBpcyBhdXRvIGxvZ2dlZCBvdXQuXHJcbiAgICovXHJcbiAgc2V0IHRpbWVPdXREdXJhdGlvbih2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnRpbWVvdXREdXJhdGlvbiA9IHZhbHVlICogNjAgLSA2MDtcclxuICB9XHJcblxyXG4gIHNldCBqd3RUb2tlbih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuand0VG9rZW4pIHtcclxuICAgICAgdGhpcy5fand0VG9rZW4gPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBqd3RUb2tlbigpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl9qd3RUb2tlbiB8fCBudWxsO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG1vZGFsT3BlbmVyU2VydmljZTogQmFzZU1vZGFsT3BlbmVyU2VydmljZSxcclxuICAgIGVudmlyb25tZW50OiBCYXNlRW52aXJvbm1lbnRcclxuICApIHtcclxuICAgIHRoaXMudGltZU91dER1cmF0aW9uID0gZW52aXJvbm1lbnQuYXV0b0xvZ291dFRpbWU7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX3VwZGF0ZVRpbWVyKCkge1xyXG4gICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTtcclxuICAgIHRoaXMudGltZXIgPSBudWxsO1xyXG4gICAgY29uc29sZS5sb2coJ1Jlc2V0dGluZyBhdXRvIGxvZyBvdXQnKTtcclxuICAgIHRoaXMudGltZXIgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2hlY2tUb0xvZ291dCgpO1xyXG4gICAgfSwgNjAwMDApO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGNoZWNrVG9Mb2dvdXQoKSB7XHJcbiAgICBjb25zdCBjdXJyZW50ID0gbW9tZW50KCkudW5peCgpO1xyXG4gICAgY29uc3QgbGFzdCA9IHRoaXMubGFzdFVwZGF0ZWQ/LnVuaXgoKSB8fCAwO1xyXG4gICAgY29uc3QgbWF4VGltZSA9IHRoaXMudGltZW91dER1cmF0aW9uO1xyXG4gICAgaWYgKGN1cnJlbnQgLSBsYXN0ID4gbWF4VGltZSkge1xyXG4gICAgICB0aGlzLnRpbWVyID0gbnVsbDtcclxuICAgICAgdGhpcy5sYXN0VXBkYXRlZCA9IG1vbWVudCgpO1xyXG4gICAgICB0aGlzLm1vZGFsT3BlbmVyU2VydmljZVxyXG4gICAgICAgIC5vcGVuKE1vZGFsVHlwZXMuQXV0b0xvZ291dCwgdGhpcy5hdXRvTG9nb3V0Q29uZmlnLCB7fSlcclxuICAgICAgICAudGhlbigobG9nb3V0OiBMb2dvdXRFbnVtKSA9PiB7XHJcbiAgICAgICAgICBpZiAobG9nb3V0ICE9PSBMb2dvdXRFbnVtLkxPR09VVCkge1xyXG4gICAgICAgICAgICB0aGlzLl91cGRhdGVUaW1lcigpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fand0VG9rZW4gPSBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fdXBkYXRlVGltZXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRIZWFkZXJzKCk6IG9iamVjdDtcclxufVxyXG4iXX0=
|