Repository URL to install this package:
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, ViewChild } from '@angular/core';
import { NGXLogger } from 'web-console-core';
import { WCNotificationCenter, NotificationType } from 'web-console-ui-kit';
import { saveAs } from '@progress/kendo-file-saver';
import { faFileImport, faDownload } from '@fortawesome/free-solid-svg-icons';
import { CountersService } from '@wa-motif-open-api/counters-thresholds-service';
import { WCSubscriptionHandler } from '../../../../components/Commons/wc-subscription-handler';
import { CounterInfosPaneComponent } from './panes/counter-infos-panes/counter-infos-pane-component';
import { ThresholdsPaneComponent } from './panes/thresholds-panes/thresholds-pane-component';
/** @type {?} */
var LOG_TAG = '[CounterInfosDashboard]';
/**
* @record
*/
export function SelectionEvent() { }
if (false) {
/** @type {?} */
SelectionEvent.prototype.counterInfoName;
/** @type {?} */
SelectionEvent.prototype.data;
}
var CounterInfosDashboardComponent = /** @class */ (function () {
function CounterInfosDashboardComponent(logger, notificationCenter, countersService) {
this.logger = logger;
this.notificationCenter = notificationCenter;
this.countersService = countersService;
this.faDownload = faDownload;
this.faFileImport = faFileImport;
this._subHandler = new WCSubscriptionHandler();
}
/**
* @return {?}
*/
CounterInfosDashboardComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
};
/**
* @return {?}
*/
CounterInfosDashboardComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this.logger.debug(LOG_TAG, 'ngOnDestroy ');
this.freeMem();
};
/**
* @return {?}
*/
CounterInfosDashboardComponent.prototype.freeMem = /**
* @return {?}
*/
function () {
this._subHandler.unsubscribe();
};
/**
* @param {?} selectionEvent
* @return {?}
*/
CounterInfosDashboardComponent.prototype.onCounterInfoSelectionChange = /**
* @param {?} selectionEvent
* @return {?}
*/
function (selectionEvent) {
this.selectedCounterInfo = selectionEvent.counterInfoName;
};
/**
* @return {?}
*/
CounterInfosDashboardComponent.prototype.onExportClicked = /**
* @return {?}
*/
function () {
var _this = this;
this.notificationCenter.post({
name: 'CTExport',
title: 'Counters & Thresholds Export',
message: 'Exporting Counters & Thresholds...',
type: NotificationType.Info
});
this._subHandler.add(this.countersService.downloadXml().subscribe((/**
* @param {?} data
* @return {?}
*/
function (data) {
_this.logger.debug(LOG_TAG, 'Export done.', data);
/** @type {?} */
var blob = new Blob([data], { type: 'application/zip' });
/** @type {?} */
var fileName = 'counters_thresholds_' + new Date().getTime() + '.xml';
_this.logger.debug(LOG_TAG, 'Saving to: ', blob);
saveAs(blob, fileName);
// FileSaver.saveAs(blob, fileName);
_this.logger.debug(LOG_TAG, 'Log saved: ', fileName);
_this.notificationCenter.post({
name: 'CTExport',
title: 'Counters & Thresholds Export',
message: 'Counter & Thresholds Exported.',
type: NotificationType.Success
});
}), (/**
* @param {?} error
* @return {?}
*/
function (error) {
_this.logger.error(LOG_TAG, 'Counters & Thresholds export error:', error);
_this.notificationCenter.post({
name: 'CTExportError',
title: 'Counters & Thresholds Export',
message: 'Error exporting Counters & Thresholds:',
type: NotificationType.Error,
error: error,
closable: true
});
})));
};
/**
* @param {?} error
* @return {?}
*/
CounterInfosDashboardComponent.prototype.onUploadCTError = /**
* @param {?} error
* @return {?}
*/
function (error) {
this.notificationCenter.post({
name: 'ImportCTError',
title: 'Import Counters & Thresholds Error',
message: 'Error importing Counters & Thresholds:',
type: NotificationType.Error,
error: error,
closable: true
});
};
/**
* @param {?} event
* @return {?}
*/
CounterInfosDashboardComponent.prototype.uploadCT = /**
* @param {?} event
* @return {?}
*/
function (event) {
var _this = this;
this.logger.debug(LOG_TAG, 'uploadAssetBundle : ', event);
this.notificationCenter.post({
name: 'ImportCTProgress',
title: 'Import Counters & Thresholds',
message: 'Importing Counters & Thresholds...',
type: NotificationType.Info
});
this._subHandler.add(this.countersService.uploadXml(event.file).subscribe((/**
* @param {?} result
* @return {?}
*/
function (result) {
_this._countersPane.onRefreshClicked();
_this.logger.debug(LOG_TAG, 'Bundle uploaded successfully: ', result);
_this.notificationCenter.post({
name: 'UploadBundleSuccess',
title: 'Upload Bundle',
message: 'The bundle has been successfully uploaded.',
type: NotificationType.Success
});
}), (/**
* @param {?} error
* @return {?}
*/
function (error) {
_this.logger.error(LOG_TAG, 'Error uploading bundle: ', error);
_this.notificationCenter.post({
name: 'UploadBundleError',
title: 'Upload Bundle',
message: 'Error uploading bundle:',
type: NotificationType.Error,
error: error,
closable: true
});
})));
};
CounterInfosDashboardComponent.decorators = [
{ type: Component, args: [{
// tslint:disable-next-line:component-selector
selector: 'wa-counter-infos-dashboard-component',
template: "<div class=\"row spread\" title=\"\">\n <div class=\"flex-toolbar\" style=\"display:flex;align-items: center;\">\n <kendo-buttongroup look=\"flat\">\n <button\n kendoButton\n motif-acl=\"com.vipera.osgi.bss.countersthresholds.api.rest.CountersThresholdsApi:UPDATE:uploadXml\"\n [toggleable]=\"false\"\n (click)=\"onExportClicked()\"\n >\n <fa-icon [icon]=\"faDownload\"></fa-icon>Export\n </button>\n <button\n kendoButton\n motif-acl=\"com.vipera.osgi.bss.countersthresholds.api.rest.CountersThresholdsApi:READ:downloadXml\"\n kendofileselect\n tyle=\"file\"\n [toggleable]=\"false\"\n (click)=\"uploadSlideDownPanelEx.toggle()\">\n <fa-icon [icon]=\"faFileImport\"></fa-icon>Import\n </button>\n </kendo-buttongroup>\n </div>\n </div>\n\n<div class=\"row\">\n <wc-upload-panel #uploadSlideDownPanelEx (upload)=\"uploadCT($event)\" (uploadError)=\"onUploadCTError($event)\"></wc-upload-panel>\n</div>\n\n<div class=\"row fill\">\n <kendo-splitter orientation=\"vertical\" style=\"border: none;\">\n \n <kendo-splitter-pane [scrollable]=\"false\" style=\"display:flex;\">\n <wa-counter-infos-pane-component #countersPane [(ngModel)]=\"selectedCounterInfo\" style=\"flex:1;\"></wa-counter-infos-pane-component>\n </kendo-splitter-pane>\n \n <kendo-splitter-pane [scrollable]=\"false\" style=\"display:flex;\">\n <wa-thresholds-pane-component #thresholdsPane [counterInfo]=\"selectedCounterInfo\" style=\"flex:1;\"></wa-thresholds-pane-component>\n </kendo-splitter-pane>\n\n </kendo-splitter>\n\n</div>",
styles: [".tab-sub-section-label{margin-top:10px;padding-top:10px;padding-bottom:10px}"]
}] }
];
/** @nocollapse */
CounterInfosDashboardComponent.ctorParameters = function () { return [
{ type: NGXLogger },
{ type: WCNotificationCenter },
{ type: CountersService }
]; };
CounterInfosDashboardComponent.propDecorators = {
_countersPane: [{ type: ViewChild, args: ['countersPane',] }],
_thresholdsPane: [{ type: ViewChild, args: ['thresholdsPane',] }]
};
return CounterInfosDashboardComponent;
}());
export { CounterInfosDashboardComponent };
if (false) {
/** @type {?} */
CounterInfosDashboardComponent.prototype._countersPane;
/** @type {?} */
CounterInfosDashboardComponent.prototype._thresholdsPane;
/** @type {?} */
CounterInfosDashboardComponent.prototype.faDownload;
/** @type {?} */
CounterInfosDashboardComponent.prototype.faFileImport;
/**
* @type {?}
* @private
*/
CounterInfosDashboardComponent.prototype._subHandler;
/** @type {?} */
CounterInfosDashboardComponent.prototype.selectedCounterInfo;
/**
* @type {?}
* @private
*/
CounterInfosDashboardComponent.prototype.logger;
/**
* @type {?}
* @private
*/
CounterInfosDashboardComponent.prototype.notificationCenter;
/**
* @type {?}
* @private
*/
CounterInfosDashboardComponent.prototype.countersService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRlci1pbmZvcy1kYXNoYm9hcmQtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbW90aWYtd2ViLWFkbWluLWNvcmUvIiwic291cmNlcyI6WyJsaWIvc2VjdGlvbnMvQ291bnRlcnNBbmRUaHJlc2hvbGRzL2NvbXBvbmVudHMvY291bnRlci1pbmZvcy1kYXNoYm9hcmQvY291bnRlci1pbmZvcy1kYXNoYm9hcmQtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFzQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRzVFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdFLE9BQU8sRUFBcUIsZUFBZSxFQUEyQyxNQUFNLGdEQUFnRCxDQUFDO0FBQzdJLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQy9GLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOztJQUV2RixPQUFPLEdBQUcseUJBQXlCOzs7O0FBRXpDLG9DQUdDOzs7SUFGRyx5Q0FBd0I7O0lBQ3hCLDhCQUFTOztBQUdiO0lBa0JJLHdDQUNZLE1BQWlCLEVBQ2pCLGtCQUF3QyxFQUN4QyxlQUFnQztRQUZoQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBc0I7UUFDeEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBVjVDLGVBQVUsR0FBRyxVQUFVLENB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RSx5QkFBeUI7Z0JBQ2xDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO2dCQUM1QixLQUFLLEVBQUUsS0FBSztnQkFDWixRQUFRLEVBQUUsSUFBSTthQUNqQixDQUFDLENBQUM7UUFDUCxDQUFDLEVBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQzs7Z0JBL0hKLFNBQVMsU0FBQzs7b0JBRVAsUUFBUSxFQUFFLHNDQUFzQztvQkFFaEQsd3JEQUF1RDs7aUJBQzFEOzs7O2dCQXhCUSxTQUFTO2dCQUNULG9CQUFvQjtnQkFNRCxlQUFlOzs7Z0NBb0J0QyxTQUFTLFNBQUMsY0FBYztrQ0FDeEIsU0FBUyxTQUFDLGdCQUFnQjs7SUF1SC9CLHFDQUFDO0NBQUEsQUFoSUQsSUFnSUM7U0ExSFksOEJBQThCOzs7SUFFdkMsdURBQW9FOztJQUNwRSx5REFBc0U7O0lBRXRFLG9EQUF3Qjs7SUFDeEIsc0RBQTRCOzs7OztJQUU1QixxREFBeUU7O0lBRXpFLDZEQUF5Qjs7Ozs7SUFHckIsZ0RBQXlCOzs7OztJQUN6Qiw0REFBZ0Q7Ozs7O0lBQ2hELHlEQUF3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksICBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HWExvZ2dlcn0gZnJvbSAnd2ViLWNvbnNvbGUtY29yZSc7XG5pbXBvcnQgeyBXQ05vdGlmaWNhdGlvbkNlbnRlciwgTm90aWZpY2F0aW9uVHlwZSB9IGZyb20gJ3dlYi1jb25zb2xlLXVpLWtpdCc7XG5pbXBvcnQgeyBTZXJ2aWNlQ2F0YWxvZ1NlbGVjdG9yRGlhbG9nQ29tcG9uZW50LCBTZWxlY3Rpb25FdmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvVUkvc2VsZWN0b3JzL3NlcnZpY2UtY2F0YWxvZy1zZWxlY3Rvci9zZXJ2aWNlLWNhdGFsb2ctc2VsZWN0b3ItZGlhbG9nJztcbmltcG9ydCB7IFNlbGVjdGlvbkV2ZW50IGFzIENvdW50ZXJJbmZvU2VsZWN0aW9uRXZlbnQgfSBmcm9tICcuLi9jb3VudGVyLWluZm9zL2NvdW50ZXItaW5mb3MtY29tcG9uZW50J1xuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWZpbGUtc2F2ZXInO1xuaW1wb3J0IHsgV0NVcGxvYWRQYW5lbEV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9VSS93Yy11cGxvYWQtcGFuZWwtY29tcG9uZW50JztcbmltcG9ydCB7IGZhRmlsZUltcG9ydCwgZmFEb3dubG9hZCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBDb3VudGVySW5mb0VudGl0eSwgQ291bnRlcnNTZXJ2aWNlLCBDb3VudGVySW5mbywgQ291bnRlckluZm9VcGRhdGFibGVGaWVsZHMgfSBmcm9tICdAd2EtbW90aWYtb3Blbi1hcGkvY291bnRlcnMtdGhyZXNob2xkcy1zZXJ2aWNlJztcbmltcG9ydCB7IFdDU3Vic2NyaXB0aW9uSGFuZGxlciB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvQ29tbW9ucy93Yy1zdWJzY3JpcHRpb24taGFuZGxlcic7XG5pbXBvcnQgeyBDb3VudGVySW5mb3NQYW5lQ29tcG9uZW50IH0gZnJvbSAnLi9wYW5lcy9jb3VudGVyLWluZm9zLXBhbmVzL2NvdW50ZXItaW5mb3MtcGFuZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhyZXNob2xkc1BhbmVDb21wb25lbnQgfSBmcm9tICcuL3BhbmVzL3RocmVzaG9sZHMtcGFuZXMvdGhyZXNob2xkcy1wYW5lLWNvbXBvbmVudCc7XG5cbmNvbnN0IExPR19UQUcgPSAnW0NvdW50ZXJJbmZvc0Rhc2hib2FyZF0nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdGlvbkV2ZW50IHtcbiAgICBjb3VudGVySW5mb05hbWU6IHN0cmluZztcbiAgICBkYXRhOiBhbnlcbn1cblxuQENvbXBvbmVudCh7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnd2EtY291bnRlci1pbmZvcy1kYXNoYm9hcmQtY29tcG9uZW50JyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb3VudGVyLWluZm9zLWRhc2hib2FyZC1jb21wb25lbnQuc2NzcyddLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb3VudGVyLWluZm9zLWRhc2hib2FyZC1jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQ291bnRlckluZm9zRGFzaGJvYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgQFZpZXdDaGlsZCgnY291bnRlcnNQYW5lJykgX2NvdW50ZXJzUGFuZTogQ291bnRlckluZm9zUGFuZUNvbXBvbmVudDtcbiAgICBAVmlld0NoaWxkKCd0aHJlc2hvbGRzUGFuZScpIF90aHJlc2hvbGRzUGFuZTogVGhyZXNob2xkc1BhbmVDb21wb25lbnQ7XG5cbiAgICBmYURvd25sb2FkID0gZmFEb3dubG9hZDtcbiAgICBmYUZpbGVJbXBvcnQgPSBmYUZpbGVJbXBvcnQ7XG5cbiAgICBwcml2YXRlIF9zdWJIYW5kbGVyOiBXQ1N1YnNjcmlwdGlvbkhhbmRsZXIgPSBuZXcgV0NTdWJzY3JpcHRpb25IYW5kbGVyKCk7XG5cbiAgICBzZWxlY3RlZENvdW50ZXJJbmZvOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBsb2dnZXI6IE5HWExvZ2dlcixcbiAgICAgICAgcHJpdmF0ZSBub3RpZmljYXRpb25DZW50ZXI6IFdDTm90aWZpY2F0aW9uQ2VudGVyLFxuICAgICAgICBwcml2YXRlIGNvdW50ZXJzU2VydmljZTogQ291bnRlcnNTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKExPR19UQUcgLCAnbmdPbkRlc3Ryb3kgJyk7XG4gICAgICAgIHRoaXMuZnJlZU1lbSgpO1xuICAgIH1cblxuICAgIGZyZWVNZW0oKSB7XG4gICAgICAgIHRoaXMuX3N1YkhhbmRsZXIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBvbkNvdW50ZXJJbmZvU2VsZWN0aW9uQ2hhbmdlKHNlbGVjdGlvbkV2ZW50OiBDb3VudGVySW5mb1NlbGVjdGlvbkV2ZW50KXtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENvdW50ZXJJbmZvID0gc2VsZWN0aW9uRXZlbnQuY291bnRlckluZm9OYW1lO1xuICAgIH1cblxuICAgIG9uRXhwb3J0Q2xpY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25DZW50ZXIucG9zdCh7XG4gICAgICAgICAgICBuYW1lOiAnQ1RFeHBvcnQnLFxuICAgICAgICAgICAgdGl0bGU6ICdDb3VudGVycyAmIFRocmVzaG9sZHMgRXhwb3J0JyxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdFeHBvcnRpbmcgQ291bnRlcnMgJiBUaHJlc2hvbGRzLi4uJyxcbiAgICAgICAgICAgIHR5cGU6IE5vdGlmaWNhdGlvblR5cGUuSW5mb1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9zdWJIYW5kbGVyLmFkZCh0aGlzLmNvdW50ZXJzU2VydmljZS5kb3dubG9hZFhtbCgpLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoTE9HX1RBRyAsICdFeHBvcnQgZG9uZS4nLCBkYXRhKTtcblxuICAgICAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtkYXRhXSwge3R5cGU6ICdhcHBsaWNhdGlvbi96aXAnfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGZpbGVOYW1lID0gJ2NvdW50ZXJzX3RocmVzaG9sZHNfJyArIG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgJy54bWwnO1xuXG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhMT0dfVEFHICwgJ1NhdmluZyB0bzogJywgYmxvYik7XG5cbiAgICAgICAgICAgIHNhdmVBcyhibG9iLCBmaWxlTmFtZSk7XG4gICAgICAgICAgICAvLyBGaWxlU2F2ZXIuc2F2ZUFzKGJsb2IsIGZpbGVOYW1lKTtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKExPR19UQUcgLCAnTG9nIHNhdmVkOiAnLCBmaWxlTmFtZSk7XG5cbiAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uQ2VudGVyLnBvc3Qoe1xuICAgICAgICAgICAgICAgIG5hbWU6ICdDVEV4cG9ydCcsXG4gICAgICAgICAgICAgICAgdGl0bGU6ICdDb3VudGVycyAmIFRocmVzaG9sZHMgRXhwb3J0JyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnQ291bnRlciAmIFRocmVzaG9sZHMgRXhwb3J0ZWQuJyxcbiAgICAgICAgICAgICAgICB0eXBlOiBOb3RpZmljYXRpb25UeXBlLlN1Y2Nlc3NcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoTE9HX1RBRyAsICdDb3VudGVycyAmIFRocmVzaG9sZHMgZXhwb3J0IGVycm9yOicsIGVycm9yKTtcblxuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25DZW50ZXIucG9zdCh7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0NURXhwb3J0RXJyb3InLFxuICAgICAgICAgICAgICAgIHRpdGxlOiAnQ291bnRlcnMgJiBUaHJlc2hvbGRzIEV4cG9ydCcsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ0Vycm9yIGV4cG9ydGluZyBDb3VudGVycyAmIFRocmVzaG9sZHM6JyxcbiAgICAgICAgICAgICAgICB0eXBlOiBOb3RpZmljYXRpb25UeXBlLkVycm9yLFxuICAgICAgICAgICAgICAgIGVycm9yOiBlcnJvcixcbiAgICAgICAgICAgICAgICBjbG9zYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIG9uVXBsb2FkQ1RFcnJvcihlcnJvcil7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uQ2VudGVyLnBvc3Qoe1xuICAgICAgICAgICAgbmFtZTogJ0ltcG9ydENURXJyb3InLFxuICAgICAgICAgICAgdGl0bGU6ICdJbXBvcnQgQ291bnRlcnMgJiBUaHJlc2hvbGRzIEVycm9yJyxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdFcnJvciBpbXBvcnRpbmcgQ291bnRlcnMgJiBUaHJlc2hvbGRzOicsXG4gICAgICAgICAgICB0eXBlOiBOb3RpZmljYXRpb25UeXBlLkVycm9yLFxuICAgICAgICAgICAgZXJyb3I6IGVycm9yLFxuICAgICAgICAgICAgY2xvc2FibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdXBsb2FkQ1QoZXZlbnQ6IFdDVXBsb2FkUGFuZWxFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhMT0dfVEFHLCAndXBsb2FkQXNzZXRCdW5kbGUgOiAnLCBldmVudCk7XG5cbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25DZW50ZXIucG9zdCh7XG4gICAgICAgICAgICBuYW1lOiAnSW1wb3J0Q1RQcm9ncmVzcycsXG4gICAgICAgICAgICB0aXRsZTogJ0ltcG9ydCBDb3VudGVycyAmIFRocmVzaG9sZHMnLFxuICAgICAgICAgICAgbWVzc2FnZTogJ0ltcG9ydGluZyBDb3VudGVycyAmIFRocmVzaG9sZHMuLi4nLFxuICAgICAgICAgICAgdHlwZTogTm90aWZpY2F0aW9uVHlwZS5JbmZvXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3N1YkhhbmRsZXIuYWRkKHRoaXMuY291bnRlcnNTZXJ2aWNlLnVwbG9hZFhtbChldmVudC5maWxlKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fY291bnRlcnNQYW5lLm9uUmVmcmVzaENsaWNrZWQoKTtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKExPR19UQUcsICdCdW5kbGUgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5OiAnLCByZXN1bHQpO1xuXG4gICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkNlbnRlci5wb3N0KHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnVXBsb2FkQnVuZGxlU3VjY2VzcycsXG4gICAgICAgICAgICAgICAgdGl0bGU6ICdVcGxvYWQgQnVuZGxlJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnVGhlIGJ1bmRsZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgdXBsb2FkZWQuJyxcbiAgICAgICAgICAgICAgICB0eXBlOiBOb3RpZmljYXRpb25UeXBlLlN1Y2Nlc3NcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoTE9HX1RBRywgJ0Vycm9yIHVwbG9hZGluZyBidW5kbGU6ICcsIGVycm9yKTtcblxuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25DZW50ZXIucG9zdCh7XG4gICAgICAgICAgICAgICAgbmFtZTogJ1VwbG9hZEJ1bmRsZUVycm9yJyxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ1VwbG9hZCBCdW5kbGUnLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdFcnJvciB1cGxvYWRpbmcgYnVuZGxlOicsXG4gICAgICAgICAgICAgICAgdHlwZTogTm90aWZpY2F0aW9uVHlwZS5FcnJvcixcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3IsXG4gICAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KSk7XG4gICAgfVxufVxuIl19