@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
127 lines • 21.9 kB
JavaScript
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==