barsa-sap-ui 1.0.351 → 1.0.352

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.
@@ -37,10 +37,12 @@ export class BarsaUlvMainComponent extends BaseComponent {
37
37
  this.search = new EventEmitter();
38
38
  this.selectSearchPanelSettings = new EventEmitter();
39
39
  this.isServiceDesk = false;
40
+ this.fillPage = false;
40
41
  this.isServiceDesk = BarsaApi.LoginFormData.IsServiceDesk; // eslint-disable-line
41
42
  }
42
43
  ngOnInit() {
43
44
  super.ngOnInit();
45
+ this.fillPage = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ClassNames.CustomUi.Parameters.FillPage', false);
44
46
  this.isMobile = getDeviceIsMobile();
45
47
  }
46
48
  ngAfterViewInit() {
@@ -96,10 +98,10 @@ export class BarsaUlvMainComponent extends BaseComponent {
96
98
  }
97
99
  }
98
100
  BarsaUlvMainComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaUlvMainComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
99
- BarsaUlvMainComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaUlvMainComponent, selector: "bsu-barsa-ulv-main", inputs: { viewerControl: "viewerControl", loading: "loading", viewerLoading: "viewerLoading", isReportPage: "isReportPage", deviceSize: "deviceSize", title: "title", searchPanelUi: "searchPanelUi", breadCrumbs: "breadCrumbs", allSearchPanelSettings: "allSearchPanelSettings", isAnonymous: "isAnonymous", canSaveGridSetting: "canSaveGridSetting", rtl: "rtl", selectedSearchPanelSettings: "selectedSearchPanelSettings", searchPanelMoChanged: "searchPanelMoChanged", selectedSearchPanelSettingsId: "selectedSearchPanelSettingsId", hideSearchPanel: "hideSearchPanel", pagingSetting: "pagingSetting", contentDensity: "contentDensity", context: "context", isMobile: "isMobile" }, outputs: { close: "close", searchPanelMoChange: "searchPanelMoChange", openManageFilters: "openManageFilters", collapsedChange: "collapsedChange", hideSearchPanelClick: "hideSearchPanelClick", filterSave: "filterSave", filterSaveAs: "filterSaveAs", pageChange: "pageChange", showFilterFieldsSetting: "showFilterFieldsSetting", manageFilters: "manageFilters", clearSearch: "clearSearch", search: "search", selectSearchPanelSettings: "selectSearchPanelSettings" }, viewQueries: [{ propertyName: "_dynamicPageComponent", first: true, predicate: DynamicPageComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- <ng-container *ngIf=\"isReportPage; else reportTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n reportPageTemplate;\n context: {\n $implicit: viewerControl,\n tabMode: viewerControl.Setting?.ClassNames?.CustomUi?.Parameters?.TabMode\n }\n \"\n >\n </ng-container>\n</ng-container> -->\n<ng-container\n *ngTemplateOutlet=\"\n isReportPage ? reportPageTemplate : reportTemplate;\n context: {\n $implicit: viewerControl,\n tabMode: viewerControl?.Setting?.ClassNames?.CustomUi?.Parameters?.TabMode\n }\n \"\n>\n</ng-container>\n<bsu-mask *ngIf=\"loading\" size=\"m\"></bsu-mask>\n<ng-template #reportPageTemplate let-viewerControl let-tabMode=\"tabMode\">\n <fd-dynamic-page\n formClose\n mobile\n [attr.isMobile]=\"isMobile\"\n [isMobile]=\"isMobile\"\n [size]=\"deviceSize | dynamicPageSize\"\n [attr.tabMode]=\"tabMode\"\n [autoResponsive]=\"false\"\n >\n <fd-dynamic-page-header\n [title]=\"\n (title | bbbTranslate)\n ? (title | bbbTranslate)\n : isMobile && breadCrumbs.length\n ? breadCrumbs[breadCrumbs.length - 1].label\n : ''\n \"\n class=\"p-b0\"\n >\n <fd-breadcrumb *ngIf=\"!isMobile\">\n <ng-container *ngIf=\"breadCrumbs\">\n <ng-container\n *ngFor=\"\n let breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length;\n let i = index;\n let last = last\n \"\n >\n <fd-breadcrumb-item *ngIf=\"last\">\n <bsu-breadcrumb\n [index]=\"i\"\n [isLast]=\"last\"\n [breadCrumb]=\"breadCrumb\"\n [allBreadCrumb]=\"breadCrumbs\"\n ></bsu-breadcrumb>\n </fd-breadcrumb-item>\n </ng-container>\n </ng-container>\n </fd-breadcrumb>\n <!-- <fd-dynamic-page-title-content>\u06AF\u0632\u0627\u0631\u0634 </fd-dynamic-page-title-content> -->\n\n <fd-dynamic-page-global-actions *untilInView=\"el\" style=\"min-width: auto\">\n <fd-toolbar [shouldOverflow]=\"true\" Style=\"display:none\"> </fd-toolbar>\n <!-- added this because in mobile landscape toolbar disapper -->\n <fd-toolbar\n *ngIf=\"searchPanelUi\"\n class=\"global-actions\"\n fdType=\"transparent\"\n [clearBorder]=\"true\"\n [shouldOverflow]=\"deviceSize === 's'\"\n >\n <fd-popover\n fd-toolbar-item\n #popover\n fdOverflowPriority=\"never\"\n *ngIf=\"isAnonymous === false && canSaveGridSetting\"\n >\n <fd-popover-control>\n <div style=\"display: flex; align-items: center\">\n <h3 class=\"header-search\" [attr.rtl]=\"rtl\" fd-title>\n {{\n selectedSearchPanelSettings?.IsStandard\n ? ''\n : selectedSearchPanelSettings?.Title\n }}\n <strong *ngIf=\"searchPanelMoChanged\">*</strong>\n </h3>\n <fdp-button\n glyph=\"slim-arrow-down\"\n buttonType=\"transparent\"\n [fdContentDensity]=\"contentDensity\"\n ></fdp-button>\n </div>\n </fd-popover-control>\n <fd-popover-body mobile>\n <div fd-popover-body-header>\n <div fd-bar [fdCozy]>\n <div fd-bar-left>\n <fd-bar-element>{{ 'Filters' | bbbTranslate }}</fd-bar-element>\n </div>\n </div>\n </div>\n <ul fd-list style=\"min-height: 200px; background-color: var(--sapBackgroundColor, #f7f7f7)\">\n <li\n fd-list-item\n *ngFor=\"let option of allSearchPanelSettings\"\n [selected]=\"option.Id === selectedSearchPanelSettingsId\"\n (click)=\"onSelectSearchPanelSettings(option.Id, popover)\"\n >\n <span fd-list-title>{{ option.Title }}</span>\n </li>\n </ul>\n <div fd-popover-body-footer>\n <div fd-bar [barDesign]=\"'footer'\" [fdCozy]>\n <div fd-bar-right *ngIf=\"selectedSearchPanelSettings\">\n <fd-button-bar\n *ngIf=\"!selectedSearchPanelSettings.IsPrimary && searchPanelMoChanged\"\n [label]=\"'Save' | bbbTranslate\"\n fdType=\"emphasized\"\n (click)=\"onFilterSave(popover)\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"searchPanelMoChanged\"\n [label]=\"'SaveAs' | bbbTranslate\"\n [fdType]=\"\n selectedSearchPanelSettings.IsDefault ? 'emphasized' : 'transparent'\n \"\n (click)=\"onFilterSaveAs(popover)\"\n >\n </fd-button-bar>\n <fd-button-bar\n [label]=\"'Manage' | bbbTranslate\"\n fdInitialFocus\n fdType=\"transparent\"\n (click)=\"onManageFilters(popover)\"\n >\n </fd-button-bar>\n </div>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n <fd-toolbar-spacer *ngIf=\"deviceSize !== 's'\"></fd-toolbar-spacer>\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n buttonType=\"emphasized\"\n [label]=\"'Search' | bbbTranslate\"\n (click)=\"onSearch()\"\n [fdContentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n fdOverflowPriority=\"low\"\n [label]=\"'Filters' | bbbTranslate\"\n (click)=\"onShowFilterFieldsSetting()\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n fdOverflowPriority=\"low\"\n [label]=\"'Clear' | bbbTranslate\"\n (click)=\"onClearSearch()\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n [label]=\"hideSearchPanel ? ('Show' | bbbTranslate) : ('Hide' | bbbTranslate)\"\n (click)=\"onHideSearchPanelClick()\"\n fdOverflowPriority=\"low\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></fdp-button>\n </fd-toolbar>\n </fd-dynamic-page-global-actions>\n <fd-dynamic-page-layout-actions>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"close.emit()\" title=\"Close\">\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n <fd-dynamic-page-subheader [pinnable]=\"true\" [collapsible]=\"false\" *ngIf=\"!hideSearchPanel && searchPanelUi\">\n <ng-container>\n <bsu-search-panel\n [hideButtons]=\"true\"\n [searchPanelUi]=\"searchPanelUi\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n </ng-container>\n </fd-dynamic-page-subheader>\n <fd-dynamic-page-content *ngIf=\"!tabMode\">\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n </fd-dynamic-page-content>\n <fd-dynamic-page-footer *ngIf=\"pagingSetting?.TotalPages\">\n <!-- page footer content goes here -->\n <div fd-bar [barDesign]=\"'footer'\">\n <div fd-bar-middle>\n <ng-container\n [renderUlvPaging]=\"context\"\n [pagingSetting]=\"pagingSetting\"\n (pageChange)=\"onPageChange($event)\"\n ></ng-container>\n </div>\n </div>\n </fd-dynamic-page-footer>\n </fd-dynamic-page>\n <ng-container *ngIf=\"tabMode\">\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n </ng-container>\n</ng-template>\n<ng-template #reportTemplate>\n <bsu-mask *ngIf=\"loading\" size=\"s\"></bsu-mask>\n <ng-container *ngIf=\"!hideSearchPanel && searchPanelUi\">\n <bsu-search-panel [searchPanelUi]=\"searchPanelUi\" (moChanged)=\"onSearchPanelMoChanged()\"></bsu-search-panel>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n <ng-container\n *ngIf=\"pagingSetting?.TotalPages\"\n [renderUlvPaging]=\"context\"\n [pagingSetting]=\"pagingSetting\"\n (pageChange)=\"onPageChange($event)\"\n ></ng-container>\n</ng-template>\n<ng-template #viewerTemplate>\n <div\n class=\"viewer-container\"\n [style.height]=\"viewerLoading ? '100%' : 'auto'\"\n [style.position]=\"viewerLoading ? 'relative' : null\"\n >\n <bsu-mask *ngIf=\"viewerLoading\" size=\"m\"></bsu-mask>\n <ng-container *ngIf=\"viewerControl\" [renderUlvViewer]=\"viewerControl\"></ng-container>\n </div>\n</ng-template>\n", styles: [":host{display:block;height:100%;flex-grow:1}:host ::ng-deep .fd-dynamic-page__toolbar-container{margin:0!important}:host ::ng-deep .fd-dynamic-page__collapsible-header{padding-top:0!important;padding-bottom:0!important}:host ::ng-deep .fd-dynamic-page__toolbar-container{flex:1}:host ::ng-deep .fdp-search-field__input-group{outline:none}:host ::ng-deep .fdp-search-field__input-group :-webkit-autofill,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:hover,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:focus,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px white inset!important}:host ::ng-deep .global-actions .fd-toolbar{padding:0}:host ::ng-deep fd-dynamic-page[tabMode=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep fd-dynamic-page[tabMode=true] .fd-dynamic-page .fd-dynamic-page__collapsible-header-visibility-container{box-shadow:none}fd-dynamic-page-global-actions{flex:1;width:100%}h3[rtl=true]{margin-left:5px}h3[rtl=false]{margin-right:5px}.header-search{color:var(--sapButton_TextColor, #0854a0)!important}.filter-wrapper{border-bottom:1px solid var(--sapObjectHeader_BorderColor, #d9d9d9)}.report-toolbar-container{display:flex}.report-toolbar-container .global-actions{flex-grow:1}fd-popover-body{min-width:380px}fd-popover-body.mobile{min-width:80vw}@media (max-width: 599px){.fd-dynamic-page,fd-dynamic-page-content{padding:1rem 0!important}.report-toolbar-container{flex-direction:column-reverse}.report-toolbar-container .layout-actions{flex-grow:1}}.viewer-container{background:var(--sapBaseColor)}\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: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.RenderUlvViewerDirective, selector: "[renderUlvViewer]", inputs: ["mask", "renderUlvViewer"] }, { kind: "directive", type: i2.RenderUlvPaginDirective, selector: "[renderUlvPaging]", inputs: ["mask", "pagingSetting", "renderUlvPaging"], outputs: ["pageChange"] }, { kind: "directive", type: i2.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "directive", type: i2.FormCloseDirective, selector: "[formClose]", inputs: ["isMobile"] }, { kind: "directive", type: i2.MobileDirective, selector: "[mobile]" }, { kind: "directive", type: i3.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: i4.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i4.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i4.BarMiddleDirective, selector: "[fd-bar-middle]" }, { kind: "directive", type: i4.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i4.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }, { kind: "component", type: i4.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i5.BreadcrumbComponent, selector: "fd-breadcrumb", inputs: ["containerElement", "reverse", "tabIndex"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i5.BreadcrumbItemComponent, selector: "fd-breadcrumb-item" }, { kind: "component", type: i6.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i7.DynamicPageComponent, selector: "fd-dynamic-page", inputs: ["role", "ariaLabel", "background", "autoResponsive", "size", "offset", "expandContent"] }, { kind: "component", type: i7.DynamicPageHeaderComponent, selector: "fd-dynamic-page-header", inputs: ["title", "subtitle"] }, { kind: "component", type: i7.DynamicPageGlobalActionsComponent, selector: "fd-dynamic-page-global-actions" }, { kind: "component", type: i7.DynamicPageLayoutActionsComponent, selector: "fd-dynamic-page-layout-actions" }, { kind: "component", type: i7.DynamicPageSubheaderComponent, selector: "fd-dynamic-page-subheader", inputs: ["collapsible", "pinnable", "collapsed", "expandLabel", "collapseLabel", "role", "id", "headerAriaLabel", "pinAriaLabel", "unpinAriaLabel"], outputs: ["collapsedChange"] }, { kind: "component", type: i7.DynamicPageContentComponent, selector: "fd-dynamic-page-content", inputs: ["tabLabel", "id"] }, { kind: "component", type: i7.DynamicPageFooterComponent, selector: "fd-dynamic-page-footer" }, { kind: "component", type: i8.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline"], outputs: ["focusEscapeList"] }, { kind: "component", type: i8.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "directive", type: i8.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "component", type: i9.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i10.InitialFocusDirective, selector: "[fdInitialFocus], [fd-initial-focus]", inputs: ["fd-initial-focus", "enabled", "focusLastElement"] }, { kind: "component", type: i11.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i11.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "directive", type: i11.PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "directive", type: i11.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i11.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: i12.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i12.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "component", type: i12.ToolbarSpacerComponent, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "directive", type: i12.ToolbarOverflowPriorityDirective, selector: "[fdOverflowPriority]", inputs: ["fdOverflowPriority"] }, { kind: "directive", type: i12.ToolbarOverflowGroupDirective, selector: "[fdOverflowGroup]", inputs: ["fdOverflowGroup"] }, { kind: "component", type: i13.ButtonComponent, selector: "fdp-button", inputs: ["glyphPosition", "label", "glyph", "buttonType", "title", "ariaSelected", "ariaDisabled", "ariaExpanded", "ariaControlsId", "ariaPressed", "name", "type", "value"], outputs: ["buttonClicked"] }, { kind: "component", type: i14.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i15.SearchPanelComponent, selector: "bsu-search-panel", inputs: ["searchPanelUi", "hideButtons"], outputs: ["moChanged"] }, { kind: "component", type: i16.BreadcrumbComponent, selector: "bsu-breadcrumb", inputs: ["breadCrumb", "allBreadCrumb", "isLast", "index"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i17.DynamicPageSizePipe, name: "dynamicPageSize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
101
+ BarsaUlvMainComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaUlvMainComponent, selector: "bsu-barsa-ulv-main", inputs: { viewerControl: "viewerControl", loading: "loading", viewerLoading: "viewerLoading", isReportPage: "isReportPage", deviceSize: "deviceSize", title: "title", searchPanelUi: "searchPanelUi", breadCrumbs: "breadCrumbs", allSearchPanelSettings: "allSearchPanelSettings", isAnonymous: "isAnonymous", canSaveGridSetting: "canSaveGridSetting", rtl: "rtl", selectedSearchPanelSettings: "selectedSearchPanelSettings", searchPanelMoChanged: "searchPanelMoChanged", selectedSearchPanelSettingsId: "selectedSearchPanelSettingsId", hideSearchPanel: "hideSearchPanel", pagingSetting: "pagingSetting", contentDensity: "contentDensity", context: "context", isMobile: "isMobile" }, outputs: { close: "close", searchPanelMoChange: "searchPanelMoChange", openManageFilters: "openManageFilters", collapsedChange: "collapsedChange", hideSearchPanelClick: "hideSearchPanelClick", filterSave: "filterSave", filterSaveAs: "filterSaveAs", pageChange: "pageChange", showFilterFieldsSetting: "showFilterFieldsSetting", manageFilters: "manageFilters", clearSearch: "clearSearch", search: "search", selectSearchPanelSettings: "selectSearchPanelSettings" }, viewQueries: [{ propertyName: "_dynamicPageComponent", first: true, predicate: DynamicPageComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- <ng-container *ngIf=\"isReportPage; else reportTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n reportPageTemplate;\n context: {\n $implicit: viewerControl,\n tabMode: viewerControl.Setting?.ClassNames?.CustomUi?.Parameters?.TabMode\n }\n \"\n >\n </ng-container>\n</ng-container> -->\n<ng-container\n *ngTemplateOutlet=\"\n isReportPage ? reportPageTemplate : reportTemplate;\n context: {\n $implicit: viewerControl,\n tabMode: viewerControl?.Setting?.ClassNames?.CustomUi?.Parameters?.TabMode\n }\n \"\n>\n</ng-container>\n<bsu-mask *ngIf=\"loading\" size=\"m\"></bsu-mask>\n<ng-template #reportPageTemplate let-viewerControl let-tabMode=\"tabMode\">\n <fd-dynamic-page\n formClose\n mobile\n [attr.isMobile]=\"isMobile\"\n [isMobile]=\"isMobile\"\n [size]=\"deviceSize | dynamicPageSize\"\n [attr.tabMode]=\"tabMode\"\n [autoResponsive]=\"false\"\n >\n <fd-dynamic-page-header\n [title]=\"\n (title | bbbTranslate)\n ? (title | bbbTranslate)\n : isMobile && breadCrumbs.length\n ? breadCrumbs[breadCrumbs.length - 1].label\n : ''\n \"\n class=\"p-b0\"\n >\n <fd-breadcrumb *ngIf=\"!isMobile\">\n <ng-container *ngIf=\"breadCrumbs\">\n <ng-container\n *ngFor=\"\n let breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length;\n let i = index;\n let last = last\n \"\n >\n <fd-breadcrumb-item *ngIf=\"last\">\n <bsu-breadcrumb\n [index]=\"i\"\n [isLast]=\"last\"\n [breadCrumb]=\"breadCrumb\"\n [allBreadCrumb]=\"breadCrumbs\"\n ></bsu-breadcrumb>\n </fd-breadcrumb-item>\n </ng-container>\n </ng-container>\n </fd-breadcrumb>\n <!-- <fd-dynamic-page-title-content>\u06AF\u0632\u0627\u0631\u0634 </fd-dynamic-page-title-content> -->\n\n <fd-dynamic-page-global-actions *untilInView=\"el\" style=\"min-width: auto\">\n <fd-toolbar [shouldOverflow]=\"true\" Style=\"display:none\"> </fd-toolbar>\n <!-- added this because in mobile landscape toolbar disapper -->\n <fd-toolbar\n *ngIf=\"searchPanelUi\"\n class=\"global-actions\"\n fdType=\"transparent\"\n [clearBorder]=\"true\"\n [shouldOverflow]=\"deviceSize === 's'\"\n >\n <fd-popover\n fd-toolbar-item\n #popover\n fdOverflowPriority=\"never\"\n *ngIf=\"isAnonymous === false && canSaveGridSetting\"\n >\n <fd-popover-control>\n <div style=\"display: flex; align-items: center\">\n <h3 class=\"header-search\" [attr.rtl]=\"rtl\" fd-title>\n {{\n selectedSearchPanelSettings?.IsStandard\n ? ''\n : selectedSearchPanelSettings?.Title\n }}\n <strong *ngIf=\"searchPanelMoChanged\">*</strong>\n </h3>\n <fdp-button\n glyph=\"slim-arrow-down\"\n buttonType=\"transparent\"\n [fdContentDensity]=\"contentDensity\"\n ></fdp-button>\n </div>\n </fd-popover-control>\n <fd-popover-body mobile>\n <div fd-popover-body-header>\n <div fd-bar [fdCozy]>\n <div fd-bar-left>\n <fd-bar-element>{{ 'Filters' | bbbTranslate }}</fd-bar-element>\n </div>\n </div>\n </div>\n <ul fd-list style=\"min-height: 200px; background-color: var(--sapBackgroundColor, #f7f7f7)\">\n <li\n fd-list-item\n *ngFor=\"let option of allSearchPanelSettings\"\n [selected]=\"option.Id === selectedSearchPanelSettingsId\"\n (click)=\"onSelectSearchPanelSettings(option.Id, popover)\"\n >\n <span fd-list-title>{{ option.Title }}</span>\n </li>\n </ul>\n <div fd-popover-body-footer>\n <div fd-bar [barDesign]=\"'footer'\" [fdCozy]>\n <div fd-bar-right *ngIf=\"selectedSearchPanelSettings\">\n <fd-button-bar\n *ngIf=\"!selectedSearchPanelSettings.IsPrimary && searchPanelMoChanged\"\n [label]=\"'Save' | bbbTranslate\"\n fdType=\"emphasized\"\n (click)=\"onFilterSave(popover)\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"searchPanelMoChanged\"\n [label]=\"'SaveAs' | bbbTranslate\"\n [fdType]=\"\n selectedSearchPanelSettings.IsDefault ? 'emphasized' : 'transparent'\n \"\n (click)=\"onFilterSaveAs(popover)\"\n >\n </fd-button-bar>\n <fd-button-bar\n [label]=\"'Manage' | bbbTranslate\"\n fdInitialFocus\n fdType=\"transparent\"\n (click)=\"onManageFilters(popover)\"\n >\n </fd-button-bar>\n </div>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n <fd-toolbar-spacer *ngIf=\"deviceSize !== 's'\"></fd-toolbar-spacer>\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n buttonType=\"emphasized\"\n [label]=\"'Search' | bbbTranslate\"\n (click)=\"onSearch()\"\n [fdContentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n fdOverflowPriority=\"low\"\n [label]=\"'Filters' | bbbTranslate\"\n (click)=\"onShowFilterFieldsSetting()\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n fdOverflowPriority=\"low\"\n [label]=\"'Clear' | bbbTranslate\"\n (click)=\"onClearSearch()\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n [label]=\"hideSearchPanel ? ('Show' | bbbTranslate) : ('Hide' | bbbTranslate)\"\n (click)=\"onHideSearchPanelClick()\"\n fdOverflowPriority=\"low\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></fdp-button>\n </fd-toolbar>\n </fd-dynamic-page-global-actions>\n <fd-dynamic-page-layout-actions>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"close.emit()\" title=\"Close\">\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n <fd-dynamic-page-subheader [pinnable]=\"true\" [collapsible]=\"false\" *ngIf=\"!hideSearchPanel && searchPanelUi\">\n <ng-container>\n <bsu-search-panel\n [hideButtons]=\"true\"\n [searchPanelUi]=\"searchPanelUi\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n </ng-container>\n </fd-dynamic-page-subheader>\n <fd-dynamic-page-content *ngIf=\"!tabMode\">\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n </fd-dynamic-page-content>\n <fd-dynamic-page-footer *ngIf=\"pagingSetting?.TotalPages\">\n <!-- page footer content goes here -->\n <div fd-bar [barDesign]=\"'footer'\">\n <div fd-bar-middle>\n <ng-container\n [renderUlvPaging]=\"context\"\n [pagingSetting]=\"pagingSetting\"\n (pageChange)=\"onPageChange($event)\"\n ></ng-container>\n </div>\n </div>\n </fd-dynamic-page-footer>\n </fd-dynamic-page>\n <ng-container *ngIf=\"tabMode\">\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n </ng-container>\n</ng-template>\n<ng-template #reportTemplate>\n <bsu-mask *ngIf=\"loading\" size=\"s\"></bsu-mask>\n <ng-container *ngIf=\"!hideSearchPanel && searchPanelUi\">\n <bsu-search-panel [searchPanelUi]=\"searchPanelUi\" (moChanged)=\"onSearchPanelMoChanged()\"></bsu-search-panel>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n <ng-container\n *ngIf=\"pagingSetting?.TotalPages\"\n [renderUlvPaging]=\"context\"\n [pagingSetting]=\"pagingSetting\"\n (pageChange)=\"onPageChange($event)\"\n ></ng-container>\n</ng-template>\n<ng-template #viewerTemplate>\n <div\n class=\"viewer-container\"\n fillEmptySpace\n [disable]=\"isReportPage || !fillPage\"\n [decrement]=\"deviceSize !== 's' ? '100px' : '75px'\"\n [style.height]=\"viewerLoading ? '100%' : 'auto'\"\n [style.min-height]=\"isReportPage ? '100%' : null\"\n [style.position]=\"viewerLoading ? 'relative' : null\"\n >\n <bsu-mask *ngIf=\"viewerLoading\" size=\"m\"></bsu-mask>\n <ng-container *ngIf=\"viewerControl\" [renderUlvViewer]=\"viewerControl\"></ng-container>\n </div>\n</ng-template>\n", styles: [":host{display:block;height:100%;flex-grow:1}:host ::ng-deep .fd-dynamic-page__toolbar-container{margin:0!important}:host ::ng-deep .fd-dynamic-page__collapsible-header{padding-top:0!important;padding-bottom:0!important}:host ::ng-deep .fd-dynamic-page__toolbar-container{flex:1}:host ::ng-deep .fdp-search-field__input-group{outline:none}:host ::ng-deep .fdp-search-field__input-group :-webkit-autofill,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:hover,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:focus,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px white inset!important}:host ::ng-deep .global-actions .fd-toolbar{padding:0}:host ::ng-deep fd-dynamic-page[tabMode=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep fd-dynamic-page[tabMode=true] .fd-dynamic-page .fd-dynamic-page__collapsible-header-visibility-container{box-shadow:none}fd-dynamic-page-global-actions{flex:1;width:100%}h3[rtl=true]{margin-left:5px}h3[rtl=false]{margin-right:5px}.header-search{color:var(--sapButton_TextColor, #0854a0)!important}.filter-wrapper{border-bottom:1px solid var(--sapObjectHeader_BorderColor, #d9d9d9)}.report-toolbar-container{display:flex}.report-toolbar-container .global-actions{flex-grow:1}fd-popover-body{min-width:380px}fd-popover-body.mobile{min-width:80vw}@media (max-width: 599px){.fd-dynamic-page,fd-dynamic-page-content{padding:1rem 0!important}.report-toolbar-container{flex-direction:column-reverse}.report-toolbar-container .layout-actions{flex-grow:1}}.viewer-container{background:var(--sapBaseColor);box-shadow:0 .3125rem 1.25rem 0 var(--sapGroup_ContentBorderColor)}\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: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.RenderUlvViewerDirective, selector: "[renderUlvViewer]", inputs: ["mask", "renderUlvViewer"] }, { kind: "directive", type: i2.RenderUlvPaginDirective, selector: "[renderUlvPaging]", inputs: ["mask", "pagingSetting", "renderUlvPaging"], outputs: ["pageChange"] }, { kind: "directive", type: i2.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "directive", type: i2.FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: ["decrement", "disable"] }, { kind: "directive", type: i2.FormCloseDirective, selector: "[formClose]", inputs: ["isMobile"] }, { kind: "directive", type: i2.MobileDirective, selector: "[mobile]" }, { kind: "directive", type: i3.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: i4.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i4.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i4.BarMiddleDirective, selector: "[fd-bar-middle]" }, { kind: "directive", type: i4.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i4.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }, { kind: "component", type: i4.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i5.BreadcrumbComponent, selector: "fd-breadcrumb", inputs: ["containerElement", "reverse", "tabIndex"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i5.BreadcrumbItemComponent, selector: "fd-breadcrumb-item" }, { kind: "component", type: i6.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i7.DynamicPageComponent, selector: "fd-dynamic-page", inputs: ["role", "ariaLabel", "background", "autoResponsive", "size", "offset", "expandContent"] }, { kind: "component", type: i7.DynamicPageHeaderComponent, selector: "fd-dynamic-page-header", inputs: ["title", "subtitle"] }, { kind: "component", type: i7.DynamicPageGlobalActionsComponent, selector: "fd-dynamic-page-global-actions" }, { kind: "component", type: i7.DynamicPageLayoutActionsComponent, selector: "fd-dynamic-page-layout-actions" }, { kind: "component", type: i7.DynamicPageSubheaderComponent, selector: "fd-dynamic-page-subheader", inputs: ["collapsible", "pinnable", "collapsed", "expandLabel", "collapseLabel", "role", "id", "headerAriaLabel", "pinAriaLabel", "unpinAriaLabel"], outputs: ["collapsedChange"] }, { kind: "component", type: i7.DynamicPageContentComponent, selector: "fd-dynamic-page-content", inputs: ["tabLabel", "id"] }, { kind: "component", type: i7.DynamicPageFooterComponent, selector: "fd-dynamic-page-footer" }, { kind: "component", type: i8.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline"], outputs: ["focusEscapeList"] }, { kind: "component", type: i8.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "directive", type: i8.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "component", type: i9.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i10.InitialFocusDirective, selector: "[fdInitialFocus], [fd-initial-focus]", inputs: ["fd-initial-focus", "enabled", "focusLastElement"] }, { kind: "component", type: i11.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i11.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "directive", type: i11.PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "directive", type: i11.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i11.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: i12.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i12.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "component", type: i12.ToolbarSpacerComponent, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "directive", type: i12.ToolbarOverflowPriorityDirective, selector: "[fdOverflowPriority]", inputs: ["fdOverflowPriority"] }, { kind: "directive", type: i12.ToolbarOverflowGroupDirective, selector: "[fdOverflowGroup]", inputs: ["fdOverflowGroup"] }, { kind: "component", type: i13.ButtonComponent, selector: "fdp-button", inputs: ["glyphPosition", "label", "glyph", "buttonType", "title", "ariaSelected", "ariaDisabled", "ariaExpanded", "ariaControlsId", "ariaPressed", "name", "type", "value"], outputs: ["buttonClicked"] }, { kind: "component", type: i14.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i15.SearchPanelComponent, selector: "bsu-search-panel", inputs: ["searchPanelUi", "hideButtons"], outputs: ["moChanged"] }, { kind: "component", type: i16.BreadcrumbComponent, selector: "bsu-breadcrumb", inputs: ["breadCrumb", "allBreadCrumb", "isLast", "index"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i17.DynamicPageSizePipe, name: "dynamicPageSize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
100
102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaUlvMainComponent, decorators: [{
101
103
  type: Component,
102
- args: [{ selector: 'bsu-barsa-ulv-main', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- <ng-container *ngIf=\"isReportPage; else reportTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n reportPageTemplate;\n context: {\n $implicit: viewerControl,\n tabMode: viewerControl.Setting?.ClassNames?.CustomUi?.Parameters?.TabMode\n }\n \"\n >\n </ng-container>\n</ng-container> -->\n<ng-container\n *ngTemplateOutlet=\"\n isReportPage ? reportPageTemplate : reportTemplate;\n context: {\n $implicit: viewerControl,\n tabMode: viewerControl?.Setting?.ClassNames?.CustomUi?.Parameters?.TabMode\n }\n \"\n>\n</ng-container>\n<bsu-mask *ngIf=\"loading\" size=\"m\"></bsu-mask>\n<ng-template #reportPageTemplate let-viewerControl let-tabMode=\"tabMode\">\n <fd-dynamic-page\n formClose\n mobile\n [attr.isMobile]=\"isMobile\"\n [isMobile]=\"isMobile\"\n [size]=\"deviceSize | dynamicPageSize\"\n [attr.tabMode]=\"tabMode\"\n [autoResponsive]=\"false\"\n >\n <fd-dynamic-page-header\n [title]=\"\n (title | bbbTranslate)\n ? (title | bbbTranslate)\n : isMobile && breadCrumbs.length\n ? breadCrumbs[breadCrumbs.length - 1].label\n : ''\n \"\n class=\"p-b0\"\n >\n <fd-breadcrumb *ngIf=\"!isMobile\">\n <ng-container *ngIf=\"breadCrumbs\">\n <ng-container\n *ngFor=\"\n let breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length;\n let i = index;\n let last = last\n \"\n >\n <fd-breadcrumb-item *ngIf=\"last\">\n <bsu-breadcrumb\n [index]=\"i\"\n [isLast]=\"last\"\n [breadCrumb]=\"breadCrumb\"\n [allBreadCrumb]=\"breadCrumbs\"\n ></bsu-breadcrumb>\n </fd-breadcrumb-item>\n </ng-container>\n </ng-container>\n </fd-breadcrumb>\n <!-- <fd-dynamic-page-title-content>\u06AF\u0632\u0627\u0631\u0634 </fd-dynamic-page-title-content> -->\n\n <fd-dynamic-page-global-actions *untilInView=\"el\" style=\"min-width: auto\">\n <fd-toolbar [shouldOverflow]=\"true\" Style=\"display:none\"> </fd-toolbar>\n <!-- added this because in mobile landscape toolbar disapper -->\n <fd-toolbar\n *ngIf=\"searchPanelUi\"\n class=\"global-actions\"\n fdType=\"transparent\"\n [clearBorder]=\"true\"\n [shouldOverflow]=\"deviceSize === 's'\"\n >\n <fd-popover\n fd-toolbar-item\n #popover\n fdOverflowPriority=\"never\"\n *ngIf=\"isAnonymous === false && canSaveGridSetting\"\n >\n <fd-popover-control>\n <div style=\"display: flex; align-items: center\">\n <h3 class=\"header-search\" [attr.rtl]=\"rtl\" fd-title>\n {{\n selectedSearchPanelSettings?.IsStandard\n ? ''\n : selectedSearchPanelSettings?.Title\n }}\n <strong *ngIf=\"searchPanelMoChanged\">*</strong>\n </h3>\n <fdp-button\n glyph=\"slim-arrow-down\"\n buttonType=\"transparent\"\n [fdContentDensity]=\"contentDensity\"\n ></fdp-button>\n </div>\n </fd-popover-control>\n <fd-popover-body mobile>\n <div fd-popover-body-header>\n <div fd-bar [fdCozy]>\n <div fd-bar-left>\n <fd-bar-element>{{ 'Filters' | bbbTranslate }}</fd-bar-element>\n </div>\n </div>\n </div>\n <ul fd-list style=\"min-height: 200px; background-color: var(--sapBackgroundColor, #f7f7f7)\">\n <li\n fd-list-item\n *ngFor=\"let option of allSearchPanelSettings\"\n [selected]=\"option.Id === selectedSearchPanelSettingsId\"\n (click)=\"onSelectSearchPanelSettings(option.Id, popover)\"\n >\n <span fd-list-title>{{ option.Title }}</span>\n </li>\n </ul>\n <div fd-popover-body-footer>\n <div fd-bar [barDesign]=\"'footer'\" [fdCozy]>\n <div fd-bar-right *ngIf=\"selectedSearchPanelSettings\">\n <fd-button-bar\n *ngIf=\"!selectedSearchPanelSettings.IsPrimary && searchPanelMoChanged\"\n [label]=\"'Save' | bbbTranslate\"\n fdType=\"emphasized\"\n (click)=\"onFilterSave(popover)\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"searchPanelMoChanged\"\n [label]=\"'SaveAs' | bbbTranslate\"\n [fdType]=\"\n selectedSearchPanelSettings.IsDefault ? 'emphasized' : 'transparent'\n \"\n (click)=\"onFilterSaveAs(popover)\"\n >\n </fd-button-bar>\n <fd-button-bar\n [label]=\"'Manage' | bbbTranslate\"\n fdInitialFocus\n fdType=\"transparent\"\n (click)=\"onManageFilters(popover)\"\n >\n </fd-button-bar>\n </div>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n <fd-toolbar-spacer *ngIf=\"deviceSize !== 's'\"></fd-toolbar-spacer>\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n buttonType=\"emphasized\"\n [label]=\"'Search' | bbbTranslate\"\n (click)=\"onSearch()\"\n [fdContentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n fdOverflowPriority=\"low\"\n [label]=\"'Filters' | bbbTranslate\"\n (click)=\"onShowFilterFieldsSetting()\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n fdOverflowPriority=\"low\"\n [label]=\"'Clear' | bbbTranslate\"\n (click)=\"onClearSearch()\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n [label]=\"hideSearchPanel ? ('Show' | bbbTranslate) : ('Hide' | bbbTranslate)\"\n (click)=\"onHideSearchPanelClick()\"\n fdOverflowPriority=\"low\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></fdp-button>\n </fd-toolbar>\n </fd-dynamic-page-global-actions>\n <fd-dynamic-page-layout-actions>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"close.emit()\" title=\"Close\">\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n <fd-dynamic-page-subheader [pinnable]=\"true\" [collapsible]=\"false\" *ngIf=\"!hideSearchPanel && searchPanelUi\">\n <ng-container>\n <bsu-search-panel\n [hideButtons]=\"true\"\n [searchPanelUi]=\"searchPanelUi\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n </ng-container>\n </fd-dynamic-page-subheader>\n <fd-dynamic-page-content *ngIf=\"!tabMode\">\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n </fd-dynamic-page-content>\n <fd-dynamic-page-footer *ngIf=\"pagingSetting?.TotalPages\">\n <!-- page footer content goes here -->\n <div fd-bar [barDesign]=\"'footer'\">\n <div fd-bar-middle>\n <ng-container\n [renderUlvPaging]=\"context\"\n [pagingSetting]=\"pagingSetting\"\n (pageChange)=\"onPageChange($event)\"\n ></ng-container>\n </div>\n </div>\n </fd-dynamic-page-footer>\n </fd-dynamic-page>\n <ng-container *ngIf=\"tabMode\">\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n </ng-container>\n</ng-template>\n<ng-template #reportTemplate>\n <bsu-mask *ngIf=\"loading\" size=\"s\"></bsu-mask>\n <ng-container *ngIf=\"!hideSearchPanel && searchPanelUi\">\n <bsu-search-panel [searchPanelUi]=\"searchPanelUi\" (moChanged)=\"onSearchPanelMoChanged()\"></bsu-search-panel>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n <ng-container\n *ngIf=\"pagingSetting?.TotalPages\"\n [renderUlvPaging]=\"context\"\n [pagingSetting]=\"pagingSetting\"\n (pageChange)=\"onPageChange($event)\"\n ></ng-container>\n</ng-template>\n<ng-template #viewerTemplate>\n <div\n class=\"viewer-container\"\n [style.height]=\"viewerLoading ? '100%' : 'auto'\"\n [style.position]=\"viewerLoading ? 'relative' : null\"\n >\n <bsu-mask *ngIf=\"viewerLoading\" size=\"m\"></bsu-mask>\n <ng-container *ngIf=\"viewerControl\" [renderUlvViewer]=\"viewerControl\"></ng-container>\n </div>\n</ng-template>\n", styles: [":host{display:block;height:100%;flex-grow:1}:host ::ng-deep .fd-dynamic-page__toolbar-container{margin:0!important}:host ::ng-deep .fd-dynamic-page__collapsible-header{padding-top:0!important;padding-bottom:0!important}:host ::ng-deep .fd-dynamic-page__toolbar-container{flex:1}:host ::ng-deep .fdp-search-field__input-group{outline:none}:host ::ng-deep .fdp-search-field__input-group :-webkit-autofill,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:hover,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:focus,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px white inset!important}:host ::ng-deep .global-actions .fd-toolbar{padding:0}:host ::ng-deep fd-dynamic-page[tabMode=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep fd-dynamic-page[tabMode=true] .fd-dynamic-page .fd-dynamic-page__collapsible-header-visibility-container{box-shadow:none}fd-dynamic-page-global-actions{flex:1;width:100%}h3[rtl=true]{margin-left:5px}h3[rtl=false]{margin-right:5px}.header-search{color:var(--sapButton_TextColor, #0854a0)!important}.filter-wrapper{border-bottom:1px solid var(--sapObjectHeader_BorderColor, #d9d9d9)}.report-toolbar-container{display:flex}.report-toolbar-container .global-actions{flex-grow:1}fd-popover-body{min-width:380px}fd-popover-body.mobile{min-width:80vw}@media (max-width: 599px){.fd-dynamic-page,fd-dynamic-page-content{padding:1rem 0!important}.report-toolbar-container{flex-direction:column-reverse}.report-toolbar-container .layout-actions{flex-grow:1}}.viewer-container{background:var(--sapBaseColor)}\n"] }]
104
+ args: [{ selector: 'bsu-barsa-ulv-main', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- <ng-container *ngIf=\"isReportPage; else reportTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n reportPageTemplate;\n context: {\n $implicit: viewerControl,\n tabMode: viewerControl.Setting?.ClassNames?.CustomUi?.Parameters?.TabMode\n }\n \"\n >\n </ng-container>\n</ng-container> -->\n<ng-container\n *ngTemplateOutlet=\"\n isReportPage ? reportPageTemplate : reportTemplate;\n context: {\n $implicit: viewerControl,\n tabMode: viewerControl?.Setting?.ClassNames?.CustomUi?.Parameters?.TabMode\n }\n \"\n>\n</ng-container>\n<bsu-mask *ngIf=\"loading\" size=\"m\"></bsu-mask>\n<ng-template #reportPageTemplate let-viewerControl let-tabMode=\"tabMode\">\n <fd-dynamic-page\n formClose\n mobile\n [attr.isMobile]=\"isMobile\"\n [isMobile]=\"isMobile\"\n [size]=\"deviceSize | dynamicPageSize\"\n [attr.tabMode]=\"tabMode\"\n [autoResponsive]=\"false\"\n >\n <fd-dynamic-page-header\n [title]=\"\n (title | bbbTranslate)\n ? (title | bbbTranslate)\n : isMobile && breadCrumbs.length\n ? breadCrumbs[breadCrumbs.length - 1].label\n : ''\n \"\n class=\"p-b0\"\n >\n <fd-breadcrumb *ngIf=\"!isMobile\">\n <ng-container *ngIf=\"breadCrumbs\">\n <ng-container\n *ngFor=\"\n let breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length;\n let i = index;\n let last = last\n \"\n >\n <fd-breadcrumb-item *ngIf=\"last\">\n <bsu-breadcrumb\n [index]=\"i\"\n [isLast]=\"last\"\n [breadCrumb]=\"breadCrumb\"\n [allBreadCrumb]=\"breadCrumbs\"\n ></bsu-breadcrumb>\n </fd-breadcrumb-item>\n </ng-container>\n </ng-container>\n </fd-breadcrumb>\n <!-- <fd-dynamic-page-title-content>\u06AF\u0632\u0627\u0631\u0634 </fd-dynamic-page-title-content> -->\n\n <fd-dynamic-page-global-actions *untilInView=\"el\" style=\"min-width: auto\">\n <fd-toolbar [shouldOverflow]=\"true\" Style=\"display:none\"> </fd-toolbar>\n <!-- added this because in mobile landscape toolbar disapper -->\n <fd-toolbar\n *ngIf=\"searchPanelUi\"\n class=\"global-actions\"\n fdType=\"transparent\"\n [clearBorder]=\"true\"\n [shouldOverflow]=\"deviceSize === 's'\"\n >\n <fd-popover\n fd-toolbar-item\n #popover\n fdOverflowPriority=\"never\"\n *ngIf=\"isAnonymous === false && canSaveGridSetting\"\n >\n <fd-popover-control>\n <div style=\"display: flex; align-items: center\">\n <h3 class=\"header-search\" [attr.rtl]=\"rtl\" fd-title>\n {{\n selectedSearchPanelSettings?.IsStandard\n ? ''\n : selectedSearchPanelSettings?.Title\n }}\n <strong *ngIf=\"searchPanelMoChanged\">*</strong>\n </h3>\n <fdp-button\n glyph=\"slim-arrow-down\"\n buttonType=\"transparent\"\n [fdContentDensity]=\"contentDensity\"\n ></fdp-button>\n </div>\n </fd-popover-control>\n <fd-popover-body mobile>\n <div fd-popover-body-header>\n <div fd-bar [fdCozy]>\n <div fd-bar-left>\n <fd-bar-element>{{ 'Filters' | bbbTranslate }}</fd-bar-element>\n </div>\n </div>\n </div>\n <ul fd-list style=\"min-height: 200px; background-color: var(--sapBackgroundColor, #f7f7f7)\">\n <li\n fd-list-item\n *ngFor=\"let option of allSearchPanelSettings\"\n [selected]=\"option.Id === selectedSearchPanelSettingsId\"\n (click)=\"onSelectSearchPanelSettings(option.Id, popover)\"\n >\n <span fd-list-title>{{ option.Title }}</span>\n </li>\n </ul>\n <div fd-popover-body-footer>\n <div fd-bar [barDesign]=\"'footer'\" [fdCozy]>\n <div fd-bar-right *ngIf=\"selectedSearchPanelSettings\">\n <fd-button-bar\n *ngIf=\"!selectedSearchPanelSettings.IsPrimary && searchPanelMoChanged\"\n [label]=\"'Save' | bbbTranslate\"\n fdType=\"emphasized\"\n (click)=\"onFilterSave(popover)\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"searchPanelMoChanged\"\n [label]=\"'SaveAs' | bbbTranslate\"\n [fdType]=\"\n selectedSearchPanelSettings.IsDefault ? 'emphasized' : 'transparent'\n \"\n (click)=\"onFilterSaveAs(popover)\"\n >\n </fd-button-bar>\n <fd-button-bar\n [label]=\"'Manage' | bbbTranslate\"\n fdInitialFocus\n fdType=\"transparent\"\n (click)=\"onManageFilters(popover)\"\n >\n </fd-button-bar>\n </div>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n <fd-toolbar-spacer *ngIf=\"deviceSize !== 's'\"></fd-toolbar-spacer>\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n buttonType=\"emphasized\"\n [label]=\"'Search' | bbbTranslate\"\n (click)=\"onSearch()\"\n [fdContentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n fdOverflowPriority=\"low\"\n [label]=\"'Filters' | bbbTranslate\"\n (click)=\"onShowFilterFieldsSetting()\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n fdOverflowPriority=\"low\"\n [label]=\"'Clear' | bbbTranslate\"\n (click)=\"onClearSearch()\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n [label]=\"hideSearchPanel ? ('Show' | bbbTranslate) : ('Hide' | bbbTranslate)\"\n (click)=\"onHideSearchPanelClick()\"\n fdOverflowPriority=\"low\"\n [fdOverflowGroup]=\"1\"\n [fdContentDensity]=\"contentDensity\"\n ></fdp-button>\n </fd-toolbar>\n </fd-dynamic-page-global-actions>\n <fd-dynamic-page-layout-actions>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"close.emit()\" title=\"Close\">\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n <fd-dynamic-page-subheader [pinnable]=\"true\" [collapsible]=\"false\" *ngIf=\"!hideSearchPanel && searchPanelUi\">\n <ng-container>\n <bsu-search-panel\n [hideButtons]=\"true\"\n [searchPanelUi]=\"searchPanelUi\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n </ng-container>\n </fd-dynamic-page-subheader>\n <fd-dynamic-page-content *ngIf=\"!tabMode\">\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n </fd-dynamic-page-content>\n <fd-dynamic-page-footer *ngIf=\"pagingSetting?.TotalPages\">\n <!-- page footer content goes here -->\n <div fd-bar [barDesign]=\"'footer'\">\n <div fd-bar-middle>\n <ng-container\n [renderUlvPaging]=\"context\"\n [pagingSetting]=\"pagingSetting\"\n (pageChange)=\"onPageChange($event)\"\n ></ng-container>\n </div>\n </div>\n </fd-dynamic-page-footer>\n </fd-dynamic-page>\n <ng-container *ngIf=\"tabMode\">\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n </ng-container>\n</ng-template>\n<ng-template #reportTemplate>\n <bsu-mask *ngIf=\"loading\" size=\"s\"></bsu-mask>\n <ng-container *ngIf=\"!hideSearchPanel && searchPanelUi\">\n <bsu-search-panel [searchPanelUi]=\"searchPanelUi\" (moChanged)=\"onSearchPanelMoChanged()\"></bsu-search-panel>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n <ng-container\n *ngIf=\"pagingSetting?.TotalPages\"\n [renderUlvPaging]=\"context\"\n [pagingSetting]=\"pagingSetting\"\n (pageChange)=\"onPageChange($event)\"\n ></ng-container>\n</ng-template>\n<ng-template #viewerTemplate>\n <div\n class=\"viewer-container\"\n fillEmptySpace\n [disable]=\"isReportPage || !fillPage\"\n [decrement]=\"deviceSize !== 's' ? '100px' : '75px'\"\n [style.height]=\"viewerLoading ? '100%' : 'auto'\"\n [style.min-height]=\"isReportPage ? '100%' : null\"\n [style.position]=\"viewerLoading ? 'relative' : null\"\n >\n <bsu-mask *ngIf=\"viewerLoading\" size=\"m\"></bsu-mask>\n <ng-container *ngIf=\"viewerControl\" [renderUlvViewer]=\"viewerControl\"></ng-container>\n </div>\n</ng-template>\n", styles: [":host{display:block;height:100%;flex-grow:1}:host ::ng-deep .fd-dynamic-page__toolbar-container{margin:0!important}:host ::ng-deep .fd-dynamic-page__collapsible-header{padding-top:0!important;padding-bottom:0!important}:host ::ng-deep .fd-dynamic-page__toolbar-container{flex:1}:host ::ng-deep .fdp-search-field__input-group{outline:none}:host ::ng-deep .fdp-search-field__input-group :-webkit-autofill,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:hover,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:focus,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px white inset!important}:host ::ng-deep .global-actions .fd-toolbar{padding:0}:host ::ng-deep fd-dynamic-page[tabMode=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep fd-dynamic-page[tabMode=true] .fd-dynamic-page .fd-dynamic-page__collapsible-header-visibility-container{box-shadow:none}fd-dynamic-page-global-actions{flex:1;width:100%}h3[rtl=true]{margin-left:5px}h3[rtl=false]{margin-right:5px}.header-search{color:var(--sapButton_TextColor, #0854a0)!important}.filter-wrapper{border-bottom:1px solid var(--sapObjectHeader_BorderColor, #d9d9d9)}.report-toolbar-container{display:flex}.report-toolbar-container .global-actions{flex-grow:1}fd-popover-body{min-width:380px}fd-popover-body.mobile{min-width:80vw}@media (max-width: 599px){.fd-dynamic-page,fd-dynamic-page-content{padding:1rem 0!important}.report-toolbar-container{flex-direction:column-reverse}.report-toolbar-container .layout-actions{flex-grow:1}}.viewer-container{background:var(--sapBaseColor);box-shadow:0 .3125rem 1.25rem 0 var(--sapGroup_ContentBorderColor)}\n"] }]
103
105
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { _dynamicPageComponent: [{
104
106
  type: ViewChild,
105
107
  args: [DynamicPageComponent]
@@ -170,4 +172,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
170
172
  }], selectSearchPanelSettings: [{
171
173
  type: Output
172
174
  }] } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdWx2LW1haW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdWx2LW1haW4vYmFyc2EtdWx2LW1haW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdWx2LW1haW4vYmFyc2EtdWx2LW1haW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRVosU0FBUyxFQUdaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFFSCxhQUFhLEVBQ2IsaUJBQWlCLEVBRWpCLFFBQVEsRUFFWCxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUTlCLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxhQUFhO0lBb0NwRCxZQUFtQixFQUFjO1FBQzdCLEtBQUssRUFBRSxDQUFDO1FBRE8sT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQWR2QixVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQix3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3pDLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQzlDLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2xDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FB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U0FBUzt1QkFBQyxvQkFBb0I7Z0JBQ3RCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLDZCQUE2QjtzQkFBckMsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyx5QkFBeUI7c0JBQWxDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgVmlld0NoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHluYW1pY1BhZ2VDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYmJyZXZhdGlvbkRldmljZVNpemUsXG4gICAgQmFzZUNvbXBvbmVudCxcbiAgICBnZXREZXZpY2VJc01vYmlsZSxcbiAgICBCcmVhZENydW1iSW5mbyxcbiAgICBCYXJzYUFwaSxcbiAgICBQYWdpbmdTZXR0aW5nXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtdWx2LW1haW4nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS11bHYtbWFpbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFyc2EtdWx2LW1haW4uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBCYXJzYVVsdk1haW5Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkKER5bmFtaWNQYWdlQ29tcG9uZW50KSBfZHluYW1pY1BhZ2VDb21wb25lbnQ6IER5bmFtaWNQYWdlQ29tcG9uZW50O1xuICAgIEBJbnB1dCgpIHZpZXdlckNvbnRyb2w6IGFueTtcbiAgICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHZpZXdlckxvYWRpbmc6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaXNSZXBvcnRQYWdlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcbiAgICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHNlYXJjaFBhbmVsVWk6IGFueTtcbiAgICBASW5wdXQoKSBicmVhZENydW1iczogQnJlYWRDcnVtYkluZm9bXTtcbiAgICBASW5wdXQoKSBhbGxTZWFyY2hQYW5lbFNldHRpbmdzOiBhbnlbXTtcbiAgICBASW5wdXQoKSBpc0Fub255bW91czogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBjYW5TYXZlR3JpZFNldHRpbmc6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcnRsOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nczogYW55O1xuICAgIEBJbnB1dCgpIHNlYXJjaFBhbmVsTW9DaGFuZ2VkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgaGlkZVNlYXJjaFBhbmVsOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHBhZ2luZ1NldHRpbmc6IFBhZ2luZ1NldHRpbmc7XG4gICAgQElucHV0KCkgY29udGVudERlbnNpdHk6IGFueTtcbiAgICBASW5wdXQoKSBjb250ZXh0OiBhbnk7XG4gICAgQElucHV0KCkgaXNNb2JpbGU6IGJvb2xlYW47XG4gICAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBzZWFyY2hQYW5lbE1vQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBvcGVuTWFuYWdlRmlsdGVycyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgY29sbGFwc2VkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICAgIEBPdXRwdXQoKSBoaWRlU2VhcmNoUGFuZWxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgZmlsdGVyU2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgZmlsdGVyU2F2ZUFzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gICAgQE91dHB1dCgpIHNob3dGaWx0ZXJGaWVsZHNTZXR0aW5nID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBtYW5hZ2VGaWx0ZXJzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBjbGVhclNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgc2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBzZWxlY3RTZWFyY2hQYW5lbFNldHRpbmdzID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgaXNTZXJ2aWNlRGVzayA9IGZhbHNlO1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbDogRWxlbWVudFJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmlzU2VydmljZURlc2sgPSBCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLklzU2VydmljZURlc2s7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICB9XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSBnZXREZXZpY2VJc01vYmlsZSgpO1xuICAgIH1cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICBpZiAodGhpcy5fZHluYW1pY1BhZ2VDb21wb25lbnQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRldmljZVNpemUgPT09ICd4bCcgJiYgdGhpcy5fZHluYW1pY1BhZ2VDb21wb25lbnQuc2l6ZSAhPT0gJ2V4dHJhLWxhcmdlJykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2R5bmFtaWNQYWdlQ29tcG9uZW50LnJlZnJlc2hTaXplKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25DbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gICAgfVxuICAgIG9uU2VhcmNoUGFuZWxNb0NoYW5nZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VhcmNoUGFuZWxNb0NoYW5nZS5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25PcGVuTWFuYWdlRmlsdGVycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuTWFuYWdlRmlsdGVycy5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25Db2xsYXBzZWRDaGFuZ2UoY29sbGFwc2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29sbGFwc2VkQ2hhbmdlLmVtaXQoY29sbGFwc2VkKTtcbiAgICB9XG4gICAgb25IaWRlU2VhcmNoUGFuZWxDbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRlU2VhcmNoUGFuZWxDbGljay5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25GaWx0ZXJTYXZlKHBvcG92ZXIpOiB2b2lkIHtcbiAgICAgICAgcG9wb3Zlci5jbG9zZSgpO1xuICAgICAgICB0aGlzLmZpbHRlclNhdmUuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uRmlsdGVyU2F2ZUFzKHBvcG92ZXIpOiB2b2lkIHtcbiAgICAgICAgcG9wb3Zlci5jbG9zZSgpO1xuICAgICAgICB0aGlzLmZpbHRlclNhdmVBcy5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25TaG93RmlsdGVyRmllbGRzU2V0dGluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93RmlsdGVyRmllbGRzU2V0dGluZy5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25NYW5hZ2VGaWx0ZXJzKHBvcG92ZXIpOiB2b2lkIHtcbiAgICAgICAgcG9wb3Zlci5jbG9zZSgpO1xuICAgICAgICB0aGlzLm1hbmFnZUZpbHRlcnMuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uQ2xlYXJTZWFyY2goKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xlYXJTZWFyY2guZW1pdCgpO1xuICAgIH1cblxuICAgIG9uU2VhcmNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlYXJjaC5lbWl0KCk7XG4gICAgfVxuICAgIG9uUGFnZUNoYW5nZShlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoZSk7XG4gICAgfVxuICAgIG9uU2VsZWN0U2VhcmNoUGFuZWxTZXR0aW5ncyhzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3NJZDogc3RyaW5nLCBwb3BvdmVyKTogdm9pZCB7XG4gICAgICAgIHBvcG92ZXIuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RTZWFyY2hQYW5lbFNldHRpbmdzLmVtaXQoc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzSWQpO1xuICAgIH1cbn1cbiIsIjwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUmVwb3J0UGFnZTsgZWxzZSByZXBvcnRUZW1wbGF0ZVwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIHJlcG9ydFBhZ2VUZW1wbGF0ZTtcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHZpZXdlckNvbnRyb2wsXG4gICAgICAgICAgICAgICAgdGFiTW9kZTogdmlld2VyQ29udHJvbC5TZXR0aW5nPy5DbGFzc05hbWVzPy5DdXN0b21VaT8uUGFyYW1ldGVycz8uVGFiTW9kZVxuICAgICAgICAgICAgfVxuICAgICAgICBcIlxuICAgID5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPiAtLT5cbjxuZy1jb250YWluZXJcbiAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBpc1JlcG9ydFBhZ2UgPyByZXBvcnRQYWdlVGVtcGxhdGUgOiByZXBvcnRUZW1wbGF0ZTtcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgJGltcGxpY2l0OiB2aWV3ZXJDb250cm9sLFxuICAgICAgICAgICAgdGFiTW9kZTogdmlld2VyQ29udHJvbD8uU2V0dGluZz8uQ2xhc3NOYW1lcz8uQ3VzdG9tVWk/LlBhcmFtZXRlcnM/LlRhYk1vZGVcbiAgICAgICAgfVxuICAgIFwiXG4+XG48L25nLWNvbnRhaW5lcj5cbjxic3UtbWFzayAqbmdJZj1cImxvYWRpbmdcIiBzaXplPVwibVwiPjwvYnN1LW1hc2s+XG48bmctdGVtcGxhdGUgI3JlcG9ydFBhZ2VUZW1wbGF0ZSBsZXQtdmlld2VyQ29udHJvbCBsZXQtdGFiTW9kZT1cInRhYk1vZGVcIj5cbiAgICA8ZmQtZHluYW1pYy1wYWdlXG4gICAgICAgIGZvcm1DbG9zZVxuICAgICAgICBtb2JpbGVcbiAgICAgICAgW2F0dHIuaXNNb2JpbGVdPVwiaXNNb2JpbGVcIlxuICAgICAgICBbaXNNb2JpbGVdPVwiaXNNb2JpbGVcIlxuICAgICAgICBbc2l6ZV09XCJkZXZpY2VTaXplIHwgZHluYW1pY1BhZ2VTaXplXCJcbiAgICAgICAgW2F0dHIudGFiTW9kZV09XCJ0YWJNb2RlXCJcbiAgICAgICAgW2F1dG9SZXNwb25zaXZlXT1cImZhbHNlXCJcbiAgICA+XG4gICAgICAgIDxmZC1keW5hbWljLXBhZ2UtaGVhZGVyXG4gICAgICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgICAgICAgKHRpdGxlIHwgYmJiVHJhbnNsYXRlKVxuICAgICAgICAgICAgICAgICAgICA/ICh0aXRsZSB8IGJiYlRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgOiBpc01vYmlsZSAmJiBicmVhZENydW1icy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgPyBicmVhZENydW1ic1ticmVhZENydW1icy5sZW5ndGggLSAxXS5sYWJlbFxuICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgY2xhc3M9XCJwLWIwXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGZkLWJyZWFkY3J1bWIgKm5nSWY9XCIhaXNNb2JpbGVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYnJlYWRDcnVtYnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJyZWFkQ3J1bWIgb2YgYnJlYWRDcnVtYnMgfCBzbGljZTogMDpicmVhZENydW1icy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGkgPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGFzdCA9IGxhc3RcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1icmVhZGNydW1iLWl0ZW0gKm5nSWY9XCJsYXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJzdS1icmVhZGNydW1iXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lzTGFzdF09XCJsYXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2JyZWFkQ3J1bWJdPVwiYnJlYWRDcnVtYlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbGxCcmVhZENydW1iXT1cImJyZWFkQ3J1bWJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9ic3UtYnJlYWRjcnVtYj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtYnJlYWRjcnVtYi1pdGVtPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZmQtYnJlYWRjcnVtYj5cbiAgICAgICAgICAgIDwhLS0gPGZkLWR5bmFtaWMtcGFnZS10aXRsZS1jb250ZW50Ptqv2LLYp9ix2LQgPC9mZC1keW5hbWljLXBhZ2UtdGl0bGUtY29udGVudD4gLS0+XG5cbiAgICAgICAgICAgIDxmZC1keW5hbWljLXBhZ2UtZ2xvYmFsLWFjdGlvbnMgKnVudGlsSW5WaWV3PVwiZWxcIiBzdHlsZT1cIm1pbi13aWR0aDogYXV0b1wiPlxuICAgICAgICAgICAgICAgIDxmZC10b29sYmFyIFtzaG91bGRPdmVyZmxvd109XCJ0cnVlXCIgU3R5bGU9XCJkaXNwbGF5Om5vbmVcIj4gPC9mZC10b29sYmFyPlxuICAgICAgICAgICAgICAgIDwhLS0gYWRkZWQgdGhpcyBiZWNhdXNlIGluIG1vYmlsZSBsYW5kc2NhcGUgdG9vbGJhciBkaXNhcHBlciAtLT5cbiAgICAgICAgICAgICAgICA8ZmQtdG9vbGJhclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNlYXJjaFBhbmVsVWlcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImdsb2JhbC1hY3Rpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICBbY2xlYXJCb3JkZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaG91bGRPdmVyZmxvd109XCJkZXZpY2VTaXplID09PSAncydcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgI3BvcG92ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkT3ZlcmZsb3dQcmlvcml0eT1cIm5ldmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNBbm9ueW1vdXMgPT09IGZhbHNlICYmIGNhblNhdmVHcmlkU2V0dGluZ1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiaGVhZGVyLXNlYXJjaFwiIFthdHRyLnJ0bF09XCJydGxcIiBmZC10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzPy5Jc1N0YW5kYXJkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3M/LlRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyAqbmdJZj1cInNlYXJjaFBhbmVsTW9DaGFuZ2VkXCI+Kjwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJzbGltLWFycm93LWRvd25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZENvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXItYm9keSBtb2JpbGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1wb3BvdmVyLWJvZHktaGVhZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhciBbZmRDb3p5XT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50Pnt7ICdGaWx0ZXJzJyB8IGJiYlRyYW5zbGF0ZSB9fTwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGZkLWxpc3Qgc3R5bGU9XCJtaW4taGVpZ2h0OiAyMDBweDsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2FwQmFja2dyb3VuZENvbG9yLCAjZjdmN2Y3KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWxpc3QtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBhbGxTZWFyY2hQYW5lbFNldHRpbmdzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJvcHRpb24uSWQgPT09IHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdFNlYXJjaFBhbmVsU2V0dGluZ3Mob3B0aW9uLklkLCBwb3BvdmVyKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+e3sgb3B0aW9uLlRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1wb3BvdmVyLWJvZHktZm9vdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhciBbYmFyRGVzaWduXT1cIidmb290ZXInXCIgW2ZkQ296eV0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodCAqbmdJZj1cInNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncy5Jc1ByaW1hcnkgJiYgc2VhcmNoUGFuZWxNb0NoYW5nZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1NhdmUnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkZpbHRlclNhdmUocG9wb3ZlcilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzZWFyY2hQYW5lbE1vQ2hhbmdlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInU2F2ZUFzJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MuSXNEZWZhdWx0ID8gJ2VtcGhhc2l6ZWQnIDogJ3RyYW5zcGFyZW50J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25GaWx0ZXJTYXZlQXMocG9wb3ZlcilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidNYW5hZ2UnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRJbml0aWFsRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25NYW5hZ2VGaWx0ZXJzKHBvcG92ZXIpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1idXR0b24tYmFyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XG4gICAgICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlcj5cbiAgICAgICAgICAgICAgICAgICAgPGZkLXRvb2xiYXItc3BhY2VyICpuZ0lmPVwiZGV2aWNlU2l6ZSAhPT0gJ3MnXCI+PC9mZC10b29sYmFyLXNwYWNlcj5cbiAgICAgICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgZmRPdmVyZmxvd1ByaW9yaXR5PVwibmV2ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uVHlwZT1cImVtcGhhc2l6ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidTZWFyY2gnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlYXJjaCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmZENvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkT3ZlcmZsb3dQcmlvcml0eT1cImxvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0ZpbHRlcnMnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNob3dGaWx0ZXJGaWVsZHNTZXR0aW5nKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZkT3ZlcmZsb3dHcm91cF09XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmZENvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkT3ZlcmZsb3dQcmlvcml0eT1cImxvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0NsZWFyJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGVhclNlYXJjaCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmZE92ZXJmbG93R3JvdXBdPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmRDb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvblR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiaGlkZVNlYXJjaFBhbmVsID8gKCdTaG93JyB8IGJiYlRyYW5zbGF0ZSkgOiAoJ0hpZGUnIHwgYmJiVHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25IaWRlU2VhcmNoUGFuZWxDbGljaygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkT3ZlcmZsb3dQcmlvcml0eT1cImxvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmRPdmVyZmxvd0dyb3VwXT1cIjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZkQ29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZmQtdG9vbGJhcj5cbiAgICAgICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWdsb2JhbC1hY3Rpb25zPlxuICAgICAgICAgICAgPGZkLWR5bmFtaWMtcGFnZS1sYXlvdXQtYWN0aW9ucz5cbiAgICAgICAgICAgICAgICA8ZmQtdG9vbGJhciBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiIFtjbGVhckJvcmRlcl09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cImNsb3NlLmVtaXQoKVwiIHRpdGxlPVwiQ2xvc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtjbGFzc109XCInc2FwLWljb24tLScgKyAoaXNNb2JpbGUgPyAocnRsID8gJ2Fycm93LXJpZ2h0JyA6ICdhcnJvdy1sZWZ0JykgOiAnZGVjbGluZScpXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XG4gICAgICAgICAgICA8L2ZkLWR5bmFtaWMtcGFnZS1sYXlvdXQtYWN0aW9ucz5cbiAgICAgICAgPC9mZC1keW5hbWljLXBhZ2UtaGVhZGVyPlxuICAgICAgICA8ZmQtZHluYW1pYy1wYWdlLXN1YmhlYWRlciBbcGlubmFibGVdPVwidHJ1ZVwiIFtjb2xsYXBzaWJsZV09XCJmYWxzZVwiICpuZ0lmPVwiIWhpZGVTZWFyY2hQYW5lbCAmJiBzZWFyY2hQYW5lbFVpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxic3Utc2VhcmNoLXBhbmVsXG4gICAgICAgICAgICAgICAgICAgIFtoaWRlQnV0dG9uc109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW3NlYXJjaFBhbmVsVWldPVwic2VhcmNoUGFuZWxVaVwiXG4gICAgICAgICAgICAgICAgICAgIChtb0NoYW5nZWQpPVwib25TZWFyY2hQYW5lbE1vQ2hhbmdlZCgpXCJcbiAgICAgICAgICAgICAgICA+PC9ic3Utc2VhcmNoLXBhbmVsPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLXN1YmhlYWRlcj5cbiAgICAgICAgPGZkLWR5bmFtaWMtcGFnZS1jb250ZW50ICpuZ0lmPVwiIXRhYk1vZGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ2aWV3ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2ZkLWR5bmFtaWMtcGFnZS1jb250ZW50PlxuICAgICAgICA8ZmQtZHluYW1pYy1wYWdlLWZvb3RlciAqbmdJZj1cInBhZ2luZ1NldHRpbmc/LlRvdGFsUGFnZXNcIj5cbiAgICAgICAgICAgIDwhLS0gcGFnZSBmb290ZXIgY29udGVudCBnb2VzIGhlcmUgLS0+XG4gICAgICAgICAgICA8ZGl2IGZkLWJhciBbYmFyRGVzaWduXT1cIidmb290ZXInXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItbWlkZGxlPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcmVuZGVyVWx2UGFnaW5nXT1cImNvbnRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3BhZ2luZ1NldHRpbmddPVwicGFnaW5nU2V0dGluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2ZkLWR5bmFtaWMtcGFnZS1mb290ZXI+XG4gICAgPC9mZC1keW5hbWljLXBhZ2U+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYk1vZGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInZpZXdlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNyZXBvcnRUZW1wbGF0ZT5cbiAgICA8YnN1LW1hc2sgKm5nSWY9XCJsb2FkaW5nXCIgc2l6ZT1cInNcIj48L2JzdS1tYXNrPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGlkZVNlYXJjaFBhbmVsICYmIHNlYXJjaFBhbmVsVWlcIj5cbiAgICAgICAgPGJzdS1zZWFyY2gtcGFuZWwgW3NlYXJjaFBhbmVsVWldPVwic2VhcmNoUGFuZWxVaVwiIChtb0NoYW5nZWQpPVwib25TZWFyY2hQYW5lbE1vQ2hhbmdlZCgpXCI+PC9ic3Utc2VhcmNoLXBhbmVsPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ2aWV3ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJwYWdpbmdTZXR0aW5nPy5Ub3RhbFBhZ2VzXCJcbiAgICAgICAgW3JlbmRlclVsdlBhZ2luZ109XCJjb250ZXh0XCJcbiAgICAgICAgW3BhZ2luZ1NldHRpbmddPVwicGFnaW5nU2V0dGluZ1wiXG4gICAgICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICN2aWV3ZXJUZW1wbGF0ZT5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidmlld2VyLWNvbnRhaW5lclwiXG4gICAgICAgIFtzdHlsZS5oZWlnaHRdPVwidmlld2VyTG9hZGluZyA/ICcxMDAlJyA6ICdhdXRvJ1wiXG4gICAgICAgIFtzdHlsZS5wb3NpdGlvbl09XCJ2aWV3ZXJMb2FkaW5nID8gJ3JlbGF0aXZlJyA6IG51bGxcIlxuICAgID5cbiAgICAgICAgPGJzdS1tYXNrICpuZ0lmPVwidmlld2VyTG9hZGluZ1wiIHNpemU9XCJtXCI+PC9ic3UtbWFzaz5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpZXdlckNvbnRyb2xcIiBbcmVuZGVyVWx2Vmlld2VyXT1cInZpZXdlckNvbnRyb2xcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdWx2LW1haW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdWx2LW1haW4vYmFyc2EtdWx2LW1haW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdWx2LW1haW4vYmFyc2EtdWx2LW1haW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRVosU0FBUyxFQUdaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFFSCxhQUFhLEVBQ2IsaUJBQWlCLEVBRWpCLFFBQVEsRUFFWCxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUTlCLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxhQUFhO0lBcUNwRCxZQUFtQixFQUFjO1FBQzdCLEtBQUssRUFBRSxDQUFDO1FBRE8sT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQWZ2QixVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQix3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3pDLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQzlDLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2xDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FB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LE1BQU07Z0JBQ0cseUJBQXlCO3NCQUFsQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IER5bmFtaWNQYWdlQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJicmV2YXRpb25EZXZpY2VTaXplLFxuICAgIEJhc2VDb21wb25lbnQsXG4gICAgZ2V0RGV2aWNlSXNNb2JpbGUsXG4gICAgQnJlYWRDcnVtYkluZm8sXG4gICAgQmFyc2FBcGksXG4gICAgUGFnaW5nU2V0dGluZ1xufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LWJhcnNhLXVsdi1tYWluJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFyc2EtdWx2LW1haW4uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLXVsdi1tYWluLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQmFyc2FVbHZNYWluQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQFZpZXdDaGlsZChEeW5hbWljUGFnZUNvbXBvbmVudCkgX2R5bmFtaWNQYWdlQ29tcG9uZW50OiBEeW5hbWljUGFnZUNvbXBvbmVudDtcbiAgICBASW5wdXQoKSB2aWV3ZXJDb250cm9sOiBhbnk7XG4gICAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbjtcbiAgICBASW5wdXQoKSB2aWV3ZXJMb2FkaW5nOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGlzUmVwb3J0UGFnZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBkZXZpY2VTaXplOiBBYmJyZXZhdGlvbkRldmljZVNpemU7XG4gICAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBzZWFyY2hQYW5lbFVpOiBhbnk7XG4gICAgQElucHV0KCkgYnJlYWRDcnVtYnM6IEJyZWFkQ3J1bWJJbmZvW107XG4gICAgQElucHV0KCkgYWxsU2VhcmNoUGFuZWxTZXR0aW5nczogYW55W107XG4gICAgQElucHV0KCkgaXNBbm9ueW1vdXM6IGJvb2xlYW47XG4gICAgQElucHV0KCkgY2FuU2F2ZUdyaWRTZXR0aW5nOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHJ0bDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3M6IGFueTtcbiAgICBASW5wdXQoKSBzZWFyY2hQYW5lbE1vQ2hhbmdlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3NJZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGhpZGVTZWFyY2hQYW5lbDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBwYWdpbmdTZXR0aW5nOiBQYWdpbmdTZXR0aW5nO1xuICAgIEBJbnB1dCgpIGNvbnRlbnREZW5zaXR5OiBhbnk7XG4gICAgQElucHV0KCkgY29udGV4dDogYW55O1xuICAgIEBJbnB1dCgpIGlzTW9iaWxlOiBib29sZWFuO1xuICAgIEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgc2VhcmNoUGFuZWxNb0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb3Blbk1hbmFnZUZpbHRlcnMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGNvbGxhcHNlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBAT3V0cHV0KCkgaGlkZVNlYXJjaFBhbmVsQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGZpbHRlclNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGZpbHRlclNhdmVBcyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICAgIEBPdXRwdXQoKSBzaG93RmlsdGVyRmllbGRzU2V0dGluZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgbWFuYWdlRmlsdGVycyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgY2xlYXJTZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgc2VsZWN0U2VhcmNoUGFuZWxTZXR0aW5ncyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAgIGlzU2VydmljZURlc2sgPSBmYWxzZTtcbiAgICBmaWxsUGFnZSA9IGZhbHNlO1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbDogRWxlbWVudFJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmlzU2VydmljZURlc2sgPSBCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLklzU2VydmljZURlc2s7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICB9XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuZmlsbFBhZ2UgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShcbiAgICAgICAgICAgIHRoaXMuY29udGV4dCxcbiAgICAgICAgICAgICdTZXR0aW5nLkNsYXNzTmFtZXMuQ3VzdG9tVWkuUGFyYW1ldGVycy5GaWxsUGFnZScsXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmlzTW9iaWxlID0gZ2V0RGV2aWNlSXNNb2JpbGUoKTtcbiAgICB9XG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgaWYgKHRoaXMuX2R5bmFtaWNQYWdlQ29tcG9uZW50KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kZXZpY2VTaXplID09PSAneGwnICYmIHRoaXMuX2R5bmFtaWNQYWdlQ29tcG9uZW50LnNpemUgIT09ICdleHRyYS1sYXJnZScpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9keW5hbWljUGFnZUNvbXBvbmVudC5yZWZyZXNoU2l6ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICAgIH1cbiAgICBvblNlYXJjaFBhbmVsTW9DaGFuZ2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlYXJjaFBhbmVsTW9DaGFuZ2UuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uT3Blbk1hbmFnZUZpbHRlcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3Blbk1hbmFnZUZpbHRlcnMuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uQ29sbGFwc2VkQ2hhbmdlKGNvbGxhcHNlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbGxhcHNlZENoYW5nZS5lbWl0KGNvbGxhcHNlZCk7XG4gICAgfVxuICAgIG9uSGlkZVNlYXJjaFBhbmVsQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlkZVNlYXJjaFBhbmVsQ2xpY2suZW1pdCgpO1xuICAgIH1cblxuICAgIG9uRmlsdGVyU2F2ZShwb3BvdmVyKTogdm9pZCB7XG4gICAgICAgIHBvcG92ZXIuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5maWx0ZXJTYXZlLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvbkZpbHRlclNhdmVBcyhwb3BvdmVyKTogdm9pZCB7XG4gICAgICAgIHBvcG92ZXIuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5maWx0ZXJTYXZlQXMuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uU2hvd0ZpbHRlckZpZWxkc1NldHRpbmcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2hvd0ZpbHRlckZpZWxkc1NldHRpbmcuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uTWFuYWdlRmlsdGVycyhwb3BvdmVyKTogdm9pZCB7XG4gICAgICAgIHBvcG92ZXIuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5tYW5hZ2VGaWx0ZXJzLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvbkNsZWFyU2VhcmNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsZWFyU2VhcmNoLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvblNlYXJjaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWFyY2guZW1pdCgpO1xuICAgIH1cbiAgICBvblBhZ2VDaGFuZ2UoZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KGUpO1xuICAgIH1cbiAgICBvblNlbGVjdFNlYXJjaFBhbmVsU2V0dGluZ3Moc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzSWQ6IHN0cmluZywgcG9wb3Zlcik6IHZvaWQge1xuICAgICAgICBwb3BvdmVyLmNsb3NlKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0U2VhcmNoUGFuZWxTZXR0aW5ncy5lbWl0KHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkKTtcbiAgICB9XG59XG4iLCI8IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1JlcG9ydFBhZ2U7IGVsc2UgcmVwb3J0VGVtcGxhdGVcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICByZXBvcnRQYWdlVGVtcGxhdGU7XG4gICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiB2aWV3ZXJDb250cm9sLFxuICAgICAgICAgICAgICAgIHRhYk1vZGU6IHZpZXdlckNvbnRyb2wuU2V0dGluZz8uQ2xhc3NOYW1lcz8uQ3VzdG9tVWk/LlBhcmFtZXRlcnM/LlRhYk1vZGVcbiAgICAgICAgICAgIH1cbiAgICAgICAgXCJcbiAgICA+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj4gLS0+XG48bmctY29udGFpbmVyXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgaXNSZXBvcnRQYWdlID8gcmVwb3J0UGFnZVRlbXBsYXRlIDogcmVwb3J0VGVtcGxhdGU7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICRpbXBsaWNpdDogdmlld2VyQ29udHJvbCxcbiAgICAgICAgICAgIHRhYk1vZGU6IHZpZXdlckNvbnRyb2w/LlNldHRpbmc/LkNsYXNzTmFtZXM/LkN1c3RvbVVpPy5QYXJhbWV0ZXJzPy5UYWJNb2RlXG4gICAgICAgIH1cbiAgICBcIlxuPlxuPC9uZy1jb250YWluZXI+XG48YnN1LW1hc2sgKm5nSWY9XCJsb2FkaW5nXCIgc2l6ZT1cIm1cIj48L2JzdS1tYXNrPlxuPG5nLXRlbXBsYXRlICNyZXBvcnRQYWdlVGVtcGxhdGUgbGV0LXZpZXdlckNvbnRyb2wgbGV0LXRhYk1vZGU9XCJ0YWJNb2RlXCI+XG4gICAgPGZkLWR5bmFtaWMtcGFnZVxuICAgICAgICBmb3JtQ2xvc2VcbiAgICAgICAgbW9iaWxlXG4gICAgICAgIFthdHRyLmlzTW9iaWxlXT1cImlzTW9iaWxlXCJcbiAgICAgICAgW2lzTW9iaWxlXT1cImlzTW9iaWxlXCJcbiAgICAgICAgW3NpemVdPVwiZGV2aWNlU2l6ZSB8IGR5bmFtaWNQYWdlU2l6ZVwiXG4gICAgICAgIFthdHRyLnRhYk1vZGVdPVwidGFiTW9kZVwiXG4gICAgICAgIFthdXRvUmVzcG9uc2l2ZV09XCJmYWxzZVwiXG4gICAgPlxuICAgICAgICA8ZmQtZHluYW1pYy1wYWdlLWhlYWRlclxuICAgICAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgICAgICAgICh0aXRsZSB8IGJiYlRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgPyAodGl0bGUgfCBiYmJUcmFuc2xhdGUpXG4gICAgICAgICAgICAgICAgICAgIDogaXNNb2JpbGUgJiYgYnJlYWRDcnVtYnMubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgID8gYnJlYWRDcnVtYnNbYnJlYWRDcnVtYnMubGVuZ3RoIC0gMV0ubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIGNsYXNzPVwicC1iMFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxmZC1icmVhZGNydW1iICpuZ0lmPVwiIWlzTW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJyZWFkQ3J1bWJzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBicmVhZENydW1iIG9mIGJyZWFkQ3J1bWJzIHwgc2xpY2U6IDA6YnJlYWRDcnVtYnMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxhc3QgPSBsYXN0XG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYnJlYWRjcnVtYi1pdGVtICpuZ0lmPVwibGFzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxic3UtYnJlYWRjcnVtYlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5kZXhdPVwiaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpc0xhc3RdPVwibGFzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFticmVhZENydW1iXT1cImJyZWFkQ3J1bWJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWxsQnJlYWRDcnVtYl09XCJicmVhZENydW1ic1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnN1LWJyZWFkY3J1bWI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLWJyZWFkY3J1bWItaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2ZkLWJyZWFkY3J1bWI+XG4gICAgICAgICAgICA8IS0tIDxmZC1keW5hbWljLXBhZ2UtdGl0bGUtY29udGVudD7ar9iy2KfYsdi0IDwvZmQtZHluYW1pYy1wYWdlLXRpdGxlLWNvbnRlbnQ+IC0tPlxuXG4gICAgICAgICAgICA8ZmQtZHluYW1pYy1wYWdlLWdsb2JhbC1hY3Rpb25zICp1bnRpbEluVmlldz1cImVsXCIgc3R5bGU9XCJtaW4td2lkdGg6IGF1dG9cIj5cbiAgICAgICAgICAgICAgICA8ZmQtdG9vbGJhciBbc2hvdWxkT3ZlcmZsb3ddPVwidHJ1ZVwiIFN0eWxlPVwiZGlzcGxheTpub25lXCI+IDwvZmQtdG9vbGJhcj5cbiAgICAgICAgICAgICAgICA8IS0tIGFkZGVkIHRoaXMgYmVjYXVzZSBpbiBtb2JpbGUgbGFuZHNjYXBlIHRvb2xiYXIgZGlzYXBwZXIgLS0+XG4gICAgICAgICAgICAgICAgPGZkLXRvb2xiYXJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzZWFyY2hQYW5lbFVpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJnbG9iYWwtYWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgW2NsZWFyQm9yZGVyXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvdWxkT3ZlcmZsb3ddPVwiZGV2aWNlU2l6ZSA9PT0gJ3MnXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICNwb3BvdmVyXG4gICAgICAgICAgICAgICAgICAgICAgICBmZE92ZXJmbG93UHJpb3JpdHk9XCJuZXZlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzQW5vbnltb3VzID09PSBmYWxzZSAmJiBjYW5TYXZlR3JpZFNldHRpbmdcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImhlYWRlci1zZWFyY2hcIiBbYXR0ci5ydGxdPVwicnRsXCIgZmQtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncz8uSXNTdGFuZGFyZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzPy5UaXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmcgKm5nSWY9XCJzZWFyY2hQYW5lbE1vQ2hhbmdlZFwiPio8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwic2xpbS1hcnJvdy1kb3duXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvblR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRDb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWJvZHkgbW9iaWxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWhlYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXIgW2ZkQ296eV0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudD57eyAnRmlsdGVycycgfCBiYmJUcmFuc2xhdGUgfX08L2ZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBmZC1saXN0IHN0eWxlPVwibWluLWhlaWdodDogMjAwcHg7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNhcEJhY2tncm91bmRDb2xvciwgI2Y3ZjdmNylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1saXN0LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgYWxsU2VhcmNoUGFuZWxTZXR0aW5nc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwib3B0aW9uLklkID09PSBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3NJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3RTZWFyY2hQYW5lbFNldHRpbmdzKG9wdGlvbi5JZCwgcG9wb3ZlcilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7IG9wdGlvbi5UaXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWZvb3Rlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXIgW2JhckRlc2lnbl09XCInZm9vdGVyJ1wiIFtmZENvenldPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItcmlnaHQgKm5nSWY9XCJzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3NcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MuSXNQcmltYXJ5ICYmIHNlYXJjaFBhbmVsTW9DaGFuZ2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidTYXZlJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cImVtcGhhc2l6ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25GaWx0ZXJTYXZlKHBvcG92ZXIpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1idXR0b24tYmFyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2VhcmNoUGFuZWxNb0NoYW5nZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1NhdmVBcycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzLklzRGVmYXVsdCA/ICdlbXBoYXNpemVkJyA6ICd0cmFuc3BhcmVudCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRmlsdGVyU2F2ZUFzKHBvcG92ZXIpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1idXR0b24tYmFyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInTWFuYWdlJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkSW5pdGlhbEZvY3VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTWFuYWdlRmlsdGVycyhwb3BvdmVyKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXI+XG4gICAgICAgICAgICAgICAgICAgIDxmZC10b29sYmFyLXNwYWNlciAqbmdJZj1cImRldmljZVNpemUgIT09ICdzJ1wiPjwvZmQtdG9vbGJhci1zcGFjZXI+XG4gICAgICAgICAgICAgICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkT3ZlcmZsb3dQcmlvcml0eT1cIm5ldmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvblR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInU2VhcmNoJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWFyY2goKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmRDb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvblR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmZE92ZXJmbG93UHJpb3JpdHk9XCJsb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidGaWx0ZXJzJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TaG93RmlsdGVyRmllbGRzU2V0dGluZygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmZE92ZXJmbG93R3JvdXBdPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmRDb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvblR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmZE92ZXJmbG93UHJpb3JpdHk9XCJsb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidDbGVhcicgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xlYXJTZWFyY2goKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmRPdmVyZmxvd0dyb3VwXT1cIjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZkQ29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b25UeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImhpZGVTZWFyY2hQYW5lbCA/ICgnU2hvdycgfCBiYmJUcmFuc2xhdGUpIDogKCdIaWRlJyB8IGJiYlRyYW5zbGF0ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uSGlkZVNlYXJjaFBhbmVsQ2xpY2soKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmZE92ZXJmbG93UHJpb3JpdHk9XCJsb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZkT3ZlcmZsb3dHcm91cF09XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmZENvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XG4gICAgICAgICAgICA8L2ZkLWR5bmFtaWMtcGFnZS1nbG9iYWwtYWN0aW9ucz5cbiAgICAgICAgICAgIDxmZC1keW5hbWljLXBhZ2UtbGF5b3V0LWFjdGlvbnM+XG4gICAgICAgICAgICAgICAgPGZkLXRvb2xiYXIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBbY2xlYXJCb3JkZXJdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJjbG9zZS5lbWl0KClcIiB0aXRsZT1cIkNsb3NlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiJ3NhcC1pY29uLS0nICsgKGlzTW9iaWxlID8gKHJ0bCA/ICdhcnJvdy1yaWdodCcgOiAnYXJyb3ctbGVmdCcpIDogJ2RlY2xpbmUnKVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9mZC10b29sYmFyPlxuICAgICAgICAgICAgPC9mZC1keW5hbWljLXBhZ2UtbGF5b3V0LWFjdGlvbnM+XG4gICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWhlYWRlcj5cbiAgICAgICAgPGZkLWR5bmFtaWMtcGFnZS1zdWJoZWFkZXIgW3Bpbm5hYmxlXT1cInRydWVcIiBbY29sbGFwc2libGVdPVwiZmFsc2VcIiAqbmdJZj1cIiFoaWRlU2VhcmNoUGFuZWwgJiYgc2VhcmNoUGFuZWxVaVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8YnN1LXNlYXJjaC1wYW5lbFxuICAgICAgICAgICAgICAgICAgICBbaGlkZUJ1dHRvbnNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzZWFyY2hQYW5lbFVpXT1cInNlYXJjaFBhbmVsVWlcIlxuICAgICAgICAgICAgICAgICAgICAobW9DaGFuZ2VkKT1cIm9uU2VhcmNoUGFuZWxNb0NoYW5nZWQoKVwiXG4gICAgICAgICAgICAgICAgPjwvYnN1LXNlYXJjaC1wYW5lbD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2ZkLWR5bmFtaWMtcGFnZS1zdWJoZWFkZXI+XG4gICAgICAgIDxmZC1keW5hbWljLXBhZ2UtY29udGVudCAqbmdJZj1cIiF0YWJNb2RlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidmlld2VyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9mZC1keW5hbWljLXBhZ2UtY29udGVudD5cbiAgICAgICAgPGZkLWR5bmFtaWMtcGFnZS1mb290ZXIgKm5nSWY9XCJwYWdpbmdTZXR0aW5nPy5Ub3RhbFBhZ2VzXCI+XG4gICAgICAgICAgICA8IS0tIHBhZ2UgZm9vdGVyIGNvbnRlbnQgZ29lcyBoZXJlIC0tPlxuICAgICAgICAgICAgPGRpdiBmZC1iYXIgW2JhckRlc2lnbl09XCInZm9vdGVyJ1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLW1pZGRsZT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlbmRlclVsdlBhZ2luZ109XCJjb250ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwYWdpbmdTZXR0aW5nXT1cInBhZ2luZ1NldHRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mZC1keW5hbWljLXBhZ2UtZm9vdGVyPlxuICAgIDwvZmQtZHluYW1pYy1wYWdlPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWJNb2RlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ2aWV3ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjcmVwb3J0VGVtcGxhdGU+XG4gICAgPGJzdS1tYXNrICpuZ0lmPVwibG9hZGluZ1wiIHNpemU9XCJzXCI+PC9ic3UtbWFzaz5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGVTZWFyY2hQYW5lbCAmJiBzZWFyY2hQYW5lbFVpXCI+XG4gICAgICAgIDxic3Utc2VhcmNoLXBhbmVsIFtzZWFyY2hQYW5lbFVpXT1cInNlYXJjaFBhbmVsVWlcIiAobW9DaGFuZ2VkKT1cIm9uU2VhcmNoUGFuZWxNb0NoYW5nZWQoKVwiPjwvYnN1LXNlYXJjaC1wYW5lbD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidmlld2VyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwicGFnaW5nU2V0dGluZz8uVG90YWxQYWdlc1wiXG4gICAgICAgIFtyZW5kZXJVbHZQYWdpbmddPVwiY29udGV4dFwiXG4gICAgICAgIFtwYWdpbmdTZXR0aW5nXT1cInBhZ2luZ1NldHRpbmdcIlxuICAgICAgICAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjdmlld2VyVGVtcGxhdGU+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInZpZXdlci1jb250YWluZXJcIlxuICAgICAgICBmaWxsRW1wdHlTcGFjZVxuICAgICAgICBbZGlzYWJsZV09XCJpc1JlcG9ydFBhZ2UgfHwgIWZpbGxQYWdlXCJcbiAgICAgICAgW2RlY3JlbWVudF09XCJkZXZpY2VTaXplICE9PSAncycgPyAnMTAwcHgnIDogJzc1cHgnXCJcbiAgICAgICAgW3N0eWxlLmhlaWdodF09XCJ2aWV3ZXJMb2FkaW5nID8gJzEwMCUnIDogJ2F1dG8nXCJcbiAgICAgICAgW3N0eWxlLm1pbi1oZWlnaHRdPVwiaXNSZXBvcnRQYWdlID8gJzEwMCUnIDogbnVsbFwiXG4gICAgICAgIFtzdHlsZS5wb3NpdGlvbl09XCJ2aWV3ZXJMb2FkaW5nID8gJ3JlbGF0aXZlJyA6IG51bGxcIlxuICAgID5cbiAgICAgICAgPGJzdS1tYXNrICpuZ0lmPVwidmlld2VyTG9hZGluZ1wiIHNpemU9XCJtXCI+PC9ic3UtbWFzaz5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpZXdlckNvbnRyb2xcIiBbcmVuZGVyVWx2Vmlld2VyXT1cInZpZXdlckNvbnRyb2xcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -10,13 +10,14 @@ export class LyTabPageComponent extends LayoutPanelBaseComponent {
10
10
  config.controlUi = this;
11
11
  this.title = config.Title;
12
12
  this.flex = config.Bounds.width;
13
+ this._classes = this.config.items.length === 0 ? 'field-nopadding' : 'field-nopadding';
13
14
  }
14
15
  refreshLayout() {
15
16
  this.layoutService.refreshLayout();
16
17
  }
17
18
  }
18
19
  LyTabPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: LyTabPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
19
- LyTabPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: LyTabPageComponent, selector: "bsu-ly-tab-page", inputs: { renderItems: "renderItems", tablist: "tablist" }, host: { properties: { "style.flex": "this.flex", "attr.title": "this.title" } }, providers: [LayoutService], viewQueries: [{ propertyName: "vcr", first: true, predicate: ["placeholder"], descendants: true, read: ViewContainerRef }, { propertyName: "viewRef", first: true, predicate: ["viewRefTemplate"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *untilInView=\"el\">\n <ng-container *ngFor=\"let item of config | filterToolbarControl\">\n <ng-container [ngSwitch]=\"item.xtype\">\n <ng-container *ngSwitchCase=\"'Ly.LayoutTabPanel'\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-tab-container' }\n \"\n ></ng-container>\n <!-- <bsu-ly-tab-container [config]=\"item\"></bsu-ly-tab-container> -->\n </ng-container>\n <ng-container *ngSwitchCase=\"'Ly.LayoutPanel'\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-layout-panel' }\n \"\n ></ng-container>\n <!-- <bsu-ly-layout-panel [config]=\"item\"></bsu-ly-layout-panel> -->\n </ng-container>\n <ng-container *ngSwitchCase=\"'Ly.LayoutContainer'\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: {\n $implicit: item,\n name: 'LyLayoutContainerComponent',\n selector: 'bsu-ly-layout-container'\n }\n \"\n ></ng-container>\n <!-- <bsu-ly-layout-container [config]=\"item\"></bsu-ly-layout-container> -->\n </ng-container>\n <ng-container *ngSwitchCase=\"'Ly.EmptySpace'\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: { $implicit: item, name: 'LyEmptySpaceComponent', selector: 'bsu-ly-empty-space' }\n \"\n ></ng-container>\n <!-- <bsu-ly-empty-space [config]=\"item\"></bsu-ly-empty-space> -->\n </ng-container>\n <ng-container *ngSwitchCase=\"'Ly.SimpleLabel'\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: { $implicit: item, name: 'LySimpleLabelComponent', selector: 'bsu-ly-simple-label' }\n \"\n ></ng-container>\n <!-- <bsu-ly-simple-label [config]=\"item\"></bsu-ly-simple-label> -->\n </ng-container>\n <ng-container *ngSwitchCase=\"'Ly.LayoutLine'\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: { $implicit: item, name: 'LyLineComponent', selector: 'bsu-ly-line' }\n \"\n ></ng-container>\n <!-- <bsu-ly-line [isVertical]=\"item.IsVertical\"></bsu-ly-line> -->\n </ng-container>\n <ng-container *ngSwitchCase=\"'Ly.LayoutJoin'\">\n <ng-container *ngIf=\"item.Type === 'HorizontalJoin'; else verticalJoin\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: {\n $implicit: item,\n selector: 'bsu-ly-horizontal-layout',\n name: 'LyLayoutHorizontalComponent'\n }\n \"\n ></ng-container>\n <!-- <bsu-ly-horizontal-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-horizontal-layout> -->\n </ng-container>\n <ng-template #verticalJoin>\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: {\n $implicit: item,\n selector: 'bsu-ly-vertical-layout',\n name: 'LyLayoutVerticalComponent'\n }\n \"\n ></ng-container>\n <!-- <bsu-ly-vertical-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-vertical-layout> -->\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Ly.LayoutControl'\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: {\n $implicit: item,\n selector: 'bsu-layout-control',\n name: 'LayoutControlComponent'\n }\n \"\n ></ng-container>\n <!-- <bsu-layout-control [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-layout-control> -->\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-template #dynamicLayout let-config let-selector=\"selector\" let-name=\"name\">\n <bnrc-dynamic-layout\n [config]=\"config\"\n [selector]=\"selector\"\n [name]=\"name\"\n [module]=\"'BarsaSapUi'\"\n [moduleFileName]=\"'BarsaSapUi'\"\n [maxLabelWidth]=\"(maxLabelWidth$ | async)!!\"\n [flex]=\"isSearchPanel ? 'unset' : config.Bounds.width\"\n [isSearchPanel]=\"isSearchPanel\"\n >\n </bnrc-dynamic-layout>\n </ng-template>\n</ng-container>\n", styles: [":host{display:block}\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: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i2.DynamicLayoutComponent, selector: "bnrc-dynamic-layout", inputs: ["selector", "module", "name", "parameters", "moduleFileName", "flex", "config", "maxLabelWidth", "hasHorizontalText", "isSearchPanel"] }, { kind: "directive", type: i2.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.FilterToolbarControlPipe, name: "filterToolbarControl" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
20
+ LyTabPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: LyTabPageComponent, selector: "bsu-ly-tab-page", inputs: { renderItems: "renderItems", tablist: "tablist" }, host: { properties: { "style.flex": "this.flex", "attr.title": "this.title", "class": "this._classes" } }, providers: [LayoutService], viewQueries: [{ propertyName: "vcr", first: true, predicate: ["placeholder"], descendants: true, read: ViewContainerRef }, { propertyName: "viewRef", first: true, predicate: ["viewRefTemplate"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *untilInView=\"el\">\n <ng-container *ngFor=\"let item of config | filterToolbarControl\">\n <ng-container [ngSwitch]=\"item.xtype\">\n <ng-container *ngSwitchCase=\"'Ly.LayoutTabPanel'\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-tab-container' }\n \"\n ></ng-container>\n <!-- <bsu-ly-tab-container [config]=\"item\"></bsu-ly-tab-container> -->\n </ng-container>\n <ng-container *ngSwitchCase=\"'Ly.LayoutPanel'\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-layout-panel' }\n \"\n ></ng-container>\n <!-- <bsu-ly-layout-panel [config]=\"item\"></bsu-ly-layout-panel> -->\n </ng-container>\n <ng-container *ngSwitchCase=\"'Ly.LayoutContainer'\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: {\n $implicit: item,\n name: 'LyLayoutContainerComponent',\n selector: 'bsu-ly-layout-container'\n }\n \"\n ></ng-container>\n <!-- <bsu-ly-layout-container [config]=\"item\"></bsu-ly-layout-container> -->\n </ng-container>\n <ng-container *ngSwitchCase=\"'Ly.EmptySpace'\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: { $implicit: item, name: 'LyEmptySpaceComponent', selector: 'bsu-ly-empty-space' }\n \"\n ></ng-container>\n <!-- <bsu-ly-empty-space [config]=\"item\"></bsu-ly-empty-space> -->\n </ng-container>\n <ng-container *ngSwitchCase=\"'Ly.SimpleLabel'\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: { $implicit: item, name: 'LySimpleLabelComponent', selector: 'bsu-ly-simple-label' }\n \"\n ></ng-container>\n <!-- <bsu-ly-simple-label [config]=\"item\"></bsu-ly-simple-label> -->\n </ng-container>\n <ng-container *ngSwitchCase=\"'Ly.LayoutLine'\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: { $implicit: item, name: 'LyLineComponent', selector: 'bsu-ly-line' }\n \"\n ></ng-container>\n <!-- <bsu-ly-line [isVertical]=\"item.IsVertical\"></bsu-ly-line> -->\n </ng-container>\n <ng-container *ngSwitchCase=\"'Ly.LayoutJoin'\">\n <ng-container *ngIf=\"item.Type === 'HorizontalJoin'; else verticalJoin\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: {\n $implicit: item,\n selector: 'bsu-ly-horizontal-layout',\n name: 'LyLayoutHorizontalComponent'\n }\n \"\n ></ng-container>\n <!-- <bsu-ly-horizontal-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-horizontal-layout> -->\n </ng-container>\n <ng-template #verticalJoin>\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: {\n $implicit: item,\n selector: 'bsu-ly-vertical-layout',\n name: 'LyLayoutVerticalComponent'\n }\n \"\n ></ng-container>\n <!-- <bsu-ly-vertical-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-vertical-layout> -->\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Ly.LayoutControl'\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: {\n $implicit: item,\n selector: 'bsu-layout-control',\n name: 'LayoutControlComponent'\n }\n \"\n ></ng-container>\n <!-- <bsu-layout-control [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-layout-control> -->\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-template #dynamicLayout let-config let-selector=\"selector\" let-name=\"name\">\n <bnrc-dynamic-layout\n [config]=\"config\"\n [selector]=\"selector\"\n [name]=\"name\"\n [module]=\"'BarsaSapUi'\"\n [moduleFileName]=\"'BarsaSapUi'\"\n [maxLabelWidth]=\"(maxLabelWidth$ | async)!!\"\n [flex]=\"isSearchPanel ? 'unset' : config.Bounds.width\"\n [isSearchPanel]=\"isSearchPanel\"\n >\n </bnrc-dynamic-layout>\n </ng-template>\n</ng-container>\n", styles: [":host{display:block}\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: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i2.DynamicLayoutComponent, selector: "bnrc-dynamic-layout", inputs: ["selector", "module", "name", "parameters", "moduleFileName", "flex", "config", "maxLabelWidth", "hasHorizontalText", "isSearchPanel"] }, { kind: "directive", type: i2.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.FilterToolbarControlPipe, name: "filterToolbarControl" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
20
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: LyTabPageComponent, decorators: [{
21
22
  type: Component,
22
23
  args: [{ selector: 'bsu-ly-tab-page', changeDetection: ChangeDetectionStrategy.OnPush, providers: [LayoutService], template: "<ng-container *untilInView=\"el\">\n <ng-container *ngFor=\"let item of config | filterToolbarControl\">\n <ng-container [ngSwitch]=\"item.xtype\">\n <ng-container *ngSwitchCase=\"'Ly.LayoutTabPanel'\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-tab-container' }\n \"\n ></ng-container>\n <!-- <bsu-ly-tab-container [config]=\"item\"></bsu-ly-tab-container> -->\n </ng-container>\n <ng-container *ngSwitchCase=\"'Ly.LayoutPanel'\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-layout-panel' }\n \"\n ></ng-container>\n <!-- <bsu-ly-layout-panel [config]=\"item\"></bsu-ly-layout-panel> -->\n </ng-container>\n <ng-container *ngSwitchCase=\"'Ly.LayoutContainer'\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: {\n $implicit: item,\n name: 'LyLayoutContainerComponent',\n selector: 'bsu-ly-layout-container'\n }\n \"\n ></ng-container>\n <!-- <bsu-ly-layout-container [config]=\"item\"></bsu-ly-layout-container> -->\n </ng-container>\n <ng-container *ngSwitchCase=\"'Ly.EmptySpace'\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: { $implicit: item, name: 'LyEmptySpaceComponent', selector: 'bsu-ly-empty-space' }\n \"\n ></ng-container>\n <!-- <bsu-ly-empty-space [config]=\"item\"></bsu-ly-empty-space> -->\n </ng-container>\n <ng-container *ngSwitchCase=\"'Ly.SimpleLabel'\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: { $implicit: item, name: 'LySimpleLabelComponent', selector: 'bsu-ly-simple-label' }\n \"\n ></ng-container>\n <!-- <bsu-ly-simple-label [config]=\"item\"></bsu-ly-simple-label> -->\n </ng-container>\n <ng-container *ngSwitchCase=\"'Ly.LayoutLine'\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: { $implicit: item, name: 'LyLineComponent', selector: 'bsu-ly-line' }\n \"\n ></ng-container>\n <!-- <bsu-ly-line [isVertical]=\"item.IsVertical\"></bsu-ly-line> -->\n </ng-container>\n <ng-container *ngSwitchCase=\"'Ly.LayoutJoin'\">\n <ng-container *ngIf=\"item.Type === 'HorizontalJoin'; else verticalJoin\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: {\n $implicit: item,\n selector: 'bsu-ly-horizontal-layout',\n name: 'LyLayoutHorizontalComponent'\n }\n \"\n ></ng-container>\n <!-- <bsu-ly-horizontal-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-horizontal-layout> -->\n </ng-container>\n <ng-template #verticalJoin>\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: {\n $implicit: item,\n selector: 'bsu-ly-vertical-layout',\n name: 'LyLayoutVerticalComponent'\n }\n \"\n ></ng-container>\n <!-- <bsu-ly-vertical-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-vertical-layout> -->\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Ly.LayoutControl'\">\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: {\n $implicit: item,\n selector: 'bsu-layout-control',\n name: 'LayoutControlComponent'\n }\n \"\n ></ng-container>\n <!-- <bsu-layout-control [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-layout-control> -->\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-template #dynamicLayout let-config let-selector=\"selector\" let-name=\"name\">\n <bnrc-dynamic-layout\n [config]=\"config\"\n [selector]=\"selector\"\n [name]=\"name\"\n [module]=\"'BarsaSapUi'\"\n [moduleFileName]=\"'BarsaSapUi'\"\n [maxLabelWidth]=\"(maxLabelWidth$ | async)!!\"\n [flex]=\"isSearchPanel ? 'unset' : config.Bounds.width\"\n [isSearchPanel]=\"isSearchPanel\"\n >\n </bnrc-dynamic-layout>\n </ng-template>\n</ng-container>\n", styles: [":host{display:block}\n"] }]
@@ -33,8 +34,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
33
34
  }], title: [{
34
35
  type: HostBinding,
35
36
  args: ['attr.title']
37
+ }], _classes: [{
38
+ type: HostBinding,
39
+ args: ['class']
36
40
  }], viewRef: [{
37
41
  type: ViewChild,
38
42
  args: ['viewRefTemplate', { read: ViewContainerRef, static: true }]
39
43
  }] } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHktdGFiLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbHktdGFiLXBhZ2UvbHktdGFiLXBhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbHktdGFiLXBhZ2UvbHktdGFiLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFHTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQVUvRSxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsd0JBQXdCO0lBWTVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBQ0QsYUFBYTtRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkMsQ0FBQzs7K0dBckJRLGtCQUFrQjttR0FBbEIsa0JBQWtCLHVMQUZoQixDQUFDLGFBQWEsQ0FBQyx5R0FHUSxnQkFBZ0IscUdBS1osZ0JBQWdCLGtFQzNCMUQsb3BMQXNIQTsyRkRqR2Esa0JBQWtCO2tCQVA5QixTQUFTOytCQUNJLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsYUFBYSxDQUFDOzhCQUc0QixHQUFHO3NCQUF4RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDM0MsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ3FCLElBQUk7c0JBQTlCLFdBQVc7dUJBQUMsWUFBWTtnQkFDRSxLQUFLO3NCQUEvQixXQUFXO3VCQUFDLFlBQVk7Z0JBQytDLE9BQU87c0JBQTlFLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTGF5b3V0UGFuZWxCYXNlQ29tcG9uZW50LCBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgVGFiTGlzdENvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LWx5LXRhYi1wYWdlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbHktdGFiLXBhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2x5LXRhYi1wYWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbTGF5b3V0U2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgTHlUYWJQYWdlQ29tcG9uZW50IGV4dGVuZHMgTGF5b3V0UGFuZWxCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKCdwbGFjZWhvbGRlcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSB2Y3I6IFZpZXdDb250YWluZXJSZWY7XG4gICAgQElucHV0KCkgcmVuZGVySXRlbXM6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQElucHV0KCkgdGFibGlzdDogVGFiTGlzdENvbXBvbmVudDtcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmZsZXgnKSBmbGV4O1xuICAgIEBIb3N0QmluZGluZygnYXR0ci50aXRsZScpIHRpdGxlO1xuICAgIEBWaWV3Q2hpbGQoJ3ZpZXdSZWZUZW1wbGF0ZScsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIHZpZXdSZWY6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgICB2aXNpYmxlOiBib29sZWFuO1xuICAgIGVuYWJsZTogYm9vbGVhbjtcbiAgICByZWFkb25seTogYm9vbGVhbjtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZztcbiAgICAgICAgY29uZmlnLmNvbnRyb2xVaSA9IHRoaXM7XG4gICAgICAgIHRoaXMudGl0bGUgPSBjb25maWcuVGl0bGU7XG4gICAgICAgIHRoaXMuZmxleCA9IGNvbmZpZy5Cb3VuZHMud2lkdGg7XG4gICAgfVxuICAgIHJlZnJlc2hMYXlvdXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5yZWZyZXNoTGF5b3V0KCk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqdW50aWxJblZpZXc9XCJlbFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29uZmlnIHwgZmlsdGVyVG9vbGJhckNvbnRyb2xcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiaXRlbS54dHlwZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0x5LkxheW91dFRhYlBhbmVsJ1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGR5bmFtaWNMYXlvdXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSwgbmFtZTogJ0x5TGF5b3V0UGFuZWxDb21wb25lbnQnLCBzZWxlY3RvcjogJ2JzdS1seS10YWItY29udGFpbmVyJyB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwhLS0gPGJzdS1seS10YWItY29udGFpbmVyIFtjb25maWddPVwiaXRlbVwiPjwvYnN1LWx5LXRhYi1jb250YWluZXI+IC0tPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInTHkuTGF5b3V0UGFuZWwnXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZHluYW1pY0xheW91dDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBuYW1lOiAnTHlMYXlvdXRQYW5lbENvbXBvbmVudCcsIHNlbGVjdG9yOiAnYnN1LWx5LWxheW91dC1wYW5lbCcgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8IS0tIDxic3UtbHktbGF5b3V0LXBhbmVsIFtjb25maWddPVwiaXRlbVwiPjwvYnN1LWx5LWxheW91dC1wYW5lbD4gLS0+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidMeS5MYXlvdXRDb250YWluZXInXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZHluYW1pY0xheW91dDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0x5TGF5b3V0Q29udGFpbmVyQ29tcG9uZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2JzdS1seS1sYXlvdXQtY29udGFpbmVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8IS0tIDxic3UtbHktbGF5b3V0LWNvbnRhaW5lciBbY29uZmlnXT1cIml0ZW1cIj48L2JzdS1seS1sYXlvdXQtY29udGFpbmVyPiAtLT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0x5LkVtcHR5U3BhY2UnXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZHluYW1pY0xheW91dDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBuYW1lOiAnTHlFbXB0eVNwYWNlQ29tcG9uZW50Jywgc2VsZWN0b3I6ICdic3UtbHktZW1wdHktc3BhY2UnIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPCEtLSA8YnN1LWx5LWVtcHR5LXNwYWNlIFtjb25maWddPVwiaXRlbVwiPjwvYnN1LWx5LWVtcHR5LXNwYWNlPiAtLT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0x5LlNpbXBsZUxhYmVsJ1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGR5bmFtaWNMYXlvdXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSwgbmFtZTogJ0x5U2ltcGxlTGFiZWxDb21wb25lbnQnLCBzZWxlY3RvcjogJ2JzdS1seS1zaW1wbGUtbGFiZWwnIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPCEtLSA8YnN1LWx5LXNpbXBsZS1sYWJlbCBbY29uZmlnXT1cIml0ZW1cIj48L2JzdS1seS1zaW1wbGUtbGFiZWw+IC0tPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInTHkuTGF5b3V0TGluZSdcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBkeW5hbWljTGF5b3V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sIG5hbWU6ICdMeUxpbmVDb21wb25lbnQnLCBzZWxlY3RvcjogJ2JzdS1seS1saW5lJyB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwhLS0gPGJzdS1seS1saW5lIFtpc1ZlcnRpY2FsXT1cIml0ZW0uSXNWZXJ0aWNhbFwiPjwvYnN1LWx5LWxpbmU+IC0tPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInTHkuTGF5b3V0Sm9pbidcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5UeXBlID09PSAnSG9yaXpvbnRhbEpvaW4nOyBlbHNlIHZlcnRpY2FsSm9pblwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR5bmFtaWNMYXlvdXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAnYnN1LWx5LWhvcml6b250YWwtbGF5b3V0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0x5TGF5b3V0SG9yaXpvbnRhbENvbXBvbmVudCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGJzdS1seS1ob3Jpem9udGFsLWxheW91dCBbY29uZmlnXT1cIml0ZW1cIiBbbWF4TGFiZWxXaWR0aF09XCJtYXhMYWJlbFdpZHRoXCI+PC9ic3UtbHktaG9yaXpvbnRhbC1sYXlvdXQ+IC0tPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdmVydGljYWxKb2luPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR5bmFtaWNMYXlvdXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAnYnN1LWx5LXZlcnRpY2FsLWxheW91dCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdMeUxheW91dFZlcnRpY2FsQ29tcG9uZW50J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8YnN1LWx5LXZlcnRpY2FsLWxheW91dCBbY29uZmlnXT1cIml0ZW1cIiBbbWF4TGFiZWxXaWR0aF09XCJtYXhMYWJlbFdpZHRoXCI+PC9ic3UtbHktdmVydGljYWwtbGF5b3V0PiAtLT5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInTHkuTGF5b3V0Q29udHJvbCdcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBkeW5hbWljTGF5b3V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2JzdS1sYXlvdXQtY29udHJvbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0xheW91dENvbnRyb2xDb21wb25lbnQnXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwhLS0gPGJzdS1sYXlvdXQtY29udHJvbCBbY29uZmlnXT1cIml0ZW1cIiBbbWF4TGFiZWxXaWR0aF09XCJtYXhMYWJlbFdpZHRoXCI+PC9ic3UtbGF5b3V0LWNvbnRyb2w+IC0tPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjZHluYW1pY0xheW91dCBsZXQtY29uZmlnIGxldC1zZWxlY3Rvcj1cInNlbGVjdG9yXCIgbGV0LW5hbWU9XCJuYW1lXCI+XG4gICAgICAgIDxibnJjLWR5bmFtaWMtbGF5b3V0XG4gICAgICAgICAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gICAgICAgICAgICBbc2VsZWN0b3JdPVwic2VsZWN0b3JcIlxuICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgICBbbW9kdWxlXT1cIidCYXJzYVNhcFVpJ1wiXG4gICAgICAgICAgICBbbW9kdWxlRmlsZU5hbWVdPVwiJ0JhcnNhU2FwVWknXCJcbiAgICAgICAgICAgIFttYXhMYWJlbFdpZHRoXT1cIihtYXhMYWJlbFdpZHRoJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgICAgIFtmbGV4XT1cImlzU2VhcmNoUGFuZWwgPyAndW5zZXQnIDogY29uZmlnLkJvdW5kcy53aWR0aFwiXG4gICAgICAgICAgICBbaXNTZWFyY2hQYW5lbF09XCJpc1NlYXJjaFBhbmVsXCJcbiAgICAgICAgPlxuICAgICAgICA8L2JucmMtZHluYW1pYy1sYXlvdXQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuIl19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHktdGFiLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbHktdGFiLXBhZ2UvbHktdGFiLXBhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbHktdGFiLXBhZ2UvbHktdGFiLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFHTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQVUvRSxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsd0JBQXdCO0lBYTVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztJQUMzRixDQUFDO0lBQ0QsYUFBYTtRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkMsQ0FBQzs7K0dBdkJRLGtCQUFrQjttR0FBbEIsa0JBQWtCLGlOQUZoQixDQUFDLGFBQWEsQ0FBQyx5R0FHUSxnQkFBZ0IscUdBTVosZ0JBQWdCLGtFQzVCMUQsb3BMQXNIQTsyRkRqR2Esa0JBQWtCO2tCQVA5QixTQUFTOytCQUNJLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsYUFBYSxDQUFDOzhCQUc0QixHQUFHO3NCQUF4RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDM0MsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ3FCLElBQUk7c0JBQTlCLFdBQVc7dUJBQUMsWUFBWTtnQkFDRSxLQUFLO3NCQUEvQixXQUFXO3VCQUFDLFlBQVk7Z0JBQ0gsUUFBUTtzQkFBN0IsV0FBVzt1QkFBQyxPQUFPO2dCQUNvRCxPQUFPO3NCQUE5RSxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExheW91dFBhbmVsQmFzZUNvbXBvbmVudCwgTGF5b3V0U2VydmljZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IFRhYkxpc3RDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1seS10YWItcGFnZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2x5LXRhYi1wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9seS10YWItcGFnZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW0xheW91dFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIEx5VGFiUGFnZUNvbXBvbmVudCBleHRlbmRzIExheW91dFBhbmVsQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZCgncGxhY2Vob2xkZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgdmNyOiBWaWV3Q29udGFpbmVyUmVmO1xuICAgIEBJbnB1dCgpIHJlbmRlckl0ZW1zOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBJbnB1dCgpIHRhYmxpc3Q6IFRhYkxpc3RDb21wb25lbnQ7XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5mbGV4JykgZmxleDtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGl0bGUnKSB0aXRsZTtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgX2NsYXNzZXM7XG4gICAgQFZpZXdDaGlsZCgndmlld1JlZlRlbXBsYXRlJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSkgdmlld1JlZjogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIHZpc2libGU6IGJvb2xlYW47XG4gICAgZW5hYmxlOiBib29sZWFuO1xuICAgIHJlYWRvbmx5OiBib29sZWFuO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnO1xuICAgICAgICBjb25maWcuY29udHJvbFVpID0gdGhpcztcbiAgICAgICAgdGhpcy50aXRsZSA9IGNvbmZpZy5UaXRsZTtcbiAgICAgICAgdGhpcy5mbGV4ID0gY29uZmlnLkJvdW5kcy53aWR0aDtcbiAgICAgICAgdGhpcy5fY2xhc3NlcyA9IHRoaXMuY29uZmlnLml0ZW1zLmxlbmd0aCA9PT0gMCA/ICdmaWVsZC1ub3BhZGRpbmcnIDogJ2ZpZWxkLW5vcGFkZGluZyc7XG4gICAgfVxuICAgIHJlZnJlc2hMYXlvdXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5yZWZyZXNoTGF5b3V0KCk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqdW50aWxJblZpZXc9XCJlbFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29uZmlnIHwgZmlsdGVyVG9vbGJhckNvbnRyb2xcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiaXRlbS54dHlwZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0x5LkxheW91dFRhYlBhbmVsJ1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGR5bmFtaWNMYXlvdXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSwgbmFtZTogJ0x5TGF5b3V0UGFuZWxDb21wb25lbnQnLCBzZWxlY3RvcjogJ2JzdS1seS10YWItY29udGFpbmVyJyB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwhLS0gPGJzdS1seS10YWItY29udGFpbmVyIFtjb25maWddPVwiaXRlbVwiPjwvYnN1LWx5LXRhYi1jb250YWluZXI+IC0tPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInTHkuTGF5b3V0UGFuZWwnXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZHluYW1pY0xheW91dDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBuYW1lOiAnTHlMYXlvdXRQYW5lbENvbXBvbmVudCcsIHNlbGVjdG9yOiAnYnN1LWx5LWxheW91dC1wYW5lbCcgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8IS0tIDxic3UtbHktbGF5b3V0LXBhbmVsIFtjb25maWddPVwiaXRlbVwiPjwvYnN1LWx5LWxheW91dC1wYW5lbD4gLS0+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidMeS5MYXlvdXRDb250YWluZXInXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZHluYW1pY0xheW91dDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0x5TGF5b3V0Q29udGFpbmVyQ29tcG9uZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2JzdS1seS1sYXlvdXQtY29udGFpbmVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8IS0tIDxic3UtbHktbGF5b3V0LWNvbnRhaW5lciBbY29uZmlnXT1cIml0ZW1cIj48L2JzdS1seS1sYXlvdXQtY29udGFpbmVyPiAtLT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0x5LkVtcHR5U3BhY2UnXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZHluYW1pY0xheW91dDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBuYW1lOiAnTHlFbXB0eVNwYWNlQ29tcG9uZW50Jywgc2VsZWN0b3I6ICdic3UtbHktZW1wdHktc3BhY2UnIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPCEtLSA8YnN1LWx5LWVtcHR5LXNwYWNlIFtjb25maWddPVwiaXRlbVwiPjwvYnN1LWx5LWVtcHR5LXNwYWNlPiAtLT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0x5LlNpbXBsZUxhYmVsJ1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGR5bmFtaWNMYXlvdXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSwgbmFtZTogJ0x5U2ltcGxlTGFiZWxDb21wb25lbnQnLCBzZWxlY3RvcjogJ2JzdS1seS1zaW1wbGUtbGFiZWwnIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPCEtLSA8YnN1LWx5LXNpbXBsZS1sYWJlbCBbY29uZmlnXT1cIml0ZW1cIj48L2JzdS1seS1zaW1wbGUtbGFiZWw+IC0tPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInTHkuTGF5b3V0TGluZSdcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBkeW5hbWljTGF5b3V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sIG5hbWU6ICdMeUxpbmVDb21wb25lbnQnLCBzZWxlY3RvcjogJ2JzdS1seS1saW5lJyB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwhLS0gPGJzdS1seS1saW5lIFtpc1ZlcnRpY2FsXT1cIml0ZW0uSXNWZXJ0aWNhbFwiPjwvYnN1LWx5LWxpbmU+IC0tPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInTHkuTGF5b3V0Sm9pbidcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5UeXBlID09PSAnSG9yaXpvbnRhbEpvaW4nOyBlbHNlIHZlcnRpY2FsSm9pblwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR5bmFtaWNMYXlvdXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAnYnN1LWx5LWhvcml6b250YWwtbGF5b3V0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0x5TGF5b3V0SG9yaXpvbnRhbENvbXBvbmVudCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGJzdS1seS1ob3Jpem9udGFsLWxheW91dCBbY29uZmlnXT1cIml0ZW1cIiBbbWF4TGFiZWxXaWR0aF09XCJtYXhMYWJlbFdpZHRoXCI+PC9ic3UtbHktaG9yaXpvbnRhbC1sYXlvdXQ+IC0tPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdmVydGljYWxKb2luPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR5bmFtaWNMYXlvdXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAnYnN1LWx5LXZlcnRpY2FsLWxheW91dCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdMeUxheW91dFZlcnRpY2FsQ29tcG9uZW50J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8YnN1LWx5LXZlcnRpY2FsLWxheW91dCBbY29uZmlnXT1cIml0ZW1cIiBbbWF4TGFiZWxXaWR0aF09XCJtYXhMYWJlbFdpZHRoXCI+PC9ic3UtbHktdmVydGljYWwtbGF5b3V0PiAtLT5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInTHkuTGF5b3V0Q29udHJvbCdcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBkeW5hbWljTGF5b3V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2JzdS1sYXlvdXQtY29udHJvbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0xheW91dENvbnRyb2xDb21wb25lbnQnXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwhLS0gPGJzdS1sYXlvdXQtY29udHJvbCBbY29uZmlnXT1cIml0ZW1cIiBbbWF4TGFiZWxXaWR0aF09XCJtYXhMYWJlbFdpZHRoXCI+PC9ic3UtbGF5b3V0LWNvbnRyb2w+IC0tPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjZHluYW1pY0xheW91dCBsZXQtY29uZmlnIGxldC1zZWxlY3Rvcj1cInNlbGVjdG9yXCIgbGV0LW5hbWU9XCJuYW1lXCI+XG4gICAgICAgIDxibnJjLWR5bmFtaWMtbGF5b3V0XG4gICAgICAgICAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gICAgICAgICAgICBbc2VsZWN0b3JdPVwic2VsZWN0b3JcIlxuICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgICBbbW9kdWxlXT1cIidCYXJzYVNhcFVpJ1wiXG4gICAgICAgICAgICBbbW9kdWxlRmlsZU5hbWVdPVwiJ0JhcnNhU2FwVWknXCJcbiAgICAgICAgICAgIFttYXhMYWJlbFdpZHRoXT1cIihtYXhMYWJlbFdpZHRoJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgICAgIFtmbGV4XT1cImlzU2VhcmNoUGFuZWwgPyAndW5zZXQnIDogY29uZmlnLkJvdW5kcy53aWR0aFwiXG4gICAgICAgICAgICBbaXNTZWFyY2hQYW5lbF09XCJpc1NlYXJjaFBhbmVsXCJcbiAgICAgICAgPlxuICAgICAgICA8L2JucmMtZHluYW1pYy1sYXlvdXQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuIl19