barsa-sap-ui 1.0.352 → 1.0.354

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -50,10 +50,10 @@ export class UlvToolbarComponent extends BaseComponent {
50
50
  }
51
51
  }
52
52
  UlvToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UlvToolbarComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
53
- UlvToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UlvToolbarComponent, selector: "bsu-ulv-toolbar", inputs: { useLayoutItemTextForControl: "useLayoutItemTextForControl", enableSearch: "enableSearch", hideTitle: "hideTitle", title: "title", deviceName: "deviceName", deviceSize: "deviceSize", access: "access", hideToolbar: "hideToolbar", toolbarButtons: "toolbarButtons", contentDensity: "contentDensity", inlineEditMode: "inlineEditMode", allowInlineEdit: "allowInlineEdit", gridSetting: "gridSetting", viewCollection: "viewCollection", reportView: "reportView", inDialog: "inDialog", isMultiSelect: "isMultiSelect", hasSelected: "hasSelected", config: "config", hidden: "hidden", buttons: "buttons" }, outputs: { search: "search", groupbyClick: "groupbyClick", sortClick: "sortClick", columnClick: "columnClick", editModeClick: "editModeClick", viewClick: "viewClick", createNewInlineMo: "createNewInlineMo" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<fd-toolbar\n #toolbar\n [shouldOverflow]=\"deviceSize === 's'\"\n [hasTitle]=\"!hideTitle\"\n [clearBorder]=\"true\"\n [forceOverflow]=\"false\"\n [title]=\"!hideTitle && deviceSize !== 's' ? (title | bbbTranslate) : ''\"\n *ngIf=\"!useLayoutItemTextForControl && !hideToolbar\"\n>\n <fd-toolbar-spacer *ngIf=\"deviceSize !== 's'\" fd-toolbar-item></fd-toolbar-spacer>\n\n <ng-container *ngIf=\"!hideToolbar\">\n <ng-container *ngFor=\"let btn of toolbarButtons; trackBy: _trackBy; let i = index\">\n <button\n *ngIf=\"btn !== '-' && btn.Command && !btn.Command.CustomUi\"\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"btn.Command?.IsBuiltin ? 'low' : 'high'\"\n [ulvCommandHandler]=\"btn\"\n [disable]=\"inlineEditMode && btn.text === ('New' | bbbTranslate)\"\n [disabled]=\"btn.Command._isEnable === false ? true : false\"\n [fdType]=\"!btn.Command._isEnable ? 'transparent' : btn.Command.JsonExtraProp?.Design || 'transparent'\"\n [glyph]=\"btn.Command.JsonExtraProp?.Icon\"\n [title]=\"(btn.Command?.IsBuiltin ? btn.text : '') | bbbTranslate\"\n (click)=\"inlineEditMode && createNewInlineMo.emit()\"\n >\n <img\n *ngIf=\"!btn.Command.JsonExtraProp?.Icon && !btn.Command?.IsBuiltin && btn.icon\"\n width=\"16\"\n [src]=\"btn.icon\"\n />\n <span *ngIf=\"!btn.hideText\">{{ btn.text | bbbTranslate }}</span>\n </button>\n <fd-toolbar-separator\n fd-toolbar-item\n *ngIf=\"(btn === '-' || btn.type === 'seperator') && deviceName !== 'mobile'\"\n ></fd-toolbar-separator>\n <fd-split-button\n *ngIf=\"btn.menu\"\n fd-toolbar-item\n [fdType]=\"'transparent'\"\n [mainAction]=\"{ mainActionTitle: (btn.text | bbbTranslate), keepMainAction: true }\"\n >\n <fd-menu>\n <li fd-menu-item *ngFor=\"let btnCommand of btn.menu.items\" [ulvCommandHandler]=\"btnCommand\">\n <div fd-menu-interactive>\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\n </div>\n </li>\n </fd-menu>\n </fd-split-button>\n <bnrc-dynamic-form-toolbaritem\n *ngIf=\"btn !== '-' && btn.Command && btn.Command.CustomUi\"\n fd-toolbar-item\n [ulvCommandHandler]=\"btn\"\n [component]=\"btn.Command?.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n ></bnrc-dynamic-form-toolbaritem>\n </ng-container>\n <ng-content select=\"[fd-toolbar-item]\"></ng-content>\n\n <ng-container *ngIf=\"gridSetting && gridSetting.Hidden !== true\">\n <!-- <fdp-search-field\n *ngIf=\"enableSearch === true\"\n fd-toolbar-item\n placeholder=\"\u0639\u0628\u0627\u0631\u062A \u062C\u0633\u062A\u062C\u0648\"\n [suggestions]=\"[]\"\n [contentDensity]=\"contentDensity\"\n (searchSubmit)=\"onSearchSubmit($event)\"\n ></fdp-search-field> -->\n\n <!-- <fdp-button-->\n <!-- fd-toolbar-item-->\n <!-- [contentDensity]=\"contentDensity\"-->\n <!-- buttonType=\"transparent\"-->\n <!-- [label]=\"device === 'mobile' ? ('Filter' | bbbTranslate) : ''\"-->\n <!-- [glyph]=\"'filter'\"-->\n <!-- >-->\n <!-- </fdp-button>-->\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [glyph]=\"'group-2'\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onGroupbySettings()\"\n [title]=\"'Groups' | bbbTranslate\"\n ></button>\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [glyph]=\"'sort'\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onSortSettings()\"\n [title]=\"'Sort' | bbbTranslate\"\n ></button>\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [glyph]=\"'action-settings'\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onColumnSettings()\"\n [title]=\"'Columns' | bbbTranslate\"\n ></button>\n <button\n *ngIf=\"allowInlineEdit && access.Edit\"\n fd-button\n fd-toolbar-item\n [fdType]=\"inlineEditMode ? 'emphasized' : 'transparent'\"\n [glyph]=\"'edit'\"\n (click)=\"onEditMode()\"\n [attr.fdOverflowPriority]=\"'always'\"\n [title]=\"'Edit' | bbbTranslate\"\n ></button>\n\n <fd-split-button\n *ngIf=\"viewCollection && viewCollection.length > 1\"\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"deviceSize === 's' ? 'always' : 'low'\"\n [fdType]=\"'transparent'\"\n [mainAction]=\"{\n keepMainAction: true,\n mainActionTitle: splitBtnTitle\n }\"\n >\n <fd-menu>\n <li fd-menu-item *ngFor=\"let viewObject of viewCollection\">\n <div fd-menu-interactive (click)=\"onChangeView(viewObject)\">\n <span fd-menu-title>\n <fd-icon [glyph]=\"viewObject.UiComponent.Settings?.Icon\"> </fd-icon>\n </span>\n </div>\n </li>\n </fd-menu>\n </fd-split-button>\n <ng-template #splitBtnTitle>\n <fd-icon [glyph]=\"reportView.UiComponent.Settings?.Icon\"></fd-icon>\n </ng-template>\n </ng-container>\n </ng-container>\n</fd-toolbar>\n<!-- <ng-template #searchField>\n <fd-toolbar *ngIf=\"enableSearch\">\n <fdp-search-field\n fd-toolbar-item\n placeholder=\"\u0639\u0628\u0627\u0631\u062A \u062C\u0633\u062A\u062C\u0648\"\n [suggestions]=\"[]\"\n [contentDensity]=\"contentDensity\"\n (searchSubmit)=\"onSearchSubmit($event)\"\n ></fdp-search-field\n ></fd-toolbar>\n </ng-template> -->\n", styles: [":host{display:block;width:100%;position:relative}:host ::ng-deep .fd-toolbar{flex-wrap:nowrap!important}:host ::ng-deep .fd-toolbar{border-top:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-right:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.DynamicFormToolbaritemComponent, selector: "bnrc-dynamic-form-toolbaritem", inputs: ["mo", "index", "deviceName", "deviceSize", "context", "btn", "isEnable", "showText", "allColumns", "conditionalFormats"], outputs: ["btnClick"] }, { kind: "directive", type: i2.UlvCommandDirective, selector: "[ulvCommandHandler]", inputs: ["ulvCommandHandler", "disable"], outputs: ["commandClick"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i5.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i5.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "directive", type: i5.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i5.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i6.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "disabled", "mainActionTitle", "fdType", "expandButtonAriaLabel", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { kind: "component", type: i7.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i7.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "component", type: i7.ToolbarSpacerComponent, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "component", type: i7.ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "directive", type: i7.ToolbarOverflowPriorityDirective, selector: "[fdOverflowPriority]", inputs: ["fdOverflowPriority"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
53
+ UlvToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UlvToolbarComponent, selector: "bsu-ulv-toolbar", inputs: { useLayoutItemTextForControl: "useLayoutItemTextForControl", enableSearch: "enableSearch", hideTitle: "hideTitle", title: "title", deviceName: "deviceName", deviceSize: "deviceSize", access: "access", hideToolbar: "hideToolbar", toolbarButtons: "toolbarButtons", contentDensity: "contentDensity", inlineEditMode: "inlineEditMode", allowInlineEdit: "allowInlineEdit", gridSetting: "gridSetting", viewCollection: "viewCollection", reportView: "reportView", inDialog: "inDialog", isMultiSelect: "isMultiSelect", hasSelected: "hasSelected", config: "config", hidden: "hidden", buttons: "buttons" }, outputs: { search: "search", groupbyClick: "groupbyClick", sortClick: "sortClick", columnClick: "columnClick", editModeClick: "editModeClick", viewClick: "viewClick", createNewInlineMo: "createNewInlineMo" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<fd-toolbar\n #toolbar\n [shouldOverflow]=\"deviceSize === 's'\"\n [ngClass]=\"deviceSize\"\n [hasTitle]=\"!hideTitle\"\n [clearBorder]=\"true\"\n [forceOverflow]=\"false\"\n [title]=\"!hideTitle && deviceSize !== 's' ? (title | bbbTranslate) : ''\"\n *ngIf=\"!useLayoutItemTextForControl && !hideToolbar\"\n>\n <fd-toolbar-spacer *ngIf=\"deviceSize !== 's'\" fd-toolbar-item></fd-toolbar-spacer>\n\n <ng-container *ngIf=\"!hideToolbar\">\n <ng-container *ngFor=\"let btn of toolbarButtons; trackBy: _trackBy; let i = index\">\n <button\n *ngIf=\"btn !== '-' && btn.Command && !btn.Command.CustomUi\"\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"btn.itemId === 'Edit' ? 'always' : btn.Command?.IsBuiltin ? 'low' : 'high'\"\n [ulvCommandHandler]=\"btn\"\n [disable]=\"inlineEditMode && btn.itemId === 'New'\"\n [disabled]=\"btn.Command._isEnable === false ? true : false\"\n [fdType]=\"!btn.Command._isEnable ? 'transparent' : btn.Command.JsonExtraProp?.Design || 'transparent'\"\n [glyph]=\"btn.Command.JsonExtraProp?.Icon\"\n [title]=\"(btn.Command?.IsBuiltin ? btn.text : '') | bbbTranslate\"\n (click)=\"inlineEditMode && createNewInlineMo.emit()\"\n >\n <img\n *ngIf=\"!btn.Command.JsonExtraProp?.Icon && !btn.Command?.IsBuiltin && btn.icon\"\n width=\"16\"\n [src]=\"btn.icon\"\n />\n <span *ngIf=\"!btn.hideText\">{{ btn.text | bbbTranslate }}</span>\n </button>\n <fd-toolbar-separator\n fd-toolbar-item\n *ngIf=\"(btn === '-' || btn.type === 'seperator') && deviceName !== 'mobile'\"\n ></fd-toolbar-separator>\n <fd-split-button\n *ngIf=\"btn.menu\"\n fd-toolbar-item\n [fdType]=\"'transparent'\"\n [mainAction]=\"{ mainActionTitle: (btn.text | bbbTranslate), keepMainAction: true }\"\n >\n <fd-menu>\n <li fd-menu-item *ngFor=\"let btnCommand of btn.menu.items\" [ulvCommandHandler]=\"btnCommand\">\n <div fd-menu-interactive>\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\n </div>\n </li>\n </fd-menu>\n </fd-split-button>\n <bnrc-dynamic-form-toolbaritem\n *ngIf=\"btn !== '-' && btn.Command && btn.Command.CustomUi\"\n fd-toolbar-item\n [ulvCommandHandler]=\"btn\"\n [component]=\"btn.Command?.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n ></bnrc-dynamic-form-toolbaritem>\n </ng-container>\n <ng-content select=\"[fd-toolbar-item]\"></ng-content>\n\n <ng-container *ngIf=\"gridSetting && gridSetting.Hidden !== true\">\n <!-- <fdp-search-field\n *ngIf=\"enableSearch === true\"\n fd-toolbar-item\n placeholder=\"\u0639\u0628\u0627\u0631\u062A \u062C\u0633\u062A\u062C\u0648\"\n [suggestions]=\"[]\"\n [contentDensity]=\"contentDensity\"\n (searchSubmit)=\"onSearchSubmit($event)\"\n ></fdp-search-field> -->\n\n <!-- <fdp-button-->\n <!-- fd-toolbar-item-->\n <!-- [contentDensity]=\"contentDensity\"-->\n <!-- buttonType=\"transparent\"-->\n <!-- [label]=\"device === 'mobile' ? ('Filter' | bbbTranslate) : ''\"-->\n <!-- [glyph]=\"'filter'\"-->\n <!-- >-->\n <!-- </fdp-button>-->\n <!-- \n <button\n *ngIf=\"allowInlineEdit && access.Edit\"\n fd-button\n fd-toolbar-item\n [fdType]=\"inlineEditMode ? 'emphasized' : 'transparent'\"\n [glyph]=\"'edit'\"\n (click)=\"onEditMode()\"\n [attr.fdOverflowPriority]=\"'always'\"\n [title]=\"'Inline Edit In List' | bbbTranslate\"\n ></button> -->\n\n <button\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"'never'\"\n [fdMenu]=\"true\"\n fdType=\"transparent\"\n glyph=\"action-settings\"\n [title]=\"'Settings' | bbbTranslate\"\n [fdMenuTrigger]=\"tableMenuSettings\"\n ></button>\n\n <fd-menu #tableMenuSettings>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onColumnSettings()\">\n <fd-menu-addon position=\"before\" glyph=\"action-settings\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Columns' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onSortSettings()\">\n <fd-menu-addon position=\"before\" glyph=\"sort\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Sort' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onGroupbySettings()\">\n <fd-menu-addon position=\"before\" glyph=\"group-2\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Groups' | bbbTranslate }}\n </span>\n </div>\n </li>\n </fd-menu>\n\n <fd-split-button\n *ngIf=\"viewCollection && viewCollection.length > 1\"\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"deviceSize === 's' ? 'always' : 'low'\"\n [fdType]=\"'transparent'\"\n [mainAction]=\"{\n keepMainAction: true,\n mainActionTitle: splitBtnTitle\n }\"\n >\n <fd-menu>\n <li fd-menu-item *ngFor=\"let viewObject of viewCollection\">\n <div fd-menu-interactive (click)=\"onChangeView(viewObject)\">\n <span fd-menu-title>\n <fd-icon [glyph]=\"viewObject.UiComponent.Settings?.Icon\"> </fd-icon>\n </span>\n </div>\n </li>\n </fd-menu>\n </fd-split-button>\n <ng-template #splitBtnTitle>\n <fd-icon [glyph]=\"reportView.UiComponent.Settings?.Icon\"></fd-icon>\n </ng-template>\n <ng-template #splitBtnSettings>\n <fd-icon [glyph]=\"'action-settings'\"></fd-icon>\n </ng-template>\n </ng-container>\n </ng-container>\n</fd-toolbar>\n<!-- <ng-template #searchField>\n <fd-toolbar *ngIf=\"enableSearch\">\n <fdp-search-field\n fd-toolbar-item\n placeholder=\"\u0639\u0628\u0627\u0631\u062A \u062C\u0633\u062A\u062C\u0648\"\n [suggestions]=\"[]\"\n [contentDensity]=\"contentDensity\"\n (searchSubmit)=\"onSearchSubmit($event)\"\n ></fdp-search-field\n ></fd-toolbar>\n </ng-template> -->\n", styles: [":host{display:block;width:100%;position:relative}:host ::ng-deep .fd-toolbar{flex-wrap:nowrap!important}:host ::ng-deep .fd-toolbar{border-top:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-right:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}:host fd-toolbar.s ::ng-deep .fd-toolbar{justify-content:end}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.DynamicFormToolbaritemComponent, selector: "bnrc-dynamic-form-toolbaritem", inputs: ["mo", "index", "deviceName", "deviceSize", "context", "btn", "isEnable", "showText", "allColumns", "conditionalFormats"], outputs: ["btnClick"] }, { kind: "directive", type: i2.UlvCommandDirective, selector: "[ulvCommandHandler]", inputs: ["ulvCommandHandler", "disable"], outputs: ["commandClick"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i5.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i5.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "directive", type: i5.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i5.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i5.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "glyph", "submenuIndicator", "ariaHidden"] }, { kind: "directive", type: i5.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i6.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "disabled", "mainActionTitle", "fdType", "expandButtonAriaLabel", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { kind: "component", type: i7.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i7.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "component", type: i7.ToolbarSpacerComponent, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "component", type: i7.ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "directive", type: i7.ToolbarOverflowPriorityDirective, selector: "[fdOverflowPriority]", inputs: ["fdOverflowPriority"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
54
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UlvToolbarComponent, decorators: [{
55
55
  type: Component,
56
- args: [{ selector: 'bsu-ulv-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-toolbar\n #toolbar\n [shouldOverflow]=\"deviceSize === 's'\"\n [hasTitle]=\"!hideTitle\"\n [clearBorder]=\"true\"\n [forceOverflow]=\"false\"\n [title]=\"!hideTitle && deviceSize !== 's' ? (title | bbbTranslate) : ''\"\n *ngIf=\"!useLayoutItemTextForControl && !hideToolbar\"\n>\n <fd-toolbar-spacer *ngIf=\"deviceSize !== 's'\" fd-toolbar-item></fd-toolbar-spacer>\n\n <ng-container *ngIf=\"!hideToolbar\">\n <ng-container *ngFor=\"let btn of toolbarButtons; trackBy: _trackBy; let i = index\">\n <button\n *ngIf=\"btn !== '-' && btn.Command && !btn.Command.CustomUi\"\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"btn.Command?.IsBuiltin ? 'low' : 'high'\"\n [ulvCommandHandler]=\"btn\"\n [disable]=\"inlineEditMode && btn.text === ('New' | bbbTranslate)\"\n [disabled]=\"btn.Command._isEnable === false ? true : false\"\n [fdType]=\"!btn.Command._isEnable ? 'transparent' : btn.Command.JsonExtraProp?.Design || 'transparent'\"\n [glyph]=\"btn.Command.JsonExtraProp?.Icon\"\n [title]=\"(btn.Command?.IsBuiltin ? btn.text : '') | bbbTranslate\"\n (click)=\"inlineEditMode && createNewInlineMo.emit()\"\n >\n <img\n *ngIf=\"!btn.Command.JsonExtraProp?.Icon && !btn.Command?.IsBuiltin && btn.icon\"\n width=\"16\"\n [src]=\"btn.icon\"\n />\n <span *ngIf=\"!btn.hideText\">{{ btn.text | bbbTranslate }}</span>\n </button>\n <fd-toolbar-separator\n fd-toolbar-item\n *ngIf=\"(btn === '-' || btn.type === 'seperator') && deviceName !== 'mobile'\"\n ></fd-toolbar-separator>\n <fd-split-button\n *ngIf=\"btn.menu\"\n fd-toolbar-item\n [fdType]=\"'transparent'\"\n [mainAction]=\"{ mainActionTitle: (btn.text | bbbTranslate), keepMainAction: true }\"\n >\n <fd-menu>\n <li fd-menu-item *ngFor=\"let btnCommand of btn.menu.items\" [ulvCommandHandler]=\"btnCommand\">\n <div fd-menu-interactive>\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\n </div>\n </li>\n </fd-menu>\n </fd-split-button>\n <bnrc-dynamic-form-toolbaritem\n *ngIf=\"btn !== '-' && btn.Command && btn.Command.CustomUi\"\n fd-toolbar-item\n [ulvCommandHandler]=\"btn\"\n [component]=\"btn.Command?.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n ></bnrc-dynamic-form-toolbaritem>\n </ng-container>\n <ng-content select=\"[fd-toolbar-item]\"></ng-content>\n\n <ng-container *ngIf=\"gridSetting && gridSetting.Hidden !== true\">\n <!-- <fdp-search-field\n *ngIf=\"enableSearch === true\"\n fd-toolbar-item\n placeholder=\"\u0639\u0628\u0627\u0631\u062A \u062C\u0633\u062A\u062C\u0648\"\n [suggestions]=\"[]\"\n [contentDensity]=\"contentDensity\"\n (searchSubmit)=\"onSearchSubmit($event)\"\n ></fdp-search-field> -->\n\n <!-- <fdp-button-->\n <!-- fd-toolbar-item-->\n <!-- [contentDensity]=\"contentDensity\"-->\n <!-- buttonType=\"transparent\"-->\n <!-- [label]=\"device === 'mobile' ? ('Filter' | bbbTranslate) : ''\"-->\n <!-- [glyph]=\"'filter'\"-->\n <!-- >-->\n <!-- </fdp-button>-->\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [glyph]=\"'group-2'\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onGroupbySettings()\"\n [title]=\"'Groups' | bbbTranslate\"\n ></button>\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [glyph]=\"'sort'\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onSortSettings()\"\n [title]=\"'Sort' | bbbTranslate\"\n ></button>\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [glyph]=\"'action-settings'\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onColumnSettings()\"\n [title]=\"'Columns' | bbbTranslate\"\n ></button>\n <button\n *ngIf=\"allowInlineEdit && access.Edit\"\n fd-button\n fd-toolbar-item\n [fdType]=\"inlineEditMode ? 'emphasized' : 'transparent'\"\n [glyph]=\"'edit'\"\n (click)=\"onEditMode()\"\n [attr.fdOverflowPriority]=\"'always'\"\n [title]=\"'Edit' | bbbTranslate\"\n ></button>\n\n <fd-split-button\n *ngIf=\"viewCollection && viewCollection.length > 1\"\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"deviceSize === 's' ? 'always' : 'low'\"\n [fdType]=\"'transparent'\"\n [mainAction]=\"{\n keepMainAction: true,\n mainActionTitle: splitBtnTitle\n }\"\n >\n <fd-menu>\n <li fd-menu-item *ngFor=\"let viewObject of viewCollection\">\n <div fd-menu-interactive (click)=\"onChangeView(viewObject)\">\n <span fd-menu-title>\n <fd-icon [glyph]=\"viewObject.UiComponent.Settings?.Icon\"> </fd-icon>\n </span>\n </div>\n </li>\n </fd-menu>\n </fd-split-button>\n <ng-template #splitBtnTitle>\n <fd-icon [glyph]=\"reportView.UiComponent.Settings?.Icon\"></fd-icon>\n </ng-template>\n </ng-container>\n </ng-container>\n</fd-toolbar>\n<!-- <ng-template #searchField>\n <fd-toolbar *ngIf=\"enableSearch\">\n <fdp-search-field\n fd-toolbar-item\n placeholder=\"\u0639\u0628\u0627\u0631\u062A \u062C\u0633\u062A\u062C\u0648\"\n [suggestions]=\"[]\"\n [contentDensity]=\"contentDensity\"\n (searchSubmit)=\"onSearchSubmit($event)\"\n ></fdp-search-field\n ></fd-toolbar>\n </ng-template> -->\n", styles: [":host{display:block;width:100%;position:relative}:host ::ng-deep .fd-toolbar{flex-wrap:nowrap!important}:host ::ng-deep .fd-toolbar{border-top:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-right:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}\n"] }]
56
+ args: [{ selector: 'bsu-ulv-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-toolbar\n #toolbar\n [shouldOverflow]=\"deviceSize === 's'\"\n [ngClass]=\"deviceSize\"\n [hasTitle]=\"!hideTitle\"\n [clearBorder]=\"true\"\n [forceOverflow]=\"false\"\n [title]=\"!hideTitle && deviceSize !== 's' ? (title | bbbTranslate) : ''\"\n *ngIf=\"!useLayoutItemTextForControl && !hideToolbar\"\n>\n <fd-toolbar-spacer *ngIf=\"deviceSize !== 's'\" fd-toolbar-item></fd-toolbar-spacer>\n\n <ng-container *ngIf=\"!hideToolbar\">\n <ng-container *ngFor=\"let btn of toolbarButtons; trackBy: _trackBy; let i = index\">\n <button\n *ngIf=\"btn !== '-' && btn.Command && !btn.Command.CustomUi\"\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"btn.itemId === 'Edit' ? 'always' : btn.Command?.IsBuiltin ? 'low' : 'high'\"\n [ulvCommandHandler]=\"btn\"\n [disable]=\"inlineEditMode && btn.itemId === 'New'\"\n [disabled]=\"btn.Command._isEnable === false ? true : false\"\n [fdType]=\"!btn.Command._isEnable ? 'transparent' : btn.Command.JsonExtraProp?.Design || 'transparent'\"\n [glyph]=\"btn.Command.JsonExtraProp?.Icon\"\n [title]=\"(btn.Command?.IsBuiltin ? btn.text : '') | bbbTranslate\"\n (click)=\"inlineEditMode && createNewInlineMo.emit()\"\n >\n <img\n *ngIf=\"!btn.Command.JsonExtraProp?.Icon && !btn.Command?.IsBuiltin && btn.icon\"\n width=\"16\"\n [src]=\"btn.icon\"\n />\n <span *ngIf=\"!btn.hideText\">{{ btn.text | bbbTranslate }}</span>\n </button>\n <fd-toolbar-separator\n fd-toolbar-item\n *ngIf=\"(btn === '-' || btn.type === 'seperator') && deviceName !== 'mobile'\"\n ></fd-toolbar-separator>\n <fd-split-button\n *ngIf=\"btn.menu\"\n fd-toolbar-item\n [fdType]=\"'transparent'\"\n [mainAction]=\"{ mainActionTitle: (btn.text | bbbTranslate), keepMainAction: true }\"\n >\n <fd-menu>\n <li fd-menu-item *ngFor=\"let btnCommand of btn.menu.items\" [ulvCommandHandler]=\"btnCommand\">\n <div fd-menu-interactive>\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\n </div>\n </li>\n </fd-menu>\n </fd-split-button>\n <bnrc-dynamic-form-toolbaritem\n *ngIf=\"btn !== '-' && btn.Command && btn.Command.CustomUi\"\n fd-toolbar-item\n [ulvCommandHandler]=\"btn\"\n [component]=\"btn.Command?.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n ></bnrc-dynamic-form-toolbaritem>\n </ng-container>\n <ng-content select=\"[fd-toolbar-item]\"></ng-content>\n\n <ng-container *ngIf=\"gridSetting && gridSetting.Hidden !== true\">\n <!-- <fdp-search-field\n *ngIf=\"enableSearch === true\"\n fd-toolbar-item\n placeholder=\"\u0639\u0628\u0627\u0631\u062A \u062C\u0633\u062A\u062C\u0648\"\n [suggestions]=\"[]\"\n [contentDensity]=\"contentDensity\"\n (searchSubmit)=\"onSearchSubmit($event)\"\n ></fdp-search-field> -->\n\n <!-- <fdp-button-->\n <!-- fd-toolbar-item-->\n <!-- [contentDensity]=\"contentDensity\"-->\n <!-- buttonType=\"transparent\"-->\n <!-- [label]=\"device === 'mobile' ? ('Filter' | bbbTranslate) : ''\"-->\n <!-- [glyph]=\"'filter'\"-->\n <!-- >-->\n <!-- </fdp-button>-->\n <!-- \n <button\n *ngIf=\"allowInlineEdit && access.Edit\"\n fd-button\n fd-toolbar-item\n [fdType]=\"inlineEditMode ? 'emphasized' : 'transparent'\"\n [glyph]=\"'edit'\"\n (click)=\"onEditMode()\"\n [attr.fdOverflowPriority]=\"'always'\"\n [title]=\"'Inline Edit In List' | bbbTranslate\"\n ></button> -->\n\n <button\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"'never'\"\n [fdMenu]=\"true\"\n fdType=\"transparent\"\n glyph=\"action-settings\"\n [title]=\"'Settings' | bbbTranslate\"\n [fdMenuTrigger]=\"tableMenuSettings\"\n ></button>\n\n <fd-menu #tableMenuSettings>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onColumnSettings()\">\n <fd-menu-addon position=\"before\" glyph=\"action-settings\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Columns' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onSortSettings()\">\n <fd-menu-addon position=\"before\" glyph=\"sort\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Sort' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onGroupbySettings()\">\n <fd-menu-addon position=\"before\" glyph=\"group-2\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Groups' | bbbTranslate }}\n </span>\n </div>\n </li>\n </fd-menu>\n\n <fd-split-button\n *ngIf=\"viewCollection && viewCollection.length > 1\"\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"deviceSize === 's' ? 'always' : 'low'\"\n [fdType]=\"'transparent'\"\n [mainAction]=\"{\n keepMainAction: true,\n mainActionTitle: splitBtnTitle\n }\"\n >\n <fd-menu>\n <li fd-menu-item *ngFor=\"let viewObject of viewCollection\">\n <div fd-menu-interactive (click)=\"onChangeView(viewObject)\">\n <span fd-menu-title>\n <fd-icon [glyph]=\"viewObject.UiComponent.Settings?.Icon\"> </fd-icon>\n </span>\n </div>\n </li>\n </fd-menu>\n </fd-split-button>\n <ng-template #splitBtnTitle>\n <fd-icon [glyph]=\"reportView.UiComponent.Settings?.Icon\"></fd-icon>\n </ng-template>\n <ng-template #splitBtnSettings>\n <fd-icon [glyph]=\"'action-settings'\"></fd-icon>\n </ng-template>\n </ng-container>\n </ng-container>\n</fd-toolbar>\n<!-- <ng-template #searchField>\n <fd-toolbar *ngIf=\"enableSearch\">\n <fdp-search-field\n fd-toolbar-item\n placeholder=\"\u0639\u0628\u0627\u0631\u062A \u062C\u0633\u062A\u062C\u0648\"\n [suggestions]=\"[]\"\n [contentDensity]=\"contentDensity\"\n (searchSubmit)=\"onSearchSubmit($event)\"\n ></fdp-search-field\n ></fd-toolbar>\n </ng-template> -->\n", styles: [":host{display:block;width:100%;position:relative}:host ::ng-deep .fd-toolbar{flex-wrap:nowrap!important}:host ::ng-deep .fd-toolbar{border-top:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-right:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}:host fd-toolbar.s ::ng-deep .fd-toolbar{justify-content:end}\n"] }]
57
57
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { useLayoutItemTextForControl: [{
58
58
  type: Input
59
59
  }], enableSearch: [{
@@ -111,4 +111,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
111
111
  }], createNewInlineMo: [{
112
112
  type: Output
113
113
  }] } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LXRvb2xiYXIvdWx2LXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LXRvb2xiYXIvdWx2LXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRVQsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUNILGFBQWEsRUFLaEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7O0FBUTlCLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBZ0NsRCxZQUFtQixFQUFjO1FBQzdCLEtBQUssRUFBRSxDQUFDO1FBRE8sT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQTdCeEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQW9CakIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDcEMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3ZDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN6QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBQ2pELHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFLdkQsQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxpQkFBaUI7UUFDYixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELGNBQWM7UUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNELGdCQUFnQjtRQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsVUFBVTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNELFlBQVksQ0FBQyxJQUFzQjtRQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQ0QsY0FBYyxDQUFDLE1BQW1CO1FBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQ2hCLE9BQU8sSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUN4QixDQUFDO0lBQ00sUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDOztnSEE5RFEsbUJBQW1CO29HQUFuQixtQkFBbUIsZzVCQzNCaEMsc25PQWdLQTsyRkRySWEsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNJLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNO2lHQUd0QywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDSSxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcbmltcG9ydCB7IFNlYXJjaElucHV0IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybSc7XG5cbmltcG9ydCB7XG4gICAgQmFzZUNvbXBvbmVudCxcbiAgICBEZWZhdWx0Q29tbWFuZHNBY2Nlc3MsXG4gICAgQWJicmV2YXRpb25EZXZpY2VTaXplLFxuICAgIERldmljZVNpemUsXG4gICAgVWlSZXBvcnRWaWV3QmFzZVxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LXVsdi10b29sYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWx2LXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Vsdi10b29sYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVWx2VG9vbGJhckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIHVzZUxheW91dEl0ZW1UZXh0Rm9yQ29udHJvbDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBlbmFibGVTZWFyY2g6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaGlkZVRpdGxlID0gZmFsc2U7XG4gICAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBkZXZpY2VOYW1lOiBEZXZpY2VTaXplO1xuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcbiAgICBASW5wdXQoKSBhY2Nlc3M6IERlZmF1bHRDb21tYW5kc0FjY2VzcztcbiAgICBASW5wdXQoKSBoaWRlVG9vbGJhcjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSB0b29sYmFyQnV0dG9uczogYW55W107XG4gICAgQElucHV0KCkgY29udGVudERlbnNpdHk6IENvbnRlbnREZW5zaXR5O1xuICAgIEBJbnB1dCgpIGlubGluZUVkaXRNb2RlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGFsbG93SW5saW5lRWRpdDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBncmlkU2V0dGluZzogYW55O1xuICAgIEBJbnB1dCgpIHZpZXdDb2xsZWN0aW9uOiBhbnlbXTtcbiAgICBASW5wdXQoKSByZXBvcnRWaWV3OiBVaVJlcG9ydFZpZXdCYXNlO1xuICAgIEBJbnB1dCgpIGluRGlhbG9nOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGlzTXVsdGlTZWxlY3Q6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSBoYXNTZWxlY3RlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBjb25maWc6IGFueTtcbiAgICBASW5wdXQoKSBoaWRkZW46IGJvb2xlYW47XG4gICAgQElucHV0KCkgYnV0dG9uczogYW55W107XG4gICAgQE91dHB1dCgpIHNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAgIEBPdXRwdXQoKSBncm91cGJ5Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgICBAT3V0cHV0KCkgc29ydENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgQE91dHB1dCgpIGNvbHVtbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgQE91dHB1dCgpIGVkaXRNb2RlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHZpZXdDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8VWlSZXBvcnRWaWV3QmFzZT4oKTtcbiAgICBAT3V0cHV0KCkgY3JlYXRlTmV3SW5saW5lTW8gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgc2VhcmNoVGVybTogc3RyaW5nO1xuICAgIGVuYWJsZTogYm9vbGVhbjtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICB9XG5cbiAgICBvbkdyb3VwYnlTZXR0aW5ncygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ncm91cGJ5Q2xpY2suZW1pdCh0aGlzLmRldmljZU5hbWUpO1xuICAgIH1cbiAgICBvblNvcnRTZXR0aW5ncygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zb3J0Q2xpY2suZW1pdCh0aGlzLmRldmljZU5hbWUpO1xuICAgIH1cbiAgICBvbkNvbHVtblNldHRpbmdzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbHVtbkNsaWNrLmVtaXQodGhpcy5kZXZpY2VOYW1lKTtcbiAgICB9XG4gICAgb25FZGl0TW9kZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0TW9kZUNsaWNrLmVtaXQoKTtcbiAgICB9XG4gICAgb25DaGFuZ2VWaWV3KHZpZXc6IFVpUmVwb3J0Vmlld0Jhc2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3Q2xpY2suZW1pdCh2aWV3KTtcbiAgICB9XG4gICAgb25TZWFyY2hTdWJtaXQoJGV2ZW50OiBTZWFyY2hJbnB1dCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlYXJjaC5lbWl0KCRldmVudC50ZXh0KTtcbiAgICB9XG4gICAgX3RyYWNrQnkoaW5kZXgsIGl0ZW0pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaXRlbT8uaXRlbUlkO1xuICAgIH1cbiAgICBwdWJsaWMgaWRlbnRpZnkoaW5kZXgsIGl0ZW0pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaXRlbS50ZXh0O1xuICAgIH1cbn1cbiIsIjxmZC10b29sYmFyXG4gICAgI3Rvb2xiYXJcbiAgICBbc2hvdWxkT3ZlcmZsb3ddPVwiZGV2aWNlU2l6ZSA9PT0gJ3MnXCJcbiAgICBbaGFzVGl0bGVdPVwiIWhpZGVUaXRsZVwiXG4gICAgW2NsZWFyQm9yZGVyXT1cInRydWVcIlxuICAgIFtmb3JjZU92ZXJmbG93XT1cImZhbHNlXCJcbiAgICBbdGl0bGVdPVwiIWhpZGVUaXRsZSAmJiBkZXZpY2VTaXplICE9PSAncycgPyAodGl0bGUgfCBiYmJUcmFuc2xhdGUpIDogJydcIlxuICAgICpuZ0lmPVwiIXVzZUxheW91dEl0ZW1UZXh0Rm9yQ29udHJvbCAmJiAhaGlkZVRvb2xiYXJcIlxuPlxuICAgIDxmZC10b29sYmFyLXNwYWNlciAqbmdJZj1cImRldmljZVNpemUgIT09ICdzJ1wiIGZkLXRvb2xiYXItaXRlbT48L2ZkLXRvb2xiYXItc3BhY2VyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoaWRlVG9vbGJhclwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidG4gb2YgdG9vbGJhckJ1dHRvbnM7IHRyYWNrQnk6IF90cmFja0J5OyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJidG4gIT09ICctJyAmJiBidG4uQ29tbWFuZCAmJiAhYnRuLkNvbW1hbmQuQ3VzdG9tVWlcIlxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgIFthdHRyLmZkT3ZlcmZsb3dQcmlvcml0eV09XCJidG4uQ29tbWFuZD8uSXNCdWlsdGluID8gJ2xvdycgOiAnaGlnaCdcIlxuICAgICAgICAgICAgICAgIFt1bHZDb21tYW5kSGFuZGxlcl09XCJidG5cIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlXT1cImlubGluZUVkaXRNb2RlICYmIGJ0bi50ZXh0ID09PSAoJ05ldycgfCBiYmJUcmFuc2xhdGUpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYnRuLkNvbW1hbmQuX2lzRW5hYmxlID09PSBmYWxzZSA/IHRydWUgOiBmYWxzZVwiXG4gICAgICAgICAgICAgICAgW2ZkVHlwZV09XCIhYnRuLkNvbW1hbmQuX2lzRW5hYmxlID8gJ3RyYW5zcGFyZW50JyA6IGJ0bi5Db21tYW5kLkpzb25FeHRyYVByb3A/LkRlc2lnbiB8fCAndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiYnRuLkNvbW1hbmQuSnNvbkV4dHJhUHJvcD8uSWNvblwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cIihidG4uQ29tbWFuZD8uSXNCdWlsdGluID8gYnRuLnRleHQgOiAnJykgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpbmxpbmVFZGl0TW9kZSAmJiBjcmVhdGVOZXdJbmxpbmVNby5lbWl0KClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhYnRuLkNvbW1hbmQuSnNvbkV4dHJhUHJvcD8uSWNvbiAmJiAhYnRuLkNvbW1hbmQ/LklzQnVpbHRpbiAmJiBidG4uaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTZcIlxuICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImJ0bi5pY29uXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWJ0bi5oaWRlVGV4dFwiPnt7IGJ0bi50ZXh0IHwgYmJiVHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8ZmQtdG9vbGJhci1zZXBhcmF0b3JcbiAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAqbmdJZj1cIihidG4gPT09ICctJyB8fCBidG4udHlwZSA9PT0gJ3NlcGVyYXRvcicpICYmIGRldmljZU5hbWUgIT09ICdtb2JpbGUnXCJcbiAgICAgICAgICAgID48L2ZkLXRvb2xiYXItc2VwYXJhdG9yPlxuICAgICAgICAgICAgPGZkLXNwbGl0LWJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiYnRuLm1lbnVcIlxuICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgW21haW5BY3Rpb25dPVwieyBtYWluQWN0aW9uVGl0bGU6IChidG4udGV4dCB8IGJiYlRyYW5zbGF0ZSksIGtlZXBNYWluQWN0aW9uOiB0cnVlIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmZC1tZW51PlxuICAgICAgICAgICAgICAgICAgICA8bGkgZmQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBidG5Db21tYW5kIG9mIGJ0bi5tZW51Lml0ZW1zXCIgW3VsdkNvbW1hbmRIYW5kbGVyXT1cImJ0bkNvbW1hbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPnt7IGJ0bkNvbW1hbmQudGV4dCB8IGJiYlRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvZmQtbWVudT5cbiAgICAgICAgICAgIDwvZmQtc3BsaXQtYnV0dG9uPlxuICAgICAgICAgICAgPGJucmMtZHluYW1pYy1mb3JtLXRvb2xiYXJpdGVtXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJidG4gIT09ICctJyAmJiBidG4uQ29tbWFuZCAmJiBidG4uQ29tbWFuZC5DdXN0b21VaVwiXG4gICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgW3VsdkNvbW1hbmRIYW5kbGVyXT1cImJ0blwiXG4gICAgICAgICAgICAgICAgW2NvbXBvbmVudF09XCJidG4uQ29tbWFuZD8uQ3VzdG9tVWlcIlxuICAgICAgICAgICAgICAgIFtjb250ZXh0XT1cImJ0blwiXG4gICAgICAgICAgICAgICAgW2lzRW5hYmxlXT1cImJ0bi5Db21tYW5kPy5faXNFbmFibGVcIlxuICAgICAgICAgICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAgICAgPjwvYm5yYy1keW5hbWljLWZvcm0tdG9vbGJhcml0ZW0+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZmQtdG9vbGJhci1pdGVtXVwiPjwvbmctY29udGVudD5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JpZFNldHRpbmcgJiYgZ3JpZFNldHRpbmcuSGlkZGVuICE9PSB0cnVlXCI+XG4gICAgICAgICAgICA8IS0tIDxmZHAtc2VhcmNoLWZpZWxkXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZW5hYmxlU2VhcmNoID09PSB0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi2LnYqNin2LHYqiDYrNiz2KrYrNmIXCJcbiAgICAgICAgICAgICAgICAgICAgW3N1Z2dlc3Rpb25zXT1cIltdXCJcbiAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgKHNlYXJjaFN1Ym1pdCk9XCJvblNlYXJjaFN1Ym1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+PC9mZHAtc2VhcmNoLWZpZWxkPiAtLT5cblxuICAgICAgICAgICAgPCEtLSAgICAgICAgPGZkcC1idXR0b24tLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgZmQtdG9vbGJhci1pdGVtLS0+XG4gICAgICAgICAgICA8IS0tICAgICAgICAgIFtjb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiLS0+XG4gICAgICAgICAgICA8IS0tICAgICAgICAgIGJ1dHRvblR5cGU9XCJ0cmFuc3BhcmVudFwiLS0+XG4gICAgICAgICAgICA8IS0tICAgICAgICAgIFtsYWJlbF09XCJkZXZpY2UgPT09ICdtb2JpbGUnID8gKCdGaWx0ZXInIHwgYmJiVHJhbnNsYXRlKSA6ICcnXCItLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgW2dseXBoXT1cIidmaWx0ZXInXCItLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgID4tLT5cbiAgICAgICAgICAgIDwhLS0gICAgICAgIDwvZmRwLWJ1dHRvbj4tLT5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiJ2dyb3VwLTInXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5mZE92ZXJmbG93UHJpb3JpdHldPVwiJ2Fsd2F5cydcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkdyb3VwYnlTZXR0aW5ncygpXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0dyb3VwcycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgIFtjb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgIFtnbHlwaF09XCInc29ydCdcIlxuICAgICAgICAgICAgICAgIFthdHRyLmZkT3ZlcmZsb3dQcmlvcml0eV09XCInYWx3YXlzJ1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU29ydFNldHRpbmdzKClcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCInU29ydCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgIFtjb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgIFtnbHlwaF09XCInYWN0aW9uLXNldHRpbmdzJ1wiXG4gICAgICAgICAgICAgICAgW2F0dHIuZmRPdmVyZmxvd1ByaW9yaXR5XT1cIidhbHdheXMnXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Db2x1bW5TZXR0aW5ncygpXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0NvbHVtbnMnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImFsbG93SW5saW5lRWRpdCAmJiBhY2Nlc3MuRWRpdFwiXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgW2ZkVHlwZV09XCJpbmxpbmVFZGl0TW9kZSA/ICdlbXBoYXNpemVkJyA6ICd0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgIFtnbHlwaF09XCInZWRpdCdcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkVkaXRNb2RlKClcIlxuICAgICAgICAgICAgICAgIFthdHRyLmZkT3ZlcmZsb3dQcmlvcml0eV09XCInYWx3YXlzJ1wiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cIidFZGl0JyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICA+PC9idXR0b24+XG5cbiAgICAgICAgICAgIDxmZC1zcGxpdC1idXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cInZpZXdDb2xsZWN0aW9uICYmIHZpZXdDb2xsZWN0aW9uLmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgIFthdHRyLmZkT3ZlcmZsb3dQcmlvcml0eV09XCJkZXZpY2VTaXplID09PSAncycgPyAnYWx3YXlzJyA6ICdsb3cnXCJcbiAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgIFttYWluQWN0aW9uXT1cIntcbiAgICAgICAgICAgICAgICAgICAga2VlcE1haW5BY3Rpb246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIG1haW5BY3Rpb25UaXRsZTogc3BsaXRCdG5UaXRsZVxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmZC1tZW51PlxuICAgICAgICAgICAgICAgICAgICA8bGkgZmQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCB2aWV3T2JqZWN0IG9mIHZpZXdDb2xsZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmUgKGNsaWNrKT1cIm9uQ2hhbmdlVmlldyh2aWV3T2JqZWN0KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1pY29uIFtnbHlwaF09XCJ2aWV3T2JqZWN0LlVpQ29tcG9uZW50LlNldHRpbmdzPy5JY29uXCI+IDwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L2ZkLW1lbnU+XG4gICAgICAgICAgICA8L2ZkLXNwbGl0LWJ1dHRvbj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc3BsaXRCdG5UaXRsZT5cbiAgICAgICAgICAgICAgICA8ZmQtaWNvbiBbZ2x5cGhdPVwicmVwb3J0Vmlldy5VaUNvbXBvbmVudC5TZXR0aW5ncz8uSWNvblwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9mZC10b29sYmFyPlxuPCEtLSA8bmctdGVtcGxhdGUgI3NlYXJjaEZpZWxkPlxuICAgICAgICA8ZmQtdG9vbGJhciAqbmdJZj1cImVuYWJsZVNlYXJjaFwiPlxuICAgICAgICAgICAgPGZkcC1zZWFyY2gtZmllbGRcbiAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIti52KjYp9ix2Kog2KzYs9iq2KzZiFwiXG4gICAgICAgICAgICAgICAgW3N1Z2dlc3Rpb25zXT1cIltdXCJcbiAgICAgICAgICAgICAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgIChzZWFyY2hTdWJtaXQpPVwib25TZWFyY2hTdWJtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9mZHAtc2VhcmNoLWZpZWxkXG4gICAgICAgID48L2ZkLXRvb2xiYXI+XG4gICAgPC9uZy10ZW1wbGF0ZT4gLS0+XG4iXX0=
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LXRvb2xiYXIvdWx2LXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LXRvb2xiYXIvdWx2LXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRVQsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUNILGFBQWEsRUFLaEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7O0FBUTlCLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBZ0NsRCxZQUFtQixFQUFjO1FBQzdCLEtBQUssRUFBRSxDQUFDO1FBRE8sT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQTdCeEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQW9CakIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDcEMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3ZDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN6QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBQ2pELHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFLdkQsQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxpQkFBaUI7UUFDYixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELGNBQWM7UUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNELGdCQUFnQjtRQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsVUFBVTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNELFlBQVksQ0FBQyxJQUFzQjtRQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQ0QsY0FBYyxDQUFDLE1BQW1CO1FBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQ2hCLE9BQU8sSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUN4QixDQUFDO0lBQ00sUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDOztnSEE5RFEsbUJBQW1CO29HQUFuQixtQkFBbUIsZzVCQzNCaEMsODNQQTZLQTsyRkRsSmEsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNJLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNO2lHQUd0QywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDSSxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIE91dHB1dCxcclxuICAgIFNpbXBsZUNoYW5nZXNcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udGVudERlbnNpdHkgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5pbXBvcnQgeyBTZWFyY2hJbnB1dCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0nO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEJhc2VDb21wb25lbnQsXHJcbiAgICBEZWZhdWx0Q29tbWFuZHNBY2Nlc3MsXHJcbiAgICBBYmJyZXZhdGlvbkRldmljZVNpemUsXHJcbiAgICBEZXZpY2VTaXplLFxyXG4gICAgVWlSZXBvcnRWaWV3QmFzZVxyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWx2LXRvb2xiYXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Vsdi10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3Vsdi10b29sYmFyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWx2VG9vbGJhckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gICAgQElucHV0KCkgdXNlTGF5b3V0SXRlbVRleHRGb3JDb250cm9sOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgZW5hYmxlU2VhcmNoOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaGlkZVRpdGxlID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgZGV2aWNlTmFtZTogRGV2aWNlU2l6ZTtcclxuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcclxuICAgIEBJbnB1dCgpIGFjY2VzczogRGVmYXVsdENvbW1hbmRzQWNjZXNzO1xyXG4gICAgQElucHV0KCkgaGlkZVRvb2xiYXI6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSB0b29sYmFyQnV0dG9uczogYW55W107XHJcbiAgICBASW5wdXQoKSBjb250ZW50RGVuc2l0eTogQ29udGVudERlbnNpdHk7XHJcbiAgICBASW5wdXQoKSBpbmxpbmVFZGl0TW9kZTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGFsbG93SW5saW5lRWRpdDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGdyaWRTZXR0aW5nOiBhbnk7XHJcbiAgICBASW5wdXQoKSB2aWV3Q29sbGVjdGlvbjogYW55W107XHJcbiAgICBASW5wdXQoKSByZXBvcnRWaWV3OiBVaVJlcG9ydFZpZXdCYXNlO1xyXG4gICAgQElucHV0KCkgaW5EaWFsb2c6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBpc011bHRpU2VsZWN0OiBib29sZWFuO1xyXG5cclxuICAgIEBJbnB1dCgpIGhhc1NlbGVjdGVkOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgY29uZmlnOiBhbnk7XHJcbiAgICBASW5wdXQoKSBoaWRkZW46IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBidXR0b25zOiBhbnlbXTtcclxuICAgIEBPdXRwdXQoKSBzZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICAgIEBPdXRwdXQoKSBncm91cGJ5Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICAgIEBPdXRwdXQoKSBzb3J0Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICAgIEBPdXRwdXQoKSBjb2x1bW5DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgQE91dHB1dCgpIGVkaXRNb2RlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgdmlld0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxVaVJlcG9ydFZpZXdCYXNlPigpO1xyXG4gICAgQE91dHB1dCgpIGNyZWF0ZU5ld0lubGluZU1vID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgc2VhcmNoVGVybTogc3RyaW5nO1xyXG4gICAgZW5hYmxlOiBib29sZWFuO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkdyb3VwYnlTZXR0aW5ncygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmdyb3VwYnlDbGljay5lbWl0KHRoaXMuZGV2aWNlTmFtZSk7XHJcbiAgICB9XHJcbiAgICBvblNvcnRTZXR0aW5ncygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNvcnRDbGljay5lbWl0KHRoaXMuZGV2aWNlTmFtZSk7XHJcbiAgICB9XHJcbiAgICBvbkNvbHVtblNldHRpbmdzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY29sdW1uQ2xpY2suZW1pdCh0aGlzLmRldmljZU5hbWUpO1xyXG4gICAgfVxyXG4gICAgb25FZGl0TW9kZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmVkaXRNb2RlQ2xpY2suZW1pdCgpO1xyXG4gICAgfVxyXG4gICAgb25DaGFuZ2VWaWV3KHZpZXc6IFVpUmVwb3J0Vmlld0Jhc2UpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZpZXdDbGljay5lbWl0KHZpZXcpO1xyXG4gICAgfVxyXG4gICAgb25TZWFyY2hTdWJtaXQoJGV2ZW50OiBTZWFyY2hJbnB1dCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoLmVtaXQoJGV2ZW50LnRleHQpO1xyXG4gICAgfVxyXG4gICAgX3RyYWNrQnkoaW5kZXgsIGl0ZW0pOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBpdGVtPy5pdGVtSWQ7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgaWRlbnRpZnkoaW5kZXgsIGl0ZW0pOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnRleHQ7XHJcbiAgICB9XHJcbn1cclxuIiwiPGZkLXRvb2xiYXJcbiAgICAjdG9vbGJhclxuICAgIFtzaG91bGRPdmVyZmxvd109XCJkZXZpY2VTaXplID09PSAncydcIlxuICAgIFtuZ0NsYXNzXT1cImRldmljZVNpemVcIlxuICAgIFtoYXNUaXRsZV09XCIhaGlkZVRpdGxlXCJcbiAgICBbY2xlYXJCb3JkZXJdPVwidHJ1ZVwiXG4gICAgW2ZvcmNlT3ZlcmZsb3ddPVwiZmFsc2VcIlxuICAgIFt0aXRsZV09XCIhaGlkZVRpdGxlICYmIGRldmljZVNpemUgIT09ICdzJyA/ICh0aXRsZSB8IGJiYlRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgKm5nSWY9XCIhdXNlTGF5b3V0SXRlbVRleHRGb3JDb250cm9sICYmICFoaWRlVG9vbGJhclwiXG4+XG4gICAgPGZkLXRvb2xiYXItc3BhY2VyICpuZ0lmPVwiZGV2aWNlU2l6ZSAhPT0gJ3MnXCIgZmQtdG9vbGJhci1pdGVtPjwvZmQtdG9vbGJhci1zcGFjZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGVUb29sYmFyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ0biBvZiB0b29sYmFyQnV0dG9uczsgdHJhY2tCeTogX3RyYWNrQnk7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImJ0biAhPT0gJy0nICYmIGJ0bi5Db21tYW5kICYmICFidG4uQ29tbWFuZC5DdXN0b21VaVwiXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgW2F0dHIuZmRPdmVyZmxvd1ByaW9yaXR5XT1cImJ0bi5pdGVtSWQgPT09ICdFZGl0JyA/ICdhbHdheXMnIDogYnRuLkNvbW1hbmQ/LklzQnVpbHRpbiA/ICdsb3cnIDogJ2hpZ2gnXCJcbiAgICAgICAgICAgICAgICBbdWx2Q29tbWFuZEhhbmRsZXJdPVwiYnRuXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZV09XCJpbmxpbmVFZGl0TW9kZSAmJiBidG4uaXRlbUlkID09PSAnTmV3J1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImJ0bi5Db21tYW5kLl9pc0VuYWJsZSA9PT0gZmFsc2UgPyB0cnVlIDogZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiIWJ0bi5Db21tYW5kLl9pc0VuYWJsZSA/ICd0cmFuc3BhcmVudCcgOiBidG4uQ29tbWFuZC5Kc29uRXh0cmFQcm9wPy5EZXNpZ24gfHwgJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgW2dseXBoXT1cImJ0bi5Db21tYW5kLkpzb25FeHRyYVByb3A/Lkljb25cIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCIoYnRuLkNvbW1hbmQ/LklzQnVpbHRpbiA/IGJ0bi50ZXh0IDogJycpIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW5saW5lRWRpdE1vZGUgJiYgY3JlYXRlTmV3SW5saW5lTW8uZW1pdCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWJ0bi5Db21tYW5kLkpzb25FeHRyYVByb3A/Lkljb24gJiYgIWJ0bi5Db21tYW5kPy5Jc0J1aWx0aW4gJiYgYnRuLmljb25cIlxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE2XCJcbiAgICAgICAgICAgICAgICAgICAgW3NyY109XCJidG4uaWNvblwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFidG4uaGlkZVRleHRcIj57eyBidG4udGV4dCB8IGJiYlRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGZkLXRvb2xiYXItc2VwYXJhdG9yXG4gICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIoYnRuID09PSAnLScgfHwgYnRuLnR5cGUgPT09ICdzZXBlcmF0b3InKSAmJiBkZXZpY2VOYW1lICE9PSAnbW9iaWxlJ1wiXG4gICAgICAgICAgICA+PC9mZC10b29sYmFyLXNlcGFyYXRvcj5cbiAgICAgICAgICAgIDxmZC1zcGxpdC1idXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImJ0bi5tZW51XCJcbiAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgIFttYWluQWN0aW9uXT1cInsgbWFpbkFjdGlvblRpdGxlOiAoYnRuLnRleHQgfCBiYmJUcmFuc2xhdGUpLCBrZWVwTWFpbkFjdGlvbjogdHJ1ZSB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZmQtbWVudT5cbiAgICAgICAgICAgICAgICAgICAgPGxpIGZkLW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQgYnRuQ29tbWFuZCBvZiBidG4ubWVudS5pdGVtc1wiIFt1bHZDb21tYW5kSGFuZGxlcl09XCJidG5Db21tYW5kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT57eyBidG5Db21tYW5kLnRleHQgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L2ZkLW1lbnU+XG4gICAgICAgICAgICA8L2ZkLXNwbGl0LWJ1dHRvbj5cbiAgICAgICAgICAgIDxibnJjLWR5bmFtaWMtZm9ybS10b29sYmFyaXRlbVxuICAgICAgICAgICAgICAgICpuZ0lmPVwiYnRuICE9PSAnLScgJiYgYnRuLkNvbW1hbmQgJiYgYnRuLkNvbW1hbmQuQ3VzdG9tVWlcIlxuICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgIFt1bHZDb21tYW5kSGFuZGxlcl09XCJidG5cIlxuICAgICAgICAgICAgICAgIFtjb21wb25lbnRdPVwiYnRuLkNvbW1hbmQ/LkN1c3RvbVVpXCJcbiAgICAgICAgICAgICAgICBbY29udGV4dF09XCJidG5cIlxuICAgICAgICAgICAgICAgIFtpc0VuYWJsZV09XCJidG4uQ29tbWFuZD8uX2lzRW5hYmxlXCJcbiAgICAgICAgICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgICAgID48L2JucmMtZHluYW1pYy1mb3JtLXRvb2xiYXJpdGVtPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZkLXRvb2xiYXItaXRlbV1cIj48L25nLWNvbnRlbnQ+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdyaWRTZXR0aW5nICYmIGdyaWRTZXR0aW5nLkhpZGRlbiAhPT0gdHJ1ZVwiPlxuICAgICAgICAgICAgPCEtLSA8ZmRwLXNlYXJjaC1maWVsZFxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImVuYWJsZVNlYXJjaCA9PT0gdHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIti52KjYp9ix2Kog2KzYs9iq2KzZiFwiXG4gICAgICAgICAgICAgICAgICAgIFtzdWdnZXN0aW9uc109XCJbXVwiXG4gICAgICAgICAgICAgICAgICAgIFtjb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgIChzZWFyY2hTdWJtaXQpPVwib25TZWFyY2hTdWJtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPjwvZmRwLXNlYXJjaC1maWVsZD4gLS0+XG5cbiAgICAgICAgICAgIDwhLS0gICAgICAgIDxmZHAtYnV0dG9uLS0+XG4gICAgICAgICAgICA8IS0tICAgICAgICAgIGZkLXRvb2xiYXItaXRlbS0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIi0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICBidXR0b25UeXBlPVwidHJhbnNwYXJlbnRcIi0tPlxuICAgICAgICAgICAgPCEtLSAgICAgICAgICBbbGFiZWxdPVwiZGV2aWNlID09PSAnbW9iaWxlJyA/ICgnRmlsdGVyJyB8IGJiYlRyYW5zbGF0ZSkgOiAnJ1wiLS0+XG4gICAgICAgICAgICA8IS0tICAgICAgICAgIFtnbHlwaF09XCInZmlsdGVyJ1wiLS0+XG4gICAgICAgICAgICA8IS0tICAgICAgICA+LS0+XG4gICAgICAgICAgICA8IS0tICAgICAgICA8L2ZkcC1idXR0b24+LS0+XG4gICAgICAgICAgICA8IS0tIFxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiYWxsb3dJbmxpbmVFZGl0ICYmIGFjY2Vzcy5FZGl0XCJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICBbZmRUeXBlXT1cImlubGluZUVkaXRNb2RlID8gJ2VtcGhhc2l6ZWQnIDogJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgW2dseXBoXT1cIidlZGl0J1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRWRpdE1vZGUoKVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZmRPdmVyZmxvd1ByaW9yaXR5XT1cIidhbHdheXMnXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0lubGluZSBFZGl0IEluIExpc3QnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgID48L2J1dHRvbj4gLS0+XG5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICBbYXR0ci5mZE92ZXJmbG93UHJpb3JpdHldPVwiJ25ldmVyJ1wiXG4gICAgICAgICAgICAgICAgW2ZkTWVudV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgZ2x5cGg9XCJhY3Rpb24tc2V0dGluZ3NcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCInU2V0dGluZ3MnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbZmRNZW51VHJpZ2dlcl09XCJ0YWJsZU1lbnVTZXR0aW5nc1wiXG4gICAgICAgICAgICA+PC9idXR0b24+XG5cbiAgICAgICAgICAgIDxmZC1tZW51ICN0YWJsZU1lbnVTZXR0aW5ncz5cbiAgICAgICAgICAgICAgICA8bGkgZmQtbWVudS1pdGVtPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmUgKGNsaWNrKT1cInRhYmxlTWVudVNldHRpbmdzLmNsb3NlKCk7IG9uQ29sdW1uU2V0dGluZ3MoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBnbHlwaD1cImFjdGlvbi1zZXR0aW5nc1wiPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0NvbHVtbnMnIHwgYmJiVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPGxpIGZkLW1lbnUtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1tZW51LWludGVyYWN0aXZlIChjbGljayk9XCJ0YWJsZU1lbnVTZXR0aW5ncy5jbG9zZSgpOyBvblNvcnRTZXR0aW5ncygpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtbWVudS1hZGRvbiBwb3NpdGlvbj1cImJlZm9yZVwiIGdseXBoPVwic29ydFwiPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ1NvcnQnIHwgYmJiVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPGxpIGZkLW1lbnUtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1tZW51LWludGVyYWN0aXZlIChjbGljayk9XCJ0YWJsZU1lbnVTZXR0aW5ncy5jbG9zZSgpOyBvbkdyb3VwYnlTZXR0aW5ncygpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtbWVudS1hZGRvbiBwb3NpdGlvbj1cImJlZm9yZVwiIGdseXBoPVwiZ3JvdXAtMlwiPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0dyb3VwcycgfCBiYmJUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvZmQtbWVudT5cblxuICAgICAgICAgICAgPGZkLXNwbGl0LWJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwidmlld0NvbGxlY3Rpb24gJiYgdmlld0NvbGxlY3Rpb24ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgW2F0dHIuZmRPdmVyZmxvd1ByaW9yaXR5XT1cImRldmljZVNpemUgPT09ICdzJyA/ICdhbHdheXMnIDogJ2xvdydcIlxuICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgW21haW5BY3Rpb25dPVwie1xuICAgICAgICAgICAgICAgICAgICBrZWVwTWFpbkFjdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgbWFpbkFjdGlvblRpdGxlOiBzcGxpdEJ0blRpdGxlXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGZkLW1lbnU+XG4gICAgICAgICAgICAgICAgICAgIDxsaSBmZC1tZW51LWl0ZW0gKm5nRm9yPVwibGV0IHZpZXdPYmplY3Qgb2Ygdmlld0NvbGxlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZSAoY2xpY2spPVwib25DaGFuZ2VWaWV3KHZpZXdPYmplY3QpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gW2dseXBoXT1cInZpZXdPYmplY3QuVWlDb21wb25lbnQuU2V0dGluZ3M/Lkljb25cIj4gPC9mZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvZmQtbWVudT5cbiAgICAgICAgICAgIDwvZmQtc3BsaXQtYnV0dG9uPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzcGxpdEJ0blRpdGxlPlxuICAgICAgICAgICAgICAgIDxmZC1pY29uIFtnbHlwaF09XCJyZXBvcnRWaWV3LlVpQ29tcG9uZW50LlNldHRpbmdzPy5JY29uXCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc3BsaXRCdG5TZXR0aW5ncz5cbiAgICAgICAgICAgICAgICA8ZmQtaWNvbiBbZ2x5cGhdPVwiJ2FjdGlvbi1zZXR0aW5ncydcIj48L2ZkLWljb24+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZmQtdG9vbGJhcj5cbjwhLS0gPG5nLXRlbXBsYXRlICNzZWFyY2hGaWVsZD5cbiAgICAgICAgPGZkLXRvb2xiYXIgKm5nSWY9XCJlbmFibGVTZWFyY2hcIj5cbiAgICAgICAgICAgIDxmZHAtc2VhcmNoLWZpZWxkXG4gICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLYudio2KfYsdiqINis2LPYqtis2YhcIlxuICAgICAgICAgICAgICAgIFtzdWdnZXN0aW9uc109XCJbXVwiXG4gICAgICAgICAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAoc2VhcmNoU3VibWl0KT1cIm9uU2VhcmNoU3VibWl0KCRldmVudClcIlxuICAgICAgICAgICAgPjwvZmRwLXNlYXJjaC1maWVsZFxuICAgICAgICA+PC9mZC10b29sYmFyPlxuICAgIDwvbmctdGVtcGxhdGU+IC0tPlxuIl19