@softheon/armature 17.17.1 → 17.18.0
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/README.md +6 -67
- package/ag-grid-components/package.json +3 -0
- package/assets/styles/{arm-theme.scss → _arm-theme.scss} +1 -0
- package/assets/styles/_responsive.scss +85 -0
- package/assets/styles/_typography.scss +180 -0
- package/assets/styles/_utility.scss +118 -29
- package/assets/styles/_variables.scss +2 -1
- package/assets/styles/deprecated/_button-deprecated.scss +1123 -0
- package/assets/styles/deprecated/_dialog-deprecated.scss +33 -0
- package/assets/styles/deprecated/_material-override-deprecated.scss +41 -0
- package/assets/styles/deprecated/_table-deprecated.scss +108 -0
- package/assets/styles/deprecated/_tooltip-deprecated.scss +93 -0
- package/assets/styles/material-override/_button-toggle-group.scss +122 -0
- package/assets/styles/material-override/_button.scss +266 -0
- package/assets/styles/material-override/_calendar.scss +85 -0
- package/assets/styles/material-override/_checkbox.scss +130 -0
- package/assets/styles/material-override/_chip.scss +254 -0
- package/assets/styles/material-override/_form-field.scss +137 -0
- package/assets/styles/material-override/_radio-button.scss +96 -0
- package/assets/styles/material-override/_slider.scss +102 -0
- package/assets/styles/material-override/_switch.scss +204 -0
- package/assets/styles/material-override/_tooltip.scss +2 -0
- package/assets/styles/sof-styles.scss +59 -3483
- package/esm2022/ag-grid-components/src/ag-grid-components.module.mjs +5 -5
- package/esm2022/ag-grid-components/src/column-options-modal/column-options.component.mjs +4 -4
- package/esm2022/ag-grid-components/src/sof-table/sof-table.component.mjs +4 -4
- package/esm2022/ag-grid-components/src/table-cell/table-cell.component.mjs +4 -4
- package/esm2022/lib/alert-banner/alert-banner.module.mjs +5 -5
- package/esm2022/lib/alert-banner/components/alert-banner/alert-banner.component.mjs +4 -4
- package/esm2022/lib/alert-banner/services/alert-banner.service.mjs +4 -4
- package/esm2022/lib/armature.module.mjs +14 -14
- package/esm2022/lib/base-components/base-component.module.mjs +5 -5
- package/esm2022/lib/base-components/confirm-address/sof-confirm-address/compare-address-pipe/compare-address.pipe.mjs +4 -4
- package/esm2022/lib/base-components/confirm-address/sof-confirm-address/sof-confirm-address.component.mjs +4 -4
- package/esm2022/lib/base-components/confirm-address/sof-confirm-address-county-change/sof-confirm-address-county-change.component.mjs +4 -4
- package/esm2022/lib/base-components/sof-alert/sof-alert.component.mjs +4 -4
- package/esm2022/lib/base-components/sof-badge/sof-badge.component.mjs +4 -4
- package/esm2022/lib/base-components/sof-banner/sof-banner.component.mjs +4 -4
- package/esm2022/lib/base-components/sof-button-toggle-group/sof-button-toggle-group.component.mjs +4 -4
- package/esm2022/lib/base-components/sof-handle/sof-handle.component.mjs +4 -4
- package/esm2022/lib/base-components/sof-image-checkbox/sof-image-checkbox.component.mjs +5 -5
- package/esm2022/lib/base-components/sof-input-stepper/sof-input-stepper.component.mjs +4 -4
- package/esm2022/lib/base-components/sof-modal/sof-modal.component.mjs +8 -5
- package/esm2022/lib/base-components/sof-progress-bar/sof-progress-bar.component.mjs +4 -4
- package/esm2022/lib/base-components/sof-radio-card/sof-radio-card.component.mjs +5 -5
- package/esm2022/lib/base-components/sof-simple-alert/sof-simple-alert.component.mjs +4 -4
- package/esm2022/lib/base-components/sof-star-rating/sof-star-rating.component.mjs +4 -4
- package/esm2022/lib/base-components/sof-utility-button/sof-utility-button.component.mjs +5 -5
- package/esm2022/lib/component-save-print/components/component-save-print/component-save-print.component.mjs +4 -4
- package/esm2022/lib/component-save-print/services/component-save-print.service.mjs +4 -4
- package/esm2022/lib/component-save-print/sof-ar-component-save-print.module.mjs +5 -5
- package/esm2022/lib/core/client-generated/api/session.service.mjs +4 -4
- package/esm2022/lib/core/components/app-template/app-template.component.mjs +4 -4
- package/esm2022/lib/core/initializer/initializer.service.mjs +4 -4
- package/esm2022/lib/core/interceptors/armature-auth-token-append.interceptor.mjs +4 -4
- package/esm2022/lib/core/services/authorization.service.mjs +4 -4
- package/esm2022/lib/core/services/banner.service.mjs +4 -4
- package/esm2022/lib/core/services/base-config.service.mjs +4 -4
- package/esm2022/lib/core/services/default-config.service.mjs +4 -4
- package/esm2022/lib/core/services/federated-module.service.mjs +4 -4
- package/esm2022/lib/core/services/session.service.mjs +4 -6
- package/esm2022/lib/core/services/user-entity.service.mjs +4 -4
- package/esm2022/lib/distributed-cache/client-generated/api/cache.service.mjs +4 -4
- package/esm2022/lib/distributed-cache/distributed-cache.module.mjs +5 -5
- package/esm2022/lib/distributed-cache/services/server-cache.service.mjs +4 -4
- package/esm2022/lib/error/components/error-common/error-common.component.mjs +4 -4
- package/esm2022/lib/error/error.module.mjs +5 -5
- package/esm2022/lib/faq/components/faq/faq.component.mjs +4 -4
- package/esm2022/lib/faq/faq.module.mjs +5 -5
- package/esm2022/lib/feedback-tool/components/feedback-tool/feedback-tool.component.mjs +4 -4
- package/esm2022/lib/feedback-tool/feedback-tool.module.mjs +5 -5
- package/esm2022/lib/footer/components/footer/footer.component.mjs +4 -4
- package/esm2022/lib/footer/components/site-map/site-map.component.mjs +4 -4
- package/esm2022/lib/footer/footer.module.mjs +5 -5
- package/esm2022/lib/forms/components/sof-address/sof-address.component.mjs +4 -4
- package/esm2022/lib/forms/directives/alphanumeric/alphanumeric.directive.mjs +4 -4
- package/esm2022/lib/forms/directives/date-input-filter/date-input-filter.directive.mjs +4 -4
- package/esm2022/lib/forms/directives/input-trim/input-trim.directive.mjs +4 -4
- package/esm2022/lib/forms/directives/letters-characters/letters-characters.directive.mjs +4 -4
- package/esm2022/lib/forms/directives/letters-only/letters-only.directive.mjs +4 -4
- package/esm2022/lib/forms/directives/numbers-only/numbers-only.directive.mjs +4 -4
- package/esm2022/lib/forms/forms.module.mjs +5 -5
- package/esm2022/lib/forms/pipes/phone-format.pipe.mjs +4 -4
- package/esm2022/lib/forms/services/alert.service.mjs +4 -4
- package/esm2022/lib/header/components/header/header.component.mjs +4 -4
- package/esm2022/lib/header/components/mobile-header-menu/mobile-header-menu.component.mjs +4 -4
- package/esm2022/lib/header/components/sof-header-portal/sof-header-portal.component.mjs +4 -4
- package/esm2022/lib/header/components/sof-header-portal/user-initials-pipe/user-initials.pipe.mjs +4 -4
- package/esm2022/lib/header/header.module.mjs +5 -5
- package/esm2022/lib/navigation/components/navigation/navigation.component.mjs +6 -6
- package/esm2022/lib/navigation/components/sof-breadcrumbs/sof-breadcrumbs-hierarchy/sof-breadcrumbs-hierarchy.component.mjs +4 -4
- package/esm2022/lib/navigation/components/sof-breadcrumbs/sof-breadcrumbs-history/sof-breadcrumbs-history.component.mjs +4 -4
- package/esm2022/lib/navigation/components/sof-navigation-panel/sof-nav-panel.component.mjs +4 -4
- package/esm2022/lib/navigation/components/sof-sub-navigation/sof-sub-navigation.component.mjs +4 -4
- package/esm2022/lib/navigation/components/sof-tabs-navigation/sof-tabs.component.mjs +4 -4
- package/esm2022/lib/navigation/navigation.module.mjs +5 -5
- package/esm2022/lib/oauth/oauth.module.mjs +5 -5
- package/esm2022/lib/oauth/services/hybrid-saml-oauth.service.mjs +4 -4
- package/esm2022/lib/rbac/directives/rbac-action.directive.mjs +4 -4
- package/esm2022/lib/rbac/rbac.module.mjs +5 -5
- package/esm2022/lib/rbac/services/ar-role-nav.service.mjs +4 -4
- package/esm2022/lib/rbac/services/oauth2-role.service.mjs +4 -4
- package/esm2022/lib/resize-panels/components/resize-panels/resize-panels.component.mjs +4 -4
- package/esm2022/lib/resize-panels/resize-panels.module.mjs +5 -5
- package/esm2022/lib/rum/rum.module.mjs +5 -5
- package/esm2022/lib/rum/services/rum.service.mjs +4 -4
- package/esm2022/lib/rum/services/shared-error.service.mjs +4 -4
- package/esm2022/lib/rum/services/softheon-error-handler.service.mjs +4 -4
- package/esm2022/lib/saml/components/redirect-saml/redirect-saml.component.mjs +4 -4
- package/esm2022/lib/saml/saml.module.mjs +5 -5
- package/esm2022/lib/saml/services/entry/sso-gateway-entry.service.mjs +4 -4
- package/esm2022/lib/saml/services/send-off/saml.service.mjs +4 -4
- package/esm2022/lib/sof-pipe/pipes/sof-blank/sof-blank.pipe.mjs +4 -4
- package/esm2022/lib/sof-pipe/pipes/sof-date/sof-date.pipe.mjs +4 -4
- package/esm2022/lib/sof-pipe/pipes/sof-ssn/sof-ssn.pipe.mjs +4 -4
- package/esm2022/lib/sof-pipe/sof-pipe.module.mjs +5 -5
- package/esm2022/lib/theming/directives/css-override.directive.mjs +4 -4
- package/esm2022/lib/theming/services/theme.service.mjs +4 -4
- package/esm2022/lib/theming/theme.module.mjs +6 -6
- package/fesm2022/softheon-armature-ag-grid-components.mjs +13 -13
- package/fesm2022/softheon-armature-ag-grid-components.mjs.map +1 -1
- package/fesm2022/softheon-armature.mjs +314 -313
- package/fesm2022/softheon-armature.mjs.map +1 -1
- package/lib/armature.module.d.ts +4 -4
- package/lib/base-components/sof-modal/sof-modal.component.d.ts +3 -0
- package/lib/theming/theme.module.d.ts +1 -1
- package/package.json +1 -1
- package/assets/styles/material-overrides.scss +0 -361
|
@@ -161,10 +161,10 @@ export class AuthorizationService {
|
|
|
161
161
|
console.error(e);
|
|
162
162
|
});
|
|
163
163
|
}
|
|
164
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
165
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.
|
|
164
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthorizationService, deps: [{ token: i1.OAuthService }, { token: i2.HttpClient }, { token: i1.OAuthStorage }, { token: i3.HybridSamlOauthService }, { token: i4.CustomAuthConfigService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
165
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthorizationService, providedIn: 'root' }); }
|
|
166
166
|
}
|
|
167
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
167
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthorizationService, decorators: [{
|
|
168
168
|
type: Injectable,
|
|
169
169
|
args: [{
|
|
170
170
|
providedIn: 'root'
|
|
@@ -172,4 +172,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
|
|
|
172
172
|
}], ctorParameters: () => [{ type: i1.OAuthService }, { type: i2.HttpClient }, { type: i1.OAuthStorage }, { type: i3.HybridSamlOauthService }, { type: i4.CustomAuthConfigService, decorators: [{
|
|
173
173
|
type: Optional
|
|
174
174
|
}] }] });
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2F1dGhvcml6YXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQVUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsVUFBVSxFQUE4QixNQUFNLHFCQUFxQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFLbkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQUcvRCwwQkFBMEI7QUFJMUIsTUFBTSxPQUFPLG9CQUFvQjtJQWlCL0I7Ozs7Ozs7T0FPRztJQUNILFlBQ21CLFdBQXlCLEVBQ3pCLFVBQXNCLEVBQ3RCLFdBQXlCLEVBQ3pCLGlCQUF5QyxFQUM3Qix1QkFBZ0Q7UUFKNUQsZ0JBQVcsR0FBWCxXQUFXLENBQWM7UUFDekIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYztRQUN6QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQXdCO1FBQzdCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUF0Qi9FLG9DQUFvQztRQUNuQixpQkFBWSxHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQXVCNUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRDs7O09BR0c7SUFDSSxzQkFBc0IsQ0FBQyxZQUFnQyxFQUFFLGlCQUEwQixJQUFJO1FBQzVGLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxD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QUMsVUFBVSxHQUFHLElBQUksQ0FBQzthQUN4QjtRQUNILENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQTVLVSxvQkFBb0I7a0hBQXBCLG9CQUFvQixjQUZuQixNQUFNOzsyRkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkErQkksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQgeyBBdXRoQ29uZmlnLCBPQXV0aFNlcnZpY2UsIE9BdXRoU3RvcmFnZSB9IGZyb20gXCJhbmd1bGFyLW9hdXRoMi1vaWRjXCI7XHJcbmltcG9ydCB7IEp3a3NWYWxpZGF0aW9uSGFuZGxlciB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMtandrcyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5pbXBvcnQgeyBIZWFkZXJBdXRoU2V0dGluZ3MgfSBmcm9tIFwiLi4vLi4vaGVhZGVyL21vZGVscy9oZWFkZXItYXV0aC5zZXR0aW5nc1wiO1xyXG5pbXBvcnQgeyBIeWJyaWRTYW1sT2F1dGhTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL29hdXRoL29hdXRoLWFwaVwiO1xyXG5pbXBvcnQgeyBBY2Nlc3NUb2tlbkNsYWltcyB9IGZyb20gXCIuLi8uLi9yYmFjL3JiYWMtYXBpXCI7XHJcbmltcG9ydCB7IHByZVNpZ25JblJvdXRlU3RvcmFnZUtleSB9IGZyb20gXCIuLi9tb2RlbHMvY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEN1c3RvbUF1dGhDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9jdXN0b20tYXV0aC1jb25maWcuc2VydmljZSc7XHJcblxyXG4vKiogVGhlIHNlc3Npb24gc2VydmljZSAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRob3JpemF0aW9uU2VydmljZSB7XHJcblxyXG4gIC8qKiBUaGUgY2xhaW1zICovXHJcbiAgcHJpdmF0ZSBjbGFpbXM6IEFjY2Vzc1Rva2VuQ2xhaW1zO1xyXG5cclxuICAvKiogQXV0aG9yaXphdGlvbiBzZXR0aW5ncy4qL1xyXG4gIHB1YmxpYyBhdXRoU2V0dGluZ3M6IEhlYWRlckF1dGhTZXR0aW5ncztcclxuXHJcbiAgLyoqIElzbG9nZ2VkSW4gYmVoYXZpb3VyIHN1YmplY3QgKiovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBpc0xvZ2dlZEluQnM6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvKiogSXNsb2dnZWRJbiBvYnNlcnZhYmxlICoqL1xyXG4gIHB1YmxpYyBpc0xvZ2dlZEluJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgLyoqIERldGVybWluZWQgd2hldGhlciBpcyB1c2VyIGlzIGxvZ2dlZCBpbioqL1xyXG4gIHB1YmxpYyBJc0xvZ2dlZEluOiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RzIGF1dGhvcml6YXRpb24gc2VydmljZVxyXG4gICAqIEBwYXJhbSBhdXRoU2VydmljZSBUaGUgT0F1dGggU2VydmljZVxyXG4gICAqIEBwYXJhbSBodHRwQ2xpZW50IFRoZSBIVFRQQ2xpZW50XHJcbiAgICogQHBhcmFtIGF1dGhTdG9yYWdlIFRoZSBBdXRoU3RvcmFnZVxyXG4gICAqIEBwYXJhbSBoeWJyaWRBdXRoU2VydmljZSBUaGUgSHlicmlkIFNlcnZpY2VcclxuICAgKiBAcGFyYW0gY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2UgVGhlIEN1c3RvbSBBdXRob3JpemF0aW9uIFNlcnZpY2VcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aFNlcnZpY2U6IE9BdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aFN0b3JhZ2U6IE9BdXRoU3RvcmFnZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHlicmlkQXV0aFNlcnZpY2U6IEh5YnJpZFNhbWxPYXV0aFNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IGN1c3RvbUF1dGhDb25maWdTZXJ2aWNlOiBDdXN0b21BdXRoQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5pc0xvZ2dlZEluJCA9IHRoaXMuaXNMb2dnZWRJbkJzLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZSBBdXRob3JpemF0aW9uIFNldHRpbmdzLlxyXG4gICAqICBAcGFyYW0gYXV0aFNldHRpbmdzIFRoZSBBdXRob3JpemF0aW9uIHNldHRpbmdzXHJcbiAgICovXHJcbiAgcHVibGljIGluaXRpYWxpemVBdXRoU2V0dGluZ3MoYXV0aFNldHRpbmdzOiBIZWFkZXJBdXRoU2V0dGluZ3MsIHNob3VsZFRyeUxvZ2luOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5hdXRoU2V0dGluZ3MgPSBhdXRoU2V0dGluZ3M7XHJcblxyXG4gICAgaWYgKHRoaXMuY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2UpIHtcclxuICAgICAgdGhpcy5jdXN0b21BdXRoQ29uZmlnU2VydmljZS5jb25maWd1cmVBdXRoU2V0dGluZ3MoKS50aGVuKGF1dGhDb25maWcgPT4ge1xyXG4gICAgICAgIC8vIE92ZXJ3cml0ZSBpbml0aWFsIGhlYWRlciBhdXRoIHNldHRpbmcgd2l0aCBjdXN0b20gcmVzb2x2ZXJcclxuICAgICAgICB0aGlzLmF1dGhTZXR0aW5ncyA9IHtcclxuICAgICAgICAgIC4uLmF1dGhTZXR0aW5ncyxcclxuICAgICAgICAgIC4uLmF1dGhDb25maWdcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmIChzaG91bGRUcnlMb2dpbikge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVUcnlMb2dpbihhdXRoU2V0dGluZ3MuYXV0aFNldE9uU3RhcnR1cCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCBhdXRoQ29uZmlnID0gbmV3IEF1dGhDb25maWcoe1xyXG4gICAgICAgIGNsaWVudElkOiBhdXRoU2V0dGluZ3MuY2xpZW50SWQsXHJcbiAgICAgICAgcmVkaXJlY3RVcmk6IGF1dGhTZXR0aW5ncy5yZWRpcmVjdFVyaSxcclxuICAgICAgICBpc3N1ZXI6IGF1dGhTZXR0aW5ncy5pc3N1ZXIsXHJcbiAgICAgICAgc2NvcGU6IGF1dGhTZXR0aW5ncy5zY29wZSxcclxuICAgICAgICBza2lwSXNzdWVyQ2hlY2s6IGF1dGhTZXR0aW5ncy5za2lwSXNzdWVyQ2hlY2ssXHJcbiAgICAgICAgdGltZW91dEZhY3RvcjogYXV0aFNldHRpbmdzLnRpbWVvdXRGYWN0b3IgfHwgMC43NSxcclxuICAgICAgICBwb3N0TG9nb3V0UmVkaXJlY3RVcmk6IGF1dGhTZXR0aW5ncy5wb3N0TG9nT3V0VXJsLFxyXG4gICAgICAgIGxvZ2luVXJsOiBhdXRoU2V0dGluZ3MubG9naW5VcmwsXHJcbiAgICAgICAgcmVzcG9uc2VUeXBlOiBhdXRoU2V0dGluZ3MucmVzcG9uc2VUeXBlIHx8ICdjb2RlJ1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5jb25maWd1cmUoYXV0aENvbmZpZyk7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuaXNzdWVyID0gYXV0aFNldHRpbmdzLmlzc3VlcjtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5zdHJpY3REaXNjb3ZlcnlEb2N1bWVudFZhbGlkYXRpb24gPSBmYWxzZTtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5za2lwSXNzdWVyQ2hlY2sgPSB0cnVlO1xyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLnRva2VuVmFsaWRhdGlvbkhhbmRsZXIgPSBuZXcgSndrc1ZhbGlkYXRpb25IYW5kbGVyKCk7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2Uuc2V0dXBBdXRvbWF0aWNTaWxlbnRSZWZyZXNoKHt9LCAnYWNjZXNzX3Rva2VuJyk7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UudGltZW91dEZhY3RvciA9IGF1dGhTZXR0aW5ncy50aW1lb3V0RmFjdG9yIHx8IDAuNzU7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UucmVzcG9uc2VUeXBlID0gYXV0aFNldHRpbmdzLnJlc3BvbnNlVHlwZSB8fCAnY29kZSc7XHJcblxyXG4gICAgICBpZiAoc2hvdWxkVHJ5TG9naW4pIHtcclxuICAgICAgICB0aGlzLmhhbmRsZVRyeUxvZ2luKGF1dGhTZXR0aW5ncy5hdXRoU2V0T25TdGFydHVwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIFRoZSB1c2VyIG5hbWUgKi9cclxuICBwdWJsaWMgdXNlck5hbWUoKTogc3RyaW5nIHtcclxuICAgIGxldCBuYW1lID0gJyc7XHJcbiAgICBpZiAodGhpcy5jbGFpbXMuZ2l2ZW5fbmFtZSkge1xyXG4gICAgICBuYW1lICs9IHRoaXMuY2xhaW1zLmdpdmVuX25hbWU7XHJcbiAgICB9XHJcbiAgICBpZiAobmFtZSAmJiB0aGlzLmNsYWltcy5mYW1pbHlfbmFtZSkge1xyXG4gICAgICBuYW1lICs9IGAgJHt0aGlzLmNsYWltcy5mYW1pbHlfbmFtZX1gO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5jbGFpbXMuZmFtaWx5X25hbWUpIHtcclxuICAgICAgbmFtZSArPSB0aGlzLmNsYWltcy5mYW1pbHlfbmFtZTtcclxuICAgIH1cclxuICAgIHJldHVybiBuYW1lIHx8IHRoaXMuY2xhaW1zLnVwbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEF1dGhvcml6ZSBVc2VyLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBhdXRob3JpemVVc2VyKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYXV0aFNldHRpbmdzKSB7XHJcbiAgICAgIGlmICghdGhpcy5Jc0xvZ2dlZEluKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2UpIHtcclxuICAgICAgICAgIHRoaXMuY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2UuY29uZmlndXJlQXV0aFNldHRpbmdzKCkudGhlbihfID0+IHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVMb2dpbigpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuaXNzdWVyICE9PSB0aGlzLmF1dGhTZXR0aW5ncy5pc3N1ZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5pc3N1ZXIgPSB0aGlzLmF1dGhTZXR0aW5ncy5pc3N1ZXI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUxvZ2luKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh0aGlzLmh5YnJpZEF1dGhTZXJ2aWNlKSB7XHJcbiAgICAgICAgICB0aGlzLmh5YnJpZEF1dGhTZXJ2aWNlLmV4cGlyZVNlc3Npb24odHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nT3V0KCk7XHJcbiAgICAgICAgdGhpcy5hdXRoU3RvcmFnZS5yZW1vdmVJdGVtKCdhY2Nlc3NfdG9rZW4nKTtcclxuICAgICAgICB0aGlzLmlzTG9nZ2VkSW5Ccy5uZXh0KGZhbHNlKTtcclxuICAgICAgICB0aGlzLklzTG9nZ2VkSW4gPSBmYWxzZTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogSGFuZGxlIExvZ2luXHJcbiAgKiBAcGFyYW0gYXV0aFNldE9uU3RhcnR1cCBJcyBhdXRoIHNldCBvbiBzdGFydHVwIFxyXG4gICovXHJcbiAgcHJpdmF0ZSBoYW5kbGVUcnlMb2dpbihhdXRoU2V0T25TdGFydHVwOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoIWF1dGhTZXRPblN0YXJ0dXApIHtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5sb2FkRGlzY292ZXJ5RG9jdW1lbnRBbmRUcnlMb2dpbigpXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmF1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKCk7XHJcbiAgICAgICAgICBjb25zdCBpc1ZhbGlkID0gISF0b2tlbjtcclxuICAgICAgICAgIHRoaXMuY2xhaW1zID0gdGhpcy5hdXRoU2VydmljZS5nZXRJZGVudGl0eUNsYWltcygpIGFzIEFjY2Vzc1Rva2VuQ2xhaW1zO1xyXG4gICAgICAgICAgdGhpcy5pc0xvZ2dlZEluQnMubmV4dChpc1ZhbGlkKTtcclxuICAgICAgICAgIHRoaXMuSXNMb2dnZWRJbiA9IGlzVmFsaWQ7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goZSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9hZERpc2NvdmVyeURvY3VtZW50KClcclxuICAgICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0QWNjZXNzVG9rZW4oKTtcclxuICAgICAgICAgIGNvbnN0IGlzVmFsaWQgPSAhIXRva2VuO1xyXG4gICAgICAgICAgdGhpcy5jbGFpbXMgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldElkZW50aXR5Q2xhaW1zKCkgYXMgQWNjZXNzVG9rZW5DbGFpbXM7XHJcbiAgICAgICAgICB0aGlzLmlzTG9nZ2VkSW5Ccy5uZXh0KGlzVmFsaWQpO1xyXG4gICAgICAgICAgdGhpcy5Jc0xvZ2dlZEluID0gaXNWYWxpZDtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaChlID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogSGFuZGxlIExvZ2luICovXHJcbiAgcHJpdmF0ZSBoYW5kbGVMb2dpbigpOiB2b2lkIHtcclxuICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHByZVNpZ25JblJvdXRlU3RvcmFnZUtleSwgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5sb2FkRGlzY292ZXJ5RG9jdW1lbnRBbmRMb2dpbigpXHJcbiAgICAgIC50aGVuKGxvZ0luU3VjY2VzcyA9PiB7XHJcbiAgICAgICAgaWYgKGxvZ0luU3VjY2Vzcykge1xyXG4gICAgICAgICAgdGhpcy5pc0xvZ2dlZEluQnMubmV4dCh0cnVlKTtcclxuICAgICAgICAgIHRoaXMuSXNMb2dnZWRJbiA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goZSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihlKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2F1dGhvcml6YXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQVUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsVUFBVSxFQUE4QixNQUFNLHFCQUFxQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFLbkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQUcvRCwwQkFBMEI7QUFJMUIsTUFBTSxPQUFPLG9CQUFvQjtJQWlCL0I7Ozs7Ozs7T0FPRztJQUNILFlBQ21CLFdBQXlCLEVBQ3pCLFVBQXNCLEVBQ3RCLFdBQXlCLEVBQ3pCLGlCQUF5QyxFQUM3Qix1QkFBZ0Q7UUFKNUQsZ0JBQVcsR0FBWCxXQUFXLENBQWM7UUFDekIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYztRQUN6QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQXdCO1FBQzdCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUF0Qi9FLG9DQUFvQztRQUNuQixpQkFBWSxHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQXVCNUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRDs7O09BR0c7SUFDSSxzQkFBc0IsQ0FBQyxZQUFnQyxFQUFFLGlCQUEwQixJQUFJO1FBQzVGLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxD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QUMsVUFBVSxHQUFHLElBQUksQ0FBQzthQUN4QjtRQUNILENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQTVLVSxvQkFBb0I7bUhBQXBCLG9CQUFvQixjQUZuQixNQUFNOzs0RkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkErQkksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQgeyBBdXRoQ29uZmlnLCBPQXV0aFNlcnZpY2UsIE9BdXRoU3RvcmFnZSB9IGZyb20gXCJhbmd1bGFyLW9hdXRoMi1vaWRjXCI7XHJcbmltcG9ydCB7IEp3a3NWYWxpZGF0aW9uSGFuZGxlciB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMtandrcyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5pbXBvcnQgeyBIZWFkZXJBdXRoU2V0dGluZ3MgfSBmcm9tIFwiLi4vLi4vaGVhZGVyL21vZGVscy9oZWFkZXItYXV0aC5zZXR0aW5nc1wiO1xyXG5pbXBvcnQgeyBIeWJyaWRTYW1sT2F1dGhTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL29hdXRoL29hdXRoLWFwaVwiO1xyXG5pbXBvcnQgeyBBY2Nlc3NUb2tlbkNsYWltcyB9IGZyb20gXCIuLi8uLi9yYmFjL3JiYWMtYXBpXCI7XHJcbmltcG9ydCB7IHByZVNpZ25JblJvdXRlU3RvcmFnZUtleSB9IGZyb20gXCIuLi9tb2RlbHMvY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEN1c3RvbUF1dGhDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9jdXN0b20tYXV0aC1jb25maWcuc2VydmljZSc7XHJcblxyXG4vKiogVGhlIHNlc3Npb24gc2VydmljZSAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRob3JpemF0aW9uU2VydmljZSB7XHJcblxyXG4gIC8qKiBUaGUgY2xhaW1zICovXHJcbiAgcHJpdmF0ZSBjbGFpbXM6IEFjY2Vzc1Rva2VuQ2xhaW1zO1xyXG5cclxuICAvKiogQXV0aG9yaXphdGlvbiBzZXR0aW5ncy4qL1xyXG4gIHB1YmxpYyBhdXRoU2V0dGluZ3M6IEhlYWRlckF1dGhTZXR0aW5ncztcclxuXHJcbiAgLyoqIElzbG9nZ2VkSW4gYmVoYXZpb3VyIHN1YmplY3QgKiovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBpc0xvZ2dlZEluQnM6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvKiogSXNsb2dnZWRJbiBvYnNlcnZhYmxlICoqL1xyXG4gIHB1YmxpYyBpc0xvZ2dlZEluJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgLyoqIERldGVybWluZWQgd2hldGhlciBpcyB1c2VyIGlzIGxvZ2dlZCBpbioqL1xyXG4gIHB1YmxpYyBJc0xvZ2dlZEluOiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RzIGF1dGhvcml6YXRpb24gc2VydmljZVxyXG4gICAqIEBwYXJhbSBhdXRoU2VydmljZSBUaGUgT0F1dGggU2VydmljZVxyXG4gICAqIEBwYXJhbSBodHRwQ2xpZW50IFRoZSBIVFRQQ2xpZW50XHJcbiAgICogQHBhcmFtIGF1dGhTdG9yYWdlIFRoZSBBdXRoU3RvcmFnZVxyXG4gICAqIEBwYXJhbSBoeWJyaWRBdXRoU2VydmljZSBUaGUgSHlicmlkIFNlcnZpY2VcclxuICAgKiBAcGFyYW0gY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2UgVGhlIEN1c3RvbSBBdXRob3JpemF0aW9uIFNlcnZpY2VcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aFNlcnZpY2U6IE9BdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aFN0b3JhZ2U6IE9BdXRoU3RvcmFnZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHlicmlkQXV0aFNlcnZpY2U6IEh5YnJpZFNhbWxPYXV0aFNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IGN1c3RvbUF1dGhDb25maWdTZXJ2aWNlOiBDdXN0b21BdXRoQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5pc0xvZ2dlZEluJCA9IHRoaXMuaXNMb2dnZWRJbkJzLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZSBBdXRob3JpemF0aW9uIFNldHRpbmdzLlxyXG4gICAqICBAcGFyYW0gYXV0aFNldHRpbmdzIFRoZSBBdXRob3JpemF0aW9uIHNldHRpbmdzXHJcbiAgICovXHJcbiAgcHVibGljIGluaXRpYWxpemVBdXRoU2V0dGluZ3MoYXV0aFNldHRpbmdzOiBIZWFkZXJBdXRoU2V0dGluZ3MsIHNob3VsZFRyeUxvZ2luOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5hdXRoU2V0dGluZ3MgPSBhdXRoU2V0dGluZ3M7XHJcblxyXG4gICAgaWYgKHRoaXMuY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2UpIHtcclxuICAgICAgdGhpcy5jdXN0b21BdXRoQ29uZmlnU2VydmljZS5jb25maWd1cmVBdXRoU2V0dGluZ3MoKS50aGVuKGF1dGhDb25maWcgPT4ge1xyXG4gICAgICAgIC8vIE92ZXJ3cml0ZSBpbml0aWFsIGhlYWRlciBhdXRoIHNldHRpbmcgd2l0aCBjdXN0b20gcmVzb2x2ZXJcclxuICAgICAgICB0aGlzLmF1dGhTZXR0aW5ncyA9IHtcclxuICAgICAgICAgIC4uLmF1dGhTZXR0aW5ncyxcclxuICAgICAgICAgIC4uLmF1dGhDb25maWdcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmIChzaG91bGRUcnlMb2dpbikge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVUcnlMb2dpbihhdXRoU2V0dGluZ3MuYXV0aFNldE9uU3RhcnR1cCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCBhdXRoQ29uZmlnID0gbmV3IEF1dGhDb25maWcoe1xyXG4gICAgICAgIGNsaWVudElkOiBhdXRoU2V0dGluZ3MuY2xpZW50SWQsXHJcbiAgICAgICAgcmVkaXJlY3RVcmk6IGF1dGhTZXR0aW5ncy5yZWRpcmVjdFVyaSxcclxuICAgICAgICBpc3N1ZXI6IGF1dGhTZXR0aW5ncy5pc3N1ZXIsXHJcbiAgICAgICAgc2NvcGU6IGF1dGhTZXR0aW5ncy5zY29wZSxcclxuICAgICAgICBza2lwSXNzdWVyQ2hlY2s6IGF1dGhTZXR0aW5ncy5za2lwSXNzdWVyQ2hlY2ssXHJcbiAgICAgICAgdGltZW91dEZhY3RvcjogYXV0aFNldHRpbmdzLnRpbWVvdXRGYWN0b3IgfHwgMC43NSxcclxuICAgICAgICBwb3N0TG9nb3V0UmVkaXJlY3RVcmk6IGF1dGhTZXR0aW5ncy5wb3N0TG9nT3V0VXJsLFxyXG4gICAgICAgIGxvZ2luVXJsOiBhdXRoU2V0dGluZ3MubG9naW5VcmwsXHJcbiAgICAgICAgcmVzcG9uc2VUeXBlOiBhdXRoU2V0dGluZ3MucmVzcG9uc2VUeXBlIHx8ICdjb2RlJ1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5jb25maWd1cmUoYXV0aENvbmZpZyk7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuaXNzdWVyID0gYXV0aFNldHRpbmdzLmlzc3VlcjtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5zdHJpY3REaXNjb3ZlcnlEb2N1bWVudFZhbGlkYXRpb24gPSBmYWxzZTtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5za2lwSXNzdWVyQ2hlY2sgPSB0cnVlO1xyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLnRva2VuVmFsaWRhdGlvbkhhbmRsZXIgPSBuZXcgSndrc1ZhbGlkYXRpb25IYW5kbGVyKCk7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2Uuc2V0dXBBdXRvbWF0aWNTaWxlbnRSZWZyZXNoKHt9LCAnYWNjZXNzX3Rva2VuJyk7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UudGltZW91dEZhY3RvciA9IGF1dGhTZXR0aW5ncy50aW1lb3V0RmFjdG9yIHx8IDAuNzU7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UucmVzcG9uc2VUeXBlID0gYXV0aFNldHRpbmdzLnJlc3BvbnNlVHlwZSB8fCAnY29kZSc7XHJcblxyXG4gICAgICBpZiAoc2hvdWxkVHJ5TG9naW4pIHtcclxuICAgICAgICB0aGlzLmhhbmRsZVRyeUxvZ2luKGF1dGhTZXR0aW5ncy5hdXRoU2V0T25TdGFydHVwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIFRoZSB1c2VyIG5hbWUgKi9cclxuICBwdWJsaWMgdXNlck5hbWUoKTogc3RyaW5nIHtcclxuICAgIGxldCBuYW1lID0gJyc7XHJcbiAgICBpZiAodGhpcy5jbGFpbXMuZ2l2ZW5fbmFtZSkge1xyXG4gICAgICBuYW1lICs9IHRoaXMuY2xhaW1zLmdpdmVuX25hbWU7XHJcbiAgICB9XHJcbiAgICBpZiAobmFtZSAmJiB0aGlzLmNsYWltcy5mYW1pbHlfbmFtZSkge1xyXG4gICAgICBuYW1lICs9IGAgJHt0aGlzLmNsYWltcy5mYW1pbHlfbmFtZX1gO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5jbGFpbXMuZmFtaWx5X25hbWUpIHtcclxuICAgICAgbmFtZSArPSB0aGlzLmNsYWltcy5mYW1pbHlfbmFtZTtcclxuICAgIH1cclxuICAgIHJldHVybiBuYW1lIHx8IHRoaXMuY2xhaW1zLnVwbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEF1dGhvcml6ZSBVc2VyLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBhdXRob3JpemVVc2VyKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYXV0aFNldHRpbmdzKSB7XHJcbiAgICAgIGlmICghdGhpcy5Jc0xvZ2dlZEluKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2UpIHtcclxuICAgICAgICAgIHRoaXMuY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2UuY29uZmlndXJlQXV0aFNldHRpbmdzKCkudGhlbihfID0+IHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVMb2dpbigpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuaXNzdWVyICE9PSB0aGlzLmF1dGhTZXR0aW5ncy5pc3N1ZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5pc3N1ZXIgPSB0aGlzLmF1dGhTZXR0aW5ncy5pc3N1ZXI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUxvZ2luKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh0aGlzLmh5YnJpZEF1dGhTZXJ2aWNlKSB7XHJcbiAgICAgICAgICB0aGlzLmh5YnJpZEF1dGhTZXJ2aWNlLmV4cGlyZVNlc3Npb24odHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nT3V0KCk7XHJcbiAgICAgICAgdGhpcy5hdXRoU3RvcmFnZS5yZW1vdmVJdGVtKCdhY2Nlc3NfdG9rZW4nKTtcclxuICAgICAgICB0aGlzLmlzTG9nZ2VkSW5Ccy5uZXh0KGZhbHNlKTtcclxuICAgICAgICB0aGlzLklzTG9nZ2VkSW4gPSBmYWxzZTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogSGFuZGxlIExvZ2luXHJcbiAgKiBAcGFyYW0gYXV0aFNldE9uU3RhcnR1cCBJcyBhdXRoIHNldCBvbiBzdGFydHVwIFxyXG4gICovXHJcbiAgcHJpdmF0ZSBoYW5kbGVUcnlMb2dpbihhdXRoU2V0T25TdGFydHVwOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoIWF1dGhTZXRPblN0YXJ0dXApIHtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5sb2FkRGlzY292ZXJ5RG9jdW1lbnRBbmRUcnlMb2dpbigpXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmF1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKCk7XHJcbiAgICAgICAgICBjb25zdCBpc1ZhbGlkID0gISF0b2tlbjtcclxuICAgICAgICAgIHRoaXMuY2xhaW1zID0gdGhpcy5hdXRoU2VydmljZS5nZXRJZGVudGl0eUNsYWltcygpIGFzIEFjY2Vzc1Rva2VuQ2xhaW1zO1xyXG4gICAgICAgICAgdGhpcy5pc0xvZ2dlZEluQnMubmV4dChpc1ZhbGlkKTtcclxuICAgICAgICAgIHRoaXMuSXNMb2dnZWRJbiA9IGlzVmFsaWQ7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goZSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9hZERpc2NvdmVyeURvY3VtZW50KClcclxuICAgICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0QWNjZXNzVG9rZW4oKTtcclxuICAgICAgICAgIGNvbnN0IGlzVmFsaWQgPSAhIXRva2VuO1xyXG4gICAgICAgICAgdGhpcy5jbGFpbXMgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldElkZW50aXR5Q2xhaW1zKCkgYXMgQWNjZXNzVG9rZW5DbGFpbXM7XHJcbiAgICAgICAgICB0aGlzLmlzTG9nZ2VkSW5Ccy5uZXh0KGlzVmFsaWQpO1xyXG4gICAgICAgICAgdGhpcy5Jc0xvZ2dlZEluID0gaXNWYWxpZDtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaChlID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogSGFuZGxlIExvZ2luICovXHJcbiAgcHJpdmF0ZSBoYW5kbGVMb2dpbigpOiB2b2lkIHtcclxuICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHByZVNpZ25JblJvdXRlU3RvcmFnZUtleSwgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5sb2FkRGlzY292ZXJ5RG9jdW1lbnRBbmRMb2dpbigpXHJcbiAgICAgIC50aGVuKGxvZ0luU3VjY2VzcyA9PiB7XHJcbiAgICAgICAgaWYgKGxvZ0luU3VjY2Vzcykge1xyXG4gICAgICAgICAgdGhpcy5pc0xvZ2dlZEluQnMubmV4dCh0cnVlKTtcclxuICAgICAgICAgIHRoaXMuSXNMb2dnZWRJbiA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goZSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihlKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -31,13 +31,13 @@ export class BannerService {
|
|
|
31
31
|
hideMessage() {
|
|
32
32
|
this.showBanner.next(false);
|
|
33
33
|
}
|
|
34
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
35
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BannerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
35
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BannerService, providedIn: 'root' }); }
|
|
36
36
|
}
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BannerService, decorators: [{
|
|
38
38
|
type: Injectable,
|
|
39
39
|
args: [{
|
|
40
40
|
providedIn: 'root'
|
|
41
41
|
}]
|
|
42
42
|
}], ctorParameters: () => [] });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFubmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvbGliL2NvcmUvc2VydmljZXMvYmFubmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOztBQUVuRDs7R0FFRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBb0J4QjtRQVRBLHVDQUF1QztRQUMvQixlQUFVLEdBQTZCLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRW5GLDBDQUEwQztRQUNsQyxZQUFPLEdBQTRCLElBQUksZUFBZSxDQUFTLFNBQVMsQ0FBQyxDQUFDO1FBRWxGLDZEQUE2RDtRQUNyRCxrQkFBYSxHQUE2QixJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUluRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksV0FBVyxDQUFDLE9BQWUsRUFBRSxnQkFBeUIsSUFBSTtRQUMvRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7K0dBMUNVLGFBQWE7bUhBQWIsYUFBYSxjQUZaLE1BQU07OzRGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbi8qKlxyXG4gKiBTZXJ2aWNlIGZvciBtYW5hZ2luZyB0aGUgYmFubmVyXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYW5uZXJTZXJ2aWNlIHtcclxuXHJcbiAgLyoqIE9ic2VydmFibGUgZm9yIHdoZXRoZXIgdGhlIGJhbm5lciBzaG91bGQgYmUgc2hvd24gKi9cclxuICBwdWJsaWMgc2hvd0Jhbm5lciQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcblxyXG4gIC8qKiBPYnNlcnZhYmxlIGZvciB0aGUgYmFubmVyIG1lc3NhZ2UgKi9cclxuICBwdWJsaWMgbWVzc2FnZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcclxuXHJcbiAgLyoqIE9ic2VydmFibGUgZm9yIHdoZXRoZXIgb2Ygbm90IHRvIHNob3cgdGhlIGNoZWNrIG1hcmsgb24gdGhlIGJhbm5lciAqL1xyXG4gIHB1YmxpYyBzaG93Q2hlY2tNYXJrJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgLyoqIEJlaGF2aW9yIHN1YmplY3QgZm9yIHNob3cgYmFubmVyICovXHJcbiAgcHJpdmF0ZSBzaG93QmFubmVyOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgLyoqIEJlaGF2aW9yIHN1YmplY3QgZm9yIGJhbm5lciBtZXNzYWdlICovXHJcbiAgcHJpdmF0ZSBtZXNzYWdlOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPih1bmRlZmluZWQpO1xyXG5cclxuICAvKiogQmVoYXZpb3Igc3ViamVjdCBmb3Igd2hldGhlciB0byBzaG93IGNoZWNrIG1hcmsgb3Igbm90ICovXHJcbiAgcHJpdmF0ZSBzaG93Q2hlY2tNYXJrOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICApIHtcclxuICAgIHRoaXMuc2hvd0Jhbm5lciQgPSB0aGlzLnNob3dCYW5uZXIuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB0aGlzLm1lc3NhZ2UkID0gdGhpcy5tZXNzYWdlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgdGhpcy5zaG93Q2hlY2tNYXJrJCA9IHRoaXMuc2hvd0NoZWNrTWFyay5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3dzIHRoZSBtZXNzYWFnZSBpbiB0aGUgYmFubmVyXHJcbiAgICogQHBhcmFtIG1lc3NhZ2UgVGhlIGJhbm5lciBtZXNzYWdlXHJcbiAgICovXHJcbiAgcHVibGljIHNob3dNZXNzYWdlKG1lc3NhZ2U6IHN0cmluZywgc2hvd0NoZWNrTWFyazogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0Jhbm5lci5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5tZXNzYWdlLm5leHQobWVzc2FnZSk7XHJcbiAgICB0aGlzLnNob3dDaGVja01hcmsubmV4dChzaG93Q2hlY2tNYXJrKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhpZGUgTm90aWZpY2F0aW9uIE1lc3NhZ2UgXHJcbiAgICovXHJcbiAgcHVibGljIGhpZGVNZXNzYWdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93QmFubmVyLm5leHQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -20,13 +20,13 @@ export class BaseConfigService {
|
|
|
20
20
|
this.configBs = new BehaviorSubject(undefined);
|
|
21
21
|
this.config$ = this.configBs.asObservable();
|
|
22
22
|
}
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
24
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
24
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseConfigService, providedIn: 'root' }); }
|
|
25
25
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseConfigService, decorators: [{
|
|
27
27
|
type: Injectable,
|
|
28
28
|
args: [{
|
|
29
29
|
providedIn: 'root'
|
|
30
30
|
}]
|
|
31
31
|
}], ctorParameters: () => [] });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9iYXNlLWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQzs7QUFHbkQsOEJBQThCO0FBSTlCLE1BQU0sT0FBZ0IsaUJBQWlCO0lBS3JDLDhCQUE4QjtJQUM5QixJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFXLE1BQU0sQ0FBQyxLQUFRO1FBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFLRCw2QkFBNkI7SUFDN0I7UUFwQkEseUNBQXlDO1FBQ3hCLGFBQVEsR0FBdUIsSUFBSSxlQUFlLENBQUksU0FBUyxDQUFDLENBQUM7UUFvQmhGLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM5QyxDQUFDOytHQXhCbUIsaUJBQWlCO21IQUFqQixpQkFBaUIsY0FGekIsTUFBTTs7NEZBRUUsaUJBQWlCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJhc2VDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvYmFzZS1jb25maWcnO1xyXG5cclxuLyoqIFRoZSBiYXNlIGNvbmZpZyBzZXJ2aWNlICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VDb25maWdTZXJ2aWNlPFQgPSBCYXNlQ29uZmlnPiB7XHJcblxyXG4gIC8qKiBUaGUgY29uZmlndXJhdGlvbiBiZWhhdmlvciBzdWJqZWN0ICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWdCczogQmVoYXZpb3JTdWJqZWN0PFQ+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUPih1bmRlZmluZWQpO1xyXG5cclxuICAvKiogR2V0cyB0aGUgY29uZmlndXJhdGlvbnMgKi9cclxuICBwdWJsaWMgZ2V0IGNvbmZpZygpOiBUIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ0JzLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogc2V0cyB0aGUgY29uZmlnc1xyXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgbmV3IGNvbmZpZ3VyYXRpb24gdmFsdWVcclxuICAgKi9cclxuICBwdWJsaWMgc2V0IGNvbmZpZyh2YWx1ZTogVCkge1xyXG4gICAgdGhpcy5jb25maWdCcy5uZXh0KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8qKiBUaGUgY29uZmlndXJhdGlvbiBvYnNlcnZhYmxlICovXHJcbiAgcHVibGljIHJlYWRvbmx5IGNvbmZpZyQ6IE9ic2VydmFibGU8VD47XHJcblxyXG4gIC8qKiBDb25zdHJ1Y3RzIHRoZSBzZXJ2aWNlICovXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLmNvbmZpZyQgPSB0aGlzLmNvbmZpZ0JzLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -7,13 +7,13 @@ export class DefaultConfigService extends BaseConfigService {
|
|
|
7
7
|
super();
|
|
8
8
|
}
|
|
9
9
|
;
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
11
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
11
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultConfigService, providedIn: 'root' }); }
|
|
12
12
|
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultConfigService, decorators: [{
|
|
14
14
|
type: Injectable,
|
|
15
15
|
args: [{
|
|
16
16
|
providedIn: 'root'
|
|
17
17
|
}]
|
|
18
18
|
}], ctorParameters: () => [] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9kZWZhdWx0LWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBSzFELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxpQkFBaUI7SUFFekQsNkJBQTZCO0lBQzdCO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBQUEsQ0FBQzsrR0FMUyxvQkFBb0I7bUhBQXBCLG9CQUFvQixjQUZuQixNQUFNOzs0RkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlQ29uZmlnU2VydmljZSB9IGZyb20gJy4vYmFzZS1jb25maWcuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZWZhdWx0Q29uZmlnU2VydmljZSBleHRlbmRzIEJhc2VDb25maWdTZXJ2aWNlIHtcclxuXHJcbiAgLyoqIENvbnN0cnVjdHMgdGhlIHNlcnZpY2UgKi9cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfTtcclxufVxyXG4iXX0=
|
|
@@ -38,10 +38,10 @@ export class FederatedModuleService {
|
|
|
38
38
|
this.federatedModuleId = federatedModuleId;
|
|
39
39
|
this.window = _window || window;
|
|
40
40
|
}
|
|
41
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
42
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.
|
|
41
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FederatedModuleService, deps: [{ token: WINDOW, optional: true }, { token: FEDERATED_MODULE_ID, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
42
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FederatedModuleService, providedIn: 'root' }); }
|
|
43
43
|
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FederatedModuleService, decorators: [{
|
|
45
45
|
type: Injectable,
|
|
46
46
|
args: [{
|
|
47
47
|
providedIn: 'root'
|
|
@@ -57,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
|
|
|
57
57
|
type: Inject,
|
|
58
58
|
args: [FEDERATED_MODULE_ID]
|
|
59
59
|
}] }] });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVkZXJhdGVkLW1vZHVsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2ZlZGVyYXRlZC1tb2R1bGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLCtCQUErQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUduRyxtQ0FBbUM7QUFJbkMsTUFBTSxPQUFPLHNCQUFzQjtJQUVqQyx5Q0FBeUM7SUFDekMsSUFBVyxxQkFBcUI7UUFDOUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDO1lBQy9DLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUM1QztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCw2REFBNkQ7SUFDN0QsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFBO0lBQ3JDLENBQUM7SUFFRCxrREFBa0Q7SUFDbEQsSUFBWSx5QkFBeUI7UUFDbkMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUEyQyxDQUFDO1FBQy9FLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO1FBQ3hELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzlCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUtEOzs7O09BSUc7SUFDSCxZQUMrQyxPQUFZLEVBQ0EsaUJBQXlCO1FBRHJDLFlBQU8sR0FBUCxPQUFPLENBQUs7UUFDQSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQVE7UUFFbEYsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLElBQUksTUFBTSxDQUFDO0lBQ2xDLENBQUM7K0dBM0NVLHNCQUFzQixrQkF1Q1gsTUFBTSw2QkFDTixtQkFBbUI7bUhBeEM5QixzQkFBc0IsY0FGckIsTUFBTTs7NEZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBd0NJLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsTUFBTTs7MEJBQ3pCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmZWRlcmF0ZWRNb2R1bGVDb25maWdTdG9yYWdlS2V5LCBGRURFUkFURURfTU9EVUxFX0lELCBXSU5ET1cgfSBmcm9tICcuLi9tb2RlbHMvY29uc3RhbnRzJztcclxuaW1wb3J0IHsgRmVkZXJhdGVkTW9kdWxlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2ZlZGVyYXRlZC1tb2R1bGUtY29uZmlnJztcclxuXHJcbi8qKiBUaGUgZmVkZXJhdGVkIG1vZHVsZSBzZXJ2aWNlICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEZlZGVyYXRlZE1vZHVsZVNlcnZpY2Uge1xyXG5cclxuICAvKiogVGhlIGZlZGVyYXRlZCBtb2R1bGUgY29uZmlndXJhdGlvbiAqL1xyXG4gIHB1YmxpYyBnZXQgZmVkZXJhdGVkTW9kdWxlQ29uZmlnKCk6IEZlZGVyYXRlZE1vZHVsZUNvbmZpZyB7XHJcbiAgICBpZiAodGhpcy5mZWRlcmF0ZWRNb2R1bGVJZCkge1xyXG4gICAgICBjb25zdCBjb25maWdzID0gdGhpcy5mZWRlcmF0ZWRNb2R1bGVDb25maWdEaWN0O1xyXG4gICAgICByZXR1cm4gY29uZmlncy5nZXQodGhpcy5mZWRlcmF0ZWRNb2R1bGVJZCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRydWUgd2hlbiBhcHBsaWNhdGlvbiBpcyBydW5uaW5nIGFzIGEgZmVkZXJhdGVkIG1vZHVsZSAqL1xyXG4gIHB1YmxpYyBnZXQgaXNGZWRlcmF0ZWRNb2R1bGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLmZlZGVyYXRlZE1vZHVsZUNvbmZpZ1xyXG4gIH1cclxuXHJcbiAgLyoqIEdldHMgdGhlIGZlZGVyYXRlZCBtb2R1bGUgY29uZmlnIGRpY3Rpb25hcnkgKi9cclxuICBwcml2YXRlIGdldCBmZWRlcmF0ZWRNb2R1bGVDb25maWdEaWN0KCk6IE1hcDxzdHJpbmcsIEZlZGVyYXRlZE1vZHVsZUNvbmZpZz4ge1xyXG4gICAgY29uc3Qgc3RvcmFnZUl0ZW0gPSB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGZlZGVyYXRlZE1vZHVsZUNvbmZpZ1N0b3JhZ2VLZXkpO1xyXG4gICAgaWYgKCFzdG9yYWdlSXRlbSkge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGljdCA9IEpTT04ucGFyc2Uoc3RvcmFnZUl0ZW0pIGFzIHtba2V5OiBzdHJpbmddOiBGZWRlcmF0ZWRNb2R1bGVDb25maWd9O1xyXG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IE1hcDxzdHJpbmcsIEZlZGVyYXRlZE1vZHVsZUNvbmZpZz4oKTtcclxuICAgIE9iamVjdC5rZXlzKGRpY3QpLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgcmVzdWx0LnNldChrZXksIGRpY3Rba2V5XSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvKiogVGhlIHdpbmRvdyBpbnRlcmZhY2UgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogV2luZG93XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdHMgdGhlIHNlcnZpY2VcclxuICAgKiBAcGFyYW0gX3dpbmRvdyBUaGUgYnJvd3NlciB3aW5kb3dcclxuICAgKiBAcGFyYW0gZmVkZXJhdGVkTW9kdWxlSWQgVGhlIGZlZGVyYXRlZCBtb2R1bGUgaWRcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoV0lORE9XKSBwcml2YXRlIHJlYWRvbmx5IF93aW5kb3c6IGFueSxcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRkVERVJBVEVEX01PRFVMRV9JRCkgcHVibGljIHJlYWRvbmx5IGZlZGVyYXRlZE1vZHVsZUlkOiBzdHJpbmdcclxuICApIHtcclxuICAgIHRoaXMud2luZG93ID0gX3dpbmRvdyB8fCB3aW5kb3c7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -119,9 +119,7 @@ export class SessionService {
|
|
|
119
119
|
}
|
|
120
120
|
const form = document.createElement('form');
|
|
121
121
|
const input = document.createElement('input');
|
|
122
|
-
input.type = 'hidden';
|
|
123
122
|
const inputDestination = document.createElement('input');
|
|
124
|
-
inputDestination.type = 'hidden';
|
|
125
123
|
form.method = 'POST';
|
|
126
124
|
form.action = formAction;
|
|
127
125
|
if (configs.targetNewTab) {
|
|
@@ -358,10 +356,10 @@ export class SessionService {
|
|
|
358
356
|
decode(str) {
|
|
359
357
|
return JSON.parse(decodeURIComponent(escape(window.atob(str))));
|
|
360
358
|
}
|
|
361
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
362
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.
|
|
359
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SessionService, deps: [{ token: SESSION_CONFIG, optional: true }, { token: WINDOW, optional: true }, { token: i1.OAuthService, optional: true }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
360
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SessionService, providedIn: 'root' }); }
|
|
363
361
|
}
|
|
364
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
362
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SessionService, decorators: [{
|
|
365
363
|
type: Injectable,
|
|
366
364
|
args: [{
|
|
367
365
|
providedIn: 'root'
|
|
@@ -384,4 +382,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
|
|
|
384
382
|
*/
|
|
385
383
|
export class RedirectSessionConfigs {
|
|
386
384
|
}
|
|
387
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL3Nlc3Npb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RCxPQUFPLEVBQVksUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXpELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFFNUMsbURBQW1EO0FBQ25ELE1BQU0sbUNBQW1DLEdBQUcsbUJBQW1CLENBQUM7QUFFaEUsMEJBQTBCO0FBSTFCLE1BQU0sT0FBTyxjQUFjO0lBdUJ6Qiw2Q0FBNkM7SUFDN0MsSUFBWSx5QkFBeUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLCtCQUErQixLQUFLLFFBQVEsQ0FBQztJQUN6RSxDQUFDO0lBRUQsNkNBQTZDO0lBQzdDLElBQVkseUJBQXlCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQywrQkFBK0IsS0FBSyxRQUFRLENBQUM7SUFDekUsQ0FBQztJQUVELDBDQUEwQztJQUMxQyxJQUFZLHNCQUFzQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMs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QUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUNuRSxLQUFLLFFBQVEsQ0FBQyxNQUFNO2dCQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ3hEO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMseURBQXlELENBQUMsQ0FBQztTQUM5RTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxNQUFNLENBQUMsS0FBVTtRQUN2QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVEOzs7T0FHRztJQUNLLE1BQU0sQ0FBQyxHQUFXO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDOzhHQTFhVSxjQUFjLGtCQXlGSCxjQUFjLDZCQUNkLE1BQU07a0hBMUZqQixjQUFjLGNBRmIsTUFBTTs7MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQTBGSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGNBQWM7OzBCQUNqQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLE1BQU07OzBCQUN6QixRQUFROztBQWtWYjs7R0FFRztBQUNILE1BQU0sT0FBTyxzQkFBc0I7Q0FNbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPQXV0aFNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFNlc3Npb25Qb3N0UmVxdWVzdE1vZGVsLCBTZXNzaW9uUHV0UmVxdWVzdE1vZGVsLCBTZXNzaW9uUmVzcG9uc2VNb2RlbCB9IGZyb20gJy4uL2NsaWVudC1nZW5lcmF0ZWQvbW9kZWwvbW9kZWxzJztcclxuaW1wb3J0IHsgU0VTU0lPTl9DT05GSUcsIFdJTkRPVyB9IGZyb20gJy4uL21vZGVscy9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBIdHRwVmVyYiwgaHR0cFZlcmIgfSBmcm9tICcuLi9tb2RlbHMvaHR0cC12ZXJicyc7XHJcbmltcG9ydCB7IFNlc3Npb25Db25maWcgfSBmcm9tICcuLi9tb2RlbHMvc2Vzc2lvbi1jb25maWcnO1xyXG5pbXBvcnQgeyBUeXBlZFNlc3Npb24gfSBmcm9tICcuLi9tb2RlbHMvdHlwZWQtc2Vzc2lvbic7XHJcbmltcG9ydCB7IG5ld0d1aWQgfSBmcm9tICcuLi9mdW5jdGlvbnMvZ3VpZCc7XHJcblxyXG4vKiogdGhlIGRhdGEgc3RvcmUgcmV0cmlldmUgY29tcGxldGUgc2Vzc2lvbiBrZXkgKi9cclxuY29uc3QgZGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZVNlc3Npb25LZXkgPSAnZGF0YVN0b3JlUmV0cmlldmUnO1xyXG5cclxuLyoqIFRoZSBzZXNzaW9uIHNlcnZpY2UgKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2Vzc2lvblNlcnZpY2U8VCA9IGFueT4ge1xyXG5cclxuICAvKiogVGhlIHNlc3Npb24gaWQgKi9cclxuICBwcml2YXRlIF9zZXNzaW9uSWQ6IHN0cmluZztcclxuXHJcbiAgLyoqIFRydWUgd2hlbiB0aGUgZGF0YSBzdG9yZSByZXRyaWV2ZSBpcyBjb21wbGV0ZSAqL1xyXG4gIHByaXZhdGUgaXNEYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKiBUaGUgbG9jYWwgc3RvcmFnZSBrZXkgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VLZXk6IHN0cmluZyA9ICdTb2YtQXJtLVNlc3Npb24tSWQnO1xyXG5cclxuICAvKiogVGVoIGN1cnJlbnQgdXBkYXRlIGRhdGEgc3RvcmUgY2FsbCAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgY3VycmVudFVwZGF0ZURhdGFTdG9yZUNhbGw6IE9ic2VydmFibGU8YW55PiA9IG9mKHt9KTtcclxuXHJcbiAgLyoqIFRoZSBzZXNzaW9uIGRhdGEgYmVoYXZpb3Igc3ViamVjdCAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvbkRhdGE6IEJlaGF2aW9yU3ViamVjdDxUeXBlZFNlc3Npb248VD4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUeXBlZFNlc3Npb248VD4+KHVuZGVmaW5lZCk7XHJcblxyXG4gIC8qKiBUcnVlIHdoZW4gdGhlIHNlcnZpY2UgaGFzIGZpbmlzaGVkIGluaXRpYWxpemluZyAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNJbml0aWFsaXplZEJzOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgLyoqIFRydWUgaWYgdGhlIGRhdGEgc3RvcmUgaXMgaW5pdGlhbGl6ZWQgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IGlzRGF0YVN0b3JlSW5pdEJzOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgLyoqIFRydWUgaWYgY2xpZW50IHNpZGUgc2Vzc2lvbiBtYW5hZ2VtZW50ICovXHJcbiAgcHJpdmF0ZSBnZXQgaXNDbGllbnRTZXNzaW9uTWFuYWdlbWVudCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25Db25maWcuc2Vzc2lvbk1hbmFnZW1lbnRJbXBsZW1lbnRhdGlvbiA9PT0gJ2NsaWVudCc7XHJcbiAgfVxyXG5cclxuICAvKiogVHJ1ZSBpZiBzZXJ2ZXIgc2lkZSBzZXNzaW9uIG1hbmFnZW1lbnQgKi9cclxuICBwcml2YXRlIGdldCBpc1NlcnZlclNlc3Npb25NYW5hZ2VtZW50KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkNvbmZpZy5zZXNzaW9uTWFuYWdlbWVudEltcGxlbWVudGF0aW9uID09PSAnc2VydmVyJztcclxuICB9XHJcblxyXG4gIC8qKiBUcnVlIGlmIHVzaW5nIGJyb3dzZXIgbG9jYWwgc3RvcmFnZSAqL1xyXG4gIHByaXZhdGUgZ2V0IHVzZUJyb3dzZXJMb2NhbFN0b3JhZ2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uQ29uZmlnLmJyb3dzZXJTdG9yYWdlSW1wbGVtZW50YXRpb24gPT09ICdsb2NhbCc7XHJcbiAgfVxyXG5cclxuICAvKiogVHJ1ZSBpZiB1c2luZyBicm93c2VyIHNlc3Npb24gc3RvcmFnZSAqL1xyXG4gIHByaXZhdGUgZ2V0IHVzZUJyb3dzZXJTZXNzaW9uU3RvcmFnZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25Db25maWcuYnJvd3NlclN0b3JhZ2VJbXBsZW1lbnRhdGlvbiA9PT0gJ3Nlc3Npb24nO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRoZSB3aW5kb3cgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogV2luZG93O1xyXG5cclxuICAvKiogVHJ1ZSBpZiBkYXRhIHN0b3JlIGlzIHByb3ZpZGVkICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBpc0RhdGFTdG9yZVByb3ZpZGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKiBUaGUgc2Vzc2lvbiBpZCAqL1xyXG4gIHB1YmxpYyBnZXQgc2Vzc2lvbklkKCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXRoaXMuX3Nlc3Npb25JZCkge1xyXG4gICAgICB0aGlzLmlzQ2xpZW50U2Vzc2lvbk1hbmFnZW1lbnQgPyB0aGlzLmluaXRDbGllbnRTZXNzaW9uSWQoKSA6IHRoaXMuaW5pdFNlcnZlclNlc3Npb25JZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLl9zZXNzaW9uSWQ7XHJcbiAgfVxyXG5cclxuICAvKiogVGhlIHNlc3Npb24gKi9cclxuICBwdWJsaWMgc2Vzc2lvbiQ6IE9ic2VydmFibGU8VHlwZWRTZXNzaW9uPFQ+PjtcclxuXHJcbiAgLyoqIFRoZSBzZXNzaW9uIHJlZnJlc2ggb2JzZXJ2YWJsZSAqL1xyXG4gIHB1YmxpYyBzZXNzaW9uUmVmcmVzaCQ6IE9ic2VydmFibGU8YW55PjtcclxuXHJcbiAgLyoqIEluZGljYXRlcyB3aGVuIHRoZSBzZXJ2aWNlIGhhcyBmaW5pc2hlZCBpbml0aWFsaXppbmcgKi9cclxuICBwdWJsaWMgaXNJbml0aWFsaXplZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcblxyXG4gIC8qKiBUcnVlIGlmIHRoZSBkYXRhIHN0b3JlIGlzIGluaXRpYWxpemVkICovXHJcbiAgcHVibGljIGlzRGF0YVN0b3JlSW5pdCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcblxyXG4gIC8qKiBnZXRzIHRoZSBzZXNzaW9uICovXHJcbiAgcHVibGljIGdldCBzZXNzaW9uKCk6IFR5cGVkU2Vzc2lvbjxUPiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uRGF0YS52YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKiBzZXRzIHRoZSBzZXNzaW9uICovXHJcbiAgcHVibGljIHNldCBzZXNzaW9uKHZhbHVlOiBUeXBlZFNlc3Npb248VD4pIHtcclxuICAgIHRoaXMuc2Vzc2lvbkRhdGEubmV4dCh2YWx1ZSk7XHJcbiAgICB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuc2Vzc2lvbkNvbmZpZy5rZXlQYXRoLCB0aGlzLmVuY29kZSh2YWx1ZSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyB0aGUgc2VydmljZVxyXG4gICAqIEBwYXJhbSBzZXNzaW9uQ29uZmlnIFRoZSBzZXNzaW9uIGNvbmZpZ3VyYXRpb25zXHJcbiAgICogQHBhcmFtIF93aW5kb3cgVGhlIHdpbmRvdyBpbnRlcmZhY2VcclxuICAgKiBAcGFyYW0gYXV0aFNlcnZpY2UgVGhlIE9BdXRoIG9kaWMgMiBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIGh0dHBDbGllbnQgVGhlIGh0dHAgY2xpZW50XHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFNFU1NJT05fQ09ORklHKSByZWFkb25seSBzZXNzaW9uQ29uZmlnOiBTZXNzaW9uQ29uZmlnLFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChXSU5ET1cpIHJlYWRvbmx5IF93aW5kb3c6IGFueSxcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgYXV0aFNlcnZpY2U6IE9BdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudFxyXG4gICkge1xyXG4gICAgdGhpcy5pc0luaXRpYWxpemVkJCA9IHRoaXMuaXNJbml0aWFsaXplZEJzLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgdGhpcy5pc0RhdGFTdG9yZUluaXQkID0gdGhpcy5pc0RhdGFTdG9yZUluaXRCcy5hc09ic2VydmFibGUoKTtcclxuICAgIGlmICghdGhpcy5zZXNzaW9uQ29uZmlnKSB7XHJcbiAgICAgIHRoaXMuc2Vzc2lvbkNvbmZpZyA9IG5ldyBTZXNzaW9uQ29uZmlnKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzRGF0YVN0b3JlUHJvdmlkZWQgPSAhIXRoaXMuc2Vzc2lvbkNvbmZpZz8uZGF0YVN0b3JlQ29uZmlnO1xyXG4gICAgdGhpcy53aW5kb3cgPSBfd2luZG93O1xyXG4gICAgaWYgKCF0aGlzLndpbmRvdykge1xyXG4gICAgICB0aGlzLndpbmRvdyA9IHdpbmRvdztcclxuICAgIH1cclxuICAgIGNvbnN0IGRhdGFTdG9yZUxvYWRlZFZhbHVlID0gdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShkYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlU2Vzc2lvbktleSk7XHJcbiAgICB0aGlzLmlzRGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZSA9ICEhZGF0YVN0b3JlTG9hZGVkVmFsdWUgPyBkYXRhU3RvcmVMb2FkZWRWYWx1ZS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScgOiBmYWxzZTtcclxuICAgIC8vIGlmIG5vdCB1c2luZyBhIGRhdGEgc3RvcmUsIHVwZGF0ZSB0aGUgaW5pdGlhbGl6ZWQgdG8gdHJ1ZSBmb3IgaXRcclxuICAgIGlmICghdGhpcy5pc0RhdGFTdG9yZVByb3ZpZGVkKSB7XHJcbiAgICAgIHRoaXMuaXNEYXRhU3RvcmVJbml0QnMubmV4dCh0cnVlKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5zZXNzaW9uQ29uZmlnPy5icm93c2VyU3RvcmFnZUltcGxlbWVudGF0aW9uKSB7XHJcbiAgICAgIHRoaXMuc2Vzc2lvbkNvbmZpZy5icm93c2VyU3RvcmFnZUltcGxlbWVudGF0aW9uID0gJ3Nlc3Npb24nO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnNlc3Npb25Db25maWc/LnNlc3Npb25NYW5hZ2VtZW50SW1wbGVtZW50YXRpb24pIHtcclxuICAgICAgdGhpcy5zZXNzaW9uQ29uZmlnLnNlc3Npb25NYW5hZ2VtZW50SW1wbGVtZW50YXRpb24gPSAnY2xpZW50JztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlzU2VydmVyU2Vzc2lvbk1hbmFnZW1lbnQgJiYgIXRoaXMuc2Vzc2lvbkNvbmZpZykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1c2VyIHNlcnZlciBzZXNzaW9uIG1hbmFnZW1lbnQgd2l0aCBudWxsIHNlc3Npb25Db25maWcgcGxlYXNlIHByb3ZpZGU6IEdsb2JhbEluamVjdGlvblRva2Vucy5zZXNzaW9uQ29uZmlnJyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pc0NsaWVudFNlc3Npb25NYW5hZ2VtZW50KSB7XHJcbiAgICAgIHRoaXMuaW5pdENsaWVudFNlc3Npb25NYW5hZ2VtZW50KCk7XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pbml0U2VydmVyU2Vzc2lvbk1hbmFnZW1lbnQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlZGlyZWN0cyB0byBhIHVybCB3aXRoIGEgcmVmIHRvIHRoZSBleGlzdGluZyBzZXNzaW9uXHJcbiAgICogQHBhcmFtIHVyaSBUaGUgdXJpIHRvIHJlZGlyZWN0IHRvXHJcbiAgICogQHBhcmFtIHN5bmNTZXNzaW9uIFN5bmMgc2Vzc2lvbi5cclxuICAgKiBAcGFyYW0gY29uZmlncyBSZWRpcmVjdCBjb25maWdzLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWRpcmVjdCh1cmk6IHN0cmluZywgc3luY1Nlc3Npb246IGJvb2xlYW4gPSBmYWxzZSwgY29uZmlnczogUmVkaXJlY3RTZXNzaW9uQ29uZmlncyA9IHt9KTogdm9pZCB7XHJcbiAgICAvLyBpZiB0aGUgaG9zdCBuYW1lIGlzbid0IGluIHRoZSB1cmksIHdlIGFyZSBnb2luZyB0byBhIGRpZmZlcmVudCBkb21haW4sIHNvIHVzZSB0aGUgZ2F0ZXdheSBvbiB0aGUgb3RoZXIgZG9tYWluJ3Mgc2VydmVyXHJcbiAgICBsZXQgZm9ybUFjdGlvbiA9IGAke3RoaXMuc2Vzc2lvbkNvbmZpZy50cmFuc2ZlckJhc2VQYXRofS9zc29nYXRld2F5L3YyL3Nzby9pbmJvdW5kLXRyYW5zZmVyLyR7dGhpcy5zZXNzaW9uQ29uZmlnLmtleVBhdGh9YDtcclxuICAgIGlmICh1cmkuaW5kZXhPZih3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpID09PSAtMSkge1xyXG4gICAgICBjb25zdCB1cmlQYXJ0cyA9IHVyaS5zcGxpdCgnLycpO1xyXG4gICAgICAvLyB0aGlzIHJlc3VsdHMgaW4gWydodHRwczonLCAnJywgJ2RvbWFpbi5ob3N0J10sIHVzZSAwIGFuZCAyIHRvIGdldCB0aGUgYmFzZSB1cmwgb2YgdGhlIHJlZGlyZWN0IHVyaVxyXG4gICAgICBmb3JtQWN0aW9uID0gYCR7dXJpUGFydHNbMF19Ly8ke3VyaVBhcnRzWzJdfS9zc29nYXRld2F5L3YyL3Nzby9pbmJvdW5kLXRyYW5zZmVyLyR7dGhpcy5zZXNzaW9uQ29uZmlnLmtleVBhdGh9YDtcclxuICAgIH1cclxuICAgIGNvbnN0IGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7XHJcbiAgICBjb25zdCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XHJcbiAgICBpbnB1dC50eXBlID0gJ2hpZGRlbic7XHJcbiAgICBjb25zdCBpbnB1dERlc3RpbmF0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcclxuICAgIGlucHV0RGVzdGluYXRpb24udHlwZSA9ICdoaWRkZW4nO1xyXG4gICAgZm9ybS5tZXRob2QgPSAnUE9TVCc7XHJcbiAgICBmb3JtLmFjdGlvbiA9IGZvcm1BY3Rpb247XHJcbiAgICBpZiAoY29uZmlncy50YXJnZXROZXdUYWIpIHtcclxuICAgICAgLy8gVGhlIHBhcmVudCBzZXNzaW9uIHNob3VsZCBhbHJlYWR5IGJlIHByZXNlbnQgaW4gY2hpbGQgd2luZG93IGFzIHBlciBicm93c2luZyBjb250ZXh0IHJ1bGVzLCBidXQgZm9yIHdoYXRldmVyIHJlYXNvbiBmb3JtLnRhcmdldCA9ICdfYmxhbmsnIGRvZXMgbm90IGRvIHRoYXQuXHJcbiAgICAgIC8vIE5lZWQgdG8gdXNlIHdpbmRvdy5vcGVuIGhlcmUgc28gdGhlIHBhcmVudCB3aW5kb3cncyBzZXNzaW9uIGFsc28gZ2V0cyBjYXJyaWVkIG92ZXIgdG8gdGhlIG5ldyB0YWIuXHJcbiAgICAgIC8vIEZvciByZWZlcmVuY2U6IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE3Mjk3Mjg3L3Nlc3Npb25zdG9yYWdlLW9uLW5ldy13aW5kb3ctaXNudC1lbXB0eS13aGVuLWZvbGxvd2luZy1hLWxpbmstd2l0aC10YXJnZXQtYmxcclxuICAgICAgZm9ybS50YXJnZXQgPSAnY3VzdG9tV2luZG93JztcclxuICAgICAgd2luZG93Lm9wZW4oJycsICdjdXN0b21XaW5kb3cnKTtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dC5uYW1lID0gJ2RhdGEnO1xyXG4gICAgaW5wdXQudmFsdWUgPSB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuc2Vzc2lvbkNvbmZpZy5rZXlQYXRoKTtcclxuICAgIGlucHV0RGVzdGluYXRpb24ubmFtZSA9ICdkZXN0aW5hdGlvbic7XHJcbiAgICBpbnB1dERlc3RpbmF0aW9uLnZhbHVlID0gdXJpO1xyXG4gICAgZm9ybS5hcHBlbmRDaGlsZChpbnB1dCk7XHJcbiAgICBmb3JtLmFwcGVuZENoaWxkKGlucHV0RGVzdGluYXRpb24pO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTtcclxuICAgIGZvcm0uc3VibWl0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBzZXNzaW9uXHJcbiAgICogQHBhcmFtIGJvZHkgVGhlIHNlc3Npb24gcHV0IHJlcXVlc3QgYm9keVxyXG4gICAqL1xyXG4gIHB1YmxpYyB1cGRhdGVTZXNzaW9uKFxyXG4gICAgYm9keTogVHlwZWRTZXNzaW9uPFQ+LFxyXG4gICAgc2VjdXJhYmxlRGVsZWdhdGU6IEFycmF5PChhcmc6IGFueSkgPT4gYW55PiB8ICgoYXJnOiBhbnkpID0+IGFueSksXHJcbiAgICBza2lwRGF0YVN0b3JlPzogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBpZiAoIXRoaXMuX3Nlc3Npb25JZCkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdObyBzZXNzaW9uIGhhcyBiZWVuIGluaXRpYWxpemVkLCBza2lwcGluZyB1cGRhdGUgY2FsbCcpO1xyXG5cclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGlmICghc2VjdXJhYmxlRGVsZWdhdGUpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTZXNzaW9uU2VydmljZTp1cGRhdGVTZXNzaW9uIC0+IEFyZ3VtZW50IGlzIG51bGwgb3IgdW5kZWZpbmVkLCBhcmc6IHNlY3VyYWJsZURlbGVnYXRlJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShib2R5LnNlc3Npb25EYXRhKSAmJiAhQXJyYXkuaXNBcnJheShzZWN1cmFibGVEZWxlZ2F0ZSkpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICdTZXNzaW9uU2VydmljZTp1cGRhdGVTZXNzaW9uIC0+IFR5cGUgbWlzcyBtYXRjaCwgYXJnOiBib2R5LlNlc3Npb25EYXRhICh0eXBlIG9mIEFycmF5KSBhbmQgYXJnOiBzZWN1cmFibGVEZWxlZ2F0ZSAodHlwZSBvZiAoYXJnOiBhbnkpID0+IGFueSkgYm90aCBtdXN0IGJlIGFycmF5IG9yIG5vbi1hcnJheSdcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICghQXJyYXkuaXNBcnJheShib2R5LnNlc3Npb25EYXRhKSAmJiBBcnJheS5pc0FycmF5KHNlY3VyYWJsZURlbGVnYXRlKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgJ1Nlc3Npb25TZXJ2aWNlOnVwZGF0ZVNlc3Npb24gLT4gVHlwZSBtaXNzIG1hdGNoLCBhcmc6IGJvZHkuU2Vzc2lvbkRhdGEgKHR5cGUgb2YgYW55KSBhbmQgYXJnOiBzZWN1cmFibGVEZWxlZ2F0ZSAodHlwZSBvZiBBcnJheSkgIGJvdGggbXVzdCBiZSBhcnJheSBvciBub24tYXJyYXknXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICAvLyBjcmVhdGUgcmVzcG9uc2UgbW9kZWwgYW5kIHVwZGF0ZSBvYnNlcnZhYmxlIHRvIGVtaXQgbmV3IHNlc3Npb24gdmFsdWVcclxuICAgIGNvbnN0IG1vZGVsOiBTZXNzaW9uUmVzcG9uc2VNb2RlbCA9IHtcclxuICAgICAgaW5pdGlhbGl6aW5nT3JpZ2luOiBib2R5LmluaXRpYWxpemluZ09yaWdpbixcclxuICAgICAgYnJhbmRpbmc6IGJvZHkuYnJhbmRpbmcsXHJcbiAgICAgIG9BdXRoOiBib2R5Lm9BdXRoLFxyXG4gICAgICBzZXNzaW9uSWQ6IHRoaXMuX3Nlc3Npb25JZCxcclxuICAgICAgdHJhY2tpbmc6IGJvZHkudHJhY2tpbmcsXHJcbiAgICAgIHNlc3Npb25EYXRhOiBib2R5LnNlc3Npb25EYXRhXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXNzaW9uID0gbW9kZWw7XHJcblxyXG4gICAgY29uc3QgcHV0TW9kZWw6IFNlc3Npb25QdXRSZXF1ZXN0TW9kZWwgPSB7XHJcbiAgICAgIGluaXRpYWxpemluZ09yaWdpbjogYm9keS5pbml0aWFsaXppbmdPcmlnaW4sXHJcbiAgICAgIHNlc3Npb25EYXRhOlxyXG4gICAgICAgIChBcnJheS5pc0FycmF5KGJvZHkuc2Vzc2lvbkRhdGEpXHJcbiAgICAgICAgICA/IGJvZHkuc2Vzc2lvbkRhdGEubWFwKChkLCBpbmRleCkgPT4gc2VjdXJhYmxlRGVsZWdhdGVbaW5kZXhdKGQpKSA6IChzZWN1cmFibGVEZWxlZ2F0ZSBhcyAoKGFyZzogYW55KSA9PiBhbnkpKShib2R5LnNlc3Npb25EYXRhKSksXHJcbiAgICAgIGJyYW5kaW5nOiBib2R5LmJyYW5kaW5nLFxyXG4gICAgICB0cmFja2luZzogYm9keS50cmFja2luZyxcclxuICAgICAgb0F1dGg6IGJvZHkub0F1dGhcclxuICAgIH07XHJcblxyXG4gICAgLy8gaWYgZGF0YSBzdG9yZSBpcyBwcm92aWRlZCBydW4gdGhlIGRlbGVnYXRlIHRvIGRldGVybWluZSB0aGUgYm9keSBhbmQgdGhlIHVyaSB0byB1c2UgZm9yIHRoZSB1cGRhdGVcclxuICAgIGlmICh0aGlzLmlzRGF0YVN0b3JlUHJvdmlkZWQgJiYgIXNraXBEYXRhU3RvcmUpIHtcclxuICAgICAgY29uc3QgdXBkYXRlVHVwbGUgPVxyXG4gICAgICAgIHRoaXMuc2Vzc2lvbkNvbmZpZz8uZGF0YVN0b3JlQ29uZmlnLnVwZGF0ZVJlcXVlc3REZWxlZ2F0ZSh0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5iYXNlVXJpLCBib2R5LnNlc3Npb25EYXRhKTtcclxuICAgICAgLy8gc3dpdGNoIG1hcCB0byBjYW5jZWwgZXhpc3RpbmcgY2FsbHMgd2l0aCBuZXdlciBvbmVzIHRvIGF2b2lkIHJldmVydGluZyBkYXRhXHJcbiAgICAgIGlmICh0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5zaG91bGRVcGRhdGVEYXRhU3RvcmVEZWxlZ2F0ZShib2R5LnNlc3Npb25EYXRhKSkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFVwZGF0ZURhdGFTdG9yZUNhbGwucGlwZShzd2l0Y2hNYXAoKCkgPT4ge1xyXG4gICAgICAgICAgc3dpdGNoICh0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy51cGRhdGVWZXJiKSB7XHJcbiAgICAgICAgICAgIGNhc2UgaHR0cFZlcmIuUE9TVDpcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QodXBkYXRlVHVwbGUudXJpLCB1cGRhdGVUdXBsZS5ib2R5KTtcclxuICAgICAgICAgICAgY2FzZSBodHRwVmVyYi5QVVQ6XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wdXQodXBkYXRlVHVwbGUudXJpLCB1cGRhdGVUdXBsZS5ib2R5KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzRGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oZGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZVNlc3Npb25LZXksICd0cnVlJyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLnNlc3Npb24kO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJlbW92ZXMgdGhlIHNlc3Npb24gKi9cclxuICBwdWJsaWMgcmVtb3ZlU2Vzc2lvbigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2Vzc2lvbkRhdGEubmV4dCh1bmRlZmluZWQpO1xyXG4gICAgdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShkYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlU2Vzc2lvbktleSk7XHJcbiAgICB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuc2Vzc2lvbkNvbmZpZy5rZXlQYXRoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXByZWNhdGVkIHJlbW92aW5nIGluIHRoZSBuZXh0IHZlcnNpb25cclxuICAgKiBTeW5jcyB0aGUgc2Vzc2lvblxyXG4gICAqIFJldHVybnMgdGhlIG9ic2VydmFibGUgaW5kaWNhdGluZyB3aGVuIHRoZSBzZXNzaW9uIGhhcyBiZWVuIHN5bmNlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBzeW5jU2Vzc2lvbigpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIG9mKHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlcHJlY2F0ZWQgcmVtb3ZpbmcgaW4gdGhlIG5leHQgdmVyc2lvblxyXG4gICAqIFJlZnJlc2hlcyB0aGUgc2Vzc2lvblxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWZyZXNoU2Vzc2lvbigpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIC8qKiBJbml0aWFsaXplIHNlcnZlciBzZXNzaW9uIG1hbmFnZW1lbnQgKi9cclxuICBwcml2YXRlIGluaXRTZXJ2ZXJTZXNzaW9uTWFuYWdlbWVudCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2Vzc2lvbiQgPSB0aGlzLnNlc3Npb25EYXRhLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIGNvbnN0IGdldEZyb21EYXRhU3RvcmUgPSAoKTogYW55ID0+IHtcclxuICAgICAgaWYgKCF0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZyB8fCAhdGhpcy5hdXRoU2VydmljZSB8fCB0aGlzLmlzRGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gbG9hZCBkYXRhIGZyb20gZGF0YSBzdG9yZSBhbm9uXHJcbiAgICAgIGNvbnN0IGxvYWREYXRhU3RvcmUgPSAoKSA9PlxyXG4gICAgICAgIHRoaXMuZGV0ZXJtaW5lRGF0YVN0b3JlRnVuY3Rpb24odGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWcucmV0cmlldmVWZXJiLFxyXG4gICAgICAgICAgdGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWcucmV0cmlldmVSZXF1ZXN0RGVsZWdhdGUsXHJcbiAgICAgICAgICB0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5iYXNlVXJpLFxyXG4gICAgICAgICAgdW5kZWZpbmVkKVxyXG4gICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzSW5pdGlhbGl6ZWQkLnN1YnNjcmliZShpc0luaXQgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICghaXNJbml0KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuc2Vzc2lvbiQucGlwZSh0YWtlKDEpKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShzZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNlc3Npb24odGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWcucmV0cmlldmVSZXNwb25zZURlbGVnYXRlKHJlcywgc2VzKSxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5yZXRyaWV2ZVNlY3VyYWJsZURlbGVnYXRlKHJlcyksIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmlzRGF0YVN0b3JlSW5pdEJzLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuaXNEYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShkYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlU2Vzc2lvbktleSwgJ3RydWUnKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLmF1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKSkge1xyXG4gICAgICAgIC8vIEhBQ0s6IEkgY291bGRuJ3QgZG8gdGhpcyBiYXNlZCBvbiBhbiBldmVudCBzbyBJIGhhZCB0byBnZXQgY3JlYXRpdmVcclxuICAgICAgICBjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKSkge1xyXG4gICAgICAgICAgICBsb2FkRGF0YVN0b3JlKCk7XHJcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIDI1MCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGxvYWREYXRhU3RvcmUoKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBib2R5OiBTZXNzaW9uUG9zdFJlcXVlc3RNb2RlbCA9IHtcclxuICAgICAgc2Vzc2lvbkRhdGE6IHVuZGVmaW5lZCxcclxuICAgICAgYnJhbmRpbmc6IHVuZGVmaW5lZFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBlbmNvZGVkU2Vzc2lvbiA9IHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5zZXNzaW9uQ29uZmlnLmtleVBhdGgpO1xyXG4gICAgdGhpcy5fc2Vzc2lvbklkID0gYFNlc3Npb24tJHtuZXdHdWlkKCl9YDtcclxuICAgIGlmICghZW5jb2RlZFNlc3Npb24pIHtcclxuICAgICAgdGhpcy5zZXNzaW9uID0gYm9keTtcclxuICAgICAgdGhpcy5pc0luaXRpYWxpemVkQnMubmV4dCh0cnVlKTtcclxuICAgICAgZ2V0RnJvbURhdGFTdG9yZSgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc2Vzc2lvbiA9IHRoaXMuZGVjb2RlKGVuY29kZWRTZXNzaW9uKTtcclxuICAgICAgdGhpcy5pc0luaXRpYWxpemVkQnMubmV4dCh0cnVlKTtcclxuICAgICAgZ2V0RnJvbURhdGFTdG9yZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEluaXRpYWxpemVzIHRoZSBzZXJ2ZXIgc2lkZSBzZXNzaW9uIGlkICovXHJcbiAgcHJpdmF0ZSBpbml0U2VydmVyU2Vzc2lvbklkKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLl9zZXNzaW9uSWQpIHtcclxuICAgICAgY29uc29sZS53YXJuKCdTZXNzaW9uIEluaXRpYWxpemluZywgc3Vic2NyaWJlIHRvIHNlc3Npb24kIHRvIGdldCB0aGUgc2Vzc2lvbiBpbmZvLiBTZXNzaW9uIElkIHdpbGwgYmUgcG9wdWxhdGVkIHVwb24gaW5pdGlhbGl6YXRpb24nKTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBJbml0aWFsaXplcyBjbGllbnQgc2lkZSBzZXNzaW9uIG1hbmFnZW1lbnQgKi9cclxuICBwcml2YXRlIGluaXRDbGllbnRTZXNzaW9uTWFuYWdlbWVudCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnVzZUJyb3dzZXJTZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICBjb25zdCBzZXNJZCA9IHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KTtcclxuICAgICAgdGhpcy5fc2Vzc2lvbklkID0gc2VzSWQgfHwgbmV3R3VpZCgpO1xyXG4gICAgICB0aGlzLnNldFNlc3Npb25TdG9yYWdlKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnVzZUJyb3dzZXJMb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgY29uc3Qgc2VzSWQgPSB0aGlzLndpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXkpO1xyXG4gICAgICB0aGlzLl9zZXNzaW9uSWQgPSBzZXNJZCB8fCBuZXdHdWlkKCk7XHJcbiAgICAgIHRoaXMuc2V0TG9jYWxTdG9yYWdlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWRCcy5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTZXNzaW9uSWRGcm9tU3RvcmFnZSgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMudXNlQnJvd3NlckxvY2FsU3RvcmFnZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy53aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMudXNlQnJvd3NlclNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RvcmFnZUtleSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogSW5pdGlhbGl6ZSB0aGUgY2xpZW50IHNpZGUgc2Vzc2lvbiBpZCAqL1xyXG4gIHByaXZhdGUgaW5pdENsaWVudFNlc3Npb25JZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3Nlc3Npb25JZCA9IG5ld0d1aWQoKTtcclxuICAgIGlmICh0aGlzLnVzZUJyb3dzZXJTZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICB0aGlzLnNldFNlc3Npb25TdG9yYWdlKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnVzZUJyb3dzZXJMb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgdGhpcy5zZXRMb2NhbFN0b3JhZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBTZXRzIHNlc3Npb24gc3RvcmFnZSAqL1xyXG4gIHByaXZhdGUgc2V0U2Vzc2lvblN0b3JhZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RvcmFnZUtleSwgdGhpcy5fc2Vzc2lvbklkKTtcclxuICB9XHJcblxyXG4gIC8qKiBTZXRzIGxvY2FsIHN0b3JhZ2UgKi9cclxuICBwcml2YXRlIHNldExvY2FsU3RvcmFnZSgpOiB2b2lkIHtcclxuICAgIHRoaXMud2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RvcmFnZUtleSwgdGhpcy5fc2Vzc2lvbklkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERldGVybWluZXMgdGhlIHR5cGUgb2YgaHR0cCBjYWxsIHRvIG1ha2UgZm9yIHRoZSBkYXRhIHN0b3JlXHJcbiAgICogQHBhcmFtIHZlcmIgVGhlIHZlcmJcclxuICAgKiBAcGFyYW0gZGVsZWdhdGUgVGhlIGRlbGVnYXRlXHJcbiAgICogQHBhcmFtIHVyaSBUaGUgdXJpXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBkZXRlcm1pbmVEYXRhU3RvcmVGdW5jdGlvbihcclxuICAgIHZlcmI6IEh0dHBWZXJiLFxyXG4gICAgZGVsZWdhdGU6IChiYXNlVXJpOiBzdHJpbmcsIGJvZHk6IFQpID0+IHsgdXJpOiBzdHJpbmcsIGJvZHk/OiBhbnkgfSxcclxuICAgIHVyaTogc3RyaW5nLFxyXG4gICAgYm9keTogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHR1cGxlID0gZGVsZWdhdGUodXJpLCBib2R5KTtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXHJcbiAgICB9KTtcclxuICAgIHN3aXRjaCAodmVyYikge1xyXG4gICAgICBjYXNlIGh0dHBWZXJiLlBVVDpcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnB1dCh0dXBsZS51cmksIHR1cGxlLmJvZHksIHsgaGVhZGVycyB9KTtcclxuICAgICAgY2FzZSBodHRwVmVyYi5QT1NUOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdCh0dXBsZS51cmksIHR1cGxlLmJvZHksIHsgaGVhZGVycyB9KTtcclxuICAgICAgY2FzZSBodHRwVmVyYi5HRVQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodHVwbGUudXJpLCB7IGhlYWRlcnMgfSk7XHJcbiAgICAgIGNhc2UgaHR0cFZlcmIuUEFUQ0g6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wYXRjaCh0dXBsZS51cmksIHR1cGxlLmJvZHksIHsgaGVhZGVycyB9KTtcclxuICAgICAgY2FzZSBodHRwVmVyYi5ERUxFVEU6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5kZWxldGUodHVwbGUudXJpLCB7IGhlYWRlcnMgfSk7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdIdHRwIHZlcmIgbXVzdCBiZSBvbmUgb2Y6IFBBVENILCBQVVQsIFBPU1QsIERFTEVURSwgR0VUJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbmNvZGVzIHRoZSBvYmplY3RcclxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIG9iamVjdFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZW5jb2RlKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5idG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeSh2YWx1ZSkpKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWNvZGVzIHRoZSBzdHJpbmdcclxuICAgKiBAcGFyYW0gc3RyIFRoZSBzdHJpbmdcclxuICAgKi9cclxuICBwcml2YXRlIGRlY29kZShzdHI6IHN0cmluZyk6IGFueSB7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKHdpbmRvdy5hdG9iKHN0cikpKSk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogUmVkaXJlY3QgU2Vzc2lvbiBDb25maWdzLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFJlZGlyZWN0U2Vzc2lvbkNvbmZpZ3Mge1xyXG4gIC8qKiBJZiBzZXNzaW9uIHNob3VsZCBiZSBzeW5jZWQuICovXHJcbiAgc3luY1Nlc3Npb24/OiBib29sZWFuO1xyXG5cclxuICAvKiogSWYgbmV3IHRhYiBzaG91bGQgYmUgdGFyZ2V0ZWQuICovXHJcbiAgdGFyZ2V0TmV3VGFiPzogYm9vbGVhbjtcclxufSJdfQ==
|
|
385
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL3Nlc3Npb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RCxPQUFPLEVBQVksUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXpELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFFNUMsbURBQW1EO0FBQ25ELE1BQU0sbUNBQW1DLEdBQUcsbUJBQW1CLENBQUM7QUFFaEUsMEJBQTBCO0FBSTFCLE1BQU0sT0FBTyxjQUFjO0lBdUJ6Qiw2Q0FBNkM7SUFDN0MsSUFBWSx5QkFBeUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLCtCQUErQixLQUFLLFFBQVEsQ0FBQztJQUN6RSxDQUFDO0lBRUQsNkNBQTZDO0lBQzdDLElBQVkseUJBQXlCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQywrQkFBK0IsS0FBSyxRQUFRLENBQUM7SUFDekUsQ0FBQztJQUVELDBDQUEwQztJQUMxQyxJQUFZLHNCQUFzQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMs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S0FBSyxRQUFRLENBQUMsTUFBTTtnQkFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN4RDtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7U0FDOUU7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssTUFBTSxDQUFDLEtBQVU7UUFDdkIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7O09BR0c7SUFDSyxNQUFNLENBQUMsR0FBVztRQUN4QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQzsrR0F4YVUsY0FBYyxrQkF5RkgsY0FBYyw2QkFDZCxNQUFNO21IQTFGakIsY0FBYyxjQUZiLE1BQU07OzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkEwRkksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxjQUFjOzswQkFDakMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxNQUFNOzswQkFDekIsUUFBUTs7QUFnVmI7O0dBRUc7QUFDSCxNQUFNLE9BQU8sc0JBQXNCO0NBTWxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT0F1dGhTZXJ2aWNlIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uUG9zdFJlcXVlc3RNb2RlbCwgU2Vzc2lvblB1dFJlcXVlc3RNb2RlbCwgU2Vzc2lvblJlc3BvbnNlTW9kZWwgfSBmcm9tICcuLi9jbGllbnQtZ2VuZXJhdGVkL21vZGVsL21vZGVscyc7XHJcbmltcG9ydCB7IFNFU1NJT05fQ09ORklHLCBXSU5ET1cgfSBmcm9tICcuLi9tb2RlbHMvY29uc3RhbnRzJztcclxuaW1wb3J0IHsgSHR0cFZlcmIsIGh0dHBWZXJiIH0gZnJvbSAnLi4vbW9kZWxzL2h0dHAtdmVyYnMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL3Nlc3Npb24tY29uZmlnJztcclxuaW1wb3J0IHsgVHlwZWRTZXNzaW9uIH0gZnJvbSAnLi4vbW9kZWxzL3R5cGVkLXNlc3Npb24nO1xyXG5pbXBvcnQgeyBuZXdHdWlkIH0gZnJvbSAnLi4vZnVuY3Rpb25zL2d1aWQnO1xyXG5cclxuLyoqIHRoZSBkYXRhIHN0b3JlIHJldHJpZXZlIGNvbXBsZXRlIHNlc3Npb24ga2V5ICovXHJcbmNvbnN0IGRhdGFTdG9yZVJldHJpZXZlQ29tcGxldGVTZXNzaW9uS2V5ID0gJ2RhdGFTdG9yZVJldHJpZXZlJztcclxuXHJcbi8qKiBUaGUgc2Vzc2lvbiBzZXJ2aWNlICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlc3Npb25TZXJ2aWNlPFQgPSBhbnk+IHtcclxuXHJcbiAgLyoqIFRoZSBzZXNzaW9uIGlkICovXHJcbiAgcHJpdmF0ZSBfc2Vzc2lvbklkOiBzdHJpbmc7XHJcblxyXG4gIC8qKiBUcnVlIHdoZW4gdGhlIGRhdGEgc3RvcmUgcmV0cmlldmUgaXMgY29tcGxldGUgKi9cclxuICBwcml2YXRlIGlzRGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogVGhlIGxvY2FsIHN0b3JhZ2Uga2V5ICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlS2V5OiBzdHJpbmcgPSAnU29mLUFybS1TZXNzaW9uLUlkJztcclxuXHJcbiAgLyoqIFRlaCBjdXJyZW50IHVwZGF0ZSBkYXRhIHN0b3JlIGNhbGwgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IGN1cnJlbnRVcGRhdGVEYXRhU3RvcmVDYWxsOiBPYnNlcnZhYmxlPGFueT4gPSBvZih7fSk7XHJcblxyXG4gIC8qKiBUaGUgc2Vzc2lvbiBkYXRhIGJlaGF2aW9yIHN1YmplY3QgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb25EYXRhOiBCZWhhdmlvclN1YmplY3Q8VHlwZWRTZXNzaW9uPFQ+PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VHlwZWRTZXNzaW9uPFQ+Pih1bmRlZmluZWQpO1xyXG5cclxuICAvKiogVHJ1ZSB3aGVuIHRoZSBzZXJ2aWNlIGhhcyBmaW5pc2hlZCBpbml0aWFsaXppbmcgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IGlzSW5pdGlhbGl6ZWRCczogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIC8qKiBUcnVlIGlmIHRoZSBkYXRhIHN0b3JlIGlzIGluaXRpYWxpemVkICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBpc0RhdGFTdG9yZUluaXRCczogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIC8qKiBUcnVlIGlmIGNsaWVudCBzaWRlIHNlc3Npb24gbWFuYWdlbWVudCAqL1xyXG4gIHByaXZhdGUgZ2V0IGlzQ2xpZW50U2Vzc2lvbk1hbmFnZW1lbnQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uQ29uZmlnLnNlc3Npb25NYW5hZ2VtZW50SW1wbGVtZW50YXRpb24gPT09ICdjbGllbnQnO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRydWUgaWYgc2VydmVyIHNpZGUgc2Vzc2lvbiBtYW5hZ2VtZW50ICovXHJcbiAgcHJpdmF0ZSBnZXQgaXNTZXJ2ZXJTZXNzaW9uTWFuYWdlbWVudCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25Db25maWcuc2Vzc2lvbk1hbmFnZW1lbnRJbXBsZW1lbnRhdGlvbiA9PT0gJ3NlcnZlcic7XHJcbiAgfVxyXG5cclxuICAvKiogVHJ1ZSBpZiB1c2luZyBicm93c2VyIGxvY2FsIHN0b3JhZ2UgKi9cclxuICBwcml2YXRlIGdldCB1c2VCcm93c2VyTG9jYWxTdG9yYWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkNvbmZpZy5icm93c2VyU3RvcmFnZUltcGxlbWVudGF0aW9uID09PSAnbG9jYWwnO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRydWUgaWYgdXNpbmcgYnJvd3NlciBzZXNzaW9uIHN0b3JhZ2UgKi9cclxuICBwcml2YXRlIGdldCB1c2VCcm93c2VyU2Vzc2lvblN0b3JhZ2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uQ29uZmlnLmJyb3dzZXJTdG9yYWdlSW1wbGVtZW50YXRpb24gPT09ICdzZXNzaW9uJztcclxuICB9XHJcblxyXG4gIC8qKiBUaGUgd2luZG93ICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3c6IFdpbmRvdztcclxuXHJcbiAgLyoqIFRydWUgaWYgZGF0YSBzdG9yZSBpcyBwcm92aWRlZCAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNEYXRhU3RvcmVQcm92aWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogVGhlIHNlc3Npb24gaWQgKi9cclxuICBwdWJsaWMgZ2V0IHNlc3Npb25JZCgpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLl9zZXNzaW9uSWQpIHtcclxuICAgICAgdGhpcy5pc0NsaWVudFNlc3Npb25NYW5hZ2VtZW50ID8gdGhpcy5pbml0Q2xpZW50U2Vzc2lvbklkKCkgOiB0aGlzLmluaXRTZXJ2ZXJTZXNzaW9uSWQoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fc2Vzc2lvbklkO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRoZSBzZXNzaW9uICovXHJcbiAgcHVibGljIHNlc3Npb24kOiBPYnNlcnZhYmxlPFR5cGVkU2Vzc2lvbjxUPj47XHJcblxyXG4gIC8qKiBUaGUgc2Vzc2lvbiByZWZyZXNoIG9ic2VydmFibGUgKi9cclxuICBwdWJsaWMgc2Vzc2lvblJlZnJlc2gkOiBPYnNlcnZhYmxlPGFueT47XHJcblxyXG4gIC8qKiBJbmRpY2F0ZXMgd2hlbiB0aGUgc2VydmljZSBoYXMgZmluaXNoZWQgaW5pdGlhbGl6aW5nICovXHJcbiAgcHVibGljIGlzSW5pdGlhbGl6ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG5cclxuICAvKiogVHJ1ZSBpZiB0aGUgZGF0YSBzdG9yZSBpcyBpbml0aWFsaXplZCAqL1xyXG4gIHB1YmxpYyBpc0RhdGFTdG9yZUluaXQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG5cclxuICAvKiogZ2V0cyB0aGUgc2Vzc2lvbiAqL1xyXG4gIHB1YmxpYyBnZXQgc2Vzc2lvbigpOiBUeXBlZFNlc3Npb248VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkRhdGEudmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKiogc2V0cyB0aGUgc2Vzc2lvbiAqL1xyXG4gIHB1YmxpYyBzZXQgc2Vzc2lvbih2YWx1ZTogVHlwZWRTZXNzaW9uPFQ+KSB7XHJcbiAgICB0aGlzLnNlc3Npb25EYXRhLm5leHQodmFsdWUpO1xyXG4gICAgdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnNlc3Npb25Db25maWcua2V5UGF0aCwgdGhpcy5lbmNvZGUodmFsdWUpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdHMgdGhlIHNlcnZpY2VcclxuICAgKiBAcGFyYW0gc2Vzc2lvbkNvbmZpZyBUaGUgc2Vzc2lvbiBjb25maWd1cmF0aW9uc1xyXG4gICAqIEBwYXJhbSBfd2luZG93IFRoZSB3aW5kb3cgaW50ZXJmYWNlXHJcbiAgICogQHBhcmFtIGF1dGhTZXJ2aWNlIFRoZSBPQXV0aCBvZGljIDIgc2VydmljZVxyXG4gICAqIEBwYXJhbSBodHRwQ2xpZW50IFRoZSBodHRwIGNsaWVudFxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChTRVNTSU9OX0NPTkZJRykgcmVhZG9ubHkgc2Vzc2lvbkNvbmZpZzogU2Vzc2lvbkNvbmZpZyxcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoV0lORE9XKSByZWFkb25seSBfd2luZG93OiBhbnksXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IGF1dGhTZXJ2aWNlOiBPQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHBDbGllbnQ6IEh0dHBDbGllbnRcclxuICApIHtcclxuICAgIHRoaXMuaXNJbml0aWFsaXplZCQgPSB0aGlzLmlzSW5pdGlhbGl6ZWRCcy5hc09ic2VydmFibGUoKTtcclxuICAgIHRoaXMuaXNEYXRhU3RvcmVJbml0JCA9IHRoaXMuaXNEYXRhU3RvcmVJbml0QnMuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICBpZiAoIXRoaXMuc2Vzc2lvbkNvbmZpZykge1xyXG4gICAgICB0aGlzLnNlc3Npb25Db25maWcgPSBuZXcgU2Vzc2lvbkNvbmZpZygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pc0RhdGFTdG9yZVByb3ZpZGVkID0gISF0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZztcclxuICAgIHRoaXMud2luZG93ID0gX3dpbmRvdztcclxuICAgIGlmICghdGhpcy53aW5kb3cpIHtcclxuICAgICAgdGhpcy53aW5kb3cgPSB3aW5kb3c7XHJcbiAgICB9XHJcbiAgICBjb25zdCBkYXRhU3RvcmVMb2FkZWRWYWx1ZSA9IHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oZGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZVNlc3Npb25LZXkpO1xyXG4gICAgdGhpcy5pc0RhdGFTdG9yZVJldHJpZXZlQ29tcGxldGUgPSAhIWRhdGFTdG9yZUxvYWRlZFZhbHVlID8gZGF0YVN0b3JlTG9hZGVkVmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnIDogZmFsc2U7XHJcbiAgICAvLyBpZiBub3QgdXNpbmcgYSBkYXRhIHN0b3JlLCB1cGRhdGUgdGhlIGluaXRpYWxpemVkIHRvIHRydWUgZm9yIGl0XHJcbiAgICBpZiAoIXRoaXMuaXNEYXRhU3RvcmVQcm92aWRlZCkge1xyXG4gICAgICB0aGlzLmlzRGF0YVN0b3JlSW5pdEJzLm5leHQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuc2Vzc2lvbkNvbmZpZz8uYnJvd3NlclN0b3JhZ2VJbXBsZW1lbnRhdGlvbikge1xyXG4gICAgICB0aGlzLnNlc3Npb25Db25maWcuYnJvd3NlclN0b3JhZ2VJbXBsZW1lbnRhdGlvbiA9ICdzZXNzaW9uJztcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5zZXNzaW9uQ29uZmlnPy5zZXNzaW9uTWFuYWdlbWVudEltcGxlbWVudGF0aW9uKSB7XHJcbiAgICAgIHRoaXMuc2Vzc2lvbkNvbmZpZy5zZXNzaW9uTWFuYWdlbWVudEltcGxlbWVudGF0aW9uID0gJ2NsaWVudCc7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pc1NlcnZlclNlc3Npb25NYW5hZ2VtZW50ICYmICF0aGlzLnNlc3Npb25Db25maWcpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgdXNlciBzZXJ2ZXIgc2Vzc2lvbiBtYW5hZ2VtZW50IHdpdGggbnVsbCBzZXNzaW9uQ29uZmlnIHBsZWFzZSBwcm92aWRlOiBHbG9iYWxJbmplY3Rpb25Ub2tlbnMuc2Vzc2lvbkNvbmZpZycpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaXNDbGllbnRTZXNzaW9uTWFuYWdlbWVudCkge1xyXG4gICAgICB0aGlzLmluaXRDbGllbnRTZXNzaW9uTWFuYWdlbWVudCgpO1xyXG5cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaW5pdFNlcnZlclNlc3Npb25NYW5hZ2VtZW50KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWRpcmVjdHMgdG8gYSB1cmwgd2l0aCBhIHJlZiB0byB0aGUgZXhpc3Rpbmcgc2Vzc2lvblxyXG4gICAqIEBwYXJhbSB1cmkgVGhlIHVyaSB0byByZWRpcmVjdCB0b1xyXG4gICAqIEBwYXJhbSBzeW5jU2Vzc2lvbiBTeW5jIHNlc3Npb24uXHJcbiAgICogQHBhcmFtIGNvbmZpZ3MgUmVkaXJlY3QgY29uZmlncy5cclxuICAgKi9cclxuICBwdWJsaWMgcmVkaXJlY3QodXJpOiBzdHJpbmcsIHN5bmNTZXNzaW9uOiBib29sZWFuID0gZmFsc2UsIGNvbmZpZ3M6IFJlZGlyZWN0U2Vzc2lvbkNvbmZpZ3MgPSB7fSk6IHZvaWQge1xyXG4gICAgLy8gaWYgdGhlIGhvc3QgbmFtZSBpc24ndCBpbiB0aGUgdXJpLCB3ZSBhcmUgZ29pbmcgdG8gYSBkaWZmZXJlbnQgZG9tYWluLCBzbyB1c2UgdGhlIGdhdGV3YXkgb24gdGhlIG90aGVyIGRvbWFpbidzIHNlcnZlclxyXG4gICAgbGV0IGZvcm1BY3Rpb24gPSBgJHt0aGlzLnNlc3Npb25Db25maWcudHJhbnNmZXJCYXNlUGF0aH0vc3NvZ2F0ZXdheS92Mi9zc28vaW5ib3VuZC10cmFuc2Zlci8ke3RoaXMuc2Vzc2lvbkNvbmZpZy5rZXlQYXRofWA7XHJcbiAgICBpZiAodXJpLmluZGV4T2Yod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKSA9PT0gLTEpIHtcclxuICAgICAgY29uc3QgdXJpUGFydHMgPSB1cmkuc3BsaXQoJy8nKTtcclxuICAgICAgLy8gdGhpcyByZXN1bHRzIGluIFsnaHR0cHM6JywgJycsICdkb21haW4uaG9zdCddLCB1c2UgMCBhbmQgMiB0byBnZXQgdGhlIGJhc2UgdXJsIG9mIHRoZSByZWRpcmVjdCB1cmlcclxuICAgICAgZm9ybUFjdGlvbiA9IGAke3VyaVBhcnRzWzBdfS8vJHt1cmlQYXJ0c1syXX0vc3NvZ2F0ZXdheS92Mi9zc28vaW5ib3VuZC10cmFuc2Zlci8ke3RoaXMuc2Vzc2lvbkNvbmZpZy5rZXlQYXRofWA7XHJcbiAgICB9XHJcbiAgICBjb25zdCBmb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpO1xyXG4gICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xyXG4gICAgY29uc3QgaW5wdXREZXN0aW5hdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XHJcbiAgICBmb3JtLm1ldGhvZCA9ICdQT1NUJztcclxuICAgIGZvcm0uYWN0aW9uID0gZm9ybUFjdGlvbjtcclxuICAgIGlmIChjb25maWdzLnRhcmdldE5ld1RhYikge1xyXG4gICAgICAvLyBUaGUgcGFyZW50IHNlc3Npb24gc2hvdWxkIGFscmVhZHkgYmUgcHJlc2VudCBpbiBjaGlsZCB3aW5kb3cgYXMgcGVyIGJyb3dzaW5nIGNvbnRleHQgcnVsZXMsIGJ1dCBmb3Igd2hhdGV2ZXIgcmVhc29uIGZvcm0udGFyZ2V0ID0gJ19ibGFuaycgZG9lcyBub3QgZG8gdGhhdC5cclxuICAgICAgLy8gTmVlZCB0byB1c2Ugd2luZG93Lm9wZW4gaGVyZSBzbyB0aGUgcGFyZW50IHdpbmRvdydzIHNlc3Npb24gYWxzbyBnZXRzIGNhcnJpZWQgb3ZlciB0byB0aGUgbmV3IHRhYi5cclxuICAgICAgLy8gRm9yIHJlZmVyZW5jZTogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTcyOTcyODcvc2Vzc2lvbnN0b3JhZ2Utb24tbmV3LXdpbmRvdy1pc250LWVtcHR5LXdoZW4tZm9sbG93aW5nLWEtbGluay13aXRoLXRhcmdldC1ibFxyXG4gICAgICBmb3JtLnRhcmdldCA9ICdjdXN0b21XaW5kb3cnO1xyXG4gICAgICB3aW5kb3cub3BlbignJywgJ2N1c3RvbVdpbmRvdycpO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0Lm5hbWUgPSAnZGF0YSc7XHJcbiAgICBpbnB1dC52YWx1ZSA9IHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5zZXNzaW9uQ29uZmlnLmtleVBhdGgpO1xyXG4gICAgaW5wdXREZXN0aW5hdGlvbi5uYW1lID0gJ2Rlc3RpbmF0aW9uJztcclxuICAgIGlucHV0RGVzdGluYXRpb24udmFsdWUgPSB1cmk7XHJcbiAgICBmb3JtLmFwcGVuZENoaWxkKGlucHV0KTtcclxuICAgIGZvcm0uYXBwZW5kQ2hpbGQoaW5wdXREZXN0aW5hdGlvbik7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZvcm0pO1xyXG4gICAgZm9ybS5zdWJtaXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIHNlc3Npb25cclxuICAgKiBAcGFyYW0gYm9keSBUaGUgc2Vzc2lvbiBwdXQgcmVxdWVzdCBib2R5XHJcbiAgICovXHJcbiAgcHVibGljIHVwZGF0ZVNlc3Npb24oXHJcbiAgICBib2R5OiBUeXBlZFNlc3Npb248VD4sXHJcbiAgICBzZWN1cmFibGVEZWxlZ2F0ZTogQXJyYXk8KGFyZzogYW55KSA9PiBhbnk+IHwgKChhcmc6IGFueSkgPT4gYW55KSxcclxuICAgIHNraXBEYXRhU3RvcmU/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGlmICghdGhpcy5fc2Vzc2lvbklkKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ05vIHNlc3Npb24gaGFzIGJlZW4gaW5pdGlhbGl6ZWQsIHNraXBwaW5nIHVwZGF0ZSBjYWxsJyk7XHJcblxyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgaWYgKCFzZWN1cmFibGVEZWxlZ2F0ZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nlc3Npb25TZXJ2aWNlOnVwZGF0ZVNlc3Npb24gLT4gQXJndW1lbnQgaXMgbnVsbCBvciB1bmRlZmluZWQsIGFyZzogc2VjdXJhYmxlRGVsZWdhdGUnKTtcclxuICAgIH1cclxuICAgIGlmIChBcnJheS5pc0FycmF5KGJvZHkuc2Vzc2lvbkRhdGEpICYmICFBcnJheS5pc0FycmF5KHNlY3VyYWJsZURlbGVnYXRlKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgJ1Nlc3Npb25TZXJ2aWNlOnVwZGF0ZVNlc3Npb24gLT4gVHlwZSBtaXNzIG1hdGNoLCBhcmc6IGJvZHkuU2Vzc2lvbkRhdGEgKHR5cGUgb2YgQXJyYXkpIGFuZCBhcmc6IHNlY3VyYWJsZURlbGVnYXRlICh0eXBlIG9mIChhcmc6IGFueSkgPT4gYW55KSBib3RoIG11c3QgYmUgYXJyYXkgb3Igbm9uLWFycmF5J1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGJvZHkuc2Vzc2lvbkRhdGEpICYmIEFycmF5LmlzQXJyYXkoc2VjdXJhYmxlRGVsZWdhdGUpKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAnU2Vzc2lvblNlcnZpY2U6dXBkYXRlU2Vzc2lvbiAtPiBUeXBlIG1pc3MgbWF0Y2gsIGFyZzogYm9keS5TZXNzaW9uRGF0YSAodHlwZSBvZiBhbnkpIGFuZCBhcmc6IHNlY3VyYWJsZURlbGVnYXRlICh0eXBlIG9mIEFycmF5KSAgYm90aCBtdXN0IGJlIGFycmF5IG9yIG5vbi1hcnJheSdcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIC8vIGNyZWF0ZSByZXNwb25zZSBtb2RlbCBhbmQgdXBkYXRlIG9ic2VydmFibGUgdG8gZW1pdCBuZXcgc2Vzc2lvbiB2YWx1ZVxyXG4gICAgY29uc3QgbW9kZWw6IFNlc3Npb25SZXNwb25zZU1vZGVsID0ge1xyXG4gICAgICBpbml0aWFsaXppbmdPcmlnaW46IGJvZHkuaW5pdGlhbGl6aW5nT3JpZ2luLFxyXG4gICAgICBicmFuZGluZzogYm9keS5icmFuZGluZyxcclxuICAgICAgb0F1dGg6IGJvZHkub0F1dGgsXHJcbiAgICAgIHNlc3Npb25JZDogdGhpcy5fc2Vzc2lvbklkLFxyXG4gICAgICB0cmFja2luZzogYm9keS50cmFja2luZyxcclxuICAgICAgc2Vzc2lvbkRhdGE6IGJvZHkuc2Vzc2lvbkRhdGFcclxuICAgIH07XHJcbiAgICB0aGlzLnNlc3Npb24gPSBtb2RlbDtcclxuXHJcbiAgICBjb25zdCBwdXRNb2RlbDogU2Vzc2lvblB1dFJlcXVlc3RNb2RlbCA9IHtcclxuICAgICAgaW5pdGlhbGl6aW5nT3JpZ2luOiBib2R5LmluaXRpYWxpemluZ09yaWdpbixcclxuICAgICAgc2Vzc2lvbkRhdGE6XHJcbiAgICAgICAgKEFycmF5LmlzQXJyYXkoYm9keS5zZXNzaW9uRGF0YSlcclxuICAgICAgICAgID8gYm9keS5zZXNzaW9uRGF0YS5tYXAoKGQsIGluZGV4KSA9PiBzZWN1cmFibGVEZWxlZ2F0ZVtpbmRleF0oZCkpIDogKHNlY3VyYWJsZURlbGVnYXRlIGFzICgoYXJnOiBhbnkpID0+IGFueSkpKGJvZHkuc2Vzc2lvbkRhdGEpKSxcclxuICAgICAgYnJhbmRpbmc6IGJvZHkuYnJhbmRpbmcsXHJcbiAgICAgIHRyYWNraW5nOiBib2R5LnRyYWNraW5nLFxyXG4gICAgICBvQXV0aDogYm9keS5vQXV0aFxyXG4gICAgfTtcclxuXHJcbiAgICAvLyBpZiBkYXRhIHN0b3JlIGlzIHByb3ZpZGVkIHJ1biB0aGUgZGVsZWdhdGUgdG8gZGV0ZXJtaW5lIHRoZSBib2R5IGFuZCB0aGUgdXJpIHRvIHVzZSBmb3IgdGhlIHVwZGF0ZVxyXG4gICAgaWYgKHRoaXMuaXNEYXRhU3RvcmVQcm92aWRlZCAmJiAhc2tpcERhdGFTdG9yZSkge1xyXG4gICAgICBjb25zdCB1cGRhdGVUdXBsZSA9XHJcbiAgICAgICAgdGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWcudXBkYXRlUmVxdWVzdERlbGVnYXRlKHRoaXMuc2Vzc2lvbkNvbmZpZz8uZGF0YVN0b3JlQ29uZmlnLmJhc2VVcmksIGJvZHkuc2Vzc2lvbkRhdGEpO1xyXG4gICAgICAvLyBzd2l0Y2ggbWFwIHRvIGNhbmNlbCBleGlzdGluZyBjYWxscyB3aXRoIG5ld2VyIG9uZXMgdG8gYXZvaWQgcmV2ZXJ0aW5nIGRhdGFcclxuICAgICAgaWYgKHRoaXMuc2Vzc2lvbkNvbmZpZz8uZGF0YVN0b3JlQ29uZmlnLnNob3VsZFVwZGF0ZURhdGFTdG9yZURlbGVnYXRlKGJvZHkuc2Vzc2lvbkRhdGEpKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50VXBkYXRlRGF0YVN0b3JlQ2FsbC5waXBlKHN3aXRjaE1hcCgoKSA9PiB7XHJcbiAgICAgICAgICBzd2l0Y2ggKHRoaXMuc2Vzc2lvbkNvbmZpZz8uZGF0YVN0b3JlQ29uZmlnLnVwZGF0ZVZlcmIpIHtcclxuICAgICAgICAgICAgY2FzZSBodHRwVmVyYi5QT1NUOlxyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdCh1cGRhdGVUdXBsZS51cmksIHVwZGF0ZVR1cGxlLmJvZHkpO1xyXG4gICAgICAgICAgICBjYXNlIGh0dHBWZXJiLlBVVDpcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnB1dCh1cGRhdGVUdXBsZS51cmksIHVwZGF0ZVR1cGxlLmJvZHkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNEYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShkYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlU2Vzc2lvbktleSwgJ3RydWUnKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbiQ7XHJcbiAgfVxyXG5cclxuICAvKiogUmVtb3ZlcyB0aGUgc2Vzc2lvbiAqL1xyXG4gIHB1YmxpYyByZW1vdmVTZXNzaW9uKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXNzaW9uRGF0YS5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgICB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKGRhdGFTdG9yZVJldHJpZXZlQ29tcGxldGVTZXNzaW9uS2V5KTtcclxuICAgIHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5zZXNzaW9uQ29uZmlnLmtleVBhdGgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlcHJlY2F0ZWQgcmVtb3ZpbmcgaW4gdGhlIG5leHQgdmVyc2lvblxyXG4gICAqIFN5bmNzIHRoZSBzZXNzaW9uXHJcbiAgICogUmV0dXJucyB0aGUgb2JzZXJ2YWJsZSBpbmRpY2F0aW5nIHdoZW4gdGhlIHNlc3Npb24gaGFzIGJlZW4gc3luY2VkXHJcbiAgICovXHJcbiAgcHVibGljIHN5bmNTZXNzaW9uKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gb2YodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVwcmVjYXRlZCByZW1vdmluZyBpbiB0aGUgbmV4dCB2ZXJzaW9uXHJcbiAgICogUmVmcmVzaGVzIHRoZSBzZXNzaW9uXHJcbiAgICovXHJcbiAgcHVibGljIHJlZnJlc2hTZXNzaW9uKCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgLyoqIEluaXRpYWxpemUgc2VydmVyIHNlc3Npb24gbWFuYWdlbWVudCAqL1xyXG4gIHByaXZhdGUgaW5pdFNlcnZlclNlc3Npb25NYW5hZ2VtZW50KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXNzaW9uJCA9IHRoaXMuc2Vzc2lvbkRhdGEuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgY29uc3QgZ2V0RnJvbURhdGFTdG9yZSA9ICgpOiBhbnkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuc2Vzc2lvbkNvbmZpZz8uZGF0YVN0b3JlQ29uZmlnIHx8ICF0aGlzLmF1dGhTZXJ2aWNlIHx8IHRoaXMuaXNEYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBsb2FkIGRhdGEgZnJvbSBkYXRhIHN0b3JlIGFub25cclxuICAgICAgY29uc3QgbG9hZERhdGFTdG9yZSA9ICgpID0+XHJcbiAgICAgICAgdGhpcy5kZXRlcm1pbmVEYXRhU3RvcmVGdW5jdGlvbih0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5yZXRyaWV2ZVZlcmIsXHJcbiAgICAgICAgICB0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5yZXRyaWV2ZVJlcXVlc3REZWxlZ2F0ZSxcclxuICAgICAgICAgIHRoaXMuc2Vzc2lvbkNvbmZpZz8uZGF0YVN0b3JlQ29uZmlnLmJhc2VVcmksXHJcbiAgICAgICAgICB1bmRlZmluZWQpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNJbml0aWFsaXplZCQuc3Vic2NyaWJlKGlzSW5pdCA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKCFpc0luaXQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uJC5waXBlKHRha2UoMSkpXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHNlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2Vzc2lvbih0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5yZXRyaWV2ZVJlc3BvbnNlRGVsZWdhdGUocmVzLCBzZXMpLFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvbkNvbmZpZz8uZGF0YVN0b3JlQ29uZmlnLnJldHJpZXZlU2VjdXJhYmxlRGVsZWdhdGUocmVzKSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuaXNEYXRhU3RvcmVJbml0QnMubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5pc0RhdGFTdG9yZVJldHJpZXZlQ29tcGxldGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKGRhdGFTdG9yZVJldHJpZXZlQ29tcGxldGVTZXNzaW9uS2V5LCAndHJ1ZScpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAoIXRoaXMuYXV0aFNlcnZpY2UuaGFzVmFsaWRBY2Nlc3NUb2tlbigpKSB7XHJcbiAgICAgICAgLy8gSEFDSzogSSBjb3VsZG4ndCBkbyB0aGlzIGJhc2VkIG9uIGFuIGV2ZW50IHNvIEkgaGFkIHRvIGdldCBjcmVhdGl2ZVxyXG4gICAgICAgIGNvbnN0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuaGFzVmFsaWRBY2Nlc3NUb2tlbigpKSB7XHJcbiAgICAgICAgICAgIGxvYWREYXRhU3RvcmUoKTtcclxuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwgMjUwKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbG9hZERhdGFTdG9yZSgpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGJvZHk6IFNlc3Npb25Qb3N0UmVxdWVzdE1vZGVsID0ge1xyXG4gICAgICBzZXNzaW9uRGF0YTogdW5kZWZpbmVkLFxyXG4gICAgICBicmFuZGluZzogdW5kZWZpbmVkXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGVuY29kZWRTZXNzaW9uID0gdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnNlc3Npb25Db25maWcua2V5UGF0aCk7XHJcbiAgICB0aGlzLl9zZXNzaW9uSWQgPSBgU2Vzc2lvbi0ke25ld0d1aWQoKX1gO1xyXG4gICAgaWYgKCFlbmNvZGVkU2Vzc2lvbikge1xyXG4gICAgICB0aGlzLnNlc3Npb24gPSBib2R5O1xyXG4gICAgICB0aGlzLmlzSW5pdGlhbGl6ZWRCcy5uZXh0KHRydWUpO1xyXG4gICAgICBnZXRGcm9tRGF0YVN0b3JlKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zZXNzaW9uID0gdGhpcy5kZWNvZGUoZW5jb2RlZFNlc3Npb24pO1xyXG4gICAgICB0aGlzLmlzSW5pdGlhbGl6ZWRCcy5uZXh0KHRydWUpO1xyXG4gICAgICBnZXRGcm9tRGF0YVN0b3JlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogSW5pdGlhbGl6ZXMgdGhlIHNlcnZlciBzaWRlIHNlc3Npb24gaWQgKi9cclxuICBwcml2YXRlIGluaXRTZXJ2ZXJTZXNzaW9uSWQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX3Nlc3Npb25JZCkge1xyXG4gICAgICBjb25zb2xlLndhcm4oJ1Nlc3Npb24gSW5pdGlhbGl6aW5nLCBzdWJzY3JpYmUgdG8gc2Vzc2lvbiQgdG8gZ2V0IHRoZSBzZXNzaW9uIGluZm8uIFNlc3Npb24gSWQgd2lsbCBiZSBwb3B1bGF0ZWQgdXBvbiBpbml0aWFsaXphdGlvbicpO1xyXG5cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEluaXRpYWxpemVzIGNsaWVudCBzaWRlIHNlc3Npb24gbWFuYWdlbWVudCAqL1xyXG4gIHByaXZhdGUgaW5pdENsaWVudFNlc3Npb25NYW5hZ2VtZW50KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudXNlQnJvd3NlclNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgIGNvbnN0IHNlc0lkID0gdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXkpO1xyXG4gICAgICB0aGlzLl9zZXNzaW9uSWQgPSBzZXNJZCB8fCBuZXdHdWlkKCk7XHJcbiAgICAgIHRoaXMuc2V0U2Vzc2lvblN0b3JhZ2UoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMudXNlQnJvd3NlckxvY2FsU3RvcmFnZSkge1xyXG4gICAgICBjb25zdCBzZXNJZCA9IHRoaXMud2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RvcmFnZUtleSk7XHJcbiAgICAgIHRoaXMuX3Nlc3Npb25JZCA9IHNlc0lkIHx8IG5ld0d1aWQoKTtcclxuICAgICAgdGhpcy5zZXRMb2NhbFN0b3JhZ2UoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaXNJbml0aWFsaXplZEJzLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFNlc3Npb25JZEZyb21TdG9yYWdlKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy51c2VCcm93c2VyTG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLndpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXkpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy51c2VCcm93c2VyU2Vzc2lvblN0b3JhZ2UpIHtcclxuICAgICAgcmV0dXJuIHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBJbml0aWFsaXplIHRoZSBjbGllbnQgc2lkZSBzZXNzaW9uIGlkICovXHJcbiAgcHJpdmF0ZSBpbml0Q2xpZW50U2Vzc2lvbklkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2Vzc2lvbklkID0gbmV3R3VpZCgpO1xyXG4gICAgaWYgKHRoaXMudXNlQnJvd3NlclNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgIHRoaXMuc2V0U2Vzc2lvblN0b3JhZ2UoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMudXNlQnJvd3NlckxvY2FsU3RvcmFnZSkge1xyXG4gICAgICB0aGlzLnNldExvY2FsU3RvcmFnZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIFNldHMgc2Vzc2lvbiBzdG9yYWdlICovXHJcbiAgcHJpdmF0ZSBzZXRTZXNzaW9uU3RvcmFnZSgpOiB2b2lkIHtcclxuICAgIHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5zdG9yYWdlS2V5LCB0aGlzLl9zZXNzaW9uSWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFNldHMgbG9jYWwgc3RvcmFnZSAqL1xyXG4gIHByaXZhdGUgc2V0TG9jYWxTdG9yYWdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy53aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdG9yYWdlS2V5LCB0aGlzLl9zZXNzaW9uSWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGV0ZXJtaW5lcyB0aGUgdHlwZSBvZiBodHRwIGNhbGwgdG8gbWFrZSBmb3IgdGhlIGRhdGEgc3RvcmVcclxuICAgKiBAcGFyYW0gdmVyYiBUaGUgdmVyYlxyXG4gICAqIEBwYXJhbSBkZWxlZ2F0ZSBUaGUgZGVsZWdhdGVcclxuICAgKiBAcGFyYW0gdXJpIFRoZSB1cmlcclxuICAgKi9cclxuICBwcml2YXRlIGRldGVybWluZURhdGFTdG9yZUZ1bmN0aW9uKFxyXG4gICAgdmVyYjogSHR0cFZlcmIsXHJcbiAgICBkZWxlZ2F0ZTogKGJhc2VVcmk6IHN0cmluZywgYm9keTogVCkgPT4geyB1cmk6IHN0cmluZywgYm9keT86IGFueSB9LFxyXG4gICAgdXJpOiBzdHJpbmcsXHJcbiAgICBib2R5OiBhbnlcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdHVwbGUgPSBkZWxlZ2F0ZSh1cmksIGJvZHkpO1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcclxuICAgIH0pO1xyXG4gICAgc3dpdGNoICh2ZXJiKSB7XHJcbiAgICAgIGNhc2UgaHR0cFZlcmIuUFVUOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucHV0KHR1cGxlLnVyaSwgdHVwbGUuYm9keSwgeyBoZWFkZXJzIH0pO1xyXG4gICAgICBjYXNlIGh0dHBWZXJiLlBPU1Q6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KHR1cGxlLnVyaSwgdHVwbGUuYm9keSwgeyBoZWFkZXJzIH0pO1xyXG4gICAgICBjYXNlIGh0dHBWZXJiLkdFVDpcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldCh0dXBsZS51cmksIHsgaGVhZGVycyB9KTtcclxuICAgICAgY2FzZSBodHRwVmVyYi5QQVRDSDpcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBhdGNoKHR1cGxlLnVyaSwgdHVwbGUuYm9keSwgeyBoZWFkZXJzIH0pO1xyXG4gICAgICBjYXNlIGh0dHBWZXJiLkRFTEVURTpcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmRlbGV0ZSh0dXBsZS51cmksIHsgaGVhZGVycyB9KTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0h0dHAgdmVyYiBtdXN0IGJlIG9uZSBvZjogUEFUQ0gsIFBVVCwgUE9TVCwgREVMRVRFLCBHRVQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVuY29kZXMgdGhlIG9iamVjdFxyXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgb2JqZWN0XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBlbmNvZGUodmFsdWU6IGFueSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gd2luZG93LmJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHZhbHVlKSkpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlY29kZXMgdGhlIHN0cmluZ1xyXG4gICAqIEBwYXJhbSBzdHIgVGhlIHN0cmluZ1xyXG4gICAqL1xyXG4gIHByaXZhdGUgZGVjb2RlKHN0cjogc3RyaW5nKTogYW55IHtcclxuICAgIHJldHVybiBKU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudChlc2NhcGUod2luZG93LmF0b2Ioc3RyKSkpKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZWRpcmVjdCBTZXNzaW9uIENvbmZpZ3MuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgUmVkaXJlY3RTZXNzaW9uQ29uZmlncyB7XHJcbiAgLyoqIElmIHNlc3Npb24gc2hvdWxkIGJlIHN5bmNlZC4gKi9cclxuICBzeW5jU2Vzc2lvbj86IGJvb2xlYW47XHJcblxyXG4gIC8qKiBJZiBuZXcgdGFiIHNob3VsZCBiZSB0YXJnZXRlZC4gKi9cclxuICB0YXJnZXROZXdUYWI/OiBib29sZWFuO1xyXG59Il19
|
|
@@ -123,10 +123,10 @@ export class UserEntityService {
|
|
|
123
123
|
config.getUserPartial = config.getUserPartial == undefined ? this.getUserPartial : config.getUserPartial;
|
|
124
124
|
return config;
|
|
125
125
|
}
|
|
126
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
127
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.
|
|
126
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UserEntityService, deps: [{ token: i1.OAuthService }, { token: i2.HttpClient }, { token: USER_ENTITY_SERVICE_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
127
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UserEntityService, providedIn: 'root' }); }
|
|
128
128
|
}
|
|
129
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
129
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UserEntityService, decorators: [{
|
|
130
130
|
type: Injectable,
|
|
131
131
|
args: [{
|
|
132
132
|
providedIn: 'root'
|
|
@@ -137,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
|
|
|
137
137
|
type: Inject,
|
|
138
138
|
args: [USER_ENTITY_SERVICE_CONFIG]
|
|
139
139
|
}] }] });
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1lbnRpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL3NyYy9saWIvY29yZS9zZXJ2aWNlcy91c2VyLWVudGl0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHN0QsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7QUFFL0UsOEJBQThCO0FBSTlCLE1BQU0sT0FBTyxpQkFBaUI7SUFjNUIsOEJBQThCO0lBQzlCLElBQVksS0FBSztRQUNmLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQVksS0FBSyxDQUFDLEdBQXNCO1FBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFLRDs7Ozs7T0FLRztJQUNILFlBQ21CLFlBQTBCLEVBQzFCLFVBQXNCLEVBQ2tCLHVCQUFnRDtRQUZ4RixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ2tCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUExQjNHLCtCQUErQjtRQUNkLG1CQUFjLEdBQVcsNEJBQTRCLENBQUM7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QUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPQXV0aFNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIGZpcnN0LCBzaGFyZSwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEFzc2VydGVkVXNlck1vZGVsIH0gZnJvbSAnLi4vY2xpZW50LWdlbmVyYXRlZC9tb2RlbC9tb2RlbHMnO1xyXG5pbXBvcnQgeyBVU0VSX0VOVElUWV9TRVJWSUNFX0NPTkZJRyB9IGZyb20gJy4uL21vZGVscy9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBVc2VyRW50aXR5U2VydmljZUNvbmZpZyB9IGZyb20gJy4uL21vZGVscy91c2VyLWVudGl0eS1zZXJ2aWNlLWNvbmZpZyc7XHJcblxyXG4vKiogVGhlIHVzZXIgZW50aXR5IHNlcnZpY2UgKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlckVudGl0eVNlcnZpY2Uge1xyXG5cclxuICAvKiogVGhlIHVzZXIgb2JzZXJ2YWJsZSAqL1xyXG4gIHB1YmxpYyByZWFkb25seSB1c2VyJDogT2JzZXJ2YWJsZTxBc3NlcnRlZFVzZXJNb2RlbD47XHJcblxyXG4gIC8qKiBUcnVlIGlmIHRoZSBzZXJ2aWNlIGlzIGF2YWlsYWJsZSBmb3IgdXNlICovXHJcbiAgcHJpdmF0ZSBpc1NlcnZpY2VBdmFpbGFibGU6IGJvb2xlYW47XHJcblxyXG4gIC8qKiBUaGUgZ2V0IHVzZXIgcGFydGlhbCB1cmwgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IGdldFVzZXJQYXJ0aWFsOiBzdHJpbmcgPSAnYXBpL3VzZXJNYW5hZ2VtZW50L3YxL3VzZXInO1xyXG5cclxuICAvKiogVGhlIHVzZXIgY2FsbCAqL1xyXG4gIHByaXZhdGUgdXNlckNhbGw6IFByb21pc2U8QXJyYXk8QXNzZXJ0ZWRVc2VyTW9kZWw+PjtcclxuXHJcbiAgLyoqIFRoZSB1c2VyIG1vZGVsIGFuZCBoYXNoICovXHJcbiAgcHJpdmF0ZSBnZXQgX3VzZXIoKTogQXNzZXJ0ZWRVc2VyTW9kZWwge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlckJTLnZhbHVlO1xyXG4gIH1cclxuICBwcml2YXRlIHNldCBfdXNlcih2YWw6IEFzc2VydGVkVXNlck1vZGVsKSB7XHJcbiAgICB0aGlzLnVzZXJCUy5uZXh0KHZhbCk7XHJcbiAgfVxyXG5cclxuICAvKiogdGhlIHVzZXIgYmVoYXZpb3Igc3ViamVjdCAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlckJTOiBCZWhhdmlvclN1YmplY3Q8QXNzZXJ0ZWRVc2VyTW9kZWw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBc3NlcnRlZFVzZXJNb2RlbD4odW5kZWZpbmVkKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyB0aGUgc2VydmljZVxyXG4gICAqIEBwYXJhbSBvYXV0aFNlcnZpY2UgVGhlIG9hdXRoIG9pZGMgMiBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIGh0dHBDbGllbnQgVGhlIGh0dHAgY2xpZW50XHJcbiAgICogQHBhcmFtIHVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnIFRoZSB1c2VyIGVudGl0eSBzZXJ2aWNlIGNvbmZpZ3VyYXRpb25zXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9hdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChVU0VSX0VOVElUWV9TRVJWSUNFX0NPTkZJRykgcmVhZG9ubHkgdXNlckVudGl0eVNlcnZpY2VDb25maWc6IFVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnXHJcbiAgKSB7XHJcbiAgICB0aGlzLnVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnID0gIXRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcgPyBuZXcgVXNlckVudGl0eVNlcnZpY2VDb25maWcoKSA6IHRoaXMuZ2V0Q29uZmlnV2l0aERlZmF1bHRzKCk7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLXBhcmFtZXRlci1yZWFzc2lnbm1lbnRcclxuICAgIHRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcudXNlckVudGl0eUJhc2VVcmwgPSB0aGlzLnVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnLnVzZXJFbnRpdHlCYXNlVXJsIHx8ICcvJztcclxuICAgIHRoaXMuZ2V0VXNlclBhcnRpYWwgPSB0aGlzLnVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnLmdldFVzZXJQYXJ0aWFsIHx8IHRoaXMuZ2V0VXNlclBhcnRpYWw7XHJcbiAgICB0aGlzLnVzZXIkID0gdGhpcy51c2VyQlMuYXNPYnNlcnZhYmxlKClcclxuICAgICAgLnBpcGUoZmlsdGVyKHZhbCA9PiAhIXZhbCkpO1xyXG5cclxuICAgIGlmICh0aGlzLnVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnLmdldFVzZXJPbkluaXQpIHtcclxuICAgICAgY29uc3QgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1NlcnZpY2VBdmFpbGFibGUgPSB0aGlzLm9hdXRoU2VydmljZS5oYXNWYWxpZEFjY2Vzc1Rva2VuKCk7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzU2VydmljZUF2YWlsYWJsZSkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmdldFVzZXJGcm9tQXBpKClcclxuICAgICAgICAgIC50aGVuKClcclxuICAgICAgICAgIC5jYXRjaCgpO1xyXG4gICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xyXG4gICAgICB9LCAxMDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEdldHMgdGhlIHVzZXIgKi9cclxuICBwdWJsaWMgYXN5bmMgZ2V0VXNlcigpOiBQcm9taXNlPEFzc2VydGVkVXNlck1vZGVsPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB0aGlzLnVzZXIkLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICBzaGFyZSgpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoZSA9PiB7XHJcbiAgICAgICAgICByZWplY3QoZSk7XHJcblxyXG4gICAgICAgICAgcmV0dXJuIG9mKGUpO1xyXG4gICAgICAgIH0pKVxyXG4gICAgICAgIC5zdWJzY3JpYmUodXNlciA9PiB7XHJcbiAgICAgICAgICByZXNvbHZlKHVzZXIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSB1c2VyXHJcbiAgICogQHBhcmFtIHVzZXIgVGhlIG5ldyB1c2VyIG1vZGVsXHJcbiAgICovXHJcbiAgcHVibGljIGFzeW5jIHVwZGF0ZVVzZXIodXNlcj86IEFzc2VydGVkVXNlck1vZGVsKTogUHJvbWlzZTxBc3NlcnRlZFVzZXJNb2RlbD4ge1xyXG4gICAgaWYgKHVzZXIpIHtcclxuICAgICAgdGhpcy5fdXNlciA9IHVzZXI7XHJcblxyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX3VzZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGF3YWl0IHRoaXMuZ2V0VXNlckZyb21BcGkoKTtcclxuXHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX3VzZXIpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgdXNlciBtZWV0cyB0aGUgdmFsaWRhdGlvbiBmdW5jdGlvbiBwcm92aWRlZCAqL1xyXG4gIHB1YmxpYyB2YWxpZGF0ZVVzZXIoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy51c2VyRW50aXR5U2VydmljZUNvbmZpZyAmJiB0aGlzLl91c2VyKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnLnZhbGlkYXRlKHRoaXMuX3VzZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqIEdldHMgdGhlIHVzZXIgZnJvbSB0aGUgYXBpICovXHJcbiAgcHJpdmF0ZSBhc3luYyBnZXRVc2VyRnJvbUFwaSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vIHVzZSB0aGUgbG9jYWwgcGF0aCBpZiB0aGVyZSBpcyBub3QgYmFzZSBwYXRoIHByb3ZpZGVkXHJcbiAgICByZXR1cm4gdGhpcy5vYXV0aFNlcnZpY2UuZXZlbnRzLnBpcGUoZmlyc3QoZSA9PiBlLnR5cGUgPT09ICdkaXNjb3ZlcnlfZG9jdW1lbnRfbG9hZGVkJykpXHJcbiAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgICAudGhlbihhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgLy8gYXBwZW5kIHRoZSBpc3N1ZXIgdG8gdGhlIGhlYWRlciBvZiB0aGUgcmVxdWVzdCBzbyB0aGUgYXBpIGtub3dzIHdoYXQgdGVuYW50IHRvIHVzZVxyXG4gICAgICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCcsXHJcbiAgICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0aGlzLm9hdXRoU2VydmljZS5nZXRBY2Nlc3NUb2tlbigpfWAsXHJcbiAgICAgICAgICAgICdBdXRob3JpemF0aW9uLVRlbmFudCc6IChcclxuICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLXN0cmluZy1saXRlcmFsXHJcbiAgICAgICAgICAgICAgdGhpcy5vYXV0aFNlcnZpY2VbJ2NvbmZpZyddPy5sb2dpblVybCB8fCB0aGlzLm9hdXRoU2VydmljZVsnY29uZmlnJ10/Lmlzc3VlclxyXG4gICAgICAgICAgICAgIHx8IHRoaXMub2F1dGhTZXJ2aWNlPy5sb2dpblVybCB8fCB0aGlzLm9hdXRoU2VydmljZT8uaXNzdWVyIHx8ICcnKVxyXG4gICAgICAgICAgICAgIC5yZXBsYWNlKCcvYWNjb3VudC9sb2dpbicsICcnKVxyXG4gICAgICAgICAgICAgIC5yZXBsYWNlKCcvY29ubmVjdC9hdXRob3JpemUnLCAnJylcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMudXNlckNhbGwgPSB0aGlzLmh0dHBDbGllbnQuZ2V0PEFycmF5PEFzc2VydGVkVXNlck1vZGVsPj4oXHJcbiAgICAgICAgICBgJHt0aGlzLnVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnLnVzZXJFbnRpdHlCYXNlVXJsfSR7dGhpcy5nZXRVc2VyUGFydGlhbH0/c3ViSWRGcm9tVG9rZW49dHJ1ZSZjcmVhdGVFbXB0eT10cnVlJndpdGhvdXRDaGlsZExpbmtzPSR7IXRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcuaW5jbHVkZUxpbmtzfWAsXHJcbiAgICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICAgIClcclxuICAgICAgICAgIC50b1Byb21pc2UoKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlckNhbGwudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgaWYgKCFyZXMgfHwgcmVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdObyB1c2VyIGVudGl0aWVzIGZvdW5kJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLl91c2VyID0gcmVzWzBdO1xyXG4gICAgICAgICAgdGhpcy52YWxpZGF0ZVVzZXIoKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgICAgLmNhdGNoKGUgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdVc2VyRW50aXR5U2VydmljZSBlbmNvdW50ZXJlZCBhbiBlcnJvcicsIGUpO1xyXG4gICAgICAgICAgICB0aHJvdyBlO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIFNldHMgdGhlIGRlZmF1bHQgdmFsdWVzIG9mIHRoZSBjb25maWcgKi9cclxuICBwcml2YXRlIGdldENvbmZpZ1dpdGhEZWZhdWx0cygpOiBVc2VyRW50aXR5U2VydmljZUNvbmZpZyB7XHJcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLnVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnO1xyXG4gICAgY29uZmlnLnZhbGlkYXRlID0gY29uZmlnLnZhbGlkYXRlIHx8ICgodXNlcjogQXNzZXJ0ZWRVc2VyTW9kZWwpOiBib29sZWFuID0+IHRydWUpO1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiB0cmlwbGUtZXF1YWxzXHJcbiAgICBjb25maWcuZ2V0VXNlck9uSW5pdCA9IGNvbmZpZy5nZXRVc2VyT25Jbml0ID09IHVuZGVmaW5lZCA/IHRydWUgOiBjb25maWcuZ2V0VXNlck9uSW5pdDtcclxuICAgIGNvbmZpZy5pbmNsdWRlTGlua3MgPSBjb25maWcuaW5jbHVkZUxpbmtzID09IHVuZGVmaW5lZCA/IHRydWUgOiBjb25maWcuaW5jbHVkZUxpbmtzO1xyXG4gICAgY29uZmlnLmdldFVzZXJQYXJ0aWFsID0gY29uZmlnLmdldFVzZXJQYXJ0aWFsID09IHVuZGVmaW5lZCA/IHRoaXMuZ2V0VXNlclBhcnRpYWwgOiBjb25maWcuZ2V0VXNlclBhcnRpYWw7XHJcblxyXG4gICAgcmV0dXJuIGNvbmZpZztcclxuICB9XHJcbn1cclxuIl19
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1lbnRpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL3NyYy9saWIvY29yZS9zZXJ2aWNlcy91c2VyLWVudGl0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHN0QsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7QUFFL0UsOEJBQThCO0FBSTlCLE1BQU0sT0FBTyxpQkFBaUI7SUFjNUIsOEJBQThCO0lBQzlCLElBQVksS0FBSztRQUNmLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQVksS0FBSyxDQUFDLEdBQXNCO1FBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFLRDs7Ozs7T0FLRztJQUNILFlBQ21CLFlBQTBCLEVBQzFCLFVBQXNCLEVBQ2tCLHVCQUFnRDtRQUZ4RixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ2tCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUExQjNHLCtCQUErQjtRQUNkLG1CQUFjLEdBQVcsNEJBQTRCLENBQUM7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QUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPQXV0aFNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIGZpcnN0LCBzaGFyZSwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEFzc2VydGVkVXNlck1vZGVsIH0gZnJvbSAnLi4vY2xpZW50LWdlbmVyYXRlZC9tb2RlbC9tb2RlbHMnO1xyXG5pbXBvcnQgeyBVU0VSX0VOVElUWV9TRVJWSUNFX0NPTkZJRyB9IGZyb20gJy4uL21vZGVscy9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBVc2VyRW50aXR5U2VydmljZUNvbmZpZyB9IGZyb20gJy4uL21vZGVscy91c2VyLWVudGl0eS1zZXJ2aWNlLWNvbmZpZyc7XHJcblxyXG4vKiogVGhlIHVzZXIgZW50aXR5IHNlcnZpY2UgKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlckVudGl0eVNlcnZpY2Uge1xyXG5cclxuICAvKiogVGhlIHVzZXIgb2JzZXJ2YWJsZSAqL1xyXG4gIHB1YmxpYyByZWFkb25seSB1c2VyJDogT2JzZXJ2YWJsZTxBc3NlcnRlZFVzZXJNb2RlbD47XHJcblxyXG4gIC8qKiBUcnVlIGlmIHRoZSBzZXJ2aWNlIGlzIGF2YWlsYWJsZSBmb3IgdXNlICovXHJcbiAgcHJpdmF0ZSBpc1NlcnZpY2VBdmFpbGFibGU6IGJvb2xlYW47XHJcblxyXG4gIC8qKiBUaGUgZ2V0IHVzZXIgcGFydGlhbCB1cmwgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IGdldFVzZXJQYXJ0aWFsOiBzdHJpbmcgPSAnYXBpL3VzZXJNYW5hZ2VtZW50L3YxL3VzZXInO1xyXG5cclxuICAvKiogVGhlIHVzZXIgY2FsbCAqL1xyXG4gIHByaXZhdGUgdXNlckNhbGw6IFByb21pc2U8QXJyYXk8QXNzZXJ0ZWRVc2VyTW9kZWw+PjtcclxuXHJcbiAgLyoqIFRoZSB1c2VyIG1vZGVsIGFuZCBoYXNoICovXHJcbiAgcHJpdmF0ZSBnZXQgX3VzZXIoKTogQXNzZXJ0ZWRVc2VyTW9kZWwge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlckJTLnZhbHVlO1xyXG4gIH1cclxuICBwcml2YXRlIHNldCBfdXNlcih2YWw6IEFzc2VydGVkVXNlck1vZGVsKSB7XHJcbiAgICB0aGlzLnVzZXJCUy5uZXh0KHZhbCk7XHJcbiAgfVxyXG5cclxuICAvKiogdGhlIHVzZXIgYmVoYXZpb3Igc3ViamVjdCAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlckJTOiBCZWhhdmlvclN1YmplY3Q8QXNzZXJ0ZWRVc2VyTW9kZWw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBc3NlcnRlZFVzZXJNb2RlbD4odW5kZWZpbmVkKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyB0aGUgc2VydmljZVxyXG4gICAqIEBwYXJhbSBvYXV0aFNlcnZpY2UgVGhlIG9hdXRoIG9pZGMgMiBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIGh0dHBDbGllbnQgVGhlIGh0dHAgY2xpZW50XHJcbiAgICogQHBhcmFtIHVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnIFRoZSB1c2VyIGVudGl0eSBzZXJ2aWNlIGNvbmZpZ3VyYXRpb25zXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9hdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChVU0VSX0VOVElUWV9TRVJWSUNFX0NPTkZJRykgcmVhZG9ubHkgdXNlckVudGl0eVNlcnZpY2VDb25maWc6IFVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnXHJcbiAgKSB7XHJcbiAgICB0aGlzLnVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnID0gIXRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcgPyBuZXcgVXNlckVudGl0eVNlcnZpY2VDb25maWcoKSA6IHRoaXMuZ2V0Q29uZmlnV2l0aERlZmF1bHRzKCk7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLXBhcmFtZXRlci1yZWFzc2lnbm1lbnRcclxuICAgIHRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcudXNlckVudGl0eUJhc2VVcmwgPSB0aGlzLnVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnLnVzZXJFbnRpdHlCYXNlVXJsIHx8ICcvJztcclxuICAgIHRoaXMuZ2V0VXNlclBhcnRpYWwgPSB0aGlzLnVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnLmdldFVzZXJQYXJ0aWFsIHx8IHRoaXMuZ2V0VXNlclBhcnRpYWw7XHJcbiAgICB0aGlzLnVzZXIkID0gdGhpcy51c2VyQlMuYXNPYnNlcnZhYmxlKClcclxuICAgICAgLnBpcGUoZmlsdGVyKHZhbCA9PiAhIXZhbCkpO1xyXG5cclxuICAgIGlmICh0aGlzLnVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnLmdldFVzZXJPbkluaXQpIHtcclxuICAgICAgY29uc3QgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1NlcnZpY2VBdmFpbGFibGUgPSB0aGlzLm9hdXRoU2VydmljZS5oYXNWYWxpZEFjY2Vzc1Rva2VuKCk7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzU2VydmljZUF2YWlsYWJsZSkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmdldFVzZXJGcm9tQXBpKClcclxuICAgICAgICAgIC50aGVuKClcclxuICAgICAgICAgIC5jYXRjaCgpO1xyXG4gICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xyXG4gICAgICB9LCAxMDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEdldHMgdGhlIHVzZXIgKi9cclxuICBwdWJsaWMgYXN5bmMgZ2V0VXNlcigpOiBQcm9taXNlPEFzc2VydGVkVXNlck1vZGVsPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB0aGlzLnVzZXIkLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICBzaGFyZSgpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoZSA9PiB7XHJcbiAgICAgICAgICByZWplY3QoZSk7XHJcblxyXG4gICAgICAgICAgcmV0dXJuIG9mKGUpO1xyXG4gICAgICAgIH0pKVxyXG4gICAgICAgIC5zdWJzY3JpYmUodXNlciA9PiB7XHJcbiAgICAgICAgICByZXNvbHZlKHVzZXIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSB1c2VyXHJcbiAgICogQHBhcmFtIHVzZXIgVGhlIG5ldyB1c2VyIG1vZGVsXHJcbiAgICovXHJcbiAgcHVibGljIGFzeW5jIHVwZGF0ZVVzZXIodXNlcj86IEFzc2VydGVkVXNlck1vZGVsKTogUHJvbWlzZTxBc3NlcnRlZFVzZXJNb2RlbD4ge1xyXG4gICAgaWYgKHVzZXIpIHtcclxuICAgICAgdGhpcy5fdXNlciA9IHVzZXI7XHJcblxyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX3VzZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGF3YWl0IHRoaXMuZ2V0VXNlckZyb21BcGkoKTtcclxuXHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX3VzZXIpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgdXNlciBtZWV0cyB0aGUgdmFsaWRhdGlvbiBmdW5jdGlvbiBwcm92aWRlZCAqL1xyXG4gIHB1YmxpYyB2YWxpZGF0ZVVzZXIoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy51c2VyRW50aXR5U2VydmljZUNvbmZpZyAmJiB0aGlzLl91c2VyKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnLnZhbGlkYXRlKHRoaXMuX3VzZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqIEdldHMgdGhlIHVzZXIgZnJvbSB0aGUgYXBpICovXHJcbiAgcHJpdmF0ZSBhc3luYyBnZXRVc2VyRnJvbUFwaSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vIHVzZSB0aGUgbG9jYWwgcGF0aCBpZiB0aGVyZSBpcyBub3QgYmFzZSBwYXRoIHByb3ZpZGVkXHJcbiAgICByZXR1cm4gdGhpcy5vYXV0aFNlcnZpY2UuZXZlbnRzLnBpcGUoZmlyc3QoZSA9PiBlLnR5cGUgPT09ICdkaXNjb3ZlcnlfZG9jdW1lbnRfbG9hZGVkJykpXHJcbiAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgICAudGhlbihhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgLy8gYXBwZW5kIHRoZSBpc3N1ZXIgdG8gdGhlIGhlYWRlciBvZiB0aGUgcmVxdWVzdCBzbyB0aGUgYXBpIGtub3dzIHdoYXQgdGVuYW50IHRvIHVzZVxyXG4gICAgICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCcsXHJcbiAgICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0aGlzLm9hdXRoU2VydmljZS5nZXRBY2Nlc3NUb2tlbigpfWAsXHJcbiAgICAgICAgICAgICdBdXRob3JpemF0aW9uLVRlbmFudCc6IChcclxuICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLXN0cmluZy1saXRlcmFsXHJcbiAgICAgICAgICAgICAgdGhpcy5vYXV0aFNlcnZpY2VbJ2NvbmZpZyddPy5sb2dpblVybCB8fCB0aGlzLm9hdXRoU2VydmljZVsnY29uZmlnJ10/Lmlzc3VlclxyXG4gICAgICAgICAgICAgIHx8IHRoaXMub2F1dGhTZXJ2aWNlPy5sb2dpblVybCB8fCB0aGlzLm9hdXRoU2VydmljZT8uaXNzdWVyIHx8ICcnKVxyXG4gICAgICAgICAgICAgIC5yZXBsYWNlKCcvYWNjb3VudC9sb2dpbicsICcnKVxyXG4gICAgICAgICAgICAgIC5yZXBsYWNlKCcvY29ubmVjdC9hdXRob3JpemUnLCAnJylcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMudXNlckNhbGwgPSB0aGlzLmh0dHBDbGllbnQuZ2V0PEFycmF5PEFzc2VydGVkVXNlck1vZGVsPj4oXHJcbiAgICAgICAgICBgJHt0aGlzLnVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnLnVzZXJFbnRpdHlCYXNlVXJsfSR7dGhpcy5nZXRVc2VyUGFydGlhbH0/c3ViSWRGcm9tVG9rZW49dHJ1ZSZjcmVhdGVFbXB0eT10cnVlJndpdGhvdXRDaGlsZExpbmtzPSR7IXRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcuaW5jbHVkZUxpbmtzfWAsXHJcbiAgICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICAgIClcclxuICAgICAgICAgIC50b1Byb21pc2UoKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlckNhbGwudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgaWYgKCFyZXMgfHwgcmVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdObyB1c2VyIGVudGl0aWVzIGZvdW5kJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLl91c2VyID0gcmVzWzBdO1xyXG4gICAgICAgICAgdGhpcy52YWxpZGF0ZVVzZXIoKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgICAgLmNhdGNoKGUgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdVc2VyRW50aXR5U2VydmljZSBlbmNvdW50ZXJlZCBhbiBlcnJvcicsIGUpO1xyXG4gICAgICAgICAgICB0aHJvdyBlO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIFNldHMgdGhlIGRlZmF1bHQgdmFsdWVzIG9mIHRoZSBjb25maWcgKi9cclxuICBwcml2YXRlIGdldENvbmZpZ1dpdGhEZWZhdWx0cygpOiBVc2VyRW50aXR5U2VydmljZUNvbmZpZyB7XHJcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLnVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnO1xyXG4gICAgY29uZmlnLnZhbGlkYXRlID0gY29uZmlnLnZhbGlkYXRlIHx8ICgodXNlcjogQXNzZXJ0ZWRVc2VyTW9kZWwpOiBib29sZWFuID0+IHRydWUpO1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiB0cmlwbGUtZXF1YWxzXHJcbiAgICBjb25maWcuZ2V0VXNlck9uSW5pdCA9IGNvbmZpZy5nZXRVc2VyT25Jbml0ID09IHVuZGVmaW5lZCA/IHRydWUgOiBjb25maWcuZ2V0VXNlck9uSW5pdDtcclxuICAgIGNvbmZpZy5pbmNsdWRlTGlua3MgPSBjb25maWcuaW5jbHVkZUxpbmtzID09IHVuZGVmaW5lZCA/IHRydWUgOiBjb25maWcuaW5jbHVkZUxpbmtzO1xyXG4gICAgY29uZmlnLmdldFVzZXJQYXJ0aWFsID0gY29uZmlnLmdldFVzZXJQYXJ0aWFsID09IHVuZGVmaW5lZCA/IHRoaXMuZ2V0VXNlclBhcnRpYWwgOiBjb25maWcuZ2V0VXNlclBhcnRpYWw7XHJcblxyXG4gICAgcmV0dXJuIGNvbmZpZztcclxuICB9XHJcbn1cclxuIl19
|