UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

127 lines 21.9 kB
import { Injectable } from '@angular/core'; import { AppContext } from '@microsoft/windows-admin-center-sdk/core/data/app-context'; import { PerformanceTracker } from '@microsoft/windows-admin-center-sdk/core/performance/performance-tracker'; import { SvgResource } from '../directives/svg/svg-resource'; import { ActiveConnectionService } from './active-connection.service'; import { AuthorizationService } from './authorization.service'; import { AzureManagerService } from './azure-manager.service'; import { CimStreamService } from './cim-stream.service'; import { CimService } from './cim.service'; import { ConnectionService } from './connection.service'; import { CredSSPManagerService } from './credssp-manager.service'; import { FileTransferService } from './file-transfer.service'; import { FrameService } from './frame.service'; import { GatewayService } from './gateway.service'; import { Navigation } from './navigation'; import { NodeService } from './node.service'; import { NotificationService } from './notification.service'; import { PowerShellStreamService } from './powershell-stream.service'; import { PowerShellService } from './powershell.service'; import { ResourceService } from './resource.service'; import { RpcService } from './rpc.service'; import { SettingsService } from './settings.service'; import { SshStreamService } from './ssh-stream.service'; import { WorkItemService } from './work-item.service'; import * as i0 from "@angular/core"; import * as i1 from "./active-connection.service"; import * as i2 from "./authorization.service"; import * as i3 from "./azure-manager.service"; import * as i4 from "./cim.service"; import * as i5 from "./cim-stream.service"; import * as i6 from "./connection.service"; import * as i7 from "./credssp-manager.service"; import * as i8 from "./file-transfer.service"; import * as i9 from "./frame.service"; import * as i10 from "./gateway.service"; import * as i11 from "./node.service"; import * as i12 from "./notification.service"; import * as i13 from "./powershell.service"; import * as i14 from "./powershell-stream.service"; import * as i15 from "./resource.service"; import * as i16 from "./rpc.service"; import * as i17 from "./settings.service"; import * as i18 from "./ssh-stream.service"; import * as i19 from "./work-item.service"; /** * The application context service class. */ export class AppContextService extends AppContext { /** * Initializes a new instance of the AppContextService class. * * @param activeConnectionService the active connection service. * @param authorizationService the authorization service. * @param cimService the cim service. * @param cimStreamService the cim stream service. * @param connectionService the connection service. * @param fileTransferService the file transfer service. * @param frameService the frame of window and dialog service. * @param gatewayService the gateway service. * @param nodeService the node service. * @param notificationService the notification service. * @param powerShellService the powerShell service. * @param powerShellStreamService the powerShell stream service. * @param resourceService the resource service. * @param rpcService the Rpc service. * @param settingsService the settingsService service. * @param sshStreamService the SSH stream service. * @param workItemService the work item service. */ constructor(activeConnectionService, authorizationService, azureManagerService, cimService, cimStreamService, connectionService, credSSPManagerService, fileTransferService, frameService, gatewayService, nodeService, notificationService, powerShellService, powerShellStreamService, resourceService, rpcService, settingsService, sshStreamService, workItemService) { super(activeConnectionService, authorizationService, azureManagerService, cimService, cimStreamService, connectionService, credSSPManagerService, fileTransferService, frameService, gatewayService, nodeService, notificationService, powerShellService, powerShellStreamService, resourceService, rpcService, settingsService, sshStreamService, workItemService); this.internalResourceService = resourceService; this.internalAuthorizationService = authorizationService; } /** * Initialize the app context resource from AppModule constructor. * * @param options the app module initialization options. */ initializeModule(options) { PerformanceTracker.appModuleInitialized(); if (options.svgResource) { // register SVG resources to resource service. SvgResource.buildRegister(this.internalResourceService, options.svgResource); } // turn off browser history-push. // RouterLink click in html will push history to the browser at default. Navigation.turnOffHistory(); } /** * Register dialog service with dialog id in navigation service * @param dialogService dialog service to be registered * @param dialogId dialog id associated */ registerDialogService(dialogService, dialogId) { this.internalNavigationService.registerDialogService(dialogService, dialogId); } /** * Initializes the app context resource from ngInit call in AppComponent. * (From module side only, do not call from shell) * @param options the App context initialization options. */ ngInit(options) { PerformanceTracker.appComponentInitialized(); if (options.navigationService) { options.navigationService.initialize(options.navigatorServiceOptions); this.internalNavigationService = options.navigationService; } this.credSSPManager.initialize(this); this.azureManagerService.initialize(); } /** * Destroy the app context resource from ngDestroy call in AppComponent. * (From module side only, do not call from shell) */ ngDestroy() { if (this.internalNavigationService) { this.internalNavigationService.shutdown(); } } } /** @nocollapse */ AppContextService.ɵfac = function AppContextService_Factory(t) { return new (t || AppContextService)(i0.ɵɵinject(i1.ActiveConnectionService), i0.ɵɵinject(i2.AuthorizationService), i0.ɵɵinject(i3.AzureManagerService), i0.ɵɵinject(i4.CimService), i0.ɵɵinject(i5.CimStreamService), i0.ɵɵinject(i6.ConnectionService), i0.ɵɵinject(i7.CredSSPManagerService), i0.ɵɵinject(i8.FileTransferService), i0.ɵɵinject(i9.FrameService), i0.ɵɵinject(i10.GatewayService), i0.ɵɵinject(i11.NodeService), i0.ɵɵinject(i12.NotificationService), i0.ɵɵinject(i13.PowerShellService), i0.ɵɵinject(i14.PowerShellStreamService), i0.ɵɵinject(i15.ResourceService), i0.ɵɵinject(i16.RpcService), i0.ɵɵinject(i17.SettingsService), i0.ɵɵinject(i18.SshStreamService), i0.ɵɵinject(i19.WorkItemService)); }; /** @nocollapse */ AppContextService.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: AppContextService, factory: AppContextService.ɵfac }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AppContextService, [{ type: Injectable }], function () { return [{ type: i1.ActiveConnectionService }, { type: i2.AuthorizationService }, { type: i3.AzureManagerService }, { type: i4.CimService }, { type: i5.CimStreamService }, { type: i6.ConnectionService }, { type: i7.CredSSPManagerService }, { type: i8.FileTransferService }, { type: i9.FrameService }, { type: i10.GatewayService }, { type: i11.NodeService }, { type: i12.NotificationService }, { type: i13.PowerShellService }, { type: i14.PowerShellStreamService }, { type: i15.ResourceService }, { type: i16.RpcService }, { type: i17.SettingsService }, { type: i18.SshStreamService }, { type: i19.WorkItemService }]; }, null); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWNvbnRleHQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL3NlcnZpY2UvYXBwLWNvbnRleHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUN2RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUU5RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixD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Q0FBQzs7cUdBM0hRLGlCQUFpQjtzR0FBakIsaUJBQWlCLFdBQWpCLGlCQUFpQjt1RkFBakIsaUJBQWlCO2NBSjdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFwcENvbnRleHQgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2RhdGEvYXBwLWNvbnRleHQnO1xyXG5pbXBvcnQgeyBQZXJmb3JtYW5jZVRyYWNrZXIgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL3BlcmZvcm1hbmNlL3BlcmZvcm1hbmNlLXRyYWNrZXInO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vY29udHJvbHMvZGlhbG9nL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ZnUmVzb3VyY2UgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3N2Zy9zdmctcmVzb3VyY2UnO1xyXG5pbXBvcnQgeyBBY3RpdmVDb25uZWN0aW9uU2VydmljZSB9IGZyb20gJy4vYWN0aXZlLWNvbm5lY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhvcml6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9hdXRob3JpemF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBenVyZU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9henVyZS1tYW5hZ2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDaW1TdHJlYW1TZXJ2aWNlIH0gZnJvbSAnLi9jaW0tc3RyZWFtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDaW1TZXJ2aWNlIH0gZnJvbSAnLi9jaW0uc2VydmljZSc7XHJcbmltcG9ydCB7IENvbm5lY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9jb25uZWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDcmVkU1NQTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL2NyZWRzc3AtbWFuYWdlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmlsZVRyYW5zZmVyU2VydmljZSB9IGZyb20gJy4vZmlsZS10cmFuc2Zlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRnJhbWVTZXJ2aWNlIH0gZnJvbSAnLi9mcmFtZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR2F0ZXdheVNlcnZpY2UgfSBmcm9tICcuL2dhdGV3YXkuc2VydmljZSc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb24gfSBmcm9tICcuL25hdmlnYXRpb24nO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSwgTmF2aWdhdG9yU2VydmljZU9wdGlvbnMgfSBmcm9tICcuL25hdmlnYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IE5vZGVTZXJ2aWNlIH0gZnJvbSAnLi9ub2RlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9ub3RpZmljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFBvd2VyU2hlbGxTdHJlYW1TZXJ2aWNlIH0gZnJvbSAnLi9wb3dlcnNoZWxsLXN0cmVhbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUG93ZXJTaGVsbFNlcnZpY2UgfSBmcm9tICcuL3Bvd2Vyc2hlbGwuc2VydmljZSc7XHJcbmltcG9ydCB7IFJlc291cmNlU2VydmljZSB9IGZyb20gJy4vcmVzb3VyY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFJwY1NlcnZpY2UgfSBmcm9tICcuL3JwYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi9zZXR0aW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3NoU3RyZWFtU2VydmljZSB9IGZyb20gJy4vc3NoLXN0cmVhbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgV29ya0l0ZW1TZXJ2aWNlIH0gZnJvbSAnLi93b3JrLWl0ZW0uc2VydmljZSc7XHJcblxyXG4vKipcclxuICogVGhlIGluaXRpYWxpemF0aW9uIGNvbnRleHQgdG8gQXBwTW9kdWxlLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBBcHBNb2R1bGVJbml0aWFsaXphdGlvbiB7XHJcbiAgICAvKipcclxuICAgICAqIFRoZSBzdmcgcmVzb3VyY2UgdG8gcmVnaXN0ZXIuXHJcbiAgICAgKi9cclxuICAgIHN2Z1Jlc291cmNlPzogYW55O1xyXG59XHJcblxyXG4vKipcclxuICogVGhlIGluaXRpYWxpemF0aW9uIGNvbnRleHQgdG8gQXBwQ29tcG9uZW50LlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBBcHBDb21wb25lbnRJbml0aWFsaXphdGlvbiB7XHJcbiAgICAvKipcclxuICAgICAqIFRoZSBkaWFsb2cgc2VydmljZS5cclxuICAgICAqL1xyXG4gICAgZGlhbG9nU2VydmljZT86IERpYWxvZ1NlcnZpY2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbmF2aWdhdGlvbiBzZXJ2aWNlIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBuYXZpZ2F0aW9uU2VydmljZT86IE5hdmlnYXRpb25TZXJ2aWNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG9wdGlvbnMgZm9yIG5hdmlnYXRpb24gc2VydmljZS5cclxuICAgICAqL1xyXG4gICAgbmF2aWdhdG9yU2VydmljZU9wdGlvbnM/OiBOYXZpZ2F0b3JTZXJ2aWNlT3B0aW9ucztcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG4vKipcclxuICogVGhlIGFwcGxpY2F0aW9uIGNvbnRleHQgc2VydmljZSBjbGFzcy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBBcHBDb250ZXh0U2VydmljZSBleHRlbmRzIEFwcENvbnRleHQge1xyXG4gICAgcHJpdmF0ZSBpbnRlcm5hbFJlc291cmNlU2VydmljZTogUmVzb3VyY2VTZXJ2aWNlO1xyXG4gICAgcHJpdmF0ZSBpbnRlcm5hbEF1dGhvcml6YXRpb25TZXJ2aWNlOiBBdXRob3JpemF0aW9uU2VydmljZTtcclxuICAgIHByaXZhdGUgaW50ZXJuYWxOYXZpZ2F0aW9uU2VydmljZTogTmF2aWdhdGlvblNlcnZpY2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgQXBwQ29udGV4dFNlcnZpY2UgY2xhc3MuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGFjdGl2ZUNvbm5lY3Rpb25TZXJ2aWNlIHRoZSBhY3RpdmUgY29ubmVjdGlvbiBzZXJ2aWNlLlxyXG4gICAgICogQHBhcmFtIGF1dGhvcml6YXRpb25TZXJ2aWNlIHRoZSBhdXRob3JpemF0aW9uIHNlcnZpY2UuXHJcbiAgICAgKiBAcGFyYW0gY2ltU2VydmljZSB0aGUgY2ltIHNlcnZpY2UuXHJcbiAgICAgKiBAcGFyYW0gY2ltU3RyZWFtU2VydmljZSB0aGUgY2ltIHN0cmVhbSBzZXJ2aWNlLlxyXG4gICAgICogQHBhcmFtIGNvbm5lY3Rpb25TZXJ2aWNlIHRoZSBjb25uZWN0aW9uIHNlcnZpY2UuXHJcbiAgICAgKiBAcGFyYW0gZmlsZVRyYW5zZmVyU2VydmljZSB0aGUgZmlsZSB0cmFuc2ZlciBzZXJ2aWNlLlxyXG4gICAgICogQHBhcmFtIGZyYW1lU2VydmljZSB0aGUgZnJhbWUgb2Ygd2luZG93IGFuZCBkaWFsb2cgc2VydmljZS5cclxuICAgICAqIEBwYXJhbSBnYXRld2F5U2VydmljZSB0aGUgZ2F0ZXdheSBzZXJ2aWNlLlxyXG4gICAgICogQHBhcmFtIG5vZGVTZXJ2aWNlIHRoZSBub2RlIHNlcnZpY2UuXHJcbiAgICAgKiBAcGFyYW0gbm90aWZpY2F0aW9uU2VydmljZSB0aGUgbm90aWZpY2F0aW9uIHNlcnZpY2UuXHJcbiAgICAgKiBAcGFyYW0gcG93ZXJTaGVsbFNlcnZpY2UgdGhlIHBvd2VyU2hlbGwgc2VydmljZS5cclxuICAgICAqIEBwYXJhbSBwb3dlclNoZWxsU3RyZWFtU2VydmljZSB0aGUgcG93ZXJTaGVsbCBzdHJlYW0gc2VydmljZS5cclxuICAgICAqIEBwYXJhbSByZXNvdXJjZVNlcnZpY2UgdGhlIHJlc291cmNlIHNlcnZpY2UuXHJcbiAgICAgKiBAcGFyYW0gcnBjU2VydmljZSB0aGUgUnBjIHNlcnZpY2UuXHJcbiAgICAgKiBAcGFyYW0gc2V0dGluZ3NTZXJ2aWNlIHRoZSBzZXR0aW5nc1NlcnZpY2Ugc2VydmljZS5cclxuICAgICAqIEBwYXJhbSBzc2hTdHJlYW1TZXJ2aWNlIHRoZSBTU0ggc3RyZWFtIHNlcnZpY2UuXHJcbiAgICAgKiBAcGFyYW0gd29ya0l0ZW1TZXJ2aWNlIHRoZSB3b3JrIGl0ZW0gc2VydmljZS5cclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgYWN0aXZlQ29ubmVjdGlvblNlcnZpY2U6IEFjdGl2ZUNvbm5lY3Rpb25TZXJ2aWNlLFxyXG4gICAgICAgIGF1dGhvcml6YXRpb25TZXJ2aWNlOiBBdXRob3JpemF0aW9uU2VydmljZSxcclxuICAgICAgICBhenVyZU1hbmFnZXJTZXJ2aWNlOiBBenVyZU1hbmFnZXJTZXJ2aWNlLFxyXG4gICAgICAgIGNpbVNlcnZpY2U6IENpbVNlcnZpY2UsXHJcbiAgICAgICAgY2ltU3RyZWFtU2VydmljZTogQ2ltU3RyZWFtU2VydmljZSxcclxuICAgICAgICBjb25uZWN0aW9uU2VydmljZTogQ29ubmVjdGlvblNlcnZpY2UsXHJcbiAgICAgICAgY3JlZFNTUE1hbmFnZXJTZXJ2aWNlOiBDcmVkU1NQTWFuYWdlclNlcnZpY2UsXHJcbiAgICAgICAgZmlsZVRyYW5zZmVyU2VydmljZTogRmlsZVRyYW5zZmVyU2VydmljZSxcclxuICAgICAgICBmcmFtZVNlcnZpY2U6IEZyYW1lU2VydmljZSxcclxuICAgICAgICBnYXRld2F5U2VydmljZTogR2F0ZXdheVNlcnZpY2UsXHJcbiAgICAgICAgbm9kZVNlcnZpY2U6IE5vZGVTZXJ2aWNlLFxyXG4gICAgICAgIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcG93ZXJTaGVsbFNlcnZpY2U6IFBvd2VyU2hlbGxTZXJ2aWNlLFxyXG4gICAgICAgIHBvd2VyU2hlbGxTdHJlYW1TZXJ2aWNlOiBQb3dlclNoZWxsU3RyZWFtU2VydmljZSxcclxuICAgICAgICByZXNvdXJjZVNlcnZpY2U6IFJlc291cmNlU2VydmljZSxcclxuICAgICAgICBycGNTZXJ2aWNlOiBScGNTZXJ2aWNlLFxyXG4gICAgICAgIHNldHRpbmdzU2VydmljZTogU2V0dGluZ3NTZXJ2aWNlLFxyXG4gICAgICAgIHNzaFN0cmVhbVNlcnZpY2U6IFNzaFN0cmVhbVNlcnZpY2UsXHJcbiAgICAgICAgd29ya0l0ZW1TZXJ2aWNlOiBXb3JrSXRlbVNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKFxyXG4gICAgICAgICAgICBhY3RpdmVDb25uZWN0aW9uU2VydmljZSxcclxuICAgICAgICAgICAgYXV0aG9yaXphdGlvblNlcnZpY2UsXHJcbiAgICAgICAgICAgIGF6dXJlTWFuYWdlclNlcnZpY2UsXHJcbiAgICAgICAgICAgIGNpbVNlcnZpY2UsXHJcbiAgICAgICAgICAgIGNpbVN0cmVhbVNlcnZpY2UsXHJcbiAgICAgICAgICAgIGNvbm5lY3Rpb25TZXJ2aWNlLFxyXG4gICAgICAgICAgICBjcmVkU1NQTWFuYWdlclNlcnZpY2UsXHJcbiAgICAgICAgICAgIGZpbGVUcmFuc2ZlclNlcnZpY2UsXHJcbiAgICAgICAgICAgIGZyYW1lU2VydmljZSxcclxuICAgICAgICAgICAgZ2F0ZXdheVNlcnZpY2UsXHJcbiAgICAgICAgICAgIG5vZGVTZXJ2aWNlLFxyXG4gICAgICAgICAgICBub3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgICAgICBwb3dlclNoZWxsU2VydmljZSxcclxuICAgICAgICAgICAgcG93ZXJTaGVsbFN0cmVhbVNlcnZpY2UsXHJcbiAgICAgICAgICAgIHJlc291cmNlU2VydmljZSxcclxuICAgICAgICAgICAgcnBjU2VydmljZSxcclxuICAgICAgICAgICAgc2V0dGluZ3NTZXJ2aWNlLFxyXG4gICAgICAgICAgICBzc2hTdHJlYW1TZXJ2aWNlLFxyXG4gICAgICAgICAgICB3b3JrSXRlbVNlcnZpY2VcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmludGVybmFsUmVzb3VyY2VTZXJ2aWNlID0gcmVzb3VyY2VTZXJ2aWNlO1xyXG4gICAgICAgIHRoaXMuaW50ZXJuYWxBdXRob3JpemF0aW9uU2VydmljZSA9IGF1dGhvcml6YXRpb25TZXJ2aWNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdGlhbGl6ZSB0aGUgYXBwIGNvbnRleHQgcmVzb3VyY2UgZnJvbSBBcHBNb2R1bGUgY29uc3RydWN0b3IuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMgdGhlIGFwcCBtb2R1bGUgaW5pdGlhbGl6YXRpb24gb3B0aW9ucy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGluaXRpYWxpemVNb2R1bGUob3B0aW9uczogQXBwTW9kdWxlSW5pdGlhbGl6YXRpb24pOiB2b2lkIHtcclxuICAgICAgICBQZXJmb3JtYW5jZVRyYWNrZXIuYXBwTW9kdWxlSW5pdGlhbGl6ZWQoKTtcclxuICAgICAgICBpZiAob3B0aW9ucy5zdmdSZXNvdXJjZSkge1xyXG4gICAgICAgICAgICAvLyByZWdpc3RlciBTVkcgcmVzb3VyY2VzIHRvIHJlc291cmNlIHNlcnZpY2UuXHJcbiAgICAgICAgICAgIFN2Z1Jlc291cmNlLmJ1aWxkUmVnaXN0ZXIodGhpcy5pbnRlcm5hbFJlc291cmNlU2VydmljZSwgb3B0aW9ucy5zdmdSZXNvdXJjZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB0dXJuIG9mZiBicm93c2VyIGhpc3RvcnktcHVzaC5cclxuICAgICAgICAvLyBSb3V0ZXJMaW5rIGNsaWNrIGluIGh0bWwgd2lsbCBwdXNoIGhpc3RvcnkgdG8gdGhlIGJyb3dzZXIgYXQgZGVmYXVsdC5cclxuICAgICAgICBOYXZpZ2F0aW9uLnR1cm5PZmZIaXN0b3J5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZWdpc3RlciBkaWFsb2cgc2VydmljZSB3aXRoIGRpYWxvZyBpZCBpbiBuYXZpZ2F0aW9uIHNlcnZpY2VcclxuICAgICAqIEBwYXJhbSBkaWFsb2dTZXJ2aWNlIGRpYWxvZyBzZXJ2aWNlIHRvIGJlIHJlZ2lzdGVyZWRcclxuICAgICAqIEBwYXJhbSBkaWFsb2dJZCBkaWFsb2cgaWQgYXNzb2NpYXRlZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJEaWFsb2dTZXJ2aWNlKGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsIGRpYWxvZ0lkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmludGVybmFsTmF2aWdhdGlvblNlcnZpY2UucmVnaXN0ZXJEaWFsb2dTZXJ2aWNlKGRpYWxvZ1NlcnZpY2UsIGRpYWxvZ0lkKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIHRoZSBhcHAgY29udGV4dCByZXNvdXJjZSBmcm9tIG5nSW5pdCBjYWxsIGluIEFwcENvbXBvbmVudC5cclxuICAgICAqIChGcm9tIG1vZHVsZSBzaWRlIG9ubHksIGRvIG5vdCBjYWxsIGZyb20gc2hlbGwpXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyB0aGUgQXBwIGNvbnRleHQgaW5pdGlhbGl6YXRpb24gb3B0aW9ucy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nSW5pdChvcHRpb25zOiBBcHBDb21wb25lbnRJbml0aWFsaXphdGlvbik6IHZvaWQge1xyXG4gICAgICAgIFBlcmZvcm1hbmNlVHJhY2tlci5hcHBDb21wb25lbnRJbml0aWFsaXplZCgpO1xyXG4gICAgICAgIGlmIChvcHRpb25zLm5hdmlnYXRpb25TZXJ2aWNlKSB7XHJcbiAgICAgICAgICAgIG9wdGlvbnMubmF2aWdhdGlvblNlcnZpY2UuaW5pdGlhbGl6ZShvcHRpb25zLm5hdmlnYXRvclNlcnZpY2VPcHRpb25zKTtcclxuICAgICAgICAgICAgdGhpcy5pbnRlcm5hbE5hdmlnYXRpb25TZXJ2aWNlID0gb3B0aW9ucy5uYXZpZ2F0aW9uU2VydmljZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuY3JlZFNTUE1hbmFnZXIuaW5pdGlhbGl6ZSh0aGlzKTtcclxuICAgICAgICB0aGlzLmF6dXJlTWFuYWdlclNlcnZpY2UuaW5pdGlhbGl6ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVzdHJveSB0aGUgYXBwIGNvbnRleHQgcmVzb3VyY2UgZnJvbSBuZ0Rlc3Ryb3kgY2FsbCBpbiBBcHBDb21wb25lbnQuXHJcbiAgICAgKiAoRnJvbSBtb2R1bGUgc2lkZSBvbmx5LCBkbyBub3QgY2FsbCBmcm9tIHNoZWxsKVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdEZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmludGVybmFsTmF2aWdhdGlvblNlcnZpY2UpIHtcclxuICAgICAgICAgICAgdGhpcy5pbnRlcm5hbE5hdmlnYXRpb25TZXJ2aWNlLnNodXRkb3duKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==