UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

749 lines (748 loc) 51.8 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import * as tslib_1 from "tslib"; import { Component, ElementRef, Input, Output, EventEmitter, Type } from '@angular/core'; import { AbstractFloatingHeaderPanel } from './AbstractFloatingHeaderPanel'; import { NeedFocusService } from '../../service/NeedFocusService.service'; import { Option } from '../../decorator/Option.decorator'; import { I18N } from '../../decorator/I18N.decorator'; var /** @type {?} */ TYPE_NAME = "phx-component-floating-header-panel"; var /** @type {?} */ ANIMATE_MOVE_UP = "animate-move-up"; var /** @type {?} */ ANIMATE_MOVE_UP_CLASS = "." + ANIMATE_MOVE_UP; var /** @type {?} */ ANIMATE_OPACITY = "animate-opacity"; var /** @type {?} */ ANIMATE_OPACITY_CLASS = "." + ANIMATE_OPACITY; var /** @type {?} */ ANIMATE_LABEL_HEADER = "animate-label-header"; var /** @type {?} */ ANIMATE_LABEL_HEADER_CLASS = "." + ANIMATE_LABEL_HEADER; var ComponentFloatingHeaderPanel = /** @class */ (function (_super) { tslib_1.__extends(ComponentFloatingHeaderPanel, _super); function ComponentFloatingHeaderPanel(elementRef, needFocusService) { var _this = _super.call(this, elementRef, needFocusService) || this; _this.scroll = function (event) { var /** @type {?} */ scrollTop = $(event.target).scrollTop(); var /** @type {?} */ bodyY = (_this.getScrollOffsetEnd() === null || _this.getScrollOffsetEnd() === undefined) ? $(_this.getBodyInstance().elementRef.nativeElement).position().top - _this.getScrollOffsetStart() : _this.getScrollOffsetEnd() - _this.getScrollOffsetStart(); if (scrollTop <= bodyY) { $(_this.elementRef.nativeElement).find(ANIMATE_LABEL_HEADER_CLASS).css({ 'margin-top': (_this.heightFloating - _this.heightFloating * (scrollTop / bodyY)) + 'px', 'opacity': (scrollTop / bodyY) + '' }); $(_this.elementRef.nativeElement).find(ANIMATE_LABEL_HEADER_CLASS).css({ 'margin-top': (_this.heightFloating - _this.heightFloating * (scrollTop / bodyY)) + 'px', 'opacity': (scrollTop / bodyY) + '' }); $(_this.elementRef.nativeElement).find(ANIMATE_MOVE_UP_CLASS).css({ 'margin-top': (_this.heightFloating - _this.heightFloating * (scrollTop / bodyY)) + 'px', }); $(_this.elementRef.nativeElement).find(ANIMATE_OPACITY_CLASS).css({ 'opacity': (scrollTop / bodyY) + '' }); } else { $(_this.elementRef.nativeElement).find(ANIMATE_LABEL_HEADER_CLASS).css({ 'margin-top': '0px', 'opacity': '1' }); $(_this.elementRef.nativeElement).find(ANIMATE_MOVE_UP_CLASS).css({ 'margin-top': '0px', }); $(_this.elementRef.nativeElement).find(ANIMATE_OPACITY_CLASS).css({ 'opacity': '1' }); } _this.onScroll(event); }; _this.elementRef = elementRef; _this.setAlwaysShowHeader(false); // this.floatingHeaderHandler = (event: any) => { // this.floatingHeaderInstance = event.instance; // }; // this.floatingHeaderHandler = (event: any) => { // this.floatingHeaderInstance = event.instance; // }; _this._headerHandler = function (event) { _this.headerInstance = event.instance; if (_this.headerHandler !== null && typeof _this.headerHandler === 'function') { _this.headerHandler(event); } }; _this._floatingMenuHandler = function (event) { _this.floatingMenuInstance = event.instance; if (_this.floatingMenuHandler !== null && typeof _this.floatingMenuHandler === 'function') { _this.floatingMenuHandler(event); } }; _this._bodyHandler = function (event) { _this.bodyInstance = event.instance; if (_this.bodyHandler !== null && typeof _this.bodyHandler === 'function') { _this.bodyHandler(event); } }; return _this; } /** * @return {?} */ ComponentFloatingHeaderPanel.prototype.ngOnInit = /** * @return {?} */ function () { var _this = this; _super.prototype.ngOnInit.call(this); setTimeout(function () { window.addEventListener('scroll', _this.scroll, true); _this.setScrollOffsetStart(53); _this.heightFloating = 82; }, 50); }; /** * @return {?} */ ComponentFloatingHeaderPanel.prototype.ngOnDestroy = /** * @return {?} */ function () { window.removeEventListener('scroll', this.scroll, true); }; /** * @param {?} inputValue * @param {?} results * @return {?} */ ComponentFloatingHeaderPanel.prototype.onValidationEnd = /** * @param {?} inputValue * @param {?} results * @return {?} */ function (inputValue, results) { }; /** * @param {?} data * @param {?} inputVal * @return {?} */ ComponentFloatingHeaderPanel.prototype.onDataChange = /** * @param {?} data * @param {?} inputVal * @return {?} */ function (data, inputVal) { }; /** * @param {?} $event * @return {?} */ ComponentFloatingHeaderPanel.prototype.doFocus = /** * @param {?} $event * @return {?} */ function ($event) { }; /** * @param {?} $event * @return {?} */ ComponentFloatingHeaderPanel.prototype.doLostFocus = /** * @param {?} $event * @return {?} */ function ($event) { }; /** * @return {?} */ ComponentFloatingHeaderPanel.prototype.isSelfDataDirty = /** * @return {?} */ function () { return false; }; /** * @param {?} data * @return {?} */ ComponentFloatingHeaderPanel.prototype.selfSaveData = /** * @param {?} data * @return {?} */ function (data) { }; /** * @return {?} */ ComponentFloatingHeaderPanel.prototype.selfResetData = /** * @return {?} */ function () { }; /** * @return {?} */ ComponentFloatingHeaderPanel.prototype.getFloatingHeaderLabel = /** * @return {?} */ function () { return this.floatingHeaderLabel; }; /** * @param {?} floatingHeaderLabel * @return {?} */ ComponentFloatingHeaderPanel.prototype.setFloatingHeaderLabel = /** * @param {?} floatingHeaderLabel * @return {?} */ function (floatingHeaderLabel) { this.floatingHeaderLabel = floatingHeaderLabel; }; /** * @return {?} */ ComponentFloatingHeaderPanel.prototype.getHeaderType = /** * @return {?} */ function () { return this.headerType; }; /** * @param {?} headerType * @return {?} */ ComponentFloatingHeaderPanel.prototype.setHeaderType = /** * @param {?} headerType * @return {?} */ function (headerType) { this.headerType = headerType; }; /** * @return {?} */ ComponentFloatingHeaderPanel.prototype.getFloatingMenuType = /** * @return {?} */ function () { return this.floatingMenuType; }; /** * @param {?} floatingMenuType * @return {?} */ ComponentFloatingHeaderPanel.prototype.setFloatingMenuType = /** * @param {?} floatingMenuType * @return {?} */ function (floatingMenuType) { this.floatingMenuType = floatingMenuType; }; /** * @return {?} */ ComponentFloatingHeaderPanel.prototype.getBodyType = /** * @return {?} */ function () { return this.bodyType; }; /** * @param {?} bodyType * @return {?} */ ComponentFloatingHeaderPanel.prototype.setBodyType = /** * @param {?} bodyType * @return {?} */ function (bodyType) { this.bodyType = bodyType; }; /** * @return {?} */ ComponentFloatingHeaderPanel.prototype.getHeaderModel = /** * @return {?} */ function () { return this.headerModel; }; /** * @param {?} headerModel * @return {?} */ ComponentFloatingHeaderPanel.prototype.setHeaderModel = /** * @param {?} headerModel * @return {?} */ function (headerModel) { this.headerModel = headerModel; }; /** * @return {?} */ ComponentFloatingHeaderPanel.prototype.getFloatingMenuModel = /** * @return {?} */ function () { return this.floatingMenuModel; }; /** * @param {?} floatingMenuModel * @return {?} */ ComponentFloatingHeaderPanel.prototype.setFloatingMenuModel = /** * @param {?} floatingMenuModel * @return {?} */ function (floatingMenuModel) { this.floatingMenuModel = floatingMenuModel; }; /** * @return {?} */ ComponentFloatingHeaderPanel.prototype.getBodyModel = /** * @return {?} */ function () { return this.bodyModel; }; /** * @param {?} bodyModel * @return {?} */ ComponentFloatingHeaderPanel.prototype.setBodyModel = /** * @param {?} bodyModel * @return {?} */ function (bodyModel) { this.bodyModel = bodyModel; }; /** * @param {?} headerInstance * @return {?} */ ComponentFloatingHeaderPanel.prototype.setHeaderInstance = /** * @param {?} headerInstance * @return {?} */ function (headerInstance) { this.headerInstance = headerInstance; }; /** * @return {?} */ ComponentFloatingHeaderPanel.prototype.getHeaderInstance = /** * @return {?} */ function () { return this.headerInstance; }; /** * @param {?} floatingMenuInstance * @return {?} */ ComponentFloatingHeaderPanel.prototype.setFloatingMenuInstance = /** * @param {?} floatingMenuInstance * @return {?} */ function (floatingMenuInstance) { this.floatingMenuInstance = floatingMenuInstance; }; /** * @return {?} */ ComponentFloatingHeaderPanel.prototype.getFloatingMenuInstance = /** * @return {?} */ function () { return this.floatingMenuInstance; }; /** * @param {?} bodyInstance * @return {?} */ ComponentFloatingHeaderPanel.prototype.setBodyInstance = /** * @param {?} bodyInstance * @return {?} */ function (bodyInstance) { this.bodyInstance = bodyInstance; }; /** * @return {?} */ ComponentFloatingHeaderPanel.prototype.getBodyInstance = /** * @return {?} */ function () { return this.bodyInstance; }; /** * @return {?} */ ComponentFloatingHeaderPanel.prototype.getHeaderHandler = /** * @return {?} */ function () { return this.headerHandler; }; /** * @param {?} headerHandler * @return {?} */ ComponentFloatingHeaderPanel.prototype.setHeaderHandler = /** * @param {?} headerHandler * @return {?} */ function (headerHandler) { this.headerHandler = headerHandler; }; /** * @return {?} */ ComponentFloatingHeaderPanel.prototype.getFloatingMenuHandler = /** * @return {?} */ function () { return this.floatingMenuHandler; }; /** * @param {?} floatingMenuHandler * @return {?} */ ComponentFloatingHeaderPanel.prototype.setFloatingMenuHandler = /** * @param {?} floatingMenuHandler * @return {?} */ function (floatingMenuHandler) { this.floatingMenuHandler = floatingMenuHandler; }; /** * @return {?} */ ComponentFloatingHeaderPanel.prototype.getBodyHandler = /** * @return {?} */ function () { return this.bodyHandler; }; /** * @param {?} bodyHandler * @return {?} */ ComponentFloatingHeaderPanel.prototype.setBodyHandler = /** * @param {?} bodyHandler * @return {?} */ function (bodyHandler) { this.bodyHandler = bodyHandler; }; ComponentFloatingHeaderPanel.TYPE_NAME = TYPE_NAME; ComponentFloatingHeaderPanel.decorators = [ { type: Component, args: [{ moduleId: module.id, selector: TYPE_NAME, template: "<div class=\"phx-component-floating-header-panel\">\n <div class=\"floating-header-panel-container\">\n <phx-component-wrapper\n [type]=\"getHeaderType()\"\n [data]=\"getData()\"\n [handler]=\"_headerHandler\"\n [dataParent]=\"this\"\n [model]=\"getHeaderModel()\">\n </phx-component-wrapper>\n <phx-component-wrapper\n [type]=\"getFloatingMenuType()\"\n [data]=\"getData()\"\n [handler]=\"_floatingMenuHandler\"\n [dataParent]=\"this\"\n [model]=\"getFloatingMenuModel()\">\n </phx-component-wrapper>\n <phx-component-wrapper\n [type]=\"getBodyType()\"\n [data]=\"getData()\"\n [handler]=\"_bodyHandler\"\n [dataParent]=\"this\"\n [model]=\"getBodyModel()\">\n </phx-component-wrapper>\n </div>\n</div>\n" },] }, ]; /** @nocollapse */ ComponentFloatingHeaderPanel.ctorParameters = function () { return [ { type: ElementRef, }, { type: NeedFocusService, }, ]; }; ComponentFloatingHeaderPanel.propDecorators = { "dataParent": [{ type: Input },], "ignoreParentData": [{ type: Input },], "data": [{ type: Input },], "ignoreParentDisabled": [{ type: Input },], "delegateHistory": [{ type: Input },], "onDisabled": [{ type: Input },], "onEnabled": [{ type: Input },], "loadingEnabled": [{ type: Input },], "i18nKey": [{ type: Input },], "bypass": [{ type: Input, args: ['i18nBypass',] },], "options": [{ type: Input },], "disabled": [{ type: Input },], "field": [{ type: Input },], "name": [{ type: Input },], "typeOfData": [{ type: Input },], "readOnly": [{ type: Input },], "help": [{ type: Input },], "scrollOffset": [{ type: Input },], "allowShowFloatingHeaderPanel": [{ type: Input },], "floatingHeaderLabel": [{ type: Input },], "headerType": [{ type: Input },], "headerModel": [{ type: Input },], "headerHandler": [{ type: Input },], "floatingMenuType": [{ type: Input },], "floatingMenuModel": [{ type: Input },], "floatingMenuHandler": [{ type: Input },], "bodyType": [{ type: Input },], "bodyModel": [{ type: Input },], "bodyHandler": [{ type: Input },], "loadEvent": [{ type: Output, args: ['phxLoad',] },], "startValidateEvent": [{ type: Output, args: ['phxStartValidate',] },], "endValidateEvent": [{ type: Output, args: ['phxEndValidate',] },], "beforeFocusEvent": [{ type: Output, args: ['phxBeforeFocus',] },], "focusEvent": [{ type: Output, args: ['phxFocus',] },], "beforeLostFocusEvent": [{ type: Output, args: ['phxBeforeLostFocus',] },], "lostFocusEvent": [{ type: Output, args: ['phxLostFocus',] },], "beforeChangeEvent": [{ type: Output, args: ['phxBeforeChange',] },], "changeEvent": [{ type: Output, args: ['phxChange',] },], }; tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Object) ], ComponentFloatingHeaderPanel.prototype, "dataParent", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], ComponentFloatingHeaderPanel.prototype, "ignoreParentData", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Object) ], ComponentFloatingHeaderPanel.prototype, "data", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], ComponentFloatingHeaderPanel.prototype, "ignoreParentDisabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], ComponentFloatingHeaderPanel.prototype, "delegateHistory", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Function) ], ComponentFloatingHeaderPanel.prototype, "onDisabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Function) ], ComponentFloatingHeaderPanel.prototype, "onEnabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], ComponentFloatingHeaderPanel.prototype, "loadingEnabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], ComponentFloatingHeaderPanel.prototype, "i18nKey", void 0); tslib_1.__decorate([ Option('i18nBypass'), tslib_1.__metadata("design:type", Boolean) ], ComponentFloatingHeaderPanel.prototype, "bypass", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], ComponentFloatingHeaderPanel.prototype, "disabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], ComponentFloatingHeaderPanel.prototype, "field", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], ComponentFloatingHeaderPanel.prototype, "name", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], ComponentFloatingHeaderPanel.prototype, "typeOfData", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], ComponentFloatingHeaderPanel.prototype, "readOnly", void 0); tslib_1.__decorate([ I18N(), Option(), tslib_1.__metadata("design:type", Object) ], ComponentFloatingHeaderPanel.prototype, "help", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Number) ], ComponentFloatingHeaderPanel.prototype, "scrollOffset", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], ComponentFloatingHeaderPanel.prototype, "allowShowFloatingHeaderPanel", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], ComponentFloatingHeaderPanel.prototype, "floatingHeaderLabel", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Type) ], ComponentFloatingHeaderPanel.prototype, "headerType", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Object) ], ComponentFloatingHeaderPanel.prototype, "headerModel", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Function) ], ComponentFloatingHeaderPanel.prototype, "headerHandler", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Type) ], ComponentFloatingHeaderPanel.prototype, "floatingMenuType", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Object) ], ComponentFloatingHeaderPanel.prototype, "floatingMenuModel", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Function) ], ComponentFloatingHeaderPanel.prototype, "floatingMenuHandler", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Type) ], ComponentFloatingHeaderPanel.prototype, "bodyType", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Object) ], ComponentFloatingHeaderPanel.prototype, "bodyModel", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Function) ], ComponentFloatingHeaderPanel.prototype, "bodyHandler", void 0); tslib_1.__decorate([ Option('load'), tslib_1.__metadata("design:type", EventEmitter) ], ComponentFloatingHeaderPanel.prototype, "loadEvent", void 0); tslib_1.__decorate([ Option('startValidate'), tslib_1.__metadata("design:type", EventEmitter) ], ComponentFloatingHeaderPanel.prototype, "startValidateEvent", void 0); tslib_1.__decorate([ Option('endValidate'), tslib_1.__metadata("design:type", EventEmitter) ], ComponentFloatingHeaderPanel.prototype, "endValidateEvent", void 0); tslib_1.__decorate([ Option('beforeFocus'), tslib_1.__metadata("design:type", EventEmitter) ], ComponentFloatingHeaderPanel.prototype, "beforeFocusEvent", void 0); tslib_1.__decorate([ Option('focus'), tslib_1.__metadata("design:type", EventEmitter) ], ComponentFloatingHeaderPanel.prototype, "focusEvent", void 0); tslib_1.__decorate([ Option('beforeLostFocus'), tslib_1.__metadata("design:type", EventEmitter) ], ComponentFloatingHeaderPanel.prototype, "beforeLostFocusEvent", void 0); tslib_1.__decorate([ Option('lostFocus'), tslib_1.__metadata("design:type", EventEmitter) ], ComponentFloatingHeaderPanel.prototype, "lostFocusEvent", void 0); tslib_1.__decorate([ Option('beforeChange'), tslib_1.__metadata("design:type", EventEmitter) ], ComponentFloatingHeaderPanel.prototype, "beforeChangeEvent", void 0); tslib_1.__decorate([ Option('change'), tslib_1.__metadata("design:type", EventEmitter) ], ComponentFloatingHeaderPanel.prototype, "changeEvent", void 0); return ComponentFloatingHeaderPanel; }(AbstractFloatingHeaderPanel)); export { ComponentFloatingHeaderPanel }; function ComponentFloatingHeaderPanel_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ ComponentFloatingHeaderPanel.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ ComponentFloatingHeaderPanel.ctorParameters; /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */ ComponentFloatingHeaderPanel.propDecorators; /** @type {?} */ ComponentFloatingHeaderPanel.TYPE_NAME; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.dataParent; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.ignoreParentData; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.data; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.ignoreParentDisabled; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.delegateHistory; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.onDisabled; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.onEnabled; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.loadingEnabled; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.i18nKey; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.bypass; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.options; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.disabled; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.field; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.name; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.typeOfData; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.readOnly; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.help; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.scrollOffset; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.allowShowFloatingHeaderPanel; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.floatingHeaderLabel; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.headerType; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.headerModel; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.headerHandler; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.floatingMenuType; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.floatingMenuModel; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.floatingMenuHandler; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.bodyType; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.bodyModel; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.bodyHandler; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.heightFloating; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.headerInstance; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.floatingMenuInstance; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.bodyInstance; /** @type {?} */ ComponentFloatingHeaderPanel.prototype._headerHandler; /** @type {?} */ ComponentFloatingHeaderPanel.prototype._floatingMenuHandler; /** @type {?} */ ComponentFloatingHeaderPanel.prototype._bodyHandler; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.loadEvent; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.startValidateEvent; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.endValidateEvent; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.beforeFocusEvent; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.focusEvent; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.beforeLostFocusEvent; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.lostFocusEvent; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.beforeChangeEvent; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.changeEvent; /** @type {?} */ ComponentFloatingHeaderPanel.prototype.scroll; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50RmxvYXRpbmdIZWFkZXJQYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnQvZGF0YXZpZXcvQ29tcG9uZW50RmxvYXRpbmdIZWFkZXJQYW5lbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUEyQixZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHdEQscUJBQU0sU0FBUyxHQUFXLHFDQUFxQyxDQUFDO0FBQ2hFLHFCQUFNLGVBQWUsR0FBVyxpQkFBaUIsQ0FBQztBQUNsRCxxQkFBTSxxQkFBcUIsR0FBVyxHQUFHLEdBQUcsZUFBZSxDQUFDO0FBQzVELHFCQUFNLGVBQWUsR0FBVyxpQkFBaUIsQ0FBQztBQUNsRCxxQkFBTSxxQkFBcUIsR0FBVyxHQUFHLEdBQUcsZUFBZSxDQUFDO0FBQzVELHFCQUFNLG9CQUFvQixHQUFXLHNCQUFzQixDQUFDO0FBQzVELHFCQUFNLDBCQUEwQixHQUFXLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQzs7SUFnQ3BCLHdEQUEyQjtJQWtKM0Usc0NBQVksVUFBc0IsRUFBRSxnQkFBa0M7UUFBdEUsWUFDRSxrQkFBTSxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsU0FnQ3BDO3VCQVllLFVBQUMsS0FBVTtZQUV6QixxQkFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM1QyxxQkFBSSxLQUFLLEdBQUcsQ0FBQyxLQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxJQUFJLElBQUksS0FBSSxDQUFDLGtCQUFrQixFQUFFLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsR0FBRyxLQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsS0FBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFFeFAsRUFBRSxDQUFDLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLENBQUMsQ0FBQyxLQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLEdBQUcsQ0FBQztvQkFDcEUsWUFBWSxFQUFFLENBQUMsS0FBSSxDQUFDLGNBQWMsR0FBRyxLQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSTtvQkFDdEYsU0FBUyxFQUFFLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUU7aUJBQ3BDLENBQUMsQ0FBQztnQkFFSCxDQUFDLENBQUMsS0FBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxHQUFHLENBQUM7b0JBQ3BFLFlBQVksRUFBRSxDQUFDLEtBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUk7b0JBQ3RGLFNBQVMsRUFBRSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFO2lCQUNwQyxDQUFDLENBQUM7Z0JBRUgsQ0FBQyxDQUFDLEtBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsR0FBRyxDQUFDO29CQUMvRCxZQUFZLEVBQUUsQ0FBQyxLQUFJLENBQUMsY0FBYyxHQUFHLEtBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJO2lCQUN2RixDQUFDLENBQUM7Z0JBRUgsQ0FBQyxDQUFDLEtBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsR0FBRyxDQUFDO29CQUMvRCxTQUFTLEVBQUUsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRTtpQkFDcEMsQ0FBQyxDQUFDO2FBRUo7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDTixDQUFDLENBQUMsS0FBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxHQUFHLENBQUM7b0JBQ3BFLFlBQVksRUFBRSxLQUFLO29CQUNuQixTQUFTLEVBQUUsR0FBRztpQkFDZixDQUFDLENBQUM7Z0JBRUgsQ0FBQyxDQUFDLEtBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsR0FBRyxDQUFDO29CQUMvRCxZQUFZLEVBQUUsS0FBSztpQkFDcEIsQ0FBQyxDQUFDO2dCQUVILENBQUMsQ0FBQyxLQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQztvQkFDL0QsU0FBUyxFQUFFLEdBQUc7aUJBQ2YsQ0FBQyxDQUFDO2FBQ0o7WUFFRCxLQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3RCO1FBbEZDLEtBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLEtBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQzs7OztRQU1oQyxBQUpBLGlEQUFpRDtRQUNqRCxrREFBa0Q7UUFDbEQsS0FBSztRQUVMLEtBQUksQ0FBQyxjQUFjLEdBQUcsVUFBQyxLQUFVO1lBQy9CLEtBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUVyQyxFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsYUFBYSxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUksQ0FBQyxhQUFhLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDNUUsS0FBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMzQjtTQUNGLENBQUM7UUFFRixLQUFJLENBQUMsb0JBQW9CLEdBQUcsVUFBQyxLQUFVO1lBQ3JDLEtBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1lBRTNDLEVBQUUsQ0FBQyxDQUFDLEtBQUksQ0FBQyxtQkFBbUIsS0FBSyxJQUFJLElBQUksT0FBTyxLQUFJLENBQUMsbUJBQW1CLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDeEYsS0FBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2pDO1NBQ0YsQ0FBQztRQUVGLEtBQUksQ0FBQyxZQUFZLEdBQUcsVUFBQyxLQUFVO1lBQzdCLEtBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUVuQyxFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsV0FBVyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUksQ0FBQyxXQUFXLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDeEUsS0FBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN6QjtTQUNGLENBQUM7O0tBQ0g7Ozs7SUFFTSwrQ0FBUTs7Ozs7UUFDYixpQkFBTSxRQUFRLFdBQUUsQ0FBQztRQUVqQixVQUFVLENBQUM7WUFDVCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLEtBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDckQsS0FBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlCLEtBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1NBQzFCLEVBQUUsRUFBRSxDQUFDLENBQUM7Ozs7O0lBNkNGLGtEQUFXOzs7O1FBQ2hCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQzs7Ozs7OztJQUdoRCxzREFBZTs7Ozs7SUFBekIsVUFBMEIsVUFBZSxFQUFFLE9BQTJCO0tBQ3JFOzs7Ozs7SUFFUyxtREFBWTs7Ozs7SUFBdEIsVUFBdUIsSUFBUyxFQUFFLFFBQWE7S0FDOUM7Ozs7O0lBRVMsOENBQU87Ozs7SUFBakIsVUFBa0IsTUFBYTtLQUM5Qjs7Ozs7SUFFUyxrREFBVzs7OztJQUFyQixVQUFzQixNQUFhO0tBQ2xDOzs7O0lBRU0sc0RBQWU7Ozs7UUFDcEIsTUFBTSxDQUFDLEtBQUssQ0FBQzs7Ozs7O0lBR1IsbURBQVk7Ozs7Y0FBQyxJQUFTOzs7OztJQUd0QixvREFBYTs7Ozs7Ozs7SUFHYiw2REFBc0I7Ozs7UUFDM0IsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQzs7Ozs7O0lBRzNCLDZEQUFzQjs7OztjQUFDLG1CQUEyQjtRQUN2RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7Ozs7O0lBRzFDLG9EQUFhOzs7O1FBQ2xCLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDOzs7Ozs7SUFHbEIsb0RBQWE7Ozs7Y0FBQyxVQUFxQjtRQUN4QyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQzs7Ozs7SUFHeEIsMERBQW1COzs7O1FBQ3hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7Ozs7OztJQUd4QiwwREFBbUI7Ozs7Y0FBQyxnQkFBMkI7UUFDcEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDOzs7OztJQUdwQyxrREFBVzs7OztRQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQzs7Ozs7O0lBR2hCLGtEQUFXOzs7O2NBQUMsUUFBbUI7UUFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7Ozs7O0lBR3BCLHFEQUFjOzs7O1FBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDOzs7Ozs7SUFHbkIscURBQWM7Ozs7Y0FBQyxXQUFnQjtRQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQzs7Ozs7SUFHMUIsMkRBQW9COzs7O1FBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7Ozs7OztJQUd6QiwyREFBb0I7Ozs7Y0FBQyxpQkFBc0I7UUFDaEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDOzs7OztJQUd0QyxtREFBWTs7OztRQUNqQixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQzs7Ozs7O0lBR2pCLG1EQUFZOzs7O2NBQUMsU0FBYztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQzs7Ozs7O0lBR3RCLHdEQUFpQjs7OztjQUFDLGNBQW1CO1FBQzFDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDOzs7OztJQUdoQyx3REFBaUI7Ozs7UUFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7Ozs7OztJQUd0Qiw4REFBdUI7Ozs7Y0FBQyxvQkFBeUI7UUFDdEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLG9CQUFvQixDQUFDOzs7OztJQUc1Qyw4REFBdUI7Ozs7UUFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQzs7Ozs7O0lBRzVCLHNEQUFlOzs7O2NBQUMsWUFBaUI7UUFDdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7Ozs7O0lBRzVCLHNEQUFlOzs7O1FBQ3BCLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDOzs7OztJQUdwQix1REFBZ0I7Ozs7UUFDckIsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7Ozs7OztJQUdyQix1REFBZ0I7Ozs7Y0FBQyxhQUF1QjtRQUM3QyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQzs7Ozs7SUFHOUIsNkRBQXNCOzs7O1FBQzNCLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7Ozs7OztJQUczQiw2REFBc0I7Ozs7Y0FBQyxtQkFBNkI7UUFDekQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDOzs7OztJQUcxQyxxREFBYzs7OztRQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQzs7Ozs7O0lBR25CLHFEQUFjOzs7O2NBQUMsV0FBcUI7UUFDekMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7OzZDQXRXVSxTQUFTOztnQkFoQ3JELFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUU7b0JBQ25CLFFBQVEsRUFBRSxTQUFTO29CQUNuQixRQUFRLEVBQUUsdzVCQXlCWDtpQkFDQTs7OztnQkEvQzJCLFVBQVU7Z0JBRzdCLGdCQUFnQjs7OytCQW1EdEIsS0FBSztxQ0FHTCxLQUFLO3lCQUdMLEtBQUs7eUNBR0wsS0FBSztvQ0FHTCxLQUFLOytCQUdMLEtBQUs7OEJBR0wsS0FBSzttQ0FHTCxLQUFLOzRCQUdMLEtBQUs7MkJBR0wsS0FBSyxTQUFDLFlBQVk7NEJBR2xCLEtBQUs7NkJBRUwsS0FBSzswQkFJTCxLQUFLO3lCQUlMLEtBQUs7K0JBR0wsS0FBSzs2QkFHTCxLQUFLO3lCQUdMLEtBQUs7aUNBS0wsS0FBSztpREFHTCxLQUFLO3dDQUlMLEtBQUs7K0JBV0wsS0FBSztnQ0FHTCxLQUFLO2tDQUdMLEtBQUs7cUNBR0wsS0FBSztzQ0FHTCxLQUFLO3dDQUdMLEtBQUs7NkJBR0wsS0FBSzs4QkFHTCxLQUFLO2dDQUdMLEtBQUs7OEJBY0wsTUFBTSxTQUFDLFNBQVM7dUNBS2hCLE1BQU0sU0FBQyxrQkFBa0I7cUNBR3pCLE1BQU0sU0FBQyxnQkFBZ0I7cUNBR3ZCLE1BQU0sU0FBQyxnQkFBZ0I7K0JBR3ZCLE1BQU0sU0FBQyxVQUFVO3lDQUdqQixNQUFNLFNBQUMsb0JBQW9CO21DQUczQixNQUFNLFNBQUMsY0FBYztzQ0FHckIsTUFBTSxTQUFDLGlCQUFpQjtnQ0FHeEIsTUFBTSxTQUFDLFdBQVc7OztRQXZJbEIsTUFBTSxFQUFFOzs7O1FBR1IsTUFBTSxFQUFFOzs7O1FBR1IsTUFBTSxFQUFFOzs7O1FBR1IsTUFBTSxFQUFFOzs7O1FBR1IsTUFBTSxFQUFFOzs7O1FBR1IsTUFBTSxFQUFFOzBDQUNhLFFBQVE7OztRQUU3QixNQUFNLEVBQUU7MENBQ1ksUUFBUTs7O1FBRTVCLE1BQU0sRUFBRTs7OztRQUdSLE1BQU0sRUFBRTs7OztRQUdSLE1BQU0sQ0FBQyxZQUFZLENBQUM7Ozs7UUFLcEIsTUFBTSxFQUFFOzs7O1FBSVIsTUFBTSxFQUFFOzs7O1FBSVIsTUFBTSxFQUFFOzs7O1FBR1IsTUFBTSxFQUFFOzs7O1FBR1IsTUFBTSxFQUFFOzs7O1FBR1IsSUFBSSxFQUFFO1FBQ04sTUFBTSxFQUFFOzs7O1FBSVIsTUFBTSxFQUFFOzs7O1FBR1IsTUFBTSxFQUFFOzs7O1FBSVIsTUFBTSxFQUFFOzs7O1FBV1IsTUFBTSxFQUFFOzBDQUNXLElBQUk7OztRQUV2QixNQUFNLEVBQUU7Ozs7UUFHUixNQUFNLEVBQUU7MENBQ2MsUUFBUTs7O1FBRTlCLE1BQU0sRUFBRTswQ0FDaUIsSUFBSTs7O1FBRTdCLE1BQU0sRUFBRTs7OztRQUdSLE1BQU0sRUFBRTswQ0FDb0IsUUFBUTs7O1FBRXBDLE1BQU0sRUFBRTswQ0FDUyxJQUFJOzs7UUFFckIsTUFBTSxFQUFFOzs7O1FBR1IsTUFBTSxFQUFFOzBDQUNZLFFBQVE7OztRQWE1QixNQUFNLENBQUMsTUFBTSxDQUFDOzBDQUNNLFlBQVk7OztRQUloQyxNQUFNLENBQUMsZUFBZSxDQUFDOzBDQUNNLFlBQVk7OztRQUV6QyxNQUFNLENBQUMsYUFBYSxDQUFDOzBDQUNNLFlBQVk7OztRQUV2QyxNQUFNLENBQUMsYUFBYSxDQUFDOzBDQUNNLFlBQVk7OztRQUV2QyxNQUFNLENBQUMsT0FBTyxDQUFDOzBDQUNNLFlBQVk7OztRQUVqQyxNQUFNLENBQUMsaUJBQWlCLENBQUM7MENBQ00sWUFBWTs7O1FBRTNDLE1BQU0sQ0FBQyxXQUFXLENBQUM7MENBQ00sWUFBWTs7O1FBRXJDLE1BQU0sQ0FBQyxjQUFjLENBQUM7MENBQ00sWUFBWTs7O1FBRXhDLE1BQU0sQ0FBQyxRQUFRLENBQUM7MENBQ00sWUFBWTs7dUNBaE1yQztFQWdEa0QsMkJBQTJCO1NBQWhFLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBFbGVtZW50UmVmLCBJbnB1dCwgT3V0cHV0LCBIb3N0TGlzdGVuZXIsIFZpZXdDaGlsZCwgRXZlbnRFbWl0dGVyLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdEZsb2F0aW5nSGVhZGVyUGFuZWwgfSBmcm9tICcuL0Fic3RyYWN0RmxvYXRpbmdIZWFkZXJQYW5lbCc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uUmVzdWx0IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50L21vZGVsL1ZhbGlkYXRpb25SZXN1bHQnO1xuaW1wb3J0IHsgTmVlZEZvY3VzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvTmVlZEZvY3VzU2VydmljZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBvbmVudEZsb2F0aW5nTW9kZWwgfSBmcm9tICcuLi8uL21vZGVsL0NvbXBvbmVudEZsb2F0aW5nTW9kZWwnO1xuaW1wb3J0IHsgT3B0aW9uIH0gZnJvbSAnLi4vLi4vZGVjb3JhdG9yL09wdGlvbi5kZWNvcmF0b3InO1xuaW1wb3J0IHsgSUhhc0RhdGEgfSBmcm9tICcuLi9JSGFzRGF0YSc7XG5pbXBvcnQgeyBJMThOIH0gZnJvbSAnLi4vLi4vZGVjb3JhdG9yL0kxOE4uZGVjb3JhdG9yJztcblxuZGVjbGFyZSB2YXIgJDogYW55O1xuY29uc3QgVFlQRV9OQU1FOiBzdHJpbmcgPSBcInBoeC1jb21wb25lbnQtZmxvYXRpbmctaGVhZGVyLXBhbmVsXCI7XG5jb25zdCBBTklNQVRFX01PVkVfVVA6IHN0cmluZyA9IFwiYW5pbWF0ZS1tb3ZlLXVwXCI7XG5jb25zdCBBTklNQVRFX01PVkVfVVBfQ0xBU1M6IHN0cmluZyA9IFwiLlwiICsgQU5JTUFURV9NT1ZFX1VQO1xuY29uc3QgQU5JTUFURV9PUEFDSVRZOiBzdHJpbmcgPSBcImFuaW1hdGUtb3BhY2l0eVwiO1xuY29uc3QgQU5JTUFURV9PUEFDSVRZX0NMQVNTOiBzdHJpbmcgPSBcIi5cIiArIEFOSU1BVEVfT1BBQ0lUWTtcbmNvbnN0IEFOSU1BVEVfTEFCRUxfSEVBREVSOiBzdHJpbmcgPSBcImFuaW1hdGUtbGFiZWwtaGVhZGVyXCI7XG5jb25zdCBBTklNQVRFX0xBQkVMX0hFQURFUl9DTEFTUzogc3RyaW5nID0gXCIuXCIgKyBBTklNQVRFX0xBQkVMX0hFQURFUjtcblxuQENvbXBvbmVudCh7XG4gIG1vZHVsZUlkOiBtb2R1bGUuaWQsXG4gIHNlbGVjdG9yOiBUWVBFX05BTUUsXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cInBoeC1jb21wb25lbnQtZmxvYXRpbmctaGVhZGVyLXBhbmVsXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsb2F0aW5nLWhlYWRlci1wYW5lbC1jb250YWluZXJcIj5cbiAgICAgICAgPHBoeC1jb21wb25lbnQtd3JhcHBlclxuICAgICAgICAgICAgW3R5cGVdPVwiZ2V0SGVhZGVyVHlwZSgpXCJcbiAgICAgICAgICAgIFtkYXRhXT1cImdldERhdGEoKVwiXG4gICAgICAgICAgICBbaGFuZGxlcl09XCJfaGVhZGVySGFuZGxlclwiXG4gICAgICAgICAgICBbZGF0YVBhcmVudF09XCJ0aGlzXCJcbiAgICAgICAgICAgIFttb2RlbF09XCJnZXRIZWFkZXJNb2RlbCgpXCI+XG4gICAgICAgIDwvcGh4LWNvbXBvbmVudC13cmFwcGVyPlxuICAgICAgICA8cGh4LWNvbXBvbmVudC13cmFwcGVyXG4gICAgICAgICAgICBbdHlwZV09XCJnZXRGbG9hdGluZ01lbnVUeXBlKClcIlxuICAgICAgICAgICAgW2RhdGFdPVwiZ2V0RGF0YSgpXCJcbiAgICAgICAgICAgIFtoYW5kbGVyXT1cIl9mbG9hdGluZ01lbnVIYW5kbGVyXCJcbiAgICAgICAgICAgIFtkYXRhUGFyZW50XT1cInRoaXNcIlxuICAgICAgICAgICAgW21vZGVsXT1cImdldEZsb2F0aW5nTWVudU1vZGVsKClcIj5cbiAgICAgICAgPC9waHgtY29tcG9uZW50LXdyYXBwZXI+XG4gICAgICAgIDxwaHgtY29tcG9uZW50LXdyYXBwZXJcbiAgICAgICAgICAgIFt0eXBlXT1cImdldEJvZHlUeXBlKClcIlxuICAgICAgICAgICAgW2RhdGFdPVwiZ2V0RGF0YSgpXCJcbiAgICAgICAgICAgIFtoYW5kbGVyXT1cIl9ib2R5SGFuZGxlclwiXG4gICAgICAgICAgICBbZGF0YVBhcmVudF09XCJ0aGlzXCJcbiAgICAgICAgICAgIFttb2RlbF09XCJnZXRCb2R5TW9kZWwoKVwiPlxuICAgICAgICA8L3BoeC1jb21wb25lbnQtd3JhcHBlcj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuYFxufSlcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRGbG9hdGluZ0hlYWRlclBhbmVsIGV4dGVuZHMgQWJzdHJhY3RGbG9hdGluZ0hlYWRlclBhbmVsIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRZUEVfTkFNRTogc3RyaW5nID0gVFlQRV9OQU1FO1xuXG4gIC8vIFJlLWRlY2xhcmUgZmllbGQgdG8gZGVjbGFyZSBuZyBASW5wdXQuXG4gIC8vIC0tLSBmcm9tIEFic3RyYWN0SGFzRGF0YVxuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIGRhdGFQYXJlbnQ6IElIYXNEYXRhO1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIGlnbm9yZVBhcmVudERhdGE6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgZGF0YTogYW55O1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIGlnbm9yZVBhcmVudERpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIGRlbGVnYXRlSGlzdG9yeTogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBvbkRpc2FibGVkOiBGdW5jdGlvbjtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBvbkVuYWJsZWQ6IEZ1bmN0aW9uO1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIGxvYWRpbmdFbmFibGVkOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIGkxOG5LZXk6IHN0cmluZztcbiAgQElucHV0KCdpMThuQnlwYXNzJylcbiAgQE9wdGlvbignaTE4bkJ5cGFzcycpXG4gIHByb3RlY3RlZCBieXBhc3M6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIHByb3RlY3RlZCBvcHRpb25zOiBhbnk7XG4gIEBJbnB1dCgpXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIC8vIC0tLSBmcm9tIEFic3RyYWN0RGF0YVZpZXdcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBmaWVsZDogc3RyaW5nO1xuICAvLyAtLS0gZnJvbSBBYnN0cmFjdElucHV0RGF0YVZpZXdcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBuYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgdHlwZU9mRGF0YTogc3RyaW5nO1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIHJlYWRPbmx5OiBib29sZWFuO1xuICBASW5wdXQoKVxuICBASTE4TigpXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgaGVscDogYW55O1xuICAvLyAtLS0gZnJvbSBBYnN0cmFjdEZsb2F0aW5nSGVhZGVyUGFuZWxcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBzY3JvbGxPZmZzZXQ6IG51bWJlcjtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBhbGxvd1Nob3dGbG9hdGluZ0hlYWRlclBhbmVsOiBib29sZWFuO1xuICAvLyAtLS0gU2VsZlxuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJpdmF0ZSBmbG9hdGluZ0hlYWRlckxhYmVsOiBzdHJpbmc7XG4gIC8vIEBJbnB1dCgpXG4gIC8vIEBPcHRpb24oKVxuICAvLyBwcml2YXRlIGZsb2F0aW5nSGVhZGVyVHlwZTogYW55O1xuICAvLyBASW5wdXQoKVxuICAvLyBAT3B0aW9uKClcbiAgLy8gcHJpdmF0ZSBmbG9hdGluZ0hlYWRlck1vZGVsOiBhbnk7XG4gIC8vIHByaXZhdGUgZmxvYXRpbmdIZWFkZXJJbnN0YW5jZTogYW55O1xuICAvLyBwcml2YXRlIGZsb2F0aW5nSGVhZGVySGFuZGxlcjogRnVuY3Rpb247XG4gIEBJbnB1dCgpXG4gIEBPcHRpb24oKVxuICBwcml2YXRlIGhlYWRlclR5cGU6IFR5cGU8YW55PjtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByaXZhdGUgaGVhZGVyTW9kZWw6IGFueTtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByaXZhdGUgaGVhZGVySGFuZGxlcjogRnVuY3Rpb247XG4gIEBJbnB1dCgpXG4gIEBPcHRpb24oKVxuICBwcml2YXRlIGZsb2F0aW5nTWVudVR5cGU6IFR5cGU8YW55PjtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByaXZhdGUgZmxvYXRpbmdNZW51TW9kZWw6IGFueTtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByaXZhdGUgZmxvYXRpbmdNZW51SGFuZGxlcjogRnVuY3Rpb25cbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByaXZhdGUgYm9keVR5cGU6IFR5cGU8YW55PjtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByaXZhdGUgYm9keU1vZGVsOiBhbnk7XG4gIEBJbnB1dCgpXG4gIEBPcHRpb24oKVxuICBwcml2YXRlIGJvZHlIYW5kbGVyOiBGdW5jdGlvbjtcblxuICBwcml2YXRlIGhlaWdodEZsb2F0aW5nOiBudW1iZXI7XG4gIHByaXZhdGUgaGVhZGVySW5zdGFuY2U6IGFueTtcbiAgcHJpdmF0ZSBmbG9hdGluZ01lbnVJbnN0YW5jZTogYW55O1xuICBwcml2YXRlIGJvZHlJbnN0YW5jZTogYW55O1xuICBwdWJsaWMgX2hlYWRlckhhbmRsZXI6IEZ1bmN0aW9uO1xuICBwdWJsaWMgX2Zsb2F0aW5nTWVudUhhbmRsZXI6IEZ1bmN0aW9uO1xuICBwdWJsaWMgX2JvZHlIYW5kbGVyOiBGdW5jdGlvbjtcblxuICAvLyBSZS1kZWNsYXJlIGZpZWxkIHRvIGRlY2xhcmUgbmcgQE91dHB1dC5cbiAgLy8gLS0tIGZyb20gQWJzdHJhY3RIYXNEYXRhXG4gIEBPdXRwdXQoJ3BoeExvYWQnKVxuICBAT3B0aW9uKCdsb2FkJylcbiAgcHJvdGVjdGVkIGxvYWRFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG4gIC8vIC0tLSBmcm9tIEFic3RyYWN0RGF0YVZpZXdcbiAgLy8gLS0tIGZyb20gQWJzdHJhY3RJbnB1dERhdGFWaWV3XG4gIEBPdXRwdXQoJ3BoeFN0YXJ0VmFsaWRhdGUnKVxuICBAT3B0aW9uKCdzdGFydFZhbGlkYXRlJylcbiAgcHJvdGVjdGVkIHN0YXJ0VmFsaWRhdGVFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPdXRwdXQoJ3BoeEVuZFZhbGlkYXRlJylcbiAgQE9wdGlvbignZW5kVmFsaWRhdGUnKVxuICBwcm90ZWN0ZWQgZW5kVmFsaWRhdGVFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPdXRwdXQoJ3BoeEJlZm9yZUZvY3VzJylcbiAgQE9wdGlvbignYmVmb3JlRm9jdXMnKVxuICBwcm90ZWN0ZWQgYmVmb3JlRm9jdXNFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPdXRwdXQoJ3BoeEZvY3VzJylcbiAgQE9wdGlvbignZm9jdXMnKVxuICBwcm90ZWN0ZWQgZm9jdXNFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPdXRwdXQoJ3BoeEJlZm9yZUxvc3RGb2N1cycpXG4gIEBPcHRpb24oJ2JlZm9yZUxvc3RGb2N1cycpXG4gIHByb3RlY3RlZCBiZWZvcmVMb3N0Rm9jdXNFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPdXRwdXQoJ3BoeExvc3RGb2N1cycpXG4gIEBPcHRpb24oJ2xvc3RGb2N1cycpXG4gIHByb3RlY3RlZCBsb3N0Rm9jdXNFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPdXRwdXQoJ3BoeEJlZm9yZUNoYW5nZScpXG4gIEBPcHRpb24oJ2JlZm9yZUNoYW5nZScpXG4gIHByb3RlY3RlZCBiZWZvcmVDaGFuZ2VFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPdXRwdXQoJ3BoeENoYW5nZScpXG4gIEBPcHRpb24oJ2NoYW5nZScpXG4gIHByb3RlY3RlZCBjaGFuZ2VFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgbmVlZEZvY3VzU2VydmljZTogTmVlZEZvY3VzU2VydmljZSkge1xuICAgIHN1cGVyKGVsZW1lbnRSZWYsIG5lZWRGb2N1c1NlcnZpY2UpO1xuXG4gICAgdGhpcy5lbGVtZW50UmVmID0gZWxlbWVudFJlZjtcbiAgICB0aGlzLnNldEFsd2F5c1Nob3dIZWFkZXIoZmFsc2UpO1xuXG4gICAgLy8gdGhpcy5mbG9hdGluZ0hlYWRlckhhbmRsZXIgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgIC8vICAgdGhpcy5mbG9hdGluZ0hlYWRlckluc3RhbmNlID0gZXZlbnQuaW5zdGFuY2U7XG4gICAgLy8gfTtcblxuICAgIHRoaXMuX2hlYWRlckhhbmRsZXIgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgdGhpcy5oZWFkZXJJbnN0YW5jZSA9IGV2ZW50Lmluc3RhbmNlO1xuXG4gICAgICBpZiAodGhpcy5oZWFkZXJIYW5kbGVyICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLmhlYWRlckhhbmRsZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5oZWFkZXJIYW5kbGVyKGV2ZW50KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5fZmxvYXRpbmdNZW51SGFuZGxlciA9IChldmVudDogYW55KSA9PiB7XG4gICAgICB0aGlzLmZsb2F0aW5nTWVudUluc3RhbmNlID0gZXZlbnQuaW5zdGFuY2U7XG5cbiAgICAgIGlmICh0aGlzLmZsb2F0aW5nTWVudUhhbmRsZXIgIT09IG51bGwgJiYgdHlwZW9mIHRoaXMuZmxvYXRpbmdNZW51SGFuZGxlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLmZsb2F0aW5nTWVudUhhbmRsZXIoZXZlbnQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB0aGlzLl9ib2R5SGFuZGxlciA9IChldmVudDogYW55KSA9PiB7XG4gICAgICB0aGlzLmJvZHlJbnN0YW5jZSA9IGV2ZW50Lmluc3RhbmNlO1xuXG4gICAgICBpZiAodGhpcy5ib2R5SGFuZGxlciAhPT0gbnVsbCAmJiB0eXBlb2YgdGhpcy5ib2R5SGFuZGxlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLmJvZHlIYW5kbGVyKGV2ZW50KTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnNjcm9sbCwgdHJ1ZSk7XG4gICAgICB0aGlzLnNldFNjcm9sbE9mZnNldFN0YXJ0KDUzKTtcbiAgICAgIHRoaXMuaGVpZ2h0RmxvYXRpbmcgPSA4MjtcbiAgICB9LCA1MCk7XG4gIH1cblxuICBwdWJsaWMgc2Nyb2xsID0gKGV2ZW50OiBhbnkpOiB2b2lkID0+IHtcblxuICAgIGxldCBzY3JvbGxUb3AgPSAkKGV2ZW50LnRhcmdldCkuc2Nyb2xsVG9wKCk7XG4gICAgbGV0IGJvZHlZID0gKHRoaXMuZ2V0U2Nyb2xsT2Zmc2V0RW5kKCkgPT09IG51bGwgfHwgdGhpcy5nZXRTY3JvbGxPZmZzZXRFbmQoKSA9PT0gdW5kZWZpbmVkKSA/ICQodGhpcy5nZXRCb2R5SW5zdGFuY2UoKS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLnBvc2l0aW9uKCkudG9wIC0gdGhpcy5nZXRTY3JvbGxPZmZzZXRTdGFydCgpIDogdGhpcy5nZXRTY3JvbGxPZmZzZXRFbmQoKSAtIHRoaXMuZ2V0U2Nyb2xsT2Zmc2V0U3RhcnQoKTtcblxuICAgIGlmIChzY3JvbGxUb3AgPD0gYm9keVkpIHtcbiAgICAgICQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLmZpbmQoQU5JTUFURV9MQUJFTF9IRUFERVJfQ0xBU1MpLmNzcyh7XG4gICAgICAgICdtYXJnaW4tdG9wJzogKHRoaXMuaGVpZ2h0RmxvYXRpbmcgLSB0aGlzLmhlaWdodEZsb2F0aW5nICogKHNjcm9sbFRvcCAvIGJvZHlZKSkgKyAncHgnLFxuICAgICAgICAnb3BhY2l0eSc6IChzY3JvbGxUb3AgLyBib2R5WSkgKyAnJ1xuICAgICAgfSk7XG5cbiAgICAgICQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLmZpbmQoQU5JTUFURV9MQUJFTF9IRUFERVJfQ0xBU1MpLmNzcyh7XG4gICAgICAgICdtYXJnaW4tdG9wJzogKHRoaXMuaGVpZ2h0RmxvYXRpbmcgLSB0aGlzLmhlaWdodEZsb2F0aW5nICogKHNjcm9sbFRvcCAvIGJvZHlZKSkgKyAncHgnLFxuICAgICAgICAnb3BhY2l0eSc6IChzY3JvbGxUb3AgLyBib2R5WSkgKyAnJ1xuICAgICAgfSk7XG5cbiAgICAgICQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLmZpbmQoQU5JTUFURV9NT1ZFX1VQX0NMQVNTKS5jc3Moe1xuICAgICAgICAnbWFyZ2luLXRvcCc6ICh0aGlzLmhlaWdodEZsb2F0aW5nIC0gdGhpcy5oZWlnaHRGbG9hdGluZyAqIChzY3JvbGxUb3AgLyBib2R5WSkpICsgJ3B4JyxcbiAgICAgIH0pO1xuXG4gICAgICAkKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS5maW5kKEFOSU1BVEVfT1BBQ0lUWV9DTEFTUykuY3NzKHtcbiAgICAgICAgJ29wYWNpdHknOiAoc2Nyb2xsVG9wIC8gYm9keVkpICsgJydcbiAgICAgIH0pO1xuXG4gICAgfSBlbHNlIHtcbiAgICAgICQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLmZpbmQoQU5JTUFURV9MQUJFTF9IRUFERVJfQ0xBU1MpLmNzcyh7XG4gICAgICAgICdtYXJnaW4tdG9wJzogJzBweCcsXG4gICAgICAgICdvcGFjaXR5JzogJzEnXG4gICAgICB9KTtcblxuICAgICAgJCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkuZmluZChBTklNQVRFX01PVkVfVVBfQ0xBU1MpLmNzcyh7XG4gICAgICAgICdtYXJnaW4tdG9wJzogJzBweCcsXG4gICAgICB9KTtcblxuICAgICAgJCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkuZmluZChBTklNQVRFX09QQUNJVFlfQ0xBU1MpLmNzcyh7XG4gICAgICAgICdvcGFjaXR5JzogJzEnXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLm9uU2Nyb2xsKGV2ZW50KTtcbiAgfTtcblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuc2Nyb2xsLCB0cnVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblZhbGlkYXRpb25FbmQoaW5wdXRWYWx1ZTogYW55LCByZXN1bHRzOiBWYWxpZGF0aW9uUmVzdWx0W10pOiB2b2lkIHtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkRhdGFDaGFuZ2UoZGF0YTogYW55LCBpbnB1dFZhbDogYW55KTogdm9pZCB7XG4gIH1cblxuICBwcm90ZWN0ZWQgZG9Gb2N1cygkZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gIH1cblxuICBwcm90ZWN0ZWQgZG9Mb3N0Rm9jdXMoJGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICB9XG5cbiAgcHVibGljIGlzU2VsZkRhdGFEaXJ0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgc2VsZlNhdmVEYXRhKGRhdGE6IGFueSk6IHZvaWQge1xuICB9XG5cbiAgcHVibGljIHNlbGZSZXNldERhdGEoKTogdm9pZCB7XG4gIH1cblxuICBwdWJsaWMgZ2V0RmxvYXRpbmdIZWFkZXJMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZsb2F0aW5nSGVhZGVyTGFiZWw7XG4gIH1cblxuICBwdWJsaWMgc2V0RmxvYXRpbmdIZWFkZXJMYWJlbChmbG9hdGluZ0hlYWRlckxhYmVsOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZsb2F0aW5nSGVhZGVyTGFiZWwgPSBmbG9hdGluZ0hlYWRlckxhYmVsO1xuICB9XG5cbiAgcHVibGljIGdldEhlYWRlclR5cGUoKTogVHlwZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5oZWFkZXJUeXBlO1xuICB9XG5cbiAgcHVibGljIHNldEhlYWRlclR5cGUoaGVhZGVyVHlwZTogVHlwZTxhbnk+KSB7XG4gICAgdGhpcy5oZWFkZXJUeXBlID0gaGVhZGVyVHlwZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGbG9hdGluZ01lbnVUeXBlKCk6IFR5cGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZmxvYXRpbmdNZW51VHlwZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRGbG9hdGluZ01lbnVUeXBlKGZsb2F0aW5nTWVudVR5cGU6IFR5cGU8YW55Pikge1xuICAgIHRoaXMuZmxvYXRpbmdNZW51VHlwZSA9IGZsb2F0aW5nTWVudVR5cGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0Qm9keVR5cGUoKTogVHlwZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5ib2R5VHlwZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRCb2R5VHlwZShib2R5VHlwZTogVHlwZTxhbnk+KSB7XG4gICAgdGhpcy5ib2R5VHlwZSA9IGJvZHlUeXBlO1xuICB9XG5cbiAgcHVibGljIGdldEhlYWRlck1vZGVsKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuaGVhZGVyTW9kZWw7XG4gIH1cblxuICBwdWJsaWMgc2V0SGVhZGVyTW9kZWwoaGVhZGVyTW9kZWw6IGFueSkge1xuICAgIHRoaXMuaGVhZGVyTW9kZWwgPSBoZWFkZXJNb2RlbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGbG9hdGluZ01lbnVNb2RlbCgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmZsb2F0aW5nTWVudU1vZGVsO1xuICB9XG5cbiAgcHVibGljIHNldEZsb2F0aW5nTWVudU1vZGVsKGZsb2F0aW5nTWVudU1vZGVsOiBhbnkpIHtcbiAgICB0aGlzLmZsb2F0aW5nTW