@coolon/angular-ui-powerups 0.0.90 → 0.0.92
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/bundles/coolon-angular-ui-powerups.umd.js +432 -364
- package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
- package/coolon-angular-ui-powerups.d.ts +7 -7
- package/coolon-angular-ui-powerups.metadata.json +1 -1
- package/esm2015/coolon-angular-ui-powerups.js +8 -8
- package/esm2015/lib/directives/command.directive.js +28 -5
- package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +2 -7
- package/esm2015/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.js +3 -8
- package/esm2015/lib/interaction/interaction-context.js +70 -14
- package/esm2015/lib/interaction/services/dialog-interaction.service.js +11 -19
- package/esm2015/lib/place/navigation-session.js +171 -39
- package/esm2015/lib/place/place-component.js +4 -19
- package/esm2015/lib/place/place-router.js +72 -31
- package/esm2015/lib/place/route/guards/enter-place-guard.service.js +2 -2
- package/esm2015/lib/place/route/guards/leave-place.guard.js +7 -177
- package/esm5/coolon-angular-ui-powerups.js +8 -8
- package/esm5/lib/directives/command.directive.js +32 -5
- package/esm5/lib/interaction/components/activity-container/activity-container.component.js +2 -11
- package/esm5/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.js +3 -12
- package/esm5/lib/interaction/interaction-context.js +89 -27
- package/esm5/lib/interaction/services/dialog-interaction.service.js +11 -22
- package/esm5/lib/place/navigation-session.js +214 -54
- package/esm5/lib/place/place-component.js +4 -35
- package/esm5/lib/place/place-router.js +82 -37
- package/esm5/lib/place/route/guards/enter-place-guard.service.js +2 -2
- package/esm5/lib/place/route/guards/leave-place.guard.js +7 -176
- package/fesm2015/coolon-angular-ui-powerups.js +350 -299
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/fesm5/coolon-angular-ui-powerups.js +427 -359
- package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/directives/command.directive.d.ts +2 -0
- package/lib/interaction/components/activity-container/activity-container.component.d.ts +1 -2
- package/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.d.ts +3 -4
- package/lib/interaction/interaction-context.d.ts +6 -3
- package/lib/interaction/services/dialog-interaction.service.d.ts +3 -5
- package/lib/place/navigation-session.d.ts +26 -9
- package/lib/place/place-component.d.ts +4 -9
- package/lib/place/place-router.d.ts +8 -3
- package/lib/place/route/guards/leave-place.guard.d.ts +2 -10
- package/package.json +1 -1
|
@@ -3,101 +3,14 @@
|
|
|
3
3
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
|
-
import {
|
|
7
|
-
import { Injectable, Injector } from '@angular/core';
|
|
8
|
-
import { Router } from '@angular/router';
|
|
9
|
-
import { InteractionContext } from '../../../interaction/interaction-context';
|
|
6
|
+
import { Injectable } from '@angular/core';
|
|
10
7
|
import { PlaceRouter } from '../../place-router';
|
|
11
8
|
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "
|
|
13
|
-
import * as i2 from "../../place-router";
|
|
14
|
-
import * as i3 from "../../../interaction/interaction-context";
|
|
15
|
-
import * as i4 from "@angular/common";
|
|
9
|
+
import * as i1 from "../../place-router";
|
|
16
10
|
var LeavePlaceGuard = /** @class */ (function () {
|
|
17
|
-
function LeavePlaceGuard(
|
|
18
|
-
this.router = router;
|
|
19
|
-
this.injector = injector;
|
|
11
|
+
function LeavePlaceGuard(placeRouter) {
|
|
20
12
|
this.placeRouter = placeRouter;
|
|
21
|
-
this.dialogInteractionContext = dialogInteractionContext;
|
|
22
|
-
this.angularLocation = angularLocation;
|
|
23
13
|
}
|
|
24
|
-
// @Trace()
|
|
25
|
-
// @Trace()
|
|
26
|
-
/**
|
|
27
|
-
* @private
|
|
28
|
-
* @param {?} nextState
|
|
29
|
-
* @param {?} placeDefinition
|
|
30
|
-
* @return {?}
|
|
31
|
-
*/
|
|
32
|
-
LeavePlaceGuard.prototype.isLeavingTheCurrentPlace =
|
|
33
|
-
// @Trace()
|
|
34
|
-
/**
|
|
35
|
-
* @private
|
|
36
|
-
* @param {?} nextState
|
|
37
|
-
* @param {?} placeDefinition
|
|
38
|
-
* @return {?}
|
|
39
|
-
*/
|
|
40
|
-
function (nextState, placeDefinition) {
|
|
41
|
-
// TODO: this will break with child routes... need to examine the router states properly.
|
|
42
|
-
// console.log('canDeactivate', {
|
|
43
|
-
// staticPath: placeDefinitionPath,
|
|
44
|
-
// currentStateUrl: currentState.url,
|
|
45
|
-
// nextStateUrl: nextState.url
|
|
46
|
-
// // alreadyDeclined: this._alreadyAccepted
|
|
47
|
-
// });
|
|
48
|
-
// Example of the above when navigating to a different child route.
|
|
49
|
-
// canDeactivate {staticPath: "/hero-details",
|
|
50
|
-
// currentStateUrl: "/route-parameters/-1;dv=A;dl=a,b,c;rdv=A;rdl=a,b,c/hero-details",
|
|
51
|
-
// nextStateUrl: "/route-parameters/-1;dv=A;dl=a,b,c;rdv=A;rdl=a,b,c/hero-stats"
|
|
52
|
-
// }
|
|
53
|
-
// TODO: this will break with child routes... need to examine the router states properly.
|
|
54
|
-
// console.log('canDeactivate', {
|
|
55
|
-
// staticPath: placeDefinitionPath,
|
|
56
|
-
// currentStateUrl: currentState.url,
|
|
57
|
-
// nextStateUrl: nextState.url
|
|
58
|
-
// // alreadyDeclined: this._alreadyAccepted
|
|
59
|
-
// });
|
|
60
|
-
// Example of the above when navigating to a different child route.
|
|
61
|
-
// canDeactivate {staticPath: "/hero-details",
|
|
62
|
-
// currentStateUrl: "/route-parameters/-1;dv=A;dl=a,b,c;rdv=A;rdl=a,b,c/hero-details",
|
|
63
|
-
// nextStateUrl: "/route-parameters/-1;dv=A;dl=a,b,c;rdv=A;rdl=a,b,c/hero-stats"
|
|
64
|
-
// }
|
|
65
|
-
// Example clicking on router tab of the parent component (de-activates the parent due to route param changes)
|
|
66
|
-
// canDeactivate {
|
|
67
|
-
// staticPath: "/hero-stats",
|
|
68
|
-
// currentStateUrl: "/route-parameters/-1;dv=A;dl=a,b,c;rdv=A;rdl=a,b,c/hero-stats",
|
|
69
|
-
// nextStateUrl: "/route-parameters/"
|
|
70
|
-
// }
|
|
71
|
-
// canDeactivate {
|
|
72
|
-
// staticPath: "/route-parameters",
|
|
73
|
-
// currentStateUrl: "/route-parameters/-1;dv=A;dl=a,b,c;rdv=A;rdl=a,b,c/hero-stats",
|
|
74
|
-
// nextStateUrl: "/route-parameters/"
|
|
75
|
-
// }
|
|
76
|
-
// logger.class.js:54 ParameterSnapshot.sanitise -> {idModel: -1, pv: undefined, pl: Array(0), dv: undefined, dl: Array(0), …}
|
|
77
|
-
// parameter-snapshot.ts:20 {name: "idModel", mine: -1, theirs: null}
|
|
78
|
-
// place-router.ts:28 redirect path (3) ["route-parameters", "-1", {…}]
|
|
79
|
-
// canDeactivate {
|
|
80
|
-
// staticPath: "/hero-stats",
|
|
81
|
-
// currentStateUrl: "/route-parameters/-1;dv=A;dl=a,b,c;rdv=A;rdl=a,b,c/hero-stats",
|
|
82
|
-
// nextStateUrl: "/route-parameters/-1"
|
|
83
|
-
// }
|
|
84
|
-
// canDeactivate {
|
|
85
|
-
// staticPath: "/route-parameters",
|
|
86
|
-
// currentStateUrl: "/route-parameters/-1;dv=A;dl=a,b,c;rdv=A;rdl=a,b,c/hero-stats",
|
|
87
|
-
// nextStateUrl: "/route-parameters/-1"
|
|
88
|
-
// }
|
|
89
|
-
// logger.class.js:54 ParameterSnapshot.sanitise -> {idModel: -1, pv: undefined, pl: Array(0), dv: "A", dl: Array(3), …}
|
|
90
|
-
// parameter-snapshot.ts:20 {name: "dv", mine: "A", theirs: undefined}
|
|
91
|
-
// place-router.ts:28 redirect path (3) ["route-parameters", "-1", {…}]
|
|
92
|
-
// canDeactivate {
|
|
93
|
-
// staticPath: "/hero-stats",
|
|
94
|
-
// currentStateUrl: "/route-parameters/-1;dv=A;dl=a,b,c;rdv=A;rdl=a,b,c/hero-stats",
|
|
95
|
-
// nextStateUrl: "/route-parameters/-1;dv=A;dl=a,b,c;rdv=A;rdl=a,b,c"
|
|
96
|
-
// }
|
|
97
|
-
/** @type {?} */
|
|
98
|
-
var placeDefinitionPath = "/" + placeDefinition.path;
|
|
99
|
-
return !nextState.url.startsWith(placeDefinitionPath);
|
|
100
|
-
};
|
|
101
14
|
/**
|
|
102
15
|
* @param {?} component
|
|
103
16
|
* @param {?} currentRoute
|
|
@@ -114,72 +27,8 @@ var LeavePlaceGuard = /** @class */ (function () {
|
|
|
114
27
|
*/
|
|
115
28
|
function (component, currentRoute, currentState, nextState) {
|
|
116
29
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
117
|
-
var self_1, canLeave;
|
|
118
30
|
return tslib_1.__generator(this, function (_a) {
|
|
119
|
-
|
|
120
|
-
case 0:
|
|
121
|
-
if (!this.placeRouter.navigationSession.alreadyAccepted(component)) return [3 /*break*/, 1];
|
|
122
|
-
// We'll get called multiple times if there's any parameter sanitisation so
|
|
123
|
-
// we always return true if we accepted on a previous cycle of the current
|
|
124
|
-
// navigation session.
|
|
125
|
-
return [2 /*return*/, true];
|
|
126
|
-
case 1:
|
|
127
|
-
self_1 = this;
|
|
128
|
-
canLeave = true;
|
|
129
|
-
if (!this.isLeavingTheCurrentPlace(nextState, component.placeDefinition)) return [3 /*break*/, 4];
|
|
130
|
-
// we check the dialog interaction first, so that components that don't need to check if they're in an
|
|
131
|
-
// interaction during the canDeactivate cycle.
|
|
132
|
-
// TODO: Add tests: show dialog -> hit back -> same route
|
|
133
|
-
if (this.dialogInteractionContext.isActive()) {
|
|
134
|
-
console.log('cancelling', { activity: this.dialogInteractionContext.currentActivity });
|
|
135
|
-
this.dialogInteractionContext.currentActivity.cancel(null);
|
|
136
|
-
canLeave = false;
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
canLeave = true;
|
|
140
|
-
}
|
|
141
|
-
if (canLeave) {
|
|
142
|
-
// now check if the component has an active interaction. This will handle
|
|
143
|
-
// an inplace interaction contexts
|
|
144
|
-
if (component.interactionContext && component.interactionContext.isActive()) {
|
|
145
|
-
canLeave = false;
|
|
146
|
-
console.log('cancelling', { activity: component.interactionContext.currentActivity });
|
|
147
|
-
component.interactionContext.currentActivity.cancel(null);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
if (!canLeave) return [3 /*break*/, 3];
|
|
151
|
-
return [4 /*yield*/, component.canDeactivate()];
|
|
152
|
-
case 2:
|
|
153
|
-
// TODO: Add tests: hit back -> confirm leave dialog -> hit back -> close dialog -> hit back -> confirm leave dialog.
|
|
154
|
-
canLeave = _a.sent();
|
|
155
|
-
_a.label = 3;
|
|
156
|
-
case 3: return [3 /*break*/, 5];
|
|
157
|
-
case 4:
|
|
158
|
-
if (this.dialogInteractionContext.isActive()) {
|
|
159
|
-
console.log('cancelling', { activity: this.dialogInteractionContext.currentActivity });
|
|
160
|
-
this.dialogInteractionContext.currentActivity.cancel(null);
|
|
161
|
-
canLeave = false;
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
canLeave = true;
|
|
165
|
-
}
|
|
166
|
-
_a.label = 5;
|
|
167
|
-
case 5:
|
|
168
|
-
if (canLeave) {
|
|
169
|
-
// We'll get called multiple times if there's any parameter sanitisation so
|
|
170
|
-
// we remember the acceptance for the duration of the current navigation session.
|
|
171
|
-
self_1.placeRouter.navigationSession.rememberAcceptanceOf(component);
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
// Angular doesn't preserve the url when a guard cancels the back button.
|
|
175
|
-
// See https://github.com/angular/angular/issues/13586#issuecomment-432795720
|
|
176
|
-
if (this.placeRouter.navigationSession.isPopState) {
|
|
177
|
-
console.log('cancelled during popstate');
|
|
178
|
-
this.angularLocation.go(this.placeRouter.navigationSession.popStateReturnUrl);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
return [2 /*return*/, canLeave];
|
|
182
|
-
}
|
|
31
|
+
return [2 /*return*/, this.placeRouter.navigationSession.canDeactivate(component, this.placeRouter.parseUrl(nextState))];
|
|
183
32
|
});
|
|
184
33
|
});
|
|
185
34
|
};
|
|
@@ -190,35 +39,17 @@ var LeavePlaceGuard = /** @class */ (function () {
|
|
|
190
39
|
];
|
|
191
40
|
/** @nocollapse */
|
|
192
41
|
LeavePlaceGuard.ctorParameters = function () { return [
|
|
193
|
-
{ type:
|
|
194
|
-
{ type: Injector },
|
|
195
|
-
{ type: PlaceRouter },
|
|
196
|
-
{ type: InteractionContext },
|
|
197
|
-
{ type: Location }
|
|
42
|
+
{ type: PlaceRouter }
|
|
198
43
|
]; };
|
|
199
|
-
/** @nocollapse */ LeavePlaceGuard.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function LeavePlaceGuard_Factory() { return new LeavePlaceGuard(i0.ɵɵinject(i1.
|
|
44
|
+
/** @nocollapse */ LeavePlaceGuard.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function LeavePlaceGuard_Factory() { return new LeavePlaceGuard(i0.ɵɵinject(i1.PlaceRouter)); }, token: LeavePlaceGuard, providedIn: "root" });
|
|
200
45
|
return LeavePlaceGuard;
|
|
201
46
|
}());
|
|
202
47
|
export { LeavePlaceGuard };
|
|
203
48
|
if (false) {
|
|
204
|
-
/**
|
|
205
|
-
* @type {?}
|
|
206
|
-
* @private
|
|
207
|
-
*/
|
|
208
|
-
LeavePlaceGuard.prototype.router;
|
|
209
|
-
/**
|
|
210
|
-
* @type {?}
|
|
211
|
-
* @private
|
|
212
|
-
*/
|
|
213
|
-
LeavePlaceGuard.prototype.injector;
|
|
214
49
|
/**
|
|
215
50
|
* @type {?}
|
|
216
51
|
* @private
|
|
217
52
|
*/
|
|
218
53
|
LeavePlaceGuard.prototype.placeRouter;
|
|
219
|
-
/** @type {?} */
|
|
220
|
-
LeavePlaceGuard.prototype.dialogInteractionContext;
|
|
221
|
-
/** @type {?} */
|
|
222
|
-
LeavePlaceGuard.prototype.angularLocation;
|
|
223
54
|
}
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhdmUtcGxhY2UuZ3VhcmQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2Uvcm91dGUvZ3VhcmRzL2xlYXZlLXBsYWNlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBeUMsTUFBTSxFQUF1QixNQUFNLGlCQUFpQixDQUFDO0FBRXJHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRzlFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7O0FBRWpEO0lBS0UseUJBQW9CLE1BQWMsRUFDZCxRQUFrQixFQUNsQixXQUF3QixFQUN2Qix3QkFBNEMsRUFDNUMsZUFBeUI7UUFKMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDdkIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUFvQjtRQUM1QyxvQkFBZSxHQUFmLGVBQWUsQ0FBVTtJQUM5QyxDQUFDO0lBRUQsV0FBVzs7Ozs7Ozs7SUFDSCxrREFBd0I7Ozs7Ozs7O0lBQWhDLFVBQWlDLFNBQThCLEVBQUUsZUFBZ0M7UUFDL0YseUZBQXlGO1FBQ3pGLGlDQUFpQztRQUNqQyxxQ0FBcUM7UUFDckMsdUNBQXVDO1FBQ3ZDLGdDQUFnQztRQUNoQyw4Q0FBOEM7UUFDOUMsTUFBTTtRQUNOLG1FQUFtRTtRQUNuRSw4Q0FBOEM7UUFDOUMseUZBQXlGO1FBQ3pGLG1GQUFtRjtRQUNuRixJQUFJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lBa0NFLG1CQUFt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QUNGO3dCQUVELHNCQUFPLFFBQVEsRUFBQzs7OztLQUVuQjs7Z0JBdklGLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7Z0JBVCtDLE1BQU07Z0JBRGpDLFFBQVE7Z0JBTXBCLFdBQVc7Z0JBSFgsa0JBQWtCO2dCQUpsQixRQUFROzs7MEJBQWpCO0NBaUpDLEFBeElELElBd0lDO1NBcklZLGVBQWU7Ozs7OztJQUVkLGlDQUFzQjs7Ozs7SUFDdEIsbUNBQTBCOzs7OztJQUMxQixzQ0FBZ0M7O0lBQ2hDLG1EQUFxRDs7SUFDckQsMENBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkRlYWN0aXZhdGUsIFJvdXRlciwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUcmFjZSB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IEludGVyYWN0aW9uQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2ludGVyYWN0aW9uL2ludGVyYWN0aW9uLWNvbnRleHQnO1xuaW1wb3J0IHsgUGxhY2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wbGFjZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGxhY2VEZWZpbml0aW9uIH0gZnJvbSAnLi4vLi4vcGxhY2UtZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBQbGFjZVJvdXRlciB9IGZyb20gJy4uLy4uL3BsYWNlLXJvdXRlcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIExlYXZlUGxhY2VHdWFyZCBpbXBsZW1lbnRzIENhbkRlYWN0aXZhdGU8UGxhY2VDb21wb25lbnQ+IHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBwbGFjZVJvdXRlcjogUGxhY2VSb3V0ZXIsXG4gICAgICAgICAgICAgIHJlYWRvbmx5IGRpYWxvZ0ludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0LFxuICAgICAgICAgICAgICByZWFkb25seSBhbmd1bGFyTG9jYXRpb246IExvY2F0aW9uKSB7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBwcml2YXRlIGlzTGVhdmluZ1RoZUN1cnJlbnRQbGFjZShuZXh0U3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsIHBsYWNlRGVmaW5pdGlvbjogUGxhY2VEZWZpbml0aW9uKSB7XG4gICAgLy8gVE9ETzogdGhpcyB3aWxsIGJyZWFrIHdpdGggY2hpbGQgcm91dGVzLi4uIG5lZWQgdG8gZXhhbWluZSB0aGUgcm91dGVyIHN0YXRlcyBwcm9wZXJseS5cbiAgICAvLyBjb25zb2xlLmxvZygnY2FuRGVhY3RpdmF0ZScsIHtcbiAgICAvLyAgIHN0YXRpY1BhdGg6IHBsYWNlRGVmaW5pdGlvblBhdGgsXG4gICAgLy8gICBjdXJyZW50U3RhdGVVcmw6IGN1cnJlbnRTdGF0ZS51cmwsXG4gICAgLy8gICBuZXh0U3RhdGVVcmw6IG5leHRTdGF0ZS51cmxcbiAgICAvLyAgIC8vIGFscmVhZHlEZWNsaW5lZDogdGhpcy5fYWxyZWFkeUFjY2VwdGVkXG4gICAgLy8gfSk7XG4gICAgLy8gRXhhbXBsZSBvZiB0aGUgYWJvdmUgd2hlbiBuYXZpZ2F0aW5nIHRvIGEgZGlmZmVyZW50IGNoaWxkIHJvdXRlLlxuICAgIC8vIGNhbkRlYWN0aXZhdGUge3N0YXRpY1BhdGg6IFwiL2hlcm8tZGV0YWlsc1wiLFxuICAgIC8vICAgIGN1cnJlbnRTdGF0ZVVybDogXCIvcm91dGUtcGFyYW1ldGVycy8tMTtkdj1BO2RsPWEsYixjO3Jkdj1BO3JkbD1hLGIsYy9oZXJvLWRldGFpbHNcIixcbiAgICAvLyAgICBuZXh0U3RhdGVVcmw6IFwiL3JvdXRlLXBhcmFtZXRlcnMvLTE7ZHY9QTtkbD1hLGIsYztyZHY9QTtyZGw9YSxiLGMvaGVyby1zdGF0c1wiXG4gICAgLy8gfVxuXG4gICAgLy8gRXhhbXBsZSBjbGlja2luZyBvbiByb3V0ZXIgdGFiIG9mIHRoZSBwYXJlbnQgY29tcG9uZW50IChkZS1hY3RpdmF0ZXMgdGhlIHBhcmVudCBkdWUgdG8gcm91dGUgcGFyYW0gY2hhbmdlcylcbiAgICAvLyBjYW5EZWFjdGl2YXRlIHtcbiAgICAvLyAgICBzdGF0aWNQYXRoOiBcIi9oZXJvLXN0YXRzXCIsXG4gICAgLy8gICAgY3VycmVudFN0YXRlVXJsOiBcIi9yb3V0ZS1wYXJhbWV0ZXJzLy0xO2R2PUE7ZGw9YSxiLGM7cmR2PUE7cmRsPWEsYixjL2hlcm8tc3RhdHNcIixcbiAgICAvLyAgICBuZXh0U3RhdGVVcmw6IFwiL3JvdXRlLXBhcmFtZXRlcnMvXCJcbiAgICAvLyB9XG4gICAgLy8gY2FuRGVhY3RpdmF0ZSB7XG4gICAgLy8gICAgc3RhdGljUGF0aDogXCIvcm91dGUtcGFyYW1ldGVyc1wiLFxuICAgIC8vICAgIGN1cnJlbnRTdGF0ZVVybDogXCIvcm91dGUtcGFyYW1ldGVycy8tMTtkdj1BO2RsPWEsYixjO3Jkdj1BO3JkbD1hLGIsYy9oZXJvLXN0YXRzXCIsXG4gICAgLy8gICAgbmV4dFN0YXRlVXJsOiBcIi9yb3V0ZS1wYXJhbWV0ZXJzL1wiXG4gICAgLy8gfVxuICAgIC8vIGxvZ2dlci5jbGFzcy5qczo1NCBQYXJhbWV0ZXJTbmFwc2hvdC5zYW5pdGlzZSAtPiB7aWRNb2RlbDogLTEsIHB2OiB1bmRlZmluZWQsIHBsOiBBcnJheSgwKSwgZHY6IHVuZGVmaW5lZCwgZGw6IEFycmF5KDApLMKg4oCmfVxuICAgIC8vIHBhcmFtZXRlci1zbmFwc2hvdC50czoyMCB7bmFtZTogXCJpZE1vZGVsXCIsIG1pbmU6IC0xLCB0aGVpcnM6IG51bGx9XG4gICAgLy8gcGxhY2Utcm91dGVyLnRzOjI4IHJlZGlyZWN0IHBhdGggKDMpwqBbXCJyb3V0ZS1wYXJhbWV0ZXJzXCIsIFwiLTFcIiwge+KApn1dXG4gICAgLy8gY2FuRGVhY3RpdmF0ZSB7XG4gICAgLy8gICAgc3RhdGljUGF0aDogXCIvaGVyby1zdGF0c1wiLFxuICAgIC8vICAgIGN1cnJlbnRTdGF0ZVVybDogXCIvcm91dGUtcGFyYW1ldGVycy8tMTtkdj1BO2RsPWEsYixjO3Jkdj1BO3JkbD1hLGIsYy9oZXJvLXN0YXRzXCIsXG4gICAgLy8gICAgbmV4dFN0YXRlVXJsOiBcIi9yb3V0ZS1wYXJhbWV0ZXJzLy0xXCJcbiAgICAvLyB9XG4gICAgLy8gY2FuRGVhY3RpdmF0ZSB7XG4gICAgLy8gICAgc3RhdGljUGF0aDogXCIvcm91dGUtcGFyYW1ldGVyc1wiLFxuICAgIC8vICAgIGN1cnJlbnRTdGF0ZVVybDogXCIvcm91dGUtcGFyYW1ldGVycy8tMTtkdj1BO2RsPWEsYixjO3Jkdj1BO3JkbD1hLGIsYy9oZXJvLXN0YXRzXCIsXG4gICAgLy8gICAgbmV4dFN0YXRlVXJsOiBcIi9yb3V0ZS1wYXJhbWV0ZXJzLy0xXCJcbiAgICAvLyB9XG4gICAgLy8gbG9nZ2VyLmNsYXNzLmpzOjU0IFBhcmFtZXRlclNuYXBzaG90LnNhbml0aXNlIC0+IHtpZE1vZGVsOiAtMSwgcHY6IHVuZGVmaW5lZCwgcGw6IEFycmF5KDApLCBkdjogXCJBXCIsIGRsOiBBcnJheSgzKSzCoOKApn1cbiAgICAvLyBwYXJhbWV0ZXItc25hcHNob3QudHM6MjAge25hbWU6IFwiZHZcIiwgbWluZTogXCJBXCIsIHRoZWlyczogdW5kZWZpbmVkfVxuICAgIC8vIHBsYWNlLXJvdXRlci50czoyOCByZWRpcmVjdCBwYXRoICgzKcKgW1wicm91dGUtcGFyYW1ldGVyc1wiLCBcIi0xXCIsIHvigKZ9XVxuICAgIC8vIGNhbkRlYWN0aXZhdGUge1xuICAgIC8vICAgIHN0YXRpY1BhdGg6IFwiL2hlcm8tc3RhdHNcIixcbiAgICAvLyAgICBjdXJyZW50U3RhdGVVcmw6IFwiL3JvdXRlLXBhcmFtZXRlcnMvLTE7ZHY9QTtkbD1hLGIsYztyZHY9QTtyZGw9YSxiLGMvaGVyby1zdGF0c1wiLFxuICAgIC8vICAgIG5leHRTdGF0ZVVybDogXCIvcm91dGUtcGFyYW1ldGVycy8tMTtkdj1BO2RsPWEsYixjO3Jkdj1BO3JkbD1hLGIsY1wiXG4gICAgLy8gfVxuICAgIGNvbnN0IHBsYWNlRGVmaW5pdGlvblBhdGggPSBgLyR7cGxhY2VEZWZpbml0aW9uLnBhdGh9YDtcbiAgICByZXR1cm4gIW5leHRTdGF0ZS51cmwuc3RhcnRzV2l0aChwbGFjZURlZmluaXRpb25QYXRoKTtcbiAgfVxuXG4gIGFzeW5jIGNhbkRlYWN0aXZhdGUoY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCwgY3VycmVudFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBjdXJyZW50U3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsIG5leHRTdGF0ZT86IFJvdXRlclN0YXRlU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4+IHtcblxuICAgIGlmICh0aGlzLnBsYWNlUm91dGVyLm5hdmlnYXRpb25TZXNzaW9uLmFscmVhZHlBY2NlcHRlZChjb21wb25lbnQpKSB7XG4gICAgICAvLyBXZSdsbCBnZXQgY2FsbGVkIG11bHRpcGxlIHRpbWVzIGlmIHRoZXJlJ3MgYW55IHBhcmFtZXRlciBzYW5pdGlzYXRpb24gc29cbiAgICAgIC8vIHdlIGFsd2F5cyByZXR1cm4gdHJ1ZSBpZiB3ZSBhY2NlcHRlZCBvbiBhIHByZXZpb3VzIGN5Y2xlIG9mIHRoZSBjdXJyZW50XG4gICAgICAvLyBuYXZpZ2F0aW9uIHNlc3Npb24uXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgICBsZXQgY2FuTGVhdmUgPSB0cnVlO1xuXG4gICAgICBpZiAodGhpcy5pc0xlYXZpbmdUaGVDdXJyZW50UGxhY2UobmV4dFN0YXRlLCBjb21wb25lbnQucGxhY2VEZWZpbml0aW9uKSkge1xuICAgICAgICAvLyB3ZSBjaGVjayB0aGUgZGlhbG9nIGludGVyYWN0aW9uIGZpcnN0LCBzbyB0aGF0IGNvbXBvbmVudHMgdGhhdCBkb24ndCBuZWVkIHRvIGNoZWNrIGlmIHRoZXkncmUgaW4gYW5cbiAgICAgICAgLy8gaW50ZXJhY3Rpb24gZHVyaW5nIHRoZSBjYW5EZWFjdGl2YXRlIGN5Y2xlLlxuICAgICAgICAvLyBUT0RPOiBBZGQgdGVzdHM6IHNob3cgZGlhbG9nIC0+IGhpdCBiYWNrIC0+IHNhbWUgcm91dGVcbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nSW50ZXJhY3Rpb25Db250ZXh0LmlzQWN0aXZlKCkpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnY2FuY2VsbGluZycsIHsgYWN0aXZpdHk6IHRoaXMuZGlhbG9nSW50ZXJhY3Rpb25Db250ZXh0LmN1cnJlbnRBY3Rpdml0eSB9KTtcbiAgICAgICAgICB0aGlzLmRpYWxvZ0ludGVyYWN0aW9uQ29udGV4dC5jdXJyZW50QWN0aXZpdHkuY2FuY2VsKG51bGwpO1xuICAgICAgICAgIGNhbkxlYXZlID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2FuTGVhdmUgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNhbkxlYXZlKSB7XG4gICAgICAgICAgLy8gbm93IGNoZWNrIGlmIHRoZSBjb21wb25lbnQgaGFzIGFuIGFjdGl2ZSBpbnRlcmFjdGlvbi4gIFRoaXMgd2lsbCBoYW5kbGVcbiAgICAgICAgICAvLyBhbiBpbnBsYWNlIGludGVyYWN0aW9uIGNvbnRleHRzXG4gICAgICAgICAgaWYgKGNvbXBvbmVudC5pbnRlcmFjdGlvbkNvbnRleHQgJiYgY29tcG9uZW50LmludGVyYWN0aW9uQ29udGV4dC5pc0FjdGl2ZSgpKSB7XG4gICAgICAgICAgICBjYW5MZWF2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ2NhbmNlbGxpbmcnLCB7IGFjdGl2aXR5OiBjb21wb25lbnQuaW50ZXJhY3Rpb25Db250ZXh0LmN1cnJlbnRBY3Rpdml0eSB9KTtcbiAgICAgICAgICAgIGNvbXBvbmVudC5pbnRlcmFjdGlvbkNvbnRleHQuY3VycmVudEFjdGl2aXR5LmNhbmNlbChudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBObyBpbnRlcmFjdGlvbiBpbiBwcm9ncmVzcywgc28gYXNrIHRoZSBjb21wb25lbnQgLlxuICAgICAgICAvLyBUaGlzIG1heSBzdGFydCBhbiBpbnRlcmFjdGlvbiwgaGVuY2UgY2hlY2tpbmcgdGhlIGludGVyYWN0aW9uIGNvbnRleHQgYWJvdmUuIEkuZS4gaWYgdGhlIHBsYWNlIHBvcHMgdXAgdGhlIGRpYWxvZywgYW5kXG4gICAgICAgIC8vIHRoZSB1c2VyIGNsaWNrcyBiYWNrIGFnYWluLCB3ZSdsbCByZS1lbnRlciBoZXJlIGFuZCBnbyBiYW5nIHdoZW4gdGhlIGNvbXBvbmVudCB0cmllcyB0byBvcGVuIGFub3RoZXJcbiAgICAgICAgLy8gZGlhbG9nLlxuICAgICAgICBpZiAoY2FuTGVhdmUpIHtcbiAgICAgICAgICAvLyBUT0RPOiBBZGQgdGVzdHM6IGhpdCBiYWNrIC0+IGNvbmZpcm0gbGVhdmUgZGlhbG9nIC0+IGhpdCBiYWNrIC0+IGNsb3NlIGRpYWxvZyAtPiAgaGl0IGJhY2sgLT4gY29uZmlybSBsZWF2ZSBkaWFsb2cuXG4gICAgICAgICAgY2FuTGVhdmUgPSBhd2FpdCBjb21wb25lbnQuY2FuRGVhY3RpdmF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2UgYWxzbyBibG9jayBiYWNrIGJ1dHRvbiBwYXJhbWV0ZXIgY2hhbmdlcyB3aGlsZSB0aGUgZGlhbG9nIGlzIG9wZW4uXG4gICAgICAgIC8vIE5PVEU6IE5vdyB0aGF0IEknbSBjYXRjaGluZyBwYXJhbWV0ZXIgY2hhbmdlcyBJIGNvdWxkIHBvc3NpYmx5IHJldHJ5IHVzaW5nIGEgZnJhZ21lbnQgb3JcbiAgICAgICAgLy8gcXVlcnkgcGFyYW1ldGVyIHRvIHRyYWNrIHRoZSBkaWFsb2cgYmVpbmcgb3Blbi4gIFByZXZpb3VzbHkgSSB3YXMganVzdCBjaGVja2luZyB0aGlzIG9uXG4gICAgICAgIC8vIHBhdGggY2hhbmdlcy4uLiBpZiB0aGF0IHdvcmtlZCBpdCdkIGZpeCB0aGUgY2FzZSB3aGVyZSB0aGUgYmFjayBidXR0b24gYnJlYWtzIHdpdGggYW4gYWN0aXZpdHlcbiAgICAgICAgLy8gb3BlbiBvbiB0aGUgZmlyc3QgcGFnZTogaHR0cHM6Ly9jb29sb24uYXRsYXNzaWFuLm5ldC9icm93c2UvQVVQLTMzXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodGhpcy5kaWFsb2dJbnRlcmFjdGlvbkNvbnRleHQuaXNBY3RpdmUoKSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdjYW5jZWxsaW5nJywgeyBhY3Rpdml0eTogdGhpcy5kaWFsb2dJbnRlcmFjdGlvbkNvbnRleHQuY3VycmVudEFjdGl2aXR5IH0pO1xuICAgICAgICAgIHRoaXMuZGlhbG9nSW50ZXJhY3Rpb25Db250ZXh0LmN1cnJlbnRBY3Rpdml0eS5jYW5jZWwobnVsbCk7XG4gICAgICAgICAgY2FuTGVhdmUgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjYW5MZWF2ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGNhbkxlYXZlKSB7XG4gICAgICAgIC8vIFdlJ2xsIGdldCBjYWxsZWQgbXVsdGlwbGUgdGltZXMgaWYgdGhlcmUncyBhbnkgcGFyYW1ldGVyIHNhbml0aXNhdGlvbiBzb1xuICAgICAgICAvLyB3ZSByZW1lbWJlciB0aGUgYWNjZXB0YW5jZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBjdXJyZW50IG5hdmlnYXRpb24gc2Vzc2lvbi5cbiAgICAgICAgc2VsZi5wbGFjZVJvdXRlci5uYXZpZ2F0aW9uU2Vzc2lvbi5yZW1lbWJlckFjY2VwdGFuY2VPZihjb21wb25lbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQW5ndWxhciBkb2Vzbid0IHByZXNlcnZlIHRoZSB1cmwgd2hlbiBhIGd1YXJkIGNhbmNlbHMgdGhlIGJhY2sgYnV0dG9uLlxuICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTM1ODYjaXNzdWVjb21tZW50LTQzMjc5NTcyMFxuICAgICAgICBpZiAodGhpcy5wbGFjZVJvdXRlci5uYXZpZ2F0aW9uU2Vzc2lvbi5pc1BvcFN0YXRlKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ2NhbmNlbGxlZCBkdXJpbmcgcG9wc3RhdGUnKTtcbiAgICAgICAgICB0aGlzLmFuZ3VsYXJMb2NhdGlvbi5nbyh0aGlzLnBsYWNlUm91dGVyLm5hdmlnYXRpb25TZXNzaW9uLnBvcFN0YXRlUmV0dXJuVXJsKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2FuTGVhdmU7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhdmUtcGxhY2UuZ3VhcmQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2Uvcm91dGUvZ3VhcmRzL2xlYXZlLXBsYWNlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUVqRDtJQUtFLHlCQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUM1QyxDQUFDOzs7Ozs7OztJQUVLLHVDQUFhOzs7Ozs7O0lBQW5CLFVBQW9CLFNBQXlCLEVBQUUsWUFBb0MsRUFBRSxZQUFpQyxFQUFFLFNBQStCOzs7Z0JBQ3JKLHNCQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDOzs7S0FDMUc7O2dCQVZGLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7Z0JBSlEsV0FBVzs7OzBCQUhwQjtDQWdCQyxBQVhELElBV0M7U0FSWSxlQUFlOzs7Ozs7SUFFZCxzQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5EZWFjdGl2YXRlLCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFBsYWNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7IFBsYWNlUm91dGVyIH0gZnJvbSAnLi4vLi4vcGxhY2Utcm91dGVyJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTGVhdmVQbGFjZUd1YXJkIGltcGxlbWVudHMgQ2FuRGVhY3RpdmF0ZTxQbGFjZUNvbXBvbmVudD4ge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGxhY2VSb3V0ZXI6IFBsYWNlUm91dGVyKSB7XG4gIH1cblxuICBhc3luYyBjYW5EZWFjdGl2YXRlKGNvbXBvbmVudDogUGxhY2VDb21wb25lbnQsIGN1cnJlbnRSb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgY3VycmVudFN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBuZXh0U3RhdGU/OiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMucGxhY2VSb3V0ZXIubmF2aWdhdGlvblNlc3Npb24uY2FuRGVhY3RpdmF0ZShjb21wb25lbnQsIHRoaXMucGxhY2VSb3V0ZXIucGFyc2VVcmwobmV4dFN0YXRlKSk7XG4gIH1cbn1cbi8vIGFzeW5jIGNhbkRlYWN0aXZhdGUoY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCwgY3VycmVudFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBjdXJyZW50U3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsIG5leHRTdGF0ZT86IFJvdXRlclN0YXRlU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4+IHtcbi8vICAgY29uc3QgcGxhY2VEZWZpbml0aW9uUGF0aCA9IGAvJHtjb21wb25lbnQucGxhY2VEZWZpbml0aW9uLnBhdGh9YDtcbi8vXG4vLyAvLyBUT0RPOiBBZGQgdGVzdHNcbi8vIGlmICh0aGlzLnBsYWNlUm91dGVyLm5hdmlnYXRpb25TZXNzaW9uLmFscmVhZHlBY2NlcHRlZChjb21wb25lbnQpKSB7XG4vLyAgIC8vIFdlJ2xsIGdldCBjYWxsZWQgbXVsdGlwbGUgdGltZXMgaWYgdGhlcmUncyBhbnkgcGFyYW1ldGVyIHNhbml0aXNhdGlvbiBzb1xuLy8gICAvLyB3ZSBhbHdheXMgcmV0dXJuIHRydWUgaWYgd2UgYWNjZXB0ZWQgb24gYSBwcmV2aW91cyBjeWNsZSBvZiB0aGUgY3VycmVudFxuLy8gICAvLyBuYXZpZ2F0aW9uIHNlc3Npb24uXG4vLyAgIHJldHVybiB0cnVlO1xuLy8gfSBlbHNlIHtcbi8vICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4vLyAgIGxldCBjYW5MZWF2ZSA9IHRydWU7XG4vL1xuLy8gICBpZiAodGhpcy5pc0xlYXZpbmdUaGVDdXJyZW50UGxhY2UobmV4dFN0YXRlLCBjb21wb25lbnQucGxhY2VEZWZpbml0aW9uKSkge1xuLy8gICAgIC8vIHdlIGNoZWNrIHRoZSBpbnRlcmFjdGlvbiBmaXJzdCwgc28gdGhhdCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgbmVlZCB0byBjaGVjayBpZiB0aGV5J3JlIGluIGFuXG4vLyAgICAgLy8gaW50ZXJhY3Rpb24gZHVyaW5nIHRoZSBjYW5EZWFjdGl2YXRlIGN5Y2xlLlxuLy8gICAgIC8vIFRPRE86IEFkZCB0ZXN0czogc2hvdyBkaWFsb2cgLT4gaGl0IGJhY2sgLT4gc2FtZSByb3V0ZVxuLy8gICAgIGlmICh0aGlzLmludGVyYWN0aW9uQ29udGV4dC5pc0FjdGl2ZSgpKSB7XG4vLyAgICAgICBjYW5MZWF2ZSA9IGZhbHNlO1xuLy8gICAgICAgY29uc29sZS5sb2coJ2NhbmNlbGxpbmcnLCB7IGFjdGl2aXR5OiB0aGlzLmludGVyYWN0aW9uQ29udGV4dC5jdXJyZW50QWN0aXZpdHkgfSk7XG4vLyAgICAgICB0aGlzLmludGVyYWN0aW9uQ29udGV4dC5jdXJyZW50QWN0aXZpdHkuY2FuY2VsKG51bGwpO1xuLy8gICAgIH1cbi8vICAgICAvLyBObyBpbnRlcmFjdGlvbiBpbiBwcm9ncmVzcywgc28gYXNrIHRoZSBjb21wb25lbnQgLlxuLy8gICAgIC8vIFRoaXMgbWF5IHN0YXJ0IGFuIGludGVyYWN0aW9uLCBoZW5jZSBjaGVja2luZyB0aGUgaW50ZXJhY3Rpb24gY29udGV4dCBhYm92ZS4gSS5lLiBpZiB0aGUgcGxhY2UgcG9wcyB1cCB0aGUgZGlhbG9nLCBhbmRcbi8vICAgICAvLyB0aGUgdXNlciBjbGlja3MgYmFjayBhZ2Fpbiwgd2UnbGwgcmUtZW50ZXIgaGVyZSBhbmQgZ28gYmFuZyB3aGVuIHRoZSBjb21wb25lbnQgdHJpZXMgdG8gb3BlbiBhbm90aGVyXG4vLyAgICAgLy8gZGlhbG9nLlxuLy8gICAgIGlmIChjYW5MZWF2ZSkge1xuLy8gICAgICAgLy8gVE9ETzogQWRkIHRlc3RzOiBoaXQgYmFjayAtPiBjb25maXJtIGxlYXZlIGRpYWxvZyAtPiBoaXQgYmFjayAtPiBjbG9zZSBkaWFsb2cgLT4gIGhpdCBiYWNrIC0+IGNvbmZpcm0gbGVhdmUgZGlhbG9nLlxuLy8gICAgICAgY2FuTGVhdmUgPSBhd2FpdCBjb21wb25lbnQuY2FuRGVhY3RpdmF0ZSgpO1xuLy8gICAgIH1cbi8vXG4vL1xuLy8gICAgIC8vIFdlIGFsc28gYmxvY2sgYmFjayBidXR0b24gcGFyYW1ldGVyIGNoYW5nZXMgd2hpbGUgdGhlIGRpYWxvZyBpcyBvcGVuLlxuLy8gICAgIC8vIE5PVEU6IE5vdyB0aGF0IEknbSBjYXRjaGluZyBwYXJhbWV0ZXIgY2hhbmdlcyBJIGNvdWxkIHBvc3NpYmx5IHJldHJ5IHVzaW5nIGEgZnJhZ21lbnQgb3Jcbi8vICAgICAvLyBxdWVyeSBwYXJhbWV0ZXIgdG8gdHJhY2sgdGhlIGRpYWxvZyBiZWluZyBvcGVuLiAgUHJldmlvdXNseSBJIHdhcyBqdXN0IGNoZWNraW5nIHRoaXMgb25cbi8vICAgICAvLyBwYXRoIGNoYW5nZXMuLi4gaWYgdGhhdCB3b3JrZWQgaXQnZCBmaXggdGhlIGNhc2Ugd2hlcmUgdGhlIGJhY2sgYnV0dG9uIGJyZWFrcyB3aXRoIGFuIGFjdGl2aXR5XG4vLyAgICAgLy8gb3BlbiBvbiB0aGUgZmlyc3QgcGFnZTogaHR0cHM6Ly9jb29sb24uYXRsYXNzaWFuLm5ldC9icm93c2UvQVVQLTMzXG4vLyAgIH0gZWxzZSB7XG4vLyAgICAgaWYgKHRoaXMuaW50ZXJhY3Rpb25Db250ZXh0LmlzQWN0aXZlKCkpIHtcbi8vICAgICAgIGNvbnNvbGUubG9nKCdjYW5jZWxsaW5nJywgeyBhY3Rpdml0eTogdGhpcy5pbnRlcmFjdGlvbkNvbnRleHQuY3VycmVudEFjdGl2aXR5IH0pO1xuLy8gICAgICAgdGhpcy5pbnRlcmFjdGlvbkNvbnRleHQuY3VycmVudEFjdGl2aXR5LmNhbmNlbChudWxsKTtcbi8vICAgICAgIGNhbkxlYXZlID0gZmFsc2U7XG4vLyAgICAgfSBlbHNlIHtcbi8vICAgICAgIGNhbkxlYXZlID0gdHJ1ZTtcbi8vICAgICB9XG4vLyAgIH1cbi8vXG4vLyAgIGlmIChjYW5MZWF2ZSkge1xuLy8gICAgIC8vIFdlJ2xsIGdldCBjYWxsZWQgbXVsdGlwbGUgdGltZXMgaWYgdGhlcmUncyBhbnkgcGFyYW1ldGVyIHNhbml0aXNhdGlvbiBzb1xuLy8gICAgIC8vIHdlIHJlbWVtYmVyIHRoZSBhY2NlcHRhbmNlIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIGN1cnJlbnQgbmF2aWdhdGlvbiBzZXNzaW9uLlxuLy8gICAgIHNlbGYucGxhY2VSb3V0ZXIubmF2aWdhdGlvblNlc3Npb24ucmVtZW1iZXJBY2NlcHRhbmNlT2YoY29tcG9uZW50KTtcbi8vICAgfSBlbHNlIHtcbi8vICAgICAvLyBBbmd1bGFyIGRvZXNuJ3QgcHJlc2VydmUgdGhlIHVybCB3aGVuIGEgZ3VhcmQgY2FuY2VscyB0aGUgYmFjayBidXR0b24uXG4vLyAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzEzNTg2I2lzc3VlY29tbWVudC00MzI3OTU3MjBcbi8vICAgICBpZiAodGhpcy5wbGFjZVJvdXRlci5uYXZpZ2F0aW9uU2Vzc2lvbi5pc1BvcFN0YXRlKSB7XG4vLyAgICAgICBjb25zb2xlLmxvZygnY2FuY2VsbGVkIGR1cmluZyBwb3BzdGF0ZScpO1xuLy8gICAgICAgdGhpcy5hbmd1bGFyTG9jYXRpb24uZ28odGhpcy5wbGFjZVJvdXRlci5uYXZpZ2F0aW9uU2Vzc2lvbi5wb3BTdGF0ZVJldHVyblVybCk7XG4vLyAgICAgfVxuLy8gICB9XG4vL1xuLy8gICByZXR1cm4gY2FuTGVhdmU7XG4vLyB9XG4iXX0=
|