@smartbit4all/ng-client 6.0.8 → 6.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/session/smart-backend-bootstrap.config.mjs +1 -1
- package/esm2022/lib/session/smart-backend-bootstrap.service.mjs +7 -4
- package/esm2022/lib/session/smart-error-catching.interceptor.mjs +3 -3
- package/esm2022/lib/session/smart-session.service.mjs +48 -23
- package/esm2022/lib/smart-generic-pages/search-page/search-page.component.mjs +3 -3
- package/esm2022/lib/smart-tree/smarttree.component.mjs +3 -3
- package/esm2022/lib/theme/theme.service.mjs +48 -0
- package/esm2022/lib/view-context/api/api/view.service.mjs +211 -1
- package/esm2022/lib/view-context/api/api-default/binaryContentData.mjs +2 -0
- package/esm2022/lib/view-context/api/model/deviceInfo.mjs +1 -1
- package/esm2022/lib/view-context/api/model/iconPosition.mjs +1 -1
- package/esm2022/lib/view-context/api/model/menuTriggerType.mjs +17 -0
- package/esm2022/lib/view-context/api/model/models.mjs +7 -1
- package/esm2022/lib/view-context/api/model/namedValidator.mjs +1 -1
- package/esm2022/lib/view-context/api/model/publishedViewData.mjs +13 -0
- package/esm2022/lib/view-context/api/model/shellProperty.mjs +13 -0
- package/esm2022/lib/view-context/api/model/smartLinkData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/themeDefinition.mjs +2 -0
- package/esm2022/lib/view-context/api/model/themeDescriptor.mjs +2 -0
- package/esm2022/lib/view-context/api/model/themeShellDescriptor.mjs +2 -0
- package/esm2022/lib/view-context/api/model/uiAction.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionDefinition.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionDefinitionEntry.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionInputType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionSchedule.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionUploadDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/view.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewEventHandler.mjs +1 -1
- package/esm2022/lib/view-context/projects.mjs +3 -2
- package/esm2022/lib/view-context/smart-ui-action/components/menu/click/menu.component.mjs +205 -0
- package/esm2022/lib/view-context/smart-ui-action/components/menu/hover/hover-menu.component.mjs +205 -0
- package/esm2022/lib/view-context/smart-ui-action/components/theme-selector/theme-selector.component.mjs +35 -0
- package/esm2022/lib/view-context/smart-ui-action/file-editor-toolbar/file-editor-toolbar.component.mjs +6 -4
- package/esm2022/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.mjs +18 -10
- package/esm2022/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +10 -7
- package/esm2022/lib/view-context/smart-ui-action/ui-action.service.mjs +13 -3
- package/esm2022/lib/view-context/smart-view-context.module.mjs +13 -7
- package/esm2022/lib/view-context/smart-view-context.service.mjs +14 -5
- package/esm2022/projects.mjs +2 -1
- package/fesm2022/smartbit4all-ng-client.mjs +895 -313
- package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
- package/lib/session/smart-backend-bootstrap.config.d.ts +9 -1
- package/lib/session/smart-backend-bootstrap.service.d.ts +3 -1
- package/lib/session/smart-error-catching.interceptor.d.ts +2 -1
- package/lib/session/smart-session.service.d.ts +18 -1
- package/lib/theme/theme.service.d.ts +17 -0
- package/lib/view-context/api/api/view.service.d.ts +94 -0
- package/lib/view-context/api/api-default/binaryContentData.d.ts +2 -0
- package/lib/view-context/api/model/deviceInfo.d.ts +1 -0
- package/lib/view-context/api/model/menuTriggerType.d.ts +15 -0
- package/lib/view-context/api/model/models.d.ts +6 -0
- package/lib/view-context/api/model/publishedViewData.d.ts +14 -0
- package/lib/view-context/api/model/shellProperty.d.ts +15 -0
- package/lib/view-context/api/model/themeDefinition.d.ts +22 -0
- package/lib/view-context/api/model/themeDescriptor.d.ts +16 -0
- package/lib/view-context/api/model/themeShellDescriptor.d.ts +17 -0
- package/lib/view-context/api/model/uiActionDescriptor.d.ts +2 -0
- package/lib/view-context/projects.d.ts +2 -1
- package/lib/view-context/smart-ui-action/components/menu/{menu.component.d.ts → click/menu.component.d.ts} +8 -7
- package/lib/view-context/smart-ui-action/components/menu/hover/hover-menu.component.d.ts +43 -0
- package/lib/view-context/smart-ui-action/components/theme-selector/theme-selector.component.d.ts +16 -0
- package/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.d.ts +1 -0
- package/lib/view-context/smart-ui-action/ui-action-toolbar.component.d.ts +2 -1
- package/lib/view-context/smart-ui-action/ui-action.service.d.ts +3 -1
- package/lib/view-context/smart-view-context.module.d.ts +56 -54
- package/lib/view-context/smart-view-context.service.d.ts +4 -2
- package/package.json +1 -1
- package/projects.d.ts +1 -0
- package/smartbit4all-ng-client-6.0.10.tgz +0 -0
- package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.component.mjs +0 -199
- package/smartbit4all-ng-client-6.0.8.tgz +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYmFja2VuZC1ib290c3RyYXAuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc2Vzc2lvbi9zbWFydC1iYWNrZW5kLWJvb3RzdHJhcC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBVaUFjdGlvbkRlc2NyaXB0b3IsIFVpQWN0aW9uUmVxdWVzdCB9IGZyb20gJy4uL3ZpZXctY29udGV4dC9hcGknO1xyXG5pbXBvcnQgeyBTbWFydFZpZXdIYW5kbGVyTW9kZWwgfSBmcm9tICcuLi92aWV3LWNvbnRleHQvc21hcnQtdmlldy1jb250ZXh0Lm1vZGVsJztcclxuaW1wb3J0IHsgU2Vzc2lvbkVycm9yIH0gZnJvbSAnLi9zbWFydC1zZXNzaW9uLWhhbmRsZXIuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogRXh0ZXJuYWxseSBwcm92aWRlZCBzZXNzaW9uICsgdmlld0NvbnRleHQgdG8gaHlkcmF0ZSB0aGUgYm9vdHN0cmFwIHdpdGgsXHJcbiAqIGJ5cGFzc2luZyB0aGUgcmVndWxhciBgc3RhcnQoKWAgZmxvdy4gVHlwaWNhbCB1c2UgY2FzZTogYSBuYXRpdmUgbW9iaWxlXHJcbiAqIHNoZWxsIHRoYXQgcGVyZm9ybWVkIGF1dGhlbnRpY2F0aW9uIGl0c2VsZiBhbmQgaGFuZHMgb2ZmIHRoZSByZXN1bHQgdG8gYVxyXG4gKiB3ZWJ2aWV3LWhvc3RlZCBBbmd1bGFyIGFwcCB2aWEgVVJMIGZyYWdtZW50LlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydEJhY2tlbmRCb290c3RyYXBDcmVkZW50aWFscyB7XHJcbiAgLyoqIFNJRCBpc3N1ZWQgYnkgdGhlIGJhY2tlbmQ7IHdpbGwgYmUgc2VudCBhcyBgQXV0aG9yaXphdGlvbjogQmVhcmVyIDxzZXNzaW9uVG9rZW4+YC4gKi9cclxuICBzZXNzaW9uVG9rZW46IHN0cmluZztcclxuICAvKiogVVVJRCBvZiBhbiBhbHJlYWR5LWV4aXN0aW5nIHZpZXdDb250ZXh0IG9uIHRoZSBiYWNrZW5kLiAqL1xyXG4gIHZpZXdDb250ZXh0VXVpZDogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIE9wdGlvbmFsIGxvbmctbGl2ZWQgcmVmcmVzaCB0b2tlbiBwYWlyZWQgd2l0aCB0aGUgU0lELiBJZiBwcm92aWRlZCwgaXQgaXNcclxuICAgKiBwZXJzaXN0ZWQgdG8gbG9jYWxTdG9yYWdlIHNvIHRoZSBhdXRvbm9tb3VzIGBTbWFydEVycm9yQ2F0Y2hpbmdJbnRlcmNlcHRvcmBcclxuICAgKiBSRUZSRVNIIGZsb3cgY2FuIHJlY292ZXIgZnJvbSBgc2Vzc2lvbi5leHBpcmVkYCBlcnJvcnMgd2l0aG91dCBkcm9wcGluZ1xyXG4gICAqIHRoZSB1c2VyIGJhY2sgdG8gYSBmcmVzaCBhbm9ueW1vdXMgc2Vzc2lvbi5cclxuICAgKi9cclxuICByZWZyZXNoVG9rZW4/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRCYWNrZW5kQm9vdHN0cmFwQ29uZmlnIHtcclxuICB1cmw6IHN0cmluZztcclxuICBjb29raWVOYW1lOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogVmlldyBuYW1lIHRoZSBiYWNrZW5kIHVzZXMgZm9yIGdlbmVyaWMgbWVzc2FnZSBkaWFsb2dzLiBEZWZhdWx0cyB0b1xyXG4gICAqIGAnbWVzc2FnZS1kaWFsb2cnYCAodGhlIHBsYXRmb3JtIGNvbnZlbnRpb24pIHdoZW4gb21pdHRlZC5cclxuICAgKi9cclxuICBtZXNzYWdlRGlhbG9nTmFtZT86IHN0cmluZztcclxuICB2aWV3SGFuZGxlcnM6IFNtYXJ0Vmlld0hhbmRsZXJNb2RlbFtdO1xyXG4gIGFjdGlvbkRlc2NyaXB0b3JzOiBNYXA8c3RyaW5nLCBVaUFjdGlvbkRlc2NyaXB0b3I+O1xyXG5cclxuICAvKiogT3B0aW9uYWwgb3ZlcnJpZGUgZm9yIHRoZSBkZWZhdWx0IGBoYW5kbGVTZXNzaW9uRXJyb3JgIGZsb3cuICovXHJcbiAgb25TZXNzaW9uRXJyb3I/OiAoZXJyOiBTZXNzaW9uRXJyb3IpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkO1xyXG5cclxuICAvKiogT3B0aW9uYWwgb3ZlcnJpZGUgZm9yIHRoZSBkZWZhdWx0IGBvcGVuU21hcnRMaW5rYCBoYW5kbGVyLiAqL1xyXG4gIG9uU21hcnRMaW5rPzogKGNoYW5uZWw6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XHJcblxyXG4gIC8qKiBIb29rIGZvciBob3N0IFVYIHdoZW4gYHN0YXJ0KClgIHJlamVjdHMgKHNuYWNrYmFyICsgcmV0cnkpLiAqL1xyXG4gIG9uU3RhcnRFcnJvcj86IChlcnI6IHVua25vd24pID0+IFByb21pc2U8dm9pZD4gfCB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBIb29rIGNhbGxlZCB3aGVuIGEgQkZGIGNhbGwgZmFpbHMgYXQgdGhlIHRyYW5zcG9ydCBsZXZlbCDigJQgc2VydmVyXHJcbiAgICogdW5yZWFjaGFibGUgKHN0YXR1cyAwKSwgZ2F0ZXdheS9zZXJ2aWNlLXVuYXZhaWxhYmxlICg1MDIvNTAzLzUwNCksIG9yXHJcbiAgICogZ2VuZXJpYyBzZXJ2ZXItZXJyb3IgKDUwMCkuIERlZmF1bHQ6IGEgY29uc29sZS53YXJuIGxpbmU7IHRoZSByZXF1ZXN0XHJcbiAgICogc3RpbGwgcmVqZWN0cyB3aXRoIHRoZSBvcmlnaW5hbCBlcnJvciwgYWxsb3dpbmcgcGVyLWNhbGwgaGFuZGxpbmcuXHJcbiAgICpcclxuICAgKiBGaXJlLWFuZC1mb3JnZXQ6IGV2ZXJ5IGZhaWxlZCByZXF1ZXN0IGludm9rZXMgdGhlIGhvb2sgKG5vIGRlZHVwKTsgdGhlXHJcbiAgICogaG9zdCBpcyByZXNwb25zaWJsZSBmb3Igb3duIFVJIGRlZHVwbGljYXRpb24gaWYgbmVlZGVkIChlLmcuIHNuYWNrYmFyXHJcbiAgICogd2l0aCBhIFwidGhpcyBtZXNzYWdlIGlzIGFscmVhZHkgc2hvd2luZ1wiIGd1YXJkKS5cclxuICAgKi9cclxuICBvblRyYW5zcG9ydEVycm9yPzogKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBIb29rIGNhbGxlZCB3aGVuIHRoZSBiYWNrZW5kIHJlcG9ydHMgdGhlIGN1cnJlbnQgdmlld0NvbnRleHQgaXMgZ29uZVxyXG4gICAqIChsb2dvdXQsIHNlc3Npb24gZXhwaXJ5LCBiYWNrZW5kIHJlc3RhcnQpIOKAlCBpLmUuIHdoZW4gdGhlXHJcbiAgICogYFNtYXJ0RXJyb3JDYXRjaGluZ0ludGVyY2VwdG9yYCB3b3VsZCBoaXN0b3JpY2FsbHkgYXV0by10cmlnZ2VyXHJcbiAgICogYFJFU1RBUlRfVklFV0NPTlRFWFRgLlxyXG4gICAqXHJcbiAgICogRGVmYXVsdDogcmVidWlsZHMgYSBmcmVzaCBhbm9ueW1vdXMgdmlld0NvbnRleHQgdmlhXHJcbiAgICogYHZpZXdDb250ZXh0LmluaXROZXdWaWV3Q29udGV4dCgpYCAodGhlIGhpc3RvcmljYWwgd2ViIGZsb3cpLlxyXG4gICAqXHJcbiAgICogTW9iaWxlL2VtYmVkZGVkIGhvc3RzIG92ZXJyaWRlIHRoaXMgdG8gZnVsbHkgZGVsZWdhdGUgdG8gdGhlIHNoZWxsIOKAlFxyXG4gICAqIHR5cGljYWxseSBieSBjYWxsaW5nIGEgSlMgYnJpZGdlIHRoYXQgc2lnbmFscyB0aGUgbmF0aXZlIHNpZGUgdG9cclxuICAgKiB0ZWFyIGRvd24gdGhlIHdlYnZpZXcgYW5kIHJldHVybiB0byB0aGUgbmF0aXZlIGxvZ2luIHBhZ2UuXHJcbiAgICovXHJcbiAgb25WaWV3Q29udGV4dExvc3Q/OiAoZXJyOiBTZXNzaW9uRXJyb3IpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBIb29rIGNhbGxlZCB3aGVuIGFuIGFjdGlvbiBpcyByZWplY3RlZCBieSB0aGUgc2VydmVyIGJ5IHJldHVybmluZyBhIDR4eCBzdGF0dXMgY29kZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSByZXEgdGhlIFVpQWN0aW9uUmVxdWVzdCBhdHRlbXB0ZWQgdG8gYmUgZXhlY3V0ZWRcclxuICAgKiBAcGFyYW0gZXJyIHRoZSBlcnJvciB0aGUgc2VydmVyIHJlc3BvbmRlZCB3aXRoXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBvbkFjdGlvbkVycm9yPzogKHJlcTogVWlBY3Rpb25SZXF1ZXN0LCBlcnI6IGFueSkgPT4gdm9pZDtcclxufVxyXG4iXX0=
|
|
@@ -2,6 +2,7 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "./smart-session.service";
|
|
4
4
|
import * as i2 from "../view-context/smart-view-context.service";
|
|
5
|
+
import * as i3 from "../view-context/smart-ui-action/ui-action.service";
|
|
5
6
|
/**
|
|
6
7
|
* Thrown by `whenReady()` when the viewcontext was rebuilt between the
|
|
7
8
|
* caller's entry into `whenReady()` and the gate releasing. Any uuid the
|
|
@@ -17,9 +18,10 @@ export class ViewContextRebuiltError extends Error {
|
|
|
17
18
|
}
|
|
18
19
|
}
|
|
19
20
|
export class SmartBackendBootstrapService {
|
|
20
|
-
constructor(session, viewContext) {
|
|
21
|
+
constructor(session, viewContext, uiActionService) {
|
|
21
22
|
this.session = session;
|
|
22
23
|
this.viewContext = viewContext;
|
|
24
|
+
this.uiActionService = uiActionService;
|
|
23
25
|
this.lastInitFailed = false;
|
|
24
26
|
}
|
|
25
27
|
configure(config) {
|
|
@@ -37,6 +39,7 @@ export class SmartBackendBootstrapService {
|
|
|
37
39
|
this.viewContext.openSmartLink.subscribe((channel) => {
|
|
38
40
|
this.handleSmartLink(channel);
|
|
39
41
|
});
|
|
42
|
+
this.uiActionService.setActionErrorHandler(config.onActionError ?? ((_, err) => console.log(err)));
|
|
40
43
|
}
|
|
41
44
|
async handleSmartLink(channel) {
|
|
42
45
|
if (this.config?.onSmartLink) {
|
|
@@ -204,11 +207,11 @@ export class SmartBackendBootstrapService {
|
|
|
204
207
|
this.runningSessionError = undefined;
|
|
205
208
|
}
|
|
206
209
|
}
|
|
207
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartBackendBootstrapService, deps: [{ token: i1.SmartSessionService }, { token: i2.SmartViewContextService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
210
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartBackendBootstrapService, deps: [{ token: i1.SmartSessionService }, { token: i2.SmartViewContextService }, { token: i3.UiActionService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
208
211
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartBackendBootstrapService, providedIn: 'root' }); }
|
|
209
212
|
}
|
|
210
213
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartBackendBootstrapService, decorators: [{
|
|
211
214
|
type: Injectable,
|
|
212
215
|
args: [{ providedIn: 'root' }]
|
|
213
|
-
}], ctorParameters: () => [{ type: i1.SmartSessionService }, { type: i2.SmartViewContextService }] });
|
|
214
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYmFja2VuZC1ib290c3RyYXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3Nlc3Npb24vc21hcnQtYmFja2VuZC1ib290c3RyYXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBVzNDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsS0FBSztJQUNoRDtRQUNFLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcseUJBQXlCLENBQUM7SUFDeEMsQ0FBQztDQUNGO0FBR0QsTUFBTSxPQUFPLDRCQUE0QjtJQVF2QyxZQUNVLE9BQTRCLEVBQzVCLFdBQW9DO1FBRHBDLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQVB0QyxtQkFBYyxHQUFHLEtBQUssQ0FBQztJQVE1QixDQUFDO0lBRUosU0FBUyxDQUFDLE1BQW1DO1FBQzNDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsdUZBQXVGLENBQUMsQ0FBQztZQUN0RyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBRXJCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU1QyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxNQUFN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LG1CQUFtQixFQUFFLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7UUFDbEMsQ0FBQztRQUNELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFFTyxLQUFLLENBQUMsZUFBZSxDQUFDLEdBQWlCO1FBQzdDLElBQUksQ0FBQztZQUNILElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdEMsT0FBTztZQUNULENBQUM7WUFDRCxrRkFBa0Y7WUFDbEYsaUZBQWlGO1lBQ2pGLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQy9DLENBQUM7Z0JBQVMsQ0FBQztZQUNULElBQUksQ0FBQyxtQkFBbUIsR0FBRyxTQUFTLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7K0dBdk5VLDRCQUE0QjttSEFBNUIsNEJBQTRCLGNBRGYsTUFBTTs7NEZBQ25CLDRCQUE0QjtrQkFEeEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTbWFydFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi9zbWFydC1zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbWFydFZpZXdDb250ZXh0U2VydmljZSB9IGZyb20gJy4uL3ZpZXctY29udGV4dC9zbWFydC12aWV3LWNvbnRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25FcnJvciwgU21hcnRTZXNzaW9uSGFuZGxlclNlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LXNlc3Npb24taGFuZGxlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBTbWFydEJhY2tlbmRCb290c3RyYXBDb25maWcsXHJcbiAgU21hcnRCYWNrZW5kQm9vdHN0cmFwQ3JlZGVudGlhbHMsXHJcbn0gZnJvbSAnLi9zbWFydC1iYWNrZW5kLWJvb3RzdHJhcC5jb25maWcnO1xyXG5cclxudHlwZSBCb290c3RyYXBNb2RlID0gJ3N0YXJ0JyB8ICdib290c3RyYXBXaXRoJztcclxuXHJcbi8qKlxyXG4gKiBUaHJvd24gYnkgYHdoZW5SZWFkeSgpYCB3aGVuIHRoZSB2aWV3Y29udGV4dCB3YXMgcmVidWlsdCBiZXR3ZWVuIHRoZVxyXG4gKiBjYWxsZXIncyBlbnRyeSBpbnRvIGB3aGVuUmVhZHkoKWAgYW5kIHRoZSBnYXRlIHJlbGVhc2luZy4gQW55IHV1aWQgdGhlXHJcbiAqIGNhbGxlciByZXNvbHZlZCBiZWZvcmUgZW50ZXJpbmcgaXMgbm93IHN0YWxlOyBgU21hcnRDb21wb25lbnRBcGlDbGllbnQucnVuKClgXHJcbiAqIGNhdGNoZXMgdGhpcyBhbmQgc2tpcHMgdGhlIGxvYWQg4oCUIHRoZSBjb21wb25lbnQgaXMgZXhwZWN0ZWQgdG8gcmVjZWl2ZSBhXHJcbiAqIGZyZXNoIHV1aWQgdGhyb3VnaCBgdXVpZE9mUGFnZUhhc0JlZW5DaGFuZ2VkYCAoTk9STUFMIHZpZXdzKSBvciB0byBiZVxyXG4gKiByZWNyZWF0ZWQgYnkgYG9wZW5WaWV3YCAoRU1CRURERUQvRElBTE9HIHZpZXdzKS5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBWaWV3Q29udGV4dFJlYnVpbHRFcnJvciBleHRlbmRzIEVycm9yIHtcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCdWaWV3Q29udGV4dFJlYnVpbHQnKTtcclxuICAgIHRoaXMubmFtZSA9ICdWaWV3Q29udGV4dFJlYnVpbHRFcnJvcic7XHJcbiAgfVxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgU21hcnRCYWNrZW5kQm9vdHN0cmFwU2VydmljZSBpbXBsZW1lbnRzIFNtYXJ0U2Vzc2lvbkhhbmRsZXJTZXJ2aWNlIHtcclxuICBwcml2YXRlIGNvbmZpZz86IFNtYXJ0QmFja2VuZEJvb3RzdHJhcENvbmZpZztcclxuICBwcml2YXRlIHJ1bm5pbmdJbml0PzogUHJvbWlzZTx2b2lkPjtcclxuICBwcml2YXRlIGxhc3RJbml0RmFpbGVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBtb2RlPzogQm9vdHN0cmFwTW9kZTtcclxuICBwcml2YXRlIHJ1bm5pbmdWaWV3Q29udGV4dExvc3Q/OiBQcm9taXNlPHZvaWQ+O1xyXG4gIHByaXZhdGUgcnVubmluZ1Nlc3Npb25FcnJvcj86IFByb21pc2U8dm9pZD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzZXNzaW9uOiBTbWFydFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGV4dDogU21hcnRWaWV3Q29udGV4dFNlcnZpY2UsXHJcbiAgKSB7fVxyXG5cclxuICBjb25maWd1cmUoY29uZmlnOiBTbWFydEJhY2tlbmRCb290c3RyYXBDb25maWcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNvbmZpZykge1xyXG4gICAgICBjb25zb2xlLndhcm4oJ1NtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2UgYWxyZWFkeSBjb25maWd1cmVkOyBpZ25vcmluZyBkdXBsaWNhdGUgY29uZmlndXJlKCkgY2FsbC4nKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XHJcblxyXG4gICAgdGhpcy5zZXNzaW9uLnNldFVybChjb25maWcudXJsKTtcclxuICAgIHRoaXMuc2Vzc2lvbi5zZXRDb29raWVOYW1lKGNvbmZpZy5jb29raWVOYW1lKTtcclxuICAgIHRoaXMuc2Vzc2lvbi5zZXRTZXNzaW9uSGFuZGxlclNlcnZpY2UodGhpcyk7XHJcblxyXG4gICAgdGhpcy52aWV3Q29udGV4dC5zZXRWaWV3SGFuZGxlcnMoY29uZmlnLnZpZXdIYW5kbGVycyk7XHJcbiAgICB0aGlzLnZpZXdDb250ZXh0LnNldE1lc3NhZ2VEaWFsb2dOYW1lKGNvbmZpZy5tZXNzYWdlRGlhbG9nTmFtZSA/PyAnbWVzc2FnZS1kaWFsb2cnKTtcclxuICAgIHRoaXMudmlld0NvbnRleHQuc2V0QWN0aW9uRGVzY3JpcHRvcnMoY29uZmlnLmFjdGlvbkRlc2NyaXB0b3JzKTtcclxuXHJcbiAgICB0aGlzLnZpZXdDb250ZXh0Lm9wZW5TbWFydExpbmsuc3Vic2NyaWJlKChjaGFubmVsOiBzdHJpbmcpID0+IHtcclxuICAgICAgdGhpcy5oYW5kbGVTbWFydExpbmsoY2hhbm5lbCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlU21hcnRMaW5rKGNoYW5uZWw6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnPy5vblNtYXJ0TGluaykge1xyXG4gICAgICBhd2FpdCB0aGlzLmNvbmZpZy5vblNtYXJ0TGluayhjaGFubmVsKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy8gRGVmYXVsdDogc2ltcGx5IHVuYmxvY2sgc2hvd1B1Ymxpc2hlZFZpZXcncyBgYXdhaXQgb3BlblNtYXJ0TGluay50b1Byb21pc2UoKWAuXHJcbiAgICAvLyBUaGUgdmlld0NvbnRleHQgaXMgYWxyZWFkeSBpbml0aWFsaXplZCBieSBzdGFydCgpL2Jvb3RzdHJhcFdpdGgoKSDigJQgY2FsbGluZ1xyXG4gICAgLy8gaW5pdGlhbGl6ZSgpIGhlcmUgd2l0aG91dCBhIHV1aWQgd291bGQgYWx3YXlzIHRyaWdnZXIgc3RhcnRWaWV3Q29udGV4dCgpLFxyXG4gICAgLy8gY3JlYXRpbmcgYSBzZWNvbmQgdmlld2NvbnRleHQgYW5kIHByb2R1Y2luZyBkdXBsaWNhdGUgVUkgKGUuZy4gdHdvIGxvZ2luIHBhZ2VzKS5cclxuICAgIHRoaXMudmlld0NvbnRleHQub3BlblNtYXJ0TGluay5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc3RhcnQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMuY29uZmlnKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoJ1NtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2UuY29uZmlndXJlKCkgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIHN0YXJ0KCkuJykpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ2Jvb3RzdHJhcFdpdGgnICYmICF0aGlzLmxhc3RJbml0RmFpbGVkKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoXHJcbiAgICAgICAgJ1NtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2UuYm9vdHN0cmFwV2l0aCgpIHdhcyBhbHJlYWR5IGNhbGxlZDsgc3RhcnQoKSBpcyBtdXR1YWxseSBleGNsdXNpdmUgd2l0aCBpdC4gQ2FsbCByZXNldCgpIGZpcnN0IHRvIHN3aXRjaCBlbnRyeSBwb2ludHMuJyxcclxuICAgICAgKSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ydW5uaW5nSW5pdCAmJiAhdGhpcy5sYXN0SW5pdEZhaWxlZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5ydW5uaW5nSW5pdDtcclxuICAgIH1cclxuICAgIHRoaXMubW9kZSA9ICdzdGFydCc7XHJcbiAgICB0aGlzLmxhc3RJbml0RmFpbGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLnJ1bm5pbmdJbml0ID0gdGhpcy5ydW5Jbml0KCk7XHJcbiAgICByZXR1cm4gdGhpcy5ydW5uaW5nSW5pdDtcclxuICB9XHJcblxyXG4gIGJvb3RzdHJhcFdpdGgoY3JlZHM6IFNtYXJ0QmFja2VuZEJvb3RzdHJhcENyZWRlbnRpYWxzKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMuY29uZmlnKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoJ1NtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2UuY29uZmlndXJlKCkgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGJvb3RzdHJhcFdpdGgoKS4nKSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tb2RlID09PSAnc3RhcnQnICYmICF0aGlzLmxhc3RJbml0RmFpbGVkKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoXHJcbiAgICAgICAgJ1NtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2Uuc3RhcnQoKSB3YXMgYWxyZWFkeSBjYWxsZWQ7IGJvb3RzdHJhcFdpdGgoKSBpcyBtdXR1YWxseSBleGNsdXNpdmUgd2l0aCBpdC4gQ2FsbCByZXNldCgpIGZpcnN0IHRvIHN3aXRjaCBlbnRyeSBwb2ludHMuJyxcclxuICAgICAgKSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ydW5uaW5nSW5pdCAmJiAhdGhpcy5sYXN0SW5pdEZhaWxlZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5ydW5uaW5nSW5pdDtcclxuICAgIH1cclxuICAgIHRoaXMubW9kZSA9ICdib290c3RyYXBXaXRoJztcclxuICAgIHRoaXMubGFzdEluaXRGYWlsZWQgPSBmYWxzZTtcclxuICAgIHRoaXMucnVubmluZ0luaXQgPSB0aGlzLnJ1bkJvb3RzdHJhcFdpdGgoY3JlZHMpO1xyXG4gICAgcmV0dXJuIHRoaXMucnVubmluZ0luaXQ7XHJcbiAgfVxyXG5cclxuICBhc3luYyB3aGVuUmVhZHkoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMucnVubmluZ0luaXQpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdCb290c3RyYXBOb3RTdGFydGVkJyk7XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLnJ1bm5pbmdJbml0O1xyXG4gICAgY29uc3QgZ2VuZXJhdGlvbkJlZm9yZSA9IHRoaXMudmlld0NvbnRleHQuZ2V0R2VuZXJhdGlvbigpO1xyXG4gICAgLy8gR2F0ZSBvbiBhbnkgaW4tZmxpZ2h0IHNlc3Npb24vdmlld2NvbnRleHQgcmVjb3Zlcnkgc28gYSBjb21wb25lbnQnc1xyXG4gICAgLy8gQkZGIGNhbGwgY2Fubm90IHJhY2UgYWdhaW5zdCB0aGUgc2Vzc2lvbiBiZWluZyB0b3JuIGRvd24gYW5kIHJlYnVpbHQuXHJcbiAgICAvLyBUaGUgbG9vcCBoYW5kbGVzIGNhc2NhZGluZyByZWNvdmVyaWVzIChlLmcuIHZjLWxvc3Qgc3VyZmFjZXMgZHVyaW5nXHJcbiAgICAvLyBhIHNlc3Npb24gcmVzdGFydCk6IGVhY2ggc2V0dGxlIGNsZWFycyBpdHMgb3duIGxhdGNoIGluIGZpbmFsbHksIGFuZFxyXG4gICAgLy8gdGhlIG5leHQgaXRlcmF0aW9uIHBpY2tzIHVwIHdoYXRldmVyIHN0YXJ0ZWQgaW4gdGhlIG1lYW50aW1lLlxyXG4gICAgd2hpbGUgKHRoaXMucnVubmluZ1ZpZXdDb250ZXh0TG9zdCB8fCB0aGlzLnJ1bm5pbmdTZXNzaW9uRXJyb3IpIHtcclxuICAgICAgYXdhaXQgdGhpcy5ydW5uaW5nVmlld0NvbnRleHRMb3N0O1xyXG4gICAgICBhd2FpdCB0aGlzLnJ1bm5pbmdTZXNzaW9uRXJyb3I7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy52aWV3Q29udGV4dC5nZXRHZW5lcmF0aW9uKCkgIT09IGdlbmVyYXRpb25CZWZvcmUpIHtcclxuICAgICAgdGhyb3cgbmV3IFZpZXdDb250ZXh0UmVidWlsdEVycm9yKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyByZXNldCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMucnVubmluZ0luaXQgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmxhc3RJbml0RmFpbGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLm1vZGUgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnJ1bm5pbmdWaWV3Q29udGV4dExvc3QgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnJ1bm5pbmdTZXNzaW9uRXJyb3IgPSB1bmRlZmluZWQ7XHJcbiAgICByZXR1cm4gdGhpcy5zdGFydCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FsbGVkIGJ5IGBTbWFydEVycm9yQ2F0Y2hpbmdJbnRlcmNlcHRvcmAgd2hlbiB0aGUgYmFja2VuZCByZXBvcnRzXHJcbiAgICogYHNlc3Npb24udmlld2NvbnRleHQubWlzc2luZ2AuIElkZW1wb3RlbnQgYWNyb3NzIGNvbmN1cnJlbnQgYW5kXHJcbiAgICogc2VxdWVudGlhbCBjYWxscyB1bnRpbCB0aGUgbmV4dCBgcmVzZXQoKWAg4oCUIG11bHRpcGxlIHJhY2luZyBCRkZcclxuICAgKiBmYWlsdXJlcyBjb2xsYXBzZSBpbnRvIGEgc2luZ2xlIHJlY292ZXJ5IGF0dGVtcHQuXHJcbiAgICovXHJcbiAgaGFuZGxlVmlld0NvbnRleHRMb3N0KGVycjogU2Vzc2lvbkVycm9yKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMuY29uZmlnKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoXHJcbiAgICAgICAgJ1NtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2UuY29uZmlndXJlKCkgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGhhbmRsZVZpZXdDb250ZXh0TG9zdCgpLicsXHJcbiAgICAgICkpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucnVubmluZ1ZpZXdDb250ZXh0TG9zdCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5ydW5uaW5nVmlld0NvbnRleHRMb3N0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5ydW5uaW5nVmlld0NvbnRleHRMb3N0ID0gdGhpcy5ydW5WaWV3Q29udGV4dExvc3QoZXJyKTtcclxuICAgIHJldHVybiB0aGlzLnJ1bm5pbmdWaWV3Q29udGV4dExvc3Q7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHJ1blZpZXdDb250ZXh0TG9zdChlcnI6IFNlc3Npb25FcnJvcik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKHRoaXMuY29uZmlnPy5vblZpZXdDb250ZXh0TG9zdCkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuY29uZmlnLm9uVmlld0NvbnRleHRMb3N0KGVycik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGF3YWl0IHRoaXMudmlld0NvbnRleHQuaW5pdE5ld1ZpZXdDb250ZXh0KCk7XHJcbiAgICB9IGZpbmFsbHkge1xyXG4gICAgICB0aGlzLnJ1bm5pbmdWaWV3Q29udGV4dExvc3QgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYWxsZWQgYnkgYFNtYXJ0RXJyb3JDYXRjaGluZ0ludGVyY2VwdG9yYCBmb3IgdHJhbnNwb3J0LWxldmVsIGZhaWx1cmVzXHJcbiAgICogKHN0YXR1cyAwLCA1eHgpLiBGaXJlLWFuZC1mb3JnZXQ7IHRoZSByZXF1ZXN0IHN0aWxsIHJlamVjdHMgd2l0aCB0aGVcclxuICAgKiBvcmlnaW5hbCBlcnJvciBzbyBjYWxsZXJzIGNhbiBkbyBwZXItY2FsbCBoYW5kbGluZy5cclxuICAgKi9cclxuICBhc3luYyBoYW5kbGVUcmFuc3BvcnRFcnJvcihlcnI6IEh0dHBFcnJvclJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMuY29uZmlnKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoXHJcbiAgICAgICAgJ1NtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2UuY29uZmlndXJlKCkgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGhhbmRsZVRyYW5zcG9ydEVycm9yKCkuJyxcclxuICAgICAgKSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jb25maWcub25UcmFuc3BvcnRFcnJvcikge1xyXG4gICAgICBhd2FpdCB0aGlzLmNvbmZpZy5vblRyYW5zcG9ydEVycm9yKGVycik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnNvbGUud2FybignVHJhbnNwb3J0IGVycm9yIOKAlCBzZXJ2ZXIgdW5yZWFjaGFibGUgb3IgNXh4JywgZXJyKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgcnVuSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuc2Vzc2lvbi5pbml0aWFsaXplKCk7XHJcbiAgICAgIGF3YWl0IHRoaXMudmlld0NvbnRleHQuaW5pdFZpZXdDb250ZXh0KCk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgYXdhaXQgdGhpcy5oYW5kbGVJbml0RmFpbHVyZShlcnIpO1xyXG4gICAgICB0aHJvdyBlcnI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHJ1bkJvb3RzdHJhcFdpdGgoY3JlZHM6IFNtYXJ0QmFja2VuZEJvb3RzdHJhcENyZWRlbnRpYWxzKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLnNlc3Npb24uc2V0U2Vzc2lvblRva2VuKGNyZWRzLnNlc3Npb25Ub2tlbiwgY3JlZHMucmVmcmVzaFRva2VuKTtcclxuICAgICAgYXdhaXQgdGhpcy52aWV3Q29udGV4dC5pbml0RnJvbUV4aXN0aW5nVmlld0NvbnRleHQoY3JlZHMudmlld0NvbnRleHRVdWlkKTtcclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICBhd2FpdCB0aGlzLmhhbmRsZUluaXRGYWlsdXJlKGVycik7XHJcbiAgICAgIHRocm93IGVycjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlSW5pdEZhaWx1cmUoZXJyOiB1bmtub3duKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmxhc3RJbml0RmFpbGVkID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmNvbmZpZz8ub25TdGFydEVycm9yKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5jb25maWcub25TdGFydEVycm9yKGVycik7XHJcbiAgICAgIH0gY2F0Y2ggKGNhbGxiYWNrRXJyKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignU21hcnRCYWNrZW5kQm9vdHN0cmFwU2VydmljZS5vblN0YXJ0RXJyb3IgY2FsbGJhY2sgdGhyZXcnLCBjYWxsYmFja0Vycik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZVNlc3Npb25FcnJvcihlcnI6IFNlc3Npb25FcnJvcik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCF0aGlzLmNvbmZpZykge1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKFxyXG4gICAgICAgICdTbWFydEJhY2tlbmRCb290c3RyYXBTZXJ2aWNlLmNvbmZpZ3VyZSgpIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBoYW5kbGVTZXNzaW9uRXJyb3IoKS4nLFxyXG4gICAgICApKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnJ1bm5pbmdTZXNzaW9uRXJyb3IpIHtcclxuICAgICAgcmV0dXJuIHRoaXMucnVubmluZ1Nlc3Npb25FcnJvcjtcclxuICAgIH1cclxuICAgIHRoaXMucnVubmluZ1Nlc3Npb25FcnJvciA9IHRoaXMucnVuU2Vzc2lvbkVycm9yKGVycik7XHJcbiAgICByZXR1cm4gdGhpcy5ydW5uaW5nU2Vzc2lvbkVycm9yO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBydW5TZXNzaW9uRXJyb3IoZXJyOiBTZXNzaW9uRXJyb3IpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmICh0aGlzLmNvbmZpZz8ub25TZXNzaW9uRXJyb3IpIHtcclxuICAgICAgICBhd2FpdCB0aGlzLmNvbmZpZy5vblNlc3Npb25FcnJvcihlcnIpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICAvLyBEZWZhdWx0OiBjbGVhciB0aGUgc2Vzc2lvbiBhbmQgbGV0IHRoZSBiYWNrZW5kIHJlYnVpbGQgdmlhIFJFU1RBUlRfVklFV0NPTlRFWFQuXHJcbiAgICAgIC8vIE5vIHJvdXRlciBuYXZpZ2F0aW9uIGhlcmUg4oCUIHRoZSBuZXcgdmlld2NvbnRleHQgZHJpdmVzIG5hdmlnYXRpb24gc2VydmVyLXNpZGUuXHJcbiAgICAgIGF3YWl0IHRoaXMuc2Vzc2lvbi5jbGVhckFuZFN0YXJ0TmV3U2Vzc2lvbigpO1xyXG4gICAgfSBmaW5hbGx5IHtcclxuICAgICAgdGhpcy5ydW5uaW5nU2Vzc2lvbkVycm9yID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
216
|
+
}], ctorParameters: () => [{ type: i1.SmartSessionService }, { type: i2.SmartViewContextService }, { type: i3.UiActionService }] });
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYmFja2VuZC1ib290c3RyYXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3Nlc3Npb24vc21hcnQtYmFja2VuZC1ib290c3RyYXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVkzQzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxPQUFPLHVCQUF3QixTQUFRLEtBQUs7SUFDaEQ7UUFDRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLHlCQUF5QixDQUFDO0lBQ3hDLENBQUM7Q0FDRjtBQUdELE1BQU0sT0FBTyw0QkFBNEI7SUFRdkMsWUFDVSxPQUE0QixFQUM1QixXQUFvQyxFQUNwQyxlQUFnQztRQUZoQyxZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUM1QixnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFDcEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBUmxDLG1CQUFjLEdBQUcsS0FBSyxDQUFDO0lBUzVCLENBQUM7SUFFSixTQUFTLENBQUMsTUFBbUM7UUFDM0MsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLElBQUksQ0FDVix1RkFBdUYsQ0FDeEYsQ0FBQztZQUNGLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFFckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFD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QUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxHQUFpQjtRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FDbkIsSUFBSSxLQUFLLENBQ1Asc0ZBQXNGLENBQ3ZGLENBQ0YsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ2xDLENBQUM7UUFDRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyRCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRU8sS0FBSyxDQUFDLGVBQWUsQ0FBQyxHQUFpQjtRQUM3QyxJQUFJLENBQUM7WUFDSCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsY0FBYyxFQUFFLENBQUM7Z0JBQ2hDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3RDLE9BQU87WUFDVCxDQUFDO1lBQ0Qsa0ZBQWtGO1lBQ2xGLGlGQUFpRjtZQUNqRixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUMvQyxDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO1FBQ3ZDLENBQUM7SUFDSCxDQUFDOytHQTVPVSw0QkFBNEI7bUhBQTVCLDRCQUE0QixjQURmLE1BQU07OzRGQUNuQiw0QkFBNEI7a0JBRHhDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU21hcnRTZXNzaW9uU2VydmljZSB9IGZyb20gJy4vc21hcnQtc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU21hcnRWaWV3Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi92aWV3LWNvbnRleHQvc21hcnQtdmlldy1jb250ZXh0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uRXJyb3IsIFNtYXJ0U2Vzc2lvbkhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi9zbWFydC1zZXNzaW9uLWhhbmRsZXIuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgU21hcnRCYWNrZW5kQm9vdHN0cmFwQ29uZmlnLFxyXG4gIFNtYXJ0QmFja2VuZEJvb3RzdHJhcENyZWRlbnRpYWxzLFxyXG59IGZyb20gJy4vc21hcnQtYmFja2VuZC1ib290c3RyYXAuY29uZmlnJztcclxuaW1wb3J0IHsgVWlBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi91aS1hY3Rpb24uc2VydmljZSc7XHJcblxyXG50eXBlIEJvb3RzdHJhcE1vZGUgPSAnc3RhcnQnIHwgJ2Jvb3RzdHJhcFdpdGgnO1xyXG5cclxuLyoqXHJcbiAqIFRocm93biBieSBgd2hlblJlYWR5KClgIHdoZW4gdGhlIHZpZXdjb250ZXh0IHdhcyByZWJ1aWx0IGJldHdlZW4gdGhlXHJcbiAqIGNhbGxlcidzIGVudHJ5IGludG8gYHdoZW5SZWFkeSgpYCBhbmQgdGhlIGdhdGUgcmVsZWFzaW5nLiBBbnkgdXVpZCB0aGVcclxuICogY2FsbGVyIHJlc29sdmVkIGJlZm9yZSBlbnRlcmluZyBpcyBub3cgc3RhbGU7IGBTbWFydENvbXBvbmVudEFwaUNsaWVudC5ydW4oKWBcclxuICogY2F0Y2hlcyB0aGlzIGFuZCBza2lwcyB0aGUgbG9hZCDigJQgdGhlIGNvbXBvbmVudCBpcyBleHBlY3RlZCB0byByZWNlaXZlIGFcclxuICogZnJlc2ggdXVpZCB0aHJvdWdoIGB1dWlkT2ZQYWdlSGFzQmVlbkNoYW5nZWRgIChOT1JNQUwgdmlld3MpIG9yIHRvIGJlXHJcbiAqIHJlY3JlYXRlZCBieSBgb3BlblZpZXdgIChFTUJFRERFRC9ESUFMT0cgdmlld3MpLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFZpZXdDb250ZXh0UmVidWlsdEVycm9yIGV4dGVuZHMgRXJyb3Ige1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoJ1ZpZXdDb250ZXh0UmVidWlsdCcpO1xyXG4gICAgdGhpcy5uYW1lID0gJ1ZpZXdDb250ZXh0UmVidWlsdEVycm9yJztcclxuICB9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBTbWFydEJhY2tlbmRCb290c3RyYXBTZXJ2aWNlIGltcGxlbWVudHMgU21hcnRTZXNzaW9uSGFuZGxlclNlcnZpY2Uge1xyXG4gIHByaXZhdGUgY29uZmlnPzogU21hcnRCYWNrZW5kQm9vdHN0cmFwQ29uZmlnO1xyXG4gIHByaXZhdGUgcnVubmluZ0luaXQ/OiBQcm9taXNlPHZvaWQ+O1xyXG4gIHByaXZhdGUgbGFzdEluaXRGYWlsZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIG1vZGU/OiBCb290c3RyYXBNb2RlO1xyXG4gIHByaXZhdGUgcnVubmluZ1ZpZXdDb250ZXh0TG9zdD86IFByb21pc2U8dm9pZD47XHJcbiAgcHJpdmF0ZSBydW5uaW5nU2Vzc2lvbkVycm9yPzogUHJvbWlzZTx2b2lkPjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlc3Npb246IFNtYXJ0U2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHZpZXdDb250ZXh0OiBTbWFydFZpZXdDb250ZXh0U2VydmljZSxcclxuICAgIHByaXZhdGUgdWlBY3Rpb25TZXJ2aWNlOiBVaUFjdGlvblNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIGNvbmZpZ3VyZShjb25maWc6IFNtYXJ0QmFja2VuZEJvb3RzdHJhcENvbmZpZyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICAnU21hcnRCYWNrZW5kQm9vdHN0cmFwU2VydmljZSBhbHJlYWR5IGNvbmZpZ3VyZWQ7IGlnbm9yaW5nIGR1cGxpY2F0ZSBjb25maWd1cmUoKSBjYWxsLidcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XHJcblxyXG4gICAgdGhpcy5zZXNzaW9uLnNldFVybChjb25maWcudXJsKTtcclxuICAgIHRoaXMuc2Vzc2lvbi5zZXRDb29raWVOYW1lKGNvbmZpZy5jb29raWVOYW1lKTtcclxuICAgIHRoaXMuc2Vzc2lvbi5zZXRTZXNzaW9uSGFuZGxlclNlcnZpY2UodGhpcyk7XHJcblxyXG4gICAgdGhpcy52aWV3Q29udGV4dC5zZXRWaWV3SGFuZGxlcnMoY29uZmlnLnZpZXdIYW5kbGVycyk7XHJcbiAgICB0aGlzLnZpZXdDb250ZXh0LnNldE1lc3NhZ2VEaWFsb2dOYW1lKGNvbmZpZy5tZXNzYWdlRGlhbG9nTmFtZSA/PyAnbWVzc2FnZS1kaWFsb2cnKTtcclxuICAgIHRoaXMudmlld0NvbnRleHQuc2V0QWN0aW9uRGVzY3JpcHRvcnMoY29uZmlnLmFjdGlvbkRlc2NyaXB0b3JzKTtcclxuXHJcbiAgICB0aGlzLnZpZXdDb250ZXh0Lm9wZW5TbWFydExpbmsuc3Vic2NyaWJlKChjaGFubmVsOiBzdHJpbmcpID0+IHtcclxuICAgICAgdGhpcy5oYW5kbGVTbWFydExpbmsoY2hhbm5lbCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnVpQWN0aW9uU2VydmljZS5zZXRBY3Rpb25FcnJvckhhbmRsZXIoXHJcbiAgICAgIGNvbmZpZy5vbkFjdGlvbkVycm9yID8/ICgoXywgZXJyKSA9PiBjb25zb2xlLmxvZyhlcnIpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlU21hcnRMaW5rKGNoYW5uZWw6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnPy5vblNtYXJ0TGluaykge1xyXG4gICAgICBhd2FpdCB0aGlzLmNvbmZpZy5vblNtYXJ0TGluayhjaGFubmVsKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy8gRGVmYXVsdDogc2ltcGx5IHVuYmxvY2sgc2hvd1B1Ymxpc2hlZFZpZXcncyBgYXdhaXQgb3BlblNtYXJ0TGluay50b1Byb21pc2UoKWAuXHJcbiAgICAvLyBUaGUgdmlld0NvbnRleHQgaXMgYWxyZWFkeSBpbml0aWFsaXplZCBieSBzdGFydCgpL2Jvb3RzdHJhcFdpdGgoKSDigJQgY2FsbGluZ1xyXG4gICAgLy8gaW5pdGlhbGl6ZSgpIGhlcmUgd2l0aG91dCBhIHV1aWQgd291bGQgYWx3YXlzIHRyaWdnZXIgc3RhcnRWaWV3Q29udGV4dCgpLFxyXG4gICAgLy8gY3JlYXRpbmcgYSBzZWNvbmQgdmlld2NvbnRleHQgYW5kIHByb2R1Y2luZyBkdXBsaWNhdGUgVUkgKGUuZy4gdHdvIGxvZ2luIHBhZ2VzKS5cclxuICAgIHRoaXMudmlld0NvbnRleHQub3BlblNtYXJ0TGluay5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc3RhcnQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMuY29uZmlnKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcclxuICAgICAgICBuZXcgRXJyb3IoJ1NtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2UuY29uZmlndXJlKCkgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIHN0YXJ0KCkuJylcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICdib290c3RyYXBXaXRoJyAmJiAhdGhpcy5sYXN0SW5pdEZhaWxlZCkge1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoXHJcbiAgICAgICAgbmV3IEVycm9yKFxyXG4gICAgICAgICAgJ1NtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2UuYm9vdHN0cmFwV2l0aCgpIHdhcyBhbHJlYWR5IGNhbGxlZDsgc3RhcnQoKSBpcyBtdXR1YWxseSBleGNsdXNpdmUgd2l0aCBpdC4gQ2FsbCByZXNldCgpIGZpcnN0IHRvIHN3aXRjaCBlbnRyeSBwb2ludHMuJ1xyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnJ1bm5pbmdJbml0ICYmICF0aGlzLmxhc3RJbml0RmFpbGVkKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJ1bm5pbmdJbml0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5tb2RlID0gJ3N0YXJ0JztcclxuICAgIHRoaXMubGFzdEluaXRGYWlsZWQgPSBmYWxzZTtcclxuICAgIHRoaXMucnVubmluZ0luaXQgPSB0aGlzLnJ1bkluaXQoKTtcclxuICAgIHJldHVybiB0aGlzLnJ1bm5pbmdJbml0O1xyXG4gIH1cclxuXHJcbiAgYm9vdHN0cmFwV2l0aChjcmVkczogU21hcnRCYWNrZW5kQm9vdHN0cmFwQ3JlZGVudGlhbHMpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghdGhpcy5jb25maWcpIHtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KFxyXG4gICAgICAgIG5ldyBFcnJvcignU21hcnRCYWNrZW5kQm9vdHN0cmFwU2VydmljZS5jb25maWd1cmUoKSBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgYm9vdHN0cmFwV2l0aCgpLicpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tb2RlID09PSAnc3RhcnQnICYmICF0aGlzLmxhc3RJbml0RmFpbGVkKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcclxuICAgICAgICBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAnU21hcnRCYWNrZW5kQm9vdHN0cmFwU2VydmljZS5zdGFydCgpIHdhcyBhbHJlYWR5IGNhbGxlZDsgYm9vdHN0cmFwV2l0aCgpIGlzIG11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIGl0LiBDYWxsIHJlc2V0KCkgZmlyc3QgdG8gc3dpdGNoIGVudHJ5IHBvaW50cy4nXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucnVubmluZ0luaXQgJiYgIXRoaXMubGFzdEluaXRGYWlsZWQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMucnVubmluZ0luaXQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLm1vZGUgPSAnYm9vdHN0cmFwV2l0aCc7XHJcbiAgICB0aGlzLmxhc3RJbml0RmFpbGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLnJ1bm5pbmdJbml0ID0gdGhpcy5ydW5Cb290c3RyYXBXaXRoKGNyZWRzKTtcclxuICAgIHJldHVybiB0aGlzLnJ1bm5pbmdJbml0O1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgd2hlblJlYWR5KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCF0aGlzLnJ1bm5pbmdJbml0KSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignQm9vdHN0cmFwTm90U3RhcnRlZCcpO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgdGhpcy5ydW5uaW5nSW5pdDtcclxuICAgIGNvbnN0IGdlbmVyYXRpb25CZWZvcmUgPSB0aGlzLnZpZXdDb250ZXh0LmdldEdlbmVyYXRpb24oKTtcclxuICAgIC8vIEdhdGUgb24gYW55IGluLWZsaWdodCBzZXNzaW9uL3ZpZXdjb250ZXh0IHJlY292ZXJ5IHNvIGEgY29tcG9uZW50J3NcclxuICAgIC8vIEJGRiBjYWxsIGNhbm5vdCByYWNlIGFnYWluc3QgdGhlIHNlc3Npb24gYmVpbmcgdG9ybiBkb3duIGFuZCByZWJ1aWx0LlxyXG4gICAgLy8gVGhlIGxvb3AgaGFuZGxlcyBjYXNjYWRpbmcgcmVjb3ZlcmllcyAoZS5nLiB2Yy1sb3N0IHN1cmZhY2VzIGR1cmluZ1xyXG4gICAgLy8gYSBzZXNzaW9uIHJlc3RhcnQpOiBlYWNoIHNldHRsZSBjbGVhcnMgaXRzIG93biBsYXRjaCBpbiBmaW5hbGx5LCBhbmRcclxuICAgIC8vIHRoZSBuZXh0IGl0ZXJhdGlvbiBwaWNrcyB1cCB3aGF0ZXZlciBzdGFydGVkIGluIHRoZSBtZWFudGltZS5cclxuICAgIHdoaWxlICh0aGlzLnJ1bm5pbmdWaWV3Q29udGV4dExvc3QgfHwgdGhpcy5ydW5uaW5nU2Vzc2lvbkVycm9yKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMucnVubmluZ1ZpZXdDb250ZXh0TG9zdDtcclxuICAgICAgYXdhaXQgdGhpcy5ydW5uaW5nU2Vzc2lvbkVycm9yO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudmlld0NvbnRleHQuZ2V0R2VuZXJhdGlvbigpICE9PSBnZW5lcmF0aW9uQmVmb3JlKSB7XHJcbiAgICAgIHRocm93IG5ldyBWaWV3Q29udGV4dFJlYnVpbHRFcnJvcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgcmVzZXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnJ1bm5pbmdJbml0ID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5sYXN0SW5pdEZhaWxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5tb2RlID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5ydW5uaW5nVmlld0NvbnRleHRMb3N0ID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5ydW5uaW5nU2Vzc2lvbkVycm9yID0gdW5kZWZpbmVkO1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhcnQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbGxlZCBieSBgU21hcnRFcnJvckNhdGNoaW5nSW50ZXJjZXB0b3JgIHdoZW4gdGhlIGJhY2tlbmQgcmVwb3J0c1xyXG4gICAqIGBzZXNzaW9uLnZpZXdjb250ZXh0Lm1pc3NpbmdgLiBJZGVtcG90ZW50IGFjcm9zcyBjb25jdXJyZW50IGFuZFxyXG4gICAqIHNlcXVlbnRpYWwgY2FsbHMgdW50aWwgdGhlIG5leHQgYHJlc2V0KClgIOKAlCBtdWx0aXBsZSByYWNpbmcgQkZGXHJcbiAgICogZmFpbHVyZXMgY29sbGFwc2UgaW50byBhIHNpbmdsZSByZWNvdmVyeSBhdHRlbXB0LlxyXG4gICAqL1xyXG4gIGhhbmRsZVZpZXdDb250ZXh0TG9zdChlcnI6IFNlc3Npb25FcnJvcik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCF0aGlzLmNvbmZpZykge1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoXHJcbiAgICAgICAgbmV3IEVycm9yKFxyXG4gICAgICAgICAgJ1NtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2UuY29uZmlndXJlKCkgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGhhbmRsZVZpZXdDb250ZXh0TG9zdCgpLidcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ydW5uaW5nVmlld0NvbnRleHRMb3N0KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJ1bm5pbmdWaWV3Q29udGV4dExvc3Q7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJ1bm5pbmdWaWV3Q29udGV4dExvc3QgPSB0aGlzLnJ1blZpZXdDb250ZXh0TG9zdChlcnIpO1xyXG4gICAgcmV0dXJuIHRoaXMucnVubmluZ1ZpZXdDb250ZXh0TG9zdDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgcnVuVmlld0NvbnRleHRMb3N0KGVycjogU2Vzc2lvbkVycm9yKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAodGhpcy5jb25maWc/Lm9uVmlld0NvbnRleHRMb3N0KSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5jb25maWcub25WaWV3Q29udGV4dExvc3QoZXJyKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgYXdhaXQgdGhpcy52aWV3Q29udGV4dC5pbml0TmV3Vmlld0NvbnRleHQoKTtcclxuICAgIH0gZmluYWxseSB7XHJcbiAgICAgIHRoaXMucnVubmluZ1ZpZXdDb250ZXh0TG9zdCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbGxlZCBieSBgU21hcnRFcnJvckNhdGNoaW5nSW50ZXJjZXB0b3JgIGZvciB0cmFuc3BvcnQtbGV2ZWwgZmFpbHVyZXNcclxuICAgKiAoc3RhdHVzIDAsIDV4eCkuIEZpcmUtYW5kLWZvcmdldDsgdGhlIHJlcXVlc3Qgc3RpbGwgcmVqZWN0cyB3aXRoIHRoZVxyXG4gICAqIG9yaWdpbmFsIGVycm9yIHNvIGNhbGxlcnMgY2FuIGRvIHBlci1jYWxsIGhhbmRsaW5nLlxyXG4gICAqL1xyXG4gIGFzeW5jIGhhbmRsZVRyYW5zcG9ydEVycm9yKGVycjogSHR0cEVycm9yUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghdGhpcy5jb25maWcpIHtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KFxyXG4gICAgICAgIG5ldyBFcnJvcihcclxuICAgICAgICAgICdTbWFydEJhY2tlbmRCb290c3RyYXBTZXJ2aWNlLmNvbmZpZ3VyZSgpIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBoYW5kbGVUcmFuc3BvcnRFcnJvcigpLidcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jb25maWcub25UcmFuc3BvcnRFcnJvcikge1xyXG4gICAgICBhd2FpdCB0aGlzLmNvbmZpZy5vblRyYW5zcG9ydEVycm9yKGVycik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnNvbGUud2FybignVHJhbnNwb3J0IGVycm9yIOKAlCBzZXJ2ZXIgdW5yZWFjaGFibGUgb3IgNXh4JywgZXJyKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgcnVuSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuc2Vzc2lvbi5pbml0aWFsaXplKCk7XHJcbiAgICAgIGF3YWl0IHRoaXMudmlld0NvbnRleHQuaW5pdFZpZXdDb250ZXh0KCk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgYXdhaXQgdGhpcy5oYW5kbGVJbml0RmFpbHVyZShlcnIpO1xyXG4gICAgICB0aHJvdyBlcnI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHJ1bkJvb3RzdHJhcFdpdGgoY3JlZHM6IFNtYXJ0QmFja2VuZEJvb3RzdHJhcENyZWRlbnRpYWxzKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLnNlc3Npb24uc2V0U2Vzc2lvblRva2VuKGNyZWRzLnNlc3Npb25Ub2tlbiwgY3JlZHMucmVmcmVzaFRva2VuKTtcclxuICAgICAgYXdhaXQgdGhpcy52aWV3Q29udGV4dC5pbml0RnJvbUV4aXN0aW5nVmlld0NvbnRleHQoY3JlZHMudmlld0NvbnRleHRVdWlkKTtcclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICBhd2FpdCB0aGlzLmhhbmRsZUluaXRGYWlsdXJlKGVycik7XHJcbiAgICAgIHRocm93IGVycjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlSW5pdEZhaWx1cmUoZXJyOiB1bmtub3duKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmxhc3RJbml0RmFpbGVkID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmNvbmZpZz8ub25TdGFydEVycm9yKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5jb25maWcub25TdGFydEVycm9yKGVycik7XHJcbiAgICAgIH0gY2F0Y2ggKGNhbGxiYWNrRXJyKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignU21hcnRCYWNrZW5kQm9vdHN0cmFwU2VydmljZS5vblN0YXJ0RXJyb3IgY2FsbGJhY2sgdGhyZXcnLCBjYWxsYmFja0Vycik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZVNlc3Npb25FcnJvcihlcnI6IFNlc3Npb25FcnJvcik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCF0aGlzLmNvbmZpZykge1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoXHJcbiAgICAgICAgbmV3IEVycm9yKFxyXG4gICAgICAgICAgJ1NtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2UuY29uZmlndXJlKCkgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGhhbmRsZVNlc3Npb25FcnJvcigpLidcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ydW5uaW5nU2Vzc2lvbkVycm9yKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJ1bm5pbmdTZXNzaW9uRXJyb3I7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJ1bm5pbmdTZXNzaW9uRXJyb3IgPSB0aGlzLnJ1blNlc3Npb25FcnJvcihlcnIpO1xyXG4gICAgcmV0dXJuIHRoaXMucnVubmluZ1Nlc3Npb25FcnJvcjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgcnVuU2Vzc2lvbkVycm9yKGVycjogU2Vzc2lvbkVycm9yKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAodGhpcy5jb25maWc/Lm9uU2Vzc2lvbkVycm9yKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5jb25maWcub25TZXNzaW9uRXJyb3IoZXJyKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgLy8gRGVmYXVsdDogY2xlYXIgdGhlIHNlc3Npb24gYW5kIGxldCB0aGUgYmFja2VuZCByZWJ1aWxkIHZpYSBSRVNUQVJUX1ZJRVdDT05URVhULlxyXG4gICAgICAvLyBObyByb3V0ZXIgbmF2aWdhdGlvbiBoZXJlIOKAlCB0aGUgbmV3IHZpZXdjb250ZXh0IGRyaXZlcyBuYXZpZ2F0aW9uIHNlcnZlci1zaWRlLlxyXG4gICAgICBhd2FpdCB0aGlzLnNlc3Npb24uY2xlYXJBbmRTdGFydE5ld1Nlc3Npb24oKTtcclxuICAgIH0gZmluYWxseSB7XHJcbiAgICAgIHRoaXMucnVubmluZ1Nlc3Npb25FcnJvciA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { from, throwError } from 'rxjs';
|
|
3
3
|
import { catchError, switchMap } from 'rxjs/operators';
|
|
4
|
-
import { SessionErrorBehaviour
|
|
4
|
+
import { SessionErrorBehaviour } from './smart-session-handler.service';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "./
|
|
6
|
+
import * as i1 from "./smart-session.service";
|
|
7
7
|
import * as i2 from "./smart-backend-bootstrap.service";
|
|
8
8
|
export class SmartErrorCatchingInterceptor {
|
|
9
9
|
constructor(session, bootstrap) {
|
|
@@ -106,4 +106,4 @@ export class SmartErrorCatchingInterceptor {
|
|
|
106
106
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartErrorCatchingInterceptor, decorators: [{
|
|
107
107
|
type: Injectable
|
|
108
108
|
}], ctorParameters: () => [{ type: i1.SmartSessionService }, { type: i2.SmartBackendBootstrapService }] });
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZXJyb3ItY2F0Y2hpbmcuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zZXNzaW9uL3NtYXJ0LWVycm9yLWNhdGNoaW5nLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLElBQUksRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBSUwscUJBQXFCLEdBRXRCLE1BQU0sWUFBWSxDQUFDOzs7O0FBSXBCLE1BQU0sT0FBTyw2QkFBNkI7SUFnQ3hDLFlBQ1UsT0FBNEIsRUFDNUIsU0FBdUM7UUFEdkMsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7UUFDNUIsY0FBUyxHQUFULFNBQVMsQ0FBOEI7UUFqQ2pELHNCQUFpQixHQUFtQjtZQUNsQztnQkFDRSxJQUFJLEVBQUUsaUJBQWlCO2dCQUN2QixTQUFTLEVBQUUscUJBQXFCLENBQUMsT0FBTzthQUN6QztZQUNEO2dCQUNFLElBQUksRUFBRSw4QkFBOEI7Z0JBQ3BDLFNBQVMsRUFBRSxxQkFBcUIsQ0FBQyxPQUFPO2FBQ3pDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLGlDQUFpQztnQkFDdkMsU0FBUyxFQUFFLHFCQUFxQixDQUFDLE9BQU87YUFDekM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsNEJBQTRCO2dCQUNsQyxTQUFTLEVBQUUscUJBQXFCLENBQUMsT0FBTzthQUN6QztZQUNEO2dCQUNFLElBQUksRUFBRSwyQkFBMkI7Z0JBQ2pDLFNBQVMsRUFBRSxxQkFBcUIsQ0FBQyxPQUFPO2FBQ3pDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLHdCQUF3QjtnQkFDOUIsU0FB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QUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxLQUFNLEtBQUssQ0FBQyxLQUFrQixDQUFDLElBQUksQ0FDckYsQ0FBQztJQUNKLENBQUM7SUFFTyxZQUFZLENBQUMsWUFBMEI7UUFDN0MsSUFBSSxZQUFZLENBQUMsU0FBUyxLQUFLLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzdELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsSUFBSSxZQUFZLENBQUMsU0FBUyxLQUFLLHFCQUFxQixDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDekUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVPLG9CQUFvQixDQUFDLE9BQTZCO1FBQ3hELElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQXdCLEVBQUUsRUFBRTtZQUM3RCxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDdEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQzthQUN4RSxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7K0dBL0dVLDZCQUE2QjttSEFBN0IsNkJBQTZCOzs0RkFBN0IsNkJBQTZCO2tCQUR6QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBIdHRwRXJyb3JSZXNwb25zZSxcclxuICBIdHRwRXZlbnQsXHJcbiAgSHR0cEhhbmRsZXIsXHJcbiAgSHR0cEludGVyY2VwdG9yLFxyXG4gIEh0dHBSZXF1ZXN0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtcclxuICBBcGlFcnJvcixcclxuICBIZWFkZXJQYXJhbSxcclxuICBTZXNzaW9uRXJyb3IsXHJcbiAgU2Vzc2lvbkVycm9yQmVoYXZpb3VyLFxyXG4gIFNtYXJ0U2Vzc2lvblNlcnZpY2UsXHJcbn0gZnJvbSAnLi9wcm9qZWN0cyc7XHJcbmltcG9ydCB7IFNtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LWJhY2tlbmQtYm9vdHN0cmFwLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU21hcnRFcnJvckNhdGNoaW5nSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xyXG4gIHNlc3Npb25FcnJvckNvZGVzOiBTZXNzaW9uRXJyb3JbXSA9IFtcclxuICAgIHtcclxuICAgICAgY29kZTogJ3Nlc3Npb24uZXhwaXJlZCcsXHJcbiAgICAgIGJlaGF2aW91cjogU2Vzc2lvbkVycm9yQmVoYXZpb3VyLlJFRlJFU0gsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjb2RlOiAnc2Vzc2lvbi5yZWZyZXNodG9rZW4uaW52YWxpZCcsXHJcbiAgICAgIGJlaGF2aW91cjogU2Vzc2lvbkVycm9yQmVoYXZpb3VyLlJFU1RBUlQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjb2RlOiAnc2Vzc2lvbi5iYWRyZXF1ZXN0Lm1pc3Npbmd0b2tlbicsXHJcbiAgICAgIGJlaGF2aW91cjogU2Vzc2lvbkVycm9yQmVoYXZpb3VyLlJFU1RBUlQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjb2RlOiAnc2Vzc2lvbi5zZWN1cml0eS5ub2NvbnRleHQnLFxyXG4gICAgICBiZWhhdmlvdXI6IFNlc3Npb25FcnJvckJlaGF2aW91ci5SRVNUQVJULFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY29kZTogJ3Nlc3Npb24uaW52YWxpZHNlc3Npb251cmknLFxyXG4gICAgICBiZWhhdmlvdXI6IFNlc3Npb25FcnJvckJlaGF2aW91ci5SRVNUQVJULFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY29kZTogJ3Nlc3Npb24ubm90aW5pdGlhbGl6ZWQnLFxyXG4gICAgICBiZWhhdmlvdXI6IFNlc3Npb25FcnJvckJlaGF2aW91ci5SRVNUQVJULFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY29kZTogJ3Nlc3Npb24udmlld2NvbnRleHQubWlzc2luZycsXHJcbiAgICAgIGJlaGF2aW91cjogU2Vzc2lvbkVycm9yQmVoYXZpb3VyLlJFU1RBUlRfVklFV0NPTlRFWFQsXHJcbiAgICB9LFxyXG4gIF07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzZXNzaW9uOiBTbWFydFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBib290c3RyYXA6IFNtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2UsXHJcbiAgKSB7fVxyXG5cclxuICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8dW5rbm93bj4+IHtcclxuICAgIHJldHVybiBuZXh0XHJcbiAgICAgIC5oYW5kbGUocmVxdWVzdClcclxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yLCByZXF1ZXN0LCBuZXh0KSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihcclxuICAgIGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSxcclxuICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+LFxyXG4gICAgbmV4dDogSHR0cEhhbmRsZXJcclxuICApOiBPYnNlcnZhYmxlPEh0dHBFdmVudDx1bmtub3duPj4ge1xyXG4gICAgaWYgKHRoaXMuaXNTZXNzaW9uRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgIGNvbnN0IHNlc3Npb25FcnJvciA9IHRoaXMuZ2V0U2Vzc2lvbkVycm9yKGVycm9yKTtcclxuICAgICAgaWYgKHNlc3Npb25FcnJvcikge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlc29sdmVFcnJvcihzZXNzaW9uRXJyb3IpLnBpcGUoXHJcbiAgICAgICAgICBzd2l0Y2hNYXAoKHJlc29sdmVkKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXNvbHZlZCAmJiBzZXNzaW9uRXJyb3IuYmVoYXZpb3VyID09PSBTZXNzaW9uRXJyb3JCZWhhdmlvdXIuUkVGUkVTSCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBuZXh0LmhhbmRsZSh0aGlzLnVwZGF0ZVJlcXVlc3RIZWFkZXJzKHJlcXVlc3QpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKHJlc29sdmVFcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAvLyB3aGVuIHRoZSByZXNvbHZlRXJyb3IgdGhyb3dzIGEgcmVzdGFydCBlcnJvciAoaW4gdGhlIHJlZnJlc2hTZXNzaW9uKSwgcmV0aHJvdyB0aGUgb3JpZ2luYWwgZXJyb3JcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNTZXNzaW9uRXJyb3IocmVzb2x2ZUVycm9yKSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVTZXNzaW9uRXJyb3IgPSB0aGlzLmdldFNlc3Npb25FcnJvcihyZXNvbHZlRXJyb3IpO1xyXG4gICAgICAgICAgICAgIGlmIChyZXNvbHZlU2Vzc2lvbkVycm9yPy5iZWhhdmlvdXIgPT09IFNlc3Npb25FcnJvckJlaGF2aW91ci5SRVNUQVJUKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IHJlc29sdmVFcnJvcik7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlzVHJhbnNwb3J0RXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgIC8vIEZpcmUtYW5kLWZvcmdldDsgdGhlIHJlcXVlc3Qgc3RpbGwgcmVqZWN0cyBzbyBjYWxsZXJzIGNhbiByZWFjdCBwZXItY2FsbC5cclxuICAgICAgdGhpcy5ib290c3RyYXAuaGFuZGxlVHJhbnNwb3J0RXJyb3IoZXJyb3IpLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdoYW5kbGVUcmFuc3BvcnRFcnJvciBob29rIHRocmV3JywgZXJyKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzU2Vzc2lvbkVycm9yKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGVycm9yLnN0YXR1cyA9PT0gNDAwICYmIChlcnJvci5lcnJvciBhcyBBcGlFcnJvcikuY29kZSAhPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1RyYW5zcG9ydEVycm9yKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGVycm9yLnN0YXR1cyA9PT0gMCB8fCBlcnJvci5zdGF0dXMgPj0gNTAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTZXNzaW9uRXJyb3IoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKTogU2Vzc2lvbkVycm9yIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25FcnJvckNvZGVzLmZpbmQoXHJcbiAgICAgIChzZXNzaW9uRXJyb3I6IFNlc3Npb25FcnJvcikgPT4gc2Vzc2lvbkVycm9yLmNvZGUgPT09IChlcnJvci5lcnJvciBhcyBBcGlFcnJvcikuY29kZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzb2x2ZUVycm9yKHNlc3Npb25FcnJvcjogU2Vzc2lvbkVycm9yKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGlmIChzZXNzaW9uRXJyb3IuYmVoYXZpb3VyID09PSBTZXNzaW9uRXJyb3JCZWhhdmlvdXIuUkVTVEFSVCkge1xyXG4gICAgICByZXR1cm4gZnJvbSh0aGlzLnNlc3Npb24uaGFuZGxlU2Vzc2lvbkVycm9yKHNlc3Npb25FcnJvcikpO1xyXG4gICAgfVxyXG4gICAgaWYgKHNlc3Npb25FcnJvci5iZWhhdmlvdXIgPT09IFNlc3Npb25FcnJvckJlaGF2aW91ci5SRVNUQVJUX1ZJRVdDT05URVhUKSB7XHJcbiAgICAgIHJldHVybiBmcm9tKHRoaXMuYm9vdHN0cmFwLmhhbmRsZVZpZXdDb250ZXh0TG9zdChzZXNzaW9uRXJyb3IpKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmcm9tKHRoaXMuc2Vzc2lvbi5yZWZyZXNoU2Vzc2lvbigpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlUmVxdWVzdEhlYWRlcnMocmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4pOiBIdHRwUmVxdWVzdDx1bmtub3duPiB7XHJcbiAgICB0aGlzLnNlc3Npb24uaGVhZGVyUGFyYW1zLmZvckVhY2goKGhlYWRlclBhcmFtOiBIZWFkZXJQYXJhbSkgPT4ge1xyXG4gICAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XHJcbiAgICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzLnNldChoZWFkZXJQYXJhbS5oZWFkZXJOYW1lLCBoZWFkZXJQYXJhbS52YWx1ZSksXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcmVxdWVzdDtcclxuICB9XHJcbn1cclxuIl19
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZXJyb3ItY2F0Y2hpbmcuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zZXNzaW9uL3NtYXJ0LWVycm9yLWNhdGNoaW5nLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLElBQUksRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RCxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7QUFLdEYsTUFBTSxPQUFPLDZCQUE2QjtJQWdDeEMsWUFDVSxPQUE0QixFQUM1QixTQUF1QztRQUR2QyxZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUM1QixjQUFTLEdBQVQsU0FBUyxDQUE4QjtRQWpDakQsc0JBQWlCLEdBQW1CO1lBQ2xDO2dCQUNFLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLFNBQVMsRUFBRSxxQkFBcUIsQ0FBQyxPQUFPO2FBQ3pDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLDhCQUE4QjtnQkFDcEMsU0FBUyxFQUFFLHFCQUFxQixDQUFDLE9BQU87YUFDekM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsaUNBQWlDO2dCQUN2QyxTQUFTLEVBQUUscUJBQXFCLENBQUMsT0FBTzthQUN6QztZQUNEO2dCQUNFLElBQUksRUFBRSw0QkFBNEI7Z0JBQ2xDLFNBQVMsRUFBRSxxQkFBcUIsQ0FBQyxPQUFPO2FBQ3pDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLDJCQUEyQjtnQkFDakMsU0FBUyxFQUFFLHFCQUFxQixDQUFDLE9BQU87YUFDekM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsd0JBQXdCO2dCQUM5QixT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RUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQU0sS0FBSyxDQUFDLEtBQWtCLENBQUMsSUFBSSxDQUNyRixDQUFDO0lBQ0osQ0FBQztJQUVPLFlBQVksQ0FBQyxZQUEwQjtRQUM3QyxJQUFJLFlBQVksQ0FBQyxTQUFTLEtBQUsscUJBQXFCLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDN0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFDRCxJQUFJLFlBQVksQ0FBQyxTQUFTLEtBQUsscUJBQXFCLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUN6RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU8sb0JBQW9CLENBQUMsT0FBNkI7UUFDeEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBd0IsRUFBRSxFQUFFO1lBQzdELE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO2dCQUN0QixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDO2FBQ3hFLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzsrR0EvR1UsNkJBQTZCO21IQUE3Qiw2QkFBNkI7OzRGQUE3Qiw2QkFBNkI7a0JBRHpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEh0dHBFcnJvclJlc3BvbnNlLFxyXG4gIEh0dHBFdmVudCxcclxuICBIdHRwSGFuZGxlcixcclxuICBIdHRwSW50ZXJjZXB0b3IsXHJcbiAgSHR0cFJlcXVlc3QsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBcGlFcnJvciB9IGZyb20gJy4vYXBpJztcclxuaW1wb3J0IHsgU2Vzc2lvbkVycm9yLCBTZXNzaW9uRXJyb3JCZWhhdmlvdXIgfSBmcm9tICcuL3NtYXJ0LXNlc3Npb24taGFuZGxlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSGVhZGVyUGFyYW0sIFNtYXJ0U2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LXNlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LWJhY2tlbmQtYm9vdHN0cmFwLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU21hcnRFcnJvckNhdGNoaW5nSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xyXG4gIHNlc3Npb25FcnJvckNvZGVzOiBTZXNzaW9uRXJyb3JbXSA9IFtcclxuICAgIHtcclxuICAgICAgY29kZTogJ3Nlc3Npb24uZXhwaXJlZCcsXHJcbiAgICAgIGJlaGF2aW91cjogU2Vzc2lvbkVycm9yQmVoYXZpb3VyLlJFRlJFU0gsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjb2RlOiAnc2Vzc2lvbi5yZWZyZXNodG9rZW4uaW52YWxpZCcsXHJcbiAgICAgIGJlaGF2aW91cjogU2Vzc2lvbkVycm9yQmVoYXZpb3VyLlJFU1RBUlQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjb2RlOiAnc2Vzc2lvbi5iYWRyZXF1ZXN0Lm1pc3Npbmd0b2tlbicsXHJcbiAgICAgIGJlaGF2aW91cjogU2Vzc2lvbkVycm9yQmVoYXZpb3VyLlJFU1RBUlQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjb2RlOiAnc2Vzc2lvbi5zZWN1cml0eS5ub2NvbnRleHQnLFxyXG4gICAgICBiZWhhdmlvdXI6IFNlc3Npb25FcnJvckJlaGF2aW91ci5SRVNUQVJULFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY29kZTogJ3Nlc3Npb24uaW52YWxpZHNlc3Npb251cmknLFxyXG4gICAgICBiZWhhdmlvdXI6IFNlc3Npb25FcnJvckJlaGF2aW91ci5SRVNUQVJULFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY29kZTogJ3Nlc3Npb24ubm90aW5pdGlhbGl6ZWQnLFxyXG4gICAgICBiZWhhdmlvdXI6IFNlc3Npb25FcnJvckJlaGF2aW91ci5SRVNUQVJULFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY29kZTogJ3Nlc3Npb24udmlld2NvbnRleHQubWlzc2luZycsXHJcbiAgICAgIGJlaGF2aW91cjogU2Vzc2lvbkVycm9yQmVoYXZpb3VyLlJFU1RBUlRfVklFV0NPTlRFWFQsXHJcbiAgICB9LFxyXG4gIF07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzZXNzaW9uOiBTbWFydFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBib290c3RyYXA6IFNtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2UsXHJcbiAgKSB7fVxyXG5cclxuICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8dW5rbm93bj4+IHtcclxuICAgIHJldHVybiBuZXh0XHJcbiAgICAgIC5oYW5kbGUocmVxdWVzdClcclxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yLCByZXF1ZXN0LCBuZXh0KSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihcclxuICAgIGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSxcclxuICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+LFxyXG4gICAgbmV4dDogSHR0cEhhbmRsZXJcclxuICApOiBPYnNlcnZhYmxlPEh0dHBFdmVudDx1bmtub3duPj4ge1xyXG4gICAgaWYgKHRoaXMuaXNTZXNzaW9uRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgIGNvbnN0IHNlc3Npb25FcnJvciA9IHRoaXMuZ2V0U2Vzc2lvbkVycm9yKGVycm9yKTtcclxuICAgICAgaWYgKHNlc3Npb25FcnJvcikge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlc29sdmVFcnJvcihzZXNzaW9uRXJyb3IpLnBpcGUoXHJcbiAgICAgICAgICBzd2l0Y2hNYXAoKHJlc29sdmVkKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXNvbHZlZCAmJiBzZXNzaW9uRXJyb3IuYmVoYXZpb3VyID09PSBTZXNzaW9uRXJyb3JCZWhhdmlvdXIuUkVGUkVTSCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBuZXh0LmhhbmRsZSh0aGlzLnVwZGF0ZVJlcXVlc3RIZWFkZXJzKHJlcXVlc3QpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKHJlc29sdmVFcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAvLyB3aGVuIHRoZSByZXNvbHZlRXJyb3IgdGhyb3dzIGEgcmVzdGFydCBlcnJvciAoaW4gdGhlIHJlZnJlc2hTZXNzaW9uKSwgcmV0aHJvdyB0aGUgb3JpZ2luYWwgZXJyb3JcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNTZXNzaW9uRXJyb3IocmVzb2x2ZUVycm9yKSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVTZXNzaW9uRXJyb3IgPSB0aGlzLmdldFNlc3Npb25FcnJvcihyZXNvbHZlRXJyb3IpO1xyXG4gICAgICAgICAgICAgIGlmIChyZXNvbHZlU2Vzc2lvbkVycm9yPy5iZWhhdmlvdXIgPT09IFNlc3Npb25FcnJvckJlaGF2aW91ci5SRVNUQVJUKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IHJlc29sdmVFcnJvcik7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlzVHJhbnNwb3J0RXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgIC8vIEZpcmUtYW5kLWZvcmdldDsgdGhlIHJlcXVlc3Qgc3RpbGwgcmVqZWN0cyBzbyBjYWxsZXJzIGNhbiByZWFjdCBwZXItY2FsbC5cclxuICAgICAgdGhpcy5ib290c3RyYXAuaGFuZGxlVHJhbnNwb3J0RXJyb3IoZXJyb3IpLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdoYW5kbGVUcmFuc3BvcnRFcnJvciBob29rIHRocmV3JywgZXJyKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzU2Vzc2lvbkVycm9yKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGVycm9yLnN0YXR1cyA9PT0gNDAwICYmIChlcnJvci5lcnJvciBhcyBBcGlFcnJvcikuY29kZSAhPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1RyYW5zcG9ydEVycm9yKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGVycm9yLnN0YXR1cyA9PT0gMCB8fCBlcnJvci5zdGF0dXMgPj0gNTAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTZXNzaW9uRXJyb3IoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKTogU2Vzc2lvbkVycm9yIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25FcnJvckNvZGVzLmZpbmQoXHJcbiAgICAgIChzZXNzaW9uRXJyb3I6IFNlc3Npb25FcnJvcikgPT4gc2Vzc2lvbkVycm9yLmNvZGUgPT09IChlcnJvci5lcnJvciBhcyBBcGlFcnJvcikuY29kZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzb2x2ZUVycm9yKHNlc3Npb25FcnJvcjogU2Vzc2lvbkVycm9yKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGlmIChzZXNzaW9uRXJyb3IuYmVoYXZpb3VyID09PSBTZXNzaW9uRXJyb3JCZWhhdmlvdXIuUkVTVEFSVCkge1xyXG4gICAgICByZXR1cm4gZnJvbSh0aGlzLnNlc3Npb24uaGFuZGxlU2Vzc2lvbkVycm9yKHNlc3Npb25FcnJvcikpO1xyXG4gICAgfVxyXG4gICAgaWYgKHNlc3Npb25FcnJvci5iZWhhdmlvdXIgPT09IFNlc3Npb25FcnJvckJlaGF2aW91ci5SRVNUQVJUX1ZJRVdDT05URVhUKSB7XHJcbiAgICAgIHJldHVybiBmcm9tKHRoaXMuYm9vdHN0cmFwLmhhbmRsZVZpZXdDb250ZXh0TG9zdChzZXNzaW9uRXJyb3IpKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmcm9tKHRoaXMuc2Vzc2lvbi5yZWZyZXNoU2Vzc2lvbigpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlUmVxdWVzdEhlYWRlcnMocmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4pOiBIdHRwUmVxdWVzdDx1bmtub3duPiB7XHJcbiAgICB0aGlzLnNlc3Npb24uaGVhZGVyUGFyYW1zLmZvckVhY2goKGhlYWRlclBhcmFtOiBIZWFkZXJQYXJhbSkgPT4ge1xyXG4gICAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XHJcbiAgICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzLnNldChoZWFkZXJQYXJhbS5oZWFkZXJOYW1lLCBoZWFkZXJQYXJhbS52YWx1ZSksXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcmVxdWVzdDtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { HttpErrorResponse } from '@angular/common/http';
|
|
2
2
|
import { Injectable } from '@angular/core';
|
|
3
3
|
import { lastValueFrom, Subject } from 'rxjs';
|
|
4
|
+
import { SessionErrorBehaviour, } from './smart-session-handler.service';
|
|
4
5
|
import { SmartSubject } from '../smart-subject/projects';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "./api";
|
|
@@ -183,31 +184,60 @@ export class SmartSessionService {
|
|
|
183
184
|
}
|
|
184
185
|
async doRefreshSession() {
|
|
185
186
|
try {
|
|
186
|
-
|
|
187
|
+
const refreshToken = localStorage.getItem('refreshToken');
|
|
187
188
|
if (!refreshToken) {
|
|
188
|
-
|
|
189
|
+
// No refresh token at all: there is no HTTP refresh round-trip that the
|
|
190
|
+
// interceptor could classify as an error, so run the session-restart
|
|
191
|
+
// handling here instead of silently starting a new session.
|
|
192
|
+
return await this.failRefresh();
|
|
189
193
|
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
catch (error) {
|
|
198
|
-
if (this.isInvalidRefreshTokenError(error)) {
|
|
199
|
-
await this.clearAndStartNewSession();
|
|
200
|
-
// still throw the error, so the error can be handled in the caller
|
|
201
|
-
}
|
|
202
|
-
throw error;
|
|
194
|
+
const sessionInfo = await lastValueFrom(this.apiService.refreshSession({ refreshToken }));
|
|
195
|
+
if (!sessionInfo) {
|
|
196
|
+
// The refresh round-trip completed (HTTP 200) but yielded no session, so
|
|
197
|
+
// the interceptor never saw an error response — handle it here as well.
|
|
198
|
+
return await this.failRefresh();
|
|
203
199
|
}
|
|
204
|
-
|
|
205
|
-
|
|
200
|
+
this.updateSessionInfo(sessionInfo);
|
|
201
|
+
return sessionInfo;
|
|
202
|
+
// If the refresh call itself FAILS with a session error, the
|
|
203
|
+
// SmartErrorCatchingInterceptor already runs handleSessionError for that
|
|
204
|
+
// (nested) HTTP error response. We let that error propagate unchanged and
|
|
205
|
+
// must NOT handle it again here — that would invoke handleSessionError twice.
|
|
206
206
|
}
|
|
207
207
|
finally {
|
|
208
208
|
this.runningRefresh = undefined;
|
|
209
209
|
}
|
|
210
210
|
}
|
|
211
|
+
/**
|
|
212
|
+
* Runs the standard session-restart handling for a refresh that finished
|
|
213
|
+
* without an error HTTP response (no refresh token, or an empty refresh
|
|
214
|
+
* result), then throws a failure shaped like the backend's rejected refresh.
|
|
215
|
+
*
|
|
216
|
+
* Only the paths that do NOT produce an error HTTP response come here: a
|
|
217
|
+
* refresh call that fails with a session error is already handled by the
|
|
218
|
+
* SmartErrorCatchingInterceptor, so routing it through here too would invoke
|
|
219
|
+
* handleSessionError a second time.
|
|
220
|
+
*/
|
|
221
|
+
async failRefresh() {
|
|
222
|
+
await this.handleSessionError({
|
|
223
|
+
code: 'session.refreshtoken.invalid',
|
|
224
|
+
behaviour: SessionErrorBehaviour.RESTART,
|
|
225
|
+
});
|
|
226
|
+
throw this.createRefreshFailedError();
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Builds a failure shaped exactly like the backend's rejected-refresh
|
|
230
|
+
* response (HTTP 400 + ApiError.code === 'session.refreshtoken.invalid'), so a
|
|
231
|
+
* failed/impossible refresh surfaces like any other invalid refresh token
|
|
232
|
+
* instead of producing a fresh session as a refresh side effect.
|
|
233
|
+
*/
|
|
234
|
+
createRefreshFailedError() {
|
|
235
|
+
const error = {
|
|
236
|
+
code: 'session.refreshtoken.invalid',
|
|
237
|
+
message: 'Unable to refresh session',
|
|
238
|
+
};
|
|
239
|
+
return new HttpErrorResponse({ status: 400, error });
|
|
240
|
+
}
|
|
211
241
|
updateSessionInfo(sessionInfo) {
|
|
212
242
|
this.sessionInfoData = sessionInfo;
|
|
213
243
|
this.token = sessionInfo.sid;
|
|
@@ -221,11 +251,6 @@ export class SmartSessionService {
|
|
|
221
251
|
this.setUpTokenForSessionService();
|
|
222
252
|
this.setAuthenticationStatus();
|
|
223
253
|
}
|
|
224
|
-
isInvalidRefreshTokenError(error) {
|
|
225
|
-
return (error instanceof HttpErrorResponse &&
|
|
226
|
-
error.error &&
|
|
227
|
-
error.error.code === 'session.refreshtoken.invalid');
|
|
228
|
-
}
|
|
229
254
|
async getAuthenticationProviders() {
|
|
230
255
|
let providers = await this.apiService
|
|
231
256
|
.getAuthenticationProviders()
|
|
@@ -281,4 +306,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
281
306
|
providedIn: 'root',
|
|
282
307
|
}]
|
|
283
308
|
}], ctorParameters: () => [{ type: i1.SessionService }, { type: i2.SmartCookieService }] });
|
|
284
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc2Vzc2lvbi9zbWFydC1zZXNzaW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVU5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFTekQsTUFBTSxPQUFPLG1CQUFtQjtJQU05QixJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUNELElBQVksZUFBZSxDQUFDLGVBQTRDO1FBQ3RFLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsVUFBVSxLQUFLLGVBQWUsRUFBRSxVQUFVLENBQUM7UUFFdkYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGVBQWUsQ0FBQztRQUV4QyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQztJQW9CRCxZQUNVLFVBQTBCLEVBQzFCLGFBQWlDO1FBRGpDLGVBQVUsR0FBVixVQUFVLENBQWdCO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFvQjtRQW5DbkMsY0FBUyxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBaUIxQyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUVqQywrQkFBMEIsR0FBcUIsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWhGLGlCQUFZLEdBQXVCLElB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QVMsRUFBRSxDQUFDO1FBQzNFLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hELFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0UsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQzsrR0FoVVUsbUJBQW1CO21IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbGFzdFZhbHVlRnJvbSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIEFwaUVycm9yLFxyXG4gIEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJEYXRhLFxyXG4gIEdldEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJzUmVzcG9uc2UsXHJcbiAgU2Vzc2lvbkluZm9EYXRhLFxyXG4gIFNlc3Npb25TZXJ2aWNlLFxyXG59IGZyb20gJy4vYXBpJztcclxuaW1wb3J0IHsgU21hcnRDb29raWVTZXJ2aWNlIH0gZnJvbSAnLi9jb29raWUtc2VydmljZS9zbWFydC1jb29raWUuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25FcnJvciwgU21hcnRTZXNzaW9uSGFuZGxlclNlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LXNlc3Npb24taGFuZGxlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU21hcnRTdWJqZWN0IH0gZnJvbSAnLi4vc21hcnQtc3ViamVjdC9wcm9qZWN0cyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlclBhcmFtIHtcclxuICBoZWFkZXJOYW1lOiBzdHJpbmc7XHJcbiAgdmFsdWU6IHN0cmluZztcclxufVxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRTZXNzaW9uU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBiYXNlUGF0aD86IHN0cmluZztcclxuICBwcml2YXRlIHRva2VuPzogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3Nlc3Npb25JbmZvRGF0YT86IFNlc3Npb25JbmZvRGF0YTtcclxuICBwcml2YXRlIF9kZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIHB1YmxpYyBnZXQgc2Vzc2lvbkluZm9EYXRhKCk6IFNlc3Npb25JbmZvRGF0YSB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2Vzc2lvbkluZm9EYXRhO1xyXG4gIH1cclxuICBwcml2YXRlIHNldCBzZXNzaW9uSW5mb0RhdGEoc2Vzc2lvbkluZm9EYXRhOiBTZXNzaW9uSW5mb0RhdGEgfCB1bmRlZmluZWQpIHtcclxuICAgIGxldCBleHBpcmFjeUNoYW5nZWQgPSB0aGlzLnNlc3Npb25JbmZvRGF0YT8uZXhwaXJhdGlvbiAhPT0gc2Vzc2lvbkluZm9EYXRhPy5leHBpcmF0aW9uO1xyXG5cclxuICAgIHRoaXMuX3Nlc3Npb25JbmZvRGF0YSA9IHNlc3Npb25JbmZvRGF0YTtcclxuXHJcbiAgICBpZiAoZXhwaXJhY3lDaGFuZ2VkKSB7XHJcbiAgICAgIHRoaXMuc2Vzc2lvbkV4cGlyYWN5Q2hhbmdlZC5uZXh0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHByb3ZpZGVycz86IEFycmF5PEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJEYXRhPjtcclxuICBwcml2YXRlIGNvb2tpZU5hbWU/OiBzdHJpbmc7XHJcbiAgcHVibGljIGlzQXV0aGVudGljYXRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgYXV0aGVudGljYXRpb25TdGF0ZUNoYW5nZWQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU21hcnRTdWJqZWN0KHRoaXMuX2Rlc3Ryb3kkKTtcclxuXHJcbiAgcHVibGljIGhlYWRlclBhcmFtczogQXJyYXk8SGVhZGVyUGFyYW0+ID0gbmV3IEFycmF5KCk7XHJcblxyXG4gIC8vIExvY2FsZVxyXG4gIHByaXZhdGUgbG9jYWxTdG9yYWdlTG9jYWxlTmFtZTogc3RyaW5nID0gJ2xvY2FsZSc7XHJcbiAgcHVibGljIGxvY2FsZUNoYW5nZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU21hcnRTdWJqZWN0KHRoaXMuX2Rlc3Ryb3kkKTtcclxuICBwcml2YXRlIGluaXRpYWxpemVSdW5uaW5nOiBTdWJqZWN0PHZvaWQ+IHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgcnVubmluZ1JlZnJlc2g/OiBQcm9taXNlPFNlc3Npb25JbmZvRGF0YT47XHJcblxyXG4gIHB1YmxpYyBzZXNzaW9uRXhwaXJhY3lDaGFuZ2VkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFNtYXJ0U3ViamVjdCh0aGlzLl9kZXN0cm95JCk7XHJcblxyXG4gIHByaXZhdGUgc2Vzc2lvbkhhbmRsZXJTZXJ2aWNlPzogU21hcnRTZXNzaW9uSGFuZGxlclNlcnZpY2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgY29va2llU2VydmljZTogU21hcnRDb29raWVTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0U2Vzc2lvbkhhbmRsZXJTZXJ2aWNlKHNtYXJ0U2Vzc2lvbkhhbmRsZXJTZXJ2aWNlOiBTbWFydFNlc3Npb25IYW5kbGVyU2VydmljZSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXNzaW9uSGFuZGxlclNlcnZpY2UgPSBzbWFydFNlc3Npb25IYW5kbGVyU2VydmljZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVTZXNzaW9uRXJyb3Ioc2Vzc2lvbkVycm9yOiBTZXNzaW9uRXJyb3IpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLnNlc3Npb25IYW5kbGVyU2VydmljZSkge1xyXG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5zZXNzaW9uSGFuZGxlclNlcnZpY2UuaGFuZGxlU2Vzc2lvbkVycm9yKHNlc3Npb25FcnJvcik7XHJcbiAgICB9XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHNlc3Npb25IYW5kbGVyU2VydmljZSB3YXMgbm90IGluaXRpYWxpemVkLiBFcnJvcjogJHtzZXNzaW9uRXJyb3IuY29kZX1gKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRIZWFkZXJQYXJhbShoZWFkZXJQYXJhbTogSGVhZGVyUGFyYW0pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmhlYWRlclBhcmFtcy5maW5kKChoOiBIZWFkZXJQYXJhbSkgPT4gaC5oZWFkZXJOYW1lID09PSBoZWFkZXJQYXJhbS5oZWFkZXJOYW1lKSkge1xyXG4gICAgICBsZXQgaW5kZXggPSB0aGlzLmhlYWRlclBhcmFtcy5maW5kSW5kZXgoXHJcbiAgICAgICAgKGg6IEhlYWRlclBhcmFtKSA9PiBoLmhlYWRlck5hbWUgPT09IGhlYWRlclBhcmFtLmhlYWRlck5hbWVcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5oZWFkZXJQYXJhbXNbaW5kZXghXS52YWx1ZSA9IGhlYWRlclBhcmFtLnZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5oZWFkZXJQYXJhbXMucHVzaChoZWFkZXJQYXJhbSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFVwVG9rZW5Gb3JTZXNzaW9uU2VydmljZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuYWRkSGVhZGVyUGFyYW0oe1xyXG4gICAgICBoZWFkZXJOYW1lOiAnQXV0aG9yaXphdGlvbicsXHJcbiAgICAgIHZhbHVlOiBgQmVhcmVyICR7dGhpcy50b2tlbiF9YCxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSHlkcmF0ZXMgdGhlIHNlc3Npb24gd2l0aCBhbiBleHRlcm5hbGx5IG9idGFpbmVkIFNJRCwgYnlwYXNzaW5nXHJcbiAgICogYGluaXRpYWxpemUoKWAncyBiYWNrZW5kIHJvdW5kLXRyaXAuIFVzZWQgYnkgdGhlXHJcbiAgICogYFNtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2UuYm9vdHN0cmFwV2l0aCgpYCBmbG93IHdoZW4gYSBob3N0XHJcbiAgICogKGUuZy4gbmF0aXZlIG1vYmlsZSBzaGVsbCkgaGFuZHMgb3ZlciBhbiBhbHJlYWR5LWF1dGhlbnRpY2F0ZWQgc2Vzc2lvbi5cclxuICAgKlxyXG4gICAqIFBlcnNpc3RzIHRoZSBTSUQgdG8gbG9jYWxTdG9yYWdlICsgY29va2llIHNvIHRoYXQgYSBwYWdlIHJlbG9hZCBjYW5cclxuICAgKiByZWh5ZHJhdGUgdGhlIHNlc3Npb24gdGhyb3VnaCBgaW5pdGlhbGl6ZSgpYCdzIHJlZ3VsYXJcclxuICAgKiBgdG9rZW5Gcm9tTG9jYWxTdG9yYWdlID09PSB0b2tlbkZyb21Db29raWVzYCBwYXRoLiBUaGUgb3B0aW9uYWxcclxuICAgKiByZWZyZXNoVG9rZW4gaXMgcGVyc2lzdGVkIHRvIGVuYWJsZSBhdXRvbm9tb3VzIHJlZnJlc2ggdmlhXHJcbiAgICogYHJlZnJlc2hTZXNzaW9uKClgIHdoZW4gdGhlIFNJRCBleHBpcmVzLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRTZXNzaW9uVG9rZW4odG9rZW46IHN0cmluZywgcmVmcmVzaFRva2VuPzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnRva2VuID0gdG9rZW47XHJcbiAgICB0aGlzLnNldFVwVG9rZW5Gb3JTZXNzaW9uU2VydmljZSgpO1xyXG4gICAgaWYgKHRoaXMuY29va2llTmFtZSkge1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndG9rZW4nLCB0b2tlbik7XHJcbiAgICAgIHRoaXMuY29va2llU2VydmljZS5zZXQodGhpcy5jb29raWVOYW1lLCB0b2tlbik7XHJcbiAgICAgIGlmIChyZWZyZXNoVG9rZW4pIHtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncmVmcmVzaFRva2VuJywgcmVmcmVzaFRva2VuKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFVybCh1cmw6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5iYXNlUGF0aCA9IHVybDtcclxuICB9XHJcbiAgcHVibGljIGdldEJhc2VQYXRoKCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXRoaXMuYmFzZVBhdGgpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdCYXNlUGF0aCBoYXMgbm90IGJlZW4gc2V0IGluIFNtYXJ0U2Vzc2lvblNlcnZpY2UhJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5iYXNlUGF0aDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRDb29raWVOYW1lKG5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5jb29raWVOYW1lID0gbmFtZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2F2ZVRva2VuVG9Mb2NhbFN0b3JhZ2UoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZXNzaW9uSW5mb0RhdGEgJiYgdGhpcy5jb29raWVOYW1lKSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd0b2tlbicsIHRoaXMuc2Vzc2lvbkluZm9EYXRhLnNpZCk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLnNlc3Npb25JbmZvRGF0YS5yZWZyZXNoVG9rZW4gJiZcclxuICAgICAgICB0aGlzLnNlc3Npb25JbmZvRGF0YS5yZWZyZXNoVG9rZW4gIT09IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdyZWZyZXNoVG9rZW4nKVxyXG4gICAgICApIHtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncmVmcmVzaFRva2VuJywgdGhpcy5zZXNzaW9uSW5mb0RhdGEucmVmcmVzaFRva2VuKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNvb2tpZVNlcnZpY2Uuc2V0KHRoaXMuY29va2llTmFtZSwgdGhpcy50b2tlbiEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRBdXRoZW50aWNhdGlvblN0YXR1cygpOiB2b2lkIHtcclxuICAgIGNvbnN0IHByZXZpb3VzID0gdGhpcy5pc0F1dGhlbnRpY2F0ZWQ7XHJcbiAgICBpZiAodGhpcy5zZXNzaW9uSW5mb0RhdGEgJiYgdGhpcy5zZXNzaW9uSW5mb0RhdGEuYXV0aGVudGljYXRpb25zKSB7XHJcbiAgICAgIHRoaXMuaXNBdXRoZW50aWNhdGVkID0gdGhpcy5zZXNzaW9uSW5mb0RhdGEuYXV0aGVudGljYXRpb25zLmxlbmd0aCA+IDA7XHJcbiAgICB9XHJcbiAgICAvLyBFbWl0IG9ubHkgb24gYWN0dWFsIHRyYW5zaXRpb25zLiBSZS1lbWl0dGluZyBvbiBldmVyeSBzZXNzaW9uIHJlZnJlc2hcclxuICAgIC8vIHdvdWxkIGZhbiBvdXQgaW50byBkdXBsaWNhdGVkIGhvc3Qgd29yayAoZS5nLiBsb2dvdXQvbG9naW4gbmF2aWdhdGlvblxyXG4gICAgLy8gc3Vic2NyaWJlcnMgcmUtZmlyaW5nIHRoZWlyIGZsb3cgZWFjaCB0aW1lIGEgc3RhcnRTZXNzaW9uKCkgcmV0dXJucykuXHJcbiAgICBpZiAocHJldmlvdXMgIT09IHRoaXMuaXNBdXRoZW50aWNhdGVkKSB7XHJcbiAgICAgIHRoaXMuYXV0aGVudGljYXRpb25TdGF0ZUNoYW5nZWQubmV4dCh0aGlzLmlzQXV0aGVudGljYXRlZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrU3RhdGVtZW50cygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5iYXNlUGF0aCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSB1cmwgb2YgdGhlIGJhY2tlbmQgYXBpIGhhcyBub3QgYmVlbiBzZXQhJyk7XHJcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmNvb2tpZU5hbWUpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgbmFtZSBvZiB0aGUgY29va2llIHJlcXVpcmVkIGJ5IHRoZSBiYWNrZW5kIGhhcyBub3QgYmVlbiBzZXQhJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaW5pdGlhbGl6ZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLmluaXRpYWxpemVSdW5uaW5nKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVSdW5uaW5nLnRvUHJvbWlzZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplUnVubmluZyA9IG5ldyBTbWFydFN1YmplY3QodGhpcy5fZGVzdHJveSQpO1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHRoaXMuY2hlY2tTdGF0ZW1lbnRzKCk7XHJcblxyXG4gICAgICAgIGxldCB0b2tlbkZyb21Mb2NhbFN0b3JhZ2UgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndG9rZW4nKTtcclxuICAgICAgICBsZXQgdG9rZW5Gcm9tQ29va2llcyA9IHRoaXMuY29va2llU2VydmljZS5nZXQodGhpcy5jb29raWVOYW1lISk7XHJcblxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRva2VuRnJvbUxvY2FsU3RvcmFnZSAmJlxyXG4gICAgICAgICAgdG9rZW5Gcm9tQ29va2llcyAmJlxyXG4gICAgICAgICAgdG9rZW5Gcm9tTG9jYWxTdG9yYWdlID09PSB0b2tlbkZyb21Db29raWVzXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLnRva2VuID0gdG9rZW5Gcm9tTG9jYWxTdG9yYWdlO1xyXG4gICAgICAgICAgdGhpcy5zZXRVcFRva2VuRm9yU2Vzc2lvblNlcnZpY2UoKTtcclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZ2V0U2Vzc2lvbigpO1xyXG4gICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc3RhcnRTZXNzaW9uKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuY2xlYXJBbmRTdGFydE5ld1Nlc3Npb24oKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuc2Vzc2lvbkluZm9EYXRhICYmIHRoaXMuc2Vzc2lvbkluZm9EYXRhLmxvY2FsZSkge1xyXG4gICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5sb2NhbFN0b3JhZ2VMb2NhbGVOYW1lLCB0aGlzLnNlc3Npb25JbmZvRGF0YS5sb2NhbGUpO1xyXG4gICAgICAgICAgdGhpcy5sb2NhbGVDaGFuZ2VkLm5leHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZmluYWxseSB7XHJcbiAgICAgICAgdGhpcy5pbml0aWFsaXplUnVubmluZy5jb21wbGV0ZSgpO1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVJ1bm5pbmcgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgc3RhcnRTZXNzaW9uKCk6IFByb21pc2U8U2Vzc2lvbkluZm9EYXRhPiB7XHJcbiAgICBsZXQgc2Vzc2lvbkluZm8gPSBhd2FpdCB0aGlzLmFwaVNlcnZpY2Uuc3RhcnRTZXNzaW9uKCkudG9Qcm9taXNlKCk7XHJcbiAgICBpZiAoc2Vzc2lvbkluZm8pIHtcclxuICAgICAgdGhpcy51cGRhdGVTZXNzaW9uSW5mbyhzZXNzaW9uSW5mbyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkluZm9EYXRhITtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTZXNzaW9uKCk6IFByb21pc2U8U2Vzc2lvbkluZm9EYXRhPiB7XHJcbiAgICBsZXQgc2Vzc2lvbkluZm8gPSBhd2FpdCB0aGlzLmFwaVNlcnZpY2UuZ2V0U2Vzc2lvbigpLnRvUHJvbWlzZSgpO1xyXG4gICAgaWYgKHNlc3Npb25JbmZvKSB7XHJcbiAgICAgIHRoaXMuc2Vzc2lvbkluZm9EYXRhID0gc2Vzc2lvbkluZm87XHJcbiAgICAgIHRoaXMudG9rZW4gPSBzZXNzaW9uSW5mby5zaWQ7XHJcbiAgICAgIHRoaXMuc2F2ZVRva2VuVG9Mb2NhbFN0b3JhZ2UoKTtcclxuICAgICAgdGhpcy5zZXRBdXRoZW50aWNhdGlvblN0YXR1cygpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25JbmZvRGF0YSE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVmcmVzaFNlc3Npb24oKTogUHJvbWlzZTxTZXNzaW9uSW5mb0RhdGE+IHtcclxuICAgIGlmICh0aGlzLnJ1bm5pbmdSZWZyZXNoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJ1bm5pbmdSZWZyZXNoO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ydW5uaW5nUmVmcmVzaCA9IHRoaXMuZG9SZWZyZXNoU2Vzc2lvbigpO1xyXG4gICAgcmV0dXJuIHRoaXMucnVubmluZ1JlZnJlc2g7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGRvUmVmcmVzaFNlc3Npb24oKTogUHJvbWlzZTxTZXNzaW9uSW5mb0RhdGE+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGxldCByZWZyZXNoVG9rZW4gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncmVmcmVzaFRva2VuJyk7XHJcbiAgICAgIGlmICghcmVmcmVzaFRva2VuKSB7XHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc3RhcnRTZXNzaW9uKCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3Qgc2Vzc2lvbkluZm8gPSBhd2FpdCBsYXN0VmFsdWVGcm9tKHRoaXMuYXBpU2VydmljZS5yZWZyZXNoU2Vzc2lvbih7IHJlZnJlc2hUb2tlbiB9KSk7XHJcbiAgICAgICAgaWYgKHNlc3Npb25JbmZvKSB7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZVNlc3Npb25JbmZvKHNlc3Npb25JbmZvKTtcclxuICAgICAgICAgIHJldHVybiBzZXNzaW9uSW5mbztcclxuICAgICAgICB9XHJcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNJbnZhbGlkUmVmcmVzaFRva2VuRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLmNsZWFyQW5kU3RhcnROZXdTZXNzaW9uKCk7XHJcbiAgICAgICAgICAvLyBzdGlsbCB0aHJvdyB0aGUgZXJyb3IsIHNvIHRoZSBlcnJvciBjYW4gYmUgaGFuZGxlZCBpbiB0aGUgY2FsbGVyXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIG5vIHNlc3Npb25JbmZvIHJldHVybmVkXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHJlZnJlc2ggc2Vzc2lvbicpO1xyXG4gICAgfSBmaW5hbGx5IHtcclxuICAgICAgdGhpcy5ydW5uaW5nUmVmcmVzaCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlU2Vzc2lvbkluZm8oc2Vzc2lvbkluZm86IFNlc3Npb25JbmZvRGF0YSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXNzaW9uSW5mb0RhdGEgPSBzZXNzaW9uSW5mbztcclxuICAgIHRoaXMudG9rZW4gPSBzZXNzaW9uSW5mby5zaWQ7XHJcbiAgICB0aGlzLnNhdmVUb2tlblRvTG9jYWxTdG9yYWdlKCk7XHJcbiAgICAvLyBJbnN0YWxsIHRoZSBBdXRob3JpemF0aW9uIGhlYWRlciBCRUZPUkUgbm90aWZ5aW5nIHN1YnNjcmliZXJzLiBTdWJqZWN0XHJcbiAgICAvLyBlbWlzc2lvbiBpcyBzeW5jaHJvbm91cywgYW5kIGhvc3Qgc3Vic2NyaWJlcnMgKGUuZy4gYXV0aC1zdGF0ZSBsaXN0ZW5lcnNcclxuICAgIC8vIHRoYXQgaW1tZWRpYXRlbHkgaW5pdGlhdGUgQkZGIGNhbGxzKSBleGVjdXRlIHRoZWlyIHN5bmMgcHJvbG9ndWUg4oCUXHJcbiAgICAvLyBpbmNsdWRpbmcgWEhSIHNlbmQoKSDigJQgYmVmb3JlIHRoaXMgbWV0aG9kIHJldHVybnMuIEluc3RhbGxpbmcgdGhlIGhlYWRlclxyXG4gICAgLy8gZmlyc3QgZ3VhcmFudGVlcyB0aG9zZSBzeW5jaHJvbm91cyBkb3duc3RyZWFtIHJlcXVlc3RzIGNhcnJ5IHRoZSBuZXdcclxuICAgIC8vIHRva2VuLCBwcmV2ZW50aW5nIGEgJ3Nlc3Npb24uc2VjdXJpdHkubm9jb250ZXh0JyAvIHJlLWF1dGggY2FzY2FkZS5cclxuICAgIHRoaXMuc2V0VXBUb2tlbkZvclNlc3Npb25TZXJ2aWNlKCk7XHJcbiAgICB0aGlzLnNldEF1dGhlbnRpY2F0aW9uU3RhdHVzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzSW52YWxpZFJlZnJlc2hUb2tlbkVycm9yKGVycm9yOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UgJiZcclxuICAgICAgZXJyb3IuZXJyb3IgJiZcclxuICAgICAgKGVycm9yLmVycm9yIGFzIEFwaUVycm9yKS5jb2RlID09PSAnc2Vzc2lvbi5yZWZyZXNodG9rZW4uaW52YWxpZCdcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0QXV0aGVudGljYXRpb25Qcm92aWRlcnMoKTogUHJvbWlzZTxBcnJheTxBdXRoZW50aWNhdGlvblByb3ZpZGVyRGF0YT4+IHtcclxuICAgIGxldCBwcm92aWRlcnM6IEdldEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJzUmVzcG9uc2UgfCB1bmRlZmluZWQgPSBhd2FpdCB0aGlzLmFwaVNlcnZpY2VcclxuICAgICAgLmdldEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJzKClcclxuICAgICAgLnRvUHJvbWlzZSgpO1xyXG5cclxuICAgIHRoaXMucHJvdmlkZXJzID0gcHJvdmlkZXJzPy5hdXRoZW50aWNhdGlvblByb3ZpZGVycztcclxuXHJcbiAgICByZXR1cm4gdGhpcy5wcm92aWRlcnMhO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldElzQXV0aGVudGljYXRlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGlmICh0aGlzLnNlc3Npb25JbmZvRGF0YSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5pc0F1dGhlbnRpY2F0ZWQ7XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLmdldFNlc3Npb24oKTtcclxuICAgIHJldHVybiB0aGlzLmlzQXV0aGVudGljYXRlZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBpczJGQU5lY2Vzc2FyeSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGlmICh0aGlzLnNlc3Npb25JbmZvRGF0YSkge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIHRoaXMuc2Vzc2lvbkluZm9EYXRhLmF1dGhlbnRpY2F0aW9ucz8uc29tZSgoYWNjb3VudEluZm8pID0+IGFjY291bnRJbmZvLnR3b0ZBID09PSB0cnVlKSA/P1xyXG4gICAgICAgIGZhbHNlXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLmdldFNlc3Npb24oKTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuc2Vzc2lvbkluZm9EYXRhIS5hdXRoZW50aWNhdGlvbnM/LnNvbWUoKGFjY291bnRJbmZvKSA9PiBhY2NvdW50SW5mby50d29GQSA9PT0gdHJ1ZSkgPz9cclxuICAgICAgZmFsc2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2xlYXJBbmRTdGFydE5ld1Nlc3Npb24oKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5jbGVhcigpO1xyXG4gICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7XHJcbiAgICB0aGlzLmhlYWRlclBhcmFtcyA9IFtdO1xyXG4gICAgdGhpcy5jb29raWVTZXJ2aWNlLmRlbGV0ZSh0aGlzLmNvb2tpZU5hbWUhKTtcclxuXHJcbiAgICBhd2FpdCB0aGlzLnN0YXJ0U2Vzc2lvbigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldExvY2FsZSgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuc2Vzc2lvbkluZm9EYXRhICYmIHRoaXMuc2Vzc2lvbkluZm9EYXRhLmxvY2FsZSkge1xyXG4gICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5sb2NhbFN0b3JhZ2VMb2NhbGVOYW1lKSAhPT0gdGhpcy5zZXNzaW9uSW5mb0RhdGEubG9jYWxlKSB7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5sb2NhbFN0b3JhZ2VMb2NhbGVOYW1lLCB0aGlzLnNlc3Npb25JbmZvRGF0YS5sb2NhbGUpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLnNlc3Npb25JbmZvRGF0YS5sb2NhbGU7XHJcbiAgICB9XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZXJlIGlzIG5vIFNlc3Npb25JbmZvRGF0YSBvciBsb2NhbGUgaXMgdW5kZWZpbmVkLicpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZUxvY2FsZShsb2NhbGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5zZXNzaW9uSW5mb0RhdGEgPSBhd2FpdCB0aGlzLmFwaVNlcnZpY2Uuc2V0TG9jYWxlKGxvY2FsZSkudG9Qcm9taXNlKCk7XHJcbiAgICBpZiAodGhpcy5zZXNzaW9uSW5mb0RhdGEgJiYgdGhpcy5zZXNzaW9uSW5mb0RhdGEubG9jYWxlKSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubG9jYWxTdG9yYWdlTG9jYWxlTmFtZSwgdGhpcy5zZXNzaW9uSW5mb0RhdGEubG9jYWxlKTtcclxuICAgICAgdGhpcy5sb2NhbGVDaGFuZ2VkLm5leHQoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
309
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc2Vzc2lvbi9zbWFydC1zZXNzaW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVM5QyxPQUFPLEVBRUwscUJBQXFCLEdBRXRCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7O0FBU3pELE1BQU0sT0FBTyxtQkFBbUI7SUFNOUIsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFZLGVBQWUsQ0FBQyxlQUE0QztRQUN0RSxJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLFVBQVUsS0FBSyxlQUFlLEVBQUUsVUFBVSxDQUFDO1FBRXZGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7UUFFeEMsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7SUFvQkQsWUFDVSxVQUEwQixFQUMxQixhQUFpQztRQURqQyxlQUFVLEdBQVYsVUFBVSxDQUFnQjtRQUMxQixrQkFBYSxHQUFiLGFBQWEsQ0FBb0I7UUFuQ25DLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQWlCMUMsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFFakMsK0JBQTBCLEdBQXFCLElBQUksWUFBWSxDQUFD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LGVBQWUsQ0FBQyxNQUFNLENBQUM7UUFDckMsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFjO1FBQ3RDLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMzRSxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4RCxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQy9FLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7K0dBeFZVLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGxhc3RWYWx1ZUZyb20sIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBBcGlFcnJvcixcclxuICBBdXRoZW50aWNhdGlvblByb3ZpZGVyRGF0YSxcclxuICBHZXRBdXRoZW50aWNhdGlvblByb3ZpZGVyc1Jlc3BvbnNlLFxyXG4gIFNlc3Npb25JbmZvRGF0YSxcclxuICBTZXNzaW9uU2VydmljZSxcclxufSBmcm9tICcuL2FwaSc7XHJcbmltcG9ydCB7IFNtYXJ0Q29va2llU2VydmljZSB9IGZyb20gJy4vY29va2llLXNlcnZpY2Uvc21hcnQtY29va2llLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIFNlc3Npb25FcnJvcixcclxuICBTZXNzaW9uRXJyb3JCZWhhdmlvdXIsXHJcbiAgU21hcnRTZXNzaW9uSGFuZGxlclNlcnZpY2UsXHJcbn0gZnJvbSAnLi9zbWFydC1zZXNzaW9uLWhhbmRsZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0U3ViamVjdCB9IGZyb20gJy4uL3NtYXJ0LXN1YmplY3QvcHJvamVjdHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBIZWFkZXJQYXJhbSB7XHJcbiAgaGVhZGVyTmFtZTogc3RyaW5nO1xyXG4gIHZhbHVlOiBzdHJpbmc7XHJcbn1cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0U2Vzc2lvblNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgYmFzZVBhdGg/OiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSB0b2tlbj86IHN0cmluZztcclxuICBwcml2YXRlIF9zZXNzaW9uSW5mb0RhdGE/OiBTZXNzaW9uSW5mb0RhdGE7XHJcbiAgcHJpdmF0ZSBfZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBwdWJsaWMgZ2V0IHNlc3Npb25JbmZvRGF0YSgpOiBTZXNzaW9uSW5mb0RhdGEgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Nlc3Npb25JbmZvRGF0YTtcclxuICB9XHJcbiAgcHJpdmF0ZSBzZXQgc2Vzc2lvbkluZm9EYXRhKHNlc3Npb25JbmZvRGF0YTogU2Vzc2lvbkluZm9EYXRhIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBsZXQgZXhwaXJhY3lDaGFuZ2VkID0gdGhpcy5zZXNzaW9uSW5mb0RhdGE/LmV4cGlyYXRpb24gIT09IHNlc3Npb25JbmZvRGF0YT8uZXhwaXJhdGlvbjtcclxuXHJcbiAgICB0aGlzLl9zZXNzaW9uSW5mb0RhdGEgPSBzZXNzaW9uSW5mb0RhdGE7XHJcblxyXG4gICAgaWYgKGV4cGlyYWN5Q2hhbmdlZCkge1xyXG4gICAgICB0aGlzLnNlc3Npb25FeHBpcmFjeUNoYW5nZWQubmV4dCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwcm92aWRlcnM/OiBBcnJheTxBdXRoZW50aWNhdGlvblByb3ZpZGVyRGF0YT47XHJcbiAgcHJpdmF0ZSBjb29raWVOYW1lPzogc3RyaW5nO1xyXG4gIHB1YmxpYyBpc0F1dGhlbnRpY2F0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIGF1dGhlbnRpY2F0aW9uU3RhdGVDaGFuZ2VkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFNtYXJ0U3ViamVjdCh0aGlzLl9kZXN0cm95JCk7XHJcblxyXG4gIHB1YmxpYyBoZWFkZXJQYXJhbXM6IEFycmF5PEhlYWRlclBhcmFtPiA9IG5ldyBBcnJheSgpO1xyXG5cclxuICAvLyBMb2NhbGVcclxuICBwcml2YXRlIGxvY2FsU3RvcmFnZUxvY2FsZU5hbWU6IHN0cmluZyA9ICdsb2NhbGUnO1xyXG4gIHB1YmxpYyBsb2NhbGVDaGFuZ2VkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFNtYXJ0U3ViamVjdCh0aGlzLl9kZXN0cm95JCk7XHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplUnVubmluZzogU3ViamVjdDx2b2lkPiB8IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIHJ1bm5pbmdSZWZyZXNoPzogUHJvbWlzZTxTZXNzaW9uSW5mb0RhdGE+O1xyXG5cclxuICBwdWJsaWMgc2Vzc2lvbkV4cGlyYWN5Q2hhbmdlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTbWFydFN1YmplY3QodGhpcy5fZGVzdHJveSQpO1xyXG5cclxuICBwcml2YXRlIHNlc3Npb25IYW5kbGVyU2VydmljZT86IFNtYXJ0U2Vzc2lvbkhhbmRsZXJTZXJ2aWNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXBpU2VydmljZTogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvb2tpZVNlcnZpY2U6IFNtYXJ0Q29va2llU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFNlc3Npb25IYW5kbGVyU2VydmljZShzbWFydFNlc3Npb25IYW5kbGVyU2VydmljZTogU21hcnRTZXNzaW9uSGFuZGxlclNlcnZpY2UpOiB2b2lkIHtcclxuICAgIHRoaXMuc2Vzc2lvbkhhbmRsZXJTZXJ2aWNlID0gc21hcnRTZXNzaW9uSGFuZGxlclNlcnZpY2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlU2Vzc2lvbkVycm9yKHNlc3Npb25FcnJvcjogU2Vzc2lvbkVycm9yKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5zZXNzaW9uSGFuZGxlclNlcnZpY2UpIHtcclxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc2Vzc2lvbkhhbmRsZXJTZXJ2aWNlLmhhbmRsZVNlc3Npb25FcnJvcihzZXNzaW9uRXJyb3IpO1xyXG4gICAgfVxyXG4gICAgdGhyb3cgbmV3IEVycm9yKGBzZXNzaW9uSGFuZGxlclNlcnZpY2Ugd2FzIG5vdCBpbml0aWFsaXplZC4gRXJyb3I6ICR7c2Vzc2lvbkVycm9yLmNvZGV9YCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkSGVhZGVyUGFyYW0oaGVhZGVyUGFyYW06IEhlYWRlclBhcmFtKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5oZWFkZXJQYXJhbXMuZmluZCgoaDogSGVhZGVyUGFyYW0pID0+IGguaGVhZGVyTmFtZSA9PT0gaGVhZGVyUGFyYW0uaGVhZGVyTmFtZSkpIHtcclxuICAgICAgbGV0IGluZGV4ID0gdGhpcy5oZWFkZXJQYXJhbXMuZmluZEluZGV4KFxyXG4gICAgICAgIChoOiBIZWFkZXJQYXJhbSkgPT4gaC5oZWFkZXJOYW1lID09PSBoZWFkZXJQYXJhbS5oZWFkZXJOYW1lXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuaGVhZGVyUGFyYW1zW2luZGV4IV0udmFsdWUgPSBoZWFkZXJQYXJhbS52YWx1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaGVhZGVyUGFyYW1zLnB1c2goaGVhZGVyUGFyYW0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRVcFRva2VuRm9yU2Vzc2lvblNlcnZpY2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFkZEhlYWRlclBhcmFtKHtcclxuICAgICAgaGVhZGVyTmFtZTogJ0F1dGhvcml6YXRpb24nLFxyXG4gICAgICB2YWx1ZTogYEJlYXJlciAke3RoaXMudG9rZW4hfWAsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEh5ZHJhdGVzIHRoZSBzZXNzaW9uIHdpdGggYW4gZXh0ZXJuYWxseSBvYnRhaW5lZCBTSUQsIGJ5cGFzc2luZ1xyXG4gICAqIGBpbml0aWFsaXplKClgJ3MgYmFja2VuZCByb3VuZC10cmlwLiBVc2VkIGJ5IHRoZVxyXG4gICAqIGBTbWFydEJhY2tlbmRCb290c3RyYXBTZXJ2aWNlLmJvb3RzdHJhcFdpdGgoKWAgZmxvdyB3aGVuIGEgaG9zdFxyXG4gICAqIChlLmcuIG5hdGl2ZSBtb2JpbGUgc2hlbGwpIGhhbmRzIG92ZXIgYW4gYWxyZWFkeS1hdXRoZW50aWNhdGVkIHNlc3Npb24uXHJcbiAgICpcclxuICAgKiBQZXJzaXN0cyB0aGUgU0lEIHRvIGxvY2FsU3RvcmFnZSArIGNvb2tpZSBzbyB0aGF0IGEgcGFnZSByZWxvYWQgY2FuXHJcbiAgICogcmVoeWRyYXRlIHRoZSBzZXNzaW9uIHRocm91Z2ggYGluaXRpYWxpemUoKWAncyByZWd1bGFyXHJcbiAgICogYHRva2VuRnJvbUxvY2FsU3RvcmFnZSA9PT0gdG9rZW5Gcm9tQ29va2llc2AgcGF0aC4gVGhlIG9wdGlvbmFsXHJcbiAgICogcmVmcmVzaFRva2VuIGlzIHBlcnNpc3RlZCB0byBlbmFibGUgYXV0b25vbW91cyByZWZyZXNoIHZpYVxyXG4gICAqIGByZWZyZXNoU2Vzc2lvbigpYCB3aGVuIHRoZSBTSUQgZXhwaXJlcy5cclxuICAgKi9cclxuICBwdWJsaWMgc2V0U2Vzc2lvblRva2VuKHRva2VuOiBzdHJpbmcsIHJlZnJlc2hUb2tlbj86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy50b2tlbiA9IHRva2VuO1xyXG4gICAgdGhpcy5zZXRVcFRva2VuRm9yU2Vzc2lvblNlcnZpY2UoKTtcclxuICAgIGlmICh0aGlzLmNvb2tpZU5hbWUpIHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3Rva2VuJywgdG9rZW4pO1xyXG4gICAgICB0aGlzLmNvb2tpZVNlcnZpY2Uuc2V0KHRoaXMuY29va2llTmFtZSwgdG9rZW4pO1xyXG4gICAgICBpZiAocmVmcmVzaFRva2VuKSB7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3JlZnJlc2hUb2tlbicsIHJlZnJlc2hUb2tlbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRVcmwodXJsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuYmFzZVBhdGggPSB1cmw7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXRCYXNlUGF0aCgpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLmJhc2VQYXRoKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignQmFzZVBhdGggaGFzIG5vdCBiZWVuIHNldCBpbiBTbWFydFNlc3Npb25TZXJ2aWNlIScpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuYmFzZVBhdGg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0Q29va2llTmFtZShuYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuY29va2llTmFtZSA9IG5hbWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNhdmVUb2tlblRvTG9jYWxTdG9yYWdlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2Vzc2lvbkluZm9EYXRhICYmIHRoaXMuY29va2llTmFtZSkge1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndG9rZW4nLCB0aGlzLnNlc3Npb25JbmZvRGF0YS5zaWQpO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5zZXNzaW9uSW5mb0RhdGEucmVmcmVzaFRva2VuICYmXHJcbiAgICAgICAgdGhpcy5zZXNzaW9uSW5mb0RhdGEucmVmcmVzaFRva2VuICE9PSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncmVmcmVzaFRva2VuJylcclxuICAgICAgKSB7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3JlZnJlc2hUb2tlbicsIHRoaXMuc2Vzc2lvbkluZm9EYXRhLnJlZnJlc2hUb2tlbik7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldCh0aGlzLmNvb2tpZU5hbWUsIHRoaXMudG9rZW4hKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0QXV0aGVudGljYXRpb25TdGF0dXMoKTogdm9pZCB7XHJcbiAgICBjb25zdCBwcmV2aW91cyA9IHRoaXMuaXNBdXRoZW50aWNhdGVkO1xyXG4gICAgaWYgKHRoaXMuc2Vzc2lvbkluZm9EYXRhICYmIHRoaXMuc2Vzc2lvbkluZm9EYXRhLmF1dGhlbnRpY2F0aW9ucykge1xyXG4gICAgICB0aGlzLmlzQXV0aGVudGljYXRlZCA9IHRoaXMuc2Vzc2lvbkluZm9EYXRhLmF1dGhlbnRpY2F0aW9ucy5sZW5ndGggPiAwO1xyXG4gICAgfVxyXG4gICAgLy8gRW1pdCBvbmx5IG9uIGFjdHVhbCB0cmFuc2l0aW9ucy4gUmUtZW1pdHRpbmcgb24gZXZlcnkgc2Vzc2lvbiByZWZyZXNoXHJcbiAgICAvLyB3b3VsZCBmYW4gb3V0IGludG8gZHVwbGljYXRlZCBob3N0IHdvcmsgKGUuZy4gbG9nb3V0L2xvZ2luIG5hdmlnYXRpb25cclxuICAgIC8vIHN1YnNjcmliZXJzIHJlLWZpcmluZyB0aGVpciBmbG93IGVhY2ggdGltZSBhIHN0YXJ0U2Vzc2lvbigpIHJldHVybnMpLlxyXG4gICAgaWYgKHByZXZpb3VzICE9PSB0aGlzLmlzQXV0aGVudGljYXRlZCkge1xyXG4gICAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU3RhdGVDaGFuZ2VkLm5leHQodGhpcy5pc0F1dGhlbnRpY2F0ZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja1N0YXRlbWVudHMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuYmFzZVBhdGgpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgdXJsIG9mIHRoZSBiYWNrZW5kIGFwaSBoYXMgbm90IGJlZW4gc2V0IScpO1xyXG4gICAgfSBlbHNlIGlmICghdGhpcy5jb29raWVOYW1lKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIG5hbWUgb2YgdGhlIGNvb2tpZSByZXF1aXJlZCBieSB0aGUgYmFja2VuZCBoYXMgbm90IGJlZW4gc2V0IScpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGluaXRpYWxpemUoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5pbml0aWFsaXplUnVubmluZykge1xyXG4gICAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplUnVubmluZy50b1Byb21pc2UoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZVJ1bm5pbmcgPSBuZXcgU21hcnRTdWJqZWN0KHRoaXMuX2Rlc3Ryb3kkKTtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICB0aGlzLmNoZWNrU3RhdGVtZW50cygpO1xyXG5cclxuICAgICAgICBsZXQgdG9rZW5Gcm9tTG9jYWxTdG9yYWdlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Rva2VuJyk7XHJcbiAgICAgICAgbGV0IHRva2VuRnJvbUNvb2tpZXMgPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KHRoaXMuY29va2llTmFtZSEpO1xyXG5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0b2tlbkZyb21Mb2NhbFN0b3JhZ2UgJiZcclxuICAgICAgICAgIHRva2VuRnJvbUNvb2tpZXMgJiZcclxuICAgICAgICAgIHRva2VuRnJvbUxvY2FsU3RvcmFnZSA9PT0gdG9rZW5Gcm9tQ29va2llc1xyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy50b2tlbiA9IHRva2VuRnJvbUxvY2FsU3RvcmFnZTtcclxuICAgICAgICAgIHRoaXMuc2V0VXBUb2tlbkZvclNlc3Npb25TZXJ2aWNlKCk7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmdldFNlc3Npb24oKTtcclxuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnN0YXJ0U2Vzc2lvbigpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLmNsZWFyQW5kU3RhcnROZXdTZXNzaW9uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnNlc3Npb25JbmZvRGF0YSAmJiB0aGlzLnNlc3Npb25JbmZvRGF0YS5sb2NhbGUpIHtcclxuICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubG9jYWxTdG9yYWdlTG9jYWxlTmFtZSwgdGhpcy5zZXNzaW9uSW5mb0RhdGEubG9jYWxlKTtcclxuICAgICAgICAgIHRoaXMubG9jYWxlQ2hhbmdlZC5uZXh0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVJ1bm5pbmcuY29tcGxldGUoKTtcclxuICAgICAgICB0aGlzLmluaXRpYWxpemVSdW5uaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHN0YXJ0U2Vzc2lvbigpOiBQcm9taXNlPFNlc3Npb25JbmZvRGF0YT4ge1xyXG4gICAgbGV0IHNlc3Npb25JbmZvID0gYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLnN0YXJ0U2Vzc2lvbigpLnRvUHJvbWlzZSgpO1xyXG4gICAgaWYgKHNlc3Npb25JbmZvKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlU2Vzc2lvbkluZm8oc2Vzc2lvbkluZm8pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25JbmZvRGF0YSE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0U2Vzc2lvbigpOiBQcm9taXNlPFNlc3Npb25JbmZvRGF0YT4ge1xyXG4gICAgbGV0IHNlc3Npb25JbmZvID0gYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLmdldFNlc3Npb24oKS50b1Byb21pc2UoKTtcclxuICAgIGlmIChzZXNzaW9uSW5mbykge1xyXG4gICAgICB0aGlzLnNlc3Npb25JbmZvRGF0YSA9IHNlc3Npb25JbmZvO1xyXG4gICAgICB0aGlzLnRva2VuID0gc2Vzc2lvbkluZm8uc2lkO1xyXG4gICAgICB0aGlzLnNhdmVUb2tlblRvTG9jYWxTdG9yYWdlKCk7XHJcbiAgICAgIHRoaXMuc2V0QXV0aGVudGljYXRpb25TdGF0dXMoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uSW5mb0RhdGEhO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZnJlc2hTZXNzaW9uKCk6IFByb21pc2U8U2Vzc2lvbkluZm9EYXRhPiB7XHJcbiAgICBpZiAodGhpcy5ydW5uaW5nUmVmcmVzaCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5ydW5uaW5nUmVmcmVzaDtcclxuICAgIH1cclxuICAgIHRoaXMucnVubmluZ1JlZnJlc2ggPSB0aGlzLmRvUmVmcmVzaFNlc3Npb24oKTtcclxuICAgIHJldHVybiB0aGlzLnJ1bm5pbmdSZWZyZXNoO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBkb1JlZnJlc2hTZXNzaW9uKCk6IFByb21pc2U8U2Vzc2lvbkluZm9EYXRhPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCByZWZyZXNoVG9rZW4gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncmVmcmVzaFRva2VuJyk7XHJcbiAgICAgIGlmICghcmVmcmVzaFRva2VuKSB7XHJcbiAgICAgICAgLy8gTm8gcmVmcmVzaCB0b2tlbiBhdCBhbGw6IHRoZXJlIGlzIG5vIEhUVFAgcmVmcmVzaCByb3VuZC10cmlwIHRoYXQgdGhlXHJcbiAgICAgICAgLy8gaW50ZXJjZXB0b3IgY291bGQgY2xhc3NpZnkgYXMgYW4gZXJyb3IsIHNvIHJ1biB0aGUgc2Vzc2lvbi1yZXN0YXJ0XHJcbiAgICAgICAgLy8gaGFuZGxpbmcgaGVyZSBpbnN0ZWFkIG9mIHNpbGVudGx5IHN0YXJ0aW5nIGEgbmV3IHNlc3Npb24uXHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZmFpbFJlZnJlc2goKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3Qgc2Vzc2lvbkluZm8gPSBhd2FpdCBsYXN0VmFsdWVGcm9tKHRoaXMuYXBpU2VydmljZS5yZWZyZXNoU2Vzc2lvbih7IHJlZnJlc2hUb2tlbiB9KSk7XHJcbiAgICAgIGlmICghc2Vzc2lvbkluZm8pIHtcclxuICAgICAgICAvLyBUaGUgcmVmcmVzaCByb3VuZC10cmlwIGNvbXBsZXRlZCAoSFRUUCAyMDApIGJ1dCB5aWVsZGVkIG5vIHNlc3Npb24sIHNvXHJcbiAgICAgICAgLy8gdGhlIGludGVyY2VwdG9yIG5ldmVyIHNhdyBhbiBlcnJvciByZXNwb25zZSDigJQgaGFuZGxlIGl0IGhlcmUgYXMgd2VsbC5cclxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5mYWlsUmVmcmVzaCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudXBkYXRlU2Vzc2lvbkluZm8oc2Vzc2lvbkluZm8pO1xyXG4gICAgICByZXR1cm4gc2Vzc2lvbkluZm87XHJcbiAgICAgIC8vIElmIHRoZSByZWZyZXNoIGNhbGwgaXRzZWxmIEZBSUxTIHdpdGggYSBzZXNzaW9uIGVycm9yLCB0aGVcclxuICAgICAgLy8gU21hcnRFcnJvckNhdGNoaW5nSW50ZXJjZXB0b3IgYWxyZWFkeSBydW5zIGhhbmRsZVNlc3Npb25FcnJvciBmb3IgdGhhdFxyXG4gICAgICAvLyAobmVzdGVkKSBIVFRQIGVycm9yIHJlc3BvbnNlLiBXZSBsZXQgdGhhdCBlcnJvciBwcm9wYWdhdGUgdW5jaGFuZ2VkIGFuZFxyXG4gICAgICAvLyBtdXN0IE5PVCBoYW5kbGUgaXQgYWdhaW4gaGVyZSDigJQgdGhhdCB3b3VsZCBpbnZva2UgaGFuZGxlU2Vzc2lvbkVycm9yIHR3aWNlLlxyXG4gICAgfSBmaW5hbGx5IHtcclxuICAgICAgdGhpcy5ydW5uaW5nUmVmcmVzaCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJ1bnMgdGhlIHN0YW5kYXJkIHNlc3Npb24tcmVzdGFydCBoYW5kbGluZyBmb3IgYSByZWZyZXNoIHRoYXQgZmluaXNoZWRcclxuICAgKiB3aXRob3V0IGFuIGVycm9yIEhUVFAgcmVzcG9uc2UgKG5vIHJlZnJlc2ggdG9rZW4sIG9yIGFuIGVtcHR5IHJlZnJlc2hcclxuICAgKiByZXN1bHQpLCB0aGVuIHRocm93cyBhIGZhaWx1cmUgc2hhcGVkIGxpa2UgdGhlIGJhY2tlbmQncyByZWplY3RlZCByZWZyZXNoLlxyXG4gICAqXHJcbiAgICogT25seSB0aGUgcGF0aHMgdGhhdCBkbyBOT1QgcHJvZHVjZSBhbiBlcnJvciBIVFRQIHJlc3BvbnNlIGNvbWUgaGVyZTogYVxyXG4gICAqIHJlZnJlc2ggY2FsbCB0aGF0IGZhaWxzIHdpdGggYSBzZXNzaW9uIGVycm9yIGlzIGFscmVhZHkgaGFuZGxlZCBieSB0aGVcclxuICAgKiBTbWFydEVycm9yQ2F0Y2hpbmdJbnRlcmNlcHRvciwgc28gcm91dGluZyBpdCB0aHJvdWdoIGhlcmUgdG9vIHdvdWxkIGludm9rZVxyXG4gICAqIGhhbmRsZVNlc3Npb25FcnJvciBhIHNlY29uZCB0aW1lLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgYXN5bmMgZmFpbFJlZnJlc2goKTogUHJvbWlzZTxuZXZlcj4ge1xyXG4gICAgYXdhaXQgdGhpcy5oYW5kbGVTZXNzaW9uRXJyb3Ioe1xyXG4gICAgICBjb2RlOiAnc2Vzc2lvbi5yZWZyZXNodG9rZW4uaW52YWxpZCcsXHJcbiAgICAgIGJlaGF2aW91cjogU2Vzc2lvbkVycm9yQmVoYXZpb3VyLlJFU1RBUlQsXHJcbiAgICB9KTtcclxuICAgIHRocm93IHRoaXMuY3JlYXRlUmVmcmVzaEZhaWxlZEVycm9yKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdWlsZHMgYSBmYWlsdXJlIHNoYXBlZCBleGFjdGx5IGxpa2UgdGhlIGJhY2tlbmQncyByZWplY3RlZC1yZWZyZXNoXHJcbiAgICogcmVzcG9uc2UgKEhUVFAgNDAwICsgQXBpRXJyb3IuY29kZSA9PT0gJ3Nlc3Npb24ucmVmcmVzaHRva2VuLmludmFsaWQnKSwgc28gYVxyXG4gICAqIGZhaWxlZC9pbXBvc3NpYmxlIHJlZnJlc2ggc3VyZmFjZXMgbGlrZSBhbnkgb3RoZXIgaW52YWxpZCByZWZyZXNoIHRva2VuXHJcbiAgICogaW5zdGVhZCBvZiBwcm9kdWNpbmcgYSBmcmVzaCBzZXNzaW9uIGFzIGEgcmVmcmVzaCBzaWRlIGVmZmVjdC5cclxuICAgKi9cclxuICBwcml2YXRlIGNyZWF0ZVJlZnJlc2hGYWlsZWRFcnJvcigpOiBIdHRwRXJyb3JSZXNwb25zZSB7XHJcbiAgICBjb25zdCBlcnJvcjogQXBpRXJyb3IgPSB7XHJcbiAgICAgIGNvZGU6ICdzZXNzaW9uLnJlZnJlc2h0b2tlbi5pbnZhbGlkJyxcclxuICAgICAgbWVzc2FnZTogJ1VuYWJsZSB0byByZWZyZXNoIHNlc3Npb24nLFxyXG4gICAgfTtcclxuICAgIHJldHVybiBuZXcgSHR0cEVycm9yUmVzcG9uc2UoeyBzdGF0dXM6IDQwMCwgZXJyb3IgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVNlc3Npb25JbmZvKHNlc3Npb25JbmZvOiBTZXNzaW9uSW5mb0RhdGEpOiB2b2lkIHtcclxuICAgIHRoaXMuc2Vzc2lvbkluZm9EYXRhID0gc2Vzc2lvbkluZm87XHJcbiAgICB0aGlzLnRva2VuID0gc2Vzc2lvbkluZm8uc2lkO1xyXG4gICAgdGhpcy5zYXZlVG9rZW5Ub0xvY2FsU3RvcmFnZSgpO1xyXG4gICAgLy8gSW5zdGFsbCB0aGUgQXV0aG9yaXphdGlvbiBoZWFkZXIgQkVGT1JFIG5vdGlmeWluZyBzdWJzY3JpYmVycy4gU3ViamVjdFxyXG4gICAgLy8gZW1pc3Npb24gaXMgc3luY2hyb25vdXMsIGFuZCBob3N0IHN1YnNjcmliZXJzIChlLmcuIGF1dGgtc3RhdGUgbGlzdGVuZXJzXHJcbiAgICAvLyB0aGF0IGltbWVkaWF0ZWx5IGluaXRpYXRlIEJGRiBjYWxscykgZXhlY3V0ZSB0aGVpciBzeW5jIHByb2xvZ3VlIOKAlFxyXG4gICAgLy8gaW5jbHVkaW5nIFhIUiBzZW5kKCkg4oCUIGJlZm9yZSB0aGlzIG1ldGhvZCByZXR1cm5zLiBJbnN0YWxsaW5nIHRoZSBoZWFkZXJcclxuICAgIC8vIGZpcnN0IGd1YXJhbnRlZXMgdGhvc2Ugc3luY2hyb25vdXMgZG93bnN0cmVhbSByZXF1ZXN0cyBjYXJyeSB0aGUgbmV3XHJcbiAgICAvLyB0b2tlbiwgcHJldmVudGluZyBhICdzZXNzaW9uLnNlY3VyaXR5Lm5vY29udGV4dCcgLyByZS1hdXRoIGNhc2NhZGUuXHJcbiAgICB0aGlzLnNldFVwVG9rZW5Gb3JTZXNzaW9uU2VydmljZSgpO1xyXG4gICAgdGhpcy5zZXRBdXRoZW50aWNhdGlvblN0YXR1cygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJzKCk6IFByb21pc2U8QXJyYXk8QXV0aGVudGljYXRpb25Qcm92aWRlckRhdGE+PiB7XHJcbiAgICBsZXQgcHJvdmlkZXJzOiBHZXRBdXRoZW50aWNhdGlvblByb3ZpZGVyc1Jlc3BvbnNlIHwgdW5kZWZpbmVkID0gYXdhaXQgdGhpcy5hcGlTZXJ2aWNlXHJcbiAgICAgIC5nZXRBdXRoZW50aWNhdGlvblByb3ZpZGVycygpXHJcbiAgICAgIC50b1Byb21pc2UoKTtcclxuXHJcbiAgICB0aGlzLnByb3ZpZGVycyA9IHByb3ZpZGVycz8uYXV0aGVudGljYXRpb25Qcm92aWRlcnM7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucHJvdmlkZXJzITtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRJc0F1dGhlbnRpY2F0ZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAodGhpcy5zZXNzaW9uSW5mb0RhdGEpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaXNBdXRoZW50aWNhdGVkO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgdGhpcy5nZXRTZXNzaW9uKCk7XHJcbiAgICByZXR1cm4gdGhpcy5pc0F1dGhlbnRpY2F0ZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaXMyRkFOZWNlc3NhcnkoKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAodGhpcy5zZXNzaW9uSW5mb0RhdGEpIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICB0aGlzLnNlc3Npb25JbmZvRGF0YS5hdXRoZW50aWNhdGlvbnM/LnNvbWUoKGFjY291bnRJbmZvKSA9PiBhY2NvdW50SW5mby50d29GQSA9PT0gdHJ1ZSkgPz9cclxuICAgICAgICBmYWxzZVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgdGhpcy5nZXRTZXNzaW9uKCk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLnNlc3Npb25JbmZvRGF0YSEuYXV0aGVudGljYXRpb25zPy5zb21lKChhY2NvdW50SW5mbykgPT4gYWNjb3VudEluZm8udHdvRkEgPT09IHRydWUpID8/XHJcbiAgICAgIGZhbHNlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNsZWFyQW5kU3RhcnROZXdTZXNzaW9uKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgc2Vzc2lvblN0b3JhZ2UuY2xlYXIoKTtcclxuICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xyXG4gICAgdGhpcy5oZWFkZXJQYXJhbXMgPSBbXTtcclxuICAgIHRoaXMuY29va2llU2VydmljZS5kZWxldGUodGhpcy5jb29raWVOYW1lISk7XHJcblxyXG4gICAgYXdhaXQgdGhpcy5zdGFydFNlc3Npb24oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRMb2NhbGUoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLnNlc3Npb25JbmZvRGF0YSAmJiB0aGlzLnNlc3Npb25JbmZvRGF0YS5sb2NhbGUpIHtcclxuICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubG9jYWxTdG9yYWdlTG9jYWxlTmFtZSkgIT09IHRoaXMuc2Vzc2lvbkluZm9EYXRhLmxvY2FsZSkge1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubG9jYWxTdG9yYWdlTG9jYWxlTmFtZSwgdGhpcy5zZXNzaW9uSW5mb0RhdGEubG9jYWxlKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy5zZXNzaW9uSW5mb0RhdGEubG9jYWxlO1xyXG4gICAgfVxyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdUaGVyZSBpcyBubyBTZXNzaW9uSW5mb0RhdGEgb3IgbG9jYWxlIGlzIHVuZGVmaW5lZC4nKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VMb2NhbGUobG9jYWxlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuc2Vzc2lvbkluZm9EYXRhID0gYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLnNldExvY2FsZShsb2NhbGUpLnRvUHJvbWlzZSgpO1xyXG4gICAgaWYgKHRoaXMuc2Vzc2lvbkluZm9EYXRhICYmIHRoaXMuc2Vzc2lvbkluZm9EYXRhLmxvY2FsZSkge1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmxvY2FsU3RvcmFnZUxvY2FsZU5hbWUsIHRoaXMuc2Vzc2lvbkluZm9EYXRhLmxvY2FsZSk7XHJcbiAgICAgIHRoaXMubG9jYWxlQ2hhbmdlZC5uZXh0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -63,11 +63,11 @@ export class SearchPageComponent extends SmartComponent {
|
|
|
63
63
|
return this.data?.noResultText !== undefined && this.data?.noResultText !== null;
|
|
64
64
|
}
|
|
65
65
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SearchPageComponent, deps: [{ token: i0.Injector }, { token: i1.SmartFilterEditorService }, { token: 'searchPageName' }, { token: 'searchComponentName' }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: SearchPageComponent, selector: "search-page", providers: [SmartFilterEditorService], viewQueries: [{ propertyName: "grid", first: true, predicate: ["grid"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"searchPageContainer\" [ngClass]=\"data?.cssClassOfPage\">\r\n <h1 class=\"search-page-title\"> {{ data?.pageTitle }} </h1>\r\n <!-- <div class=\"filterContainer\">\r\n <smart-filter [filter]=\"filter\"></smart-filter>\r\n </div> -->\r\n <smart-ui-action-toolbar [uiActionModels]=\"uiActionModels\"></smart-ui-action-toolbar>\r\n @if (filterService.model) {\r\n <div class=\"filter-editor-container\">\r\n <smart-filter-group-params [service]=\"filterService\"></smart-filter-group-params>\r\n <smart-filter-expression-editor [service]=\"filterService\"></smart-filter-expression-editor>\r\n </div>\r\n }\r\n <smart-component-layout\r\n *ngIf=\"layout\"\r\n [smartComponentLayout]=\"layout\"\r\n [parentSmartComponent]=\"this\"\r\n ></smart-component-layout>\r\n <div class=\"gridContainer\">\r\n <h2 *ngIf=\"isShowNoResultText()\" class=\"noResultText\">\r\n {{ data?.noResultText }}\r\n </h2>\r\n <smart-grid\r\n *ngIf=\"!isShowNoResultText()\"\r\n #grid\r\n [smartGrid]=\"smartGrid\"\r\n [uuid]=\"uuid!\"\r\n ></smart-grid>\r\n </div>\r\n</div>\r\n", styles: [".searchPageContainer{display:flex;flex-direction:column;gap:1.5rem}.filterContainer{display:flex;flex-direction:row;gap:1rem}.gridContainer{flex-grow:1}.filter-editor-container{display:flex;flex-direction:row}.noResultText{width:100%;text-align:center;padding-top:2rem;padding-bottom:2rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.SmartGridComponent, selector: "smart-grid", inputs: ["smartGrid", "uuid", "dev"] }, { kind: "component", type: i4.SmartComponentLayoutComponent, selector: "smart-component-layout", inputs: ["smartComponentLayout", "parentLayoutComponent", "parentSmartComponent", "gridRow"] }, { kind: "component", type: i5.UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: ["uiActionModels", "uiActionDescriptorService", "id", "scrollOnWrap", "toolbarPropertes"] }, { kind: "component", type: i6.SmartFilterParamsComponent, selector: "smart-filter-group-params", inputs: ["service"] }, { kind: "component", type: i7.SmartFilterEditorContentComponent, selector: "smart-filter-expression-editor", inputs: ["service"] }] }); }
|
|
67
67
|
}
|
|
68
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SearchPageComponent, decorators: [{
|
|
69
69
|
type: Component,
|
|
70
|
-
args: [{ selector: 'search-page', providers: [SmartFilterEditorService], template: "<div class=\"searchPageContainer\" [ngClass]=\"data?.cssClassOfPage\">\r\n <h1 class=\"search-page-title\"> {{ data?.pageTitle }} </h1>\r\n <!-- <div class=\"filterContainer\">\r\n <smart-filter [filter]=\"filter\"></smart-filter>\r\n </div> -->\r\n <smart-ui-action-toolbar [uiActionModels]=\"uiActionModels\"></smart-ui-action-toolbar>\r\n <div class=\"filter-editor-container\">\r\n
|
|
70
|
+
args: [{ selector: 'search-page', providers: [SmartFilterEditorService], template: "<div class=\"searchPageContainer\" [ngClass]=\"data?.cssClassOfPage\">\r\n <h1 class=\"search-page-title\"> {{ data?.pageTitle }} </h1>\r\n <!-- <div class=\"filterContainer\">\r\n <smart-filter [filter]=\"filter\"></smart-filter>\r\n </div> -->\r\n <smart-ui-action-toolbar [uiActionModels]=\"uiActionModels\"></smart-ui-action-toolbar>\r\n @if (filterService.model) {\r\n <div class=\"filter-editor-container\">\r\n <smart-filter-group-params [service]=\"filterService\"></smart-filter-group-params>\r\n <smart-filter-expression-editor [service]=\"filterService\"></smart-filter-expression-editor>\r\n </div>\r\n }\r\n <smart-component-layout\r\n *ngIf=\"layout\"\r\n [smartComponentLayout]=\"layout\"\r\n [parentSmartComponent]=\"this\"\r\n ></smart-component-layout>\r\n <div class=\"gridContainer\">\r\n <h2 *ngIf=\"isShowNoResultText()\" class=\"noResultText\">\r\n {{ data?.noResultText }}\r\n </h2>\r\n <smart-grid\r\n *ngIf=\"!isShowNoResultText()\"\r\n #grid\r\n [smartGrid]=\"smartGrid\"\r\n [uuid]=\"uuid!\"\r\n ></smart-grid>\r\n </div>\r\n</div>\r\n", styles: [".searchPageContainer{display:flex;flex-direction:column;gap:1.5rem}.filterContainer{display:flex;flex-direction:row;gap:1rem}.gridContainer{flex-grow:1}.filter-editor-container{display:flex;flex-direction:row}.noResultText{width:100%;text-align:center;padding-top:2rem;padding-bottom:2rem}\n"] }]
|
|
71
71
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.SmartFilterEditorService }, { type: undefined, decorators: [{
|
|
72
72
|
type: Inject,
|
|
73
73
|
args: ['searchPageName']
|
|
@@ -78,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
78
78
|
type: ViewChild,
|
|
79
79
|
args: ['grid']
|
|
80
80
|
}] } });
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZ2VuZXJpYy1wYWdlcy9zZWFyY2gtcGFnZS9zZWFyY2gtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1nZW5lcmljLXBhZ2VzL3NlYXJjaC1wYWdlL3NlYXJjaC1wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsTUFBTSxFQUdOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQXNCLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUc3RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7Ozs7Ozs7O0FBU2pHLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxjQUErQjtJQVV0RSxZQUNFLE1BQWdCLEVBQ1QsYUFBdUMsRUFDcEIsV0FBb0IsRUFDZixnQkFBeUIsRUFDeEQsT0FBb0IsRUFDcEIsUUFBb0I7UUFFcEIsS0FBSyxDQUNILE1BQU0sRUFDTixXQUFXLEVBQ1gsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLEVBQ3JGLE9BQU8sRUFDUCxRQUFRLENBQ1QsQ0FBQztRQVpLLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQVgvQixvQkFBZSxHQUFXLGFBQWEsQ0FBQztRQUN0Qyw2QkFBd0IsR0FBRyx1QkFBdUIsQ0FBQztRQUV0RCxrQkFBYSxHQUFHLHFCQUFxQixDQUFDO1FBcUJwRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQztRQUNwQyxzRUFBc0U7UUFDdEUsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHO1lBQzFCLFVBQVUsRUFBRSxJQUFJLENBQUMsd0JBQXdCO1NBQzFDLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVrQixjQUFjLENBQUMsSUFBWTtRQUM1QyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxnQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxTQUFTLEdBQUc7WUFDZixTQUFTLEVBQUU7Z0JBQ1QsSUFBSSxFQUFFO29CQUNKLElBQUksRUFBRSxFQUFFO2lCQUNUO2FBQ0Y7WUFDRCxTQUFTLEVBQUUsY0FBYyxDQUFDLEtBQUs7WUFDL0IsZUFBZSxFQUFFLEtBQUs7WUFDdEIsY0FBYyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN4QyxTQUFTLEVBQUUsSUFBSTtZQUNmLE9BQU8sRUFBRTtnQkFDUCxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsVUFBVTthQUM3QztTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxZQUFZLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsWUFBWSxLQUFLLElBQUksQ0FBQztJQUNuRixDQUFDOytHQTFFVSxtQkFBbUIsa0ZBYXBCLGdCQUFnQixhQUNoQixxQkFBcUI7bUdBZHBCLG1CQUFtQixzQ0FGbkIsQ0FBQyx3QkFBd0IsQ0FBQywrSUNwQnZDLG9uQ0E2QkE7OzRGRFBhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxhQUFhLGFBR1osQ0FBQyx3QkFBd0IsQ0FBQzs7MEJBZWxDLE1BQU07MkJBQUMsZ0JBQWdCOzswQkFDdkIsTUFBTTsyQkFBQyxxQkFBcUI7MEZBUlosSUFBSTtzQkFBdEIsU0FBUzt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEluamVjdCxcclxuICBJbmplY3RvcixcclxuICBSZW5kZXJlcjIsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBHcmlkVWlBY3Rpb25UeXBlLCBTbWFydEdyaWRDb21wb25lbnQsIFNtYXJ0TGF5b3V0RGVmIH0gZnJvbSAnLi4vLi4vc21hcnQtZ3JpZC9wcm9qZWN0cyc7XHJcbmltcG9ydCB7IFNtYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vc21hcnQtY2xpZW50L3Byb2plY3RzJztcclxuaW1wb3J0IHsgU21hcnRDb21wb25lbnRMYXlvdXREZWZpbml0aW9uIH0gZnJvbSAnLi4vLi4vc21hcnQtY29tcG9uZW50LWxheW91dC9wcm9qZWN0cyc7XHJcbmltcG9ydCB7IFNtYXJ0RmlsdGVyIH0gZnJvbSAnLi4vLi4vc21hcnQtZmlsdGVyL3Byb2plY3RzJztcclxuaW1wb3J0IHsgU21hcnRGaWx0ZXJFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc21hcnQtZmlsdGVyLWVkaXRvci9zbWFydC1maWx0ZXItZWRpdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZWFyY2hQYWdlTW9kZWwgfSBmcm9tICcuLi9hcGkvcGxhdGZvcm0vc2VhcmNocGFnZS9tb2RlbC9zZWFyY2hQYWdlTW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzZWFyY2gtcGFnZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1wYWdlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtcGFnZS5jb21wb25lbnQuY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbU21hcnRGaWx0ZXJFZGl0b3JTZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlYXJjaFBhZ2VDb21wb25lbnQgZXh0ZW5kcyBTbWFydENvbXBvbmVudDxTZWFyY2hQYWdlTW9kZWw+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBHUklEX0lERU5USUZJRVI6IHN0cmluZyA9ICdSRVNVTFRfR1JJRCc7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEZJTFRFUl9CVUlMREVSX1dJREdFVF9JRCA9ICdGSUxURVJfQlVJTERFUl9XSURHRVQnO1xyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgY29tcG9uZW50TmFtZSA9ICdTZWFyY2hQYWdlQ29tcG9uZW50JztcclxuICBsYXlvdXQ/OiBTbWFydENvbXBvbmVudExheW91dERlZmluaXRpb247XHJcbiAgQFZpZXdDaGlsZCgnZ3JpZCcpIGdyaWQ/OiBTbWFydEdyaWRDb21wb25lbnQ7XHJcblxyXG4gIGZpbHRlcj86IFNtYXJ0RmlsdGVyO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGluamVjdDogSW5qZWN0b3IsXHJcbiAgICBwdWJsaWMgZmlsdGVyU2VydmljZTogU21hcnRGaWx0ZXJFZGl0b3JTZXJ2aWNlLFxyXG4gICAgQEluamVjdCgnc2VhcmNoUGFnZU5hbWUnKSBfbXlQYWdlTmFtZT86IHN0cmluZyxcclxuICAgIEBJbmplY3QoJ3NlYXJjaENvbXBvbmVudE5hbWUnKSBfbXlDb21wb25lbnROYW1lPzogc3RyaW5nLFxyXG4gICAgZWxlbWVudD86IEVsZW1lbnRSZWYsXHJcbiAgICByZW5kZXJlcj86IFJlbmRlcmVyMlxyXG4gICkge1xyXG4gICAgc3VwZXIoXHJcbiAgICAgIGluamVjdCxcclxuICAgICAgX215UGFnZU5hbWUsXHJcbiAgICAgIF9teUNvbXBvbmVudE5hbWUgPyBfbXlDb21wb25lbnROYW1lIDogX215UGFnZU5hbWUgPyB1bmRlZmluZWQgOiAnU2VhcmNoUGFnZUNvbXBvbmVudCcsXHJcbiAgICAgIGVsZW1lbnQsXHJcbiAgICAgIHJlbmRlcmVyXHJcbiAgICApO1xyXG4gICAgdGhpcy5zZXR1cEdyaWQoKTtcclxuICAgIHRoaXMudXNlUXVlcnlMaXN0cyA9IHRydWU7XHJcbiAgICB0aGlzLnNlbmRNb2RlbE9uV2lkZ2V0QWN0aW9uID0gdHJ1ZTtcclxuICAgIC8vIHV1aWQgaXMgc2V0IGluIG9uVXVpZFJlc29sdmVkIOKAlCBpdCBpcyBub3Qga25vd24gYXQgY29uc3RydWN0aW9uIGZvclxyXG4gICAgLy8gZHluYW1pYyBkZWZhdWx0LWNvbXBvbmVudCB2aWV3cy4gKCMyODg3MClcclxuICAgIHRoaXMuZmlsdGVyU2VydmljZS5jb25maWcgPSB7XHJcbiAgICAgIGlkZW50aWZpZXI6IHRoaXMuRklMVEVSX0JVSUxERVJfV0lER0VUX0lELFxyXG4gICAgfTtcclxuICAgIHRoaXMuZGF0YUNoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5pbml0TGF5b3V0KCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBvdmVycmlkZSBvblV1aWRSZXNvbHZlZCh1dWlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZpbHRlclNlcnZpY2UuY29uZmlnKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyU2VydmljZS5jb25maWcudXVpZCA9IHV1aWQ7XHJcbiAgICAgIHRoaXMuZmlsdGVyU2VydmljZS5sb2FkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbml0TGF5b3V0KCkge1xyXG4gICAgaWYgKHRoaXMubW9kZWw/LmNvbXBvbmVudExheW91dHMpIHtcclxuICAgICAgdGhpcy5sYXlvdXQgPSB0aGlzLm1vZGVsPy5jb21wb25lbnRMYXlvdXRzIVsnZGVmYXVsdCddO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0R3JpZElkZW50aWZpZXIoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLkdSSURfSURFTlRJRklFUjtcclxuICB9XHJcblxyXG4gIHNldHVwR3JpZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc21hcnRHcmlkID0ge1xyXG4gICAgICBncmlkTW9kZWw6IHtcclxuICAgICAgICBwYWdlOiB7XHJcbiAgICAgICAgICByb3dzOiBbXSxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBsYXlvdXREZWY6IFNtYXJ0TGF5b3V0RGVmLlRBQkxFLFxyXG4gICAgICBzaG93UmVzdWx0Q291bnQ6IGZhbHNlLFxyXG4gICAgICBncmlkSWRlbnRpZmllcjogdGhpcy5nZXRHcmlkSWRlbnRpZmllcigpLFxyXG4gICAgICBwYWdpbmF0b3I6IHRydWUsXHJcbiAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICByb3dVaUFjdGlvblR5cGU6IEdyaWRVaUFjdGlvblR5cGUuUE9QVVBfTUVOVSxcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBpc1Nob3dOb1Jlc3VsdFRleHQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhPy5ub1Jlc3VsdFRleHQgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmRhdGE/Lm5vUmVzdWx0VGV4dCAhPT0gbnVsbDtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInNlYXJjaFBhZ2VDb250YWluZXJcIiBbbmdDbGFzc109XCJkYXRhPy5jc3NDbGFzc09mUGFnZVwiPlxyXG4gIDxoMSBjbGFzcz1cInNlYXJjaC1wYWdlLXRpdGxlXCI+IHt7IGRhdGE/LnBhZ2VUaXRsZSB9fSA8L2gxPlxyXG4gIDwhLS0gPGRpdiBjbGFzcz1cImZpbHRlckNvbnRhaW5lclwiPlxyXG4gICAgPHNtYXJ0LWZpbHRlciBbZmlsdGVyXT1cImZpbHRlclwiPjwvc21hcnQtZmlsdGVyPlxyXG4gIDwvZGl2PiAtLT5cclxuICA8c21hcnQtdWktYWN0aW9uLXRvb2xiYXIgW3VpQWN0aW9uTW9kZWxzXT1cInVpQWN0aW9uTW9kZWxzXCI+PC9zbWFydC11aS1hY3Rpb24tdG9vbGJhcj5cclxuICBAaWYgKGZpbHRlclNlcnZpY2UubW9kZWwpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItZWRpdG9yLWNvbnRhaW5lclwiPlxyXG4gICAgICA8c21hcnQtZmlsdGVyLWdyb3VwLXBhcmFtcyBbc2VydmljZV09XCJmaWx0ZXJTZXJ2aWNlXCI+PC9zbWFydC1maWx0ZXItZ3JvdXAtcGFyYW1zPlxyXG4gICAgICA8c21hcnQtZmlsdGVyLWV4cHJlc3Npb24tZWRpdG9yIFtzZXJ2aWNlXT1cImZpbHRlclNlcnZpY2VcIj48L3NtYXJ0LWZpbHRlci1leHByZXNzaW9uLWVkaXRvcj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuICA8c21hcnQtY29tcG9uZW50LWxheW91dFxyXG4gICAgKm5nSWY9XCJsYXlvdXRcIlxyXG4gICAgW3NtYXJ0Q29tcG9uZW50TGF5b3V0XT1cImxheW91dFwiXHJcbiAgICBbcGFyZW50U21hcnRDb21wb25lbnRdPVwidGhpc1wiXHJcbiAgPjwvc21hcnQtY29tcG9uZW50LWxheW91dD5cclxuICA8ZGl2IGNsYXNzPVwiZ3JpZENvbnRhaW5lclwiPlxyXG4gICAgPGgyICpuZ0lmPVwiaXNTaG93Tm9SZXN1bHRUZXh0KClcIiBjbGFzcz1cIm5vUmVzdWx0VGV4dFwiPlxyXG4gICAgICB7eyBkYXRhPy5ub1Jlc3VsdFRleHQgfX1cclxuICAgIDwvaDI+XHJcbiAgICA8c21hcnQtZ3JpZFxyXG4gICAgICAqbmdJZj1cIiFpc1Nob3dOb1Jlc3VsdFRleHQoKVwiXHJcbiAgICAgICNncmlkXHJcbiAgICAgIFtzbWFydEdyaWRdPVwic21hcnRHcmlkXCJcclxuICAgICAgW3V1aWRdPVwidXVpZCFcIlxyXG4gICAgPjwvc21hcnQtZ3JpZD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|