@osovitny/anatoly 3.16.37 → 3.16.39
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.
|
@@ -284,7 +284,7 @@ export class AuthService extends ApiServiceBase {
|
|
|
284
284
|
}
|
|
285
285
|
else {
|
|
286
286
|
if (authRequest) {
|
|
287
|
-
this.msalService.loginRedirect({ ...
|
|
287
|
+
this.msalService.loginRedirect({ ...authRequest, ...userFlowRequest });
|
|
288
288
|
}
|
|
289
289
|
else {
|
|
290
290
|
this.msalService.loginRedirect(userFlowRequest);
|
|
@@ -336,4 +336,4 @@ export class AuthService extends ApiServiceBase {
|
|
|
336
336
|
type: Inject,
|
|
337
337
|
args: [MSAL_GUARD_CONFIG]
|
|
338
338
|
}] }, { type: i4.MsalService }, { type: i4.MsalBroadcastService }]; }, null); })();
|
|
339
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2lhbS9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcUJBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBYyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQTZELE1BQU0scUJBQXFCLENBQUM7QUFDbkgsT0FBTyxFQUFtRCxTQUFTLEVBQWlCLDRCQUE0QixFQUM5RyxpQkFBaUIsRUFBRSxlQUFlLEVBQWdCLFdBQVcsRUFDOUQsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixLQUFLO0FBQ0wsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7Ozs7QUFVN0MsTUFBTSxPQUFPLFdBQVksU0FBUSxjQUFjO0lBS2pDO0lBQ0Y7SUFDQTtJQUdBO0lBQ0E7SUFDQTtJQVhPLGVBQWUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBQy9DLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFFckMsWUFDWSxJQUFnQixFQUNsQixNQUFjLEVBQ2QsVUFBNkIsRUFHN0IsZUFBdUMsRUFDdkMsV0FBd0IsRUFDeEIsb0JBQTBDO1FBQ2xELEtBQUssQ0FBQyxJQUFJLENBQUMs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Q0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3hFLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDcEMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNMO0lBQ0gsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLElBQUksSUFBSSxDQUFDO0lBQzlELENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFO1lBQy9CLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztRQUM5QyxPQUFPLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDO0lBQzNDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUMxQixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7UUFDOUMsT0FBTyxXQUFXLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQztJQUNoRCxDQUFDO3FFQS9YVSxXQUFXLHFHQVNaLGlCQUFpQjtnRUFUaEIsV0FBVyxXQUFYLFdBQVcsbUJBRlYsTUFBTTs7dUZBRVAsV0FBVztjQUh2QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7O3NCQVVJLE1BQU07dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDYgRGVjIDIwMThcclxuXHJcbiAgRGVzY3JpcHRpb246XHJcbiAgICBJZGVudGl0eSBhbmQgQWNjZXNzIE1hbmFnZW1lbnRcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgY2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIG9mLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTVNBTF9HVUFSRF9DT05GSUcsIE1zYWxCcm9hZGNhc3RTZXJ2aWNlLCBNc2FsR3VhcmRDb25maWd1cmF0aW9uLCBNc2FsU2VydmljZSB9IGZyb20gJ0BhenVyZS9tc2FsLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBBY2NvdW50SW5mbywgQXV0aGVudGljYXRpb25SZXN1bHQsIEV2ZW50TWVzc2FnZSwgRXZlbnRUeXBlLCBJZFRva2VuQ2xhaW1zLCBJbnRlcmFjdGlvblJlcXVpcmVkQXV0aEVycm9yLFxyXG4gIEludGVyYWN0aW9uU3RhdHVzLCBJbnRlcmFjdGlvblR5cGUsIFBvcHVwUmVxdWVzdCwgUHJvbXB0VmFsdWUsIFJlZGlyZWN0UmVxdWVzdCwgU2lsZW50UmVxdWVzdCwgU3NvU2lsZW50UmVxdWVzdFxyXG59IGZyb20gJ0BhenVyZS9tc2FsLWJyb3dzZXInO1xyXG5cclxuLy9BcHBcclxuaW1wb3J0IHsgQXBpU2VydmljZUJhc2UgfSBmcm9tICcuLi8uLi9kYXRhL2Jhc2UvYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvYXBwY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTVNBTEFwaUNvbmZpZyB9IGZyb20gJy4uL2NvbnN0cyc7XHJcbmltcG9ydCB7IE1TQUxSZWRpcmVjdCB9IGZyb20gJy4uL3JlZGlyZWN0JztcclxuaW1wb3J0IHsgTVNBTFV0aWxzIH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5pbXBvcnQgeyBNU0FMQjJDLCBQb2xpY3lUeXBlIH0gZnJvbSAnLi4vYjJjJztcclxuXHJcbnR5cGUgSWRUb2tlbkNsYWltc1dpdGhQb2xpY3lJZCA9IElkVG9rZW5DbGFpbXMgJiB7XHJcbiAgYWNyPzogc3RyaW5nLFxyXG4gIHRmcD86IHN0cmluZyxcclxufTtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIGV4dGVuZHMgQXBpU2VydmljZUJhc2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgbXNhbERlc3Ryb3lpbmckID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIGluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBhcHBDb250ZXh0OiBBcHBDb250ZXh0U2VydmljZSxcclxuXHJcbiAgICBASW5qZWN0KE1TQUxfR1VBUkRfQ09ORklHKVxyXG4gICAgcHJpdmF0ZSBtc2FsR3VhcmRDb25maWc6IE1zYWxHdWFyZENvbmZpZ3VyYXRpb24sXHJcbiAgICBwcml2YXRlIG1zYWxTZXJ2aWNlOiBNc2FsU2VydmljZSxcclxuICAgIHByaXZhdGUgbXNhbEJyb2FkY2FzdFNlcnZpY2U6IE1zYWxCcm9hZGNhc3RTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihodHRwKTtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLm1zYWxEZXN0cm95aW5nJC5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgICB0aGlzLm1zYWxEZXN0cm95aW5nJC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0KCkge1xyXG4gICAgdGhpcy5zZXREZWZhdWx0cygpO1xyXG5cclxuICAgIHRoaXMubXNhbFNlcnZpY2UuaW5pdGlhbGl6ZSgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG5cclxuICAgICAgY29uc29sZS5sb2coYG1zYWwuYXBwOiBpbml0TVNBTCBzdGFydGVkYCk7XHJcbiAgICAgIHRoaXMuaW5pdE1TQUwoKTtcclxuICAgICAgY29uc29sZS5sb2coYG1zYWwuYXBwOiBpbml0TVNBTCBmaW5pc2hlZGApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERlZmF1bHRzKCkge1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9BenVyZUFEL21pY3Jvc29mdC1hdXRoZW50aWNhdGlvbi1saWJyYXJ5LWZvci1qcy9ibG9iL2Rldi9zYW1wbGVzL21zYWwtYW5ndWxhci12My1zYW1wbGVzL2FuZ3VsYXItYjJjLXNhbXBsZS1hcHAvc3JjL2FwcC9hcHAuY29tcG9uZW50LnRzXHJcbiAgKi9cclxuICBwcml2YXRlIGluaXRNU0FMKCkge1xyXG4gICAgdGhpcy5tc2FsU2VydmljZS5oYW5kbGVSZWRpcmVjdE9ic2VydmFibGUoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzdWx0OiBBdXRoZW50aWNhdGlvblJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGBtc2FsLmFwcDogaGFuZGxlUmVkaXJlY3RPYnNlcnZhYmxlYCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UuZW5hYmxlQWNjb3VudFN0b3JhZ2VFdmVudHMoKTtcclxuICAgIHRoaXMubXNhbEJyb2FkY2FzdFNlcnZpY2UubXNhbFN1YmplY3QkLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKChtc2c6IEV2ZW50TWVzc2FnZSkgPT5cclxuICAgICAgICAgIG1zZy5ldmVudFR5cGUgPT09IEV2ZW50VHlwZS5JTklUSUFMSVpFX0VORCB8fFxyXG5cclxuICAgICAgICAgIC8vQUNDT1VOVF9BRERFRCBhbmQgQUNDT1VOVF9SRU1PVkVEIGV2ZW50cyBlbWl0dGVkIHdoZW4gYSB1c2VyIGxvZ3MgaW4gb3Igb3V0IG9mIGFub3RoZXIgdGFiIG9yIHdpbmRvd1xyXG4gICAgICAgICAgbXNnLmV2ZW50VHlwZSA9PT0gRXZlbnRUeXBlLkFDQ09VTlRfQURERUQgfHxcclxuICAgICAgICAgIG1zZy5ldmVudFR5cGUgPT09IEV2ZW50VHlwZS5BQ0NPVU5UX1JFTU9WRUQgfHxcclxuXHJcbiAgICAgICAgICAvL0xvZ2luIEZhaWx1cmVcclxuICAgICAgICAgIG1zZy5ldmVudFR5cGUgPT09IEV2ZW50VHlwZS5MT0dJTl9GQUlMVVJFIHx8XHJcbiAgICAgICAgICBtc2cuZXZlbnRUeXBlID09PSBFdmVudFR5cGUuQUNRVUlSRV9UT0tFTl9GQUlMVVJFIHx8XHJcblxyXG4gICAgICAgICAgLy9Mb2dPdXRcclxuICAgICAgICAgIG1zZy5ldmVudFR5cGUgPT09IEV2ZW50VHlwZS5MT0dPVVRfU1VDQ0VTUyB8fFxyXG5cclxuICAgICAgICAgIC8vTG9nSW5cclxuICAgICAgICAgIG1zZy5ldmVudFR5cGUgPT09IEV2ZW50VHlwZS5MT0dJTl9TVUNDRVNTIHx8XHJcbiAgICAgICAgICBtc2cuZXZlbnRUeXBlID09PSBFdmVudFR5cGUuQUNRVUlSRV9UT0tFTl9TVUNDRVNTIHx8XHJcbiAgICAgICAgICBtc2cuZXZlbnRUeXBlID09PSBFdmVudFR5cGUuU1NPX1NJTEVOVF9TVUNDRVNTXHJcbiAgICAgICAgKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5tc2FsRGVzdHJveWluZyQpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgobXNnOiBFdmVudE1lc3NhZ2UpID0+IHtcclxuICAgICAgICAvL0IyQ1xyXG4gICAgICAgIGxldCBzaWduVXBTaWduSW4gPSBNU0FMQjJDLmdldFBvbGljeUJ5VHlwZShQb2xpY3lUeXBlLnNpZ25VcFNpZ25Jbik7XHJcbiAgICAgICAgbGV0IGVkaXRQcm9maWxlID0gTVNBTEIyQy5nZXRQb2xpY3lCeVR5cGUoUG9saWN5VHlwZS5lZGl0UHJvZmlsZSk7XHJcbiAgICAgICAgbGV0IHJlc2V0UGFzc3dvcmQgPSBNU0FMQjJDLmdldFBvbGljeUJ5VHlwZShQb2xpY3lUeXBlLnJlc2V0UGFzc3dvcmQpO1xyXG5cclxuICAgICAgICBzd2l0Y2ggKG1zZy5ldmVudFR5cGUpIHtcclxuICAgICAgICAgIGNhc2UgRXZlbnRUeXBlLklOSVRJQUxJWkVfRU5EOlxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgbXNhbC5hcHA6IElOSVRJQUxJWkVfRU5EIGZpcmVkYCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGNhc2UgRXZlbnRUeXBlLkFDQ09VTlRfQURERUQ6XHJcbiAgICAgICAgICBjYXNlIEV2ZW50VHlwZS5BQ0NPVU5UX1JFTU9WRUQ6XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLmdldEFsbEFjY291bnRzKCkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lID0gXCIvXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgY2FzZSBFdmVudFR5cGUuTE9HSU5fRkFJTFVSRTpcclxuICAgICAgICAgIGNhc2UgRXZlbnRUeXBlLkFDUVVJUkVfVE9LRU5fRkFJTFVSRTpcclxuICAgICAgICAgICAgaWYgKCFNU0FMVXRpbHMuaXNCMkMoKSkge1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy9DaGVjayBmb3IgZm9yZ290IHBhc3N3b3JkIGVycm9yLiBMZWFybiBtb3JlIGFib3V0IEFBRCBlcnJvciBjb2RlcyBhdFxyXG4gICAgICAgICAgICAvL2h0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL2F6dXJlL2FjdGl2ZS1kaXJlY3RvcnkvZGV2ZWxvcC9yZWZlcmVuY2UtYWFkc3RzLWVycm9yLWNvZGVzXHJcbiAgICAgICAgICAgIGlmIChtc2cuZXJyb3IgJiYgbXNnLmVycm9yLm1lc3NhZ2UuaW5kZXhPZignQUFEQjJDOTAxMTgnKSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHJlc2V0UGFzc3dvcmRGbG93UmVxdWVzdDogUmVkaXJlY3RSZXF1ZXN0IHwgUG9wdXBSZXF1ZXN0ICA9IHtcclxuICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5OiByZXNldFBhc3N3b3JkLmF1dGhvcml0eSxcclxuICAgICAgICAgICAgICAgICAgc2NvcGVzOiBbXSxcclxuICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLmxvZ2luKHJlc2V0UGFzc3dvcmRGbG93UmVxdWVzdCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGNhc2UgRXZlbnRUeXBlLkxPR0lOX1NVQ0NFU1M6XHJcbiAgICAgICAgICBjYXNlIEV2ZW50VHlwZS5BQ1FVSVJFX1RPS0VOX1NVQ0NFU1M6XHJcbiAgICAgICAgICBjYXNlIEV2ZW50VHlwZS5TU09fU0lMRU5UX1NVQ0NFU1M6XHJcbiAgICAgICAgICAgIGxldCBwYXlsb2FkID0gbXNnLnBheWxvYWQgYXMgQXV0aGVudGljYXRpb25SZXN1bHQ7XHJcbiAgICAgICAgICAgIGlmICghcGF5bG9hZCkge1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKCFNU0FMVXRpbHMuaXNCMkMoKSkge1xyXG4gICAgICAgICAgICAgIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2Uuc2V0QWN0aXZlQWNjb3VudChwYXlsb2FkLmFjY291bnQpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy9CMkNcclxuICAgICAgICAgICAgbGV0IGlkdG9rZW4gPSBwYXlsb2FkLmlkVG9rZW5DbGFpbXMgYXMgSWRUb2tlbkNsYWltc1dpdGhQb2xpY3lJZDtcclxuXHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKlxyXG4gICAgICAgICAgICAgKiBzaWduVXBTaWduSW5cclxuICAgICAgICAgICAgICpcclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGlmIChpZHRva2VuLmFjciA9PT0gc2lnblVwU2lnbkluLm5hbWUgfHwgaWR0b2tlbi50ZnAgPT09IHNpZ25VcFNpZ25Jbi5uYW1lKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZS5zZXRBY3RpdmVBY2NvdW50KHBheWxvYWQuYWNjb3VudCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKlxyXG4gICAgICAgICAgICAgKiBlZGl0UHJvZmlsZVxyXG4gICAgICAgICAgICAgKlxyXG4gICAgICAgICAgICAgKiBGb3IgdGhlIHB1cnBvc2Ugb2Ygc2V0dGluZyBhbiBhY3RpdmUgYWNjb3VudCBmb3IgVUkgdXBkYXRlLCB3ZSB3YW50IHRvIGNvbnNpZGVyIG9ubHkgdGhlIGF1dGggcmVzcG9uc2UgcmVzdWx0aW5nXHJcbiAgICAgICAgICAgICAqIGZyb20gU1VTSSBmbG93LiBcImFjclwiIGNsYWltIGluIHRoZSBpZCB0b2tlbiB0ZWxscyB1cyB0aGUgcG9saWN5IChOT1RFOiBuZXdlciBwb2xpY2llcyBtYXkgdXNlIHRoZSBcInRmcFwiIGNsYWltIGluc3RlYWQpLlxyXG4gICAgICAgICAgICAgKiBUbyBsZWFybiBtb3JlIGFib3V0IEIyQyB0b2tlbnMsIHZpc2l0IGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL2F6dXJlL2FjdGl2ZS1kaXJlY3RvcnktYjJjL3Rva2Vucy1vdmVydmlld1xyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgaWYgKGlkdG9rZW4uYWNyID09PSBlZGl0UHJvZmlsZS5uYW1lIHx8IGlkdG9rZW4udGZwID09PSBlZGl0UHJvZmlsZS5uYW1lKSB7XHJcbiAgICAgICAgICAgICAgIGNvbnN0IHNpZ25JbkFjY291bnQgPSB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLmdldEFsbEFjY291bnRzKClcclxuICAgICAgICAgICAgICAgICAgLmZpbmQoKGFjY291bnQ6IEFjY291bnRJbmZvKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnQuaWRUb2tlbkNsYWltcz8ub2lkID09PSBpZHRva2VuLm9pZCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnQuaWRUb2tlbkNsYWltcz8uc3ViID09PSBpZHRva2VuLnN1YiAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICgoYWNjb3VudC5pZFRva2VuQ2xhaW1zIGFzIElkVG9rZW5DbGFpbXNXaXRoUG9saWN5SWQpLmFjciA9PT0gc2lnblVwU2lnbkluLm5hbWUgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjY291bnQuaWRUb2tlbkNsYWltcyBhcyBJZFRva2VuQ2xhaW1zV2l0aFBvbGljeUlkKS50ZnAgPT09IHNpZ25VcFNpZ25Jbi5uYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5mb3JjZVJlYXV0aGVudGljYXRlKHNpZ25JbkFjY291bnQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICpcclxuICAgICAgICAgICAgICogcmVzZXRQYXNzd29yZFxyXG4gICAgICAgICAgICAgKlxyXG4gICAgICAgICAgICAgKiBCZWxvdyB3ZSBhcmUgY2hlY2tpbmcgaWYgdGhlIHVzZXIgaXMgcmV0dXJuaW5nIGZyb20gdGhlIHJlc2V0IHBhc3N3b3JkIGZsb3cuXHJcbiAgICAgICAgICAgICAqIElmIHNvLCB3ZSB3aWxsIGFzayB0aGUgdXNlciB0byByZWF1dGhlbnRpY2F0ZSB3aXRoIHRoZWlyIG5ldyBwYXNzd29yZC5cclxuICAgICAgICAgICAgICogSWYgeW91IGRvIG5vdCB3YW50IHRoaXMgYmVoYXZpb3IgYW5kIHByZWZlciB5b3VyIHVzZXJzIHRvIHN0YXkgc2lnbmVkIGluIGluc3RlYWQsXHJcbiAgICAgICAgICAgICAqIHlvdSBjYW4gcmVwbGFjZSB0aGUgY29kZSBiZWxvdyB3aXRoIHRoZSBzYW1lIHBhdHRlcm4gdXNlZCBmb3IgaGFuZGxpbmcgdGhlIHJldHVybiBmcm9tXHJcbiAgICAgICAgICAgICAqIHByb2ZpbGUgZWRpdCBmbG93XHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBpZiAoaWR0b2tlbi5hY3IgPT09IHJlc2V0UGFzc3dvcmQubmFtZSB8fCBpZHRva2VuLnRmcCA9PT0gcmVzZXRQYXNzd29yZC5uYW1lKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5mb3JjZVJlYXV0aGVudGljYXRlKCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG1zZztcclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy5tc2FsQnJvYWRjYXN0U2VydmljZS5pblByb2dyZXNzJC5waXBlKFxyXG4gICAgICAgIGZpbHRlcigoc3RhdHVzOiBJbnRlcmFjdGlvblN0YXR1cykgPT5cclxuICAgICAgICAgIHN0YXR1cyA9PT0gSW50ZXJhY3Rpb25TdGF0dXMuU3RhcnR1cCB8fFxyXG4gICAgICAgICAgc3RhdHVzID09PSBJbnRlcmFjdGlvblN0YXR1cy5Ob25lXHJcbiAgICAgICAgKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5tc2FsRGVzdHJveWluZyQpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBJbnRlcmFjdGlvblN0YXR1cykgPT4ge1xyXG4gICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7XHJcbiAgICAgICAgICAvKipcclxuICAgICAgICAgICAqIEluaXRpYWwgc3RhdHVzIGJlZm9yZSBpbnRlcmFjdGlvbiBvY2N1cnNcclxuICAgICAgICAgICAqL1xyXG4gICAgICAgICAgY2FzZSBJbnRlcmFjdGlvblN0YXR1cy5TdGFydHVwOlxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgbXNhbC5hcHA6IEludGVyYWN0aW9uU3RhdHVzLlN0YXJ0dXBgKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgLyoqXHJcbiAgICAgICAgICAqIFN0YXR1cyBzZXQgd2hlbiBpbnRlcmFjdGlvbiBpcyBjb21wbGV0ZVxyXG4gICAgICAgICAgKi9cclxuICAgICAgICAgIGNhc2UgSW50ZXJhY3Rpb25TdGF0dXMuTm9uZTpcclxuICAgICAgICAgICAgY29uc29sZS5sb2coYG1zYWwuYXBwOiBJbnRlcmFjdGlvblN0YXR1cy5Ob25lYCk7XHJcblxyXG4gICAgICAgICAgICBNU0FMUmVkaXJlY3QuaGFuZGxlKHRoaXMucm91dGVyLCAnbXNhbEJyb2FkY2FzdFNlcnZpY2UuaW5Qcm9ncmVzcyQgSW50ZXJhY3Rpb25TdGF0dXMuTm9uZScpO1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrQW5kU2V0QWN0aXZlQWNjb3VudCgpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRBY3RpdmVBY2NvdW50KCk6IEFjY291bnRJbmZvIHwgbnVsbCB7XHJcbiAgICB0aGlzLmNoZWNrQW5kU2V0QWN0aXZlQWNjb3VudCgpO1xyXG4gICAgcmV0dXJuIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UuZ2V0QWN0aXZlQWNjb3VudCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja0FuZFNldEFjdGl2ZUFjY291bnQoKSB7XHJcbiAgICBsZXQgYWN0aXZlQWNjb3VudCA9IHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UuZ2V0QWN0aXZlQWNjb3VudCgpO1xyXG4gICAgbGV0IGFjY291bnRzID0gdGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZS5nZXRBbGxBY2NvdW50cygpO1xyXG5cclxuICAgIGlmICghYWN0aXZlQWNjb3VudCAmJiBhY2NvdW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2Uuc2V0QWN0aXZlQWNjb3VudChhY2NvdW50c1swXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzUG9wdXAocG9wdXA/OiBib29sZWFuKSB7XHJcbiAgICBpZiAodHlwZW9mIHBvcHVwID09PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1zYWxHdWFyZENvbmZpZy5pbnRlcmFjdGlvblR5cGUgPT09IEludGVyYWN0aW9uVHlwZS5Qb3B1cDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcG9wdXA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFjcXVpcmVUb2tlbigpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgbGV0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHNjb3BlczogTVNBTEFwaUNvbmZpZy5zY29wZXNcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc1BvcHVwKCkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubXNhbFNlcnZpY2UuYWNxdWlyZVRva2VuUG9wdXAocmVxdWVzdCkucGlwZShcclxuICAgICAgICBtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlID8gcmVzcG9uc2UuYWNjZXNzVG9rZW4gOiBudWxsO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubXNhbFNlcnZpY2UuYWNxdWlyZVRva2VuUmVkaXJlY3QocmVxdWVzdCkucGlwZShcclxuICAgICAgICBtYXAoKCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFVzZXJFbWFpbCgpIHtcclxuICAgIGxldCBjdXJyZW50VXNlciA9IHRoaXMuYXBwQ29udGV4dC5jdXJyZW50VXNlcjtcclxuICAgIGxldCBhY3RpdmVBY2NvdW50ID0gdGhpcy5nZXRBY3RpdmVBY2NvdW50KCk7XHJcblxyXG4gICAgaWYgKGFjdGl2ZUFjY291bnQpIHtcclxuICAgICAgcmV0dXJuIGFjdGl2ZUFjY291bnQudXNlcm5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGN1cnJlbnRVc2VyID8gY3VycmVudFVzZXIuRW1haWwgOiAnJztcclxuICB9XHJcblxyXG4gIGdldFVzZXJOYW1lKCkge1xyXG4gICAgbGV0IGN1cnJlbnRVc2VyID0gdGhpcy5hcHBDb250ZXh0LmN1cnJlbnRVc2VyO1xyXG4gICAgbGV0IGFjdGl2ZUFjY291bnQgPSB0aGlzLmdldEFjdGl2ZUFjY291bnQoKTtcclxuXHJcbiAgICBpZiAoYWN0aXZlQWNjb3VudCkge1xyXG4gICAgICByZXR1cm4gYWN0aXZlQWNjb3VudC5uYW1lID8gYWN0aXZlQWNjb3VudC5uYW1lIDogY3VycmVudFVzZXIgPyBjdXJyZW50VXNlci5kaXNwbGF5TmFtZU9yRnVsbE5hbWUgOiAnJztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY3VycmVudFVzZXIgPyBjdXJyZW50VXNlci5kaXNwbGF5TmFtZU9yRnVsbE5hbWUgOiAnJztcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICBWYWRpbU9TOlxyXG4gICAgV0FSTklORyB0byBhbGwgZGV2ZWxvcGVycyEgQmUgc3VyZSB0aGF0IHlvdSByZWFsbHkgbmVlZCB0byBkaXJlY3RseSBjYWxsIHRoaXMgbWV0aG9kIVxyXG4gICovXHJcbiAgZ2V0QWNjZXNzVG9rZW4ocmVxdWVzdFVybD86IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICBsZXQgYWN0aXZlQWNjb3VudCA9IHRoaXMuZ2V0QWN0aXZlQWNjb3VudCgpO1xyXG4gICAgbGV0IHNpbGVudFJlcXVlc3Q6IFNpbGVudFJlcXVlc3QgPSB7XHJcbiAgICAgIHNjb3BlczogTVNBTEFwaUNvbmZpZy5zY29wZXMsXHJcbiAgICAgIGFjY291bnQ6IGFjdGl2ZUFjY291bnRcclxuICAgIH07XHJcblxyXG4gICAgaWYgKGFjdGl2ZUFjY291bnQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubXNhbFNlcnZpY2UuYWNxdWlyZVRva2VuU2lsZW50KHNpbGVudFJlcXVlc3QpLnBpcGUoXHJcbiAgICAgICAgbWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZS5hY2Nlc3NUb2tlbjtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiU2lsZW50IHRva2VuIGFjcXVpc2l0aW9uIGZhaWxzLlwiKTtcclxuXHJcbiAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBJbnRlcmFjdGlvblJlcXVpcmVkQXV0aEVycm9yKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFjcXVpcmVUb2tlbigpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmFjcXVpcmVUb2tlbigpO1xyXG4gIH1cclxuXHJcbiAgZm9yY2VSZWF1dGhlbnRpY2F0ZShhY2NvdW50Pykge1xyXG4gICAgaWYgKE1TQUxVdGlscy5pc0IyQygpKSB7XHJcbiAgICAgIGxldCBzaWduVXBTaWduSW4gPSBNU0FMQjJDLmdldFBvbGljeUJ5VHlwZShQb2xpY3lUeXBlLnNpZ25VcFNpZ25Jbik7XHJcbiAgICAgIGxldCBzaWduVXBTaWduSW5GbG93UmVxdWVzdDogUmVkaXJlY3RSZXF1ZXN0IHwgUG9wdXBSZXF1ZXN0ICA9IHtcclxuICAgICAgICBhdXRob3JpdHk6IHNpZ25VcFNpZ25Jbi5hdXRob3JpdHksXHJcbiAgICAgICAgc2NvcGVzOiBbXSxcclxuICAgICAgICBwcm9tcHQ6IFByb21wdFZhbHVlLkxPR0lOLCAvLyBmb3JjZSB1c2VyIHRvIHJlYXV0aGVudGljYXRlIHdpdGggdGhlaXIgbmV3IHBhc3N3b3JkXHJcbiAgICAgICAgYWNjb3VudDogYWNjb3VudFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgdGhpcy5sb2dpbihzaWduVXBTaWduSW5GbG93UmVxdWVzdCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxvZ2luKHVzZXJGbG93UmVxdWVzdD86IFJlZGlyZWN0UmVxdWVzdCB8IFBvcHVwUmVxdWVzdCwgcG9wdXA/OiBib29sZWFuKSB7XHJcbiAgICBsZXQgYXV0aFJlcXVlc3RDZmc6IGFueSA9IHRoaXMubXNhbEd1YXJkQ29uZmlnLmF1dGhSZXF1ZXN0O1xyXG4gICAgbGV0IGF1dGhSZXF1ZXN0ID0gbnVsbDtcclxuXHJcbiAgICBpZiAoYXV0aFJlcXVlc3RDZmcpIHtcclxuICAgICAgYXV0aFJlcXVlc3QgPSBhdXRoUmVxdWVzdENmZyh0aGlzLm1zYWxTZXJ2aWNlLCB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNQb3B1cChwb3B1cCkpIHtcclxuICAgICAgaWYgKGF1dGhSZXF1ZXN0KSB7XHJcbiAgICAgICAgdGhpcy5tc2FsU2VydmljZS5sb2dpblBvcHVwKHsgLi4uYXV0aFJlcXVlc3QsIC4uLnVzZXJGbG93UmVxdWVzdCB9IGFzIFBvcHVwUmVxdWVzdCkuc3Vic2NyaWJlKChyZXNwb25zZTogQXV0aGVudGljYXRpb25SZXN1bHQpID0+IHtcclxuICAgICAgICAgIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2Uuc2V0QWN0aXZlQWNjb3VudChyZXNwb25zZS5hY2NvdW50KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLm1zYWxTZXJ2aWNlLmxvZ2luUG9wdXAodXNlckZsb3dSZXF1ZXN0KS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBBdXRoZW50aWNhdGlvblJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZS5zZXRBY3RpdmVBY2NvdW50KHJlc3BvbnNlLmFjY291bnQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKGF1dGhSZXF1ZXN0KSB7XHJcbiAgICAgICAgdGhpcy5tc2FsU2VydmljZS5sb2dpblJlZGlyZWN0KHsgLi4udGhpcy5tc2FsR3VhcmRDb25maWcuYXV0aFJlcXVlc3QsIC4uLnVzZXJGbG93UmVxdWVzdCB9IGFzIFJlZGlyZWN0UmVxdWVzdCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tc2FsU2VydmljZS5sb2dpblJlZGlyZWN0KHVzZXJGbG93UmVxdWVzdCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxvZ291dChwb3B1cD86IGJvb2xlYW4pIHtcclxuICAgIGxldCBhY3RpdmVBY2NvdW50ID0gdGhpcy5nZXRBY3RpdmVBY2NvdW50KCk7XHJcbiAgICBpZiAoIWFjdGl2ZUFjY291bnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlzUG9wdXAocG9wdXApKSB7XHJcbiAgICAgIHRoaXMubXNhbFNlcnZpY2UubG9nb3V0UG9wdXAoeyBhY2NvdW50OiBhY3RpdmVBY2NvdW50LCBtYWluV2luZG93UmVkaXJlY3RVcmk6IFwiL1wiIH0pLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hcHBDb250ZXh0LmNsZWFyV2ViU3RvcmFnZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLm1zYWxTZXJ2aWNlLmxvZ291dFJlZGlyZWN0KHsgYWNjb3VudDogYWN0aXZlQWNjb3VudCB9KS5waXBlKG1hcCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hcHBDb250ZXh0LmNsZWFyV2ViU3RvcmFnZSgpO1xyXG4gICAgICB9KSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc1VzZXJBdXRoZW50aWNhdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UuZ2V0QWN0aXZlQWNjb3VudCgpICE9IG51bGw7XHJcbiAgfVxyXG5cclxuICBpc1VzZXJTaWduZWRJbigpOiBib29sZWFuIHtcclxuICAgIGlmICghdGhpcy5pc1VzZXJBdXRoZW50aWNhdGVkKCkpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBjdXJyZW50VXNlciA9IHRoaXMuYXBwQ29udGV4dC5jdXJyZW50VXNlcjtcclxuICAgIHJldHVybiBjdXJyZW50VXNlciAmJiBjdXJyZW50VXNlci5Vc2VySUQ7XHJcbiAgfVxyXG5cclxuICBpc1VzZXJBZG1pbigpOiBib29sZWFuIHtcclxuICAgIGlmICghdGhpcy5pc1VzZXJTaWduZWRJbigpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgY3VycmVudFVzZXIgPSB0aGlzLmFwcENvbnRleHQuY3VycmVudFVzZXI7XHJcbiAgICByZXR1cm4gY3VycmVudFVzZXIgJiYgY3VycmVudFVzZXIuaXNVc2VyQWRtaW47XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
339
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2lhbS9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcUJBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBYyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQTZELE1BQU0scUJBQXFCLENBQUM7QUFDbkgsT0FBTyxFQUFtRCxTQUFTLEVBQWlCLDRCQUE0QixFQUM5RyxpQkFBaUIsRUFBRSxlQUFlLEVBQWdCLFdBQVcsRUFDOUQsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixLQUFLO0FBQ0wsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7Ozs7QUFVN0MsTUFBTSxPQUFPLFdBQVksU0FBUSxjQUFjO0lBS2pDO0lBQ0Y7SUFDQTtJQUdBO0lBQ0E7SUFDQTtJQVhPLGVBQWUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBQy9DLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFFckMsWUFDWSxJQUFnQixFQUNsQixNQUFjLEVBQ2QsVUFBNkIsRUFHN0IsZUFBdUMsRUFDdkMsV0FBd0IsRUFDeEIsb0JBQTBDO1FBQ2xELEtBQUssQ0FBQyxJQUFJLENBQUMs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Q0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUN4RSxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDTDtJQUNILENBQUM7SUFFRCxtQkFBbUI7UUFDakIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLElBQUksQ0FBQztJQUM5RCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsRUFBRTtZQUMvQixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7UUFDOUMsT0FBTyxXQUFXLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUMzQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDMUIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQzlDLE9BQU8sV0FBVyxJQUFJLFdBQVcsQ0FBQyxXQUFXLENBQUM7SUFDaEQsQ0FBQztxRUEvWFUsV0FBVyxxR0FTWixpQkFBaUI7Z0VBVGhCLFdBQVcsV0FBWCxXQUFXLG1CQUZWLE1BQU07O3VGQUVQLFdBQVc7Y0FIdkIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COztzQkFVSSxNQUFNO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW1Ab3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICA2IERlYyAyMDE4XHJcblxyXG4gIERlc2NyaXB0aW9uOlxyXG4gICAgSWRlbnRpdHkgYW5kIEFjY2VzcyBNYW5hZ2VtZW50XHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIGNhdGNoRXJyb3IsIGZpbHRlciwgbWFwLCBvZiwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE1TQUxfR1VBUkRfQ09ORklHLCBNc2FsQnJvYWRjYXN0U2VydmljZSwgTXNhbEd1YXJkQ29uZmlndXJhdGlvbiwgTXNhbFNlcnZpY2UgfSBmcm9tICdAYXp1cmUvbXNhbC1hbmd1bGFyJztcclxuaW1wb3J0IHsgQWNjb3VudEluZm8sIEF1dGhlbnRpY2F0aW9uUmVzdWx0LCBFdmVudE1lc3NhZ2UsIEV2ZW50VHlwZSwgSWRUb2tlbkNsYWltcywgSW50ZXJhY3Rpb25SZXF1aXJlZEF1dGhFcnJvcixcclxuICBJbnRlcmFjdGlvblN0YXR1cywgSW50ZXJhY3Rpb25UeXBlLCBQb3B1cFJlcXVlc3QsIFByb21wdFZhbHVlLCBSZWRpcmVjdFJlcXVlc3QsIFNpbGVudFJlcXVlc3QsIFNzb1NpbGVudFJlcXVlc3RcclxufSBmcm9tICdAYXp1cmUvbXNhbC1icm93c2VyJztcclxuXHJcbi8vQXBwXHJcbmltcG9ydCB7IEFwaVNlcnZpY2VCYXNlIH0gZnJvbSAnLi4vLi4vZGF0YS9iYXNlL2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2FwcGNvbnRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7IE1TQUxBcGlDb25maWcgfSBmcm9tICcuLi9jb25zdHMnO1xyXG5pbXBvcnQgeyBNU0FMUmVkaXJlY3QgfSBmcm9tICcuLi9yZWRpcmVjdCc7XHJcbmltcG9ydCB7IE1TQUxVdGlscyB9IGZyb20gJy4uL3V0aWxzJztcclxuaW1wb3J0IHsgTVNBTEIyQywgUG9saWN5VHlwZSB9IGZyb20gJy4uL2IyYyc7XHJcblxyXG50eXBlIElkVG9rZW5DbGFpbXNXaXRoUG9saWN5SWQgPSBJZFRva2VuQ2xhaW1zICYge1xyXG4gIGFjcj86IHN0cmluZyxcclxuICB0ZnA/OiBzdHJpbmcsXHJcbn07XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSBleHRlbmRzIEFwaVNlcnZpY2VCYXNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHJlYWRvbmx5IG1zYWxEZXN0cm95aW5nJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgYXBwQ29udGV4dDogQXBwQ29udGV4dFNlcnZpY2UsXHJcblxyXG4gICAgQEluamVjdChNU0FMX0dVQVJEX0NPTkZJRylcclxuICAgIHByaXZhdGUgbXNhbEd1YXJkQ29uZmlnOiBNc2FsR3VhcmRDb25maWd1cmF0aW9uLFxyXG4gICAgcHJpdmF0ZSBtc2FsU2VydmljZTogTXNhbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1zYWxCcm9hZGNhc3RTZXJ2aWNlOiBNc2FsQnJvYWRjYXN0U2VydmljZSkge1xyXG4gICAgc3VwZXIoaHR0cCk7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5tc2FsRGVzdHJveWluZyQubmV4dCh1bmRlZmluZWQpO1xyXG4gICAgdGhpcy5tc2FsRGVzdHJveWluZyQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdCgpIHtcclxuICAgIHRoaXMuc2V0RGVmYXVsdHMoKTtcclxuXHJcbiAgICB0aGlzLm1zYWxTZXJ2aWNlLmluaXRpYWxpemUoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKGBtc2FsLmFwcDogaW5pdE1TQUwgc3RhcnRlZGApO1xyXG4gICAgICB0aGlzLmluaXRNU0FMKCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKGBtc2FsLmFwcDogaW5pdE1TQUwgZmluaXNoZWRgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXREZWZhdWx0cygpIHtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICBodHRwczovL2dpdGh1Yi5jb20vQXp1cmVBRC9taWNyb3NvZnQtYXV0aGVudGljYXRpb24tbGlicmFyeS1mb3ItanMvYmxvYi9kZXYvc2FtcGxlcy9tc2FsLWFuZ3VsYXItdjMtc2FtcGxlcy9hbmd1bGFyLWIyYy1zYW1wbGUtYXBwL3NyYy9hcHAvYXBwLmNvbXBvbmVudC50c1xyXG4gICovXHJcbiAgcHJpdmF0ZSBpbml0TVNBTCgpIHtcclxuICAgIHRoaXMubXNhbFNlcnZpY2UuaGFuZGxlUmVkaXJlY3RPYnNlcnZhYmxlKCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3VsdDogQXV0aGVudGljYXRpb25SZXN1bHQpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhgbXNhbC5hcHA6IGhhbmRsZVJlZGlyZWN0T2JzZXJ2YWJsZWApO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLmVuYWJsZUFjY291bnRTdG9yYWdlRXZlbnRzKCk7XHJcbiAgICB0aGlzLm1zYWxCcm9hZGNhc3RTZXJ2aWNlLm1zYWxTdWJqZWN0JC5waXBlKFxyXG4gICAgICAgIGZpbHRlcigobXNnOiBFdmVudE1lc3NhZ2UpID0+XHJcbiAgICAgICAgICBtc2cuZXZlbnRUeXBlID09PSBFdmVudFR5cGUuSU5JVElBTElaRV9FTkQgfHxcclxuXHJcbiAgICAgICAgICAvL0FDQ09VTlRfQURERUQgYW5kIEFDQ09VTlRfUkVNT1ZFRCBldmVudHMgZW1pdHRlZCB3aGVuIGEgdXNlciBsb2dzIGluIG9yIG91dCBvZiBhbm90aGVyIHRhYiBvciB3aW5kb3dcclxuICAgICAgICAgIG1zZy5ldmVudFR5cGUgPT09IEV2ZW50VHlwZS5BQ0NPVU5UX0FEREVEIHx8XHJcbiAgICAgICAgICBtc2cuZXZlbnRUeXBlID09PSBFdmVudFR5cGUuQUNDT1VOVF9SRU1PVkVEIHx8XHJcblxyXG4gICAgICAgICAgLy9Mb2dpbiBGYWlsdXJlXHJcbiAgICAgICAgICBtc2cuZXZlbnRUeXBlID09PSBFdmVudFR5cGUuTE9HSU5fRkFJTFVSRSB8fFxyXG4gICAgICAgICAgbXNnLmV2ZW50VHlwZSA9PT0gRXZlbnRUeXBlLkFDUVVJUkVfVE9LRU5fRkFJTFVSRSB8fFxyXG5cclxuICAgICAgICAgIC8vTG9nT3V0XHJcbiAgICAgICAgICBtc2cuZXZlbnRUeXBlID09PSBFdmVudFR5cGUuTE9HT1VUX1NVQ0NFU1MgfHxcclxuXHJcbiAgICAgICAgICAvL0xvZ0luXHJcbiAgICAgICAgICBtc2cuZXZlbnRUeXBlID09PSBFdmVudFR5cGUuTE9HSU5fU1VDQ0VTUyB8fFxyXG4gICAgICAgICAgbXNnLmV2ZW50VHlwZSA9PT0gRXZlbnRUeXBlLkFDUVVJUkVfVE9LRU5fU1VDQ0VTUyB8fFxyXG4gICAgICAgICAgbXNnLmV2ZW50VHlwZSA9PT0gRXZlbnRUeXBlLlNTT19TSUxFTlRfU1VDQ0VTU1xyXG4gICAgICAgICksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMubXNhbERlc3Ryb3lpbmckKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKG1zZzogRXZlbnRNZXNzYWdlKSA9PiB7XHJcbiAgICAgICAgLy9CMkNcclxuICAgICAgICBsZXQgc2lnblVwU2lnbkluID0gTVNBTEIyQy5nZXRQb2xpY3lCeVR5cGUoUG9saWN5VHlwZS5zaWduVXBTaWduSW4pO1xyXG4gICAgICAgIGxldCBlZGl0UHJvZmlsZSA9IE1TQUxCMkMuZ2V0UG9saWN5QnlUeXBlKFBvbGljeVR5cGUuZWRpdFByb2ZpbGUpO1xyXG4gICAgICAgIGxldCByZXNldFBhc3N3b3JkID0gTVNBTEIyQy5nZXRQb2xpY3lCeVR5cGUoUG9saWN5VHlwZS5yZXNldFBhc3N3b3JkKTtcclxuXHJcbiAgICAgICAgc3dpdGNoIChtc2cuZXZlbnRUeXBlKSB7XHJcbiAgICAgICAgICBjYXNlIEV2ZW50VHlwZS5JTklUSUFMSVpFX0VORDpcclxuICAgICAgICAgICAgY29uc29sZS5sb2coYG1zYWwuYXBwOiBJTklUSUFMSVpFX0VORCBmaXJlZGApO1xyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICBjYXNlIEV2ZW50VHlwZS5BQ0NPVU5UX0FEREVEOlxyXG4gICAgICAgICAgY2FzZSBFdmVudFR5cGUuQUNDT1VOVF9SRU1PVkVEOlxyXG4gICAgICAgICAgICBpZiAodGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZS5nZXRBbGxBY2NvdW50cygpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSA9IFwiL1wiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGNhc2UgRXZlbnRUeXBlLkxPR0lOX0ZBSUxVUkU6XHJcbiAgICAgICAgICBjYXNlIEV2ZW50VHlwZS5BQ1FVSVJFX1RPS0VOX0ZBSUxVUkU6XHJcbiAgICAgICAgICAgIGlmICghTVNBTFV0aWxzLmlzQjJDKCkpIHtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vQ2hlY2sgZm9yIGZvcmdvdCBwYXNzd29yZCBlcnJvci4gTGVhcm4gbW9yZSBhYm91dCBBQUQgZXJyb3IgY29kZXMgYXRcclxuICAgICAgICAgICAgLy9odHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11cy9henVyZS9hY3RpdmUtZGlyZWN0b3J5L2RldmVsb3AvcmVmZXJlbmNlLWFhZHN0cy1lcnJvci1jb2Rlc1xyXG4gICAgICAgICAgICBpZiAobXNnLmVycm9yICYmIG1zZy5lcnJvci5tZXNzYWdlLmluZGV4T2YoJ0FBREIyQzkwMTE4JykgPiAtMSkge1xyXG4gICAgICAgICAgICAgIGxldCByZXNldFBhc3N3b3JkRmxvd1JlcXVlc3Q6IFJlZGlyZWN0UmVxdWVzdCB8IFBvcHVwUmVxdWVzdCAgPSB7XHJcbiAgICAgICAgICAgICAgICAgIGF1dGhvcml0eTogcmVzZXRQYXNzd29yZC5hdXRob3JpdHksXHJcbiAgICAgICAgICAgICAgICAgIHNjb3BlczogW10sXHJcbiAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5sb2dpbihyZXNldFBhc3N3b3JkRmxvd1JlcXVlc3QpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICBjYXNlIEV2ZW50VHlwZS5MT0dJTl9TVUNDRVNTOlxyXG4gICAgICAgICAgY2FzZSBFdmVudFR5cGUuQUNRVUlSRV9UT0tFTl9TVUNDRVNTOlxyXG4gICAgICAgICAgY2FzZSBFdmVudFR5cGUuU1NPX1NJTEVOVF9TVUNDRVNTOlxyXG4gICAgICAgICAgICBsZXQgcGF5bG9hZCA9IG1zZy5wYXlsb2FkIGFzIEF1dGhlbnRpY2F0aW9uUmVzdWx0O1xyXG4gICAgICAgICAgICBpZiAoIXBheWxvYWQpIHtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICghTVNBTFV0aWxzLmlzQjJDKCkpIHtcclxuICAgICAgICAgICAgICB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLnNldEFjdGl2ZUFjY291bnQocGF5bG9hZC5hY2NvdW50KTtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vQjJDXHJcbiAgICAgICAgICAgIGxldCBpZHRva2VuID0gcGF5bG9hZC5pZFRva2VuQ2xhaW1zIGFzIElkVG9rZW5DbGFpbXNXaXRoUG9saWN5SWQ7XHJcblxyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICpcclxuICAgICAgICAgICAgICogc2lnblVwU2lnbkluXHJcbiAgICAgICAgICAgICAqXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBpZiAoaWR0b2tlbi5hY3IgPT09IHNpZ25VcFNpZ25Jbi5uYW1lIHx8IGlkdG9rZW4udGZwID09PSBzaWduVXBTaWduSW4ubmFtZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2Uuc2V0QWN0aXZlQWNjb3VudChwYXlsb2FkLmFjY291bnQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICpcclxuICAgICAgICAgICAgICogZWRpdFByb2ZpbGVcclxuICAgICAgICAgICAgICpcclxuICAgICAgICAgICAgICogRm9yIHRoZSBwdXJwb3NlIG9mIHNldHRpbmcgYW4gYWN0aXZlIGFjY291bnQgZm9yIFVJIHVwZGF0ZSwgd2Ugd2FudCB0byBjb25zaWRlciBvbmx5IHRoZSBhdXRoIHJlc3BvbnNlIHJlc3VsdGluZ1xyXG4gICAgICAgICAgICAgKiBmcm9tIFNVU0kgZmxvdy4gXCJhY3JcIiBjbGFpbSBpbiB0aGUgaWQgdG9rZW4gdGVsbHMgdXMgdGhlIHBvbGljeSAoTk9URTogbmV3ZXIgcG9saWNpZXMgbWF5IHVzZSB0aGUgXCJ0ZnBcIiBjbGFpbSBpbnN0ZWFkKS5cclxuICAgICAgICAgICAgICogVG8gbGVhcm4gbW9yZSBhYm91dCBCMkMgdG9rZW5zLCB2aXNpdCBodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11cy9henVyZS9hY3RpdmUtZGlyZWN0b3J5LWIyYy90b2tlbnMtb3ZlcnZpZXdcclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGlmIChpZHRva2VuLmFjciA9PT0gZWRpdFByb2ZpbGUubmFtZSB8fCBpZHRva2VuLnRmcCA9PT0gZWRpdFByb2ZpbGUubmFtZSkge1xyXG4gICAgICAgICAgICAgICBjb25zdCBzaWduSW5BY2NvdW50ID0gdGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZS5nZXRBbGxBY2NvdW50cygpXHJcbiAgICAgICAgICAgICAgICAgIC5maW5kKChhY2NvdW50OiBBY2NvdW50SW5mbykgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50LmlkVG9rZW5DbGFpbXM/Lm9pZCA9PT0gaWR0b2tlbi5vaWQgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50LmlkVG9rZW5DbGFpbXM/LnN1YiA9PT0gaWR0b2tlbi5zdWIgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKGFjY291bnQuaWRUb2tlbkNsYWltcyBhcyBJZFRva2VuQ2xhaW1zV2l0aFBvbGljeUlkKS5hY3IgPT09IHNpZ25VcFNpZ25Jbi5uYW1lIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChhY2NvdW50LmlkVG9rZW5DbGFpbXMgYXMgSWRUb2tlbkNsYWltc1dpdGhQb2xpY3lJZCkudGZwID09PSBzaWduVXBTaWduSW4ubmFtZSlcclxuICAgICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMuZm9yY2VSZWF1dGhlbnRpY2F0ZShzaWduSW5BY2NvdW50KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqXHJcbiAgICAgICAgICAgICAqIHJlc2V0UGFzc3dvcmRcclxuICAgICAgICAgICAgICpcclxuICAgICAgICAgICAgICogQmVsb3cgd2UgYXJlIGNoZWNraW5nIGlmIHRoZSB1c2VyIGlzIHJldHVybmluZyBmcm9tIHRoZSByZXNldCBwYXNzd29yZCBmbG93LlxyXG4gICAgICAgICAgICAgKiBJZiBzbywgd2Ugd2lsbCBhc2sgdGhlIHVzZXIgdG8gcmVhdXRoZW50aWNhdGUgd2l0aCB0aGVpciBuZXcgcGFzc3dvcmQuXHJcbiAgICAgICAgICAgICAqIElmIHlvdSBkbyBub3Qgd2FudCB0aGlzIGJlaGF2aW9yIGFuZCBwcmVmZXIgeW91ciB1c2VycyB0byBzdGF5IHNpZ25lZCBpbiBpbnN0ZWFkLFxyXG4gICAgICAgICAgICAgKiB5b3UgY2FuIHJlcGxhY2UgdGhlIGNvZGUgYmVsb3cgd2l0aCB0aGUgc2FtZSBwYXR0ZXJuIHVzZWQgZm9yIGhhbmRsaW5nIHRoZSByZXR1cm4gZnJvbVxyXG4gICAgICAgICAgICAgKiBwcm9maWxlIGVkaXQgZmxvd1xyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgaWYgKGlkdG9rZW4uYWNyID09PSByZXNldFBhc3N3b3JkLm5hbWUgfHwgaWR0b2tlbi50ZnAgPT09IHJlc2V0UGFzc3dvcmQubmFtZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZm9yY2VSZWF1dGhlbnRpY2F0ZSgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBtc2c7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMubXNhbEJyb2FkY2FzdFNlcnZpY2UuaW5Qcm9ncmVzcyQucGlwZShcclxuICAgICAgICBmaWx0ZXIoKHN0YXR1czogSW50ZXJhY3Rpb25TdGF0dXMpID0+XHJcbiAgICAgICAgICBzdGF0dXMgPT09IEludGVyYWN0aW9uU3RhdHVzLlN0YXJ0dXAgfHxcclxuICAgICAgICAgIHN0YXR1cyA9PT0gSW50ZXJhY3Rpb25TdGF0dXMuTm9uZVxyXG4gICAgICAgICksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMubXNhbERlc3Ryb3lpbmckKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXR1czogSW50ZXJhY3Rpb25TdGF0dXMpID0+IHtcclxuICAgICAgICBzd2l0Y2ggKHN0YXR1cykge1xyXG4gICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgKiBJbml0aWFsIHN0YXR1cyBiZWZvcmUgaW50ZXJhY3Rpb24gb2NjdXJzXHJcbiAgICAgICAgICAgKi9cclxuICAgICAgICAgIGNhc2UgSW50ZXJhY3Rpb25TdGF0dXMuU3RhcnR1cDpcclxuICAgICAgICAgICAgY29uc29sZS5sb2coYG1zYWwuYXBwOiBJbnRlcmFjdGlvblN0YXR1cy5TdGFydHVwYCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgKiBTdGF0dXMgc2V0IHdoZW4gaW50ZXJhY3Rpb24gaXMgY29tcGxldGVcclxuICAgICAgICAgICovXHJcbiAgICAgICAgICBjYXNlIEludGVyYWN0aW9uU3RhdHVzLk5vbmU6XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBtc2FsLmFwcDogSW50ZXJhY3Rpb25TdGF0dXMuTm9uZWApO1xyXG5cclxuICAgICAgICAgICAgTVNBTFJlZGlyZWN0LmhhbmRsZSh0aGlzLnJvdXRlciwgJ21zYWxCcm9hZGNhc3RTZXJ2aWNlLmluUHJvZ3Jlc3MkIEludGVyYWN0aW9uU3RhdHVzLk5vbmUnKTtcclxuICAgICAgICAgICAgdGhpcy5jaGVja0FuZFNldEFjdGl2ZUFjY291bnQoKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QWN0aXZlQWNjb3VudCgpOiBBY2NvdW50SW5mbyB8IG51bGwge1xyXG4gICAgdGhpcy5jaGVja0FuZFNldEFjdGl2ZUFjY291bnQoKTtcclxuICAgIHJldHVybiB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLmdldEFjdGl2ZUFjY291bnQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tBbmRTZXRBY3RpdmVBY2NvdW50KCkge1xyXG4gICAgbGV0IGFjdGl2ZUFjY291bnQgPSB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLmdldEFjdGl2ZUFjY291bnQoKTtcclxuICAgIGxldCBhY2NvdW50cyA9IHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UuZ2V0QWxsQWNjb3VudHMoKTtcclxuXHJcbiAgICBpZiAoIWFjdGl2ZUFjY291bnQgJiYgYWNjb3VudHMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLnNldEFjdGl2ZUFjY291bnQoYWNjb3VudHNbMF0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1BvcHVwKHBvcHVwPzogYm9vbGVhbikge1xyXG4gICAgaWYgKHR5cGVvZiBwb3B1cCA9PT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICByZXR1cm4gdGhpcy5tc2FsR3VhcmRDb25maWcuaW50ZXJhY3Rpb25UeXBlID09PSBJbnRlcmFjdGlvblR5cGUuUG9wdXA7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHBvcHVwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhY3F1aXJlVG9rZW4oKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIGxldCByZXF1ZXN0ID0ge1xyXG4gICAgICBzY29wZXM6IE1TQUxBcGlDb25maWcuc2NvcGVzXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNQb3B1cCgpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1zYWxTZXJ2aWNlLmFjcXVpcmVUb2tlblBvcHVwKHJlcXVlc3QpLnBpcGUoXHJcbiAgICAgICAgbWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZSA/IHJlc3BvbnNlLmFjY2Vzc1Rva2VuIDogbnVsbDtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1zYWxTZXJ2aWNlLmFjcXVpcmVUb2tlblJlZGlyZWN0KHJlcXVlc3QpLnBpcGUoXHJcbiAgICAgICAgbWFwKCgpID0+IHtcclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyRW1haWwoKSB7XHJcbiAgICBsZXQgY3VycmVudFVzZXIgPSB0aGlzLmFwcENvbnRleHQuY3VycmVudFVzZXI7XHJcbiAgICBsZXQgYWN0aXZlQWNjb3VudCA9IHRoaXMuZ2V0QWN0aXZlQWNjb3VudCgpO1xyXG5cclxuICAgIGlmIChhY3RpdmVBY2NvdW50KSB7XHJcbiAgICAgIHJldHVybiBhY3RpdmVBY2NvdW50LnVzZXJuYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjdXJyZW50VXNlciA/IGN1cnJlbnRVc2VyLkVtYWlsIDogJyc7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyTmFtZSgpIHtcclxuICAgIGxldCBjdXJyZW50VXNlciA9IHRoaXMuYXBwQ29udGV4dC5jdXJyZW50VXNlcjtcclxuICAgIGxldCBhY3RpdmVBY2NvdW50ID0gdGhpcy5nZXRBY3RpdmVBY2NvdW50KCk7XHJcblxyXG4gICAgaWYgKGFjdGl2ZUFjY291bnQpIHtcclxuICAgICAgcmV0dXJuIGFjdGl2ZUFjY291bnQubmFtZSA/IGFjdGl2ZUFjY291bnQubmFtZSA6IGN1cnJlbnRVc2VyID8gY3VycmVudFVzZXIuZGlzcGxheU5hbWVPckZ1bGxOYW1lIDogJyc7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGN1cnJlbnRVc2VyID8gY3VycmVudFVzZXIuZGlzcGxheU5hbWVPckZ1bGxOYW1lIDogJyc7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAgVmFkaW1PUzpcclxuICAgIFdBUk5JTkcgdG8gYWxsIGRldmVsb3BlcnMhIEJlIHN1cmUgdGhhdCB5b3UgcmVhbGx5IG5lZWQgdG8gZGlyZWN0bHkgY2FsbCB0aGlzIG1ldGhvZCFcclxuICAqL1xyXG4gIGdldEFjY2Vzc1Rva2VuKHJlcXVlc3RVcmw/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgbGV0IGFjdGl2ZUFjY291bnQgPSB0aGlzLmdldEFjdGl2ZUFjY291bnQoKTtcclxuICAgIGxldCBzaWxlbnRSZXF1ZXN0OiBTaWxlbnRSZXF1ZXN0ID0ge1xyXG4gICAgICBzY29wZXM6IE1TQUxBcGlDb25maWcuc2NvcGVzLFxyXG4gICAgICBhY2NvdW50OiBhY3RpdmVBY2NvdW50XHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChhY3RpdmVBY2NvdW50KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1zYWxTZXJ2aWNlLmFjcXVpcmVUb2tlblNpbGVudChzaWxlbnRSZXF1ZXN0KS5waXBlKFxyXG4gICAgICAgIG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuYWNjZXNzVG9rZW47XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIlNpbGVudCB0b2tlbiBhY3F1aXNpdGlvbiBmYWlscy5cIik7XHJcblxyXG4gICAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSW50ZXJhY3Rpb25SZXF1aXJlZEF1dGhFcnJvcikge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hY3F1aXJlVG9rZW4oKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5hY3F1aXJlVG9rZW4oKTtcclxuICB9XHJcblxyXG4gIGZvcmNlUmVhdXRoZW50aWNhdGUoYWNjb3VudD8pIHtcclxuICAgIGlmIChNU0FMVXRpbHMuaXNCMkMoKSkge1xyXG4gICAgICBsZXQgc2lnblVwU2lnbkluID0gTVNBTEIyQy5nZXRQb2xpY3lCeVR5cGUoUG9saWN5VHlwZS5zaWduVXBTaWduSW4pO1xyXG4gICAgICBsZXQgc2lnblVwU2lnbkluRmxvd1JlcXVlc3Q6IFJlZGlyZWN0UmVxdWVzdCB8IFBvcHVwUmVxdWVzdCAgPSB7XHJcbiAgICAgICAgYXV0aG9yaXR5OiBzaWduVXBTaWduSW4uYXV0aG9yaXR5LFxyXG4gICAgICAgIHNjb3BlczogW10sXHJcbiAgICAgICAgcHJvbXB0OiBQcm9tcHRWYWx1ZS5MT0dJTiwgLy8gZm9yY2UgdXNlciB0byByZWF1dGhlbnRpY2F0ZSB3aXRoIHRoZWlyIG5ldyBwYXNzd29yZFxyXG4gICAgICAgIGFjY291bnQ6IGFjY291bnRcclxuICAgICAgfTtcclxuXHJcbiAgICAgIHRoaXMubG9naW4oc2lnblVwU2lnbkluRmxvd1JlcXVlc3QpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsb2dpbih1c2VyRmxvd1JlcXVlc3Q/OiBSZWRpcmVjdFJlcXVlc3QgfCBQb3B1cFJlcXVlc3QsIHBvcHVwPzogYm9vbGVhbikge1xyXG4gICAgbGV0IGF1dGhSZXF1ZXN0Q2ZnOiBhbnkgPSB0aGlzLm1zYWxHdWFyZENvbmZpZy5hdXRoUmVxdWVzdDtcclxuICAgIGxldCBhdXRoUmVxdWVzdCA9IG51bGw7XHJcblxyXG4gICAgaWYgKGF1dGhSZXF1ZXN0Q2ZnKSB7XHJcbiAgICAgIGF1dGhSZXF1ZXN0ID0gYXV0aFJlcXVlc3RDZmcodGhpcy5tc2FsU2VydmljZSwgdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3QpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlzUG9wdXAocG9wdXApKSB7XHJcbiAgICAgIGlmIChhdXRoUmVxdWVzdCkge1xyXG4gICAgICAgIHRoaXMubXNhbFNlcnZpY2UubG9naW5Qb3B1cCh7IC4uLmF1dGhSZXF1ZXN0LCAuLi51c2VyRmxvd1JlcXVlc3QgfSBhcyBQb3B1cFJlcXVlc3QpLnN1YnNjcmliZSgocmVzcG9uc2U6IEF1dGhlbnRpY2F0aW9uUmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLnNldEFjdGl2ZUFjY291bnQocmVzcG9uc2UuYWNjb3VudCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tc2FsU2VydmljZS5sb2dpblBvcHVwKHVzZXJGbG93UmVxdWVzdCkuc3Vic2NyaWJlKChyZXNwb25zZTogQXV0aGVudGljYXRpb25SZXN1bHQpID0+IHtcclxuICAgICAgICAgIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2Uuc2V0QWN0aXZlQWNjb3VudChyZXNwb25zZS5hY2NvdW50KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmIChhdXRoUmVxdWVzdCkge1xyXG4gICAgICAgIHRoaXMubXNhbFNlcnZpY2UubG9naW5SZWRpcmVjdCh7IC4uLmF1dGhSZXF1ZXN0LCAuLi51c2VyRmxvd1JlcXVlc3QgfSBhcyBSZWRpcmVjdFJlcXVlc3QpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMubXNhbFNlcnZpY2UubG9naW5SZWRpcmVjdCh1c2VyRmxvd1JlcXVlc3QpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsb2dvdXQocG9wdXA/OiBib29sZWFuKSB7XHJcbiAgICBsZXQgYWN0aXZlQWNjb3VudCA9IHRoaXMuZ2V0QWN0aXZlQWNjb3VudCgpO1xyXG4gICAgaWYgKCFhY3RpdmVBY2NvdW50KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc1BvcHVwKHBvcHVwKSkge1xyXG4gICAgICB0aGlzLm1zYWxTZXJ2aWNlLmxvZ291dFBvcHVwKHsgYWNjb3VudDogYWN0aXZlQWNjb3VudCwgbWFpbldpbmRvd1JlZGlyZWN0VXJpOiBcIi9cIiB9KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYXBwQ29udGV4dC5jbGVhcldlYlN0b3JhZ2UoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5tc2FsU2VydmljZS5sb2dvdXRSZWRpcmVjdCh7IGFjY291bnQ6IGFjdGl2ZUFjY291bnQgfSkucGlwZShtYXAoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYXBwQ29udGV4dC5jbGVhcldlYlN0b3JhZ2UoKTtcclxuICAgICAgfSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNVc2VyQXV0aGVudGljYXRlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLmdldEFjdGl2ZUFjY291bnQoKSAhPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgaXNVc2VyU2lnbmVkSW4oKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuaXNVc2VyQXV0aGVudGljYXRlZCgpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgY3VycmVudFVzZXIgPSB0aGlzLmFwcENvbnRleHQuY3VycmVudFVzZXI7XHJcbiAgICByZXR1cm4gY3VycmVudFVzZXIgJiYgY3VycmVudFVzZXIuVXNlcklEO1xyXG4gIH1cclxuXHJcbiAgaXNVc2VyQWRtaW4oKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuaXNVc2VyU2lnbmVkSW4oKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGN1cnJlbnRVc2VyID0gdGhpcy5hcHBDb250ZXh0LmN1cnJlbnRVc2VyO1xyXG4gICAgcmV0dXJuIGN1cnJlbnRVc2VyICYmIGN1cnJlbnRVc2VyLmlzVXNlckFkbWluO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -2902,7 +2902,7 @@ class AuthService extends ApiServiceBase {
|
|
|
2902
2902
|
}
|
|
2903
2903
|
else {
|
|
2904
2904
|
if (authRequest) {
|
|
2905
|
-
this.msalService.loginRedirect({ ...
|
|
2905
|
+
this.msalService.loginRedirect({ ...authRequest, ...userFlowRequest });
|
|
2906
2906
|
}
|
|
2907
2907
|
else {
|
|
2908
2908
|
this.msalService.loginRedirect(userFlowRequest);
|