@softheon/armature 17.24.0 → 17.24.2

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.
@@ -20,8 +20,6 @@ import * as i13 from "@ngx-translate/core";
20
20
  /** The Softheon Armature Table component */
21
21
  export class SofTableComponent {
22
22
  constructor() {
23
- /** The language text or a key that will be shown in this component */
24
- this.rowData = [];
25
23
  /** Column Definitions: Defines & controls grid columns. */
26
24
  this.colDefs = [];
27
25
  /** Pages sizes */
@@ -97,10 +95,12 @@ export class SofTableComponent {
97
95
  */
98
96
  ngOnChanges(changes) {
99
97
  if (changes.rowData && !changes.rowData.firstChange && !!this.gridApi) {
100
- this.totalLength = this.rowData.length;
101
- this.populateFilters();
102
- this.handlePageChangeText();
103
- this.isGridDataRendered.set(true);
98
+ this.totalLength = this.rowData?.length ?? 0; // handles null, undefined and [] data return, so will not load indefinitely
99
+ setTimeout(() => {
100
+ this.populateFilters();
101
+ this.handlePageChangeText();
102
+ this.isGridDataRendered.set(true);
103
+ });
104
104
  }
105
105
  if (changes.colDefs && !changes.colDefs.firstChange && !!this.gridApi) {
106
106
  setTimeout(() => {
@@ -465,11 +465,11 @@ export class SofTableComponent {
465
465
  return this.filterSelections.reduce((acc, curr) => acc.concat(curr), []).length;
466
466
  }
467
467
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: SofTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
468
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: SofTableComponent, selector: "sof-table", inputs: { rowData: "rowData", colDefs: "colDefs", sizeMode: "sizeMode", paginationPageSizeSelector: "paginationPageSizeSelector", enableSearch: "enableSearch", enableFilter: "enableFilter", enableColumnOptions: "enableColumnOptions", enableExport: "enableExport", showSaveColumnOptionsText: "showSaveColumnOptionsText", tableName: "tableName", savedColumnState: "savedColumnState", initialFilterModel: "initialFilterModel" }, outputs: { updatedColumnState: "updatedColumnState", filteredRowDataForExport: "filteredRowDataForExport" }, viewQueries: [{ propertyName: "gridSearchTextInput", first: true, predicate: ["gridSearchTextInput"], descendants: true }, { propertyName: "ariaResultsCount", first: true, predicate: ["ariaResultsCount"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div \r\n [fxShow]=\"isGridDataRendered()\"\r\n fxLayoutGap=\"16px\" m-b-24>\r\n @if (enableFilter && colFilters.length) {\r\n <button \r\n (click)=\"toggleFilterPanel()\" \r\n mat-flat-button class=\"sof-button-v2\"\r\n theme=\"neutral\" \r\n [attr.emphasis]=\"filterOpenState ? 'solid' : filterCount === 0 ? 'secondary' : 'contained'\"\r\n [matBadge]=\"filterCount\"\r\n matBadgePosition=\"after\"\r\n [matBadgeHidden]=\"filterCount === 0 ? true : false\">\r\n <i class=\"ph ph-bold ph-sliders-horizontal\" aria-hidden=\"true\"></i>\r\n {{'armature.sof-table.filter' | translate}}\r\n </button>\r\n }\r\n @if (enableSearch) {\r\n <mat-form-field class=\"sof-form-field table-search-field dense-4\" fxFlex=\"auto\">\r\n <span matPrefix>\r\n <i class=\"ph-bold ph-magnifying-glass search-icon\" aria-hidden=\"true\"></i>\r\n </span>\r\n <mat-label class=\"search-label\">{{'armature.sof-table.search' | translate}}</mat-label>\r\n <input \r\n (input)=\"onSearchTextChanged()\" \r\n #gridSearchTextInput matInput type=\"text\" id=\"gridSearchTextInput\"\r\n [attr.aria-label]=\"'armature.sof-table.screen-reader.search-filter-description' | translate\"/>\r\n </mat-form-field>\r\n }\r\n @if (enableColumnOptions) {\r\n <button \r\n (click)=\"openColumnOptions()\"\r\n mat-flat-button class=\"sof-button-icon-v2\" \r\n theme=\"neutral\" emphasis=\"secondary\" id=\"open-column-options\"\r\n [attr.aria-label]=\"'armature.sof-table.screen-reader.column-options-btn' | translate\"\r\n [matTooltip]=\"'armature.sof-table.screen-reader.column-options-btn' | translate\">\r\n <i class=\"ph-bold ph-pause\" aria-hidden=\"true\"></i>\r\n </button>\r\n }\r\n @if(enableExport) {\r\n <button \r\n (click)=\"exportFilteredRowData()\"\r\n mat-flat-button class=\"sof-button-icon-v2\" \r\n theme=\"neutral\" emphasis=\"secondary\" id=\"export-table\"\r\n [attr.aria-label]=\"'armature.sof-table.screen-reader.export-table' | translate\"\r\n [matTooltip]=\"'armature.sof-table.screen-reader.export-table' | translate\">\r\n <i class=\"ph-bold ph-export\" aria-hidden=\"true\"></i>\r\n </button>\r\n }\r\n <ng-content select=\"[sof-table-right-buttons]\"></ng-content>\r\n <!-- \r\n Only inject <button>'s inside an <ng-container sof-table-right-buttons>\r\n ... \r\n <ng-container sof-table-right-buttons>\r\n <button \r\n (click)=\"anyFunction()\"\r\n mat-flat-button class=\"sof-button-icon-v2\" \r\n theme=\"neutral\" emphasis=\"secondary\" aria-label=\"any button\"\r\n matTooltip=\"any button\">\r\n <i class=\"ph-bold ph-acorn\" aria-hidden=\"true\"></i>\r\n </button>\r\n </ng-container>\r\n ... \r\n note: make sure buttons have the following attributes to match others =\r\n `mat-flat-button class=\"sof-button-icon-v2\" theme=\"neutral\" emphasis=\"secondary\"`\r\n * remember to add aria-label and tooltip for icon button\r\n -->\r\n</div>\r\n\r\n<div #ariaResultsCount class=\"sr-only\" aria-live=\"assertive\"></div>\r\n\r\n@if (isGridDataRendered() && filterOpenState) {\r\n <fieldset \r\n class=\"filter-panel\" role=\"region\"\r\n [attr.aria-label]=\"'armature.sof-table.screen-reader.select-filters-description' | translate\">\r\n <p>\r\n <i class=\"ph ph-bold ph-sliders-horizontal\" aria-hidden=\"true\"></i>\r\n <span class=\"m-l-8\">{{'armature.sof-table.filter' | translate}}</span>\r\n </p>\r\n <div class=\"filter-panel-select-container m-v-20\">\r\n @for (colFilter of colFilters; let i = $index; track i) {\r\n <mat-form-field appearance=\"outline\" class=\"sof-form-field table-filter-select\">\r\n <mat-label>{{colFilter.label}}</mat-label>\r\n <mat-select \r\n [(ngModel)]=\"filterSelections[i]\" \r\n multiple \r\n id=\"filterDropdown{{i}}\"\r\n placeholder=\"{{'armature.sof-table.all' | translate}}\" disableRipple=\"true\">\r\n @for (colOption of colFilter.options; track $index) {\r\n <mat-option [value]=\"colOption\">\r\n {{colOption}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n </div>\r\n <div fxLayout=\"row\">\r\n <div fxFlex=\"50%\">\r\n <button \r\n (click)=\"clearFilters()\" [disabled]=\"hasEmptyFilters()\" \r\n mat-flat-button class=\"sof-button-v2\"\r\n theme=\"neutral\" emphasis=\"floating\"\r\n id=\"tableFilterClear\">\r\n {{'armature.sof-table.reset' | translate}}\r\n </button>\r\n </div>\r\n <div fxFlex=\"50%\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"2%\" fxLayoutAlign=\"flex-end\">\r\n <div fxFlex=\"0 1 auto\">\r\n <button \r\n (click)=\"cancelFilterChanges()\" mat-flat-button class=\"sof-button-v2\" \r\n id=\"tableFilterCancel\" theme=\"neutral\" emphasis=\"secondary\">\r\n {{'armature.sof-table.cancel' | translate}}\r\n </button>\r\n </div>\r\n <div fxFlex=\"0 1 auto\">\r\n <button \r\n (click)=\"applyFilters()\" mat-flat-button class=\"sof-button-v2\"\r\n id=\"tableFilterApply\" theme=\"primary\" emphasis=\"solid\">\r\n {{'armature.sof-table.results' | translate}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </fieldset>\r\n}\r\n\r\n<ag-grid-angular \r\n [fxShow]=\"isGridDataRendered()\"\r\n (gridReady)=\"onGridReady($event)\" \r\n (firstDataRendered)=\"onFirstDataRendered()\"\r\n (filterChanged)=\"onFilterChanged()\"\r\n (paginationChanged)=\"changePageSize($event)\" \r\n [rowData]=\"rowData\" \r\n [columnDefs]=\"colDefs\" \r\n [defaultColDef]=\"defaultColDef\" \r\n [pagination]=\"true\" \r\n [suppressPaginationPanel]=\"true\"\r\n [paginationPageSizeSelector]=\"paginationPageSizeSelector\" \r\n [paginationPageSize]=\"paginationPageSize\"\r\n [headerHeight]=\"rowHeight\" \r\n [rowHeight]=\"rowHeight\" \r\n [domLayout]=\"'autoHeight'\" \r\n [tooltipShowDelay]=\"tooltipShowDelay\"\r\n [overlayNoRowsTemplate]=\"'armature.sof-table.no-rows' | translate\"\r\n [class.no-rows]=\"!totalLength\"\r\n class=\"ag-theme-material\">\r\n</ag-grid-angular>\r\n\r\n<div \r\n [fxShow]=\"isGridDataRendered()\"\r\n class=\"custom-paginator\">\r\n <div class=\"first-section\">\r\n <button class=\"button-part-1\" type=\"button\">\r\n <mat-select \r\n #pageSizeSelect\r\n id=\"pageSizeInput\" name=\"pageSizeInput\" \r\n [(value)]=\"paginationPageSize\" disableRipple=\"true\">\r\n @for (size of paginationPageSizeSelector; let i = $index; track i) {\r\n <mat-option \r\n class=\"page-option\" id=\"size{{i}}\"\r\n [value]=\"paginationPageSizeSelector[i]\">\r\n {{size}}\r\n </mat-option>\r\n }\r\n <mat-select-trigger>\r\n <div class=\"field\">\r\n <span class=\"current-page\">\r\n <span class=\"page\">{{paginationPageSize}}</span>\r\n </span>\r\n <span class=\"select-icon\">\r\n <i [class]=\"'ph-bold ph-caret-' + (pageSizeSelect.panelOpen ? 'up':'down')\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </mat-select-trigger>\r\n </mat-select>\r\n </button>\r\n <span class=\"pageChangeText\">\r\n {{pageChangeText}} {{'armature.sof-table.of' | translate}} {{totalLength}}\r\n </span>\r\n </div>\r\n <div class=\"go-to-page\">\r\n <div class=\"outer-box\">\r\n <button class=\"button-part\" type=\"button\">\r\n <mat-select \r\n #pageNumberSelect\r\n (selectionChange)=\"onPageNumberChange($event.value)\"\r\n [(value)]=\"currentPage\" \r\n id=\"pageSelelctor\" name=\"pageSelector\" disableRipple=\"true\">\r\n @for (page of pageSelector; track $index) {\r\n <mat-option [value]=\"page\" class=\"page-option\">\r\n <span class=\"current-page\">\r\n <span class=\"page\">{{page}}</span>\r\n </span>\r\n </mat-option>\r\n }\r\n <mat-select-trigger>\r\n <div class=\"field\">\r\n <span class=\"current-page\">\r\n <span class=\"page\">{{currentPage}}</span>\r\n <span class=\"of-page\"> {{'armature.sof-table.of' | translate}} {{totalNumberOfPages}} </span>\r\n </span>\r\n <span class=\"select-icon\">\r\n <i [class]=\"'ph-bold ph-caret-' + (pageNumberSelect.panelOpen ? 'up':'down')\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </mat-select-trigger>\r\n </mat-select>\r\n </button>\r\n </div>\r\n <nav class=\"second-section\">\r\n <button \r\n (click)=\"previousPage()\"\r\n id=\"prev-button\" mat-flat-button class=\"sof-button-icon-v2\" theme=\"neutral\" emphasis=\"secondary\"\r\n [disabled]=\"currentPage === 1\" \r\n [attr.aria-label]=\"'screen-reader.pagination.previous' | translate\">\r\n <i class=\"ph-bold ph-caret-left\" aria-hidden=\"true\"></i>\r\n </button>\r\n <button \r\n (click)=\"nextPage()\" \r\n id=\"next-button\" mat-flat-button class=\"sof-button-icon-v2\" theme=\"neutral\" emphasis=\"secondary\"\r\n [disabled]=\"currentPage === totalNumberOfPages\"\r\n [attr.aria-label]=\"'screen-reader.pagination.next' | translate\">\r\n <i class=\"ph-bold ph-caret-right\" aria-hidden=\"true\"></i>\r\n </button>\r\n </nav>\r\n </div>\r\n</div>\r\n\r\n@if (!isGridDataRendered()) {\r\n <div class=\"loading-container\">\r\n <mat-progress-spinner color=\"primary\" mode=\"indeterminate\"/>\r\n </div>\r\n}\r\n", styles: ["@font-face{font-family:agGridMaterial;src:url(data:font/woff2;charset=utf-8;base64,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);font-weight:400;font-style:normal}.ag-theme-material,.ag-theme-material-dark,.ag-theme-material-auto-dark{--ag-material-primary-color: #3f51b5;--ag-material-accent-color: #ff4081;--ag-foreground-color: rgba(0, 0, 0, .87);--ag-secondary-foreground-color: rgba(0, 0, 0, .54);--ag-disabled-foreground-color: rgba(0, 0, 0, .38);--ag-background-color: #fff;--ag-header-background-color: #fff;--ag-tooltip-background-color: #fff;--ag-subheader-background-color: #eee;--ag-subheader-toolbar-background-color: rgba(238, 238, 238, .5);--ag-header-cell-hover-background-color: #f2f2f2;--ag-chip-background-color: #e2e2e2;--ag-range-selection-background-color: rgba(122, 134, 203, .1);--ag-range-selection-background-color-2: rgba(122, 134, 203, .19);--ag-range-selection-background-color-3: rgba(122, 134, 203, .27);--ag-range-selection-background-color-4: rgba(122, 134, 203, .34);--ag-range-selection-highlight-color: #fce4ec;--ag-row-hover-color: #fafafa;--ag-column-hover-color: #fafafa;--ag-control-panel-background-color: #fafafa;--ag-selected-row-background-color: rgba(33, 150, 243, .3);--ag-checkbox-unchecked-color: #333;--ag-value-change-value-highlight-background-color: #00acc1;--ag-side-button-selected-background-color: transparent;--ag-advanced-filter-join-pill-color: #f08e8d;--ag-advanced-filter-column-pill-color: #a6e194;--ag-advanced-filter-option-pill-color: #f3c08b;--ag-advanced-filter-value-pill-color: #85c0e4;--ag-range-selection-border-color: var(--ag-material-primary-color);--ag-checkbox-checked-color: var(--ag-material-accent-color);--ag-borders: none;--ag-borders-critical: solid 1px;--ag-border-color: #e2e2e2;--ag-grid-size: 8px;--ag-icon-size: 18px;--ag-header-height: calc(var(--ag-grid-size) * 7);--ag-row-height: calc(var(--ag-grid-size) * 6);--ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 3);--ag-list-item-height: calc(var(--ag-grid-size) * 4);--ag-row-group-indent-size: calc(var(--ag-grid-size) * 3 + var(--ag-icon-size));--ag-filter-tool-panel-sub-level-row-height: calc(var(--ag-grid-size) * 4);--ag-checkbox-border-radius: 2px;--ag-toggle-button-switch-border-width: 2px;--ag-toggle-button-height: var(--ag-icon-size);--ag-widget-container-horizontal-padding: calc(var(--ag-grid-size) * 1.5);--ag-widget-container-vertical-padding: calc(var(--ag-grid-size) * 2);--ag-widget-vertical-spacing: calc(var(--ag-grid-size) * 1.75);--ag-font-family: Roboto, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;--ag-font-size: 13px;--ag-icon-font-family: agGridMaterial;--ag-selected-tab-underline-color: var(--ag-material-primary-color);--ag-selected-tab-underline-width: 2px;--ag-input-focus-border-color: var(--ag-material-primary-color);--ag-input-focus-box-shadow: 0 0 0 5px rgba(32, 33, 36, .122);--ag-card-shadow: 0 3px 1px -2px rgba(0, 0, 0, .2), 0 2px 2px 0 rgba(0, 0, 0, .14), 0 1px 5px 0 rgba(0, 0, 0, .12);--ag-card-radius: 2px;--ag-invalid-color: #e02525}.ag-theme-material-dark{--ag-material-primary-color: #3f51b5;--ag-material-accent-color: #bb86fcff;--ag-range-selection-border-color: var(--ag-material-accent-color);--ag-background-color: #121212ff;--ag-foreground-color: #ffffffff;--ag-data-color: #f5f5f5ff;--ag-header-cell-hover-background-color: #000000ff;--ag-advanced-filter-join-pill-color: #7a3a37ff;--ag-advanced-filter-column-pill-color: #355f2dff;--ag-advanced-filter-option-pill-color: #5a3168ff;--ag-advanced-filter-value-pill-color: #374c86ff;--ag-input-disabled-border-color: #3a434eff;--ag-input-disabled-background-color: #68686e12;--ag-selected-row-background-color: #bb86fc33;--ag-row-hover-color: #bb86fc33;--ag-column-hover-color: #f5f5f50d;--ag-range-selection-background-color: #bb86fc1a;--ag-range-selection-background-color-2: #bb86fc30;--ag-range-selection-background-color-3: #bb86fc45;--ag-range-selection-background-color-4: #bb86fc57;--ag-border-color: #383838ff;--ag-secondary-border-color: #383838ff;--ag-header-background-color: #121212ff;--ag-tooltip-background-color: #212b38ff;--ag-odd-row-background-color: #121212ff;--ag-control-panel-background-color: #2c2c2cff;--ag-subheader-background-color: #ffffff0d;--ag-subheader-toolbar-background-color: #2c2c2cff;--ag-invalid-color: #e02525ff;--ag-checkbox-unchecked-color: #797e87ff;--ag-checkbox-background-color: #121212ff;--ag-secondary-foreground-color: #f5f5f5ff;--ag-input-border-color: #383838ff;--ag-input-border-color-invalid: #e02525ff;--ag-disabled-foreground-color: #f5f5f580;--ag-chip-background-color: #22262812;--ag-side-button-selected-background-color: #2c2c2cff;--ag-selected-tab-underline-color: #3f51b5ff;--ag-modal-overlay-background-color: #121212a8;--ag-value-change-delta-up-color: #43a047a8;--ag-value-change-delta-down-color: #e53935ff;--ag-menu-background-color: #2c2c2cff;--ag-row-loading-skeleton-effect-color: rgba(202, 203, 204, .4);color-scheme:dark}@media (prefers-color-scheme: dark){.ag-theme-material-auto-dark{--ag-material-primary-color: #3f51b5;--ag-material-accent-color: #bb86fcff;--ag-range-selection-border-color: var(--ag-material-accent-color);--ag-background-color: #121212ff;--ag-foreground-color: #ffffffff;--ag-data-color: #f5f5f5ff;--ag-header-cell-hover-background-color: #000000ff;--ag-advanced-filter-join-pill-color: #7a3a37ff;--ag-advanced-filter-column-pill-color: #355f2dff;--ag-advanced-filter-option-pill-color: #5a3168ff;--ag-advanced-filter-value-pill-color: #374c86ff;--ag-input-disabled-border-color: #3a434eff;--ag-input-disabled-background-color: #68686e12;--ag-selected-row-background-color: #bb86fc33;--ag-row-hover-color: #bb86fc33;--ag-column-hover-color: #f5f5f50d;--ag-range-selection-background-color: #bb86fc1a;--ag-range-selection-background-color-2: #bb86fc30;--ag-range-selection-background-color-3: #bb86fc45;--ag-range-selection-background-color-4: #bb86fc57;--ag-border-color: #383838ff;--ag-secondary-border-color: #383838ff;--ag-header-background-color: #121212ff;--ag-tooltip-background-color: #212b38ff;--ag-odd-row-background-color: #121212ff;--ag-control-panel-background-color: #2c2c2cff;--ag-subheader-background-color: #ffffff0d;--ag-subheader-toolbar-background-color: #2c2c2cff;--ag-invalid-color: #e02525ff;--ag-checkbox-unchecked-color: #797e87ff;--ag-checkbox-background-color: #121212ff;--ag-secondary-foreground-color: #f5f5f5ff;--ag-input-border-color: #383838ff;--ag-input-border-color-invalid: #e02525ff;--ag-disabled-foreground-color: #f5f5f580;--ag-chip-background-color: #22262812;--ag-side-button-selected-background-color: #2c2c2cff;--ag-selected-tab-underline-color: #3f51b5ff;--ag-modal-overlay-background-color: #121212a8;--ag-value-change-delta-up-color: #43a047a8;--ag-value-change-delta-down-color: #e53935ff;--ag-menu-background-color: #2c2c2cff;--ag-row-loading-skeleton-effect-color: rgba(202, 203, 204, .4);color-scheme:dark}}.ag-theme-material .ag-filter-toolpanel-header,.ag-theme-material .ag-filter-toolpanel-search,.ag-theme-material .ag-status-bar,.ag-theme-material .ag-header-row,.ag-theme-material .ag-panel-title-bar-title,.ag-theme-material .ag-multi-filter-group-title-bar,.ag-theme-material-dark .ag-filter-toolpanel-header,.ag-theme-material-dark .ag-filter-toolpanel-search,.ag-theme-material-dark .ag-status-bar,.ag-theme-material-dark .ag-header-row,.ag-theme-material-dark .ag-panel-title-bar-title,.ag-theme-material-dark .ag-multi-filter-group-title-bar,.ag-theme-material-auto-dark .ag-filter-toolpanel-header,.ag-theme-material-auto-dark .ag-filter-toolpanel-search,.ag-theme-material-auto-dark .ag-status-bar,.ag-theme-material-auto-dark .ag-header-row,.ag-theme-material-auto-dark .ag-panel-title-bar-title,.ag-theme-material-auto-dark .ag-multi-filter-group-title-bar{font-size:calc(var(--ag-font-size) - 1px);font-weight:600;color:var(--ag-header-foreground-color)}.ag-theme-material .ag-tab,.ag-theme-material-dark .ag-tab,.ag-theme-material-auto-dark .ag-tab{height:calc(var(--ag-grid-size) * 4.5);flex:1 1 auto}.ag-theme-material .ag-tabs-header,.ag-theme-material .ag-column-drop-horizontal,.ag-theme-material-dark .ag-tabs-header,.ag-theme-material-dark .ag-column-drop-horizontal,.ag-theme-material-auto-dark .ag-tabs-header,.ag-theme-material-auto-dark .ag-column-drop-horizontal{background-color:var(--ag-subheader-background-color)}.ag-theme-material .ag-tabs-body,.ag-theme-material-dark .ag-tabs-body,.ag-theme-material-auto-dark .ag-tabs-body{padding:calc(var(--ag-grid-size) * .5) 0}.ag-theme-material .ag-tabs-body .ag-menu-list,.ag-theme-material-dark .ag-tabs-body .ag-menu-list,.ag-theme-material-auto-dark .ag-tabs-body .ag-menu-list{padding-top:0;padding-bottom:0}.ag-theme-material .ag-header-cell,.ag-theme-material .ag-header-group-cell,.ag-theme-material-dark .ag-header-cell,.ag-theme-material-dark .ag-header-group-cell,.ag-theme-material-auto-dark .ag-header-cell,.ag-theme-material-auto-dark .ag-header-group-cell{transition:background-color .5s}.ag-theme-material .ag-row-last:not(.ag-row-first) .ag-cell-inline-editing,.ag-theme-material-dark .ag-row-last:not(.ag-row-first) .ag-cell-inline-editing,.ag-theme-material-auto-dark .ag-row-last:not(.ag-row-first) .ag-cell-inline-editing{bottom:0}.ag-theme-material .ag-cell-inline-editing,.ag-theme-material-dark .ag-cell-inline-editing,.ag-theme-material-auto-dark .ag-cell-inline-editing{padding:var(--ag-grid-size);height:calc(var(--ag-row-height) + var(--ag-grid-size) * 3);border-color:var(--ag-border-color)!important}.ag-theme-material .ag-has-focus .ag-cell-inline-editing,.ag-theme-material-dark .ag-has-focus .ag-cell-inline-editing,.ag-theme-material-auto-dark .ag-has-focus .ag-cell-inline-editing{border-color:var(--ag-input-focus-border-color)!important}.ag-theme-material .ag-column-drop-vertical,.ag-theme-material-dark .ag-column-drop-vertical,.ag-theme-material-auto-dark .ag-column-drop-vertical{border-bottom:solid 1px;border-bottom-color:var(--ag-border-color);padding-top:var(--ag-grid-size)}.ag-theme-material .ag-column-drop-vertical.ag-last-column-drop,.ag-theme-material-dark .ag-column-drop-vertical.ag-last-column-drop,.ag-theme-material-auto-dark .ag-column-drop-vertical.ag-last-column-drop{border-bottom:none}.ag-theme-material .ag-column-drop-vertical-cell,.ag-theme-material-dark .ag-column-drop-vertical-cell,.ag-theme-material-auto-dark .ag-column-drop-vertical-cell{margin-left:0}.ag-theme-material .ag-column-drop-vertical-empty-message,.ag-theme-material-dark .ag-column-drop-vertical-empty-message,.ag-theme-material-auto-dark .ag-column-drop-vertical-empty-message{font-size:calc(var(--ag-font-size) - 1px);font-weight:600;color:var(--ag-disabled-foreground-color)}.ag-theme-material .ag-ltr .ag-column-drop-vertical-empty-message,.ag-theme-material-dark .ag-ltr .ag-column-drop-vertical-empty-message,.ag-theme-material-auto-dark .ag-ltr .ag-column-drop-vertical-empty-message{padding-left:calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);padding-right:var(--ag-grid-size)}.ag-theme-material .ag-rtl .ag-column-drop-vertical-empty-message,.ag-theme-material-dark .ag-rtl .ag-column-drop-vertical-empty-message,.ag-theme-material-auto-dark .ag-rtl .ag-column-drop-vertical-empty-message{padding-right:calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);padding-left:var(--ag-grid-size)}.ag-theme-material .ag-status-bar,.ag-theme-material-dark .ag-status-bar,.ag-theme-material-auto-dark .ag-status-bar{border:solid 1px;border-color:var(--ag-border-color)}.ag-theme-material .ag-column-panel-column-select,.ag-theme-material-dark .ag-column-panel-column-select,.ag-theme-material-auto-dark .ag-column-panel-column-select{border-top:solid 1px;border-top-color:var(--ag-border-color)}.ag-theme-material .ag-column-select,.ag-theme-material .ag-column-select-header,.ag-theme-material-dark .ag-column-select,.ag-theme-material-dark .ag-column-select-header,.ag-theme-material-auto-dark .ag-column-select,.ag-theme-material-auto-dark .ag-column-select-header{border-bottom:solid 1px;border-bottom-color:var(--ag-border-color)}.ag-theme-material .ag-column-select-header,.ag-theme-material-dark .ag-column-select-header,.ag-theme-material-auto-dark .ag-column-select-header{height:var(--ag-header-height)}.ag-theme-material .ag-group-title-bar,.ag-theme-material-dark .ag-group-title-bar,.ag-theme-material-auto-dark .ag-group-title-bar{padding:calc(var(--ag-grid-size) * .75) var(--ag-grid-size)}.ag-theme-material .ag-charts-format-sub-level-group-title-bar,.ag-theme-material-dark .ag-charts-format-sub-level-group-title-bar,.ag-theme-material-auto-dark .ag-charts-format-sub-level-group-title-bar{padding:calc(var(--ag-grid-size) * .5) var(--ag-grid-size)}.ag-theme-material .ag-chart-data-section,.ag-theme-material .ag-chart-format-section,.ag-theme-material .ag-chart-advanced-settings-section,.ag-theme-material-dark .ag-chart-data-section,.ag-theme-material-dark .ag-chart-format-section,.ag-theme-material-dark .ag-chart-advanced-settings-section,.ag-theme-material-auto-dark .ag-chart-data-section,.ag-theme-material-auto-dark .ag-chart-format-section,.ag-theme-material-auto-dark .ag-chart-advanced-settings-section{padding-bottom:calc(var(--ag-grid-size) * .5)}.ag-theme-material .ag-chart-menu-close,.ag-theme-material-dark .ag-chart-menu-close,.ag-theme-material-auto-dark .ag-chart-menu-close{background:var(--ag-background-color)}.ag-theme-material .ag-chart-menu-close .ag-icon,.ag-theme-material-dark .ag-chart-menu-close .ag-icon,.ag-theme-material-auto-dark .ag-chart-menu-close .ag-icon{background:var(--ag-subheader-background-color)}.ag-theme-material input[class^=ag-]:not([type]),.ag-theme-material input[class^=ag-][type=text],.ag-theme-material input[class^=ag-][type=number],.ag-theme-material input[class^=ag-][type=tel],.ag-theme-material input[class^=ag-][type=date],.ag-theme-material input[class^=ag-][type=datetime-local],.ag-theme-material textarea[class^=ag-],.ag-theme-material-dark input[class^=ag-]:not([type]),.ag-theme-material-dark input[class^=ag-][type=text],.ag-theme-material-dark input[class^=ag-][type=number],.ag-theme-material-dark input[class^=ag-][type=tel],.ag-theme-material-dark input[class^=ag-][type=date],.ag-theme-material-dark input[class^=ag-][type=datetime-local],.ag-theme-material-dark textarea[class^=ag-],.ag-theme-material-auto-dark input[class^=ag-]:not([type]),.ag-theme-material-auto-dark input[class^=ag-][type=text],.ag-theme-material-auto-dark input[class^=ag-][type=number],.ag-theme-material-auto-dark input[class^=ag-][type=tel],.ag-theme-material-auto-dark input[class^=ag-][type=date],.ag-theme-material-auto-dark input[class^=ag-][type=datetime-local],.ag-theme-material-auto-dark textarea[class^=ag-]{background:transparent;color:var(--ag-foreground-color);font-family:inherit;font-size:inherit;height:calc(var(--ag-grid-size) * 5);padding-bottom:var(--ag-grid-size);border-width:0;border-radius:0;border-bottom:2px solid;border-bottom-color:var(--ag-border-color)}.ag-theme-material input[class^=ag-]:not([type]):focus,.ag-theme-material input[class^=ag-][type=text]:focus,.ag-theme-material input[class^=ag-][type=number]:focus,.ag-theme-material input[class^=ag-][type=tel]:focus,.ag-theme-material input[class^=ag-][type=date]:focus,.ag-theme-material input[class^=ag-][type=datetime-local]:focus,.ag-theme-material textarea[class^=ag-]:focus,.ag-theme-material-dark input[class^=ag-]:not([type]):focus,.ag-theme-material-dark input[class^=ag-][type=text]:focus,.ag-theme-material-dark input[class^=ag-][type=number]:focus,.ag-theme-material-dark input[class^=ag-][type=tel]:focus,.ag-theme-material-dark input[class^=ag-][type=date]:focus,.ag-theme-material-dark input[class^=ag-][type=datetime-local]:focus,.ag-theme-material-dark textarea[class^=ag-]:focus,.ag-theme-material-auto-dark input[class^=ag-]:not([type]):focus,.ag-theme-material-auto-dark input[class^=ag-][type=text]:focus,.ag-theme-material-auto-dark input[class^=ag-][type=number]:focus,.ag-theme-material-auto-dark input[class^=ag-][type=tel]:focus,.ag-theme-material-auto-dark input[class^=ag-][type=date]:focus,.ag-theme-material-auto-dark input[class^=ag-][type=datetime-local]:focus,.ag-theme-material-auto-dark textarea[class^=ag-]:focus{border-bottom:2px solid;border-bottom-color:var(--ag-material-primary-color);outline:none;box-shadow:none}.ag-theme-material input[class^=ag-]:not([type])::placeholder,.ag-theme-material input[class^=ag-][type=text]::placeholder,.ag-theme-material input[class^=ag-][type=number]::placeholder,.ag-theme-material input[class^=ag-][type=tel]::placeholder,.ag-theme-material input[class^=ag-][type=date]::placeholder,.ag-theme-material input[class^=ag-][type=datetime-local]::placeholder,.ag-theme-material textarea[class^=ag-]::placeholder,.ag-theme-material-dark input[class^=ag-]:not([type])::placeholder,.ag-theme-material-dark input[class^=ag-][type=text]::placeholder,.ag-theme-material-dark input[class^=ag-][type=number]::placeholder,.ag-theme-material-dark input[class^=ag-][type=tel]::placeholder,.ag-theme-material-dark input[class^=ag-][type=date]::placeholder,.ag-theme-material-dark input[class^=ag-][type=datetime-local]::placeholder,.ag-theme-material-dark textarea[class^=ag-]::placeholder,.ag-theme-material-auto-dark input[class^=ag-]:not([type])::placeholder,.ag-theme-material-auto-dark input[class^=ag-][type=text]::placeholder,.ag-theme-material-auto-dark input[class^=ag-][type=number]::placeholder,.ag-theme-material-auto-dark input[class^=ag-][type=tel]::placeholder,.ag-theme-material-auto-dark input[class^=ag-][type=date]::placeholder,.ag-theme-material-auto-dark input[class^=ag-][type=datetime-local]::placeholder,.ag-theme-material-auto-dark textarea[class^=ag-]::placeholder{color:var(--ag-disabled-foreground-color)}.ag-theme-material input[class^=ag-]:not([type]):disabled,.ag-theme-material input[class^=ag-][type=text]:disabled,.ag-theme-material input[class^=ag-][type=number]:disabled,.ag-theme-material input[class^=ag-][type=tel]:disabled,.ag-theme-material input[class^=ag-][type=date]:disabled,.ag-theme-material input[class^=ag-][type=datetime-local]:disabled,.ag-theme-material textarea[class^=ag-]:disabled,.ag-theme-material-dark input[class^=ag-]:not([type]):disabled,.ag-theme-material-dark input[class^=ag-][type=text]:disabled,.ag-theme-material-dark input[class^=ag-][type=number]:disabled,.ag-theme-material-dark input[class^=ag-][type=tel]:disabled,.ag-theme-material-dark input[class^=ag-][type=date]:disabled,.ag-theme-material-dark input[class^=ag-][type=datetime-local]:disabled,.ag-theme-material-dark textarea[class^=ag-]:disabled,.ag-theme-material-auto-dark input[class^=ag-]:not([type]):disabled,.ag-theme-material-auto-dark input[class^=ag-][type=text]:disabled,.ag-theme-material-auto-dark input[class^=ag-][type=number]:disabled,.ag-theme-material-auto-dark input[class^=ag-][type=tel]:disabled,.ag-theme-material-auto-dark input[class^=ag-][type=date]:disabled,.ag-theme-material-auto-dark input[class^=ag-][type=datetime-local]:disabled,.ag-theme-material-auto-dark textarea[class^=ag-]:disabled{border-bottom:1px solid;border-bottom-color:var(--ag-border-color)}.ag-theme-material input[class^=ag-]:not([type]):invalid,.ag-theme-material input[class^=ag-][type=text]:invalid,.ag-theme-material input[class^=ag-][type=number]:invalid,.ag-theme-material input[class^=ag-][type=tel]:invalid,.ag-theme-material input[class^=ag-][type=date]:invalid,.ag-theme-material input[class^=ag-][type=datetime-local]:invalid,.ag-theme-material textarea[class^=ag-]:invalid,.ag-theme-material-dark input[class^=ag-]:not([type]):invalid,.ag-theme-material-dark input[class^=ag-][type=text]:invalid,.ag-theme-material-dark input[class^=ag-][type=number]:invalid,.ag-theme-material-dark input[class^=ag-][type=tel]:invalid,.ag-theme-material-dark input[class^=ag-][type=date]:invalid,.ag-theme-material-dark input[class^=ag-][type=datetime-local]:invalid,.ag-theme-material-dark textarea[class^=ag-]:invalid,.ag-theme-material-auto-dark input[class^=ag-]:not([type]):invalid,.ag-theme-material-auto-dark input[class^=ag-][type=text]:invalid,.ag-theme-material-auto-dark input[class^=ag-][type=number]:invalid,.ag-theme-material-auto-dark input[class^=ag-][type=tel]:invalid,.ag-theme-material-auto-dark input[class^=ag-][type=date]:invalid,.ag-theme-material-auto-dark input[class^=ag-][type=datetime-local]:invalid,.ag-theme-material-auto-dark textarea[class^=ag-]:invalid{border-width:0;border-bottom:1px solid;border-bottom-color:var(--ag-invalid-color);color:var(--ag-invalid-color)}.ag-theme-material .ag-standard-button,.ag-theme-material-dark .ag-standard-button,.ag-theme-material-auto-dark .ag-standard-button{appearance:none;background-color:transparent;border:0;color:var(--ag-material-primary-color);font-family:inherit;font-size:inherit;margin:0;padding:0;text-transform:uppercase}.ag-theme-material .ag-standard-button:disabled,.ag-theme-material-dark .ag-standard-button:disabled,.ag-theme-material-auto-dark .ag-standard-button:disabled{color:var(--ag-disabled-foreground-color);background-color:var(--ag-input-disabled-background-color);border-color:var(--ag-input-disabled-border-color)}.ag-theme-material.ag-dnd-ghost,.ag-theme-material-dark.ag-dnd-ghost,.ag-theme-material-auto-dark.ag-dnd-ghost{font-size:calc(var(--ag-font-size) - 1px);font-weight:600}.ag-theme-material .ag-filter-toolpanel-header,.ag-theme-material-dark .ag-filter-toolpanel-header,.ag-theme-material-auto-dark .ag-filter-toolpanel-header{height:calc(var(--ag-grid-size) * 4)}.ag-theme-material .ag-filter-toolpanel-group-level-0-header,.ag-theme-material-dark .ag-filter-toolpanel-group-level-0-header,.ag-theme-material-auto-dark .ag-filter-toolpanel-group-level-0-header{height:calc(var(--ag-grid-size) * 7)}.ag-theme-material .ag-ltr .ag-filter-apply-panel-button,.ag-theme-material .ag-ltr .ag-advanced-filter-apply-button,.ag-theme-material .ag-ltr .ag-advanced-filter-builder-button,.ag-theme-material-dark .ag-ltr .ag-filter-apply-panel-button,.ag-theme-material-dark .ag-ltr .ag-advanced-filter-apply-button,.ag-theme-material-dark .ag-ltr .ag-advanced-filter-builder-button,.ag-theme-material-auto-dark .ag-ltr .ag-filter-apply-panel-button,.ag-theme-material-auto-dark .ag-ltr .ag-advanced-filter-apply-button,.ag-theme-material-auto-dark .ag-ltr .ag-advanced-filter-builder-button{margin-left:var(--ag-grid-size)}.ag-theme-material .ag-rtl .ag-filter-apply-panel-button,.ag-theme-material .ag-rtl .ag-advanced-filter-apply-button,.ag-theme-material .ag-rtl .ag-advanced-filter-builder-button,.ag-theme-material-dark .ag-rtl .ag-filter-apply-panel-button,.ag-theme-material-dark .ag-rtl .ag-advanced-filter-apply-button,.ag-theme-material-dark .ag-rtl .ag-advanced-filter-builder-button,.ag-theme-material-auto-dark .ag-rtl .ag-filter-apply-panel-button,.ag-theme-material-auto-dark .ag-rtl .ag-advanced-filter-apply-button,.ag-theme-material-auto-dark .ag-rtl .ag-advanced-filter-builder-button{margin-right:var(--ag-grid-size)}.ag-theme-material .ag-layout-auto-height .ag-center-cols-viewport,.ag-theme-material .ag-layout-auto-height .ag-center-cols-container,.ag-theme-material .ag-layout-print .ag-center-cols-viewport,.ag-theme-material .ag-layout-print .ag-center-cols-container,.ag-theme-material-dark .ag-layout-auto-height .ag-center-cols-viewport,.ag-theme-material-dark .ag-layout-auto-height .ag-center-cols-container,.ag-theme-material-dark .ag-layout-print .ag-center-cols-viewport,.ag-theme-material-dark .ag-layout-print .ag-center-cols-container,.ag-theme-material-auto-dark .ag-layout-auto-height .ag-center-cols-viewport,.ag-theme-material-auto-dark .ag-layout-auto-height .ag-center-cols-container,.ag-theme-material-auto-dark .ag-layout-print .ag-center-cols-viewport,.ag-theme-material-auto-dark .ag-layout-print .ag-center-cols-container{min-height:150px}.ag-theme-material .ag-overlay-no-rows-wrapper.ag-layout-auto-height,.ag-theme-material-dark .ag-overlay-no-rows-wrapper.ag-layout-auto-height,.ag-theme-material-auto-dark .ag-overlay-no-rows-wrapper.ag-layout-auto-height{padding-top:60px}.ag-theme-material .ag-picker-field-wrapper:focus-within,.ag-theme-material-dark .ag-picker-field-wrapper:focus-within,.ag-theme-material-auto-dark .ag-picker-field-wrapper:focus-within{box-shadow:0 0 0 1px var(--ag-material-primary-color)}.ag-theme-material .ag-rich-select-list,.ag-theme-material-dark .ag-rich-select-list,.ag-theme-material-auto-dark .ag-rich-select-list{box-shadow:#0003 0 5px 5px -3px,#00000024 0 8px 10px 1px,#0000001f 0 3px 14px 2px}.ag-theme-material .ag-advanced-filter-builder-button-label,.ag-theme-material-dark .ag-advanced-filter-builder-button-label,.ag-theme-material-auto-dark .ag-advanced-filter-builder-button-label{text-transform:uppercase}.ag-theme-material .ag-filter-active .ag-icon-filter,.ag-theme-material-dark .ag-filter-active .ag-icon-filter,.ag-theme-material-auto-dark .ag-filter-active .ag-icon-filter{color:var(--ag-material-accent-color)}.ag-theme-material textarea[class^=ag-chart-title-edit],.ag-theme-material-dark textarea[class^=ag-chart-title-edit],.ag-theme-material-auto-dark textarea[class^=ag-chart-title-edit]{background-color:var(--ag-background-color)}:root{--primary-color-50-parts: #edf4ff;--primary-color-100-parts: #b9d4fc;--primary-color-200-parts: #8ab7fb;--primary-color-300-parts: #5b9af9;--primary-color-400-parts: #3784f7;--primary-color-500-parts: #146ef6;--primary-color-600-parts: #1266f5;--primary-color-700-parts: #0e5bf3;--primary-color-800-parts: #0b51f2;--primary-color-900-parts: #063fef;--primary-color-A100-parts: rgba(20, 110, 246, .04);--primary-color-A200-parts: rgba(20, 110, 246, .08);--primary-color-A300-parts: rgba(20, 110, 246, .16);--primary-color-A400-parts: rgba(20, 110, 246, .24);--primary-color-A500-parts: rgba(20, 110, 246, .32);--primary-color-contrast-50-parts: rgba(0, 0, 0, .87);--primary-color-contrast-100-parts: rgba(0, 0, 0, .87);--primary-color-contrast-200-parts: rgba(0, 0, 0, .87);--primary-color-contrast-300-parts: rgba(0, 0, 0, .87);--primary-color-contrast-400-parts: rgba(255, 255, 255, 1);--primary-color-contrast-500-parts: rgba(255, 255, 255, 1);--primary-color-contrast-600-parts: rgba(255, 255, 255, 1);--primary-color-contrast-700-parts: rgba(255, 255, 255, 1);--primary-color-contrast-800-parts: rgba(255, 255, 255, 1);--primary-color-contrast-900-parts: rgba(255, 255, 255, 1);--primary-color-contrast-A100-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A200-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A300-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A400-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A500-parts: rgba(0, 0, 0, .87);--primary-color-50-parts-rgb: 237, 244, 255;--primary-color-100-parts-rgb: 185, 212, 252;--primary-color-200-parts-rgb: 138, 183, 251;--primary-color-300-parts-rgb: 91, 154, 249;--primary-color-400-parts-rgb: 55, 132, 247;--primary-color-500-parts-rgb: 20, 110, 246;--primary-color-600-parts-rgb: 18, 102, 245;--primary-color-700-parts-rgb: 14, 91, 243;--primary-color-800-parts-rgb: 11, 81, 242;--primary-color-900-parts-rgb: 6, 63, 239;--primary-color-A100-parts-rgb: 20, 110, 246, .04;--primary-color-A200-parts-rgb: 20, 110, 246, .08;--primary-color-A300-parts-rgb: 20, 110, 246, .16;--primary-color-A400-parts-rgb: 20, 110, 246, .24;--primary-color-A500-parts-rgb: 20, 110, 246, .32;--accent-color-50-parts: #e0f2f1;--accent-color-100-parts: #b2dfdb;--accent-color-200-parts: #80cbc4;--accent-color-300-parts: #4db6ac;--accent-color-400-parts: #26a69a;--accent-color-500-parts: #009688;--accent-color-600-parts: #00897b;--accent-color-700-parts: #00796b;--accent-color-800-parts: #00695c;--accent-color-900-parts: #004d40;--accent-color-A100-parts: rgba(0, 150, 136, .04);--accent-color-A200-parts: rgba(0, 150, 136, .08);--accent-color-A300-parts: rgba(0, 150, 136, .16);--accent-color-A400-parts: rgba(0, 150, 136, .24);--accent-color-A500-parts: rgba(0, 150, 136, .32);--accent-color-contrast-50-parts: rgba(0, 0, 0, .87);--accent-color-contrast-100-parts: rgba(0, 0, 0, .87);--accent-color-contrast-200-parts: rgba(0, 0, 0, .87);--accent-color-contrast-300-parts: rgba(0, 0, 0, .87);--accent-color-contrast-400-parts: rgba(0, 0, 0, .87);--accent-color-contrast-500-parts: rgba(255, 255, 255, 1);--accent-color-contrast-600-parts: rgba(255, 255, 255, 1);--accent-color-contrast-700-parts: rgba(255, 255, 255, 1);--accent-color-contrast-800-parts: rgba(255, 255, 255, 1);--accent-color-contrast-900-parts: rgba(255, 255, 255, 1);--accent-color-contrast-A100-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A200-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A300-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A400-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A500-parts: rgba(0, 0, 0, .87);--accent-color-50-parts-rgb: 224, 242, 241;--accent-color-100-parts-rgb: 178, 223, 219;--accent-color-200-parts-rgb: 128, 203, 196;--accent-color-300-parts-rgb: 77, 182, 172;--accent-color-400-parts-rgb: 38, 166, 154;--accent-color-500-parts-rgb: 0, 150, 136;--accent-color-600-parts-rgb: 0, 137, 123;--accent-color-700-parts-rgb: 0, 121, 107;--accent-color-800-parts-rgb: 0, 105, 92;--accent-color-900-parts-rgb: 0, 77, 64;--accent-color-A100-parts-rgb: 0, 150, 136, .04;--accent-color-A200-parts-rgb: 0, 150, 136, .08;--accent-color-A300-parts-rgb: 0, 150, 136, .16;--accent-color-A400-parts-rgb: 0, 150, 136, .24;--accent-color-A500-parts-rgb: 0, 150, 136, .32;--warn-color-50-parts: #fceee3;--warn-color-100-parts: #f8d4b9;--warn-color-200-parts: #f4b78b;--warn-color-300-parts: #ef9a5d;--warn-color-400-parts: #eb843a;--warn-color-500-parts: #e86e17;--warn-color-600-parts: #e56614;--warn-color-700-parts: #e25b11;--warn-color-800-parts: #de510d;--warn-color-900-parts: #d83f07;--warn-color-A100-parts: rgba(232, 110, 23, .04);--warn-color-A200-parts: rgba(232, 110, 23, .08);--warn-color-A300-parts: rgba(232, 110, 23, .16);--warn-color-A400-parts: rgba(232, 110, 23, .24);--warn-color-A500-parts: rgba(232, 110, 23, .32);--warn-color-contrast-50-parts: rgba(0, 0, 0, .87);--warn-color-contrast-100-parts: rgba(0, 0, 0, .87);--warn-color-contrast-200-parts: rgba(0, 0, 0, .87);--warn-color-contrast-300-parts: rgba(0, 0, 0, .87);--warn-color-contrast-400-parts: rgba(0, 0, 0, .87);--warn-color-contrast-500-parts: rgba(0, 0, 0, .87);--warn-color-contrast-600-parts: rgba(0, 0, 0, .87);--warn-color-contrast-700-parts: rgba(0, 0, 0, .87);--warn-color-contrast-800-parts: rgba(0, 0, 0, .87);--warn-color-contrast-900-parts: rgba(255, 255, 255, 1);--warn-color-contrast-A100-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A200-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A300-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A400-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A500-parts: rgba(0, 0, 0, .87);--warn-color-50-parts-rgb: 252, 238, 227;--warn-color-100-parts-rgb: 248, 212, 185;--warn-color-200-parts-rgb: 244, 183, 139;--warn-color-300-parts-rgb: 239, 154, 93;--warn-color-400-parts-rgb: 235, 132, 58;--warn-color-500-parts-rgb: 232, 110, 23;--warn-color-600-parts-rgb: 229, 102, 20;--warn-color-700-parts-rgb: 226, 91, 17;--warn-color-800-parts-rgb: 222, 81, 13;--warn-color-900-parts-rgb: 216, 63, 7;--warn-color-A100-parts-rgb: 232, 110, 23, .04;--warn-color-A200-parts-rgb: 232, 110, 23, .08;--warn-color-A300-parts-rgb: 232, 110, 23, .16;--warn-color-A400-parts-rgb: 232, 110, 23, .24;--warn-color-A500-parts-rgb: 232, 110, 23, .32;--info-color-50-parts: #edf4ff;--info-color-100-parts: #b9d4fc;--info-color-200-parts: #8ab7fb;--info-color-300-parts: #5b9af9;--info-color-400-parts: #3784f7;--info-color-500-parts: #146ef6;--info-color-600-parts: #1266f5;--info-color-700-parts: #0e5bf3;--info-color-800-parts: #0b51f2;--info-color-900-parts: #063fef;--info-color-A100-parts: rgba(20, 110, 246, .04);--info-color-A200-parts: rgba(20, 110, 246, .08);--info-color-A300-parts: rgba(20, 110, 246, .16);--info-color-A400-parts: rgba(20, 110, 246, .24);--info-color-A500-parts: rgba(20, 110, 246, .32);--info-color-contrast-50-parts: rgba(0, 0, 0, .87);--info-color-contrast-100-parts: rgba(0, 0, 0, .87);--info-color-contrast-200-parts: rgba(0, 0, 0, .87);--info-color-contrast-300-parts: rgba(0, 0, 0, .87);--info-color-contrast-400-parts: rgba(255, 255, 255, 1);--info-color-contrast-500-parts: rgba(255, 255, 255, 1);--info-color-contrast-600-parts: rgba(255, 255, 255, 1);--info-color-contrast-700-parts: rgba(255, 255, 255, 1);--info-color-contrast-800-parts: rgba(255, 255, 255, 1);--info-color-contrast-900-parts: rgba(255, 255, 255, 1);--info-color-contrast-A100-parts: rgba(0, 0, 0, .87);--info-color-contrast-A200-parts: rgba(0, 0, 0, .87);--info-color-contrast-A300-parts: rgba(0, 0, 0, .87);--info-color-contrast-A400-parts: rgba(0, 0, 0, .87);--info-color-contrast-A500-parts: rgba(0, 0, 0, .87);--info-color-50-parts-rgb: 237, 244, 255;--info-color-100-parts-rgb: 185, 212, 252;--info-color-200-parts-rgb: 138, 183, 251;--info-color-300-parts-rgb: 91, 154, 249;--info-color-400-parts-rgb: 55, 132, 247;--info-color-500-parts-rgb: 20, 110, 246;--info-color-600-parts-rgb: 18, 102, 245;--info-color-700-parts-rgb: 14, 91, 243;--info-color-800-parts-rgb: 11, 81, 242;--info-color-900-parts-rgb: 6, 63, 239;--info-color-A100-parts-rgb: 20, 110, 246, .04;--info-color-A200-parts-rgb: 20, 110, 246, .08;--info-color-A300-parts-rgb: 20, 110, 246, .16;--info-color-A400-parts-rgb: 20, 110, 246, .24;--info-color-A500-parts-rgb: 20, 110, 246, .32;--success-color-50-parts: #e7f0e6;--success-color-100-parts: #c4dac1;--success-color-200-parts: #9cc198;--success-color-300-parts: #74a86e;--success-color-400-parts: #57954f;--success-color-500-parts: #398230;--success-color-600-parts: #337a2b;--success-color-700-parts: #2c6f24;--success-color-800-parts: #24651e;--success-color-900-parts: #175213;--success-color-A100-parts: rgba(57, 130, 48, .04);--success-color-A200-parts: rgba(57, 130, 48, .08);--success-color-A300-parts: rgba(57, 130, 48, .16);--success-color-A400-parts: rgba(57, 130, 48, .24);--success-color-A500-parts: rgba(57, 130, 48, .32);--success-color-contrast-50-parts: rgba(0, 0, 0, .87);--success-color-contrast-100-parts: rgba(0, 0, 0, .87);--success-color-contrast-200-parts: rgba(0, 0, 0, .87);--success-color-contrast-300-parts: rgba(0, 0, 0, .87);--success-color-contrast-400-parts: rgba(0, 0, 0, .87);--success-color-contrast-500-parts: rgba(255, 255, 255, 1);--success-color-contrast-600-parts: rgba(255, 255, 255, 1);--success-color-contrast-700-parts: rgba(255, 255, 255, 1);--success-color-contrast-800-parts: rgba(255, 255, 255, 1);--success-color-contrast-900-parts: rgba(255, 255, 255, 1);--success-color-contrast-A100-parts: rgba(0, 0, 0, .87);--success-color-contrast-A200-parts: rgba(0, 0, 0, .87);--success-color-contrast-A300-parts: rgba(0, 0, 0, .87);--success-color-contrast-A400-parts: rgba(0, 0, 0, .87);--success-color-contrast-A500-parts: rgba(0, 0, 0, .87);--success-color-50-parts-rgb: 231, 240, 230;--success-color-100-parts-rgb: 196, 218, 193;--success-color-200-parts-rgb: 156, 193, 152;--success-color-300-parts-rgb: 116, 168, 110;--success-color-400-parts-rgb: 87, 149, 79;--success-color-500-parts-rgb: 57, 130, 48;--success-color-600-parts-rgb: 51, 122, 43;--success-color-700-parts-rgb: 44, 111, 36;--success-color-800-parts-rgb: 36, 101, 30;--success-color-900-parts-rgb: 23, 82, 19;--success-color-A100-parts-rgb: 57, 130, 48, .04;--success-color-A200-parts-rgb: 57, 130, 48, .08;--success-color-A300-parts-rgb: 57, 130, 48, .16;--success-color-A400-parts-rgb: 57, 130, 48, .24;--success-color-A500-parts-rgb: 57, 130, 48, .32;--error-color-50-parts: #fae5e4;--error-color-100-parts: #f3bdba;--error-color-200-parts: #eb928d;--error-color-300-parts: #e3665f;--error-color-400-parts: #dd453c;--error-color-500-parts: #d7241a;--error-color-600-parts: #d32017;--error-color-700-parts: #cd1b13;--error-color-800-parts: #c7160f;--error-color-900-parts: #be0d08;--error-color-A100-parts: rgba(215, 36, 26, .04);--error-color-A200-parts: rgba(215, 36, 26, .08);--error-color-A300-parts: rgba(215, 36, 26, .16);--error-color-A400-parts: rgba(215, 36, 26, .24);--error-color-A500-parts: rgba(215, 36, 26, .32);--error-color-contrast-50-parts: rgba(0, 0, 0, .87);--error-color-contrast-100-parts: rgba(0, 0, 0, .87);--error-color-contrast-200-parts: rgba(0, 0, 0, .87);--error-color-contrast-300-parts: rgba(0, 0, 0, .87);--error-color-contrast-400-parts: rgba(0, 0, 0, .87);--error-color-contrast-500-parts: rgba(255, 255, 255, 1);--error-color-contrast-600-parts: rgba(255, 255, 255, 1);--error-color-contrast-700-parts: rgba(255, 255, 255, 1);--error-color-contrast-800-parts: rgba(255, 255, 255, 1);--error-color-contrast-900-parts: rgba(255, 255, 255, 1);--error-color-contrast-A100-parts: rgba(0, 0, 0, .87);--error-color-contrast-A200-parts: rgba(0, 0, 0, .87);--error-color-contrast-A300-parts: rgba(0, 0, 0, .87);--error-color-contrast-A400-parts: rgba(0, 0, 0, .87);--error-color-contrast-A500-parts: rgba(0, 0, 0, .87);--error-color-50-parts-rgb: 250, 229, 228;--error-color-100-parts-rgb: 243, 189, 186;--error-color-200-parts-rgb: 235, 146, 141;--error-color-300-parts-rgb: 227, 102, 95;--error-color-400-parts-rgb: 221, 69, 60;--error-color-500-parts-rgb: 215, 36, 26;--error-color-600-parts-rgb: 211, 32, 23;--error-color-700-parts-rgb: 205, 27, 19;--error-color-800-parts-rgb: 199, 22, 15;--error-color-900-parts-rgb: 190, 13, 8;--error-color-A100-parts-rgb: 215, 36, 26, .04;--error-color-A200-parts-rgb: 215, 36, 26, .08;--error-color-A300-parts-rgb: 215, 36, 26, .16;--error-color-A400-parts-rgb: 215, 36, 26, .24;--error-color-A500-parts-rgb: 215, 36, 26, .32;--neutral-color-50-parts: #e9e9e9;--neutral-color-100-parts: #dddddd;--neutral-color-200-parts: #cccccc;--neutral-color-300-parts: #b0b0b0;--neutral-color-400-parts: #909090;--neutral-color-500-parts: #515151;--neutral-color-600-parts: #424242;--neutral-color-700-parts: #333333;--neutral-color-800-parts: #212121;--neutral-color-900-parts: #141414;--neutral-color-A100-parts: rgba(81, 81, 81, .04);--neutral-color-A200-parts: rgba(81, 81, 81, .08);--neutral-color-A300-parts: rgba(81, 81, 81, .16);--neutral-color-A400-parts: rgba(81, 81, 81, .24);--neutral-color-A500-parts: rgba(81, 81, 81, .32);--neutral-color-contrast-50-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-100-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-200-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-300-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-400-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-500-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-600-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-700-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-800-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-900-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-A100-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A200-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A300-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A400-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A500-parts: rgba(0, 0, 0, .87);--neutral-color-50-parts-rgb: 233, 233, 233;--neutral-color-100-parts-rgb: 221, 221, 221;--neutral-color-200-parts-rgb: 204, 204, 204;--neutral-color-300-parts-rgb: 176, 176, 176;--neutral-color-400-parts-rgb: 144, 144, 144;--neutral-color-500-parts-rgb: 81, 81, 81;--neutral-color-600-parts-rgb: 66, 66, 66;--neutral-color-700-parts-rgb: 51, 51, 51;--neutral-color-800-parts-rgb: 33, 33, 33;--neutral-color-900-parts-rgb: 20, 20, 20;--neutral-color-A100-parts-rgb: 81, 81, 81, .04;--neutral-color-A200-parts-rgb: 81, 81, 81, .08;--neutral-color-A300-parts-rgb: 81, 81, 81, .16;--neutral-color-A400-parts-rgb: 81, 81, 81, .24;--neutral-color-A500-parts-rgb: 81, 81, 81, .32}.filter-panel{border-radius:8px!important;background-color:#fafafa;border:none;margin:0 0 24px;padding:20px}.filter-panel p{font-family:Poppins!important;font-style:normal!important;font-weight:500!important;font-size:16px!important;line-height:24px!important;margin-top:0!important}.filter-panel .filter-panel-select-container{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.ag-theme-material{width:100%;justify-content:center!important;--ag-font-size: 16px;--ag-font-family: \"Poppins\";--ag-header-background-color: #FAFAFA;--ag-background-color: #FFFFFF;--ag-borders: solid 1px #E9E9E9;--ag-wrapper-border-radius: 8px;--ag-cell-horizontal-padding: 16px;--ag-border-color: #E9E9E9;--ag-material-primary-color: var(--primary-color-500-parts) !important;--ag-material-accent-color: var(--primary-color-300-parts) !important;--ag-icon-size: 18px;--ag-header-cell-hover-background-color: #FFFFFF;--ag-row-hover-color: #FFFFFF;--ag-column-hover-color: #FFFFFF}@media only screen and (max-width: 752px){.ag-theme-material{--ag-cell-horizontal-padding: 8px;--ag-font-size: 12px}}.ag-theme-material ::ng-deep .ag-root-wrapper{border-left:solid 1px #E9E9E9!important;border-top:solid 1px #E9E9E9!important;border-bottom:solid 1px #E9E9E9!important}.ag-theme-material ::ng-deep .ag-cell-focus{border-color:var(--primary-color-300-parts)!important;border-width:3px!important}.ag-theme-material ::ng-deep .ag-header ::ng-deep .ag-pinned-left-header,.ag-theme-material ::ng-deep .ag-body-viewport ::ng-deep .ag-pinned-left-cols-container{position:relative;z-index:1;-webkit-box-shadow:2px 0px 2px 0px rgba(42,42,42,.1);box-shadow:2px 0 2px #2a2a2a1a}.ag-theme-material ::ng-deep .ag-checkbox{padding-right:16px!important;padding-left:16px!important}.ag-theme-material ::ng-deep .ag-body-horizontal-scroll:not(.ag-scrollbar-invisible),.ag-theme-material ::ng-deep .ag-horizontal-left-spacer:not(.ag-scroller-corner){border-right:none}.ag-theme-material ::ng-deep .ag-body-horizontal-scroll-viewport,.ag-theme-material ::ng-deep .ag-body-vertical-scroll-viewport{overflow:hidden}.ag-theme-material ::ng-deep .ag-horizontal-left-spacer{overflow-x:hidden}.ag-theme-material ::ng-deep .ag-header-cell{font-size:16px!important;font-weight:400;color:#0009!important}@media only screen and (max-width: 752px){.ag-theme-material ::ng-deep .ag-header-cell{font-size:12px!important}}.ag-theme-material ::ng-deep .ag-cell{font-weight:400!important;display:flex!important;flex-direction:column!important}.ag-theme-material ::ng-deep .ag-header-icon.ag-header-label-icon.ag-filter-icon{display:none!important}.ag-theme-material ::ng-deep .ag-center-cols-viewport,.ag-theme-material ::ng-deep .ag-center-cols-viewport .ag-center-cols-container{min-height:53px!important}.ag-theme-material ::ng-deep .ag-overlay-wrapper.ag-overlay-no-rows-wrapper{font-size:14px;font-weight:500;color:#0009}.ag-theme-material.no-rows ::ng-deep .ag-body-horizontal-scroll{display:none!important}.ag-theme-material.no-rows ::ng-deep .ag-root-wrapper{border:none!important}.ag-theme-material.no-rows ::ng-deep .ag-header{border-top:solid 1px #E9E9E9;border-left:solid 1px #E9E9E9;border-right:solid 1px #E9E9E9;border-top-left-radius:8px;border-top-right-radius:8px}.ag-theme-material:hover ::ng-deep .ag-body-vertical-scroll-viewport{overflow-y:auto}.ag-theme-material:hover ::ng-deep .ag-body-horizontal-scroll-viewport{overflow-x:auto}.dense-4{--mat-form-field-container-height: 40px;--mat-form-field-filled-label-display: none;--mat-form-field-container-vertical-padding: 8px;--mat-form-field-filled-with-label-container-padding-top: 8px;--mat-form-field-filled-with-label-container-padding-bottom: 8px}.search-icon{font-weight:700;font-size:20px;color:#000000de;opacity:.87}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mat-mdc-form-field-subscript-wrapper{display:none}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mat-mdc-text-field-wrapper{border-radius:10px}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{padding-right:8px!important}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#fafafa!important}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:#000000de;caret-color:#000000de;opacity:.87;letter-spacing:normal}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled .mdc-line-ripple:before,:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled .mdc-line-ripple:after{border:none!important}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled .mat-mdc-floating-label:not(.mdc-floating-label--float-above){display:block!important}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled .mat-mdc-floating-label:not(.mdc-floating-label--float-above) .search-label{color:#000000de;opacity:.6;font-family:Poppins;letter-spacing:normal}:host::ng-deep mat-form-field.sof-form-field.table-search-field.mat-focused .mat-mdc-text-field-wrapper{outline:3px solid var(--primary-color-300-parts);outline-offset:2px}:host::ng-deep mat-form-field.sof-form-field.table-search-field.mat-focused .mat-mdc-text-field-wrapper i.search-icon{color:var(--primary-color-500-parts)}::ng-deep .custom-paginator{width:100%;justify-content:flex-start;align-items:flex-start;display:inline-flex;height:40px!important;margin-top:24px}::ng-deep .custom-paginator .first-section{flex:1 1 0;align-self:stretch;justify-content:flex-start;align-items:center!important;gap:16px!important;display:flex}::ng-deep .custom-paginator .first-section .button-part-1{height:40px!important;align-self:center;padding-left:16px;background:#fafafa;border-radius:8px;overflow:unset!important;justify-content:center;align-items:center;display:inline-flex;border:none;gap:16px;border:2px solid transparent}::ng-deep .custom-paginator .first-section .button-part-1:hover,::ng-deep .custom-paginator .first-section .button-part-1:focus,::ng-deep .custom-paginator .first-section .button-part-1:active{border-radius:10px;justify-content:center;display:inline-flex;border-color:var(--primary-color-500-parts);height:40px!important;align-self:center;padding-left:16px;background:#fafafa;overflow:unset!important;align-items:center;gap:16px}::ng-deep .custom-paginator .first-section .field{display:flex;flex-direction:row;gap:16px;align-items:center}::ng-deep .custom-paginator .mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{align-items:center!important;width:100px!important}::ng-deep .custom-paginator .second-section{justify-content:flex-start;align-items:center;gap:16px;display:flex}::ng-deep .custom-paginator .page-select{height:100%;padding:8px 16px;background:#fafafa;border-radius:8px;overflow:hidden;justify-content:flex-start;align-items:center;gap:16px;display:inline-flex}::ng-deep .custom-paginator .select-icon{width:100%;position:relative;height:20px!important;font-size:20px!important}::ng-deep .custom-paginator .pageChangeText{color:#000000de;font-size:16px;font-family:Poppins;font-weight:400;word-wrap:break-word}::ng-deep .custom-paginator .mat-select{color:#000000de;font-size:16px;font-family:Poppins;font-weight:400;word-wrap:break-word}::ng-deep .custom-paginator .go-to-page{width:fit-content;align-self:stretch;justify-content:flex-start;align-items:center;gap:16px;display:flex}::ng-deep .custom-paginator .go-to-page .outer-box{height:40px;flex-direction:column;justify-content:flex-start;align-items:flex-start;display:inline-flex}::ng-deep .custom-paginator .go-to-page .field{display:flex;flex-direction:row;gap:16px;align-items:center}::ng-deep .custom-paginator .go-to-page .button-part{align-self:center;flex:1 1 0;padding:8px 16px;background:#fafafa;border-radius:8px;overflow:unset!important;justify-content:center;align-items:flex-start;gap:16px;display:inline-flex;border:2px solid transparent}::ng-deep .custom-paginator .go-to-page .button-part:hover,::ng-deep .custom-paginator .go-to-page .button-part:focus,::ng-deep .custom-paginator .go-to-page .button-part:active{align-self:center;flex:1 1 0;padding:8px 16px;background:#fafafa;border-radius:10px;overflow:unset!important;justify-content:center;align-items:flex-start;gap:16px;display:inline-flex;border-color:var(--primary-color-500-parts)}::ng-deep .custom-paginator .go-to-page .current-page{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:8px;font-size:16px!important;font-family:Poppins!important}::ng-deep .custom-paginator .go-to-page .page{position:relative}::ng-deep .custom-paginator .go-to-page .of-page{position:relative;color:#0009}::ng-deep .custom-paginator .mat-mdc-select-value{font-size:16px!important;font-family:Poppins!important}::ng-deep .custom-paginator .mat-form-field-appearance-outline .mat-mdc-select-arrow-wrapper{transform:none!important}::ng-deep .custom-paginator .mat-mdc-select-arrow{display:none!important}::ng-deep .custom-paginator .mat-form-field-underline{display:none!important}::ng-deep .custom-paginator .mdc-line-ripple{display:none!important}::ng-deep .custom-paginator .mat-mdc-text-field-wrapper{background-color:#fff!important;height:40px!important}::ng-deep .custom-paginator .mat-mdc-text-field-wrapper .mat-mdc-form-field-focus-overlay{display:none!important}::ng-deep .page-option mat-pseudo-checkbox{display:none!important}::ng-deep .mat-mdc-select-panel{scrollbar-width:thin!important;background-color:#fafafa!important;box-shadow:0 4px 8px 0 var(--neutral-color-A300-parts)!important;border-radius:8px!important;min-width:82px!important}.table-filter-select ::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}.loading-container{display:flex;align-items:center;justify-content:center;width:100%}::ng-deep .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--primary-color-500-parts)!important}\n"], dependencies: [{ kind: "directive", type: i1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i1.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i2.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "columnMenu", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipShowMode", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "components", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "quickFilterText", "cacheQuickFilter", "excludeHiddenColumnsFromQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "applyQuickFilterBeforePivotOrAgg", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "advancedFilterModel", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "suppressAdvancedFilterEval", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "enableChartToolPanelsButton", "suppressChartToolPanelsButton", "chartToolPanelsDef", "chartMenuItems", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotMaxGeneratedColumns", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDuration", "cellFlashDelay", "cellFadeDuration", "cellFadeDelay", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "suppressGroupMaintainValueType", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupTotalRow", "grandTotalRow", "suppressStickyTotalRow", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideInfiniteScroll", "suppressServerSideFullWidthLoadingRow", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideEnableClientSideSort", "serverSideOnlyRefreshFilteredGroups", "serverSideFilterAllLevels", "serverSideSortOnServer", "serverSideFilterOnServer", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressHeaderFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "functionsPassive", "enableGroupEdit", "initialState", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "columnMenuVisibleChanged", "contextMenuVisibleChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "rangeDeleteStart", "rangeDeleteEnd", "fillStart", "fillEnd", "filterOpened", "filterChanged", "filterModified", "advancedFilterBuilderVisibleChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "gridPreDestroyed", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pivotMaxColumnsExceeded", "pinnedRowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i6.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i11.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i12.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] }); }
468
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: SofTableComponent, selector: "sof-table", inputs: { rowData: "rowData", colDefs: "colDefs", sizeMode: "sizeMode", paginationPageSizeSelector: "paginationPageSizeSelector", enableSearch: "enableSearch", enableFilter: "enableFilter", enableColumnOptions: "enableColumnOptions", enableExport: "enableExport", showSaveColumnOptionsText: "showSaveColumnOptionsText", tableName: "tableName", savedColumnState: "savedColumnState", initialFilterModel: "initialFilterModel" }, outputs: { updatedColumnState: "updatedColumnState", filteredRowDataForExport: "filteredRowDataForExport" }, viewQueries: [{ propertyName: "gridSearchTextInput", first: true, predicate: ["gridSearchTextInput"], descendants: true }, { propertyName: "ariaResultsCount", first: true, predicate: ["ariaResultsCount"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div \r\n [fxShow]=\"isGridDataRendered() && totalLength\"\r\n fxLayoutGap=\"16px\" m-b-24>\r\n @if (enableFilter && colFilters.length) {\r\n <button \r\n (click)=\"toggleFilterPanel()\" \r\n mat-flat-button class=\"sof-button-v2\"\r\n theme=\"neutral\" \r\n [attr.emphasis]=\"filterOpenState ? 'solid' : filterCount === 0 ? 'secondary' : 'contained'\"\r\n [matBadge]=\"filterCount\"\r\n matBadgePosition=\"after\"\r\n [matBadgeHidden]=\"filterCount === 0 ? true : false\">\r\n <i class=\"ph ph-bold ph-sliders-horizontal\" aria-hidden=\"true\"></i>\r\n {{'armature.sof-table.filter' | translate}}\r\n </button>\r\n }\r\n @if (enableSearch) {\r\n <mat-form-field class=\"sof-form-field table-search-field dense-4\" fxFlex=\"auto\">\r\n <span matPrefix>\r\n <i class=\"ph-bold ph-magnifying-glass search-icon\" aria-hidden=\"true\"></i>\r\n </span>\r\n <mat-label class=\"search-label\">{{'armature.sof-table.search' | translate}}</mat-label>\r\n <input \r\n (input)=\"onSearchTextChanged()\" \r\n #gridSearchTextInput matInput type=\"text\" id=\"gridSearchTextInput\"\r\n [attr.aria-label]=\"'armature.sof-table.screen-reader.search-filter-description' | translate\"/>\r\n </mat-form-field>\r\n }\r\n @if (enableColumnOptions) {\r\n <button \r\n (click)=\"openColumnOptions()\"\r\n mat-flat-button class=\"sof-button-icon-v2\" \r\n theme=\"neutral\" emphasis=\"secondary\" id=\"open-column-options\"\r\n [attr.aria-label]=\"'armature.sof-table.screen-reader.column-options-btn' | translate\"\r\n [matTooltip]=\"'armature.sof-table.screen-reader.column-options-btn' | translate\">\r\n <i class=\"ph-bold ph-pause\" aria-hidden=\"true\"></i>\r\n </button>\r\n }\r\n @if(enableExport) {\r\n <button \r\n (click)=\"exportFilteredRowData()\"\r\n mat-flat-button class=\"sof-button-icon-v2\" \r\n theme=\"neutral\" emphasis=\"secondary\" id=\"export-table\"\r\n [attr.aria-label]=\"'armature.sof-table.screen-reader.export-table' | translate\"\r\n [matTooltip]=\"'armature.sof-table.screen-reader.export-table' | translate\">\r\n <i class=\"ph-bold ph-export\" aria-hidden=\"true\"></i>\r\n </button>\r\n }\r\n <ng-content select=\"[sof-table-right-buttons]\"></ng-content>\r\n <!-- \r\n Only inject <button>'s inside an <ng-container sof-table-right-buttons>\r\n ... \r\n <ng-container sof-table-right-buttons>\r\n <button \r\n (click)=\"anyFunction()\"\r\n mat-flat-button class=\"sof-button-icon-v2\" \r\n theme=\"neutral\" emphasis=\"secondary\" aria-label=\"any button\"\r\n matTooltip=\"any button\">\r\n <i class=\"ph-bold ph-acorn\" aria-hidden=\"true\"></i>\r\n </button>\r\n </ng-container>\r\n ... \r\n note: make sure buttons have the following attributes to match others =\r\n `mat-flat-button class=\"sof-button-icon-v2\" theme=\"neutral\" emphasis=\"secondary\"`\r\n * remember to add aria-label and tooltip for icon button\r\n -->\r\n</div>\r\n\r\n<div #ariaResultsCount class=\"sr-only\" aria-live=\"assertive\"></div>\r\n\r\n@if (isGridDataRendered() && filterOpenState) {\r\n <fieldset \r\n class=\"filter-panel\" role=\"region\"\r\n [attr.aria-label]=\"'armature.sof-table.screen-reader.select-filters-description' | translate\">\r\n <p>\r\n <i class=\"ph ph-bold ph-sliders-horizontal\" aria-hidden=\"true\"></i>\r\n <span class=\"m-l-8\">{{'armature.sof-table.filter' | translate}}</span>\r\n </p>\r\n <div class=\"filter-panel-select-container m-v-20\">\r\n @for (colFilter of colFilters; let i = $index; track i) {\r\n <mat-form-field appearance=\"outline\" class=\"sof-form-field table-filter-select\">\r\n <mat-label>{{colFilter.label}}</mat-label>\r\n <mat-select \r\n [(ngModel)]=\"filterSelections[i]\" \r\n multiple \r\n id=\"filterDropdown{{i}}\"\r\n placeholder=\"{{'armature.sof-table.all' | translate}}\" disableRipple=\"true\">\r\n @for (colOption of colFilter.options; track $index) {\r\n <mat-option [value]=\"colOption\">\r\n {{colOption}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n </div>\r\n <div fxLayout=\"row\">\r\n <div fxFlex=\"50%\">\r\n <button \r\n (click)=\"clearFilters()\" [disabled]=\"hasEmptyFilters()\" \r\n mat-flat-button class=\"sof-button-v2\"\r\n theme=\"neutral\" emphasis=\"floating\"\r\n id=\"tableFilterClear\">\r\n {{'armature.sof-table.reset' | translate}}\r\n </button>\r\n </div>\r\n <div fxFlex=\"50%\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"2%\" fxLayoutAlign=\"flex-end\">\r\n <div fxFlex=\"0 1 auto\">\r\n <button \r\n (click)=\"cancelFilterChanges()\" mat-flat-button class=\"sof-button-v2\" \r\n id=\"tableFilterCancel\" theme=\"neutral\" emphasis=\"secondary\">\r\n {{'armature.sof-table.cancel' | translate}}\r\n </button>\r\n </div>\r\n <div fxFlex=\"0 1 auto\">\r\n <button \r\n (click)=\"applyFilters()\" mat-flat-button class=\"sof-button-v2\"\r\n id=\"tableFilterApply\" theme=\"primary\" emphasis=\"solid\">\r\n {{'armature.sof-table.results' | translate}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </fieldset>\r\n}\r\n\r\n<ag-grid-angular \r\n [fxShow]=\"isGridDataRendered()\"\r\n (gridReady)=\"onGridReady($event)\" \r\n (firstDataRendered)=\"onFirstDataRendered()\"\r\n (filterChanged)=\"onFilterChanged()\"\r\n (paginationChanged)=\"changePageSize($event)\" \r\n [rowData]=\"rowData\" \r\n [columnDefs]=\"colDefs\" \r\n [defaultColDef]=\"defaultColDef\" \r\n [pagination]=\"true\" \r\n [suppressPaginationPanel]=\"true\"\r\n [paginationPageSizeSelector]=\"paginationPageSizeSelector\" \r\n [paginationPageSize]=\"paginationPageSize\"\r\n [headerHeight]=\"rowHeight\" \r\n [rowHeight]=\"rowHeight\" \r\n [domLayout]=\"'autoHeight'\" \r\n [tooltipShowDelay]=\"tooltipShowDelay\"\r\n [overlayNoRowsTemplate]=\"'armature.sof-table.no-rows' | translate\"\r\n [class.no-rows]=\"!totalLength\"\r\n class=\"ag-theme-material\">\r\n</ag-grid-angular>\r\n\r\n<div \r\n [fxShow]=\"isGridDataRendered() && totalLength\"\r\n class=\"custom-paginator\">\r\n <div class=\"first-section\">\r\n <button class=\"button-part-1\" type=\"button\">\r\n <mat-select \r\n #pageSizeSelect\r\n id=\"pageSizeInput\" name=\"pageSizeInput\" \r\n [(value)]=\"paginationPageSize\" disableRipple=\"true\">\r\n @for (size of paginationPageSizeSelector; let i = $index; track i) {\r\n <mat-option \r\n class=\"page-option\" id=\"size{{i}}\"\r\n [value]=\"paginationPageSizeSelector[i]\">\r\n {{size}}\r\n </mat-option>\r\n }\r\n <mat-select-trigger>\r\n <div class=\"field\">\r\n <span class=\"current-page\">\r\n <span class=\"page\">{{paginationPageSize}}</span>\r\n </span>\r\n <span class=\"select-icon\">\r\n <i [class]=\"'ph-bold ph-caret-' + (pageSizeSelect.panelOpen ? 'up':'down')\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </mat-select-trigger>\r\n </mat-select>\r\n </button>\r\n <span class=\"pageChangeText\">\r\n {{pageChangeText}} {{'armature.sof-table.of' | translate}} {{totalLength}}\r\n </span>\r\n </div>\r\n <div class=\"go-to-page\">\r\n <div class=\"outer-box\">\r\n <button class=\"button-part\" type=\"button\">\r\n <mat-select \r\n #pageNumberSelect\r\n (selectionChange)=\"onPageNumberChange($event.value)\"\r\n [(value)]=\"currentPage\" \r\n id=\"pageSelelctor\" name=\"pageSelector\" disableRipple=\"true\">\r\n @for (page of pageSelector; track $index) {\r\n <mat-option [value]=\"page\" class=\"page-option\">\r\n <span class=\"current-page\">\r\n <span class=\"page\">{{page}}</span>\r\n </span>\r\n </mat-option>\r\n }\r\n <mat-select-trigger>\r\n <div class=\"field\">\r\n <span class=\"current-page\">\r\n <span class=\"page\">{{currentPage}}</span>\r\n <span class=\"of-page\"> {{'armature.sof-table.of' | translate}} {{totalNumberOfPages}} </span>\r\n </span>\r\n <span class=\"select-icon\">\r\n <i [class]=\"'ph-bold ph-caret-' + (pageNumberSelect.panelOpen ? 'up':'down')\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </mat-select-trigger>\r\n </mat-select>\r\n </button>\r\n </div>\r\n <nav class=\"second-section\">\r\n <button \r\n (click)=\"previousPage()\"\r\n id=\"prev-button\" mat-flat-button class=\"sof-button-icon-v2\" theme=\"neutral\" emphasis=\"secondary\"\r\n [disabled]=\"currentPage === 1\" \r\n [attr.aria-label]=\"'screen-reader.pagination.previous' | translate\">\r\n <i class=\"ph-bold ph-caret-left\" aria-hidden=\"true\"></i>\r\n </button>\r\n <button \r\n (click)=\"nextPage()\" \r\n id=\"next-button\" mat-flat-button class=\"sof-button-icon-v2\" theme=\"neutral\" emphasis=\"secondary\"\r\n [disabled]=\"currentPage === totalNumberOfPages\"\r\n [attr.aria-label]=\"'screen-reader.pagination.next' | translate\">\r\n <i class=\"ph-bold ph-caret-right\" aria-hidden=\"true\"></i>\r\n </button>\r\n </nav>\r\n </div>\r\n</div>\r\n\r\n@if (!isGridDataRendered()) {\r\n <div class=\"loading-container\">\r\n <mat-progress-spinner color=\"primary\" mode=\"indeterminate\"/>\r\n </div>\r\n}\r\n", styles: ["@font-face{font-family:agGridMaterial;src:url(data:font/woff2;charset=utf-8;base64,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);font-weight:400;font-style:normal}.ag-theme-material,.ag-theme-material-dark,.ag-theme-material-auto-dark{--ag-material-primary-color: #3f51b5;--ag-material-accent-color: #ff4081;--ag-foreground-color: rgba(0, 0, 0, .87);--ag-secondary-foreground-color: rgba(0, 0, 0, .54);--ag-disabled-foreground-color: rgba(0, 0, 0, .38);--ag-background-color: #fff;--ag-header-background-color: #fff;--ag-tooltip-background-color: #fff;--ag-subheader-background-color: #eee;--ag-subheader-toolbar-background-color: rgba(238, 238, 238, .5);--ag-header-cell-hover-background-color: #f2f2f2;--ag-chip-background-color: #e2e2e2;--ag-range-selection-background-color: rgba(122, 134, 203, .1);--ag-range-selection-background-color-2: rgba(122, 134, 203, .19);--ag-range-selection-background-color-3: rgba(122, 134, 203, .27);--ag-range-selection-background-color-4: rgba(122, 134, 203, .34);--ag-range-selection-highlight-color: #fce4ec;--ag-row-hover-color: #fafafa;--ag-column-hover-color: #fafafa;--ag-control-panel-background-color: #fafafa;--ag-selected-row-background-color: rgba(33, 150, 243, .3);--ag-checkbox-unchecked-color: #333;--ag-value-change-value-highlight-background-color: #00acc1;--ag-side-button-selected-background-color: transparent;--ag-advanced-filter-join-pill-color: #f08e8d;--ag-advanced-filter-column-pill-color: #a6e194;--ag-advanced-filter-option-pill-color: #f3c08b;--ag-advanced-filter-value-pill-color: #85c0e4;--ag-range-selection-border-color: var(--ag-material-primary-color);--ag-checkbox-checked-color: var(--ag-material-accent-color);--ag-borders: none;--ag-borders-critical: solid 1px;--ag-border-color: #e2e2e2;--ag-grid-size: 8px;--ag-icon-size: 18px;--ag-header-height: calc(var(--ag-grid-size) * 7);--ag-row-height: calc(var(--ag-grid-size) * 6);--ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 3);--ag-list-item-height: calc(var(--ag-grid-size) * 4);--ag-row-group-indent-size: calc(var(--ag-grid-size) * 3 + var(--ag-icon-size));--ag-filter-tool-panel-sub-level-row-height: calc(var(--ag-grid-size) * 4);--ag-checkbox-border-radius: 2px;--ag-toggle-button-switch-border-width: 2px;--ag-toggle-button-height: var(--ag-icon-size);--ag-widget-container-horizontal-padding: calc(var(--ag-grid-size) * 1.5);--ag-widget-container-vertical-padding: calc(var(--ag-grid-size) * 2);--ag-widget-vertical-spacing: calc(var(--ag-grid-size) * 1.75);--ag-font-family: Roboto, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;--ag-font-size: 13px;--ag-icon-font-family: agGridMaterial;--ag-selected-tab-underline-color: var(--ag-material-primary-color);--ag-selected-tab-underline-width: 2px;--ag-input-focus-border-color: var(--ag-material-primary-color);--ag-input-focus-box-shadow: 0 0 0 5px rgba(32, 33, 36, .122);--ag-card-shadow: 0 3px 1px -2px rgba(0, 0, 0, .2), 0 2px 2px 0 rgba(0, 0, 0, .14), 0 1px 5px 0 rgba(0, 0, 0, .12);--ag-card-radius: 2px;--ag-invalid-color: #e02525}.ag-theme-material-dark{--ag-material-primary-color: #3f51b5;--ag-material-accent-color: #bb86fcff;--ag-range-selection-border-color: var(--ag-material-accent-color);--ag-background-color: #121212ff;--ag-foreground-color: #ffffffff;--ag-data-color: #f5f5f5ff;--ag-header-cell-hover-background-color: #000000ff;--ag-advanced-filter-join-pill-color: #7a3a37ff;--ag-advanced-filter-column-pill-color: #355f2dff;--ag-advanced-filter-option-pill-color: #5a3168ff;--ag-advanced-filter-value-pill-color: #374c86ff;--ag-input-disabled-border-color: #3a434eff;--ag-input-disabled-background-color: #68686e12;--ag-selected-row-background-color: #bb86fc33;--ag-row-hover-color: #bb86fc33;--ag-column-hover-color: #f5f5f50d;--ag-range-selection-background-color: #bb86fc1a;--ag-range-selection-background-color-2: #bb86fc30;--ag-range-selection-background-color-3: #bb86fc45;--ag-range-selection-background-color-4: #bb86fc57;--ag-border-color: #383838ff;--ag-secondary-border-color: #383838ff;--ag-header-background-color: #121212ff;--ag-tooltip-background-color: #212b38ff;--ag-odd-row-background-color: #121212ff;--ag-control-panel-background-color: #2c2c2cff;--ag-subheader-background-color: #ffffff0d;--ag-subheader-toolbar-background-color: #2c2c2cff;--ag-invalid-color: #e02525ff;--ag-checkbox-unchecked-color: #797e87ff;--ag-checkbox-background-color: #121212ff;--ag-secondary-foreground-color: #f5f5f5ff;--ag-input-border-color: #383838ff;--ag-input-border-color-invalid: #e02525ff;--ag-disabled-foreground-color: #f5f5f580;--ag-chip-background-color: #22262812;--ag-side-button-selected-background-color: #2c2c2cff;--ag-selected-tab-underline-color: #3f51b5ff;--ag-modal-overlay-background-color: #121212a8;--ag-value-change-delta-up-color: #43a047a8;--ag-value-change-delta-down-color: #e53935ff;--ag-menu-background-color: #2c2c2cff;--ag-row-loading-skeleton-effect-color: rgba(202, 203, 204, .4);color-scheme:dark}@media (prefers-color-scheme: dark){.ag-theme-material-auto-dark{--ag-material-primary-color: #3f51b5;--ag-material-accent-color: #bb86fcff;--ag-range-selection-border-color: var(--ag-material-accent-color);--ag-background-color: #121212ff;--ag-foreground-color: #ffffffff;--ag-data-color: #f5f5f5ff;--ag-header-cell-hover-background-color: #000000ff;--ag-advanced-filter-join-pill-color: #7a3a37ff;--ag-advanced-filter-column-pill-color: #355f2dff;--ag-advanced-filter-option-pill-color: #5a3168ff;--ag-advanced-filter-value-pill-color: #374c86ff;--ag-input-disabled-border-color: #3a434eff;--ag-input-disabled-background-color: #68686e12;--ag-selected-row-background-color: #bb86fc33;--ag-row-hover-color: #bb86fc33;--ag-column-hover-color: #f5f5f50d;--ag-range-selection-background-color: #bb86fc1a;--ag-range-selection-background-color-2: #bb86fc30;--ag-range-selection-background-color-3: #bb86fc45;--ag-range-selection-background-color-4: #bb86fc57;--ag-border-color: #383838ff;--ag-secondary-border-color: #383838ff;--ag-header-background-color: #121212ff;--ag-tooltip-background-color: #212b38ff;--ag-odd-row-background-color: #121212ff;--ag-control-panel-background-color: #2c2c2cff;--ag-subheader-background-color: #ffffff0d;--ag-subheader-toolbar-background-color: #2c2c2cff;--ag-invalid-color: #e02525ff;--ag-checkbox-unchecked-color: #797e87ff;--ag-checkbox-background-color: #121212ff;--ag-secondary-foreground-color: #f5f5f5ff;--ag-input-border-color: #383838ff;--ag-input-border-color-invalid: #e02525ff;--ag-disabled-foreground-color: #f5f5f580;--ag-chip-background-color: #22262812;--ag-side-button-selected-background-color: #2c2c2cff;--ag-selected-tab-underline-color: #3f51b5ff;--ag-modal-overlay-background-color: #121212a8;--ag-value-change-delta-up-color: #43a047a8;--ag-value-change-delta-down-color: #e53935ff;--ag-menu-background-color: #2c2c2cff;--ag-row-loading-skeleton-effect-color: rgba(202, 203, 204, .4);color-scheme:dark}}.ag-theme-material .ag-filter-toolpanel-header,.ag-theme-material .ag-filter-toolpanel-search,.ag-theme-material .ag-status-bar,.ag-theme-material .ag-header-row,.ag-theme-material .ag-panel-title-bar-title,.ag-theme-material .ag-multi-filter-group-title-bar,.ag-theme-material-dark .ag-filter-toolpanel-header,.ag-theme-material-dark .ag-filter-toolpanel-search,.ag-theme-material-dark .ag-status-bar,.ag-theme-material-dark .ag-header-row,.ag-theme-material-dark .ag-panel-title-bar-title,.ag-theme-material-dark .ag-multi-filter-group-title-bar,.ag-theme-material-auto-dark .ag-filter-toolpanel-header,.ag-theme-material-auto-dark .ag-filter-toolpanel-search,.ag-theme-material-auto-dark .ag-status-bar,.ag-theme-material-auto-dark .ag-header-row,.ag-theme-material-auto-dark .ag-panel-title-bar-title,.ag-theme-material-auto-dark .ag-multi-filter-group-title-bar{font-size:calc(var(--ag-font-size) - 1px);font-weight:600;color:var(--ag-header-foreground-color)}.ag-theme-material .ag-tab,.ag-theme-material-dark .ag-tab,.ag-theme-material-auto-dark .ag-tab{height:calc(var(--ag-grid-size) * 4.5);flex:1 1 auto}.ag-theme-material .ag-tabs-header,.ag-theme-material .ag-column-drop-horizontal,.ag-theme-material-dark .ag-tabs-header,.ag-theme-material-dark .ag-column-drop-horizontal,.ag-theme-material-auto-dark .ag-tabs-header,.ag-theme-material-auto-dark .ag-column-drop-horizontal{background-color:var(--ag-subheader-background-color)}.ag-theme-material .ag-tabs-body,.ag-theme-material-dark .ag-tabs-body,.ag-theme-material-auto-dark .ag-tabs-body{padding:calc(var(--ag-grid-size) * .5) 0}.ag-theme-material .ag-tabs-body .ag-menu-list,.ag-theme-material-dark .ag-tabs-body .ag-menu-list,.ag-theme-material-auto-dark .ag-tabs-body .ag-menu-list{padding-top:0;padding-bottom:0}.ag-theme-material .ag-header-cell,.ag-theme-material .ag-header-group-cell,.ag-theme-material-dark .ag-header-cell,.ag-theme-material-dark .ag-header-group-cell,.ag-theme-material-auto-dark .ag-header-cell,.ag-theme-material-auto-dark .ag-header-group-cell{transition:background-color .5s}.ag-theme-material .ag-row-last:not(.ag-row-first) .ag-cell-inline-editing,.ag-theme-material-dark .ag-row-last:not(.ag-row-first) .ag-cell-inline-editing,.ag-theme-material-auto-dark .ag-row-last:not(.ag-row-first) .ag-cell-inline-editing{bottom:0}.ag-theme-material .ag-cell-inline-editing,.ag-theme-material-dark .ag-cell-inline-editing,.ag-theme-material-auto-dark .ag-cell-inline-editing{padding:var(--ag-grid-size);height:calc(var(--ag-row-height) + var(--ag-grid-size) * 3);border-color:var(--ag-border-color)!important}.ag-theme-material .ag-has-focus .ag-cell-inline-editing,.ag-theme-material-dark .ag-has-focus .ag-cell-inline-editing,.ag-theme-material-auto-dark .ag-has-focus .ag-cell-inline-editing{border-color:var(--ag-input-focus-border-color)!important}.ag-theme-material .ag-column-drop-vertical,.ag-theme-material-dark .ag-column-drop-vertical,.ag-theme-material-auto-dark .ag-column-drop-vertical{border-bottom:solid 1px;border-bottom-color:var(--ag-border-color);padding-top:var(--ag-grid-size)}.ag-theme-material .ag-column-drop-vertical.ag-last-column-drop,.ag-theme-material-dark .ag-column-drop-vertical.ag-last-column-drop,.ag-theme-material-auto-dark .ag-column-drop-vertical.ag-last-column-drop{border-bottom:none}.ag-theme-material .ag-column-drop-vertical-cell,.ag-theme-material-dark .ag-column-drop-vertical-cell,.ag-theme-material-auto-dark .ag-column-drop-vertical-cell{margin-left:0}.ag-theme-material .ag-column-drop-vertical-empty-message,.ag-theme-material-dark .ag-column-drop-vertical-empty-message,.ag-theme-material-auto-dark .ag-column-drop-vertical-empty-message{font-size:calc(var(--ag-font-size) - 1px);font-weight:600;color:var(--ag-disabled-foreground-color)}.ag-theme-material .ag-ltr .ag-column-drop-vertical-empty-message,.ag-theme-material-dark .ag-ltr .ag-column-drop-vertical-empty-message,.ag-theme-material-auto-dark .ag-ltr .ag-column-drop-vertical-empty-message{padding-left:calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);padding-right:var(--ag-grid-size)}.ag-theme-material .ag-rtl .ag-column-drop-vertical-empty-message,.ag-theme-material-dark .ag-rtl .ag-column-drop-vertical-empty-message,.ag-theme-material-auto-dark .ag-rtl .ag-column-drop-vertical-empty-message{padding-right:calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);padding-left:var(--ag-grid-size)}.ag-theme-material .ag-status-bar,.ag-theme-material-dark .ag-status-bar,.ag-theme-material-auto-dark .ag-status-bar{border:solid 1px;border-color:var(--ag-border-color)}.ag-theme-material .ag-column-panel-column-select,.ag-theme-material-dark .ag-column-panel-column-select,.ag-theme-material-auto-dark .ag-column-panel-column-select{border-top:solid 1px;border-top-color:var(--ag-border-color)}.ag-theme-material .ag-column-select,.ag-theme-material .ag-column-select-header,.ag-theme-material-dark .ag-column-select,.ag-theme-material-dark .ag-column-select-header,.ag-theme-material-auto-dark .ag-column-select,.ag-theme-material-auto-dark .ag-column-select-header{border-bottom:solid 1px;border-bottom-color:var(--ag-border-color)}.ag-theme-material .ag-column-select-header,.ag-theme-material-dark .ag-column-select-header,.ag-theme-material-auto-dark .ag-column-select-header{height:var(--ag-header-height)}.ag-theme-material .ag-group-title-bar,.ag-theme-material-dark .ag-group-title-bar,.ag-theme-material-auto-dark .ag-group-title-bar{padding:calc(var(--ag-grid-size) * .75) var(--ag-grid-size)}.ag-theme-material .ag-charts-format-sub-level-group-title-bar,.ag-theme-material-dark .ag-charts-format-sub-level-group-title-bar,.ag-theme-material-auto-dark .ag-charts-format-sub-level-group-title-bar{padding:calc(var(--ag-grid-size) * .5) var(--ag-grid-size)}.ag-theme-material .ag-chart-data-section,.ag-theme-material .ag-chart-format-section,.ag-theme-material .ag-chart-advanced-settings-section,.ag-theme-material-dark .ag-chart-data-section,.ag-theme-material-dark .ag-chart-format-section,.ag-theme-material-dark .ag-chart-advanced-settings-section,.ag-theme-material-auto-dark .ag-chart-data-section,.ag-theme-material-auto-dark .ag-chart-format-section,.ag-theme-material-auto-dark .ag-chart-advanced-settings-section{padding-bottom:calc(var(--ag-grid-size) * .5)}.ag-theme-material .ag-chart-menu-close,.ag-theme-material-dark .ag-chart-menu-close,.ag-theme-material-auto-dark .ag-chart-menu-close{background:var(--ag-background-color)}.ag-theme-material .ag-chart-menu-close .ag-icon,.ag-theme-material-dark .ag-chart-menu-close .ag-icon,.ag-theme-material-auto-dark .ag-chart-menu-close .ag-icon{background:var(--ag-subheader-background-color)}.ag-theme-material input[class^=ag-]:not([type]),.ag-theme-material input[class^=ag-][type=text],.ag-theme-material input[class^=ag-][type=number],.ag-theme-material input[class^=ag-][type=tel],.ag-theme-material input[class^=ag-][type=date],.ag-theme-material input[class^=ag-][type=datetime-local],.ag-theme-material textarea[class^=ag-],.ag-theme-material-dark input[class^=ag-]:not([type]),.ag-theme-material-dark input[class^=ag-][type=text],.ag-theme-material-dark input[class^=ag-][type=number],.ag-theme-material-dark input[class^=ag-][type=tel],.ag-theme-material-dark input[class^=ag-][type=date],.ag-theme-material-dark input[class^=ag-][type=datetime-local],.ag-theme-material-dark textarea[class^=ag-],.ag-theme-material-auto-dark input[class^=ag-]:not([type]),.ag-theme-material-auto-dark input[class^=ag-][type=text],.ag-theme-material-auto-dark input[class^=ag-][type=number],.ag-theme-material-auto-dark input[class^=ag-][type=tel],.ag-theme-material-auto-dark input[class^=ag-][type=date],.ag-theme-material-auto-dark input[class^=ag-][type=datetime-local],.ag-theme-material-auto-dark textarea[class^=ag-]{background:transparent;color:var(--ag-foreground-color);font-family:inherit;font-size:inherit;height:calc(var(--ag-grid-size) * 5);padding-bottom:var(--ag-grid-size);border-width:0;border-radius:0;border-bottom:2px solid;border-bottom-color:var(--ag-border-color)}.ag-theme-material input[class^=ag-]:not([type]):focus,.ag-theme-material input[class^=ag-][type=text]:focus,.ag-theme-material input[class^=ag-][type=number]:focus,.ag-theme-material input[class^=ag-][type=tel]:focus,.ag-theme-material input[class^=ag-][type=date]:focus,.ag-theme-material input[class^=ag-][type=datetime-local]:focus,.ag-theme-material textarea[class^=ag-]:focus,.ag-theme-material-dark input[class^=ag-]:not([type]):focus,.ag-theme-material-dark input[class^=ag-][type=text]:focus,.ag-theme-material-dark input[class^=ag-][type=number]:focus,.ag-theme-material-dark input[class^=ag-][type=tel]:focus,.ag-theme-material-dark input[class^=ag-][type=date]:focus,.ag-theme-material-dark input[class^=ag-][type=datetime-local]:focus,.ag-theme-material-dark textarea[class^=ag-]:focus,.ag-theme-material-auto-dark input[class^=ag-]:not([type]):focus,.ag-theme-material-auto-dark input[class^=ag-][type=text]:focus,.ag-theme-material-auto-dark input[class^=ag-][type=number]:focus,.ag-theme-material-auto-dark input[class^=ag-][type=tel]:focus,.ag-theme-material-auto-dark input[class^=ag-][type=date]:focus,.ag-theme-material-auto-dark input[class^=ag-][type=datetime-local]:focus,.ag-theme-material-auto-dark textarea[class^=ag-]:focus{border-bottom:2px solid;border-bottom-color:var(--ag-material-primary-color);outline:none;box-shadow:none}.ag-theme-material input[class^=ag-]:not([type])::placeholder,.ag-theme-material input[class^=ag-][type=text]::placeholder,.ag-theme-material input[class^=ag-][type=number]::placeholder,.ag-theme-material input[class^=ag-][type=tel]::placeholder,.ag-theme-material input[class^=ag-][type=date]::placeholder,.ag-theme-material input[class^=ag-][type=datetime-local]::placeholder,.ag-theme-material textarea[class^=ag-]::placeholder,.ag-theme-material-dark input[class^=ag-]:not([type])::placeholder,.ag-theme-material-dark input[class^=ag-][type=text]::placeholder,.ag-theme-material-dark input[class^=ag-][type=number]::placeholder,.ag-theme-material-dark input[class^=ag-][type=tel]::placeholder,.ag-theme-material-dark input[class^=ag-][type=date]::placeholder,.ag-theme-material-dark input[class^=ag-][type=datetime-local]::placeholder,.ag-theme-material-dark textarea[class^=ag-]::placeholder,.ag-theme-material-auto-dark input[class^=ag-]:not([type])::placeholder,.ag-theme-material-auto-dark input[class^=ag-][type=text]::placeholder,.ag-theme-material-auto-dark input[class^=ag-][type=number]::placeholder,.ag-theme-material-auto-dark input[class^=ag-][type=tel]::placeholder,.ag-theme-material-auto-dark input[class^=ag-][type=date]::placeholder,.ag-theme-material-auto-dark input[class^=ag-][type=datetime-local]::placeholder,.ag-theme-material-auto-dark textarea[class^=ag-]::placeholder{color:var(--ag-disabled-foreground-color)}.ag-theme-material input[class^=ag-]:not([type]):disabled,.ag-theme-material input[class^=ag-][type=text]:disabled,.ag-theme-material input[class^=ag-][type=number]:disabled,.ag-theme-material input[class^=ag-][type=tel]:disabled,.ag-theme-material input[class^=ag-][type=date]:disabled,.ag-theme-material input[class^=ag-][type=datetime-local]:disabled,.ag-theme-material textarea[class^=ag-]:disabled,.ag-theme-material-dark input[class^=ag-]:not([type]):disabled,.ag-theme-material-dark input[class^=ag-][type=text]:disabled,.ag-theme-material-dark input[class^=ag-][type=number]:disabled,.ag-theme-material-dark input[class^=ag-][type=tel]:disabled,.ag-theme-material-dark input[class^=ag-][type=date]:disabled,.ag-theme-material-dark input[class^=ag-][type=datetime-local]:disabled,.ag-theme-material-dark textarea[class^=ag-]:disabled,.ag-theme-material-auto-dark input[class^=ag-]:not([type]):disabled,.ag-theme-material-auto-dark input[class^=ag-][type=text]:disabled,.ag-theme-material-auto-dark input[class^=ag-][type=number]:disabled,.ag-theme-material-auto-dark input[class^=ag-][type=tel]:disabled,.ag-theme-material-auto-dark input[class^=ag-][type=date]:disabled,.ag-theme-material-auto-dark input[class^=ag-][type=datetime-local]:disabled,.ag-theme-material-auto-dark textarea[class^=ag-]:disabled{border-bottom:1px solid;border-bottom-color:var(--ag-border-color)}.ag-theme-material input[class^=ag-]:not([type]):invalid,.ag-theme-material input[class^=ag-][type=text]:invalid,.ag-theme-material input[class^=ag-][type=number]:invalid,.ag-theme-material input[class^=ag-][type=tel]:invalid,.ag-theme-material input[class^=ag-][type=date]:invalid,.ag-theme-material input[class^=ag-][type=datetime-local]:invalid,.ag-theme-material textarea[class^=ag-]:invalid,.ag-theme-material-dark input[class^=ag-]:not([type]):invalid,.ag-theme-material-dark input[class^=ag-][type=text]:invalid,.ag-theme-material-dark input[class^=ag-][type=number]:invalid,.ag-theme-material-dark input[class^=ag-][type=tel]:invalid,.ag-theme-material-dark input[class^=ag-][type=date]:invalid,.ag-theme-material-dark input[class^=ag-][type=datetime-local]:invalid,.ag-theme-material-dark textarea[class^=ag-]:invalid,.ag-theme-material-auto-dark input[class^=ag-]:not([type]):invalid,.ag-theme-material-auto-dark input[class^=ag-][type=text]:invalid,.ag-theme-material-auto-dark input[class^=ag-][type=number]:invalid,.ag-theme-material-auto-dark input[class^=ag-][type=tel]:invalid,.ag-theme-material-auto-dark input[class^=ag-][type=date]:invalid,.ag-theme-material-auto-dark input[class^=ag-][type=datetime-local]:invalid,.ag-theme-material-auto-dark textarea[class^=ag-]:invalid{border-width:0;border-bottom:1px solid;border-bottom-color:var(--ag-invalid-color);color:var(--ag-invalid-color)}.ag-theme-material .ag-standard-button,.ag-theme-material-dark .ag-standard-button,.ag-theme-material-auto-dark .ag-standard-button{appearance:none;background-color:transparent;border:0;color:var(--ag-material-primary-color);font-family:inherit;font-size:inherit;margin:0;padding:0;text-transform:uppercase}.ag-theme-material .ag-standard-button:disabled,.ag-theme-material-dark .ag-standard-button:disabled,.ag-theme-material-auto-dark .ag-standard-button:disabled{color:var(--ag-disabled-foreground-color);background-color:var(--ag-input-disabled-background-color);border-color:var(--ag-input-disabled-border-color)}.ag-theme-material.ag-dnd-ghost,.ag-theme-material-dark.ag-dnd-ghost,.ag-theme-material-auto-dark.ag-dnd-ghost{font-size:calc(var(--ag-font-size) - 1px);font-weight:600}.ag-theme-material .ag-filter-toolpanel-header,.ag-theme-material-dark .ag-filter-toolpanel-header,.ag-theme-material-auto-dark .ag-filter-toolpanel-header{height:calc(var(--ag-grid-size) * 4)}.ag-theme-material .ag-filter-toolpanel-group-level-0-header,.ag-theme-material-dark .ag-filter-toolpanel-group-level-0-header,.ag-theme-material-auto-dark .ag-filter-toolpanel-group-level-0-header{height:calc(var(--ag-grid-size) * 7)}.ag-theme-material .ag-ltr .ag-filter-apply-panel-button,.ag-theme-material .ag-ltr .ag-advanced-filter-apply-button,.ag-theme-material .ag-ltr .ag-advanced-filter-builder-button,.ag-theme-material-dark .ag-ltr .ag-filter-apply-panel-button,.ag-theme-material-dark .ag-ltr .ag-advanced-filter-apply-button,.ag-theme-material-dark .ag-ltr .ag-advanced-filter-builder-button,.ag-theme-material-auto-dark .ag-ltr .ag-filter-apply-panel-button,.ag-theme-material-auto-dark .ag-ltr .ag-advanced-filter-apply-button,.ag-theme-material-auto-dark .ag-ltr .ag-advanced-filter-builder-button{margin-left:var(--ag-grid-size)}.ag-theme-material .ag-rtl .ag-filter-apply-panel-button,.ag-theme-material .ag-rtl .ag-advanced-filter-apply-button,.ag-theme-material .ag-rtl .ag-advanced-filter-builder-button,.ag-theme-material-dark .ag-rtl .ag-filter-apply-panel-button,.ag-theme-material-dark .ag-rtl .ag-advanced-filter-apply-button,.ag-theme-material-dark .ag-rtl .ag-advanced-filter-builder-button,.ag-theme-material-auto-dark .ag-rtl .ag-filter-apply-panel-button,.ag-theme-material-auto-dark .ag-rtl .ag-advanced-filter-apply-button,.ag-theme-material-auto-dark .ag-rtl .ag-advanced-filter-builder-button{margin-right:var(--ag-grid-size)}.ag-theme-material .ag-layout-auto-height .ag-center-cols-viewport,.ag-theme-material .ag-layout-auto-height .ag-center-cols-container,.ag-theme-material .ag-layout-print .ag-center-cols-viewport,.ag-theme-material .ag-layout-print .ag-center-cols-container,.ag-theme-material-dark .ag-layout-auto-height .ag-center-cols-viewport,.ag-theme-material-dark .ag-layout-auto-height .ag-center-cols-container,.ag-theme-material-dark .ag-layout-print .ag-center-cols-viewport,.ag-theme-material-dark .ag-layout-print .ag-center-cols-container,.ag-theme-material-auto-dark .ag-layout-auto-height .ag-center-cols-viewport,.ag-theme-material-auto-dark .ag-layout-auto-height .ag-center-cols-container,.ag-theme-material-auto-dark .ag-layout-print .ag-center-cols-viewport,.ag-theme-material-auto-dark .ag-layout-print .ag-center-cols-container{min-height:150px}.ag-theme-material .ag-overlay-no-rows-wrapper.ag-layout-auto-height,.ag-theme-material-dark .ag-overlay-no-rows-wrapper.ag-layout-auto-height,.ag-theme-material-auto-dark .ag-overlay-no-rows-wrapper.ag-layout-auto-height{padding-top:60px}.ag-theme-material .ag-picker-field-wrapper:focus-within,.ag-theme-material-dark .ag-picker-field-wrapper:focus-within,.ag-theme-material-auto-dark .ag-picker-field-wrapper:focus-within{box-shadow:0 0 0 1px var(--ag-material-primary-color)}.ag-theme-material .ag-rich-select-list,.ag-theme-material-dark .ag-rich-select-list,.ag-theme-material-auto-dark .ag-rich-select-list{box-shadow:#0003 0 5px 5px -3px,#00000024 0 8px 10px 1px,#0000001f 0 3px 14px 2px}.ag-theme-material .ag-advanced-filter-builder-button-label,.ag-theme-material-dark .ag-advanced-filter-builder-button-label,.ag-theme-material-auto-dark .ag-advanced-filter-builder-button-label{text-transform:uppercase}.ag-theme-material .ag-filter-active .ag-icon-filter,.ag-theme-material-dark .ag-filter-active .ag-icon-filter,.ag-theme-material-auto-dark .ag-filter-active .ag-icon-filter{color:var(--ag-material-accent-color)}.ag-theme-material textarea[class^=ag-chart-title-edit],.ag-theme-material-dark textarea[class^=ag-chart-title-edit],.ag-theme-material-auto-dark textarea[class^=ag-chart-title-edit]{background-color:var(--ag-background-color)}:root{--primary-color-50-parts: #edf4ff;--primary-color-100-parts: #b9d4fc;--primary-color-200-parts: #8ab7fb;--primary-color-300-parts: #5b9af9;--primary-color-400-parts: #3784f7;--primary-color-500-parts: #146ef6;--primary-color-600-parts: #1266f5;--primary-color-700-parts: #0e5bf3;--primary-color-800-parts: #0b51f2;--primary-color-900-parts: #063fef;--primary-color-A100-parts: rgba(20, 110, 246, .04);--primary-color-A200-parts: rgba(20, 110, 246, .08);--primary-color-A300-parts: rgba(20, 110, 246, .16);--primary-color-A400-parts: rgba(20, 110, 246, .24);--primary-color-A500-parts: rgba(20, 110, 246, .32);--primary-color-contrast-50-parts: rgba(0, 0, 0, .87);--primary-color-contrast-100-parts: rgba(0, 0, 0, .87);--primary-color-contrast-200-parts: rgba(0, 0, 0, .87);--primary-color-contrast-300-parts: rgba(0, 0, 0, .87);--primary-color-contrast-400-parts: rgba(255, 255, 255, 1);--primary-color-contrast-500-parts: rgba(255, 255, 255, 1);--primary-color-contrast-600-parts: rgba(255, 255, 255, 1);--primary-color-contrast-700-parts: rgba(255, 255, 255, 1);--primary-color-contrast-800-parts: rgba(255, 255, 255, 1);--primary-color-contrast-900-parts: rgba(255, 255, 255, 1);--primary-color-contrast-A100-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A200-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A300-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A400-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A500-parts: rgba(0, 0, 0, .87);--primary-color-50-parts-rgb: 237, 244, 255;--primary-color-100-parts-rgb: 185, 212, 252;--primary-color-200-parts-rgb: 138, 183, 251;--primary-color-300-parts-rgb: 91, 154, 249;--primary-color-400-parts-rgb: 55, 132, 247;--primary-color-500-parts-rgb: 20, 110, 246;--primary-color-600-parts-rgb: 18, 102, 245;--primary-color-700-parts-rgb: 14, 91, 243;--primary-color-800-parts-rgb: 11, 81, 242;--primary-color-900-parts-rgb: 6, 63, 239;--primary-color-A100-parts-rgb: 20, 110, 246, .04;--primary-color-A200-parts-rgb: 20, 110, 246, .08;--primary-color-A300-parts-rgb: 20, 110, 246, .16;--primary-color-A400-parts-rgb: 20, 110, 246, .24;--primary-color-A500-parts-rgb: 20, 110, 246, .32;--accent-color-50-parts: #e0f2f1;--accent-color-100-parts: #b2dfdb;--accent-color-200-parts: #80cbc4;--accent-color-300-parts: #4db6ac;--accent-color-400-parts: #26a69a;--accent-color-500-parts: #009688;--accent-color-600-parts: #00897b;--accent-color-700-parts: #00796b;--accent-color-800-parts: #00695c;--accent-color-900-parts: #004d40;--accent-color-A100-parts: rgba(0, 150, 136, .04);--accent-color-A200-parts: rgba(0, 150, 136, .08);--accent-color-A300-parts: rgba(0, 150, 136, .16);--accent-color-A400-parts: rgba(0, 150, 136, .24);--accent-color-A500-parts: rgba(0, 150, 136, .32);--accent-color-contrast-50-parts: rgba(0, 0, 0, .87);--accent-color-contrast-100-parts: rgba(0, 0, 0, .87);--accent-color-contrast-200-parts: rgba(0, 0, 0, .87);--accent-color-contrast-300-parts: rgba(0, 0, 0, .87);--accent-color-contrast-400-parts: rgba(0, 0, 0, .87);--accent-color-contrast-500-parts: rgba(255, 255, 255, 1);--accent-color-contrast-600-parts: rgba(255, 255, 255, 1);--accent-color-contrast-700-parts: rgba(255, 255, 255, 1);--accent-color-contrast-800-parts: rgba(255, 255, 255, 1);--accent-color-contrast-900-parts: rgba(255, 255, 255, 1);--accent-color-contrast-A100-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A200-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A300-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A400-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A500-parts: rgba(0, 0, 0, .87);--accent-color-50-parts-rgb: 224, 242, 241;--accent-color-100-parts-rgb: 178, 223, 219;--accent-color-200-parts-rgb: 128, 203, 196;--accent-color-300-parts-rgb: 77, 182, 172;--accent-color-400-parts-rgb: 38, 166, 154;--accent-color-500-parts-rgb: 0, 150, 136;--accent-color-600-parts-rgb: 0, 137, 123;--accent-color-700-parts-rgb: 0, 121, 107;--accent-color-800-parts-rgb: 0, 105, 92;--accent-color-900-parts-rgb: 0, 77, 64;--accent-color-A100-parts-rgb: 0, 150, 136, .04;--accent-color-A200-parts-rgb: 0, 150, 136, .08;--accent-color-A300-parts-rgb: 0, 150, 136, .16;--accent-color-A400-parts-rgb: 0, 150, 136, .24;--accent-color-A500-parts-rgb: 0, 150, 136, .32;--warn-color-50-parts: #fceee3;--warn-color-100-parts: #f8d4b9;--warn-color-200-parts: #f4b78b;--warn-color-300-parts: #ef9a5d;--warn-color-400-parts: #eb843a;--warn-color-500-parts: #e86e17;--warn-color-600-parts: #e56614;--warn-color-700-parts: #e25b11;--warn-color-800-parts: #de510d;--warn-color-900-parts: #d83f07;--warn-color-A100-parts: rgba(232, 110, 23, .04);--warn-color-A200-parts: rgba(232, 110, 23, .08);--warn-color-A300-parts: rgba(232, 110, 23, .16);--warn-color-A400-parts: rgba(232, 110, 23, .24);--warn-color-A500-parts: rgba(232, 110, 23, .32);--warn-color-contrast-50-parts: rgba(0, 0, 0, .87);--warn-color-contrast-100-parts: rgba(0, 0, 0, .87);--warn-color-contrast-200-parts: rgba(0, 0, 0, .87);--warn-color-contrast-300-parts: rgba(0, 0, 0, .87);--warn-color-contrast-400-parts: rgba(0, 0, 0, .87);--warn-color-contrast-500-parts: rgba(0, 0, 0, .87);--warn-color-contrast-600-parts: rgba(0, 0, 0, .87);--warn-color-contrast-700-parts: rgba(0, 0, 0, .87);--warn-color-contrast-800-parts: rgba(0, 0, 0, .87);--warn-color-contrast-900-parts: rgba(255, 255, 255, 1);--warn-color-contrast-A100-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A200-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A300-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A400-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A500-parts: rgba(0, 0, 0, .87);--warn-color-50-parts-rgb: 252, 238, 227;--warn-color-100-parts-rgb: 248, 212, 185;--warn-color-200-parts-rgb: 244, 183, 139;--warn-color-300-parts-rgb: 239, 154, 93;--warn-color-400-parts-rgb: 235, 132, 58;--warn-color-500-parts-rgb: 232, 110, 23;--warn-color-600-parts-rgb: 229, 102, 20;--warn-color-700-parts-rgb: 226, 91, 17;--warn-color-800-parts-rgb: 222, 81, 13;--warn-color-900-parts-rgb: 216, 63, 7;--warn-color-A100-parts-rgb: 232, 110, 23, .04;--warn-color-A200-parts-rgb: 232, 110, 23, .08;--warn-color-A300-parts-rgb: 232, 110, 23, .16;--warn-color-A400-parts-rgb: 232, 110, 23, .24;--warn-color-A500-parts-rgb: 232, 110, 23, .32;--info-color-50-parts: #edf4ff;--info-color-100-parts: #b9d4fc;--info-color-200-parts: #8ab7fb;--info-color-300-parts: #5b9af9;--info-color-400-parts: #3784f7;--info-color-500-parts: #146ef6;--info-color-600-parts: #1266f5;--info-color-700-parts: #0e5bf3;--info-color-800-parts: #0b51f2;--info-color-900-parts: #063fef;--info-color-A100-parts: rgba(20, 110, 246, .04);--info-color-A200-parts: rgba(20, 110, 246, .08);--info-color-A300-parts: rgba(20, 110, 246, .16);--info-color-A400-parts: rgba(20, 110, 246, .24);--info-color-A500-parts: rgba(20, 110, 246, .32);--info-color-contrast-50-parts: rgba(0, 0, 0, .87);--info-color-contrast-100-parts: rgba(0, 0, 0, .87);--info-color-contrast-200-parts: rgba(0, 0, 0, .87);--info-color-contrast-300-parts: rgba(0, 0, 0, .87);--info-color-contrast-400-parts: rgba(255, 255, 255, 1);--info-color-contrast-500-parts: rgba(255, 255, 255, 1);--info-color-contrast-600-parts: rgba(255, 255, 255, 1);--info-color-contrast-700-parts: rgba(255, 255, 255, 1);--info-color-contrast-800-parts: rgba(255, 255, 255, 1);--info-color-contrast-900-parts: rgba(255, 255, 255, 1);--info-color-contrast-A100-parts: rgba(0, 0, 0, .87);--info-color-contrast-A200-parts: rgba(0, 0, 0, .87);--info-color-contrast-A300-parts: rgba(0, 0, 0, .87);--info-color-contrast-A400-parts: rgba(0, 0, 0, .87);--info-color-contrast-A500-parts: rgba(0, 0, 0, .87);--info-color-50-parts-rgb: 237, 244, 255;--info-color-100-parts-rgb: 185, 212, 252;--info-color-200-parts-rgb: 138, 183, 251;--info-color-300-parts-rgb: 91, 154, 249;--info-color-400-parts-rgb: 55, 132, 247;--info-color-500-parts-rgb: 20, 110, 246;--info-color-600-parts-rgb: 18, 102, 245;--info-color-700-parts-rgb: 14, 91, 243;--info-color-800-parts-rgb: 11, 81, 242;--info-color-900-parts-rgb: 6, 63, 239;--info-color-A100-parts-rgb: 20, 110, 246, .04;--info-color-A200-parts-rgb: 20, 110, 246, .08;--info-color-A300-parts-rgb: 20, 110, 246, .16;--info-color-A400-parts-rgb: 20, 110, 246, .24;--info-color-A500-parts-rgb: 20, 110, 246, .32;--success-color-50-parts: #e7f0e6;--success-color-100-parts: #c4dac1;--success-color-200-parts: #9cc198;--success-color-300-parts: #74a86e;--success-color-400-parts: #57954f;--success-color-500-parts: #398230;--success-color-600-parts: #337a2b;--success-color-700-parts: #2c6f24;--success-color-800-parts: #24651e;--success-color-900-parts: #175213;--success-color-A100-parts: rgba(57, 130, 48, .04);--success-color-A200-parts: rgba(57, 130, 48, .08);--success-color-A300-parts: rgba(57, 130, 48, .16);--success-color-A400-parts: rgba(57, 130, 48, .24);--success-color-A500-parts: rgba(57, 130, 48, .32);--success-color-contrast-50-parts: rgba(0, 0, 0, .87);--success-color-contrast-100-parts: rgba(0, 0, 0, .87);--success-color-contrast-200-parts: rgba(0, 0, 0, .87);--success-color-contrast-300-parts: rgba(0, 0, 0, .87);--success-color-contrast-400-parts: rgba(0, 0, 0, .87);--success-color-contrast-500-parts: rgba(255, 255, 255, 1);--success-color-contrast-600-parts: rgba(255, 255, 255, 1);--success-color-contrast-700-parts: rgba(255, 255, 255, 1);--success-color-contrast-800-parts: rgba(255, 255, 255, 1);--success-color-contrast-900-parts: rgba(255, 255, 255, 1);--success-color-contrast-A100-parts: rgba(0, 0, 0, .87);--success-color-contrast-A200-parts: rgba(0, 0, 0, .87);--success-color-contrast-A300-parts: rgba(0, 0, 0, .87);--success-color-contrast-A400-parts: rgba(0, 0, 0, .87);--success-color-contrast-A500-parts: rgba(0, 0, 0, .87);--success-color-50-parts-rgb: 231, 240, 230;--success-color-100-parts-rgb: 196, 218, 193;--success-color-200-parts-rgb: 156, 193, 152;--success-color-300-parts-rgb: 116, 168, 110;--success-color-400-parts-rgb: 87, 149, 79;--success-color-500-parts-rgb: 57, 130, 48;--success-color-600-parts-rgb: 51, 122, 43;--success-color-700-parts-rgb: 44, 111, 36;--success-color-800-parts-rgb: 36, 101, 30;--success-color-900-parts-rgb: 23, 82, 19;--success-color-A100-parts-rgb: 57, 130, 48, .04;--success-color-A200-parts-rgb: 57, 130, 48, .08;--success-color-A300-parts-rgb: 57, 130, 48, .16;--success-color-A400-parts-rgb: 57, 130, 48, .24;--success-color-A500-parts-rgb: 57, 130, 48, .32;--error-color-50-parts: #fae5e4;--error-color-100-parts: #f3bdba;--error-color-200-parts: #eb928d;--error-color-300-parts: #e3665f;--error-color-400-parts: #dd453c;--error-color-500-parts: #d7241a;--error-color-600-parts: #d32017;--error-color-700-parts: #cd1b13;--error-color-800-parts: #c7160f;--error-color-900-parts: #be0d08;--error-color-A100-parts: rgba(215, 36, 26, .04);--error-color-A200-parts: rgba(215, 36, 26, .08);--error-color-A300-parts: rgba(215, 36, 26, .16);--error-color-A400-parts: rgba(215, 36, 26, .24);--error-color-A500-parts: rgba(215, 36, 26, .32);--error-color-contrast-50-parts: rgba(0, 0, 0, .87);--error-color-contrast-100-parts: rgba(0, 0, 0, .87);--error-color-contrast-200-parts: rgba(0, 0, 0, .87);--error-color-contrast-300-parts: rgba(0, 0, 0, .87);--error-color-contrast-400-parts: rgba(0, 0, 0, .87);--error-color-contrast-500-parts: rgba(255, 255, 255, 1);--error-color-contrast-600-parts: rgba(255, 255, 255, 1);--error-color-contrast-700-parts: rgba(255, 255, 255, 1);--error-color-contrast-800-parts: rgba(255, 255, 255, 1);--error-color-contrast-900-parts: rgba(255, 255, 255, 1);--error-color-contrast-A100-parts: rgba(0, 0, 0, .87);--error-color-contrast-A200-parts: rgba(0, 0, 0, .87);--error-color-contrast-A300-parts: rgba(0, 0, 0, .87);--error-color-contrast-A400-parts: rgba(0, 0, 0, .87);--error-color-contrast-A500-parts: rgba(0, 0, 0, .87);--error-color-50-parts-rgb: 250, 229, 228;--error-color-100-parts-rgb: 243, 189, 186;--error-color-200-parts-rgb: 235, 146, 141;--error-color-300-parts-rgb: 227, 102, 95;--error-color-400-parts-rgb: 221, 69, 60;--error-color-500-parts-rgb: 215, 36, 26;--error-color-600-parts-rgb: 211, 32, 23;--error-color-700-parts-rgb: 205, 27, 19;--error-color-800-parts-rgb: 199, 22, 15;--error-color-900-parts-rgb: 190, 13, 8;--error-color-A100-parts-rgb: 215, 36, 26, .04;--error-color-A200-parts-rgb: 215, 36, 26, .08;--error-color-A300-parts-rgb: 215, 36, 26, .16;--error-color-A400-parts-rgb: 215, 36, 26, .24;--error-color-A500-parts-rgb: 215, 36, 26, .32;--neutral-color-50-parts: #e9e9e9;--neutral-color-100-parts: #dddddd;--neutral-color-200-parts: #cccccc;--neutral-color-300-parts: #b0b0b0;--neutral-color-400-parts: #909090;--neutral-color-500-parts: #515151;--neutral-color-600-parts: #424242;--neutral-color-700-parts: #333333;--neutral-color-800-parts: #212121;--neutral-color-900-parts: #141414;--neutral-color-A100-parts: rgba(81, 81, 81, .04);--neutral-color-A200-parts: rgba(81, 81, 81, .08);--neutral-color-A300-parts: rgba(81, 81, 81, .16);--neutral-color-A400-parts: rgba(81, 81, 81, .24);--neutral-color-A500-parts: rgba(81, 81, 81, .32);--neutral-color-contrast-50-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-100-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-200-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-300-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-400-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-500-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-600-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-700-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-800-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-900-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-A100-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A200-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A300-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A400-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A500-parts: rgba(0, 0, 0, .87);--neutral-color-50-parts-rgb: 233, 233, 233;--neutral-color-100-parts-rgb: 221, 221, 221;--neutral-color-200-parts-rgb: 204, 204, 204;--neutral-color-300-parts-rgb: 176, 176, 176;--neutral-color-400-parts-rgb: 144, 144, 144;--neutral-color-500-parts-rgb: 81, 81, 81;--neutral-color-600-parts-rgb: 66, 66, 66;--neutral-color-700-parts-rgb: 51, 51, 51;--neutral-color-800-parts-rgb: 33, 33, 33;--neutral-color-900-parts-rgb: 20, 20, 20;--neutral-color-A100-parts-rgb: 81, 81, 81, .04;--neutral-color-A200-parts-rgb: 81, 81, 81, .08;--neutral-color-A300-parts-rgb: 81, 81, 81, .16;--neutral-color-A400-parts-rgb: 81, 81, 81, .24;--neutral-color-A500-parts-rgb: 81, 81, 81, .32}.filter-panel{border-radius:8px!important;background-color:#fafafa;border:none;margin:0 0 24px;padding:20px}.filter-panel p{font-family:Poppins!important;font-style:normal!important;font-weight:500!important;font-size:16px!important;line-height:24px!important;margin-top:0!important}.filter-panel .filter-panel-select-container{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.ag-theme-material{width:100%;justify-content:center!important;--ag-font-size: 16px;--ag-font-family: \"Poppins\";--ag-header-background-color: #FAFAFA;--ag-background-color: #FFFFFF;--ag-borders: solid 1px #E9E9E9;--ag-wrapper-border-radius: 8px;--ag-cell-horizontal-padding: 16px;--ag-border-color: #E9E9E9;--ag-material-primary-color: var(--primary-color-500-parts) !important;--ag-material-accent-color: var(--primary-color-300-parts) !important;--ag-icon-size: 18px;--ag-header-cell-hover-background-color: #FFFFFF;--ag-row-hover-color: #FFFFFF;--ag-column-hover-color: #FFFFFF}@media only screen and (max-width: 752px){.ag-theme-material{--ag-cell-horizontal-padding: 8px;--ag-font-size: 12px}}.ag-theme-material ::ng-deep .ag-root-wrapper{border-left:solid 1px #E9E9E9!important;border-top:solid 1px #E9E9E9!important;border-bottom:solid 1px #E9E9E9!important}.ag-theme-material ::ng-deep .ag-cell-focus{border-color:var(--primary-color-300-parts)!important;border-width:3px!important}.ag-theme-material ::ng-deep .ag-header ::ng-deep .ag-pinned-left-header,.ag-theme-material ::ng-deep .ag-body-viewport ::ng-deep .ag-pinned-left-cols-container{position:relative;z-index:1;-webkit-box-shadow:2px 0px 2px 0px rgba(42,42,42,.1);box-shadow:2px 0 2px #2a2a2a1a}.ag-theme-material ::ng-deep .ag-checkbox{padding-right:16px!important;padding-left:16px!important}.ag-theme-material ::ng-deep .ag-body-horizontal-scroll:not(.ag-scrollbar-invisible),.ag-theme-material ::ng-deep .ag-horizontal-left-spacer:not(.ag-scroller-corner){border-right:none}.ag-theme-material ::ng-deep .ag-body-horizontal-scroll-viewport,.ag-theme-material ::ng-deep .ag-body-vertical-scroll-viewport{overflow:hidden}.ag-theme-material ::ng-deep .ag-horizontal-left-spacer{overflow-x:hidden}.ag-theme-material ::ng-deep .ag-header-cell{font-size:16px!important;font-weight:400;color:#0009!important}@media only screen and (max-width: 752px){.ag-theme-material ::ng-deep .ag-header-cell{font-size:12px!important}}.ag-theme-material ::ng-deep .ag-cell{font-weight:400!important;display:flex!important;flex-direction:column!important}.ag-theme-material ::ng-deep .ag-header-icon.ag-header-label-icon.ag-filter-icon{display:none!important}.ag-theme-material ::ng-deep .ag-center-cols-viewport,.ag-theme-material ::ng-deep .ag-center-cols-viewport .ag-center-cols-container{min-height:53px!important}.ag-theme-material ::ng-deep .ag-overlay-wrapper.ag-overlay-no-rows-wrapper{font-size:14px;font-weight:500;color:#0009}.ag-theme-material.no-rows ::ng-deep .ag-body-horizontal-scroll{display:none!important}.ag-theme-material.no-rows ::ng-deep .ag-root-wrapper{border:none!important}.ag-theme-material.no-rows ::ng-deep .ag-header{border-top:solid 1px #E9E9E9;border-left:solid 1px #E9E9E9;border-right:solid 1px #E9E9E9;border-top-left-radius:8px;border-top-right-radius:8px}.ag-theme-material:hover ::ng-deep .ag-body-vertical-scroll-viewport{overflow-y:auto}.ag-theme-material:hover ::ng-deep .ag-body-horizontal-scroll-viewport{overflow-x:auto}.dense-4{--mat-form-field-container-height: 40px;--mat-form-field-filled-label-display: none;--mat-form-field-container-vertical-padding: 8px;--mat-form-field-filled-with-label-container-padding-top: 8px;--mat-form-field-filled-with-label-container-padding-bottom: 8px}.search-icon{font-weight:700;font-size:20px;color:#000000de;opacity:.87}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mat-mdc-form-field-subscript-wrapper{display:none}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mat-mdc-text-field-wrapper{border-radius:10px}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{padding-right:8px!important}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#fafafa!important}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:#000000de;caret-color:#000000de;opacity:.87;letter-spacing:normal}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled .mdc-line-ripple:before,:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled .mdc-line-ripple:after{border:none!important}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled .mat-mdc-floating-label:not(.mdc-floating-label--float-above){display:block!important}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled .mat-mdc-floating-label:not(.mdc-floating-label--float-above) .search-label{color:#000000de;opacity:.6;font-family:Poppins;letter-spacing:normal}:host::ng-deep mat-form-field.sof-form-field.table-search-field.mat-focused .mat-mdc-text-field-wrapper{outline:3px solid var(--primary-color-300-parts);outline-offset:2px}:host::ng-deep mat-form-field.sof-form-field.table-search-field.mat-focused .mat-mdc-text-field-wrapper i.search-icon{color:var(--primary-color-500-parts)}::ng-deep .custom-paginator{width:100%;justify-content:flex-start;align-items:flex-start;display:inline-flex;height:40px!important;margin-top:24px}::ng-deep .custom-paginator .first-section{flex:1 1 0;align-self:stretch;justify-content:flex-start;align-items:center!important;gap:16px!important;display:flex}::ng-deep .custom-paginator .first-section .button-part-1{height:40px!important;align-self:center;padding-left:16px;background:#fafafa;border-radius:8px;overflow:unset!important;justify-content:center;align-items:center;display:inline-flex;border:none;gap:16px;border:2px solid transparent}::ng-deep .custom-paginator .first-section .button-part-1:hover,::ng-deep .custom-paginator .first-section .button-part-1:focus,::ng-deep .custom-paginator .first-section .button-part-1:active{border-radius:10px;justify-content:center;display:inline-flex;border-color:var(--primary-color-500-parts);height:40px!important;align-self:center;padding-left:16px;background:#fafafa;overflow:unset!important;align-items:center;gap:16px}::ng-deep .custom-paginator .first-section .field{display:flex;flex-direction:row;gap:16px;align-items:center}::ng-deep .custom-paginator .mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{align-items:center!important;width:100px!important}::ng-deep .custom-paginator .second-section{justify-content:flex-start;align-items:center;gap:16px;display:flex}::ng-deep .custom-paginator .page-select{height:100%;padding:8px 16px;background:#fafafa;border-radius:8px;overflow:hidden;justify-content:flex-start;align-items:center;gap:16px;display:inline-flex}::ng-deep .custom-paginator .select-icon{width:100%;position:relative;height:20px!important;font-size:20px!important}::ng-deep .custom-paginator .pageChangeText{color:#000000de;font-size:16px;font-family:Poppins;font-weight:400;word-wrap:break-word}::ng-deep .custom-paginator .mat-select{color:#000000de;font-size:16px;font-family:Poppins;font-weight:400;word-wrap:break-word}::ng-deep .custom-paginator .go-to-page{width:fit-content;align-self:stretch;justify-content:flex-start;align-items:center;gap:16px;display:flex}::ng-deep .custom-paginator .go-to-page .outer-box{height:40px;flex-direction:column;justify-content:flex-start;align-items:flex-start;display:inline-flex}::ng-deep .custom-paginator .go-to-page .field{display:flex;flex-direction:row;gap:16px;align-items:center}::ng-deep .custom-paginator .go-to-page .button-part{align-self:center;flex:1 1 0;padding:8px 16px;background:#fafafa;border-radius:8px;overflow:unset!important;justify-content:center;align-items:flex-start;gap:16px;display:inline-flex;border:2px solid transparent}::ng-deep .custom-paginator .go-to-page .button-part:hover,::ng-deep .custom-paginator .go-to-page .button-part:focus,::ng-deep .custom-paginator .go-to-page .button-part:active{align-self:center;flex:1 1 0;padding:8px 16px;background:#fafafa;border-radius:10px;overflow:unset!important;justify-content:center;align-items:flex-start;gap:16px;display:inline-flex;border-color:var(--primary-color-500-parts)}::ng-deep .custom-paginator .go-to-page .current-page{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:8px;font-size:16px!important;font-family:Poppins!important}::ng-deep .custom-paginator .go-to-page .page{position:relative}::ng-deep .custom-paginator .go-to-page .of-page{position:relative;color:#0009}::ng-deep .custom-paginator .mat-mdc-select-value{font-size:16px!important;font-family:Poppins!important}::ng-deep .custom-paginator .mat-form-field-appearance-outline .mat-mdc-select-arrow-wrapper{transform:none!important}::ng-deep .custom-paginator .mat-mdc-select-arrow{display:none!important}::ng-deep .custom-paginator .mat-form-field-underline{display:none!important}::ng-deep .custom-paginator .mdc-line-ripple{display:none!important}::ng-deep .custom-paginator .mat-mdc-text-field-wrapper{background-color:#fff!important;height:40px!important}::ng-deep .custom-paginator .mat-mdc-text-field-wrapper .mat-mdc-form-field-focus-overlay{display:none!important}::ng-deep .page-option mat-pseudo-checkbox{display:none!important}::ng-deep .mat-mdc-select-panel{scrollbar-width:thin!important;background-color:#fafafa!important;box-shadow:0 4px 8px 0 var(--neutral-color-A300-parts)!important;border-radius:8px!important;min-width:82px!important}.table-filter-select ::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}.loading-container{display:flex;align-items:center;justify-content:center;width:100%}::ng-deep .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--primary-color-500-parts)!important}\n"], dependencies: [{ kind: "directive", type: i1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i1.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i2.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "columnMenu", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipShowMode", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "components", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "quickFilterText", "cacheQuickFilter", "excludeHiddenColumnsFromQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "applyQuickFilterBeforePivotOrAgg", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "advancedFilterModel", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "suppressAdvancedFilterEval", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "enableChartToolPanelsButton", "suppressChartToolPanelsButton", "chartToolPanelsDef", "chartMenuItems", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotMaxGeneratedColumns", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDuration", "cellFlashDelay", "cellFadeDuration", "cellFadeDelay", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "suppressGroupMaintainValueType", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupTotalRow", "grandTotalRow", "suppressStickyTotalRow", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideInfiniteScroll", "suppressServerSideFullWidthLoadingRow", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideEnableClientSideSort", "serverSideOnlyRefreshFilteredGroups", "serverSideFilterAllLevels", "serverSideSortOnServer", "serverSideFilterOnServer", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressHeaderFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "functionsPassive", "enableGroupEdit", "initialState", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "columnMenuVisibleChanged", "contextMenuVisibleChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "rangeDeleteStart", "rangeDeleteEnd", "fillStart", "fillEnd", "filterOpened", "filterChanged", "filterModified", "advancedFilterBuilderVisibleChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "gridPreDestroyed", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pivotMaxColumnsExceeded", "pinnedRowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i6.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i11.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i12.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] }); }
469
469
  }
470
470
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: SofTableComponent, decorators: [{
471
471
  type: Component,
472
- args: [{ selector: 'sof-table', template: "<div \r\n [fxShow]=\"isGridDataRendered()\"\r\n fxLayoutGap=\"16px\" m-b-24>\r\n @if (enableFilter && colFilters.length) {\r\n <button \r\n (click)=\"toggleFilterPanel()\" \r\n mat-flat-button class=\"sof-button-v2\"\r\n theme=\"neutral\" \r\n [attr.emphasis]=\"filterOpenState ? 'solid' : filterCount === 0 ? 'secondary' : 'contained'\"\r\n [matBadge]=\"filterCount\"\r\n matBadgePosition=\"after\"\r\n [matBadgeHidden]=\"filterCount === 0 ? true : false\">\r\n <i class=\"ph ph-bold ph-sliders-horizontal\" aria-hidden=\"true\"></i>\r\n {{'armature.sof-table.filter' | translate}}\r\n </button>\r\n }\r\n @if (enableSearch) {\r\n <mat-form-field class=\"sof-form-field table-search-field dense-4\" fxFlex=\"auto\">\r\n <span matPrefix>\r\n <i class=\"ph-bold ph-magnifying-glass search-icon\" aria-hidden=\"true\"></i>\r\n </span>\r\n <mat-label class=\"search-label\">{{'armature.sof-table.search' | translate}}</mat-label>\r\n <input \r\n (input)=\"onSearchTextChanged()\" \r\n #gridSearchTextInput matInput type=\"text\" id=\"gridSearchTextInput\"\r\n [attr.aria-label]=\"'armature.sof-table.screen-reader.search-filter-description' | translate\"/>\r\n </mat-form-field>\r\n }\r\n @if (enableColumnOptions) {\r\n <button \r\n (click)=\"openColumnOptions()\"\r\n mat-flat-button class=\"sof-button-icon-v2\" \r\n theme=\"neutral\" emphasis=\"secondary\" id=\"open-column-options\"\r\n [attr.aria-label]=\"'armature.sof-table.screen-reader.column-options-btn' | translate\"\r\n [matTooltip]=\"'armature.sof-table.screen-reader.column-options-btn' | translate\">\r\n <i class=\"ph-bold ph-pause\" aria-hidden=\"true\"></i>\r\n </button>\r\n }\r\n @if(enableExport) {\r\n <button \r\n (click)=\"exportFilteredRowData()\"\r\n mat-flat-button class=\"sof-button-icon-v2\" \r\n theme=\"neutral\" emphasis=\"secondary\" id=\"export-table\"\r\n [attr.aria-label]=\"'armature.sof-table.screen-reader.export-table' | translate\"\r\n [matTooltip]=\"'armature.sof-table.screen-reader.export-table' | translate\">\r\n <i class=\"ph-bold ph-export\" aria-hidden=\"true\"></i>\r\n </button>\r\n }\r\n <ng-content select=\"[sof-table-right-buttons]\"></ng-content>\r\n <!-- \r\n Only inject <button>'s inside an <ng-container sof-table-right-buttons>\r\n ... \r\n <ng-container sof-table-right-buttons>\r\n <button \r\n (click)=\"anyFunction()\"\r\n mat-flat-button class=\"sof-button-icon-v2\" \r\n theme=\"neutral\" emphasis=\"secondary\" aria-label=\"any button\"\r\n matTooltip=\"any button\">\r\n <i class=\"ph-bold ph-acorn\" aria-hidden=\"true\"></i>\r\n </button>\r\n </ng-container>\r\n ... \r\n note: make sure buttons have the following attributes to match others =\r\n `mat-flat-button class=\"sof-button-icon-v2\" theme=\"neutral\" emphasis=\"secondary\"`\r\n * remember to add aria-label and tooltip for icon button\r\n -->\r\n</div>\r\n\r\n<div #ariaResultsCount class=\"sr-only\" aria-live=\"assertive\"></div>\r\n\r\n@if (isGridDataRendered() && filterOpenState) {\r\n <fieldset \r\n class=\"filter-panel\" role=\"region\"\r\n [attr.aria-label]=\"'armature.sof-table.screen-reader.select-filters-description' | translate\">\r\n <p>\r\n <i class=\"ph ph-bold ph-sliders-horizontal\" aria-hidden=\"true\"></i>\r\n <span class=\"m-l-8\">{{'armature.sof-table.filter' | translate}}</span>\r\n </p>\r\n <div class=\"filter-panel-select-container m-v-20\">\r\n @for (colFilter of colFilters; let i = $index; track i) {\r\n <mat-form-field appearance=\"outline\" class=\"sof-form-field table-filter-select\">\r\n <mat-label>{{colFilter.label}}</mat-label>\r\n <mat-select \r\n [(ngModel)]=\"filterSelections[i]\" \r\n multiple \r\n id=\"filterDropdown{{i}}\"\r\n placeholder=\"{{'armature.sof-table.all' | translate}}\" disableRipple=\"true\">\r\n @for (colOption of colFilter.options; track $index) {\r\n <mat-option [value]=\"colOption\">\r\n {{colOption}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n </div>\r\n <div fxLayout=\"row\">\r\n <div fxFlex=\"50%\">\r\n <button \r\n (click)=\"clearFilters()\" [disabled]=\"hasEmptyFilters()\" \r\n mat-flat-button class=\"sof-button-v2\"\r\n theme=\"neutral\" emphasis=\"floating\"\r\n id=\"tableFilterClear\">\r\n {{'armature.sof-table.reset' | translate}}\r\n </button>\r\n </div>\r\n <div fxFlex=\"50%\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"2%\" fxLayoutAlign=\"flex-end\">\r\n <div fxFlex=\"0 1 auto\">\r\n <button \r\n (click)=\"cancelFilterChanges()\" mat-flat-button class=\"sof-button-v2\" \r\n id=\"tableFilterCancel\" theme=\"neutral\" emphasis=\"secondary\">\r\n {{'armature.sof-table.cancel' | translate}}\r\n </button>\r\n </div>\r\n <div fxFlex=\"0 1 auto\">\r\n <button \r\n (click)=\"applyFilters()\" mat-flat-button class=\"sof-button-v2\"\r\n id=\"tableFilterApply\" theme=\"primary\" emphasis=\"solid\">\r\n {{'armature.sof-table.results' | translate}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </fieldset>\r\n}\r\n\r\n<ag-grid-angular \r\n [fxShow]=\"isGridDataRendered()\"\r\n (gridReady)=\"onGridReady($event)\" \r\n (firstDataRendered)=\"onFirstDataRendered()\"\r\n (filterChanged)=\"onFilterChanged()\"\r\n (paginationChanged)=\"changePageSize($event)\" \r\n [rowData]=\"rowData\" \r\n [columnDefs]=\"colDefs\" \r\n [defaultColDef]=\"defaultColDef\" \r\n [pagination]=\"true\" \r\n [suppressPaginationPanel]=\"true\"\r\n [paginationPageSizeSelector]=\"paginationPageSizeSelector\" \r\n [paginationPageSize]=\"paginationPageSize\"\r\n [headerHeight]=\"rowHeight\" \r\n [rowHeight]=\"rowHeight\" \r\n [domLayout]=\"'autoHeight'\" \r\n [tooltipShowDelay]=\"tooltipShowDelay\"\r\n [overlayNoRowsTemplate]=\"'armature.sof-table.no-rows' | translate\"\r\n [class.no-rows]=\"!totalLength\"\r\n class=\"ag-theme-material\">\r\n</ag-grid-angular>\r\n\r\n<div \r\n [fxShow]=\"isGridDataRendered()\"\r\n class=\"custom-paginator\">\r\n <div class=\"first-section\">\r\n <button class=\"button-part-1\" type=\"button\">\r\n <mat-select \r\n #pageSizeSelect\r\n id=\"pageSizeInput\" name=\"pageSizeInput\" \r\n [(value)]=\"paginationPageSize\" disableRipple=\"true\">\r\n @for (size of paginationPageSizeSelector; let i = $index; track i) {\r\n <mat-option \r\n class=\"page-option\" id=\"size{{i}}\"\r\n [value]=\"paginationPageSizeSelector[i]\">\r\n {{size}}\r\n </mat-option>\r\n }\r\n <mat-select-trigger>\r\n <div class=\"field\">\r\n <span class=\"current-page\">\r\n <span class=\"page\">{{paginationPageSize}}</span>\r\n </span>\r\n <span class=\"select-icon\">\r\n <i [class]=\"'ph-bold ph-caret-' + (pageSizeSelect.panelOpen ? 'up':'down')\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </mat-select-trigger>\r\n </mat-select>\r\n </button>\r\n <span class=\"pageChangeText\">\r\n {{pageChangeText}} {{'armature.sof-table.of' | translate}} {{totalLength}}\r\n </span>\r\n </div>\r\n <div class=\"go-to-page\">\r\n <div class=\"outer-box\">\r\n <button class=\"button-part\" type=\"button\">\r\n <mat-select \r\n #pageNumberSelect\r\n (selectionChange)=\"onPageNumberChange($event.value)\"\r\n [(value)]=\"currentPage\" \r\n id=\"pageSelelctor\" name=\"pageSelector\" disableRipple=\"true\">\r\n @for (page of pageSelector; track $index) {\r\n <mat-option [value]=\"page\" class=\"page-option\">\r\n <span class=\"current-page\">\r\n <span class=\"page\">{{page}}</span>\r\n </span>\r\n </mat-option>\r\n }\r\n <mat-select-trigger>\r\n <div class=\"field\">\r\n <span class=\"current-page\">\r\n <span class=\"page\">{{currentPage}}</span>\r\n <span class=\"of-page\"> {{'armature.sof-table.of' | translate}} {{totalNumberOfPages}} </span>\r\n </span>\r\n <span class=\"select-icon\">\r\n <i [class]=\"'ph-bold ph-caret-' + (pageNumberSelect.panelOpen ? 'up':'down')\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </mat-select-trigger>\r\n </mat-select>\r\n </button>\r\n </div>\r\n <nav class=\"second-section\">\r\n <button \r\n (click)=\"previousPage()\"\r\n id=\"prev-button\" mat-flat-button class=\"sof-button-icon-v2\" theme=\"neutral\" emphasis=\"secondary\"\r\n [disabled]=\"currentPage === 1\" \r\n [attr.aria-label]=\"'screen-reader.pagination.previous' | translate\">\r\n <i class=\"ph-bold ph-caret-left\" aria-hidden=\"true\"></i>\r\n </button>\r\n <button \r\n (click)=\"nextPage()\" \r\n id=\"next-button\" mat-flat-button class=\"sof-button-icon-v2\" theme=\"neutral\" emphasis=\"secondary\"\r\n [disabled]=\"currentPage === totalNumberOfPages\"\r\n [attr.aria-label]=\"'screen-reader.pagination.next' | translate\">\r\n <i class=\"ph-bold ph-caret-right\" aria-hidden=\"true\"></i>\r\n </button>\r\n </nav>\r\n </div>\r\n</div>\r\n\r\n@if (!isGridDataRendered()) {\r\n <div class=\"loading-container\">\r\n <mat-progress-spinner color=\"primary\" mode=\"indeterminate\"/>\r\n </div>\r\n}\r\n", styles: ["@font-face{font-family:agGridMaterial;src:url(data:font/woff2;charset=utf-8;base64,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);font-weight:400;font-style:normal}.ag-theme-material,.ag-theme-material-dark,.ag-theme-material-auto-dark{--ag-material-primary-color: #3f51b5;--ag-material-accent-color: #ff4081;--ag-foreground-color: rgba(0, 0, 0, .87);--ag-secondary-foreground-color: rgba(0, 0, 0, .54);--ag-disabled-foreground-color: rgba(0, 0, 0, .38);--ag-background-color: #fff;--ag-header-background-color: #fff;--ag-tooltip-background-color: #fff;--ag-subheader-background-color: #eee;--ag-subheader-toolbar-background-color: rgba(238, 238, 238, .5);--ag-header-cell-hover-background-color: #f2f2f2;--ag-chip-background-color: #e2e2e2;--ag-range-selection-background-color: rgba(122, 134, 203, .1);--ag-range-selection-background-color-2: rgba(122, 134, 203, .19);--ag-range-selection-background-color-3: rgba(122, 134, 203, .27);--ag-range-selection-background-color-4: rgba(122, 134, 203, .34);--ag-range-selection-highlight-color: #fce4ec;--ag-row-hover-color: #fafafa;--ag-column-hover-color: #fafafa;--ag-control-panel-background-color: #fafafa;--ag-selected-row-background-color: rgba(33, 150, 243, .3);--ag-checkbox-unchecked-color: #333;--ag-value-change-value-highlight-background-color: #00acc1;--ag-side-button-selected-background-color: transparent;--ag-advanced-filter-join-pill-color: #f08e8d;--ag-advanced-filter-column-pill-color: #a6e194;--ag-advanced-filter-option-pill-color: #f3c08b;--ag-advanced-filter-value-pill-color: #85c0e4;--ag-range-selection-border-color: var(--ag-material-primary-color);--ag-checkbox-checked-color: var(--ag-material-accent-color);--ag-borders: none;--ag-borders-critical: solid 1px;--ag-border-color: #e2e2e2;--ag-grid-size: 8px;--ag-icon-size: 18px;--ag-header-height: calc(var(--ag-grid-size) * 7);--ag-row-height: calc(var(--ag-grid-size) * 6);--ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 3);--ag-list-item-height: calc(var(--ag-grid-size) * 4);--ag-row-group-indent-size: calc(var(--ag-grid-size) * 3 + var(--ag-icon-size));--ag-filter-tool-panel-sub-level-row-height: calc(var(--ag-grid-size) * 4);--ag-checkbox-border-radius: 2px;--ag-toggle-button-switch-border-width: 2px;--ag-toggle-button-height: var(--ag-icon-size);--ag-widget-container-horizontal-padding: calc(var(--ag-grid-size) * 1.5);--ag-widget-container-vertical-padding: calc(var(--ag-grid-size) * 2);--ag-widget-vertical-spacing: calc(var(--ag-grid-size) * 1.75);--ag-font-family: Roboto, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;--ag-font-size: 13px;--ag-icon-font-family: agGridMaterial;--ag-selected-tab-underline-color: var(--ag-material-primary-color);--ag-selected-tab-underline-width: 2px;--ag-input-focus-border-color: var(--ag-material-primary-color);--ag-input-focus-box-shadow: 0 0 0 5px rgba(32, 33, 36, .122);--ag-card-shadow: 0 3px 1px -2px rgba(0, 0, 0, .2), 0 2px 2px 0 rgba(0, 0, 0, .14), 0 1px 5px 0 rgba(0, 0, 0, .12);--ag-card-radius: 2px;--ag-invalid-color: #e02525}.ag-theme-material-dark{--ag-material-primary-color: #3f51b5;--ag-material-accent-color: #bb86fcff;--ag-range-selection-border-color: var(--ag-material-accent-color);--ag-background-color: #121212ff;--ag-foreground-color: #ffffffff;--ag-data-color: #f5f5f5ff;--ag-header-cell-hover-background-color: #000000ff;--ag-advanced-filter-join-pill-color: #7a3a37ff;--ag-advanced-filter-column-pill-color: #355f2dff;--ag-advanced-filter-option-pill-color: #5a3168ff;--ag-advanced-filter-value-pill-color: #374c86ff;--ag-input-disabled-border-color: #3a434eff;--ag-input-disabled-background-color: #68686e12;--ag-selected-row-background-color: #bb86fc33;--ag-row-hover-color: #bb86fc33;--ag-column-hover-color: #f5f5f50d;--ag-range-selection-background-color: #bb86fc1a;--ag-range-selection-background-color-2: #bb86fc30;--ag-range-selection-background-color-3: #bb86fc45;--ag-range-selection-background-color-4: #bb86fc57;--ag-border-color: #383838ff;--ag-secondary-border-color: #383838ff;--ag-header-background-color: #121212ff;--ag-tooltip-background-color: #212b38ff;--ag-odd-row-background-color: #121212ff;--ag-control-panel-background-color: #2c2c2cff;--ag-subheader-background-color: #ffffff0d;--ag-subheader-toolbar-background-color: #2c2c2cff;--ag-invalid-color: #e02525ff;--ag-checkbox-unchecked-color: #797e87ff;--ag-checkbox-background-color: #121212ff;--ag-secondary-foreground-color: #f5f5f5ff;--ag-input-border-color: #383838ff;--ag-input-border-color-invalid: #e02525ff;--ag-disabled-foreground-color: #f5f5f580;--ag-chip-background-color: #22262812;--ag-side-button-selected-background-color: #2c2c2cff;--ag-selected-tab-underline-color: #3f51b5ff;--ag-modal-overlay-background-color: #121212a8;--ag-value-change-delta-up-color: #43a047a8;--ag-value-change-delta-down-color: #e53935ff;--ag-menu-background-color: #2c2c2cff;--ag-row-loading-skeleton-effect-color: rgba(202, 203, 204, .4);color-scheme:dark}@media (prefers-color-scheme: dark){.ag-theme-material-auto-dark{--ag-material-primary-color: #3f51b5;--ag-material-accent-color: #bb86fcff;--ag-range-selection-border-color: var(--ag-material-accent-color);--ag-background-color: #121212ff;--ag-foreground-color: #ffffffff;--ag-data-color: #f5f5f5ff;--ag-header-cell-hover-background-color: #000000ff;--ag-advanced-filter-join-pill-color: #7a3a37ff;--ag-advanced-filter-column-pill-color: #355f2dff;--ag-advanced-filter-option-pill-color: #5a3168ff;--ag-advanced-filter-value-pill-color: #374c86ff;--ag-input-disabled-border-color: #3a434eff;--ag-input-disabled-background-color: #68686e12;--ag-selected-row-background-color: #bb86fc33;--ag-row-hover-color: #bb86fc33;--ag-column-hover-color: #f5f5f50d;--ag-range-selection-background-color: #bb86fc1a;--ag-range-selection-background-color-2: #bb86fc30;--ag-range-selection-background-color-3: #bb86fc45;--ag-range-selection-background-color-4: #bb86fc57;--ag-border-color: #383838ff;--ag-secondary-border-color: #383838ff;--ag-header-background-color: #121212ff;--ag-tooltip-background-color: #212b38ff;--ag-odd-row-background-color: #121212ff;--ag-control-panel-background-color: #2c2c2cff;--ag-subheader-background-color: #ffffff0d;--ag-subheader-toolbar-background-color: #2c2c2cff;--ag-invalid-color: #e02525ff;--ag-checkbox-unchecked-color: #797e87ff;--ag-checkbox-background-color: #121212ff;--ag-secondary-foreground-color: #f5f5f5ff;--ag-input-border-color: #383838ff;--ag-input-border-color-invalid: #e02525ff;--ag-disabled-foreground-color: #f5f5f580;--ag-chip-background-color: #22262812;--ag-side-button-selected-background-color: #2c2c2cff;--ag-selected-tab-underline-color: #3f51b5ff;--ag-modal-overlay-background-color: #121212a8;--ag-value-change-delta-up-color: #43a047a8;--ag-value-change-delta-down-color: #e53935ff;--ag-menu-background-color: #2c2c2cff;--ag-row-loading-skeleton-effect-color: rgba(202, 203, 204, .4);color-scheme:dark}}.ag-theme-material .ag-filter-toolpanel-header,.ag-theme-material .ag-filter-toolpanel-search,.ag-theme-material .ag-status-bar,.ag-theme-material .ag-header-row,.ag-theme-material .ag-panel-title-bar-title,.ag-theme-material .ag-multi-filter-group-title-bar,.ag-theme-material-dark .ag-filter-toolpanel-header,.ag-theme-material-dark .ag-filter-toolpanel-search,.ag-theme-material-dark .ag-status-bar,.ag-theme-material-dark .ag-header-row,.ag-theme-material-dark .ag-panel-title-bar-title,.ag-theme-material-dark .ag-multi-filter-group-title-bar,.ag-theme-material-auto-dark .ag-filter-toolpanel-header,.ag-theme-material-auto-dark .ag-filter-toolpanel-search,.ag-theme-material-auto-dark .ag-status-bar,.ag-theme-material-auto-dark .ag-header-row,.ag-theme-material-auto-dark .ag-panel-title-bar-title,.ag-theme-material-auto-dark .ag-multi-filter-group-title-bar{font-size:calc(var(--ag-font-size) - 1px);font-weight:600;color:var(--ag-header-foreground-color)}.ag-theme-material .ag-tab,.ag-theme-material-dark .ag-tab,.ag-theme-material-auto-dark .ag-tab{height:calc(var(--ag-grid-size) * 4.5);flex:1 1 auto}.ag-theme-material .ag-tabs-header,.ag-theme-material .ag-column-drop-horizontal,.ag-theme-material-dark .ag-tabs-header,.ag-theme-material-dark .ag-column-drop-horizontal,.ag-theme-material-auto-dark .ag-tabs-header,.ag-theme-material-auto-dark .ag-column-drop-horizontal{background-color:var(--ag-subheader-background-color)}.ag-theme-material .ag-tabs-body,.ag-theme-material-dark .ag-tabs-body,.ag-theme-material-auto-dark .ag-tabs-body{padding:calc(var(--ag-grid-size) * .5) 0}.ag-theme-material .ag-tabs-body .ag-menu-list,.ag-theme-material-dark .ag-tabs-body .ag-menu-list,.ag-theme-material-auto-dark .ag-tabs-body .ag-menu-list{padding-top:0;padding-bottom:0}.ag-theme-material .ag-header-cell,.ag-theme-material .ag-header-group-cell,.ag-theme-material-dark .ag-header-cell,.ag-theme-material-dark .ag-header-group-cell,.ag-theme-material-auto-dark .ag-header-cell,.ag-theme-material-auto-dark .ag-header-group-cell{transition:background-color .5s}.ag-theme-material .ag-row-last:not(.ag-row-first) .ag-cell-inline-editing,.ag-theme-material-dark .ag-row-last:not(.ag-row-first) .ag-cell-inline-editing,.ag-theme-material-auto-dark .ag-row-last:not(.ag-row-first) .ag-cell-inline-editing{bottom:0}.ag-theme-material .ag-cell-inline-editing,.ag-theme-material-dark .ag-cell-inline-editing,.ag-theme-material-auto-dark .ag-cell-inline-editing{padding:var(--ag-grid-size);height:calc(var(--ag-row-height) + var(--ag-grid-size) * 3);border-color:var(--ag-border-color)!important}.ag-theme-material .ag-has-focus .ag-cell-inline-editing,.ag-theme-material-dark .ag-has-focus .ag-cell-inline-editing,.ag-theme-material-auto-dark .ag-has-focus .ag-cell-inline-editing{border-color:var(--ag-input-focus-border-color)!important}.ag-theme-material .ag-column-drop-vertical,.ag-theme-material-dark .ag-column-drop-vertical,.ag-theme-material-auto-dark .ag-column-drop-vertical{border-bottom:solid 1px;border-bottom-color:var(--ag-border-color);padding-top:var(--ag-grid-size)}.ag-theme-material .ag-column-drop-vertical.ag-last-column-drop,.ag-theme-material-dark .ag-column-drop-vertical.ag-last-column-drop,.ag-theme-material-auto-dark .ag-column-drop-vertical.ag-last-column-drop{border-bottom:none}.ag-theme-material .ag-column-drop-vertical-cell,.ag-theme-material-dark .ag-column-drop-vertical-cell,.ag-theme-material-auto-dark .ag-column-drop-vertical-cell{margin-left:0}.ag-theme-material .ag-column-drop-vertical-empty-message,.ag-theme-material-dark .ag-column-drop-vertical-empty-message,.ag-theme-material-auto-dark .ag-column-drop-vertical-empty-message{font-size:calc(var(--ag-font-size) - 1px);font-weight:600;color:var(--ag-disabled-foreground-color)}.ag-theme-material .ag-ltr .ag-column-drop-vertical-empty-message,.ag-theme-material-dark .ag-ltr .ag-column-drop-vertical-empty-message,.ag-theme-material-auto-dark .ag-ltr .ag-column-drop-vertical-empty-message{padding-left:calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);padding-right:var(--ag-grid-size)}.ag-theme-material .ag-rtl .ag-column-drop-vertical-empty-message,.ag-theme-material-dark .ag-rtl .ag-column-drop-vertical-empty-message,.ag-theme-material-auto-dark .ag-rtl .ag-column-drop-vertical-empty-message{padding-right:calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);padding-left:var(--ag-grid-size)}.ag-theme-material .ag-status-bar,.ag-theme-material-dark .ag-status-bar,.ag-theme-material-auto-dark .ag-status-bar{border:solid 1px;border-color:var(--ag-border-color)}.ag-theme-material .ag-column-panel-column-select,.ag-theme-material-dark .ag-column-panel-column-select,.ag-theme-material-auto-dark .ag-column-panel-column-select{border-top:solid 1px;border-top-color:var(--ag-border-color)}.ag-theme-material .ag-column-select,.ag-theme-material .ag-column-select-header,.ag-theme-material-dark .ag-column-select,.ag-theme-material-dark .ag-column-select-header,.ag-theme-material-auto-dark .ag-column-select,.ag-theme-material-auto-dark .ag-column-select-header{border-bottom:solid 1px;border-bottom-color:var(--ag-border-color)}.ag-theme-material .ag-column-select-header,.ag-theme-material-dark .ag-column-select-header,.ag-theme-material-auto-dark .ag-column-select-header{height:var(--ag-header-height)}.ag-theme-material .ag-group-title-bar,.ag-theme-material-dark .ag-group-title-bar,.ag-theme-material-auto-dark .ag-group-title-bar{padding:calc(var(--ag-grid-size) * .75) var(--ag-grid-size)}.ag-theme-material .ag-charts-format-sub-level-group-title-bar,.ag-theme-material-dark .ag-charts-format-sub-level-group-title-bar,.ag-theme-material-auto-dark .ag-charts-format-sub-level-group-title-bar{padding:calc(var(--ag-grid-size) * .5) var(--ag-grid-size)}.ag-theme-material .ag-chart-data-section,.ag-theme-material .ag-chart-format-section,.ag-theme-material .ag-chart-advanced-settings-section,.ag-theme-material-dark .ag-chart-data-section,.ag-theme-material-dark .ag-chart-format-section,.ag-theme-material-dark .ag-chart-advanced-settings-section,.ag-theme-material-auto-dark .ag-chart-data-section,.ag-theme-material-auto-dark .ag-chart-format-section,.ag-theme-material-auto-dark .ag-chart-advanced-settings-section{padding-bottom:calc(var(--ag-grid-size) * .5)}.ag-theme-material .ag-chart-menu-close,.ag-theme-material-dark .ag-chart-menu-close,.ag-theme-material-auto-dark .ag-chart-menu-close{background:var(--ag-background-color)}.ag-theme-material .ag-chart-menu-close .ag-icon,.ag-theme-material-dark .ag-chart-menu-close .ag-icon,.ag-theme-material-auto-dark .ag-chart-menu-close .ag-icon{background:var(--ag-subheader-background-color)}.ag-theme-material input[class^=ag-]:not([type]),.ag-theme-material input[class^=ag-][type=text],.ag-theme-material input[class^=ag-][type=number],.ag-theme-material input[class^=ag-][type=tel],.ag-theme-material input[class^=ag-][type=date],.ag-theme-material input[class^=ag-][type=datetime-local],.ag-theme-material textarea[class^=ag-],.ag-theme-material-dark input[class^=ag-]:not([type]),.ag-theme-material-dark input[class^=ag-][type=text],.ag-theme-material-dark input[class^=ag-][type=number],.ag-theme-material-dark input[class^=ag-][type=tel],.ag-theme-material-dark input[class^=ag-][type=date],.ag-theme-material-dark input[class^=ag-][type=datetime-local],.ag-theme-material-dark textarea[class^=ag-],.ag-theme-material-auto-dark input[class^=ag-]:not([type]),.ag-theme-material-auto-dark input[class^=ag-][type=text],.ag-theme-material-auto-dark input[class^=ag-][type=number],.ag-theme-material-auto-dark input[class^=ag-][type=tel],.ag-theme-material-auto-dark input[class^=ag-][type=date],.ag-theme-material-auto-dark input[class^=ag-][type=datetime-local],.ag-theme-material-auto-dark textarea[class^=ag-]{background:transparent;color:var(--ag-foreground-color);font-family:inherit;font-size:inherit;height:calc(var(--ag-grid-size) * 5);padding-bottom:var(--ag-grid-size);border-width:0;border-radius:0;border-bottom:2px solid;border-bottom-color:var(--ag-border-color)}.ag-theme-material input[class^=ag-]:not([type]):focus,.ag-theme-material input[class^=ag-][type=text]:focus,.ag-theme-material input[class^=ag-][type=number]:focus,.ag-theme-material input[class^=ag-][type=tel]:focus,.ag-theme-material input[class^=ag-][type=date]:focus,.ag-theme-material input[class^=ag-][type=datetime-local]:focus,.ag-theme-material textarea[class^=ag-]:focus,.ag-theme-material-dark input[class^=ag-]:not([type]):focus,.ag-theme-material-dark input[class^=ag-][type=text]:focus,.ag-theme-material-dark input[class^=ag-][type=number]:focus,.ag-theme-material-dark input[class^=ag-][type=tel]:focus,.ag-theme-material-dark input[class^=ag-][type=date]:focus,.ag-theme-material-dark input[class^=ag-][type=datetime-local]:focus,.ag-theme-material-dark textarea[class^=ag-]:focus,.ag-theme-material-auto-dark input[class^=ag-]:not([type]):focus,.ag-theme-material-auto-dark input[class^=ag-][type=text]:focus,.ag-theme-material-auto-dark input[class^=ag-][type=number]:focus,.ag-theme-material-auto-dark input[class^=ag-][type=tel]:focus,.ag-theme-material-auto-dark input[class^=ag-][type=date]:focus,.ag-theme-material-auto-dark input[class^=ag-][type=datetime-local]:focus,.ag-theme-material-auto-dark textarea[class^=ag-]:focus{border-bottom:2px solid;border-bottom-color:var(--ag-material-primary-color);outline:none;box-shadow:none}.ag-theme-material input[class^=ag-]:not([type])::placeholder,.ag-theme-material input[class^=ag-][type=text]::placeholder,.ag-theme-material input[class^=ag-][type=number]::placeholder,.ag-theme-material input[class^=ag-][type=tel]::placeholder,.ag-theme-material input[class^=ag-][type=date]::placeholder,.ag-theme-material input[class^=ag-][type=datetime-local]::placeholder,.ag-theme-material textarea[class^=ag-]::placeholder,.ag-theme-material-dark input[class^=ag-]:not([type])::placeholder,.ag-theme-material-dark input[class^=ag-][type=text]::placeholder,.ag-theme-material-dark input[class^=ag-][type=number]::placeholder,.ag-theme-material-dark input[class^=ag-][type=tel]::placeholder,.ag-theme-material-dark input[class^=ag-][type=date]::placeholder,.ag-theme-material-dark input[class^=ag-][type=datetime-local]::placeholder,.ag-theme-material-dark textarea[class^=ag-]::placeholder,.ag-theme-material-auto-dark input[class^=ag-]:not([type])::placeholder,.ag-theme-material-auto-dark input[class^=ag-][type=text]::placeholder,.ag-theme-material-auto-dark input[class^=ag-][type=number]::placeholder,.ag-theme-material-auto-dark input[class^=ag-][type=tel]::placeholder,.ag-theme-material-auto-dark input[class^=ag-][type=date]::placeholder,.ag-theme-material-auto-dark input[class^=ag-][type=datetime-local]::placeholder,.ag-theme-material-auto-dark textarea[class^=ag-]::placeholder{color:var(--ag-disabled-foreground-color)}.ag-theme-material input[class^=ag-]:not([type]):disabled,.ag-theme-material input[class^=ag-][type=text]:disabled,.ag-theme-material input[class^=ag-][type=number]:disabled,.ag-theme-material input[class^=ag-][type=tel]:disabled,.ag-theme-material input[class^=ag-][type=date]:disabled,.ag-theme-material input[class^=ag-][type=datetime-local]:disabled,.ag-theme-material textarea[class^=ag-]:disabled,.ag-theme-material-dark input[class^=ag-]:not([type]):disabled,.ag-theme-material-dark input[class^=ag-][type=text]:disabled,.ag-theme-material-dark input[class^=ag-][type=number]:disabled,.ag-theme-material-dark input[class^=ag-][type=tel]:disabled,.ag-theme-material-dark input[class^=ag-][type=date]:disabled,.ag-theme-material-dark input[class^=ag-][type=datetime-local]:disabled,.ag-theme-material-dark textarea[class^=ag-]:disabled,.ag-theme-material-auto-dark input[class^=ag-]:not([type]):disabled,.ag-theme-material-auto-dark input[class^=ag-][type=text]:disabled,.ag-theme-material-auto-dark input[class^=ag-][type=number]:disabled,.ag-theme-material-auto-dark input[class^=ag-][type=tel]:disabled,.ag-theme-material-auto-dark input[class^=ag-][type=date]:disabled,.ag-theme-material-auto-dark input[class^=ag-][type=datetime-local]:disabled,.ag-theme-material-auto-dark textarea[class^=ag-]:disabled{border-bottom:1px solid;border-bottom-color:var(--ag-border-color)}.ag-theme-material input[class^=ag-]:not([type]):invalid,.ag-theme-material input[class^=ag-][type=text]:invalid,.ag-theme-material input[class^=ag-][type=number]:invalid,.ag-theme-material input[class^=ag-][type=tel]:invalid,.ag-theme-material input[class^=ag-][type=date]:invalid,.ag-theme-material input[class^=ag-][type=datetime-local]:invalid,.ag-theme-material textarea[class^=ag-]:invalid,.ag-theme-material-dark input[class^=ag-]:not([type]):invalid,.ag-theme-material-dark input[class^=ag-][type=text]:invalid,.ag-theme-material-dark input[class^=ag-][type=number]:invalid,.ag-theme-material-dark input[class^=ag-][type=tel]:invalid,.ag-theme-material-dark input[class^=ag-][type=date]:invalid,.ag-theme-material-dark input[class^=ag-][type=datetime-local]:invalid,.ag-theme-material-dark textarea[class^=ag-]:invalid,.ag-theme-material-auto-dark input[class^=ag-]:not([type]):invalid,.ag-theme-material-auto-dark input[class^=ag-][type=text]:invalid,.ag-theme-material-auto-dark input[class^=ag-][type=number]:invalid,.ag-theme-material-auto-dark input[class^=ag-][type=tel]:invalid,.ag-theme-material-auto-dark input[class^=ag-][type=date]:invalid,.ag-theme-material-auto-dark input[class^=ag-][type=datetime-local]:invalid,.ag-theme-material-auto-dark textarea[class^=ag-]:invalid{border-width:0;border-bottom:1px solid;border-bottom-color:var(--ag-invalid-color);color:var(--ag-invalid-color)}.ag-theme-material .ag-standard-button,.ag-theme-material-dark .ag-standard-button,.ag-theme-material-auto-dark .ag-standard-button{appearance:none;background-color:transparent;border:0;color:var(--ag-material-primary-color);font-family:inherit;font-size:inherit;margin:0;padding:0;text-transform:uppercase}.ag-theme-material .ag-standard-button:disabled,.ag-theme-material-dark .ag-standard-button:disabled,.ag-theme-material-auto-dark .ag-standard-button:disabled{color:var(--ag-disabled-foreground-color);background-color:var(--ag-input-disabled-background-color);border-color:var(--ag-input-disabled-border-color)}.ag-theme-material.ag-dnd-ghost,.ag-theme-material-dark.ag-dnd-ghost,.ag-theme-material-auto-dark.ag-dnd-ghost{font-size:calc(var(--ag-font-size) - 1px);font-weight:600}.ag-theme-material .ag-filter-toolpanel-header,.ag-theme-material-dark .ag-filter-toolpanel-header,.ag-theme-material-auto-dark .ag-filter-toolpanel-header{height:calc(var(--ag-grid-size) * 4)}.ag-theme-material .ag-filter-toolpanel-group-level-0-header,.ag-theme-material-dark .ag-filter-toolpanel-group-level-0-header,.ag-theme-material-auto-dark .ag-filter-toolpanel-group-level-0-header{height:calc(var(--ag-grid-size) * 7)}.ag-theme-material .ag-ltr .ag-filter-apply-panel-button,.ag-theme-material .ag-ltr .ag-advanced-filter-apply-button,.ag-theme-material .ag-ltr .ag-advanced-filter-builder-button,.ag-theme-material-dark .ag-ltr .ag-filter-apply-panel-button,.ag-theme-material-dark .ag-ltr .ag-advanced-filter-apply-button,.ag-theme-material-dark .ag-ltr .ag-advanced-filter-builder-button,.ag-theme-material-auto-dark .ag-ltr .ag-filter-apply-panel-button,.ag-theme-material-auto-dark .ag-ltr .ag-advanced-filter-apply-button,.ag-theme-material-auto-dark .ag-ltr .ag-advanced-filter-builder-button{margin-left:var(--ag-grid-size)}.ag-theme-material .ag-rtl .ag-filter-apply-panel-button,.ag-theme-material .ag-rtl .ag-advanced-filter-apply-button,.ag-theme-material .ag-rtl .ag-advanced-filter-builder-button,.ag-theme-material-dark .ag-rtl .ag-filter-apply-panel-button,.ag-theme-material-dark .ag-rtl .ag-advanced-filter-apply-button,.ag-theme-material-dark .ag-rtl .ag-advanced-filter-builder-button,.ag-theme-material-auto-dark .ag-rtl .ag-filter-apply-panel-button,.ag-theme-material-auto-dark .ag-rtl .ag-advanced-filter-apply-button,.ag-theme-material-auto-dark .ag-rtl .ag-advanced-filter-builder-button{margin-right:var(--ag-grid-size)}.ag-theme-material .ag-layout-auto-height .ag-center-cols-viewport,.ag-theme-material .ag-layout-auto-height .ag-center-cols-container,.ag-theme-material .ag-layout-print .ag-center-cols-viewport,.ag-theme-material .ag-layout-print .ag-center-cols-container,.ag-theme-material-dark .ag-layout-auto-height .ag-center-cols-viewport,.ag-theme-material-dark .ag-layout-auto-height .ag-center-cols-container,.ag-theme-material-dark .ag-layout-print .ag-center-cols-viewport,.ag-theme-material-dark .ag-layout-print .ag-center-cols-container,.ag-theme-material-auto-dark .ag-layout-auto-height .ag-center-cols-viewport,.ag-theme-material-auto-dark .ag-layout-auto-height .ag-center-cols-container,.ag-theme-material-auto-dark .ag-layout-print .ag-center-cols-viewport,.ag-theme-material-auto-dark .ag-layout-print .ag-center-cols-container{min-height:150px}.ag-theme-material .ag-overlay-no-rows-wrapper.ag-layout-auto-height,.ag-theme-material-dark .ag-overlay-no-rows-wrapper.ag-layout-auto-height,.ag-theme-material-auto-dark .ag-overlay-no-rows-wrapper.ag-layout-auto-height{padding-top:60px}.ag-theme-material .ag-picker-field-wrapper:focus-within,.ag-theme-material-dark .ag-picker-field-wrapper:focus-within,.ag-theme-material-auto-dark .ag-picker-field-wrapper:focus-within{box-shadow:0 0 0 1px var(--ag-material-primary-color)}.ag-theme-material .ag-rich-select-list,.ag-theme-material-dark .ag-rich-select-list,.ag-theme-material-auto-dark .ag-rich-select-list{box-shadow:#0003 0 5px 5px -3px,#00000024 0 8px 10px 1px,#0000001f 0 3px 14px 2px}.ag-theme-material .ag-advanced-filter-builder-button-label,.ag-theme-material-dark .ag-advanced-filter-builder-button-label,.ag-theme-material-auto-dark .ag-advanced-filter-builder-button-label{text-transform:uppercase}.ag-theme-material .ag-filter-active .ag-icon-filter,.ag-theme-material-dark .ag-filter-active .ag-icon-filter,.ag-theme-material-auto-dark .ag-filter-active .ag-icon-filter{color:var(--ag-material-accent-color)}.ag-theme-material textarea[class^=ag-chart-title-edit],.ag-theme-material-dark textarea[class^=ag-chart-title-edit],.ag-theme-material-auto-dark textarea[class^=ag-chart-title-edit]{background-color:var(--ag-background-color)}:root{--primary-color-50-parts: #edf4ff;--primary-color-100-parts: #b9d4fc;--primary-color-200-parts: #8ab7fb;--primary-color-300-parts: #5b9af9;--primary-color-400-parts: #3784f7;--primary-color-500-parts: #146ef6;--primary-color-600-parts: #1266f5;--primary-color-700-parts: #0e5bf3;--primary-color-800-parts: #0b51f2;--primary-color-900-parts: #063fef;--primary-color-A100-parts: rgba(20, 110, 246, .04);--primary-color-A200-parts: rgba(20, 110, 246, .08);--primary-color-A300-parts: rgba(20, 110, 246, .16);--primary-color-A400-parts: rgba(20, 110, 246, .24);--primary-color-A500-parts: rgba(20, 110, 246, .32);--primary-color-contrast-50-parts: rgba(0, 0, 0, .87);--primary-color-contrast-100-parts: rgba(0, 0, 0, .87);--primary-color-contrast-200-parts: rgba(0, 0, 0, .87);--primary-color-contrast-300-parts: rgba(0, 0, 0, .87);--primary-color-contrast-400-parts: rgba(255, 255, 255, 1);--primary-color-contrast-500-parts: rgba(255, 255, 255, 1);--primary-color-contrast-600-parts: rgba(255, 255, 255, 1);--primary-color-contrast-700-parts: rgba(255, 255, 255, 1);--primary-color-contrast-800-parts: rgba(255, 255, 255, 1);--primary-color-contrast-900-parts: rgba(255, 255, 255, 1);--primary-color-contrast-A100-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A200-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A300-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A400-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A500-parts: rgba(0, 0, 0, .87);--primary-color-50-parts-rgb: 237, 244, 255;--primary-color-100-parts-rgb: 185, 212, 252;--primary-color-200-parts-rgb: 138, 183, 251;--primary-color-300-parts-rgb: 91, 154, 249;--primary-color-400-parts-rgb: 55, 132, 247;--primary-color-500-parts-rgb: 20, 110, 246;--primary-color-600-parts-rgb: 18, 102, 245;--primary-color-700-parts-rgb: 14, 91, 243;--primary-color-800-parts-rgb: 11, 81, 242;--primary-color-900-parts-rgb: 6, 63, 239;--primary-color-A100-parts-rgb: 20, 110, 246, .04;--primary-color-A200-parts-rgb: 20, 110, 246, .08;--primary-color-A300-parts-rgb: 20, 110, 246, .16;--primary-color-A400-parts-rgb: 20, 110, 246, .24;--primary-color-A500-parts-rgb: 20, 110, 246, .32;--accent-color-50-parts: #e0f2f1;--accent-color-100-parts: #b2dfdb;--accent-color-200-parts: #80cbc4;--accent-color-300-parts: #4db6ac;--accent-color-400-parts: #26a69a;--accent-color-500-parts: #009688;--accent-color-600-parts: #00897b;--accent-color-700-parts: #00796b;--accent-color-800-parts: #00695c;--accent-color-900-parts: #004d40;--accent-color-A100-parts: rgba(0, 150, 136, .04);--accent-color-A200-parts: rgba(0, 150, 136, .08);--accent-color-A300-parts: rgba(0, 150, 136, .16);--accent-color-A400-parts: rgba(0, 150, 136, .24);--accent-color-A500-parts: rgba(0, 150, 136, .32);--accent-color-contrast-50-parts: rgba(0, 0, 0, .87);--accent-color-contrast-100-parts: rgba(0, 0, 0, .87);--accent-color-contrast-200-parts: rgba(0, 0, 0, .87);--accent-color-contrast-300-parts: rgba(0, 0, 0, .87);--accent-color-contrast-400-parts: rgba(0, 0, 0, .87);--accent-color-contrast-500-parts: rgba(255, 255, 255, 1);--accent-color-contrast-600-parts: rgba(255, 255, 255, 1);--accent-color-contrast-700-parts: rgba(255, 255, 255, 1);--accent-color-contrast-800-parts: rgba(255, 255, 255, 1);--accent-color-contrast-900-parts: rgba(255, 255, 255, 1);--accent-color-contrast-A100-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A200-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A300-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A400-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A500-parts: rgba(0, 0, 0, .87);--accent-color-50-parts-rgb: 224, 242, 241;--accent-color-100-parts-rgb: 178, 223, 219;--accent-color-200-parts-rgb: 128, 203, 196;--accent-color-300-parts-rgb: 77, 182, 172;--accent-color-400-parts-rgb: 38, 166, 154;--accent-color-500-parts-rgb: 0, 150, 136;--accent-color-600-parts-rgb: 0, 137, 123;--accent-color-700-parts-rgb: 0, 121, 107;--accent-color-800-parts-rgb: 0, 105, 92;--accent-color-900-parts-rgb: 0, 77, 64;--accent-color-A100-parts-rgb: 0, 150, 136, .04;--accent-color-A200-parts-rgb: 0, 150, 136, .08;--accent-color-A300-parts-rgb: 0, 150, 136, .16;--accent-color-A400-parts-rgb: 0, 150, 136, .24;--accent-color-A500-parts-rgb: 0, 150, 136, .32;--warn-color-50-parts: #fceee3;--warn-color-100-parts: #f8d4b9;--warn-color-200-parts: #f4b78b;--warn-color-300-parts: #ef9a5d;--warn-color-400-parts: #eb843a;--warn-color-500-parts: #e86e17;--warn-color-600-parts: #e56614;--warn-color-700-parts: #e25b11;--warn-color-800-parts: #de510d;--warn-color-900-parts: #d83f07;--warn-color-A100-parts: rgba(232, 110, 23, .04);--warn-color-A200-parts: rgba(232, 110, 23, .08);--warn-color-A300-parts: rgba(232, 110, 23, .16);--warn-color-A400-parts: rgba(232, 110, 23, .24);--warn-color-A500-parts: rgba(232, 110, 23, .32);--warn-color-contrast-50-parts: rgba(0, 0, 0, .87);--warn-color-contrast-100-parts: rgba(0, 0, 0, .87);--warn-color-contrast-200-parts: rgba(0, 0, 0, .87);--warn-color-contrast-300-parts: rgba(0, 0, 0, .87);--warn-color-contrast-400-parts: rgba(0, 0, 0, .87);--warn-color-contrast-500-parts: rgba(0, 0, 0, .87);--warn-color-contrast-600-parts: rgba(0, 0, 0, .87);--warn-color-contrast-700-parts: rgba(0, 0, 0, .87);--warn-color-contrast-800-parts: rgba(0, 0, 0, .87);--warn-color-contrast-900-parts: rgba(255, 255, 255, 1);--warn-color-contrast-A100-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A200-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A300-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A400-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A500-parts: rgba(0, 0, 0, .87);--warn-color-50-parts-rgb: 252, 238, 227;--warn-color-100-parts-rgb: 248, 212, 185;--warn-color-200-parts-rgb: 244, 183, 139;--warn-color-300-parts-rgb: 239, 154, 93;--warn-color-400-parts-rgb: 235, 132, 58;--warn-color-500-parts-rgb: 232, 110, 23;--warn-color-600-parts-rgb: 229, 102, 20;--warn-color-700-parts-rgb: 226, 91, 17;--warn-color-800-parts-rgb: 222, 81, 13;--warn-color-900-parts-rgb: 216, 63, 7;--warn-color-A100-parts-rgb: 232, 110, 23, .04;--warn-color-A200-parts-rgb: 232, 110, 23, .08;--warn-color-A300-parts-rgb: 232, 110, 23, .16;--warn-color-A400-parts-rgb: 232, 110, 23, .24;--warn-color-A500-parts-rgb: 232, 110, 23, .32;--info-color-50-parts: #edf4ff;--info-color-100-parts: #b9d4fc;--info-color-200-parts: #8ab7fb;--info-color-300-parts: #5b9af9;--info-color-400-parts: #3784f7;--info-color-500-parts: #146ef6;--info-color-600-parts: #1266f5;--info-color-700-parts: #0e5bf3;--info-color-800-parts: #0b51f2;--info-color-900-parts: #063fef;--info-color-A100-parts: rgba(20, 110, 246, .04);--info-color-A200-parts: rgba(20, 110, 246, .08);--info-color-A300-parts: rgba(20, 110, 246, .16);--info-color-A400-parts: rgba(20, 110, 246, .24);--info-color-A500-parts: rgba(20, 110, 246, .32);--info-color-contrast-50-parts: rgba(0, 0, 0, .87);--info-color-contrast-100-parts: rgba(0, 0, 0, .87);--info-color-contrast-200-parts: rgba(0, 0, 0, .87);--info-color-contrast-300-parts: rgba(0, 0, 0, .87);--info-color-contrast-400-parts: rgba(255, 255, 255, 1);--info-color-contrast-500-parts: rgba(255, 255, 255, 1);--info-color-contrast-600-parts: rgba(255, 255, 255, 1);--info-color-contrast-700-parts: rgba(255, 255, 255, 1);--info-color-contrast-800-parts: rgba(255, 255, 255, 1);--info-color-contrast-900-parts: rgba(255, 255, 255, 1);--info-color-contrast-A100-parts: rgba(0, 0, 0, .87);--info-color-contrast-A200-parts: rgba(0, 0, 0, .87);--info-color-contrast-A300-parts: rgba(0, 0, 0, .87);--info-color-contrast-A400-parts: rgba(0, 0, 0, .87);--info-color-contrast-A500-parts: rgba(0, 0, 0, .87);--info-color-50-parts-rgb: 237, 244, 255;--info-color-100-parts-rgb: 185, 212, 252;--info-color-200-parts-rgb: 138, 183, 251;--info-color-300-parts-rgb: 91, 154, 249;--info-color-400-parts-rgb: 55, 132, 247;--info-color-500-parts-rgb: 20, 110, 246;--info-color-600-parts-rgb: 18, 102, 245;--info-color-700-parts-rgb: 14, 91, 243;--info-color-800-parts-rgb: 11, 81, 242;--info-color-900-parts-rgb: 6, 63, 239;--info-color-A100-parts-rgb: 20, 110, 246, .04;--info-color-A200-parts-rgb: 20, 110, 246, .08;--info-color-A300-parts-rgb: 20, 110, 246, .16;--info-color-A400-parts-rgb: 20, 110, 246, .24;--info-color-A500-parts-rgb: 20, 110, 246, .32;--success-color-50-parts: #e7f0e6;--success-color-100-parts: #c4dac1;--success-color-200-parts: #9cc198;--success-color-300-parts: #74a86e;--success-color-400-parts: #57954f;--success-color-500-parts: #398230;--success-color-600-parts: #337a2b;--success-color-700-parts: #2c6f24;--success-color-800-parts: #24651e;--success-color-900-parts: #175213;--success-color-A100-parts: rgba(57, 130, 48, .04);--success-color-A200-parts: rgba(57, 130, 48, .08);--success-color-A300-parts: rgba(57, 130, 48, .16);--success-color-A400-parts: rgba(57, 130, 48, .24);--success-color-A500-parts: rgba(57, 130, 48, .32);--success-color-contrast-50-parts: rgba(0, 0, 0, .87);--success-color-contrast-100-parts: rgba(0, 0, 0, .87);--success-color-contrast-200-parts: rgba(0, 0, 0, .87);--success-color-contrast-300-parts: rgba(0, 0, 0, .87);--success-color-contrast-400-parts: rgba(0, 0, 0, .87);--success-color-contrast-500-parts: rgba(255, 255, 255, 1);--success-color-contrast-600-parts: rgba(255, 255, 255, 1);--success-color-contrast-700-parts: rgba(255, 255, 255, 1);--success-color-contrast-800-parts: rgba(255, 255, 255, 1);--success-color-contrast-900-parts: rgba(255, 255, 255, 1);--success-color-contrast-A100-parts: rgba(0, 0, 0, .87);--success-color-contrast-A200-parts: rgba(0, 0, 0, .87);--success-color-contrast-A300-parts: rgba(0, 0, 0, .87);--success-color-contrast-A400-parts: rgba(0, 0, 0, .87);--success-color-contrast-A500-parts: rgba(0, 0, 0, .87);--success-color-50-parts-rgb: 231, 240, 230;--success-color-100-parts-rgb: 196, 218, 193;--success-color-200-parts-rgb: 156, 193, 152;--success-color-300-parts-rgb: 116, 168, 110;--success-color-400-parts-rgb: 87, 149, 79;--success-color-500-parts-rgb: 57, 130, 48;--success-color-600-parts-rgb: 51, 122, 43;--success-color-700-parts-rgb: 44, 111, 36;--success-color-800-parts-rgb: 36, 101, 30;--success-color-900-parts-rgb: 23, 82, 19;--success-color-A100-parts-rgb: 57, 130, 48, .04;--success-color-A200-parts-rgb: 57, 130, 48, .08;--success-color-A300-parts-rgb: 57, 130, 48, .16;--success-color-A400-parts-rgb: 57, 130, 48, .24;--success-color-A500-parts-rgb: 57, 130, 48, .32;--error-color-50-parts: #fae5e4;--error-color-100-parts: #f3bdba;--error-color-200-parts: #eb928d;--error-color-300-parts: #e3665f;--error-color-400-parts: #dd453c;--error-color-500-parts: #d7241a;--error-color-600-parts: #d32017;--error-color-700-parts: #cd1b13;--error-color-800-parts: #c7160f;--error-color-900-parts: #be0d08;--error-color-A100-parts: rgba(215, 36, 26, .04);--error-color-A200-parts: rgba(215, 36, 26, .08);--error-color-A300-parts: rgba(215, 36, 26, .16);--error-color-A400-parts: rgba(215, 36, 26, .24);--error-color-A500-parts: rgba(215, 36, 26, .32);--error-color-contrast-50-parts: rgba(0, 0, 0, .87);--error-color-contrast-100-parts: rgba(0, 0, 0, .87);--error-color-contrast-200-parts: rgba(0, 0, 0, .87);--error-color-contrast-300-parts: rgba(0, 0, 0, .87);--error-color-contrast-400-parts: rgba(0, 0, 0, .87);--error-color-contrast-500-parts: rgba(255, 255, 255, 1);--error-color-contrast-600-parts: rgba(255, 255, 255, 1);--error-color-contrast-700-parts: rgba(255, 255, 255, 1);--error-color-contrast-800-parts: rgba(255, 255, 255, 1);--error-color-contrast-900-parts: rgba(255, 255, 255, 1);--error-color-contrast-A100-parts: rgba(0, 0, 0, .87);--error-color-contrast-A200-parts: rgba(0, 0, 0, .87);--error-color-contrast-A300-parts: rgba(0, 0, 0, .87);--error-color-contrast-A400-parts: rgba(0, 0, 0, .87);--error-color-contrast-A500-parts: rgba(0, 0, 0, .87);--error-color-50-parts-rgb: 250, 229, 228;--error-color-100-parts-rgb: 243, 189, 186;--error-color-200-parts-rgb: 235, 146, 141;--error-color-300-parts-rgb: 227, 102, 95;--error-color-400-parts-rgb: 221, 69, 60;--error-color-500-parts-rgb: 215, 36, 26;--error-color-600-parts-rgb: 211, 32, 23;--error-color-700-parts-rgb: 205, 27, 19;--error-color-800-parts-rgb: 199, 22, 15;--error-color-900-parts-rgb: 190, 13, 8;--error-color-A100-parts-rgb: 215, 36, 26, .04;--error-color-A200-parts-rgb: 215, 36, 26, .08;--error-color-A300-parts-rgb: 215, 36, 26, .16;--error-color-A400-parts-rgb: 215, 36, 26, .24;--error-color-A500-parts-rgb: 215, 36, 26, .32;--neutral-color-50-parts: #e9e9e9;--neutral-color-100-parts: #dddddd;--neutral-color-200-parts: #cccccc;--neutral-color-300-parts: #b0b0b0;--neutral-color-400-parts: #909090;--neutral-color-500-parts: #515151;--neutral-color-600-parts: #424242;--neutral-color-700-parts: #333333;--neutral-color-800-parts: #212121;--neutral-color-900-parts: #141414;--neutral-color-A100-parts: rgba(81, 81, 81, .04);--neutral-color-A200-parts: rgba(81, 81, 81, .08);--neutral-color-A300-parts: rgba(81, 81, 81, .16);--neutral-color-A400-parts: rgba(81, 81, 81, .24);--neutral-color-A500-parts: rgba(81, 81, 81, .32);--neutral-color-contrast-50-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-100-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-200-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-300-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-400-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-500-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-600-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-700-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-800-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-900-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-A100-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A200-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A300-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A400-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A500-parts: rgba(0, 0, 0, .87);--neutral-color-50-parts-rgb: 233, 233, 233;--neutral-color-100-parts-rgb: 221, 221, 221;--neutral-color-200-parts-rgb: 204, 204, 204;--neutral-color-300-parts-rgb: 176, 176, 176;--neutral-color-400-parts-rgb: 144, 144, 144;--neutral-color-500-parts-rgb: 81, 81, 81;--neutral-color-600-parts-rgb: 66, 66, 66;--neutral-color-700-parts-rgb: 51, 51, 51;--neutral-color-800-parts-rgb: 33, 33, 33;--neutral-color-900-parts-rgb: 20, 20, 20;--neutral-color-A100-parts-rgb: 81, 81, 81, .04;--neutral-color-A200-parts-rgb: 81, 81, 81, .08;--neutral-color-A300-parts-rgb: 81, 81, 81, .16;--neutral-color-A400-parts-rgb: 81, 81, 81, .24;--neutral-color-A500-parts-rgb: 81, 81, 81, .32}.filter-panel{border-radius:8px!important;background-color:#fafafa;border:none;margin:0 0 24px;padding:20px}.filter-panel p{font-family:Poppins!important;font-style:normal!important;font-weight:500!important;font-size:16px!important;line-height:24px!important;margin-top:0!important}.filter-panel .filter-panel-select-container{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.ag-theme-material{width:100%;justify-content:center!important;--ag-font-size: 16px;--ag-font-family: \"Poppins\";--ag-header-background-color: #FAFAFA;--ag-background-color: #FFFFFF;--ag-borders: solid 1px #E9E9E9;--ag-wrapper-border-radius: 8px;--ag-cell-horizontal-padding: 16px;--ag-border-color: #E9E9E9;--ag-material-primary-color: var(--primary-color-500-parts) !important;--ag-material-accent-color: var(--primary-color-300-parts) !important;--ag-icon-size: 18px;--ag-header-cell-hover-background-color: #FFFFFF;--ag-row-hover-color: #FFFFFF;--ag-column-hover-color: #FFFFFF}@media only screen and (max-width: 752px){.ag-theme-material{--ag-cell-horizontal-padding: 8px;--ag-font-size: 12px}}.ag-theme-material ::ng-deep .ag-root-wrapper{border-left:solid 1px #E9E9E9!important;border-top:solid 1px #E9E9E9!important;border-bottom:solid 1px #E9E9E9!important}.ag-theme-material ::ng-deep .ag-cell-focus{border-color:var(--primary-color-300-parts)!important;border-width:3px!important}.ag-theme-material ::ng-deep .ag-header ::ng-deep .ag-pinned-left-header,.ag-theme-material ::ng-deep .ag-body-viewport ::ng-deep .ag-pinned-left-cols-container{position:relative;z-index:1;-webkit-box-shadow:2px 0px 2px 0px rgba(42,42,42,.1);box-shadow:2px 0 2px #2a2a2a1a}.ag-theme-material ::ng-deep .ag-checkbox{padding-right:16px!important;padding-left:16px!important}.ag-theme-material ::ng-deep .ag-body-horizontal-scroll:not(.ag-scrollbar-invisible),.ag-theme-material ::ng-deep .ag-horizontal-left-spacer:not(.ag-scroller-corner){border-right:none}.ag-theme-material ::ng-deep .ag-body-horizontal-scroll-viewport,.ag-theme-material ::ng-deep .ag-body-vertical-scroll-viewport{overflow:hidden}.ag-theme-material ::ng-deep .ag-horizontal-left-spacer{overflow-x:hidden}.ag-theme-material ::ng-deep .ag-header-cell{font-size:16px!important;font-weight:400;color:#0009!important}@media only screen and (max-width: 752px){.ag-theme-material ::ng-deep .ag-header-cell{font-size:12px!important}}.ag-theme-material ::ng-deep .ag-cell{font-weight:400!important;display:flex!important;flex-direction:column!important}.ag-theme-material ::ng-deep .ag-header-icon.ag-header-label-icon.ag-filter-icon{display:none!important}.ag-theme-material ::ng-deep .ag-center-cols-viewport,.ag-theme-material ::ng-deep .ag-center-cols-viewport .ag-center-cols-container{min-height:53px!important}.ag-theme-material ::ng-deep .ag-overlay-wrapper.ag-overlay-no-rows-wrapper{font-size:14px;font-weight:500;color:#0009}.ag-theme-material.no-rows ::ng-deep .ag-body-horizontal-scroll{display:none!important}.ag-theme-material.no-rows ::ng-deep .ag-root-wrapper{border:none!important}.ag-theme-material.no-rows ::ng-deep .ag-header{border-top:solid 1px #E9E9E9;border-left:solid 1px #E9E9E9;border-right:solid 1px #E9E9E9;border-top-left-radius:8px;border-top-right-radius:8px}.ag-theme-material:hover ::ng-deep .ag-body-vertical-scroll-viewport{overflow-y:auto}.ag-theme-material:hover ::ng-deep .ag-body-horizontal-scroll-viewport{overflow-x:auto}.dense-4{--mat-form-field-container-height: 40px;--mat-form-field-filled-label-display: none;--mat-form-field-container-vertical-padding: 8px;--mat-form-field-filled-with-label-container-padding-top: 8px;--mat-form-field-filled-with-label-container-padding-bottom: 8px}.search-icon{font-weight:700;font-size:20px;color:#000000de;opacity:.87}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mat-mdc-form-field-subscript-wrapper{display:none}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mat-mdc-text-field-wrapper{border-radius:10px}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{padding-right:8px!important}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#fafafa!important}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:#000000de;caret-color:#000000de;opacity:.87;letter-spacing:normal}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled .mdc-line-ripple:before,:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled .mdc-line-ripple:after{border:none!important}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled .mat-mdc-floating-label:not(.mdc-floating-label--float-above){display:block!important}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled .mat-mdc-floating-label:not(.mdc-floating-label--float-above) .search-label{color:#000000de;opacity:.6;font-family:Poppins;letter-spacing:normal}:host::ng-deep mat-form-field.sof-form-field.table-search-field.mat-focused .mat-mdc-text-field-wrapper{outline:3px solid var(--primary-color-300-parts);outline-offset:2px}:host::ng-deep mat-form-field.sof-form-field.table-search-field.mat-focused .mat-mdc-text-field-wrapper i.search-icon{color:var(--primary-color-500-parts)}::ng-deep .custom-paginator{width:100%;justify-content:flex-start;align-items:flex-start;display:inline-flex;height:40px!important;margin-top:24px}::ng-deep .custom-paginator .first-section{flex:1 1 0;align-self:stretch;justify-content:flex-start;align-items:center!important;gap:16px!important;display:flex}::ng-deep .custom-paginator .first-section .button-part-1{height:40px!important;align-self:center;padding-left:16px;background:#fafafa;border-radius:8px;overflow:unset!important;justify-content:center;align-items:center;display:inline-flex;border:none;gap:16px;border:2px solid transparent}::ng-deep .custom-paginator .first-section .button-part-1:hover,::ng-deep .custom-paginator .first-section .button-part-1:focus,::ng-deep .custom-paginator .first-section .button-part-1:active{border-radius:10px;justify-content:center;display:inline-flex;border-color:var(--primary-color-500-parts);height:40px!important;align-self:center;padding-left:16px;background:#fafafa;overflow:unset!important;align-items:center;gap:16px}::ng-deep .custom-paginator .first-section .field{display:flex;flex-direction:row;gap:16px;align-items:center}::ng-deep .custom-paginator .mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{align-items:center!important;width:100px!important}::ng-deep .custom-paginator .second-section{justify-content:flex-start;align-items:center;gap:16px;display:flex}::ng-deep .custom-paginator .page-select{height:100%;padding:8px 16px;background:#fafafa;border-radius:8px;overflow:hidden;justify-content:flex-start;align-items:center;gap:16px;display:inline-flex}::ng-deep .custom-paginator .select-icon{width:100%;position:relative;height:20px!important;font-size:20px!important}::ng-deep .custom-paginator .pageChangeText{color:#000000de;font-size:16px;font-family:Poppins;font-weight:400;word-wrap:break-word}::ng-deep .custom-paginator .mat-select{color:#000000de;font-size:16px;font-family:Poppins;font-weight:400;word-wrap:break-word}::ng-deep .custom-paginator .go-to-page{width:fit-content;align-self:stretch;justify-content:flex-start;align-items:center;gap:16px;display:flex}::ng-deep .custom-paginator .go-to-page .outer-box{height:40px;flex-direction:column;justify-content:flex-start;align-items:flex-start;display:inline-flex}::ng-deep .custom-paginator .go-to-page .field{display:flex;flex-direction:row;gap:16px;align-items:center}::ng-deep .custom-paginator .go-to-page .button-part{align-self:center;flex:1 1 0;padding:8px 16px;background:#fafafa;border-radius:8px;overflow:unset!important;justify-content:center;align-items:flex-start;gap:16px;display:inline-flex;border:2px solid transparent}::ng-deep .custom-paginator .go-to-page .button-part:hover,::ng-deep .custom-paginator .go-to-page .button-part:focus,::ng-deep .custom-paginator .go-to-page .button-part:active{align-self:center;flex:1 1 0;padding:8px 16px;background:#fafafa;border-radius:10px;overflow:unset!important;justify-content:center;align-items:flex-start;gap:16px;display:inline-flex;border-color:var(--primary-color-500-parts)}::ng-deep .custom-paginator .go-to-page .current-page{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:8px;font-size:16px!important;font-family:Poppins!important}::ng-deep .custom-paginator .go-to-page .page{position:relative}::ng-deep .custom-paginator .go-to-page .of-page{position:relative;color:#0009}::ng-deep .custom-paginator .mat-mdc-select-value{font-size:16px!important;font-family:Poppins!important}::ng-deep .custom-paginator .mat-form-field-appearance-outline .mat-mdc-select-arrow-wrapper{transform:none!important}::ng-deep .custom-paginator .mat-mdc-select-arrow{display:none!important}::ng-deep .custom-paginator .mat-form-field-underline{display:none!important}::ng-deep .custom-paginator .mdc-line-ripple{display:none!important}::ng-deep .custom-paginator .mat-mdc-text-field-wrapper{background-color:#fff!important;height:40px!important}::ng-deep .custom-paginator .mat-mdc-text-field-wrapper .mat-mdc-form-field-focus-overlay{display:none!important}::ng-deep .page-option mat-pseudo-checkbox{display:none!important}::ng-deep .mat-mdc-select-panel{scrollbar-width:thin!important;background-color:#fafafa!important;box-shadow:0 4px 8px 0 var(--neutral-color-A300-parts)!important;border-radius:8px!important;min-width:82px!important}.table-filter-select ::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}.loading-container{display:flex;align-items:center;justify-content:center;width:100%}::ng-deep .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--primary-color-500-parts)!important}\n"] }]
472
+ args: [{ selector: 'sof-table', template: "<div \r\n [fxShow]=\"isGridDataRendered() && totalLength\"\r\n fxLayoutGap=\"16px\" m-b-24>\r\n @if (enableFilter && colFilters.length) {\r\n <button \r\n (click)=\"toggleFilterPanel()\" \r\n mat-flat-button class=\"sof-button-v2\"\r\n theme=\"neutral\" \r\n [attr.emphasis]=\"filterOpenState ? 'solid' : filterCount === 0 ? 'secondary' : 'contained'\"\r\n [matBadge]=\"filterCount\"\r\n matBadgePosition=\"after\"\r\n [matBadgeHidden]=\"filterCount === 0 ? true : false\">\r\n <i class=\"ph ph-bold ph-sliders-horizontal\" aria-hidden=\"true\"></i>\r\n {{'armature.sof-table.filter' | translate}}\r\n </button>\r\n }\r\n @if (enableSearch) {\r\n <mat-form-field class=\"sof-form-field table-search-field dense-4\" fxFlex=\"auto\">\r\n <span matPrefix>\r\n <i class=\"ph-bold ph-magnifying-glass search-icon\" aria-hidden=\"true\"></i>\r\n </span>\r\n <mat-label class=\"search-label\">{{'armature.sof-table.search' | translate}}</mat-label>\r\n <input \r\n (input)=\"onSearchTextChanged()\" \r\n #gridSearchTextInput matInput type=\"text\" id=\"gridSearchTextInput\"\r\n [attr.aria-label]=\"'armature.sof-table.screen-reader.search-filter-description' | translate\"/>\r\n </mat-form-field>\r\n }\r\n @if (enableColumnOptions) {\r\n <button \r\n (click)=\"openColumnOptions()\"\r\n mat-flat-button class=\"sof-button-icon-v2\" \r\n theme=\"neutral\" emphasis=\"secondary\" id=\"open-column-options\"\r\n [attr.aria-label]=\"'armature.sof-table.screen-reader.column-options-btn' | translate\"\r\n [matTooltip]=\"'armature.sof-table.screen-reader.column-options-btn' | translate\">\r\n <i class=\"ph-bold ph-pause\" aria-hidden=\"true\"></i>\r\n </button>\r\n }\r\n @if(enableExport) {\r\n <button \r\n (click)=\"exportFilteredRowData()\"\r\n mat-flat-button class=\"sof-button-icon-v2\" \r\n theme=\"neutral\" emphasis=\"secondary\" id=\"export-table\"\r\n [attr.aria-label]=\"'armature.sof-table.screen-reader.export-table' | translate\"\r\n [matTooltip]=\"'armature.sof-table.screen-reader.export-table' | translate\">\r\n <i class=\"ph-bold ph-export\" aria-hidden=\"true\"></i>\r\n </button>\r\n }\r\n <ng-content select=\"[sof-table-right-buttons]\"></ng-content>\r\n <!-- \r\n Only inject <button>'s inside an <ng-container sof-table-right-buttons>\r\n ... \r\n <ng-container sof-table-right-buttons>\r\n <button \r\n (click)=\"anyFunction()\"\r\n mat-flat-button class=\"sof-button-icon-v2\" \r\n theme=\"neutral\" emphasis=\"secondary\" aria-label=\"any button\"\r\n matTooltip=\"any button\">\r\n <i class=\"ph-bold ph-acorn\" aria-hidden=\"true\"></i>\r\n </button>\r\n </ng-container>\r\n ... \r\n note: make sure buttons have the following attributes to match others =\r\n `mat-flat-button class=\"sof-button-icon-v2\" theme=\"neutral\" emphasis=\"secondary\"`\r\n * remember to add aria-label and tooltip for icon button\r\n -->\r\n</div>\r\n\r\n<div #ariaResultsCount class=\"sr-only\" aria-live=\"assertive\"></div>\r\n\r\n@if (isGridDataRendered() && filterOpenState) {\r\n <fieldset \r\n class=\"filter-panel\" role=\"region\"\r\n [attr.aria-label]=\"'armature.sof-table.screen-reader.select-filters-description' | translate\">\r\n <p>\r\n <i class=\"ph ph-bold ph-sliders-horizontal\" aria-hidden=\"true\"></i>\r\n <span class=\"m-l-8\">{{'armature.sof-table.filter' | translate}}</span>\r\n </p>\r\n <div class=\"filter-panel-select-container m-v-20\">\r\n @for (colFilter of colFilters; let i = $index; track i) {\r\n <mat-form-field appearance=\"outline\" class=\"sof-form-field table-filter-select\">\r\n <mat-label>{{colFilter.label}}</mat-label>\r\n <mat-select \r\n [(ngModel)]=\"filterSelections[i]\" \r\n multiple \r\n id=\"filterDropdown{{i}}\"\r\n placeholder=\"{{'armature.sof-table.all' | translate}}\" disableRipple=\"true\">\r\n @for (colOption of colFilter.options; track $index) {\r\n <mat-option [value]=\"colOption\">\r\n {{colOption}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n </div>\r\n <div fxLayout=\"row\">\r\n <div fxFlex=\"50%\">\r\n <button \r\n (click)=\"clearFilters()\" [disabled]=\"hasEmptyFilters()\" \r\n mat-flat-button class=\"sof-button-v2\"\r\n theme=\"neutral\" emphasis=\"floating\"\r\n id=\"tableFilterClear\">\r\n {{'armature.sof-table.reset' | translate}}\r\n </button>\r\n </div>\r\n <div fxFlex=\"50%\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"2%\" fxLayoutAlign=\"flex-end\">\r\n <div fxFlex=\"0 1 auto\">\r\n <button \r\n (click)=\"cancelFilterChanges()\" mat-flat-button class=\"sof-button-v2\" \r\n id=\"tableFilterCancel\" theme=\"neutral\" emphasis=\"secondary\">\r\n {{'armature.sof-table.cancel' | translate}}\r\n </button>\r\n </div>\r\n <div fxFlex=\"0 1 auto\">\r\n <button \r\n (click)=\"applyFilters()\" mat-flat-button class=\"sof-button-v2\"\r\n id=\"tableFilterApply\" theme=\"primary\" emphasis=\"solid\">\r\n {{'armature.sof-table.results' | translate}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </fieldset>\r\n}\r\n\r\n<ag-grid-angular \r\n [fxShow]=\"isGridDataRendered()\"\r\n (gridReady)=\"onGridReady($event)\" \r\n (firstDataRendered)=\"onFirstDataRendered()\"\r\n (filterChanged)=\"onFilterChanged()\"\r\n (paginationChanged)=\"changePageSize($event)\" \r\n [rowData]=\"rowData\" \r\n [columnDefs]=\"colDefs\" \r\n [defaultColDef]=\"defaultColDef\" \r\n [pagination]=\"true\" \r\n [suppressPaginationPanel]=\"true\"\r\n [paginationPageSizeSelector]=\"paginationPageSizeSelector\" \r\n [paginationPageSize]=\"paginationPageSize\"\r\n [headerHeight]=\"rowHeight\" \r\n [rowHeight]=\"rowHeight\" \r\n [domLayout]=\"'autoHeight'\" \r\n [tooltipShowDelay]=\"tooltipShowDelay\"\r\n [overlayNoRowsTemplate]=\"'armature.sof-table.no-rows' | translate\"\r\n [class.no-rows]=\"!totalLength\"\r\n class=\"ag-theme-material\">\r\n</ag-grid-angular>\r\n\r\n<div \r\n [fxShow]=\"isGridDataRendered() && totalLength\"\r\n class=\"custom-paginator\">\r\n <div class=\"first-section\">\r\n <button class=\"button-part-1\" type=\"button\">\r\n <mat-select \r\n #pageSizeSelect\r\n id=\"pageSizeInput\" name=\"pageSizeInput\" \r\n [(value)]=\"paginationPageSize\" disableRipple=\"true\">\r\n @for (size of paginationPageSizeSelector; let i = $index; track i) {\r\n <mat-option \r\n class=\"page-option\" id=\"size{{i}}\"\r\n [value]=\"paginationPageSizeSelector[i]\">\r\n {{size}}\r\n </mat-option>\r\n }\r\n <mat-select-trigger>\r\n <div class=\"field\">\r\n <span class=\"current-page\">\r\n <span class=\"page\">{{paginationPageSize}}</span>\r\n </span>\r\n <span class=\"select-icon\">\r\n <i [class]=\"'ph-bold ph-caret-' + (pageSizeSelect.panelOpen ? 'up':'down')\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </mat-select-trigger>\r\n </mat-select>\r\n </button>\r\n <span class=\"pageChangeText\">\r\n {{pageChangeText}} {{'armature.sof-table.of' | translate}} {{totalLength}}\r\n </span>\r\n </div>\r\n <div class=\"go-to-page\">\r\n <div class=\"outer-box\">\r\n <button class=\"button-part\" type=\"button\">\r\n <mat-select \r\n #pageNumberSelect\r\n (selectionChange)=\"onPageNumberChange($event.value)\"\r\n [(value)]=\"currentPage\" \r\n id=\"pageSelelctor\" name=\"pageSelector\" disableRipple=\"true\">\r\n @for (page of pageSelector; track $index) {\r\n <mat-option [value]=\"page\" class=\"page-option\">\r\n <span class=\"current-page\">\r\n <span class=\"page\">{{page}}</span>\r\n </span>\r\n </mat-option>\r\n }\r\n <mat-select-trigger>\r\n <div class=\"field\">\r\n <span class=\"current-page\">\r\n <span class=\"page\">{{currentPage}}</span>\r\n <span class=\"of-page\"> {{'armature.sof-table.of' | translate}} {{totalNumberOfPages}} </span>\r\n </span>\r\n <span class=\"select-icon\">\r\n <i [class]=\"'ph-bold ph-caret-' + (pageNumberSelect.panelOpen ? 'up':'down')\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </mat-select-trigger>\r\n </mat-select>\r\n </button>\r\n </div>\r\n <nav class=\"second-section\">\r\n <button \r\n (click)=\"previousPage()\"\r\n id=\"prev-button\" mat-flat-button class=\"sof-button-icon-v2\" theme=\"neutral\" emphasis=\"secondary\"\r\n [disabled]=\"currentPage === 1\" \r\n [attr.aria-label]=\"'screen-reader.pagination.previous' | translate\">\r\n <i class=\"ph-bold ph-caret-left\" aria-hidden=\"true\"></i>\r\n </button>\r\n <button \r\n (click)=\"nextPage()\" \r\n id=\"next-button\" mat-flat-button class=\"sof-button-icon-v2\" theme=\"neutral\" emphasis=\"secondary\"\r\n [disabled]=\"currentPage === totalNumberOfPages\"\r\n [attr.aria-label]=\"'screen-reader.pagination.next' | translate\">\r\n <i class=\"ph-bold ph-caret-right\" aria-hidden=\"true\"></i>\r\n </button>\r\n </nav>\r\n </div>\r\n</div>\r\n\r\n@if (!isGridDataRendered()) {\r\n <div class=\"loading-container\">\r\n <mat-progress-spinner color=\"primary\" mode=\"indeterminate\"/>\r\n </div>\r\n}\r\n", styles: ["@font-face{font-family:agGridMaterial;src:url(data:font/woff2;charset=utf-8;base64,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);font-weight:400;font-style:normal}.ag-theme-material,.ag-theme-material-dark,.ag-theme-material-auto-dark{--ag-material-primary-color: #3f51b5;--ag-material-accent-color: #ff4081;--ag-foreground-color: rgba(0, 0, 0, .87);--ag-secondary-foreground-color: rgba(0, 0, 0, .54);--ag-disabled-foreground-color: rgba(0, 0, 0, .38);--ag-background-color: #fff;--ag-header-background-color: #fff;--ag-tooltip-background-color: #fff;--ag-subheader-background-color: #eee;--ag-subheader-toolbar-background-color: rgba(238, 238, 238, .5);--ag-header-cell-hover-background-color: #f2f2f2;--ag-chip-background-color: #e2e2e2;--ag-range-selection-background-color: rgba(122, 134, 203, .1);--ag-range-selection-background-color-2: rgba(122, 134, 203, .19);--ag-range-selection-background-color-3: rgba(122, 134, 203, .27);--ag-range-selection-background-color-4: rgba(122, 134, 203, .34);--ag-range-selection-highlight-color: #fce4ec;--ag-row-hover-color: #fafafa;--ag-column-hover-color: #fafafa;--ag-control-panel-background-color: #fafafa;--ag-selected-row-background-color: rgba(33, 150, 243, .3);--ag-checkbox-unchecked-color: #333;--ag-value-change-value-highlight-background-color: #00acc1;--ag-side-button-selected-background-color: transparent;--ag-advanced-filter-join-pill-color: #f08e8d;--ag-advanced-filter-column-pill-color: #a6e194;--ag-advanced-filter-option-pill-color: #f3c08b;--ag-advanced-filter-value-pill-color: #85c0e4;--ag-range-selection-border-color: var(--ag-material-primary-color);--ag-checkbox-checked-color: var(--ag-material-accent-color);--ag-borders: none;--ag-borders-critical: solid 1px;--ag-border-color: #e2e2e2;--ag-grid-size: 8px;--ag-icon-size: 18px;--ag-header-height: calc(var(--ag-grid-size) * 7);--ag-row-height: calc(var(--ag-grid-size) * 6);--ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 3);--ag-list-item-height: calc(var(--ag-grid-size) * 4);--ag-row-group-indent-size: calc(var(--ag-grid-size) * 3 + var(--ag-icon-size));--ag-filter-tool-panel-sub-level-row-height: calc(var(--ag-grid-size) * 4);--ag-checkbox-border-radius: 2px;--ag-toggle-button-switch-border-width: 2px;--ag-toggle-button-height: var(--ag-icon-size);--ag-widget-container-horizontal-padding: calc(var(--ag-grid-size) * 1.5);--ag-widget-container-vertical-padding: calc(var(--ag-grid-size) * 2);--ag-widget-vertical-spacing: calc(var(--ag-grid-size) * 1.75);--ag-font-family: Roboto, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;--ag-font-size: 13px;--ag-icon-font-family: agGridMaterial;--ag-selected-tab-underline-color: var(--ag-material-primary-color);--ag-selected-tab-underline-width: 2px;--ag-input-focus-border-color: var(--ag-material-primary-color);--ag-input-focus-box-shadow: 0 0 0 5px rgba(32, 33, 36, .122);--ag-card-shadow: 0 3px 1px -2px rgba(0, 0, 0, .2), 0 2px 2px 0 rgba(0, 0, 0, .14), 0 1px 5px 0 rgba(0, 0, 0, .12);--ag-card-radius: 2px;--ag-invalid-color: #e02525}.ag-theme-material-dark{--ag-material-primary-color: #3f51b5;--ag-material-accent-color: #bb86fcff;--ag-range-selection-border-color: var(--ag-material-accent-color);--ag-background-color: #121212ff;--ag-foreground-color: #ffffffff;--ag-data-color: #f5f5f5ff;--ag-header-cell-hover-background-color: #000000ff;--ag-advanced-filter-join-pill-color: #7a3a37ff;--ag-advanced-filter-column-pill-color: #355f2dff;--ag-advanced-filter-option-pill-color: #5a3168ff;--ag-advanced-filter-value-pill-color: #374c86ff;--ag-input-disabled-border-color: #3a434eff;--ag-input-disabled-background-color: #68686e12;--ag-selected-row-background-color: #bb86fc33;--ag-row-hover-color: #bb86fc33;--ag-column-hover-color: #f5f5f50d;--ag-range-selection-background-color: #bb86fc1a;--ag-range-selection-background-color-2: #bb86fc30;--ag-range-selection-background-color-3: #bb86fc45;--ag-range-selection-background-color-4: #bb86fc57;--ag-border-color: #383838ff;--ag-secondary-border-color: #383838ff;--ag-header-background-color: #121212ff;--ag-tooltip-background-color: #212b38ff;--ag-odd-row-background-color: #121212ff;--ag-control-panel-background-color: #2c2c2cff;--ag-subheader-background-color: #ffffff0d;--ag-subheader-toolbar-background-color: #2c2c2cff;--ag-invalid-color: #e02525ff;--ag-checkbox-unchecked-color: #797e87ff;--ag-checkbox-background-color: #121212ff;--ag-secondary-foreground-color: #f5f5f5ff;--ag-input-border-color: #383838ff;--ag-input-border-color-invalid: #e02525ff;--ag-disabled-foreground-color: #f5f5f580;--ag-chip-background-color: #22262812;--ag-side-button-selected-background-color: #2c2c2cff;--ag-selected-tab-underline-color: #3f51b5ff;--ag-modal-overlay-background-color: #121212a8;--ag-value-change-delta-up-color: #43a047a8;--ag-value-change-delta-down-color: #e53935ff;--ag-menu-background-color: #2c2c2cff;--ag-row-loading-skeleton-effect-color: rgba(202, 203, 204, .4);color-scheme:dark}@media (prefers-color-scheme: dark){.ag-theme-material-auto-dark{--ag-material-primary-color: #3f51b5;--ag-material-accent-color: #bb86fcff;--ag-range-selection-border-color: var(--ag-material-accent-color);--ag-background-color: #121212ff;--ag-foreground-color: #ffffffff;--ag-data-color: #f5f5f5ff;--ag-header-cell-hover-background-color: #000000ff;--ag-advanced-filter-join-pill-color: #7a3a37ff;--ag-advanced-filter-column-pill-color: #355f2dff;--ag-advanced-filter-option-pill-color: #5a3168ff;--ag-advanced-filter-value-pill-color: #374c86ff;--ag-input-disabled-border-color: #3a434eff;--ag-input-disabled-background-color: #68686e12;--ag-selected-row-background-color: #bb86fc33;--ag-row-hover-color: #bb86fc33;--ag-column-hover-color: #f5f5f50d;--ag-range-selection-background-color: #bb86fc1a;--ag-range-selection-background-color-2: #bb86fc30;--ag-range-selection-background-color-3: #bb86fc45;--ag-range-selection-background-color-4: #bb86fc57;--ag-border-color: #383838ff;--ag-secondary-border-color: #383838ff;--ag-header-background-color: #121212ff;--ag-tooltip-background-color: #212b38ff;--ag-odd-row-background-color: #121212ff;--ag-control-panel-background-color: #2c2c2cff;--ag-subheader-background-color: #ffffff0d;--ag-subheader-toolbar-background-color: #2c2c2cff;--ag-invalid-color: #e02525ff;--ag-checkbox-unchecked-color: #797e87ff;--ag-checkbox-background-color: #121212ff;--ag-secondary-foreground-color: #f5f5f5ff;--ag-input-border-color: #383838ff;--ag-input-border-color-invalid: #e02525ff;--ag-disabled-foreground-color: #f5f5f580;--ag-chip-background-color: #22262812;--ag-side-button-selected-background-color: #2c2c2cff;--ag-selected-tab-underline-color: #3f51b5ff;--ag-modal-overlay-background-color: #121212a8;--ag-value-change-delta-up-color: #43a047a8;--ag-value-change-delta-down-color: #e53935ff;--ag-menu-background-color: #2c2c2cff;--ag-row-loading-skeleton-effect-color: rgba(202, 203, 204, .4);color-scheme:dark}}.ag-theme-material .ag-filter-toolpanel-header,.ag-theme-material .ag-filter-toolpanel-search,.ag-theme-material .ag-status-bar,.ag-theme-material .ag-header-row,.ag-theme-material .ag-panel-title-bar-title,.ag-theme-material .ag-multi-filter-group-title-bar,.ag-theme-material-dark .ag-filter-toolpanel-header,.ag-theme-material-dark .ag-filter-toolpanel-search,.ag-theme-material-dark .ag-status-bar,.ag-theme-material-dark .ag-header-row,.ag-theme-material-dark .ag-panel-title-bar-title,.ag-theme-material-dark .ag-multi-filter-group-title-bar,.ag-theme-material-auto-dark .ag-filter-toolpanel-header,.ag-theme-material-auto-dark .ag-filter-toolpanel-search,.ag-theme-material-auto-dark .ag-status-bar,.ag-theme-material-auto-dark .ag-header-row,.ag-theme-material-auto-dark .ag-panel-title-bar-title,.ag-theme-material-auto-dark .ag-multi-filter-group-title-bar{font-size:calc(var(--ag-font-size) - 1px);font-weight:600;color:var(--ag-header-foreground-color)}.ag-theme-material .ag-tab,.ag-theme-material-dark .ag-tab,.ag-theme-material-auto-dark .ag-tab{height:calc(var(--ag-grid-size) * 4.5);flex:1 1 auto}.ag-theme-material .ag-tabs-header,.ag-theme-material .ag-column-drop-horizontal,.ag-theme-material-dark .ag-tabs-header,.ag-theme-material-dark .ag-column-drop-horizontal,.ag-theme-material-auto-dark .ag-tabs-header,.ag-theme-material-auto-dark .ag-column-drop-horizontal{background-color:var(--ag-subheader-background-color)}.ag-theme-material .ag-tabs-body,.ag-theme-material-dark .ag-tabs-body,.ag-theme-material-auto-dark .ag-tabs-body{padding:calc(var(--ag-grid-size) * .5) 0}.ag-theme-material .ag-tabs-body .ag-menu-list,.ag-theme-material-dark .ag-tabs-body .ag-menu-list,.ag-theme-material-auto-dark .ag-tabs-body .ag-menu-list{padding-top:0;padding-bottom:0}.ag-theme-material .ag-header-cell,.ag-theme-material .ag-header-group-cell,.ag-theme-material-dark .ag-header-cell,.ag-theme-material-dark .ag-header-group-cell,.ag-theme-material-auto-dark .ag-header-cell,.ag-theme-material-auto-dark .ag-header-group-cell{transition:background-color .5s}.ag-theme-material .ag-row-last:not(.ag-row-first) .ag-cell-inline-editing,.ag-theme-material-dark .ag-row-last:not(.ag-row-first) .ag-cell-inline-editing,.ag-theme-material-auto-dark .ag-row-last:not(.ag-row-first) .ag-cell-inline-editing{bottom:0}.ag-theme-material .ag-cell-inline-editing,.ag-theme-material-dark .ag-cell-inline-editing,.ag-theme-material-auto-dark .ag-cell-inline-editing{padding:var(--ag-grid-size);height:calc(var(--ag-row-height) + var(--ag-grid-size) * 3);border-color:var(--ag-border-color)!important}.ag-theme-material .ag-has-focus .ag-cell-inline-editing,.ag-theme-material-dark .ag-has-focus .ag-cell-inline-editing,.ag-theme-material-auto-dark .ag-has-focus .ag-cell-inline-editing{border-color:var(--ag-input-focus-border-color)!important}.ag-theme-material .ag-column-drop-vertical,.ag-theme-material-dark .ag-column-drop-vertical,.ag-theme-material-auto-dark .ag-column-drop-vertical{border-bottom:solid 1px;border-bottom-color:var(--ag-border-color);padding-top:var(--ag-grid-size)}.ag-theme-material .ag-column-drop-vertical.ag-last-column-drop,.ag-theme-material-dark .ag-column-drop-vertical.ag-last-column-drop,.ag-theme-material-auto-dark .ag-column-drop-vertical.ag-last-column-drop{border-bottom:none}.ag-theme-material .ag-column-drop-vertical-cell,.ag-theme-material-dark .ag-column-drop-vertical-cell,.ag-theme-material-auto-dark .ag-column-drop-vertical-cell{margin-left:0}.ag-theme-material .ag-column-drop-vertical-empty-message,.ag-theme-material-dark .ag-column-drop-vertical-empty-message,.ag-theme-material-auto-dark .ag-column-drop-vertical-empty-message{font-size:calc(var(--ag-font-size) - 1px);font-weight:600;color:var(--ag-disabled-foreground-color)}.ag-theme-material .ag-ltr .ag-column-drop-vertical-empty-message,.ag-theme-material-dark .ag-ltr .ag-column-drop-vertical-empty-message,.ag-theme-material-auto-dark .ag-ltr .ag-column-drop-vertical-empty-message{padding-left:calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);padding-right:var(--ag-grid-size)}.ag-theme-material .ag-rtl .ag-column-drop-vertical-empty-message,.ag-theme-material-dark .ag-rtl .ag-column-drop-vertical-empty-message,.ag-theme-material-auto-dark .ag-rtl .ag-column-drop-vertical-empty-message{padding-right:calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);padding-left:var(--ag-grid-size)}.ag-theme-material .ag-status-bar,.ag-theme-material-dark .ag-status-bar,.ag-theme-material-auto-dark .ag-status-bar{border:solid 1px;border-color:var(--ag-border-color)}.ag-theme-material .ag-column-panel-column-select,.ag-theme-material-dark .ag-column-panel-column-select,.ag-theme-material-auto-dark .ag-column-panel-column-select{border-top:solid 1px;border-top-color:var(--ag-border-color)}.ag-theme-material .ag-column-select,.ag-theme-material .ag-column-select-header,.ag-theme-material-dark .ag-column-select,.ag-theme-material-dark .ag-column-select-header,.ag-theme-material-auto-dark .ag-column-select,.ag-theme-material-auto-dark .ag-column-select-header{border-bottom:solid 1px;border-bottom-color:var(--ag-border-color)}.ag-theme-material .ag-column-select-header,.ag-theme-material-dark .ag-column-select-header,.ag-theme-material-auto-dark .ag-column-select-header{height:var(--ag-header-height)}.ag-theme-material .ag-group-title-bar,.ag-theme-material-dark .ag-group-title-bar,.ag-theme-material-auto-dark .ag-group-title-bar{padding:calc(var(--ag-grid-size) * .75) var(--ag-grid-size)}.ag-theme-material .ag-charts-format-sub-level-group-title-bar,.ag-theme-material-dark .ag-charts-format-sub-level-group-title-bar,.ag-theme-material-auto-dark .ag-charts-format-sub-level-group-title-bar{padding:calc(var(--ag-grid-size) * .5) var(--ag-grid-size)}.ag-theme-material .ag-chart-data-section,.ag-theme-material .ag-chart-format-section,.ag-theme-material .ag-chart-advanced-settings-section,.ag-theme-material-dark .ag-chart-data-section,.ag-theme-material-dark .ag-chart-format-section,.ag-theme-material-dark .ag-chart-advanced-settings-section,.ag-theme-material-auto-dark .ag-chart-data-section,.ag-theme-material-auto-dark .ag-chart-format-section,.ag-theme-material-auto-dark .ag-chart-advanced-settings-section{padding-bottom:calc(var(--ag-grid-size) * .5)}.ag-theme-material .ag-chart-menu-close,.ag-theme-material-dark .ag-chart-menu-close,.ag-theme-material-auto-dark .ag-chart-menu-close{background:var(--ag-background-color)}.ag-theme-material .ag-chart-menu-close .ag-icon,.ag-theme-material-dark .ag-chart-menu-close .ag-icon,.ag-theme-material-auto-dark .ag-chart-menu-close .ag-icon{background:var(--ag-subheader-background-color)}.ag-theme-material input[class^=ag-]:not([type]),.ag-theme-material input[class^=ag-][type=text],.ag-theme-material input[class^=ag-][type=number],.ag-theme-material input[class^=ag-][type=tel],.ag-theme-material input[class^=ag-][type=date],.ag-theme-material input[class^=ag-][type=datetime-local],.ag-theme-material textarea[class^=ag-],.ag-theme-material-dark input[class^=ag-]:not([type]),.ag-theme-material-dark input[class^=ag-][type=text],.ag-theme-material-dark input[class^=ag-][type=number],.ag-theme-material-dark input[class^=ag-][type=tel],.ag-theme-material-dark input[class^=ag-][type=date],.ag-theme-material-dark input[class^=ag-][type=datetime-local],.ag-theme-material-dark textarea[class^=ag-],.ag-theme-material-auto-dark input[class^=ag-]:not([type]),.ag-theme-material-auto-dark input[class^=ag-][type=text],.ag-theme-material-auto-dark input[class^=ag-][type=number],.ag-theme-material-auto-dark input[class^=ag-][type=tel],.ag-theme-material-auto-dark input[class^=ag-][type=date],.ag-theme-material-auto-dark input[class^=ag-][type=datetime-local],.ag-theme-material-auto-dark textarea[class^=ag-]{background:transparent;color:var(--ag-foreground-color);font-family:inherit;font-size:inherit;height:calc(var(--ag-grid-size) * 5);padding-bottom:var(--ag-grid-size);border-width:0;border-radius:0;border-bottom:2px solid;border-bottom-color:var(--ag-border-color)}.ag-theme-material input[class^=ag-]:not([type]):focus,.ag-theme-material input[class^=ag-][type=text]:focus,.ag-theme-material input[class^=ag-][type=number]:focus,.ag-theme-material input[class^=ag-][type=tel]:focus,.ag-theme-material input[class^=ag-][type=date]:focus,.ag-theme-material input[class^=ag-][type=datetime-local]:focus,.ag-theme-material textarea[class^=ag-]:focus,.ag-theme-material-dark input[class^=ag-]:not([type]):focus,.ag-theme-material-dark input[class^=ag-][type=text]:focus,.ag-theme-material-dark input[class^=ag-][type=number]:focus,.ag-theme-material-dark input[class^=ag-][type=tel]:focus,.ag-theme-material-dark input[class^=ag-][type=date]:focus,.ag-theme-material-dark input[class^=ag-][type=datetime-local]:focus,.ag-theme-material-dark textarea[class^=ag-]:focus,.ag-theme-material-auto-dark input[class^=ag-]:not([type]):focus,.ag-theme-material-auto-dark input[class^=ag-][type=text]:focus,.ag-theme-material-auto-dark input[class^=ag-][type=number]:focus,.ag-theme-material-auto-dark input[class^=ag-][type=tel]:focus,.ag-theme-material-auto-dark input[class^=ag-][type=date]:focus,.ag-theme-material-auto-dark input[class^=ag-][type=datetime-local]:focus,.ag-theme-material-auto-dark textarea[class^=ag-]:focus{border-bottom:2px solid;border-bottom-color:var(--ag-material-primary-color);outline:none;box-shadow:none}.ag-theme-material input[class^=ag-]:not([type])::placeholder,.ag-theme-material input[class^=ag-][type=text]::placeholder,.ag-theme-material input[class^=ag-][type=number]::placeholder,.ag-theme-material input[class^=ag-][type=tel]::placeholder,.ag-theme-material input[class^=ag-][type=date]::placeholder,.ag-theme-material input[class^=ag-][type=datetime-local]::placeholder,.ag-theme-material textarea[class^=ag-]::placeholder,.ag-theme-material-dark input[class^=ag-]:not([type])::placeholder,.ag-theme-material-dark input[class^=ag-][type=text]::placeholder,.ag-theme-material-dark input[class^=ag-][type=number]::placeholder,.ag-theme-material-dark input[class^=ag-][type=tel]::placeholder,.ag-theme-material-dark input[class^=ag-][type=date]::placeholder,.ag-theme-material-dark input[class^=ag-][type=datetime-local]::placeholder,.ag-theme-material-dark textarea[class^=ag-]::placeholder,.ag-theme-material-auto-dark input[class^=ag-]:not([type])::placeholder,.ag-theme-material-auto-dark input[class^=ag-][type=text]::placeholder,.ag-theme-material-auto-dark input[class^=ag-][type=number]::placeholder,.ag-theme-material-auto-dark input[class^=ag-][type=tel]::placeholder,.ag-theme-material-auto-dark input[class^=ag-][type=date]::placeholder,.ag-theme-material-auto-dark input[class^=ag-][type=datetime-local]::placeholder,.ag-theme-material-auto-dark textarea[class^=ag-]::placeholder{color:var(--ag-disabled-foreground-color)}.ag-theme-material input[class^=ag-]:not([type]):disabled,.ag-theme-material input[class^=ag-][type=text]:disabled,.ag-theme-material input[class^=ag-][type=number]:disabled,.ag-theme-material input[class^=ag-][type=tel]:disabled,.ag-theme-material input[class^=ag-][type=date]:disabled,.ag-theme-material input[class^=ag-][type=datetime-local]:disabled,.ag-theme-material textarea[class^=ag-]:disabled,.ag-theme-material-dark input[class^=ag-]:not([type]):disabled,.ag-theme-material-dark input[class^=ag-][type=text]:disabled,.ag-theme-material-dark input[class^=ag-][type=number]:disabled,.ag-theme-material-dark input[class^=ag-][type=tel]:disabled,.ag-theme-material-dark input[class^=ag-][type=date]:disabled,.ag-theme-material-dark input[class^=ag-][type=datetime-local]:disabled,.ag-theme-material-dark textarea[class^=ag-]:disabled,.ag-theme-material-auto-dark input[class^=ag-]:not([type]):disabled,.ag-theme-material-auto-dark input[class^=ag-][type=text]:disabled,.ag-theme-material-auto-dark input[class^=ag-][type=number]:disabled,.ag-theme-material-auto-dark input[class^=ag-][type=tel]:disabled,.ag-theme-material-auto-dark input[class^=ag-][type=date]:disabled,.ag-theme-material-auto-dark input[class^=ag-][type=datetime-local]:disabled,.ag-theme-material-auto-dark textarea[class^=ag-]:disabled{border-bottom:1px solid;border-bottom-color:var(--ag-border-color)}.ag-theme-material input[class^=ag-]:not([type]):invalid,.ag-theme-material input[class^=ag-][type=text]:invalid,.ag-theme-material input[class^=ag-][type=number]:invalid,.ag-theme-material input[class^=ag-][type=tel]:invalid,.ag-theme-material input[class^=ag-][type=date]:invalid,.ag-theme-material input[class^=ag-][type=datetime-local]:invalid,.ag-theme-material textarea[class^=ag-]:invalid,.ag-theme-material-dark input[class^=ag-]:not([type]):invalid,.ag-theme-material-dark input[class^=ag-][type=text]:invalid,.ag-theme-material-dark input[class^=ag-][type=number]:invalid,.ag-theme-material-dark input[class^=ag-][type=tel]:invalid,.ag-theme-material-dark input[class^=ag-][type=date]:invalid,.ag-theme-material-dark input[class^=ag-][type=datetime-local]:invalid,.ag-theme-material-dark textarea[class^=ag-]:invalid,.ag-theme-material-auto-dark input[class^=ag-]:not([type]):invalid,.ag-theme-material-auto-dark input[class^=ag-][type=text]:invalid,.ag-theme-material-auto-dark input[class^=ag-][type=number]:invalid,.ag-theme-material-auto-dark input[class^=ag-][type=tel]:invalid,.ag-theme-material-auto-dark input[class^=ag-][type=date]:invalid,.ag-theme-material-auto-dark input[class^=ag-][type=datetime-local]:invalid,.ag-theme-material-auto-dark textarea[class^=ag-]:invalid{border-width:0;border-bottom:1px solid;border-bottom-color:var(--ag-invalid-color);color:var(--ag-invalid-color)}.ag-theme-material .ag-standard-button,.ag-theme-material-dark .ag-standard-button,.ag-theme-material-auto-dark .ag-standard-button{appearance:none;background-color:transparent;border:0;color:var(--ag-material-primary-color);font-family:inherit;font-size:inherit;margin:0;padding:0;text-transform:uppercase}.ag-theme-material .ag-standard-button:disabled,.ag-theme-material-dark .ag-standard-button:disabled,.ag-theme-material-auto-dark .ag-standard-button:disabled{color:var(--ag-disabled-foreground-color);background-color:var(--ag-input-disabled-background-color);border-color:var(--ag-input-disabled-border-color)}.ag-theme-material.ag-dnd-ghost,.ag-theme-material-dark.ag-dnd-ghost,.ag-theme-material-auto-dark.ag-dnd-ghost{font-size:calc(var(--ag-font-size) - 1px);font-weight:600}.ag-theme-material .ag-filter-toolpanel-header,.ag-theme-material-dark .ag-filter-toolpanel-header,.ag-theme-material-auto-dark .ag-filter-toolpanel-header{height:calc(var(--ag-grid-size) * 4)}.ag-theme-material .ag-filter-toolpanel-group-level-0-header,.ag-theme-material-dark .ag-filter-toolpanel-group-level-0-header,.ag-theme-material-auto-dark .ag-filter-toolpanel-group-level-0-header{height:calc(var(--ag-grid-size) * 7)}.ag-theme-material .ag-ltr .ag-filter-apply-panel-button,.ag-theme-material .ag-ltr .ag-advanced-filter-apply-button,.ag-theme-material .ag-ltr .ag-advanced-filter-builder-button,.ag-theme-material-dark .ag-ltr .ag-filter-apply-panel-button,.ag-theme-material-dark .ag-ltr .ag-advanced-filter-apply-button,.ag-theme-material-dark .ag-ltr .ag-advanced-filter-builder-button,.ag-theme-material-auto-dark .ag-ltr .ag-filter-apply-panel-button,.ag-theme-material-auto-dark .ag-ltr .ag-advanced-filter-apply-button,.ag-theme-material-auto-dark .ag-ltr .ag-advanced-filter-builder-button{margin-left:var(--ag-grid-size)}.ag-theme-material .ag-rtl .ag-filter-apply-panel-button,.ag-theme-material .ag-rtl .ag-advanced-filter-apply-button,.ag-theme-material .ag-rtl .ag-advanced-filter-builder-button,.ag-theme-material-dark .ag-rtl .ag-filter-apply-panel-button,.ag-theme-material-dark .ag-rtl .ag-advanced-filter-apply-button,.ag-theme-material-dark .ag-rtl .ag-advanced-filter-builder-button,.ag-theme-material-auto-dark .ag-rtl .ag-filter-apply-panel-button,.ag-theme-material-auto-dark .ag-rtl .ag-advanced-filter-apply-button,.ag-theme-material-auto-dark .ag-rtl .ag-advanced-filter-builder-button{margin-right:var(--ag-grid-size)}.ag-theme-material .ag-layout-auto-height .ag-center-cols-viewport,.ag-theme-material .ag-layout-auto-height .ag-center-cols-container,.ag-theme-material .ag-layout-print .ag-center-cols-viewport,.ag-theme-material .ag-layout-print .ag-center-cols-container,.ag-theme-material-dark .ag-layout-auto-height .ag-center-cols-viewport,.ag-theme-material-dark .ag-layout-auto-height .ag-center-cols-container,.ag-theme-material-dark .ag-layout-print .ag-center-cols-viewport,.ag-theme-material-dark .ag-layout-print .ag-center-cols-container,.ag-theme-material-auto-dark .ag-layout-auto-height .ag-center-cols-viewport,.ag-theme-material-auto-dark .ag-layout-auto-height .ag-center-cols-container,.ag-theme-material-auto-dark .ag-layout-print .ag-center-cols-viewport,.ag-theme-material-auto-dark .ag-layout-print .ag-center-cols-container{min-height:150px}.ag-theme-material .ag-overlay-no-rows-wrapper.ag-layout-auto-height,.ag-theme-material-dark .ag-overlay-no-rows-wrapper.ag-layout-auto-height,.ag-theme-material-auto-dark .ag-overlay-no-rows-wrapper.ag-layout-auto-height{padding-top:60px}.ag-theme-material .ag-picker-field-wrapper:focus-within,.ag-theme-material-dark .ag-picker-field-wrapper:focus-within,.ag-theme-material-auto-dark .ag-picker-field-wrapper:focus-within{box-shadow:0 0 0 1px var(--ag-material-primary-color)}.ag-theme-material .ag-rich-select-list,.ag-theme-material-dark .ag-rich-select-list,.ag-theme-material-auto-dark .ag-rich-select-list{box-shadow:#0003 0 5px 5px -3px,#00000024 0 8px 10px 1px,#0000001f 0 3px 14px 2px}.ag-theme-material .ag-advanced-filter-builder-button-label,.ag-theme-material-dark .ag-advanced-filter-builder-button-label,.ag-theme-material-auto-dark .ag-advanced-filter-builder-button-label{text-transform:uppercase}.ag-theme-material .ag-filter-active .ag-icon-filter,.ag-theme-material-dark .ag-filter-active .ag-icon-filter,.ag-theme-material-auto-dark .ag-filter-active .ag-icon-filter{color:var(--ag-material-accent-color)}.ag-theme-material textarea[class^=ag-chart-title-edit],.ag-theme-material-dark textarea[class^=ag-chart-title-edit],.ag-theme-material-auto-dark textarea[class^=ag-chart-title-edit]{background-color:var(--ag-background-color)}:root{--primary-color-50-parts: #edf4ff;--primary-color-100-parts: #b9d4fc;--primary-color-200-parts: #8ab7fb;--primary-color-300-parts: #5b9af9;--primary-color-400-parts: #3784f7;--primary-color-500-parts: #146ef6;--primary-color-600-parts: #1266f5;--primary-color-700-parts: #0e5bf3;--primary-color-800-parts: #0b51f2;--primary-color-900-parts: #063fef;--primary-color-A100-parts: rgba(20, 110, 246, .04);--primary-color-A200-parts: rgba(20, 110, 246, .08);--primary-color-A300-parts: rgba(20, 110, 246, .16);--primary-color-A400-parts: rgba(20, 110, 246, .24);--primary-color-A500-parts: rgba(20, 110, 246, .32);--primary-color-contrast-50-parts: rgba(0, 0, 0, .87);--primary-color-contrast-100-parts: rgba(0, 0, 0, .87);--primary-color-contrast-200-parts: rgba(0, 0, 0, .87);--primary-color-contrast-300-parts: rgba(0, 0, 0, .87);--primary-color-contrast-400-parts: rgba(255, 255, 255, 1);--primary-color-contrast-500-parts: rgba(255, 255, 255, 1);--primary-color-contrast-600-parts: rgba(255, 255, 255, 1);--primary-color-contrast-700-parts: rgba(255, 255, 255, 1);--primary-color-contrast-800-parts: rgba(255, 255, 255, 1);--primary-color-contrast-900-parts: rgba(255, 255, 255, 1);--primary-color-contrast-A100-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A200-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A300-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A400-parts: rgba(0, 0, 0, .87);--primary-color-contrast-A500-parts: rgba(0, 0, 0, .87);--primary-color-50-parts-rgb: 237, 244, 255;--primary-color-100-parts-rgb: 185, 212, 252;--primary-color-200-parts-rgb: 138, 183, 251;--primary-color-300-parts-rgb: 91, 154, 249;--primary-color-400-parts-rgb: 55, 132, 247;--primary-color-500-parts-rgb: 20, 110, 246;--primary-color-600-parts-rgb: 18, 102, 245;--primary-color-700-parts-rgb: 14, 91, 243;--primary-color-800-parts-rgb: 11, 81, 242;--primary-color-900-parts-rgb: 6, 63, 239;--primary-color-A100-parts-rgb: 20, 110, 246, .04;--primary-color-A200-parts-rgb: 20, 110, 246, .08;--primary-color-A300-parts-rgb: 20, 110, 246, .16;--primary-color-A400-parts-rgb: 20, 110, 246, .24;--primary-color-A500-parts-rgb: 20, 110, 246, .32;--accent-color-50-parts: #e0f2f1;--accent-color-100-parts: #b2dfdb;--accent-color-200-parts: #80cbc4;--accent-color-300-parts: #4db6ac;--accent-color-400-parts: #26a69a;--accent-color-500-parts: #009688;--accent-color-600-parts: #00897b;--accent-color-700-parts: #00796b;--accent-color-800-parts: #00695c;--accent-color-900-parts: #004d40;--accent-color-A100-parts: rgba(0, 150, 136, .04);--accent-color-A200-parts: rgba(0, 150, 136, .08);--accent-color-A300-parts: rgba(0, 150, 136, .16);--accent-color-A400-parts: rgba(0, 150, 136, .24);--accent-color-A500-parts: rgba(0, 150, 136, .32);--accent-color-contrast-50-parts: rgba(0, 0, 0, .87);--accent-color-contrast-100-parts: rgba(0, 0, 0, .87);--accent-color-contrast-200-parts: rgba(0, 0, 0, .87);--accent-color-contrast-300-parts: rgba(0, 0, 0, .87);--accent-color-contrast-400-parts: rgba(0, 0, 0, .87);--accent-color-contrast-500-parts: rgba(255, 255, 255, 1);--accent-color-contrast-600-parts: rgba(255, 255, 255, 1);--accent-color-contrast-700-parts: rgba(255, 255, 255, 1);--accent-color-contrast-800-parts: rgba(255, 255, 255, 1);--accent-color-contrast-900-parts: rgba(255, 255, 255, 1);--accent-color-contrast-A100-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A200-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A300-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A400-parts: rgba(0, 0, 0, .87);--accent-color-contrast-A500-parts: rgba(0, 0, 0, .87);--accent-color-50-parts-rgb: 224, 242, 241;--accent-color-100-parts-rgb: 178, 223, 219;--accent-color-200-parts-rgb: 128, 203, 196;--accent-color-300-parts-rgb: 77, 182, 172;--accent-color-400-parts-rgb: 38, 166, 154;--accent-color-500-parts-rgb: 0, 150, 136;--accent-color-600-parts-rgb: 0, 137, 123;--accent-color-700-parts-rgb: 0, 121, 107;--accent-color-800-parts-rgb: 0, 105, 92;--accent-color-900-parts-rgb: 0, 77, 64;--accent-color-A100-parts-rgb: 0, 150, 136, .04;--accent-color-A200-parts-rgb: 0, 150, 136, .08;--accent-color-A300-parts-rgb: 0, 150, 136, .16;--accent-color-A400-parts-rgb: 0, 150, 136, .24;--accent-color-A500-parts-rgb: 0, 150, 136, .32;--warn-color-50-parts: #fceee3;--warn-color-100-parts: #f8d4b9;--warn-color-200-parts: #f4b78b;--warn-color-300-parts: #ef9a5d;--warn-color-400-parts: #eb843a;--warn-color-500-parts: #e86e17;--warn-color-600-parts: #e56614;--warn-color-700-parts: #e25b11;--warn-color-800-parts: #de510d;--warn-color-900-parts: #d83f07;--warn-color-A100-parts: rgba(232, 110, 23, .04);--warn-color-A200-parts: rgba(232, 110, 23, .08);--warn-color-A300-parts: rgba(232, 110, 23, .16);--warn-color-A400-parts: rgba(232, 110, 23, .24);--warn-color-A500-parts: rgba(232, 110, 23, .32);--warn-color-contrast-50-parts: rgba(0, 0, 0, .87);--warn-color-contrast-100-parts: rgba(0, 0, 0, .87);--warn-color-contrast-200-parts: rgba(0, 0, 0, .87);--warn-color-contrast-300-parts: rgba(0, 0, 0, .87);--warn-color-contrast-400-parts: rgba(0, 0, 0, .87);--warn-color-contrast-500-parts: rgba(0, 0, 0, .87);--warn-color-contrast-600-parts: rgba(0, 0, 0, .87);--warn-color-contrast-700-parts: rgba(0, 0, 0, .87);--warn-color-contrast-800-parts: rgba(0, 0, 0, .87);--warn-color-contrast-900-parts: rgba(255, 255, 255, 1);--warn-color-contrast-A100-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A200-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A300-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A400-parts: rgba(0, 0, 0, .87);--warn-color-contrast-A500-parts: rgba(0, 0, 0, .87);--warn-color-50-parts-rgb: 252, 238, 227;--warn-color-100-parts-rgb: 248, 212, 185;--warn-color-200-parts-rgb: 244, 183, 139;--warn-color-300-parts-rgb: 239, 154, 93;--warn-color-400-parts-rgb: 235, 132, 58;--warn-color-500-parts-rgb: 232, 110, 23;--warn-color-600-parts-rgb: 229, 102, 20;--warn-color-700-parts-rgb: 226, 91, 17;--warn-color-800-parts-rgb: 222, 81, 13;--warn-color-900-parts-rgb: 216, 63, 7;--warn-color-A100-parts-rgb: 232, 110, 23, .04;--warn-color-A200-parts-rgb: 232, 110, 23, .08;--warn-color-A300-parts-rgb: 232, 110, 23, .16;--warn-color-A400-parts-rgb: 232, 110, 23, .24;--warn-color-A500-parts-rgb: 232, 110, 23, .32;--info-color-50-parts: #edf4ff;--info-color-100-parts: #b9d4fc;--info-color-200-parts: #8ab7fb;--info-color-300-parts: #5b9af9;--info-color-400-parts: #3784f7;--info-color-500-parts: #146ef6;--info-color-600-parts: #1266f5;--info-color-700-parts: #0e5bf3;--info-color-800-parts: #0b51f2;--info-color-900-parts: #063fef;--info-color-A100-parts: rgba(20, 110, 246, .04);--info-color-A200-parts: rgba(20, 110, 246, .08);--info-color-A300-parts: rgba(20, 110, 246, .16);--info-color-A400-parts: rgba(20, 110, 246, .24);--info-color-A500-parts: rgba(20, 110, 246, .32);--info-color-contrast-50-parts: rgba(0, 0, 0, .87);--info-color-contrast-100-parts: rgba(0, 0, 0, .87);--info-color-contrast-200-parts: rgba(0, 0, 0, .87);--info-color-contrast-300-parts: rgba(0, 0, 0, .87);--info-color-contrast-400-parts: rgba(255, 255, 255, 1);--info-color-contrast-500-parts: rgba(255, 255, 255, 1);--info-color-contrast-600-parts: rgba(255, 255, 255, 1);--info-color-contrast-700-parts: rgba(255, 255, 255, 1);--info-color-contrast-800-parts: rgba(255, 255, 255, 1);--info-color-contrast-900-parts: rgba(255, 255, 255, 1);--info-color-contrast-A100-parts: rgba(0, 0, 0, .87);--info-color-contrast-A200-parts: rgba(0, 0, 0, .87);--info-color-contrast-A300-parts: rgba(0, 0, 0, .87);--info-color-contrast-A400-parts: rgba(0, 0, 0, .87);--info-color-contrast-A500-parts: rgba(0, 0, 0, .87);--info-color-50-parts-rgb: 237, 244, 255;--info-color-100-parts-rgb: 185, 212, 252;--info-color-200-parts-rgb: 138, 183, 251;--info-color-300-parts-rgb: 91, 154, 249;--info-color-400-parts-rgb: 55, 132, 247;--info-color-500-parts-rgb: 20, 110, 246;--info-color-600-parts-rgb: 18, 102, 245;--info-color-700-parts-rgb: 14, 91, 243;--info-color-800-parts-rgb: 11, 81, 242;--info-color-900-parts-rgb: 6, 63, 239;--info-color-A100-parts-rgb: 20, 110, 246, .04;--info-color-A200-parts-rgb: 20, 110, 246, .08;--info-color-A300-parts-rgb: 20, 110, 246, .16;--info-color-A400-parts-rgb: 20, 110, 246, .24;--info-color-A500-parts-rgb: 20, 110, 246, .32;--success-color-50-parts: #e7f0e6;--success-color-100-parts: #c4dac1;--success-color-200-parts: #9cc198;--success-color-300-parts: #74a86e;--success-color-400-parts: #57954f;--success-color-500-parts: #398230;--success-color-600-parts: #337a2b;--success-color-700-parts: #2c6f24;--success-color-800-parts: #24651e;--success-color-900-parts: #175213;--success-color-A100-parts: rgba(57, 130, 48, .04);--success-color-A200-parts: rgba(57, 130, 48, .08);--success-color-A300-parts: rgba(57, 130, 48, .16);--success-color-A400-parts: rgba(57, 130, 48, .24);--success-color-A500-parts: rgba(57, 130, 48, .32);--success-color-contrast-50-parts: rgba(0, 0, 0, .87);--success-color-contrast-100-parts: rgba(0, 0, 0, .87);--success-color-contrast-200-parts: rgba(0, 0, 0, .87);--success-color-contrast-300-parts: rgba(0, 0, 0, .87);--success-color-contrast-400-parts: rgba(0, 0, 0, .87);--success-color-contrast-500-parts: rgba(255, 255, 255, 1);--success-color-contrast-600-parts: rgba(255, 255, 255, 1);--success-color-contrast-700-parts: rgba(255, 255, 255, 1);--success-color-contrast-800-parts: rgba(255, 255, 255, 1);--success-color-contrast-900-parts: rgba(255, 255, 255, 1);--success-color-contrast-A100-parts: rgba(0, 0, 0, .87);--success-color-contrast-A200-parts: rgba(0, 0, 0, .87);--success-color-contrast-A300-parts: rgba(0, 0, 0, .87);--success-color-contrast-A400-parts: rgba(0, 0, 0, .87);--success-color-contrast-A500-parts: rgba(0, 0, 0, .87);--success-color-50-parts-rgb: 231, 240, 230;--success-color-100-parts-rgb: 196, 218, 193;--success-color-200-parts-rgb: 156, 193, 152;--success-color-300-parts-rgb: 116, 168, 110;--success-color-400-parts-rgb: 87, 149, 79;--success-color-500-parts-rgb: 57, 130, 48;--success-color-600-parts-rgb: 51, 122, 43;--success-color-700-parts-rgb: 44, 111, 36;--success-color-800-parts-rgb: 36, 101, 30;--success-color-900-parts-rgb: 23, 82, 19;--success-color-A100-parts-rgb: 57, 130, 48, .04;--success-color-A200-parts-rgb: 57, 130, 48, .08;--success-color-A300-parts-rgb: 57, 130, 48, .16;--success-color-A400-parts-rgb: 57, 130, 48, .24;--success-color-A500-parts-rgb: 57, 130, 48, .32;--error-color-50-parts: #fae5e4;--error-color-100-parts: #f3bdba;--error-color-200-parts: #eb928d;--error-color-300-parts: #e3665f;--error-color-400-parts: #dd453c;--error-color-500-parts: #d7241a;--error-color-600-parts: #d32017;--error-color-700-parts: #cd1b13;--error-color-800-parts: #c7160f;--error-color-900-parts: #be0d08;--error-color-A100-parts: rgba(215, 36, 26, .04);--error-color-A200-parts: rgba(215, 36, 26, .08);--error-color-A300-parts: rgba(215, 36, 26, .16);--error-color-A400-parts: rgba(215, 36, 26, .24);--error-color-A500-parts: rgba(215, 36, 26, .32);--error-color-contrast-50-parts: rgba(0, 0, 0, .87);--error-color-contrast-100-parts: rgba(0, 0, 0, .87);--error-color-contrast-200-parts: rgba(0, 0, 0, .87);--error-color-contrast-300-parts: rgba(0, 0, 0, .87);--error-color-contrast-400-parts: rgba(0, 0, 0, .87);--error-color-contrast-500-parts: rgba(255, 255, 255, 1);--error-color-contrast-600-parts: rgba(255, 255, 255, 1);--error-color-contrast-700-parts: rgba(255, 255, 255, 1);--error-color-contrast-800-parts: rgba(255, 255, 255, 1);--error-color-contrast-900-parts: rgba(255, 255, 255, 1);--error-color-contrast-A100-parts: rgba(0, 0, 0, .87);--error-color-contrast-A200-parts: rgba(0, 0, 0, .87);--error-color-contrast-A300-parts: rgba(0, 0, 0, .87);--error-color-contrast-A400-parts: rgba(0, 0, 0, .87);--error-color-contrast-A500-parts: rgba(0, 0, 0, .87);--error-color-50-parts-rgb: 250, 229, 228;--error-color-100-parts-rgb: 243, 189, 186;--error-color-200-parts-rgb: 235, 146, 141;--error-color-300-parts-rgb: 227, 102, 95;--error-color-400-parts-rgb: 221, 69, 60;--error-color-500-parts-rgb: 215, 36, 26;--error-color-600-parts-rgb: 211, 32, 23;--error-color-700-parts-rgb: 205, 27, 19;--error-color-800-parts-rgb: 199, 22, 15;--error-color-900-parts-rgb: 190, 13, 8;--error-color-A100-parts-rgb: 215, 36, 26, .04;--error-color-A200-parts-rgb: 215, 36, 26, .08;--error-color-A300-parts-rgb: 215, 36, 26, .16;--error-color-A400-parts-rgb: 215, 36, 26, .24;--error-color-A500-parts-rgb: 215, 36, 26, .32;--neutral-color-50-parts: #e9e9e9;--neutral-color-100-parts: #dddddd;--neutral-color-200-parts: #cccccc;--neutral-color-300-parts: #b0b0b0;--neutral-color-400-parts: #909090;--neutral-color-500-parts: #515151;--neutral-color-600-parts: #424242;--neutral-color-700-parts: #333333;--neutral-color-800-parts: #212121;--neutral-color-900-parts: #141414;--neutral-color-A100-parts: rgba(81, 81, 81, .04);--neutral-color-A200-parts: rgba(81, 81, 81, .08);--neutral-color-A300-parts: rgba(81, 81, 81, .16);--neutral-color-A400-parts: rgba(81, 81, 81, .24);--neutral-color-A500-parts: rgba(81, 81, 81, .32);--neutral-color-contrast-50-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-100-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-200-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-300-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-400-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-500-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-600-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-700-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-800-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-900-parts: rgba(255, 255, 255, 1);--neutral-color-contrast-A100-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A200-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A300-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A400-parts: rgba(0, 0, 0, .87);--neutral-color-contrast-A500-parts: rgba(0, 0, 0, .87);--neutral-color-50-parts-rgb: 233, 233, 233;--neutral-color-100-parts-rgb: 221, 221, 221;--neutral-color-200-parts-rgb: 204, 204, 204;--neutral-color-300-parts-rgb: 176, 176, 176;--neutral-color-400-parts-rgb: 144, 144, 144;--neutral-color-500-parts-rgb: 81, 81, 81;--neutral-color-600-parts-rgb: 66, 66, 66;--neutral-color-700-parts-rgb: 51, 51, 51;--neutral-color-800-parts-rgb: 33, 33, 33;--neutral-color-900-parts-rgb: 20, 20, 20;--neutral-color-A100-parts-rgb: 81, 81, 81, .04;--neutral-color-A200-parts-rgb: 81, 81, 81, .08;--neutral-color-A300-parts-rgb: 81, 81, 81, .16;--neutral-color-A400-parts-rgb: 81, 81, 81, .24;--neutral-color-A500-parts-rgb: 81, 81, 81, .32}.filter-panel{border-radius:8px!important;background-color:#fafafa;border:none;margin:0 0 24px;padding:20px}.filter-panel p{font-family:Poppins!important;font-style:normal!important;font-weight:500!important;font-size:16px!important;line-height:24px!important;margin-top:0!important}.filter-panel .filter-panel-select-container{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.ag-theme-material{width:100%;justify-content:center!important;--ag-font-size: 16px;--ag-font-family: \"Poppins\";--ag-header-background-color: #FAFAFA;--ag-background-color: #FFFFFF;--ag-borders: solid 1px #E9E9E9;--ag-wrapper-border-radius: 8px;--ag-cell-horizontal-padding: 16px;--ag-border-color: #E9E9E9;--ag-material-primary-color: var(--primary-color-500-parts) !important;--ag-material-accent-color: var(--primary-color-300-parts) !important;--ag-icon-size: 18px;--ag-header-cell-hover-background-color: #FFFFFF;--ag-row-hover-color: #FFFFFF;--ag-column-hover-color: #FFFFFF}@media only screen and (max-width: 752px){.ag-theme-material{--ag-cell-horizontal-padding: 8px;--ag-font-size: 12px}}.ag-theme-material ::ng-deep .ag-root-wrapper{border-left:solid 1px #E9E9E9!important;border-top:solid 1px #E9E9E9!important;border-bottom:solid 1px #E9E9E9!important}.ag-theme-material ::ng-deep .ag-cell-focus{border-color:var(--primary-color-300-parts)!important;border-width:3px!important}.ag-theme-material ::ng-deep .ag-header ::ng-deep .ag-pinned-left-header,.ag-theme-material ::ng-deep .ag-body-viewport ::ng-deep .ag-pinned-left-cols-container{position:relative;z-index:1;-webkit-box-shadow:2px 0px 2px 0px rgba(42,42,42,.1);box-shadow:2px 0 2px #2a2a2a1a}.ag-theme-material ::ng-deep .ag-checkbox{padding-right:16px!important;padding-left:16px!important}.ag-theme-material ::ng-deep .ag-body-horizontal-scroll:not(.ag-scrollbar-invisible),.ag-theme-material ::ng-deep .ag-horizontal-left-spacer:not(.ag-scroller-corner){border-right:none}.ag-theme-material ::ng-deep .ag-body-horizontal-scroll-viewport,.ag-theme-material ::ng-deep .ag-body-vertical-scroll-viewport{overflow:hidden}.ag-theme-material ::ng-deep .ag-horizontal-left-spacer{overflow-x:hidden}.ag-theme-material ::ng-deep .ag-header-cell{font-size:16px!important;font-weight:400;color:#0009!important}@media only screen and (max-width: 752px){.ag-theme-material ::ng-deep .ag-header-cell{font-size:12px!important}}.ag-theme-material ::ng-deep .ag-cell{font-weight:400!important;display:flex!important;flex-direction:column!important}.ag-theme-material ::ng-deep .ag-header-icon.ag-header-label-icon.ag-filter-icon{display:none!important}.ag-theme-material ::ng-deep .ag-center-cols-viewport,.ag-theme-material ::ng-deep .ag-center-cols-viewport .ag-center-cols-container{min-height:53px!important}.ag-theme-material ::ng-deep .ag-overlay-wrapper.ag-overlay-no-rows-wrapper{font-size:14px;font-weight:500;color:#0009}.ag-theme-material.no-rows ::ng-deep .ag-body-horizontal-scroll{display:none!important}.ag-theme-material.no-rows ::ng-deep .ag-root-wrapper{border:none!important}.ag-theme-material.no-rows ::ng-deep .ag-header{border-top:solid 1px #E9E9E9;border-left:solid 1px #E9E9E9;border-right:solid 1px #E9E9E9;border-top-left-radius:8px;border-top-right-radius:8px}.ag-theme-material:hover ::ng-deep .ag-body-vertical-scroll-viewport{overflow-y:auto}.ag-theme-material:hover ::ng-deep .ag-body-horizontal-scroll-viewport{overflow-x:auto}.dense-4{--mat-form-field-container-height: 40px;--mat-form-field-filled-label-display: none;--mat-form-field-container-vertical-padding: 8px;--mat-form-field-filled-with-label-container-padding-top: 8px;--mat-form-field-filled-with-label-container-padding-bottom: 8px}.search-icon{font-weight:700;font-size:20px;color:#000000de;opacity:.87}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mat-mdc-form-field-subscript-wrapper{display:none}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mat-mdc-text-field-wrapper{border-radius:10px}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{padding-right:8px!important}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#fafafa!important}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:#000000de;caret-color:#000000de;opacity:.87;letter-spacing:normal}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled .mdc-line-ripple:before,:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled .mdc-line-ripple:after{border:none!important}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled .mat-mdc-floating-label:not(.mdc-floating-label--float-above){display:block!important}:host::ng-deep mat-form-field.sof-form-field.table-search-field .mdc-text-field--filled .mat-mdc-floating-label:not(.mdc-floating-label--float-above) .search-label{color:#000000de;opacity:.6;font-family:Poppins;letter-spacing:normal}:host::ng-deep mat-form-field.sof-form-field.table-search-field.mat-focused .mat-mdc-text-field-wrapper{outline:3px solid var(--primary-color-300-parts);outline-offset:2px}:host::ng-deep mat-form-field.sof-form-field.table-search-field.mat-focused .mat-mdc-text-field-wrapper i.search-icon{color:var(--primary-color-500-parts)}::ng-deep .custom-paginator{width:100%;justify-content:flex-start;align-items:flex-start;display:inline-flex;height:40px!important;margin-top:24px}::ng-deep .custom-paginator .first-section{flex:1 1 0;align-self:stretch;justify-content:flex-start;align-items:center!important;gap:16px!important;display:flex}::ng-deep .custom-paginator .first-section .button-part-1{height:40px!important;align-self:center;padding-left:16px;background:#fafafa;border-radius:8px;overflow:unset!important;justify-content:center;align-items:center;display:inline-flex;border:none;gap:16px;border:2px solid transparent}::ng-deep .custom-paginator .first-section .button-part-1:hover,::ng-deep .custom-paginator .first-section .button-part-1:focus,::ng-deep .custom-paginator .first-section .button-part-1:active{border-radius:10px;justify-content:center;display:inline-flex;border-color:var(--primary-color-500-parts);height:40px!important;align-self:center;padding-left:16px;background:#fafafa;overflow:unset!important;align-items:center;gap:16px}::ng-deep .custom-paginator .first-section .field{display:flex;flex-direction:row;gap:16px;align-items:center}::ng-deep .custom-paginator .mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{align-items:center!important;width:100px!important}::ng-deep .custom-paginator .second-section{justify-content:flex-start;align-items:center;gap:16px;display:flex}::ng-deep .custom-paginator .page-select{height:100%;padding:8px 16px;background:#fafafa;border-radius:8px;overflow:hidden;justify-content:flex-start;align-items:center;gap:16px;display:inline-flex}::ng-deep .custom-paginator .select-icon{width:100%;position:relative;height:20px!important;font-size:20px!important}::ng-deep .custom-paginator .pageChangeText{color:#000000de;font-size:16px;font-family:Poppins;font-weight:400;word-wrap:break-word}::ng-deep .custom-paginator .mat-select{color:#000000de;font-size:16px;font-family:Poppins;font-weight:400;word-wrap:break-word}::ng-deep .custom-paginator .go-to-page{width:fit-content;align-self:stretch;justify-content:flex-start;align-items:center;gap:16px;display:flex}::ng-deep .custom-paginator .go-to-page .outer-box{height:40px;flex-direction:column;justify-content:flex-start;align-items:flex-start;display:inline-flex}::ng-deep .custom-paginator .go-to-page .field{display:flex;flex-direction:row;gap:16px;align-items:center}::ng-deep .custom-paginator .go-to-page .button-part{align-self:center;flex:1 1 0;padding:8px 16px;background:#fafafa;border-radius:8px;overflow:unset!important;justify-content:center;align-items:flex-start;gap:16px;display:inline-flex;border:2px solid transparent}::ng-deep .custom-paginator .go-to-page .button-part:hover,::ng-deep .custom-paginator .go-to-page .button-part:focus,::ng-deep .custom-paginator .go-to-page .button-part:active{align-self:center;flex:1 1 0;padding:8px 16px;background:#fafafa;border-radius:10px;overflow:unset!important;justify-content:center;align-items:flex-start;gap:16px;display:inline-flex;border-color:var(--primary-color-500-parts)}::ng-deep .custom-paginator .go-to-page .current-page{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:8px;font-size:16px!important;font-family:Poppins!important}::ng-deep .custom-paginator .go-to-page .page{position:relative}::ng-deep .custom-paginator .go-to-page .of-page{position:relative;color:#0009}::ng-deep .custom-paginator .mat-mdc-select-value{font-size:16px!important;font-family:Poppins!important}::ng-deep .custom-paginator .mat-form-field-appearance-outline .mat-mdc-select-arrow-wrapper{transform:none!important}::ng-deep .custom-paginator .mat-mdc-select-arrow{display:none!important}::ng-deep .custom-paginator .mat-form-field-underline{display:none!important}::ng-deep .custom-paginator .mdc-line-ripple{display:none!important}::ng-deep .custom-paginator .mat-mdc-text-field-wrapper{background-color:#fff!important;height:40px!important}::ng-deep .custom-paginator .mat-mdc-text-field-wrapper .mat-mdc-form-field-focus-overlay{display:none!important}::ng-deep .page-option mat-pseudo-checkbox{display:none!important}::ng-deep .mat-mdc-select-panel{scrollbar-width:thin!important;background-color:#fafafa!important;box-shadow:0 4px 8px 0 var(--neutral-color-A300-parts)!important;border-radius:8px!important;min-width:82px!important}.table-filter-select ::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}.loading-container{display:flex;align-items:center;justify-content:center;width:100%}::ng-deep .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--primary-color-500-parts)!important}\n"] }]
473
473
  }], propDecorators: { rowData: [{
474
474
  type: Input
475
475
  }], colDefs: [{
@@ -515,4 +515,4 @@ class SofTableFilter {
515
515
  /** A filter combining multiple conditions, taken from AgGrid*/
516
516
  class CombinedSimpleModel {
517
517
  }
518
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL2FnLWdyaWQtY29tcG9uZW50cy9zcmMvc29mLXRhYmxlL3NvZi10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcm1hdHVyZS9hZy1ncmlkLWNvbXBvbmVudHMvc3JjL3NvZi10YWJsZS9zb2YtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBQ04sTUFBTSxFQUVOLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckQsT0FBTyxFQUdMLHlCQUF5QixFQUMxQixNQUFNLGtEQUFrRCxDQUFDO0FBZ0IxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBRXZELDRDQUE0QztBQU01QyxNQUFNLE9BQU8saUJBQWlCO0lBTDlCO1FBT0Usc0VBQXNFO1FBQ3RELFlBQU8sR0FBZSxFQUFFLENBQUM7UUFFekMsMkRBQTJEO1FBQzNDLFlBQU8sR0FBa0IsRUFBRSxDQUFDO1FBSzVDLGtCQUFrQjtRQUNGLCtCQUEwQixHQUFrQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRTlFLG9CQUFvQjtRQUNKLGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBRTdDLDBDQUEwQztRQUMxQixpQkFBWSxHQUFZLElBQUksQ0FBQztRQUU3Qyw0Q0FBNEM7UUFDNUIsd0JBQW1CLEdBQVksSUFBSSxDQUFDO1FBRXBELHVEQUF1RDtRQUN2QyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUU5Qzs7Ozs7Ozs7VUFRRTtRQUNjLDhCQUF5QixHQUFZLEtBQUssQ0FBQztRQWMzRCw2RUFBNkU7UUFDbkUsdUJBQWtCLEdBQXlDLElBQUksWUFBWSxFQUFFLENBQUM7UUFFeEYsNEdBQTRHO1FBQ2xHLDZCQUF3QixHQUFrQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBY3ZGLDZDQUE2QztRQUN0QyxlQUFVLEdBQTBCLEVBQUUsQ0FBQztRQUU5QywyQkFBMkI7UUFDcEIsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUU5Qix5QkFBeUI7UUFDbEIsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFLL0IseUNBQXlDO1FBQ2xDLHVCQUFrQixHQUE0QixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkUsd0JBQXdCO1FBQ2pCLHVCQUFrQixHQUFXLEVBQUUsQ0FBQztRQUV2QywwQkFBMEI7UUFDbkIscUJBQWdCLEdBQVcsR0FBRyxDQUFDO1FBRXRDLDZCQUE2QjtRQUN0QixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUMvQjs7OztVQUlFO1FBQ0ssa0JBQWEsR0FBVztZQUM3QixTQUFTLEVBQUUsS0FBSztZQUNoQix3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLFNBQVMsRUFBRSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUU7WUFDdkMscUJBQXFCLEVBQUUsQ0FBQyxNQUFtQyxFQUFFLEVBQUU7Z0JBQzdELE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUNuRCxDQUFDO1NBQ0YsQ0FBQztRQUVGLHFCQUFxQjtRQUNkLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBUS9CLDBCQUEwQjtRQUNuQixpQkFBWSxHQUFrQixFQUFFLENBQUM7UUFLeEMsa0RBQWtEO1FBQzNDLHFCQUFnQixHQUF5QixFQUFFLENBQUM7UUFFbkQsaUJBQWlCO1FBQ1QsV0FBTSxHQUFjLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU5QywwQkFBMEI7UUFDbEIscUJBQWdCLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBc1p2RTtJQXBaQyx3QkFBd0I7SUFDakIsUUFBUTtRQUNiLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksV0FBVyxDQUFDLE9BQXNCO1FBQ3ZDLElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3JFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDdkMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbkM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNyRSxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQ3ZELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxXQUFXLENBQUMsTUFBc0I7UUFDdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUN4RCxNQUFNLENBQUMsUUFBUSxHQUFHLEdBQUcsRUFBRTtZQUNyQixNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQztZQUNqQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksb0JBQW9CLEVBQUU7Z0JBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO2FBQzlCO2lCQUNJO2dCQUNILElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNuQjtZQUNELElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQTtJQUNILENBQUM7SUFFRCwyREFBMkQ7SUFDcEQsbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN4QyxNQUFNLFdBQVcsR0FBdUIsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztZQUN2RixJQUFJLENBQUMsZ0JBQWdCLEdBQUc7Z0JBQ3RCLEtBQUssRUFBRSxXQUFXO2dCQUNsQixVQUFVLEVBQUUsSUFBSTthQUNqQixDQUFDO1NBQ0g7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUNoRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsaUNBQWlDO0lBQ3pCLFVBQVU7UUFDaEIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztTQUNyQjthQUNJLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxPQUFPLEVBQUU7WUFDbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7U0FDckI7YUFDSTtZQUNILElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGtCQUFrQixDQUFDLEtBQWE7UUFDckMsK0ZBQStGO1FBQy9GLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCx5QkFBeUI7SUFDbEIsUUFBUTtRQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQTtRQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELDZCQUE2QjtJQUN0QixZQUFZO1FBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQTtRQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGNBQWMsQ0FBQyxLQUE2QjtRQUNqRCwwREFBMEQ7UUFDMUQsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQ3JCLDRDQUE0QztZQUM1QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUN4RCxzQkFBc0I7WUFDdEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZUFBZTtRQUNwQixNQUFNLG1CQUFtQixHQUFXLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0QsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3hELElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxtQkFBbUIsRUFBRTtZQUM1QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsS0FBSyxDQUFDO2dCQUNwRSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyw4REFBOEQsQ0FBQztnQkFDL0YsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQzdCLCtEQUErRCxFQUFFLEVBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUMsQ0FDcEcsQ0FBQztZQUNKLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1lBQ3JELENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNUO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELDZEQUE2RDtJQUNyRCxvQkFBb0I7UUFDMUIscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxDQUFDLEVBQUU7WUFDdEQsMEJBQTBCO1lBQzFCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxDQUFDO1lBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNqQyxPQUFPO1NBQ1I7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDNUI7UUFDRCxtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9ILDBCQUEwQjtRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixNQUFNLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNqRCxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3RCO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztRQUN6QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLEdBQUcsUUFBUSxDQUFDO1FBQ3RFLE1BQU0sUUFBUSxHQUFHLFVBQVUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztRQUN2RyxJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsVUFBVSxHQUFHLENBQUMsTUFBTSxRQUFRLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxtQkFBbUI7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsc0NBQXNDO0lBQy9CLGlCQUFpQjtRQUN0QixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUMvQyxDQUFDO0lBRUQsaUNBQWlDO0lBQzFCLFlBQVk7UUFDakIsSUFBSSxnQkFBZ0IsR0FBZ0IsRUFBRSxDQUFDO1FBQ3ZDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMvQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7Z0JBQzVCLCtCQUErQjtnQkFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUMxRCxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO2FBQzNDO2lCQUNJLElBQUksZ0JBQWdCLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtnQkFDckMsdUNBQXVDO2dCQUN2QyxJQUFJLFdBQVcsR0FBb0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZHLHVDQUF1QztnQkFDdkMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFdBQVcsQ0FBQzthQUNsRDtpQkFDSTtnQkFDSCx5Q0FBeUM7Z0JBQ3pDLElBQUksWUFBWSxHQUF5QyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUM7Z0JBQ2hILHlDQUF5QztnQkFDekMsS0FBSyxNQUFNLGVBQWUsSUFBSSxnQkFBZ0IsRUFBRTtvQkFDOUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7aUJBQy9GO2dCQUNELGtEQUFrRDtnQkFDbEQsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFlBQVksQ0FBQzthQUNuRDtTQUNGO1FBQ0QsNkNBQTZDO1FBQzdDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsd0JBQXdCO0lBQ2pCLFlBQVk7UUFDakIsdUJBQXVCO1FBQ3ZCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3JELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDL0I7UUFDRCx5Q0FBeUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGVBQWU7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7WUFDM0QsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELEtBQUssTUFBTSxZQUFZLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ2hELHlEQUF5RDtZQUN6RCxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUU7Z0JBQ3ZCLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELG1FQUFtRTtJQUM1RCxtQkFBbUI7UUFDeEIsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLHlCQUF5QjtRQUN6QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQscUNBQXFDO0lBQzdCLGVBQWU7UUFDckIsNkJBQTZCO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsZ0RBQWdEO1FBQ2hELE1BQU0sWUFBWSxHQUFrQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDaEcscURBQXFEO1FBQ3JELE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxFQUFvQixDQUFDO1FBQ3BELDJDQUEyQztRQUMzQyxLQUFLLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBRTtZQUM5QixNQUFNLEtBQUssR0FBVyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbkMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFHLEVBQU8sQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsMkNBQTJDO1FBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBYyxFQUFFLEVBQUU7WUFDMUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNiLEtBQUssTUFBTSxHQUFHLElBQUksWUFBWSxFQUFFO29CQUM5QixNQUFNLEtBQUssR0FBVyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ25DLE1BQU0sS0FBSyxHQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztvQkFDN0UsSUFBSSxLQUFLLEVBQUU7d0JBQ1QsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQ3hDO2lCQUNGO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILDZFQUE2RTtRQUM3RSxLQUFLLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBRTtZQUM5QixNQUFNLEtBQUssR0FBVyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbkMsTUFBTSxLQUFLLEdBQVcsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sWUFBWSxHQUFlLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNyRixJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUMzQiw2Q0FBNkM7Z0JBQzdDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO2FBQzlFO1NBQ0Y7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsb0NBQW9DO0lBQzdCLGlCQUFpQjtRQUN0QixNQUFNLFdBQVcsR0FBdUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0RSxNQUFNLFVBQVUsR0FBc0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFFLE1BQU0saUJBQWlCLEdBQXNCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakcsTUFBTSxpQkFBaUIsR0FBc0I7WUFDM0MsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFVBQVU7WUFDVixpQkFBaUI7WUFDakIseUJBQXlCLEVBQUUsSUFBSSxDQUFDLHlCQUF5QjtTQUMxRCxDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUU7WUFDNUQsS0FBSyxFQUFFLE9BQU87WUFDZCxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDM0MsY0FBYyxFQUFFLHdCQUF3QjtZQUN4QyxJQUFJLEVBQUUsaUJBQWlCO1NBQ3hCLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQzFCLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsQ0FBQyxrQkFBMEMsRUFBRSxFQUFFO1lBQ2pELElBQUksa0JBQWtCLElBQUksa0JBQWtCLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtnQkFDekQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUNsRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQzthQUM5QztRQUNILENBQUMsQ0FBQyxDQUNILENBQUMsU0FBUyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7TUFNRTtJQUNNLGlCQUFpQixDQUFDLFdBQStCO1FBQ3ZELE9BQU8sV0FBVzthQUNmLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2pCLE1BQU0sVUFBVSxHQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxVQUFVLElBQUksRUFBRSxDQUFDO1lBQ3JGLElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO2dCQUNyRCxPQUFPLE1BQU0sQ0FBQzthQUNmO1FBQ0gsQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDZCxNQUFNLFVBQVUsR0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDO1lBQzlFLE9BQU87Z0JBQ0wsRUFBRSxFQUFFLE1BQU0sQ0FBQyxLQUFLO2dCQUNoQixTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSTtnQkFDdkIsSUFBSSxFQUFFLFVBQVU7YUFDakIsQ0FBQztRQUNKLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELGdEQUFnRDtJQUN6QyxxQkFBcUI7UUFDMUIsTUFBTSxPQUFPLEdBQWUsRUFBRSxDQUFDO1FBQy9CLE1BQU0sT0FBTyxHQUFrQixJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakgsTUFBTSxZQUFZLEdBQXNCLEVBQUUsQ0FBQztRQUMzQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDdEIsTUFBTSxNQUFNLEdBQVcsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQ2hCLEdBQUcsRUFBRSxNQUFNLENBQUMsS0FBSztnQkFDakIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxVQUFVO2FBQ3pCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLElBQW1CLEVBQUUsRUFBRTtZQUNqRSxNQUFNLFFBQVEsR0FBUSxFQUFFLENBQUM7WUFDekIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUN0QixNQUFNLEtBQUssR0FBVyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3JDLHlFQUF5RTtnQkFDekUsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNoRixDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLFVBQVUsR0FBb0I7WUFDbEMsWUFBWTtZQUNaLE9BQU87U0FDUixDQUFDO1FBQ0YsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsOENBQThDO0lBQ3RDLG1CQUFtQjtRQUN6QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDL0MsNkNBQTZDO1lBQzdDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEUsSUFBSSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7WUFDN0IsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFO2dCQUNoQyx5REFBeUQ7Z0JBQ3pELE1BQU0sV0FBVyxHQUFHLEtBQTZDLENBQUM7Z0JBQ2xFLEtBQUssTUFBTSxPQUFPLElBQUksV0FBVyxDQUFDLFVBQVUsRUFBRTtvQkFDNUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDMUM7YUFDRjtpQkFDSSxJQUFJLEtBQUssRUFBRTtnQkFDZCxpREFBaUQ7Z0JBQ2pELElBQUksZUFBZSxHQUFvQixLQUFLLENBQUM7Z0JBQzdDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDbEQ7WUFDRCw0QkFBNEI7WUFDNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLG1CQUFtQixDQUFDO1NBQ2hEO0lBQ0gsQ0FBQztJQUVELGtEQUFrRDtJQUMxQyxjQUFjO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2xGLENBQUM7OEdBcGhCVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixnMEJDOUM5Qiw0elRBMk9BOzsyRkQ3TGEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLFdBQVc7OEJBT0wsT0FBTztzQkFBdEIsS0FBSztnQkFHVSxPQUFPO3NCQUF0QixLQUFLO2dCQUdXLFFBQVE7c0JBQXhCLEtBQUs7Z0JBR1UsMEJBQTBCO3NCQUF6QyxLQUFLO2dCQUdVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBR1UsWUFBWTtzQkFBM0IsS0FBSztnQkFHVSxtQkFBbUI7c0JBQWxDLEtBQUs7Z0JBR1UsWUFBWTtzQkFBM0IsS0FBSztnQkFXVSx5QkFBeUI7c0JBQXhDLEtBQUs7Z0JBTVUsU0FBUztzQkFBeEIsS0FBSztnQkFHVyxnQkFBZ0I7c0JBQWhDLEtBQUs7Z0JBR1csa0JBQWtCO3NCQUFsQyxLQUFLO2dCQUdJLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFHRyx3QkFBd0I7c0JBQWpDLE1BQU07Z0JBRzJCLG1CQUFtQjtzQkFBcEQsU0FBUzt1QkFBQyxxQkFBcUI7Z0JBR00sZ0JBQWdCO3NCQUFyRCxTQUFTO3VCQUFDLGtCQUFrQjs7QUFzZS9CLHFDQUFxQztBQUNyQyxNQUFNLGNBQWM7SUFBcEI7UUFLRSxnQ0FBZ0M7UUFDaEMsWUFBTyxHQUFhLEVBQUUsQ0FBQztJQUN6QixDQUFDO0NBQUE7QUFFRCwrREFBK0Q7QUFDL0QsTUFBTSxtQkFBbUI7Q0FPeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBcclxuICBDb21wb25lbnQsIFxyXG4gIEVsZW1lbnRSZWYsIFxyXG4gIEV2ZW50RW1pdHRlciwgXHJcbiAgaW5qZWN0LCBcclxuICBJbnB1dCwgXHJcbiAgT25DaGFuZ2VzLCBcclxuICBPbkluaXQsIFxyXG4gIE91dHB1dCwgXHJcbiAgc2lnbmFsLCBcclxuICBTaW1wbGVDaGFuZ2VzLCBcclxuICBWaWV3Q2hpbGQsIFxyXG4gIFdyaXRhYmxlU2lnbmFsIFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgdGFrZSwgdGFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcblxyXG5pbXBvcnQgeyBcclxuICBDb2x1bW5EYXRhLCBcclxuICBDb2x1bW5PcHRpb25zRGF0YSwgXHJcbiAgU29mQ29sdW1uT3B0aW9uc0NvbXBvbmVudCBcclxufSBmcm9tICcuLi9jb2x1bW4tb3B0aW9ucy1tb2RhbC9jb2x1bW4tb3B0aW9ucy5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHtcclxuICBBcHBseUNvbHVtblN0YXRlUGFyYW1zLFxyXG4gIENvbERlZixcclxuICBDb2x1bW4sXHJcbiAgQ29sdW1uU3RhdGUsXHJcbiAgRmlsdGVyTW9kZWwsXHJcbiAgR3JpZEFwaSxcclxuICBHcmlkUmVhZHlFdmVudCxcclxuICBJUm93Tm9kZSxcclxuICBQYWdpbmF0aW9uQ2hhbmdlZEV2ZW50LFxyXG4gIFN1cHByZXNzS2V5Ym9hcmRFdmVudFBhcmFtcyxcclxuICBUZXh0RmlsdGVyTW9kZWxcclxufSBmcm9tIFwiYWctZ3JpZC1jb21tdW5pdHlcIjtcclxuXHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbi8qKiBUaGUgU29mdGhlb24gQXJtYXR1cmUgVGFibGUgY29tcG9uZW50ICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc29mLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc29mLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vc29mLXRhYmxlLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU29mVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcblxyXG4gIC8qKiBUaGUgbGFuZ3VhZ2UgdGV4dCBvciBhIGtleSB0aGF0IHdpbGwgYmUgc2hvd24gaW4gdGhpcyBjb21wb25lbnQgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgcm93RGF0YTogQXJyYXk8YW55PiA9IFtdO1xyXG5cclxuICAvKiogQ29sdW1uIERlZmluaXRpb25zOiBEZWZpbmVzICYgY29udHJvbHMgZ3JpZCBjb2x1bW5zLiAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjb2xEZWZzOiBBcnJheTxDb2xEZWY+ID0gW107XHJcblxyXG4gIC8qKiBTaXplIG1vZGVzIGZvciB0YWJsZSAqL1xyXG4gIEBJbnB1dCgpIHByaXZhdGUgc2l6ZU1vZGU6ICdDb21wYWN0JyB8ICdSb29teScgfCAnRGVmYXVsdCc7XHJcblxyXG4gIC8qKiBQYWdlcyBzaXplcyAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwYWdpbmF0aW9uUGFnZVNpemVTZWxlY3RvcjogQXJyYXk8bnVtYmVyPiA9IFsxMCwgMjAsIDUwLCAxMDBdO1xyXG5cclxuICAvKiogRW5hYmxlIHNlYXJjaCAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVTZWFyY2g6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvKiogRW5hYmxlIGN1c3RvbSB0ZXh0IGZpbHRlciBkcm9wZG93bnMgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgZW5hYmxlRmlsdGVyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLyoqIEVuYWJsZSBjb2x1bW4gb3B0aW9ucyBtb2RhbCBzZWxlY3Rpb24gKi9cclxuICBASW5wdXQoKSBwdWJsaWMgZW5hYmxlQ29sdW1uT3B0aW9uczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKiBFbmFibGUgZXhwb3J0IGJ1dHRvbiB0byBvdXRwdXQgZmlsdGVyZWQgcm93IGRhdGEgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgZW5hYmxlRXhwb3J0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKiBcclxuICAgKiBUbyBkaXNwbGF5IHRoZSB0ZXh0IG9uIHRoZSBjb2x1bW4gb3B0aW9ucyBtb2RhbCwgd2hpY2ggc3RhdGVzIC1cclxuICAgKiBgXCJPcHRpb25zIHdpbGwgYmUgc2F2ZWQgZm9yIHRoZSBuZXh0IHRpbWUgeW91IGxvZyBpbi5cImBcclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqIEBkZXNjcmlwdGlvbiBzZXQgdG8gdHJ1ZSBpZiBzZXQtdXAgZm9yIHNhdmluZyBwcmVmZXJlbmNlcyB0byBVc2VyIGRhdGEuXHJcbiAgICogQG5vdGUgWW91IGNhbiBzdGlsbCBzYXZlIHByZWZlcmVuY2VzIHRvIF9sb2NhbF8gb3IgX3Nlc3Npb25fIHN0b3JhZ2VcclxuICAgKiB1c2luZyB0aGUgYHNhdmVkQ29sdW1uU3RhdGVgIGlucHV0LCBhbmQgYHVwZGF0ZWRDb2x1bW5TdGF0ZWAgb3V0cHV0IGV2ZW50LlxyXG4gICAqIEBzZWUgVGhlIERlbW8gc2l0ZSBpcyBzYXZpbmcgdG8gbG9jYWwgc3RvcmFnZS5cclxuICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93U2F2ZUNvbHVtbk9wdGlvbnNUZXh0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKiBcclxuICAgKiBOYW1lL2xhYmVsIG9mIHRoZSB0YWJsZSBcclxuICAgKiBAbm90ZSBzaG91bGQgYmUgYSB0cmFuc2xhdGlvbiBrZXlcclxuICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0YWJsZU5hbWU6IHN0cmluZztcclxuXHJcbiAgLyoqIFVzZXJzIHNhdmVkIGNvbHVtbiBvcHRpb25zIHN0YXRlICovXHJcbiAgQElucHV0KCkgcHJpdmF0ZSBzYXZlZENvbHVtblN0YXRlOiBBcHBseUNvbHVtblN0YXRlUGFyYW1zO1xyXG5cclxuICAvKiogSW5pdGlhbCBmaWx0ZXIgbW9kZWwgKi9cclxuICBASW5wdXQoKSBwcml2YXRlIGluaXRpYWxGaWx0ZXJNb2RlbDogRmlsdGVyTW9kZWw7XHJcblxyXG4gIC8qKiBPdXRwdXQgdXBkYXRlZCBjb2x1bW4gb3B0aW9ucyBldmVudCB0byBzYXZlIHRvIHVzZXIgb3IgYnJvd3NlciBzdG9yYWdlICovXHJcbiAgQE91dHB1dCgpIHVwZGF0ZWRDb2x1bW5TdGF0ZTogRXZlbnRFbWl0dGVyPEFwcGx5Q29sdW1uU3RhdGVQYXJhbXM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvKiogT3V0cHV0IGZpbHRlcmVkL3NvcnRlZCByb3cgZGF0YSBhbmQgdGFibGUgaGVhZGVycywgYWxsIHZhbHVlcyByZXR1cm5lZCB3aWxsIGJlIGZvcm1hdHRlZCAmIHRyYW5zbGF0ZWQgKi9cclxuICBAT3V0cHV0KCkgZmlsdGVyZWRSb3dEYXRhRm9yRXhwb3J0OiBFdmVudEVtaXR0ZXI8RXhwb3J0VGFibGVEYXRhPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLyoqIHRoZSBzZWFyY2ggaW5wdXQgKi9cclxuICBAVmlld0NoaWxkKCdncmlkU2VhcmNoVGV4dElucHV0JykgZ3JpZFNlYXJjaFRleHRJbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuXHJcbiAgLyoqIFRoZSBoaWRkZW4gZWxlbWVudCB0aGF0IGFubm91bmNlcyB3aGVuIHRoZSB0YWJsZSBjb250ZW50IGNoYW5nZXMgZnJvbSBmaWx0ZXIgKi9cclxuICBAVmlld0NoaWxkKCdhcmlhUmVzdWx0c0NvdW50JykgcHVibGljIGFyaWFSZXN1bHRzQ291bnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG5cclxuICAvKiogXHJcbiAgICogS2VlcCB0cmFjayBvZiB0aGUgY3VycmVudCBjb2x1bW4gc3RhdGVcclxuICAgKiBAbm90ZSBJZiBjb2x1bW5zIGFyZSByZS1kZWZpbmVkIChvbkNoYW5nZXMpLCB0aGlzIHN0YXRlIHdpbGwgYmUgYXBwbGllZFxyXG4gICovXHJcbiAgcHJpdmF0ZSBjdXJyZW50Q29sdW1uU3RhdGU6IEFwcGx5Q29sdW1uU3RhdGVQYXJhbXM7XHJcblxyXG4gIC8qKiBDb2x1bW4gbmFtZXMgdGhhdCBzaG91bGQgYmUgZmlsdGVyYWJsZSAqL1xyXG4gIHB1YmxpYyBjb2xGaWx0ZXJzOiBBcnJheTxTb2ZUYWJsZUZpbHRlcj4gPSBbXTtcclxuXHJcbiAgLyoqIFJvdyBIZWlnaHQgZm9yIHRhYmxlICovXHJcbiAgcHVibGljIHJvd0hlaWdodDogbnVtYmVyID0gNDg7XHJcblxyXG4gIC8qKiBDdXJyZW50IFBhZ2UgSW5kZXggKi9cclxuICBwdWJsaWMgY3VycmVudFBhZ2U6IG51bWJlciA9IDA7XHJcblxyXG4gIC8qKiBHcmlkIEFQSSAqL1xyXG4gIHByaXZhdGUgZ3JpZEFwaSE6IEdyaWRBcGk7XHJcblxyXG4gIC8qKiBJcyB0aGUgdGFibGUgcmVhZHkgdG8gYmUgZGlzcGxheWVkICovXHJcbiAgcHVibGljIGlzR3JpZERhdGFSZW5kZXJlZDogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xyXG5cclxuICAvKiogRGVmYXVsdCBQYWdlIFNpemUgKi9cclxuICBwdWJsaWMgcGFnaW5hdGlvblBhZ2VTaXplOiBudW1iZXIgPSAyMDsgXHJcblxyXG4gIC8qKiBUb29sIHRpcCBzaG93IGRlbGF5ICovXHJcbiAgcHVibGljIHRvb2x0aXBTaG93RGVsYXk6IG51bWJlciA9IDUwMDtcclxuICBcclxuICAvKiogTnVtYmVyIG9mIGZpbHRlcnMgdXNlZCAqL1xyXG4gIHB1YmxpYyBmaWx0ZXJDb3VudDogbnVtYmVyID0gMDtcclxuICAvKiogXHJcbiAgICogRGVmYXVsdCBDb2x1bW4gRGVmaW5pdGlvbiBcclxuICAgKiBAbm90ZSAoc3VwcHJlc3NLZXlib2FyZEV2ZW50KSBUYWJsZSBjZWxscyBjYW4gYmUgbmF2aWdhdGVkIHdpdGggdGhlIGFycm93IGtleXMsIFxyXG4gICAqIGlmIHRoZSBjZWxsIGNvbnRhaW5zIGEgYnV0dG9uIHlvdSBjYW4gVGFiIGludG8gdGhlIGJ1dHRvbiwgZW50ZXIgfCBzcGFjZSB0byBpbnRlcmFjdC5cclxuICAqL1xyXG4gIHB1YmxpYyBkZWZhdWx0Q29sRGVmOiBDb2xEZWYgPSB7XHJcbiAgICByZXNpemFibGU6IGZhbHNlLCAvLyBkaXNhYmxlIHJlc2l6ZSBcclxuICAgIHN1cHByZXNzSGVhZGVyTWVudUJ1dHRvbjogdHJ1ZSwgLy8gZGlzYWJsZSBkZWZhdWx0IGZpbHRlciBtZW51IFxyXG4gICAgc3VwcHJlc3NNb3ZhYmxlOiB0cnVlLCAvLyBkaXNhYmxlIGRlZmF1bHQgZHJhZyAmIGRyb3AgZm9yIGNvbHVtbnMgXHJcbiAgICBjZWxsU3R5bGU6IHsganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIgfSxcclxuICAgIHN1cHByZXNzS2V5Ym9hcmRFdmVudDogKHBhcmFtczogU3VwcHJlc3NLZXlib2FyZEV2ZW50UGFyYW1zKSA9PiB7XHJcbiAgICAgIHJldHVybiBwYXJhbXMuZXZlbnQua2V5ID09PSAnVGFiJyA/IHRydWUgOiBmYWxzZTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICAvKiogTGVuZ3RoIG9mIGRhdGEgKi9cclxuICBwdWJsaWMgdG90YWxMZW5ndGg6IG51bWJlciA9IDA7XHJcblxyXG4gIC8qKlRvdGFsIG51bWJlciBvZiBwYWdlcyAqL1xyXG4gIHB1YmxpYyB0b3RhbE51bWJlck9mUGFnZXM6IG51bWJlcjtcclxuXHJcbiAgLyoqIFBhZ2UgQ2hhbmdlIHRleHQgKi9cclxuICBwdWJsaWMgcGFnZUNoYW5nZVRleHQ6IHN0cmluZztcclxuXHJcbiAgLyoqIFBhZ2Ugc2VsZWN0b3IgYXJyYXkgKi9cclxuICBwdWJsaWMgcGFnZVNlbGVjdG9yOiBBcnJheTxudW1iZXI+ID0gW107XHJcblxyXG4gIC8qKiBGaWx0ZXIgUGFuZWwgb3BlbiBzdGF0ZSAqL1xyXG4gIHB1YmxpYyBmaWx0ZXJPcGVuU3RhdGU6IGJvb2xlYW47XHJcblxyXG4gIC8qKiBUaGUgbGlzdCBvZiBmaWx0ZXJzIGFuZCB0aGUgc2VsZWN0ZWQgdmFsdWVzICovXHJcbiAgcHVibGljIGZpbHRlclNlbGVjdGlvbnM6IEFycmF5PEFycmF5PHN0cmluZz4+ID0gW107XHJcblxyXG4gIC8qKiBtYXQtZGlhbG9nICovXHJcbiAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xyXG5cclxuICAvKiogVHJhbnNsYXRpb24gc2VydmljZSAqL1xyXG4gIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcclxuXHJcbiAgLyoqIE9uIGNvbXBvbmVudCBpbml0ICovXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXNpemVHcmlkKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBbmd1bGFyIE9uIENoYW5nZXNcclxuICAgKiBAcGFyYW0gY2hhbmdlcyBUaGUgaW5wdXQgY2hhbmdlc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlcy5yb3dEYXRhICYmICFjaGFuZ2VzLnJvd0RhdGEuZmlyc3RDaGFuZ2UgJiYgISF0aGlzLmdyaWRBcGkpIHtcclxuICAgICAgdGhpcy50b3RhbExlbmd0aCA9IHRoaXMucm93RGF0YS5sZW5ndGg7XHJcbiAgICAgIHRoaXMucG9wdWxhdGVGaWx0ZXJzKCk7XHJcbiAgICAgIHRoaXMuaGFuZGxlUGFnZUNoYW5nZVRleHQoKTtcclxuICAgICAgdGhpcy5pc0dyaWREYXRhUmVuZGVyZWQuc2V0KHRydWUpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXMuY29sRGVmcyAmJiAhY2hhbmdlcy5jb2xEZWZzLmZpcnN0Q2hhbmdlICYmICEhdGhpcy5ncmlkQXBpKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZ3JpZEFwaS5hcHBseUNvbHVtblN0YXRlKHRoaXMuY3VycmVudENvbHVtblN0YXRlKTtcclxuICAgICAgICB0aGlzLnBvcHVsYXRlRmlsdGVycygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbGxlZCB3aGVuIHRoZSBncmlkIGhhcyBpbmdlc3RlZCB0aGUgaW5wdXQgZGF0YVxyXG4gICAqIEBwYXJhbSBwYXJhbXMgR3JpZCBSZWFkeSBFdmVudCxcclxuICAgKiBUaGUgZ3JpZCBoYXMgaW5pdGlhbGl6ZWQgYW5kIGlzIHJlYWR5IGZvciBtb3N0IGFwaSBjYWxscywgYnV0IG1heSBub3QgYmUgZnVsbHkgcmVuZGVyZWQgeWV0LlxyXG4gICAqIEBub3RlIHlvdSBjYW4gbm90IGFjY2VzcyB0aGlzLmdyaWRBcGkgYmVmb3JlIHRoaXMgZnVuY3Rpb24gaXMgcnVuLCBcclxuICAgKiBhbnkgYXR0ZW1wdHMgdG8gYWNjZXNzIHRoaXMuZ3JpZEFwaSBpbiB0aGlzIGNvbXBvbmVudHMgbmdPbkluaXQgb3IgdGhlIGZpcnN0IG5nT25DaGFuZ2VzIGN5Y2xlXHJcbiAgICogd2lsbCByZXN1bHQgaW4gYSB0eXBlIGVycm9yOyBiZWluZyB0aGlzLmdyaWRBcGkgaXMgdW5kZWZpbmVkIGF0IHRoYXQgdGltZS5cclxuICAgKi9cclxuICBwdWJsaWMgb25HcmlkUmVhZHkocGFyYW1zOiBHcmlkUmVhZHlFdmVudCkge1xyXG4gICAgdGhpcy5ncmlkQXBpID0gcGFyYW1zLmFwaTtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldEN1cnJlbnRQYWdlKCkgKyAxO1xyXG4gICAgdGhpcy50b3RhbExlbmd0aCA9IHRoaXMuZ3JpZEFwaS5wYWdpbmF0aW9uR2V0Um93Q291bnQoKTtcclxuICAgIHdpbmRvdy5vbnJlc2l6ZSA9ICgpID0+IHtcclxuICAgICAgY29uc3QgbW9iaWxlV2lkdGhUaHJlc2hvbGQgPSA3NTI7XHJcbiAgICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8PSBtb2JpbGVXaWR0aFRocmVzaG9sZCkge1xyXG4gICAgICAgIHRoaXMucm93SGVpZ2h0ID0gNDA7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uUGFnZVNpemUgPSAxMDtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLnJlc2l6ZUdyaWQoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmhhbmRsZVBhZ2VDaGFuZ2VUZXh0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogRmlyZWQgdGhlIGZpcnN0IHRpbWUgZGF0YSBpcyByZW5kZXJlZCBpbnRvIHRoZSBncmlkLiAqL1xyXG4gIHB1YmxpYyBvbkZpcnN0RGF0YVJlbmRlcmVkKCkge1xyXG4gICAgaWYgKCF0aGlzLnNhdmVkQ29sdW1uU3RhdGU/LnN0YXRlLmxlbmd0aCkge1xyXG4gICAgICBjb25zdCBjb2x1bW5TdGF0ZTogQXJyYXk8Q29sdW1uU3RhdGU+ID0gc3RydWN0dXJlZENsb25lKHRoaXMuZ3JpZEFwaS5nZXRDb2x1bW5TdGF0ZSgpKTtcclxuICAgICAgdGhpcy5zYXZlZENvbHVtblN0YXRlID0ge1xyXG4gICAgICAgIHN0YXRlOiBjb2x1bW5TdGF0ZSxcclxuICAgICAgICBhcHBseU9yZGVyOiB0cnVlXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICB0aGlzLmdyaWRBcGkuYXBwbHlDb2x1bW5TdGF0ZSh0aGlzLnNhdmVkQ29sdW1uU3RhdGUpO1xyXG4gICAgdGhpcy51cGRhdGVkQ29sdW1uU3RhdGUuZW1pdCh0aGlzLnNhdmVkQ29sdW1uU3RhdGUpO1xyXG4gICAgdGhpcy5jdXJyZW50Q29sdW1uU3RhdGUgPSB0aGlzLnNhdmVkQ29sdW1uU3RhdGU7XHJcbiAgICB0aGlzLnBvcHVsYXRlRmlsdGVycygpO1xyXG4gICAgdGhpcy5oYW5kbGVQYWdlQ2hhbmdlVGV4dCgpO1xyXG4gICAgdGhpcy5pc0dyaWREYXRhUmVuZGVyZWQuc2V0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJlc2l6ZSBncmlkIGZyb20gc2l6ZSBtb2RlICovXHJcbiAgcHJpdmF0ZSByZXNpemVHcmlkKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2l6ZU1vZGUgPT09ICdDb21wYWN0Jykge1xyXG4gICAgICB0aGlzLnJvd0hlaWdodCA9IDQwO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5zaXplTW9kZSA9PT0gJ1Jvb215Jykge1xyXG4gICAgICB0aGlzLnJvd0hlaWdodCA9IDU2O1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMucm93SGVpZ2h0ID0gNDg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPbiBwYWdlIHNlbGVjdGlvbiBjaGFuZ2VcclxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHNlbGVjdGVkIHBhZ2UgbnVtYmVyXHJcbiAgICovXHJcbiAgcHVibGljIG9uUGFnZU51bWJlckNoYW5nZSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAvLyBUaGUgcGFnZSB2YWx1ZXMgYXJlIDEgb2ZmIHRvIG1ha2UgYSAxLWJhc2VkIGFycmF5LCBidXQgdGhlIGFjdHVhbCBwYWdlcyBhcmUgYSAwLWJhc2VkIGFycmF5LlxyXG4gICAgdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25Hb1RvUGFnZSh2YWx1ZSAtIDEpO1xyXG4gIH1cclxuXHJcbiAgLyoqIE9uIG5leHQgcGFnZSBldmVudCAqL1xyXG4gIHB1YmxpYyBuZXh0UGFnZSgpIHtcclxuICAgIHRoaXMuZ3JpZEFwaS5wYWdpbmF0aW9uR29Ub05leHRQYWdlKCk7XHJcbiAgICB0aGlzLmhhbmRsZVBhZ2VDaGFuZ2VUZXh0KClcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldEN1cnJlbnRQYWdlKCkgKyAxO1xyXG4gIH1cclxuXHJcbiAgLyoqIE9uIFByZXZpb3VzIFBhZ2UgRXZlbnQgKi9cclxuICBwdWJsaWMgcHJldmlvdXNQYWdlKCkge1xyXG4gICAgdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25Hb1RvUHJldmlvdXNQYWdlKCk7XHJcbiAgICB0aGlzLmhhbmRsZVBhZ2VDaGFuZ2VUZXh0KClcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldEN1cnJlbnRQYWdlKCkgKyAxO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT24gQ2hhbmdlIFBhZ2UgU2l6ZSBFdmVudFxyXG4gICAqIEBwYXJhbSBldmVudCBUaGUgcGFnaW5hdGlvbiBldmVudFxyXG4gICAqL1xyXG4gIHB1YmxpYyBjaGFuZ2VQYWdlU2l6ZShldmVudDogUGFnaW5hdGlvbkNoYW5nZWRFdmVudCkge1xyXG4gICAgLy8gT25seSBuZWVkIHRvIGRvIHRoaXMgd29yayBpZiB0aGUgcGFnZSBzaXplIGhhcyBjaGFuZ2VkLlxyXG4gICAgaWYgKGV2ZW50Lm5ld1BhZ2VTaXplKSB7XHJcbiAgICAgIC8vIFVwZGF0ZSB0aGUgdG90YWwgbnVtYmVyIG9mIGZpbHRlcmVkIHJvd3MuXHJcbiAgICAgIHRoaXMudG90YWxMZW5ndGggPSB0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldFJvd0NvdW50KCk7XHJcbiAgICAgIC8vIEhhbmRsZSB0ZXh0IGNoYW5nZXNcclxuICAgICAgdGhpcy5oYW5kbGVQYWdlQ2hhbmdlVGV4dCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIFxyXG4gICAqIENhbGxlZCB3aGVuIHRoZSBncmlkIGZpbHRlciBpcyBjaGFuZ2VkIFxyXG4gICAqIEB0b2RvIHVwZGF0ZSB0aGUgZmlsdGVyIGRyb3Bkb3duIG9wdGlvbnMgYmFzZWQgb24gdGhlIGZpbHRlcmVkIGRhdGEgc2V0LCBpbnN0ZWFkIG9mIHRoZSBjb21wbGV0ZSBkYXRhIHNldC5cclxuICAgKi9cclxuICBwdWJsaWMgb25GaWx0ZXJDaGFuZ2VkKCk6IHZvaWQge1xyXG4gICAgY29uc3QgcHJldmlvdXNUb3RhbExlbmd0aDogbnVtYmVyID0gTnVtYmVyKHRoaXMudG90YWxMZW5ndGgpO1xyXG4gICAgLy8gVXBkYXRlIHRoZSB0b3RhbCBudW1iZXIgb2YgZmlsdGVyZWQgcm93cy5cclxuICAgIHRoaXMudG90YWxMZW5ndGggPSB0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldFJvd0NvdW50KCk7XHJcbiAgICBpZiAodGhpcy50b3RhbExlbmd0aCAhPT0gcHJldmlvdXNUb3RhbExlbmd0aCkge1xyXG4gICAgICB0aGlzLmFyaWFSZXN1bHRzQ291bnQubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSBcIlwiO1xyXG4gICAgICB0aGlzLmFyaWFSZXN1bHRzQ291bnQubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnRvdGFsTGVuZ3RoID09PSAwXHJcbiAgICAgICAgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnYXJtYXR1cmUuc29mLXRhYmxlLnNjcmVlbi1yZWFkZXIuZmlsdGVyZWQtcmVzdWx0cy5uby1yZXN1bHRzJylcclxuICAgICAgICA6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxyXG4gICAgICAgICAgJ2FybWF0dXJlLnNvZi10YWJsZS5zY3JlZW4tcmVhZGVyLmZpbHRlcmVkLXJlc3VsdHMuaGFzLXJlc3VsdHMnLCB7J3Jlc3VsdHNDb3VudCc6IHRoaXMudG90YWxMZW5ndGh9XHJcbiAgICAgICAgKTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hcmlhUmVzdWx0c0NvdW50Lm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gXCJcIjtcclxuICAgICAgfSwgMTAwKTtcclxuICAgIH1cclxuICAgIHRoaXMuaGFuZGxlUGFnZUNoYW5nZVRleHQoKTtcclxuICB9XHJcblxyXG4gIC8qKiBHZW5lcmF0ZWQgdGV4dCBmb3Igc2hvd2luZyBwYWdlcyBpbiBmb3JtYXQ6IDEtMTEgb2YgMTEgKi9cclxuICBwcml2YXRlIGhhbmRsZVBhZ2VDaGFuZ2VUZXh0KCk6IHZvaWQge1xyXG4gICAgLy8gSGFuZGxlIGVtcHR5IHRhYmxlXHJcbiAgICBpZiAoIXRoaXMudG90YWxMZW5ndGggfHwgdGhpcy5wYWdpbmF0aW9uUGFnZVNpemUgPT09IDApIHtcclxuICAgICAgLy8gUmVzZXQgdGhlIHBhZ2luYXRpb24gVUlcclxuICAgICAgdGhpcy50b3RhbE51bWJlck9mUGFnZXMgPSAxO1xyXG4gICAgICB0aGlzLnBhZ2VTZWxlY3RvciA9IFsxXTtcclxuICAgICAgdGhpcy5wYWdlQ2hhbmdlVGV4dCA9IGAwYDtcclxuICAgICAgdGhpcy5ncmlkQXBpLnNob3dOb1Jvd3NPdmVybGF5KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ3JpZEFwaS5oaWRlT3ZlcmxheSgpO1xyXG4gICAgfVxyXG4gICAgLy8gVXBkYXRlIHRoZSB0b3RhbCBudW1iZXIgb2YgcGFnZXNcclxuICAgIHRoaXMudG90YWxOdW1iZXJPZlBhZ2VzID0gdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25HZXRUb3RhbFBhZ2VzKCkgfHwgTWF0aC5jZWlsKHRoaXMudG90YWxMZW5ndGggLyB0aGlzLnBhZ2luYXRpb25QYWdlU2l6ZSkgfHwgMTtcclxuICAgIC8vIFJlc2V0IHRoZSBwYWdlIHNlbGVjdG9yXHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcclxuICAgIGNvbnN0IHBhZ2VTZWxlY3RvciA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdGhpcy50b3RhbE51bWJlck9mUGFnZXM7IGkrKykge1xyXG4gICAgICBwYWdlU2VsZWN0b3IucHVzaChpKTtcclxuICAgIH1cclxuICAgIHRoaXMucGFnZVNlbGVjdG9yID0gcGFnZVNlbGVjdG9yO1xyXG4gICAgY29uc3QgbGVuZ3RoID0gTWF0aC5tYXgodGhpcy50b3RhbExlbmd0aCwgMCk7XHJcbiAgICBjb25zdCBwYWdlU2l6ZSA9IHRoaXMucGFnaW5hdGlvblBhZ2VTaXplO1xyXG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IHRoaXMuZ3JpZEFwaS5wYWdpbmF0aW9uR2V0Q3VycmVudFBhZ2UoKSAqIHBhZ2VTaXplO1xyXG4gICAgY29uc3QgZW5kSW5kZXggPSBzdGFydEluZGV4IDwgbGVuZ3RoID8gTWF0aC5taW4oc3RhcnRJbmRleCArIHBhZ2VTaXplLCBsZW5ndGgpIDogc3RhcnRJbmRleCArIHBhZ2VTaXplO1xyXG4gICAgdGhpcy5wYWdlQ2hhbmdlVGV4dCA9IGAke3N0YXJ0SW5kZXggKyAxfSAtICR7ZW5kSW5kZXh9YDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFwcGx5IHRoZSBzZWFyY2ggZmlsdGVyIG9uIGRhdGEgd2hlbiBzZWFyY2ggdGV4dCBjaGFuZ2VkXHJcbiAgICovXHJcbiAgcHVibGljIG9uU2VhcmNoVGV4dENoYW5nZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyaWRBcGkuc2V0R3JpZE9wdGlvbihcInF1aWNrRmlsdGVyVGV4dFwiLCB0aGlzLmdyaWRTZWFyY2hUZXh0SW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKiogVG9nZ2xlIHRoZSBmaWx0ZXIgcGFuZWwgZGlzcGxheSAqL1xyXG4gIHB1YmxpYyB0b2dnbGVGaWx0ZXJQYW5lbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsdGVyT3BlblN0YXRlID0gIXRoaXMuZmlsdGVyT3BlblN0YXRlO1xyXG4gIH1cclxuXHJcbiAgLyoqIEFwcGx5IHRoZSBzZWxlY3RlZCBmaWx0ZXJzICovXHJcbiAgcHVibGljIGFwcGx5RmlsdGVycygpOiB2b2lkIHtcclxuICAgIGxldCB0YWJsZUZpbHRlck1vZGVsOiBGaWx0ZXJNb2RlbCA9IHt9O1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmNvbEZpbHRlcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgY29sRmlsdGVyID0gdGhpcy5jb2xGaWx0ZXJzW2ldO1xyXG4gICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gdGhpcy5maWx0ZXJTZWxlY3Rpb25zW2ldO1xyXG4gICAgICBpZiAoIXNlbGVjdGVkRWxlbWVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgLy8gUmVzZXQgb3V0IHRoZSBjb2x1bW4gZmlsdGVyc1xyXG4gICAgICAgIHRoaXMuZ3JpZEFwaS5zZXRDb2x1bW5GaWx0ZXJNb2RlbChjb2xGaWx0ZXIuaGVhZGVyLCBudWxsKTtcclxuICAgICAgICB0YWJsZUZpbHRlck1vZGVsW2NvbEZpbHRlci5oZWFkZXJdID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgLy8gU2V0IHRoZSBzaW5nbGUgZmlsdGVyIGZvciB0aGUgY29sdW1uXHJcbiAgICAgICAgbGV0IGZpbHRlck1vZGVsOiBUZXh0RmlsdGVyTW9kZWwgPSB7IGZpbHRlclR5cGU6ICd0ZXh0JywgdHlwZTogJ2VxdWFscycsIGZpbHRlcjogc2VsZWN0ZWRFbGVtZW50c1swXSB9O1xyXG4gICAgICAgIC8vIEFwcGx5IHRoZSBmaWx0ZXIgbW9kZWwgdG8gdGhlIGNvbHVtblxyXG4gICAgICAgIHRhYmxlRmlsdGVyTW9kZWxbY29sRmlsdGVyLmhlYWRlcl0gPSBmaWx0ZXJNb2RlbDtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICAvLyBTZXQgbXVsdGlwbGUgT1IgZmlsdGVycyBmb3IgdGhlIGNvbHVtblxyXG4gICAgICAgIGxldCBmaWx0ZXJNb2RlbHM6IENvbWJpbmVkU2ltcGxlTW9kZWw8VGV4dEZpbHRlck1vZGVsPiA9IHsgZmlsdGVyVHlwZTogJ3RleHQnLCBvcGVyYXRvcjogJ09SJywgY29uZGl0aW9uczogW10gfTtcclxuICAgICAgICAvLyBTZXQgdGhlIHNlbGVjdGVkIGVsZW1lbnRzIGluIHRoZSBtb2RlbFxyXG4gICAgICAgIGZvciAoY29uc3Qgc2VsZWN0ZWRFbGVtZW50IG9mIHNlbGVjdGVkRWxlbWVudHMpIHtcclxuICAgICAgICAgIGZpbHRlck1vZGVscy5jb25kaXRpb25zLnB1c2goeyBmaWx0ZXJUeXBlOiAndGV4dCcsIHR5cGU6ICdlcXVhbHMnLCBmaWx0ZXI6IHNlbGVjdGVkRWxlbWVudCB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gQXBwbHkgdGhlIGZpbHRlciBtb2RlbCBjb2xsZWN0aW9uIHRvIHRoZSBjb2x1bW5cclxuICAgICAgICB0YWJsZUZpbHRlck1vZGVsW2NvbEZpbHRlci5oZWFkZXJdID0gZmlsdGVyTW9kZWxzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBPbmNlIGV2ZXJ5dGhpbmcgaXMgc2V0LCB1cGRhdGUgdGhlIGZpbHRlcnNcclxuICAgIHRoaXMuZmlsdGVyQ291bnQgPSB0aGlzLmdldEZpbHRlckNvdW50KCk7XHJcbiAgICB0aGlzLmdyaWRBcGkuc2V0RmlsdGVyTW9kZWwodGFibGVGaWx0ZXJNb2RlbCk7XHJcbiAgICB0aGlzLmdyaWRBcGkub25GaWx0ZXJDaGFuZ2VkKCk7XHJcbiAgfVxyXG5cclxuICAvKiogQ2xlYXIgYWxsIGZpbHRlcnMgKi9cclxuICBwdWJsaWMgY2xlYXJGaWx0ZXJzKCk6IHZvaWQge1xyXG4gICAgLy8gQ2xlYXIgYWxsIHNlbGVjdGlvbnNcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5maWx0ZXJTZWxlY3Rpb25zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyU2VsZWN0aW9uc1tpXSA9IFtdO1xyXG4gICAgfVxyXG4gICAgLy8gU2V0IHRoZSBmdWxsIGdyaWQgZmlsdGVyIG1vZGVsIHRvIG51bGxcclxuICAgIHRoaXMuZ3JpZEFwaS5zZXRGaWx0ZXJNb2RlbChudWxsKTtcclxuICAgIC8vIFVwZGF0ZSB0aGUgZGlzcGxheVxyXG4gICAgdGhpcy5ncmlkQXBpLm9uRmlsdGVyQ2hhbmdlZCgpO1xyXG4gICAgdGhpcy5maWx0ZXJDb3VudCA9IHRoaXMuZ2V0RmlsdGVyQ291bnQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBubyBmaWx0ZXJzIGFyZSBzZWxlY3RlZFxyXG4gICAqIEByZXR1cm5zIFRydWUgaWYgYSBmaWx0ZXIgaXMgc2VsZWN0ZWQsIGZhbHNlIG90aGVyd2lzZS5cclxuICAgKi9cclxuICBwdWJsaWMgaGFzRW1wdHlGaWx0ZXJzKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLmZpbHRlclNlbGVjdGlvbnMgfHwgIXRoaXMuZmlsdGVyU2VsZWN0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBmb3IgKGNvbnN0IGZpbHRlclNlbGVjdCBvZiB0aGlzLmZpbHRlclNlbGVjdGlvbnMpIHtcclxuICAgICAgLy8gSWYgYXQgbGVhc3Qgb25lIGZpbHRlciBoYXMgYmVlbiBzZWxlY3RlZCwgcmV0dXJuIGZhbHNlXHJcbiAgICAgIGlmIChmaWx0ZXJTZWxlY3QubGVuZ3RoKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKiBDYW5jZWwgdGhlIGNoYW5nZXMgdG8gdGhlIGZpbHRlciBhbmQgY2xvc2VzIHRoZSBmaWx0ZXIgcGFuZWwgKi9cclxuICBwdWJsaWMgY2FuY2VsRmlsdGVyQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIC8vU2V0cyB0aGUgZmlsdGVyIHNlbGVjdGlvbnMgb24gZmlsdGVyIHBhbmVsXHJcbiAgICB0aGlzLnNldEZpbHRlclNlbGVjdGlvbnMoKTtcclxuICAgIC8vIENsb3NlIHRoZSBmaWx0ZXIgcGFuZWxcclxuICAgIHRoaXMudG9nZ2xlRmlsdGVyUGFuZWwoKTtcclxuICB9XHJcblxyXG4gIC8qKiBQb3B1bGF0ZXMgdGhlIGZpbHRlciBkcm9wZG93bnMgKi9cclxuICBwcml2YXRlIHBvcHVsYXRlRmlsdGVycygpOiB2b2lkIHtcclxuICAgIC8vIFJlc2V0IHRoZSBmaWx0ZXIgZHJvcGRvd25zXHJcbiAgICB0aGlzLmZpbHRlclNlbGVjdGlvbnMgPSBbXTtcclxuICAgIHRoaXMuY29sRmlsdGVycyA9IFtdO1xyXG4gICAgLy8gR2V0IHRoZSBjb2x1bW4gZGVmaW5pdGlvbnMgdGhhdCBoYXZlIGEgZmlsdGVyXHJcbiAgICBjb25zdCBmaWx0ZXJlZENvbHM6IEFycmF5PENvbERlZj4gPSB0aGlzLmdyaWRBcGkuZ2V0Q29sdW1uRGVmcygpLmZpbHRlcigoZGVmKSA9PiBkZWZbJ2ZpbHRlciddKTtcclxuICAgIC8vIENyZWF0ZSBhIG1hcCB0byBzdG9yZSB1bmlxdWUgdmFsdWVzIGZvciBlYWNoIGZpZWxkXHJcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZXNNYXAgPSBuZXcgTWFwPHN0cmluZywgU2V0PGFueT4+KCk7XHJcbiAgICAvLyBJbml0aWFsaXplIHNldHMgZm9yIGVhY2ggZmllbGQgKGNvbHVtbikgXHJcbiAgICBmb3IgKGNvbnN0IGNvbCBvZiBmaWx0ZXJlZENvbHMpIHtcclxuICAgICAgY29uc3QgZmllbGQ6IHN0cmluZyA9IGNvbFtcImZpZWxkXCJdO1xyXG4gICAgICBmaWx0ZXJWYWx1ZXNNYXAuc2V0KGZpZWxkLCBuZXcgU2V0PGFueT4oKSk7XHJcbiAgICB9XHJcbiAgICAvLyBVc2UgZm9yRWFjaE5vZGUgdG8gaXRlcmF0ZSBvdmVyIHRoZSByb3dzXHJcbiAgICB0aGlzLmdyaWRBcGkuZm9yRWFjaE5vZGUoKG5vZGU6IElSb3dOb2RlKSA9PiB7XHJcbiAgICAgIGlmIChub2RlLmRhdGEpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGNvbCBvZiBmaWx0ZXJlZENvbHMpIHtcclxuICAgICAgICAgIGNvbnN0IGZpZWxkOiBzdHJpbmcgPSBjb2xbXCJmaWVsZFwiXTtcclxuICAgICAgICAgIGNvbnN0IHZhbHVlOiBhbnkgPSB0aGlzLmdyaWRBcGkuZ2V0Q2VsbFZhbHVlKHtyb3dOb2RlOiBub2RlLCBjb2xLZXk6IGZpZWxkfSk7XHJcbiAgICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgZmlsdGVyVmFsdWVzTWFwLmdldChmaWVsZCk/LmFkZCh2YWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIC8vIE5vdyB0aGF0IHdlIGhhdmUgdGhlIHVuaXF1ZSB2YWx1ZXMgZm9yIGVhY2ggZmllbGQsIHBvcHVsYXRlIGZpbHRlciBvcHRpb25zXHJcbiAgICBmb3IgKGNvbnN0IGNvbCBvZiBmaWx0ZXJlZENvbHMpIHtcclxuICAgICAgY29uc3QgZmllbGQ6IHN0cmluZyA9IGNvbFtcImZpZWxkXCJdO1xyXG4gICAgICBjb25zdCBsYWJlbDogc3RyaW5nID0gY29sW1wiaGVhZGVyTmFtZVwiXTtcclxuICAgICAgY29uc3QgdW5pcXVlVmFsdWVzOiBBcnJheTxhbnk+ID0gQXJyYXkuZnJvbShmaWx0ZXJWYWx1ZXNNYXAuZ2V0KGZpZWxkKSB8fCBbXSkuc29ydCgpO1xyXG4gICAgICBpZiAodW5pcXVlVmFsdWVzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAvLyBFbnN1cmUgdGhlcmUncyBzcGFjZSBmb3IgZmlsdGVyIHNlbGVjdGlvbnNcclxuICAgICAgICB0aGlzLmZpbHRlclNlbGVjdGlvbnMucHVzaChbXSk7IFxyXG4gICAgICAgIHRoaXMuY29sRmlsdGVycy5wdXNoKHsgaGVhZGVyOiBmaWVsZCwgbGFiZWw6IGxhYmVsLCBvcHRpb25zOiB1bmlxdWVWYWx1ZXMgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuZ3JpZEFwaS5zZXRGaWx0ZXJNb2RlbCh0aGlzLmluaXRpYWxGaWx0ZXJNb2RlbCk7XHJcbiAgICB0aGlzLnNldEZpbHRlclNlbGVjdGlvbnMoKTtcclxuICAgIHRoaXMuZmlsdGVyQ291bnQgPSB0aGlzLmdldEZpbHRlckNvdW50KCk7XHJcbiAgfVxyXG5cclxuICAvKiogT3BlbiB0aGUgY29sdW1uIG9wdGlvbnMgbW9kYWwgKi9cclxuICBwdWJsaWMgb3BlbkNvbHVtbk9wdGlvbnMoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb2x1bW5TdGF0ZTogQXJyYXk8Q29sdW1uU3RhdGU+ID0gdGhpcy5ncmlkQXBpLmdldENvbHVtblN0YXRlKCk7XHJcbiAgICBjb25zdCBjb2x1bW5EYXRhOiBBcnJheTxDb2x1bW5EYXRhPiA9IHRoaXMuY29sdW1uU3RhdGVUb0RhdGEoY29sdW1uU3RhdGUpO1xyXG4gICAgY29uc3QgaW5pdGlhbENvbHVtbkRhdGE6IEFycmF5PENvbHVtbkRhdGE+ID0gdGhpcy5jb2x1bW5TdGF0ZVRvRGF0YSh0aGlzLnNhdmVkQ29sdW1uU3RhdGUuc3RhdGUpO1xyXG4gICAgY29uc3QgY29sdW1uT3B0aW9uc0RhdGE6IENvbHVtbk9wdGlvbnNEYXRhID0ge1xyXG4gICAgICB0YWJsZU5hbWU6IHRoaXMudGFibGVOYW1lLFxyXG4gICAgICBjb2x1bW5EYXRhLFxyXG4gICAgICBpbml0aWFsQ29sdW1uRGF0YSxcclxuICAgICAgc2hvd1NhdmVDb2x1bW5PcHRpb25zVGV4dDogdGhpcy5zaG93U2F2ZUNvbHVtbk9wdGlvbnNUZXh0XHJcbiAgICB9O1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihTb2ZDb2x1bW5PcHRpb25zQ29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiAnNTAwcHgnLFxyXG4gICAgICBwb3NpdGlvbjogeyBib3R0b206ICc0MHB4JywgcmlnaHQ6ICc0MHB4JyB9LFxyXG4gICAgICBhcmlhTGFiZWxsZWRCeTogJ2NvbHVtbi1vcHRpb25zLWhlYWRpbmcnLFxyXG4gICAgICBkYXRhOiBjb2x1bW5PcHRpb25zRGF0YVxyXG4gICAgfSk7XHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKFxyXG4gICAgICB0YWtlKDEpLFxyXG4gICAgICB0YXAoKHVwZGF0ZWRDb2x1bW5TdGF0ZTogQXBwbHlDb2x1bW5TdGF0ZVBhcmFtcykgPT4ge1xyXG4gICAgICAgIGlmICh1cGRhdGVkQ29sdW1uU3RhdGUgJiYgdXBkYXRlZENvbHVtblN0YXRlLnN0YXRlLmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5ncmlkQXBpLmFwcGx5Q29sdW1uU3RhdGUodXBkYXRlZENvbHVtblN0YXRlKTtcclxuICAgICAgICAgIHRoaXMudXBkYXRlZENvbHVtblN0YXRlLmVtaXQodXBkYXRlZENvbHVtblN0YXRlKTtcclxuICAgICAgICAgIHRoaXMuY3VycmVudENvbHVtblN0YXRlID0gdXBkYXRlZENvbHVtblN0YXRlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICkuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYXBzIGBBcnJheTxDb2x1bW5TdGF0ZT5gIHRvIGBBcnJheTxDb2x1bW5EYXRhPmAgXHJcbiAgICogQG5vdGUgZmlsdGVycyBvdXQgYW55IGNvbHVtbnMgbWFya2VkIGFzICdwaW5uZWQnIGJ5IHRoZSBjb2x1bW4gZGVmaW5pdGlvbnMuXHJcbiAgICogQG5vdGUgZmlsdGVycyBhbnkgY29sdW1ucyB3aXRob3V0IGEgJ2hlYWRlck5hbWUnLlxyXG4gICAqIEBwYXJhbSBjb2x1bW5TdGF0ZSB0aGUgY29sdW1uIHN0YXRlIHRvIG1vZGlmeVxyXG4gICAqIEByZXR1cm5zIGFuIGFycmF5IG9mIGNvbHVtbiBkYXRhIGZvcm1hdHRlZCB0byBiZSBpbmdlc3RlZCBieSB0aGUgYFNvZkNvbHVtbk9wdGlvbnNDb21wb25lbnRgXHJcbiAgKi9cclxuICBwcml2YXRlIGNvbHVtblN0YXRlVG9EYXRhKGNvbHVtblN0YXRlOiBBcnJheTxDb2x1bW5TdGF0ZT4pOiBBcnJheTxDb2x1bW5EYXRhPiB7XHJcbiAgICByZXR1cm4gY29sdW1uU3RhdGVcclxuICAgICAgLmZpbHRlcigoY29sdW1uKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaGVhZGVyTmFtZTogc3RyaW5nID0gdGhpcy5ncmlkQXBpLmdldENvbHVtbkRlZihjb2x1bW4uY29sSWQpPy5oZWFkZXJOYW1lIHx8IFwiXCI7XHJcbiAgICAgICAgaWYgKGhlYWRlck5hbWUgJiYgaGVhZGVyTmFtZS5sZW5ndGggJiYgIWNvbHVtbi5waW5uZWQpIHtcclxuICAgICAgICAgIHJldHVybiBjb2x1bW47XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICAubWFwKChjb2x1bW4pID0+IHtcclxuICAgICAgICBjb25zdCBoZWFkZXJOYW1lOiBzdHJpbmcgPSB0aGlzLmdyaWRBcGkuZ2V0Q29sdW1uRGVmKGNvbHVtbi5jb2xJZCkuaGVhZGVyTmFtZTtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgaWQ6IGNvbHVtbi5jb2xJZCxcclxuICAgICAgICAgIGlzQ2hlY2tlZDogIWNvbHVtbi5oaWRlLFxyXG4gICAgICAgICAgdGV4dDogaGVhZGVyTmFtZVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKiogRW1pdCB0aGUgY3VycmVudCBmaWx0ZXJlZC9zb3J0ZWQgcm93IGRhdGEgKi9cclxuICBwdWJsaWMgZXhwb3J0RmlsdGVyZWRSb3dEYXRhKCk6IHZvaWQge1xyXG4gICAgY29uc3Qgcm93RGF0YTogQXJyYXk8YW55PiA9IFtdO1xyXG4gICAgY29uc3QgY29sdW1uczogQXJyYXk8Q29sdW1uPiA9IHRoaXMuZ3JpZEFwaS5nZXRBbGxEaXNwbGF5ZWRDb2x1bW5zKCkuZmlsdGVyKChjb2wpID0+IGNvbC5nZXRDb2xEZWYoKS5oZWFkZXJOYW1lKTtcclxuICAgIGNvbnN0IHRhYmxlSGVhZGVyczogQXJyYXk8S2V5VmFsUGFpcj4gPSBbXTtcclxuICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbERlZjogQ29sRGVmID0gY29sLmdldENvbERlZigpO1xyXG4gICAgICB0YWJsZUhlYWRlcnMucHVzaCh7XHJcbiAgICAgICAga2V5OiBjb2xEZWYuZmllbGQsXHJcbiAgICAgICAgdmFsdWU6IGNvbERlZi5oZWFkZXJOYW1lXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmdyaWRBcGkuZm9yRWFjaE5vZGVBZnRlckZpbHRlckFuZFNvcnQoKG5vZGU6IElSb3dOb2RlPGFueT4pID0+IHtcclxuICAgICAgY29uc3Qgbm9kZURhdGE6IGFueSA9IHt9O1xyXG4gICAgICBjb2x1bW5zLmZvckVhY2goKGNvbCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbElkOiBzdHJpbmcgPSBjb2wuZ2V0Q29sSWQoKTtcclxuICAgICAgICAvLyBVc2UgZ3JpZEFwaSdzIGdldENlbGxWYWx1ZSB0byBnZXQgdGhlIHZhbHVlIHRyYW5zZm9ybWVkIGJ5IHZhbHVlR2V0dGVyXHJcbiAgICAgICAgbm9kZURhdGFbY29sSWRdID0gdGhpcy5ncmlkQXBpLmdldENlbGxWYWx1ZSh7IHJvd05vZGU6IG5vZGUsIGNvbEtleTogY29sSWQgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByb3dEYXRhLnB1c2gobm9kZURhdGEpO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBleHBvcnREYXRhOiBFeHBvcnRUYWJsZURhdGEgPSB7XHJcbiAgICAgIHRhYmxlSGVhZGVycyxcclxuICAgICAgcm93RGF0YVxyXG4gICAgfTtcclxuICAgIHRoaXMuZmlsdGVyZWRSb3dEYXRhRm9yRXhwb3J0LmVtaXQoZXhwb3J0RGF0YSk7XHJcbiAgfVxyXG5cclxuICAvKiogU2V0cyBmaWx0ZXIgc2VsZWN0aW9ucyBmb3IgZmlsdGVyIHBhbmVsICovXHJcbiAgcHJpdmF0ZSBzZXRGaWx0ZXJTZWxlY3Rpb25zKCk6IHZvaWQge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmNvbEZpbHRlcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgLy8gR2V0IHRoZSBzdG9yZWQgZmlsdGVycyBmb3IgdGhlIGdpdmVuIG1vZGVsXHJcbiAgICAgIGNvbnN0IGNvbEZpbHRlciA9IHRoaXMuY29sRmlsdGVyc1tpXTtcclxuICAgICAgY29uc3QgbW9kZWwgPSB0aGlzLmdyaWRBcGkuZ2V0Q29sdW1uRmlsdGVyTW9kZWwoY29sRmlsdGVyLmhlYWRlcik7XHJcbiAgICAgIGxldCBmaWx0ZXJTZWxlY3Rpb25EYXRhID0gW107XHJcbiAgICAgIGlmIChtb2RlbCAmJiBtb2RlbFtcImNvbmRpdGlvbnNcIl0pIHtcclxuICAgICAgICAvLyBUaGUgbW9kZWwgaXMgYSBjb21iaW5lZCBtb2RlbCB3aXRoIG11bHRpcGxlIHNlbGVjdGlvbnNcclxuICAgICAgICBjb25zdCBmaWx0ZXJNb2RlbCA9IG1vZGVsIGFzIENvbWJpbmVkU2ltcGxlTW9kZWw8VGV4dEZpbHRlck1vZGVsPjtcclxuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgZmlsdGVyTW9kZWwuY29uZGl0aW9ucykge1xyXG4gICAgICAgICAgZmlsdGVyU2VsZWN0aW9uRGF0YS5wdXNoKGVsZW1lbnQuZmlsdGVyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAobW9kZWwpIHtcclxuICAgICAgICAvLyBBc3N1bWUgdGhlIG1vZGVsIGlzIGEgc2luZ2xlIFRleHQgRmlsdGVyIE1vZGVsXHJcbiAgICAgICAgbGV0IGZpbHRlclNlbGVjdGlvbjogVGV4dEZpbHRlck1vZGVsID0gbW9kZWw7XHJcbiAgICAgICAgZmlsdGVyU2VsZWN0aW9uRGF0YS5wdXNoKGZpbHRlclNlbGVjdGlvbi5maWx0ZXIpO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIFNldCB0aGUgZmlsdGVyIHNlbGVjdGlvbnNcclxuICAgICAgdGhpcy5maWx0ZXJTZWxlY3Rpb25zW2ldID0gZmlsdGVyU2VsZWN0aW9uRGF0YTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBHZXRzIHRoZSBjb3VudCBvZiBjdXJyZW50IGZpbHRlciBzZWxlY3Rpb25zICovXHJcbiAgcHJpdmF0ZSBnZXRGaWx0ZXJDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyU2VsZWN0aW9ucy5yZWR1Y2UoKGFjYywgY3VycikgPT4gYWNjLmNvbmNhdChjdXJyKSwgW10pLmxlbmd0aDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXhwb3J0VGFibGVEYXRhIHtcclxuICB0YWJsZUhlYWRlcnM/OiBBcnJheTxLZXlWYWxQYWlyPjtcclxuICByb3dEYXRhPzogQXJyYXk8YW55PlxyXG59XHJcblxyXG5pbnRlcmZhY2UgS2V5VmFsUGFpciB7IFxyXG4gIGtleT86IHN0cmluZztcclxuICB2YWx1ZT86IHN0cmluZztcclxufVxyXG5cclxuLyoqIFVzZWQgZm9yIHNldHRpbmcgZmlsdGVyIHZhbHVlcyAqL1xyXG5jbGFzcyBTb2ZUYWJsZUZpbHRlciB7XHJcbiAgLyoqIFRoZSBjb2x1bW4gaGVhZGVyICovXHJcbiAgaGVhZGVyOiBzdHJpbmc7XHJcbiAgLyoqIFRoZSBjb2x1bW4gbGFiZWwgb3IgdHJhbnNsYXRpb24ga2V5ICovXHJcbiAgbGFiZWw6IHN0cmluZztcclxuICAvKiogVGhlIGNvbHVtbiBmaWx0ZXIgb3B0aW9ucyAqL1xyXG4gIG9wdGlvbnM6IHN0cmluZ1tdID0gW107XHJcbn1cclxuXHJcbi8qKiBBIGZpbHRlciBjb21iaW5pbmcgbXVsdGlwbGUgY29uZGl0aW9ucywgdGFrZW4gZnJvbSBBZ0dyaWQqL1xyXG5jbGFzcyBDb21iaW5lZFNpbXBsZU1vZGVsPFQ+IHtcclxuICAvKiogVGhlIGZpbHRlciB0eXBlLiBVc3VhbGx5ICd0ZXh0JyAqL1xyXG4gIGZpbHRlclR5cGU6IHN0cmluZztcclxuICAvKiogVGhlIG9wZXJhdG9yLiBVc3VhbGx5ICdPUicgKi9cclxuICBvcGVyYXRvcjogJ0FORCcgfCAnT1InO1xyXG4gIC8qKiBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgdGhlIEZpbHRlciBNb2RlbCAqL1xyXG4gIGNvbmRpdGlvbnM6IFRbXTtcclxufVxyXG4iLCI8ZGl2IFxyXG4gIFtmeFNob3ddPVwiaXNHcmlkRGF0YVJlbmRlcmVkKClcIlxyXG4gIGZ4TGF5b3V0R2FwPVwiMTZweFwiIG0tYi0yND5cclxuICBAaWYgKGVuYWJsZUZpbHRlciAmJiBjb2xGaWx0ZXJzLmxlbmd0aCkge1xyXG4gICAgPGJ1dHRvbiBcclxuICAgICAgKGNsaWNrKT1cInRvZ2dsZUZpbHRlclBhbmVsKClcIiBcclxuICAgICAgbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwic29mLWJ1dHRvbi12MlwiXHJcbiAgICAgIHRoZW1lPVwibmV1dHJhbFwiIFxyXG4gICAgICBbYXR0ci5lbXBoYXNpc109XCJmaWx0ZXJPcGVuU3RhdGUgPyAnc29saWQnIDogZmlsdGVyQ291bnQgPT09IDAgPyAnc2Vjb25kYXJ5JyA6ICdjb250YWluZWQnXCJcclxuICAgICAgW21hdEJhZGdlXT1cImZpbHRlckNvdW50XCJcclxuICAgICAgbWF0QmFkZ2VQb3NpdGlvbj1cImFmdGVyXCJcclxuICAgICAgW21hdEJhZGdlSGlkZGVuXT1cImZpbHRlckNvdW50ID09PSAwID8gdHJ1ZSA6IGZhbHNlXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwicGggcGgtYm9sZCBwaC1zbGlkZXJzLWhvcml6b250YWxcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgIHt7J2FybWF0dXJlLnNvZi10YWJsZS5maWx0ZXInIHwgdHJhbnNsYXRlfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIH1cclxuICBAaWYgKGVuYWJsZVNlYXJjaCkge1xyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwic29mLWZvcm0tZmllbGQgdGFibGUtc2VhcmNoLWZpZWxkIGRlbnNlLTRcIiBmeEZsZXg9XCJhdXRvXCI+XHJcbiAgICAgIDxzcGFuIG1hdFByZWZpeD5cclxuICAgICAgICA8aSBjbGFzcz1cInBoLWJvbGQgcGgtbWFnbmlmeWluZy1nbGFzcyBzZWFyY2gtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8bWF0LWxhYmVsIGNsYXNzPVwic2VhcmNoLWxhYmVsXCI+e3snYXJtYXR1cmUuc29mLXRhYmxlLnNlYXJjaCcgfCB0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXQgXHJcbiAgICAgICAgKGlucHV0KT1cIm9uU2VhcmNoVGV4dENoYW5nZWQoKVwiIFxyXG4gICAgICAgICNncmlkU2VhcmNoVGV4dElucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgaWQ9XCJncmlkU2VhcmNoVGV4dElucHV0XCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidhcm1hdHVyZS5zb2YtdGFibGUuc2NyZWVuLXJlYWRlci5zZWFyY2gtZmlsdGVyLWRlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZVwiLz5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgfVxyXG4gIEBpZiAoZW5hYmxlQ29sdW1uT3B0aW9ucykge1xyXG4gICAgPGJ1dHRvbiBcclxuICAgICAgKGNsaWNrKT1cIm9wZW5Db2x1bW5PcHRpb25zKClcIlxyXG4gICAgICBtYXQtZmxhdC1idXR0b24gY2xhc3M9XCJzb2YtYnV0dG9uLWljb24tdjJcIiBcclxuICAgICAgdGhlbWU9XCJuZXV0cmFsXCIgZW1waGFzaXM9XCJzZWNvbmRhcnlcIiBpZD1cIm9wZW4tY29sdW1uLW9wdGlvbnNcIlxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidhcm1hdHVyZS5zb2YtdGFibGUuc2NyZWVuLXJlYWRlci5jb2x1bW4tb3B0aW9ucy1idG4nIHwgdHJhbnNsYXRlXCJcclxuICAgICAgW21hdFRvb2x0aXBdPVwiJ2FybWF0dXJlLnNvZi10YWJsZS5zY3JlZW4tcmVhZGVyLmNvbHVtbi1vcHRpb25zLWJ0bicgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgPGkgY2xhc3M9XCJwaC1ib2xkIHBoLXBhdXNlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgPC9idXR0b24+XHJcbiAgfVxyXG4gIEBpZihlbmFibGVFeHBvcnQpIHtcclxuICAgIDxidXR0b24gXHJcbiAgICAgIChjbGljayk9XCJleHBvcnRGaWx0ZXJlZFJvd0RhdGEoKVwiXHJcbiAgICAgIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cInNvZi1idXR0b24taWNvbi12MlwiIFxyXG4gICAgICB0aGVtZT1cIm5ldXRyYWxcIiBlbXBoYXNpcz1cInNlY29uZGFyeVwiIGlkPVwiZXhwb3J0LXRhYmxlXCJcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInYXJtYXR1cmUuc29mLXRhYmxlLnNjcmVlbi1yZWFkZXIuZXhwb3J0LXRhYmxlJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgIFttYXRUb29sdGlwXT1cIidhcm1hdHVyZS5zb2YtdGFibGUuc2NyZWVuLXJlYWRlci5leHBvcnQtdGFibGUnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwicGgtYm9sZCBwaC1leHBvcnRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICA8L2J1dHRvbj5cclxuICB9XHJcbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NvZi10YWJsZS1yaWdodC1idXR0b25zXVwiPjwvbmctY29udGVudD5cclxuICA8IS0tIFxyXG4gIE9ubHkgaW5qZWN0IDxidXR0b24+J3MgaW5zaWRlIGFuIDxuZy1jb250YWluZXIgc29mLXRhYmxlLXJpZ2h0LWJ1dHRvbnM+XHJcbiAgLi4uIFxyXG4gIDxuZy1jb250YWluZXIgc29mLXRhYmxlLXJpZ2h0LWJ1dHRvbnM+XHJcbiAgICA8YnV0dG9uIFxyXG4gICAgICAoY2xpY2spPVwiYW55RnVuY3Rpb24oKVwiXHJcbiAgICAgIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cInNvZi1idXR0b24taWNvbi12MlwiIFxyXG4gICAgICB0aGVtZT1cIm5ldXRyYWxcIiBlbXBoYXNpcz1cInNlY29uZGFyeVwiIGFyaWEtbGFiZWw9XCJhbnkgYnV0dG9uXCJcclxuICAgICAgbWF0VG9vbHRpcD1cImFueSBidXR0b25cIj5cclxuICAgICAgPGkgY2xhc3M9XCJwaC1ib2xkIHBoLWFjb3JuXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgLi4uIFxyXG4gIG5vdGU6IG1ha2Ugc3VyZSBidXR0b25zIGhhdmUgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIHRvIG1hdGNoIG90aGVycyA9XHJcbiAgYG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cInNvZi1idXR0b24taWNvbi12MlwiIHRoZW1lPVwibmV1dHJhbFwiIGVtcGhhc2lzPVwic2Vjb25kYXJ5XCJgXHJcbiAgKiByZW1lbWJlciB0byBhZGQgYXJpYS1sYWJlbCBhbmQgdG9vbHRpcCBmb3IgaWNvbiBidXR0b25cclxuICAtLT5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICNhcmlhUmVzdWx0c0NvdW50IGNsYXNzPVwic3Itb25seVwiIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiPjwvZGl2PlxyXG5cclxuQGlmIChpc0dyaWREYXRhUmVuZGVyZWQoKSAmJiBmaWx0ZXJPcGVuU3RhdGUpIHtcclxuICA8ZmllbGRzZXQgXHJcbiAgICBjbGFzcz1cImZpbHRlci1wYW5lbFwiIHJvbGU9XCJyZWdpb25cIlxyXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCInYXJtYXR1cmUuc29mLXRhYmxlLnNjcmVlbi1yZWFkZXIuc2VsZWN0LWZpbHRlcnMtZGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlXCI+XHJcbiAgICA8cD5cclxuICAgICAgPGkgY2xhc3M9XCJwaCBwaC1ib2xkIHBoLXNsaWRlcnMtaG9yaXpvbnRhbFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJtLWwtOFwiPnt7J2FybWF0dXJlLnNvZi10YWJsZS5maWx0ZXInIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICA8L3A+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXBhbmVsLXNlbGVjdC1jb250YWluZXIgbS12LTIwXCI+XHJcbiAgICAgIEBmb3IgKGNvbEZpbHRlciBvZiBjb2xGaWx0ZXJzOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgaSkge1xyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwic29mLWZvcm0tZmllbGQgdGFibGUtZmlsdGVyLXNlbGVjdFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57e2NvbEZpbHRlci5sYWJlbH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdCBcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJTZWxlY3Rpb25zW2ldXCIgXHJcbiAgICAgICAgICAgIG11bHRpcGxlIFxyXG4gICAgICAgICAgICBpZD1cImZpbHRlckRyb3Bkb3due3tpfX1cIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7J2FybWF0dXJlLnNvZi10YWJsZS5hbGwnIHwgdHJhbnNsYXRlfX1cIiBkaXNhYmxlUmlwcGxlPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICBAZm9yIChjb2xPcHRpb24gb2YgY29sRmlsdGVyLm9wdGlvbnM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJjb2xPcHRpb25cIj5cclxuICAgICAgICAgICAgICAgIHt7Y29sT3B0aW9ufX1cclxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIj5cclxuICAgICAgPGRpdiBmeEZsZXg9XCI1MCVcIj5cclxuICAgICAgICA8YnV0dG9uIFxyXG4gICAgICAgICAgKGNsaWNrKT1cImNsZWFyRmlsdGVycygpXCIgW2Rpc2FibGVkXT1cImhhc0VtcHR5RmlsdGVycygpXCIgXHJcbiAgICAgICAgICBtYXQtZmxhdC1idXR0b24gY2xhc3M9XCJzb2YtYnV0dG9uLXYyXCJcclxuICAgICAgICAgIHRoZW1lPVwibmV1dHJhbFwiIGVtcGhhc2lzPVwiZmxvYXRpbmdcIlxyXG4gICAgICAgICAgaWQ9XCJ0YWJsZUZpbHRlckNsZWFyXCI+XHJcbiAgICAgICAgICB7eydhcm1hdHVyZS5zb2YtdGFibGUucmVzZXQnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgZnhGbGV4PVwiNTAlXCI+XHJcbiAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiMiVcIiBmeExheW91dEFsaWduPVwiZmxleC1lbmRcIj5cclxuICAgICAgICAgIDxkaXYgZnhGbGV4PVwiMCAxIGF1dG9cIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsRmlsdGVyQ2hhbmdlcygpXCIgbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwic29mLWJ1dHRvbi12MlwiIFxyXG4gICAgICAgICAgICAgIGlkPVwidGFibGVGaWx0ZXJDYW5jZWxcIiB0aGVtZT1cIm5ldXRyYWxcIiBlbXBoYXNpcz1cInNlY29uZGFyeVwiPlxyXG4gICAgICAgICAgICAgIHt7J2FybWF0dXJlLnNvZi10YWJsZS5jYW5jZWwnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgZnhGbGV4PVwiMCAxIGF1dG9cIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlGaWx0ZXJzKClcIiBtYXQtZmxhdC1idXR0b24gY2xhc3M9XCJzb2YtYnV0dG9uLXYyXCJcclxuICAgICAgICAgICAgICBpZD1cInRhYmxlRmlsdGVyQXBwbHlcIiB0aGVtZT1cInByaW1hcnlcIiBlbXBoYXNpcz1cInNvbGlkXCI+XHJcbiAgICAgICAgICAgICAge3snYXJtYXR1cmUuc29mLXRhYmxlLnJlc3VsdHMnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2ZpZWxkc2V0PlxyXG59XHJcblxyXG48YWctZ3JpZC1hbmd1bGFyIFxyXG4gIFtmeFNob3ddPVwiaXNHcmlkRGF0YVJlbmRlcmVkKClcIlxyXG4gIChncmlkUmVhZHkpPVwib25HcmlkUmVhZHkoJGV2ZW50KVwiIFxyXG4gIChmaXJzdERhdGFSZW5kZXJlZCk9XCJvbkZpcnN0RGF0YVJlbmRlcmVkKClcIlxyXG4gIChmaWx0ZXJDaGFuZ2VkKT1cIm9uRmlsdGVyQ2hhbmdlZCgpXCJcclxuICAocGFnaW5hdGlvbkNoYW5nZWQpPVwiY2hhbmdlUGFnZVNpemUoJGV2ZW50KVwiIFxyXG4gIFtyb3dEYXRhXT1cInJvd0RhdGFcIiBcclxuICBbY29sdW1uRGVmc109XCJjb2xEZWZzXCIgXHJcbiAgW2RlZmF1bHRDb2xEZWZdPVwiZGVmYXVsdENvbERlZlwiIFxyXG4gIFtwYWdpbmF0aW9uXT1cInRydWVcIiBcclxuICBbc3VwcHJlc3NQYWdpbmF0aW9uUGFuZWxdPVwidHJ1ZVwiXHJcbiAgW3BhZ2luYXRpb25QYWdlU2l6ZVNlbGVjdG9yXT1cInBhZ2luYXRpb25QYWdlU2l6ZVNlbGVjdG9yXCIgXHJcbiAgW3BhZ2luYXRpb25QYWdlU2l6ZV09XCJwYWdpbmF0aW9uUGFnZVNpemVcIlxyXG4gIFtoZWFkZXJIZWlnaHRdPVwicm93SGVpZ2h0XCIgXHJcbiAgW3Jvd0hlaWdodF09XCJyb3dIZWlnaHRcIiBcclxuICBbZG9tTGF5b3V0XT1cIidhdXRvSGVpZ2h0J1wiIFxyXG4gIFt0b29sdGlwU2hvd0RlbGF5XT1cInRvb2x0aXBTaG93RGVsYXlcIlxyXG4gIFtvdmVybGF5Tm9Sb3dzVGVtcGxhdGVdPVwiJ2FybWF0dXJlLnNvZi10YWJsZS5uby1yb3dzJyB8IHRyYW5zbGF0ZVwiXHJcbiAgW2NsYXNzLm5vLXJvd3NdPVwiIXRvdGFsTGVuZ3RoXCJcclxuICBjbGFzcz1cImFnLXRoZW1lLW1hdGVyaWFsXCI+XHJcbjwvYWctZ3JpZC1hbmd1bGFyPlxyXG5cclxuPGRpdiBcclxuICBbZnhTaG93XT1cImlzR3JpZERhdGFSZW5kZXJlZCgpXCJcclxuICBjbGFzcz1cImN1c3RvbS1wYWdpbmF0b3JcIj5cclxuICA8ZGl2IGNsYXNzPVwiZmlyc3Qtc2VjdGlvblwiPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbi1wYXJ0LTFcIiB0eXBlPVwiYnV0dG9uXCI+XHJcbiAgICAgIDxtYXQtc2VsZWN0IFxyXG4gICAgICAgICNwYWdlU2l6ZVNlbGVjdFxyXG4gICAgICAgIGlkPVwicGFnZVNpemVJbnB1dFwiIG5hbWU9XCJwYWdlU2l6ZUlucHV0XCIgXHJcbiAgICAgICAgWyh2YWx1ZSldPVwicGFnaW5hdGlvblBhZ2VTaXplXCIgZGlzYWJsZVJpcHBsZT1cInRydWVcIj5cclxuICAgICAgICBAZm9yIChzaXplIG9mIHBhZ2luYXRpb25QYWdlU2l6ZVNlbGVjdG9yOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgaSkge1xyXG4gICAgICAgICAgPG1hdC1vcHRpb24gXHJcbiAgICAgICAgICAgIGNsYXNzPVwicGFnZS1vcHRpb25cIiBpZD1cInNpemV7e2l9fVwiXHJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJwYWdpbmF0aW9uUGFnZVNpemVTZWxlY3RvcltpXVwiPlxyXG4gICAgICAgICAgICB7e3NpemV9fVxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8bWF0LXNlbGVjdC10cmlnZ2VyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3VycmVudC1wYWdlXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwYWdlXCI+e3twYWdpbmF0aW9uUGFnZVNpemV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlbGVjdC1pY29uXCI+XHJcbiAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIidwaC1ib2xkIHBoLWNhcmV0LScgKyAocGFnZVNpemVTZWxlY3QucGFuZWxPcGVuID8gJ3VwJzonZG93bicpXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L21hdC1zZWxlY3QtdHJpZ2dlcj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8c3BhbiBjbGFzcz1cInBhZ2VDaGFuZ2VUZXh0XCI+XHJcbiAgICAgIHt7cGFnZUNoYW5nZVRleHR9fSB7eydhcm1hdHVyZS5zb2YtdGFibGUub2YnIHwgdHJhbnNsYXRlfX0ge3t0b3RhbExlbmd0aH19XHJcbiAgICA8L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImdvLXRvLXBhZ2VcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJvdXRlci1ib3hcIj5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbi1wYXJ0XCIgdHlwZT1cImJ1dHRvblwiPlxyXG4gICAgICAgIDxtYXQtc2VsZWN0IFxyXG4gICAgICAgICAgI3BhZ2VOdW1iZXJTZWxlY3RcclxuICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25QYWdlTnVtYmVyQ2hhbmdlKCRldmVudC52YWx1ZSlcIlxyXG4gICAgICAgICAgWyh2YWx1ZSldPVwiY3VycmVudFBhZ2VcIiBcclxuICAgICAgICAgIGlkPVwicGFnZVNlbGVsY3RvclwiIG5hbWU9XCJwYWdlU2VsZWN0b3JcIiBkaXNhYmxlUmlwcGxlPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgQGZvciAocGFnZSBvZiBwYWdlU2VsZWN0b3I7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwicGFnZVwiIGNsYXNzPVwicGFnZS1vcHRpb25cIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnJlbnQtcGFnZVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwYWdlXCI+e3twYWdlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdC10cmlnZ2VyPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnJlbnQtcGFnZVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwYWdlXCI+e3tjdXJyZW50UGFnZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvZi1wYWdlXCI+IHt7J2FybWF0dXJlLnNvZi10YWJsZS5vZicgfCB0cmFuc2xhdGV9fSB7e3RvdGFsTnVtYmVyT2ZQYWdlc319IDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWxlY3QtaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIidwaC1ib2xkIHBoLWNhcmV0LScgKyAocGFnZU51bWJlclNlbGVjdC5wYW5lbE9wZW4gPyAndXAnOidkb3duJylcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbWF0LXNlbGVjdC10cmlnZ2VyPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxuYXYgY2xhc3M9XCJzZWNvbmQtc2VjdGlvblwiPlxyXG4gICAgICA8YnV0dG9uIFxyXG4gICAgICAgIChjbGljayk9XCJwcmV2aW91c1BhZ2UoKVwiXHJcbiAgICAgICAgaWQ9XCJwcmV2LWJ1dHRvblwiIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cInNvZi1idXR0b24taWNvbi12MlwiIHRoZW1lPVwibmV1dHJhbFwiIGVtcGhhc2lzPVwic2Vjb25kYXJ5XCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IDFcIiBcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidzY3JlZW4tcmVhZGVyLnBhZ2luYXRpb24ucHJldmlvdXMnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJwaC1ib2xkIHBoLWNhcmV0LWxlZnRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIFxyXG4gICAgICAgIChjbGljayk9XCJuZXh0UGFnZSgpXCIgXHJcbiAgICAgICAgaWQ9XCJuZXh0LWJ1dHRvblwiIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cInNvZi1idXR0b24taWNvbi12MlwiIHRoZW1lPVwibmV1dHJhbFwiIGVtcGhhc2lzPVwic2Vjb25kYXJ5XCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IHRvdGFsTnVtYmVyT2ZQYWdlc1wiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInc2NyZWVuLXJlYWRlci5wYWdpbmF0aW9uLm5leHQnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJwaC1ib2xkIHBoLWNhcmV0LXJpZ2h0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbmF2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbkBpZiAoIWlzR3JpZERhdGFSZW5kZXJlZCgpKSB7XHJcbiAgPGRpdiBjbGFzcz1cImxvYWRpbmctY29udGFpbmVyXCI+XHJcbiAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXIgY29sb3I9XCJwcmltYXJ5XCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIi8+XHJcbiAgPC9kaXY+XHJcbn1cclxuIl19
518
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL2FnLWdyaWQtY29tcG9uZW50cy9zcmMvc29mLXRhYmxlL3NvZi10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcm1hdHVyZS9hZy1ncmlkLWNvbXBvbmVudHMvc3JjL3NvZi10YWJsZS9zb2YtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBQ04sTUFBTSxFQUVOLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckQsT0FBTyxFQUdMLHlCQUF5QixFQUMxQixNQUFNLGtEQUFrRCxDQUFDO0FBZ0IxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBRXZELDRDQUE0QztBQU01QyxNQUFNLE9BQU8saUJBQWlCO0lBTDlCO1FBVUUsMkRBQTJEO1FBQzNDLFlBQU8sR0FBa0IsRUFBRSxDQUFDO1FBSzVDLGtCQUFrQjtRQUNGLCtCQUEwQixHQUFrQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRTlFLG9CQUFvQjtRQUNKLGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBRTdDLDBDQUEwQztRQUMxQixpQkFBWSxHQUFZLElBQUksQ0FBQztRQUU3Qyw0Q0FBNEM7UUFDNUIsd0JBQW1CLEdBQVksSUFBSSxDQUFDO1FBRXBELHVEQUF1RDtRQUN2QyxpQkFBWSxH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UzsrQkFDRSxXQUFXOzhCQU9MLE9BQU87c0JBQXRCLEtBQUs7Z0JBR1UsT0FBTztzQkFBdEIsS0FBSztnQkFHVyxRQUFRO3NCQUF4QixLQUFLO2dCQUdVLDBCQUEwQjtzQkFBekMsS0FBSztnQkFHVSxZQUFZO3NCQUEzQixLQUFLO2dCQUdVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBR1UsbUJBQW1CO3NCQUFsQyxLQUFLO2dCQUdVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBV1UseUJBQXlCO3NCQUF4QyxLQUFLO2dCQU1VLFNBQVM7c0JBQXhCLEtBQUs7Z0JBR1csZ0JBQWdCO3NCQUFoQyxLQUFLO2dCQUdXLGtCQUFrQjtzQkFBbEMsS0FBSztnQkFHSSxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBR0csd0JBQXdCO3NCQUFqQyxNQUFNO2dCQUcyQixtQkFBbUI7c0JBQXBELFNBQVM7dUJBQUMscUJBQXFCO2dCQUdNLGdCQUFnQjtzQkFBckQsU0FBUzt1QkFBQyxrQkFBa0I7O0FBd2UvQixxQ0FBcUM7QUFDckMsTUFBTSxjQUFjO0lBQXBCO1FBS0UsZ0NBQWdDO1FBQ2hDLFlBQU8sR0FBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztDQUFBO0FBRUQsK0RBQStEO0FBQy9ELE1BQU0sbUJBQW1CO0NBT3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgXHJcbiAgQ29tcG9uZW50LCBcclxuICBFbGVtZW50UmVmLCBcclxuICBFdmVudEVtaXR0ZXIsIFxyXG4gIGluamVjdCwgXHJcbiAgSW5wdXQsIFxyXG4gIE9uQ2hhbmdlcywgXHJcbiAgT25Jbml0LCBcclxuICBPdXRwdXQsIFxyXG4gIHNpZ25hbCwgXHJcbiAgU2ltcGxlQ2hhbmdlcywgXHJcbiAgVmlld0NoaWxkLCBcclxuICBXcml0YWJsZVNpZ25hbCBcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IHRha2UsIHRhcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5cclxuaW1wb3J0IHsgXHJcbiAgQ29sdW1uRGF0YSwgXHJcbiAgQ29sdW1uT3B0aW9uc0RhdGEsIFxyXG4gIFNvZkNvbHVtbk9wdGlvbnNDb21wb25lbnQgXHJcbn0gZnJvbSAnLi4vY29sdW1uLW9wdGlvbnMtbW9kYWwvY29sdW1uLW9wdGlvbnMuY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7XHJcbiAgQXBwbHlDb2x1bW5TdGF0ZVBhcmFtcyxcclxuICBDb2xEZWYsXHJcbiAgQ29sdW1uLFxyXG4gIENvbHVtblN0YXRlLFxyXG4gIEZpbHRlck1vZGVsLFxyXG4gIEdyaWRBcGksXHJcbiAgR3JpZFJlYWR5RXZlbnQsXHJcbiAgSVJvd05vZGUsXHJcbiAgUGFnaW5hdGlvbkNoYW5nZWRFdmVudCxcclxuICBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMsXHJcbiAgVGV4dEZpbHRlck1vZGVsXHJcbn0gZnJvbSBcImFnLWdyaWQtY29tbXVuaXR5XCI7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG4vKiogVGhlIFNvZnRoZW9uIEFybWF0dXJlIFRhYmxlIGNvbXBvbmVudCAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NvZi10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NvZi10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3NvZi10YWJsZS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFNvZlRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG5cclxuICAvKiogVGhlIGxhbmd1YWdlIHRleHQgb3IgYSBrZXkgdGhhdCB3aWxsIGJlIHNob3duIGluIHRoaXMgY29tcG9uZW50ICovXHJcbiAgQElucHV0KCkgcHVibGljIHJvd0RhdGEhOiBBcnJheTxhbnk+O1xyXG5cclxuICAvKiogQ29sdW1uIERlZmluaXRpb25zOiBEZWZpbmVzICYgY29udHJvbHMgZ3JpZCBjb2x1bW5zLiAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjb2xEZWZzOiBBcnJheTxDb2xEZWY+ID0gW107XHJcblxyXG4gIC8qKiBTaXplIG1vZGVzIGZvciB0YWJsZSAqL1xyXG4gIEBJbnB1dCgpIHByaXZhdGUgc2l6ZU1vZGU6ICdDb21wYWN0JyB8ICdSb29teScgfCAnRGVmYXVsdCc7XHJcblxyXG4gIC8qKiBQYWdlcyBzaXplcyAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwYWdpbmF0aW9uUGFnZVNpemVTZWxlY3RvcjogQXJyYXk8bnVtYmVyPiA9IFsxMCwgMjAsIDUwLCAxMDBdO1xyXG5cclxuICAvKiogRW5hYmxlIHNlYXJjaCAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVTZWFyY2g6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvKiogRW5hYmxlIGN1c3RvbSB0ZXh0IGZpbHRlciBkcm9wZG93bnMgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgZW5hYmxlRmlsdGVyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLyoqIEVuYWJsZSBjb2x1bW4gb3B0aW9ucyBtb2RhbCBzZWxlY3Rpb24gKi9cclxuICBASW5wdXQoKSBwdWJsaWMgZW5hYmxlQ29sdW1uT3B0aW9uczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKiBFbmFibGUgZXhwb3J0IGJ1dHRvbiB0byBvdXRwdXQgZmlsdGVyZWQgcm93IGRhdGEgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgZW5hYmxlRXhwb3J0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKiBcclxuICAgKiBUbyBkaXNwbGF5IHRoZSB0ZXh0IG9uIHRoZSBjb2x1bW4gb3B0aW9ucyBtb2RhbCwgd2hpY2ggc3RhdGVzIC1cclxuICAgKiBgXCJPcHRpb25zIHdpbGwgYmUgc2F2ZWQgZm9yIHRoZSBuZXh0IHRpbWUgeW91IGxvZyBpbi5cImBcclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqIEBkZXNjcmlwdGlvbiBzZXQgdG8gdHJ1ZSBpZiBzZXQtdXAgZm9yIHNhdmluZyBwcmVmZXJlbmNlcyB0byBVc2VyIGRhdGEuXHJcbiAgICogQG5vdGUgWW91IGNhbiBzdGlsbCBzYXZlIHByZWZlcmVuY2VzIHRvIF9sb2NhbF8gb3IgX3Nlc3Npb25fIHN0b3JhZ2VcclxuICAgKiB1c2luZyB0aGUgYHNhdmVkQ29sdW1uU3RhdGVgIGlucHV0LCBhbmQgYHVwZGF0ZWRDb2x1bW5TdGF0ZWAgb3V0cHV0IGV2ZW50LlxyXG4gICAqIEBzZWUgVGhlIERlbW8gc2l0ZSBpcyBzYXZpbmcgdG8gbG9jYWwgc3RvcmFnZS5cclxuICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93U2F2ZUNvbHVtbk9wdGlvbnNUZXh0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKiBcclxuICAgKiBOYW1lL2xhYmVsIG9mIHRoZSB0YWJsZSBcclxuICAgKiBAbm90ZSBzaG91bGQgYmUgYSB0cmFuc2xhdGlvbiBrZXlcclxuICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0YWJsZU5hbWU6IHN0cmluZztcclxuXHJcbiAgLyoqIFVzZXJzIHNhdmVkIGNvbHVtbiBvcHRpb25zIHN0YXRlICovXHJcbiAgQElucHV0KCkgcHJpdmF0ZSBzYXZlZENvbHVtblN0YXRlOiBBcHBseUNvbHVtblN0YXRlUGFyYW1zO1xyXG5cclxuICAvKiogSW5pdGlhbCBmaWx0ZXIgbW9kZWwgKi9cclxuICBASW5wdXQoKSBwcml2YXRlIGluaXRpYWxGaWx0ZXJNb2RlbDogRmlsdGVyTW9kZWw7XHJcblxyXG4gIC8qKiBPdXRwdXQgdXBkYXRlZCBjb2x1bW4gb3B0aW9ucyBldmVudCB0byBzYXZlIHRvIHVzZXIgb3IgYnJvd3NlciBzdG9yYWdlICovXHJcbiAgQE91dHB1dCgpIHVwZGF0ZWRDb2x1bW5TdGF0ZTogRXZlbnRFbWl0dGVyPEFwcGx5Q29sdW1uU3RhdGVQYXJhbXM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvKiogT3V0cHV0IGZpbHRlcmVkL3NvcnRlZCByb3cgZGF0YSBhbmQgdGFibGUgaGVhZGVycywgYWxsIHZhbHVlcyByZXR1cm5lZCB3aWxsIGJlIGZvcm1hdHRlZCAmIHRyYW5zbGF0ZWQgKi9cclxuICBAT3V0cHV0KCkgZmlsdGVyZWRSb3dEYXRhRm9yRXhwb3J0OiBFdmVudEVtaXR0ZXI8RXhwb3J0VGFibGVEYXRhPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLyoqIHRoZSBzZWFyY2ggaW5wdXQgKi9cclxuICBAVmlld0NoaWxkKCdncmlkU2VhcmNoVGV4dElucHV0JykgZ3JpZFNlYXJjaFRleHRJbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuXHJcbiAgLyoqIFRoZSBoaWRkZW4gZWxlbWVudCB0aGF0IGFubm91bmNlcyB3aGVuIHRoZSB0YWJsZSBjb250ZW50IGNoYW5nZXMgZnJvbSBmaWx0ZXIgKi9cclxuICBAVmlld0NoaWxkKCdhcmlhUmVzdWx0c0NvdW50JykgcHVibGljIGFyaWFSZXN1bHRzQ291bnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG5cclxuICAvKiogXHJcbiAgICogS2VlcCB0cmFjayBvZiB0aGUgY3VycmVudCBjb2x1bW4gc3RhdGVcclxuICAgKiBAbm90ZSBJZiBjb2x1bW5zIGFyZSByZS1kZWZpbmVkIChvbkNoYW5nZXMpLCB0aGlzIHN0YXRlIHdpbGwgYmUgYXBwbGllZFxyXG4gICovXHJcbiAgcHJpdmF0ZSBjdXJyZW50Q29sdW1uU3RhdGU6IEFwcGx5Q29sdW1uU3RhdGVQYXJhbXM7XHJcblxyXG4gIC8qKiBDb2x1bW4gbmFtZXMgdGhhdCBzaG91bGQgYmUgZmlsdGVyYWJsZSAqL1xyXG4gIHB1YmxpYyBjb2xGaWx0ZXJzOiBBcnJheTxTb2ZUYWJsZUZpbHRlcj4gPSBbXTtcclxuXHJcbiAgLyoqIFJvdyBIZWlnaHQgZm9yIHRhYmxlICovXHJcbiAgcHVibGljIHJvd0hlaWdodDogbnVtYmVyID0gNDg7XHJcblxyXG4gIC8qKiBDdXJyZW50IFBhZ2UgSW5kZXggKi9cclxuICBwdWJsaWMgY3VycmVudFBhZ2U6IG51bWJlciA9IDA7XHJcblxyXG4gIC8qKiBHcmlkIEFQSSAqL1xyXG4gIHByaXZhdGUgZ3JpZEFwaSE6IEdyaWRBcGk7XHJcblxyXG4gIC8qKiBJcyB0aGUgdGFibGUgcmVhZHkgdG8gYmUgZGlzcGxheWVkICovXHJcbiAgcHVibGljIGlzR3JpZERhdGFSZW5kZXJlZDogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xyXG5cclxuICAvKiogRGVmYXVsdCBQYWdlIFNpemUgKi9cclxuICBwdWJsaWMgcGFnaW5hdGlvblBhZ2VTaXplOiBudW1iZXIgPSAyMDsgXHJcblxyXG4gIC8qKiBUb29sIHRpcCBzaG93IGRlbGF5ICovXHJcbiAgcHVibGljIHRvb2x0aXBTaG93RGVsYXk6IG51bWJlciA9IDUwMDtcclxuICBcclxuICAvKiogTnVtYmVyIG9mIGZpbHRlcnMgdXNlZCAqL1xyXG4gIHB1YmxpYyBmaWx0ZXJDb3VudDogbnVtYmVyID0gMDtcclxuICAvKiogXHJcbiAgICogRGVmYXVsdCBDb2x1bW4gRGVmaW5pdGlvbiBcclxuICAgKiBAbm90ZSAoc3VwcHJlc3NLZXlib2FyZEV2ZW50KSBUYWJsZSBjZWxscyBjYW4gYmUgbmF2aWdhdGVkIHdpdGggdGhlIGFycm93IGtleXMsIFxyXG4gICAqIGlmIHRoZSBjZWxsIGNvbnRhaW5zIGEgYnV0dG9uIHlvdSBjYW4gVGFiIGludG8gdGhlIGJ1dHRvbiwgZW50ZXIgfCBzcGFjZSB0byBpbnRlcmFjdC5cclxuICAqL1xyXG4gIHB1YmxpYyBkZWZhdWx0Q29sRGVmOiBDb2xEZWYgPSB7XHJcbiAgICByZXNpemFibGU6IGZhbHNlLCAvLyBkaXNhYmxlIHJlc2l6ZSBcclxuICAgIHN1cHByZXNzSGVhZGVyTWVudUJ1dHRvbjogdHJ1ZSwgLy8gZGlzYWJsZSBkZWZhdWx0IGZpbHRlciBtZW51IFxyXG4gICAgc3VwcHJlc3NNb3ZhYmxlOiB0cnVlLCAvLyBkaXNhYmxlIGRlZmF1bHQgZHJhZyAmIGRyb3AgZm9yIGNvbHVtbnMgXHJcbiAgICBjZWxsU3R5bGU6IHsganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIgfSxcclxuICAgIHN1cHByZXNzS2V5Ym9hcmRFdmVudDogKHBhcmFtczogU3VwcHJlc3NLZXlib2FyZEV2ZW50UGFyYW1zKSA9PiB7XHJcbiAgICAgIHJldHVybiBwYXJhbXMuZXZlbnQua2V5ID09PSAnVGFiJyA/IHRydWUgOiBmYWxzZTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICAvKiogTGVuZ3RoIG9mIGRhdGEgKi9cclxuICBwdWJsaWMgdG90YWxMZW5ndGg6IG51bWJlciA9IDA7XHJcblxyXG4gIC8qKlRvdGFsIG51bWJlciBvZiBwYWdlcyAqL1xyXG4gIHB1YmxpYyB0b3RhbE51bWJlck9mUGFnZXM6IG51bWJlcjtcclxuXHJcbiAgLyoqIFBhZ2UgQ2hhbmdlIHRleHQgKi9cclxuICBwdWJsaWMgcGFnZUNoYW5nZVRleHQ6IHN0cmluZztcclxuXHJcbiAgLyoqIFBhZ2Ugc2VsZWN0b3IgYXJyYXkgKi9cclxuICBwdWJsaWMgcGFnZVNlbGVjdG9yOiBBcnJheTxudW1iZXI+ID0gW107XHJcblxyXG4gIC8qKiBGaWx0ZXIgUGFuZWwgb3BlbiBzdGF0ZSAqL1xyXG4gIHB1YmxpYyBmaWx0ZXJPcGVuU3RhdGU6IGJvb2xlYW47XHJcblxyXG4gIC8qKiBUaGUgbGlzdCBvZiBmaWx0ZXJzIGFuZCB0aGUgc2VsZWN0ZWQgdmFsdWVzICovXHJcbiAgcHVibGljIGZpbHRlclNlbGVjdGlvbnM6IEFycmF5PEFycmF5PHN0cmluZz4+ID0gW107XHJcblxyXG4gIC8qKiBtYXQtZGlhbG9nICovXHJcbiAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xyXG5cclxuICAvKiogVHJhbnNsYXRpb24gc2VydmljZSAqL1xyXG4gIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcclxuXHJcbiAgLyoqIE9uIGNvbXBvbmVudCBpbml0ICovXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXNpemVHcmlkKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBbmd1bGFyIE9uIENoYW5nZXNcclxuICAgKiBAcGFyYW0gY2hhbmdlcyBUaGUgaW5wdXQgY2hhbmdlc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlcy5yb3dEYXRhICYmICFjaGFuZ2VzLnJvd0RhdGEuZmlyc3RDaGFuZ2UgJiYgISF0aGlzLmdyaWRBcGkpIHtcclxuICAgICAgdGhpcy50b3RhbExlbmd0aCA9IHRoaXMucm93RGF0YT8ubGVuZ3RoID8/IDA7IC8vIGhhbmRsZXMgbnVsbCwgdW5kZWZpbmVkIGFuZCBbXSBkYXRhIHJldHVybiwgc28gd2lsbCBub3QgbG9hZCBpbmRlZmluaXRlbHkgXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMucG9wdWxhdGVGaWx0ZXJzKCk7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVQYWdlQ2hhbmdlVGV4dCgpO1xyXG4gICAgICAgIHRoaXMuaXNHcmlkRGF0YVJlbmRlcmVkLnNldCh0cnVlKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlcy5jb2xEZWZzICYmICFjaGFuZ2VzLmNvbERlZnMuZmlyc3RDaGFuZ2UgJiYgISF0aGlzLmdyaWRBcGkpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ncmlkQXBpLmFwcGx5Q29sdW1uU3RhdGUodGhpcy5jdXJyZW50Q29sdW1uU3RhdGUpO1xyXG4gICAgICAgIHRoaXMucG9wdWxhdGVGaWx0ZXJzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FsbGVkIHdoZW4gdGhlIGdyaWQgaGFzIGluZ2VzdGVkIHRoZSBpbnB1dCBkYXRhXHJcbiAgICogQHBhcmFtIHBhcmFtcyBHcmlkIFJlYWR5IEV2ZW50LFxyXG4gICAqIFRoZSBncmlkIGhhcyBpbml0aWFsaXplZCBhbmQgaXMgcmVhZHkgZm9yIG1vc3QgYXBpIGNhbGxzLCBidXQgbWF5IG5vdCBiZSBmdWxseSByZW5kZXJlZCB5ZXQuXHJcbiAgICogQG5vdGUgeW91IGNhbiBub3QgYWNjZXNzIHRoaXMuZ3JpZEFwaSBiZWZvcmUgdGhpcyBmdW5jdGlvbiBpcyBydW4sIFxyXG4gICAqIGFueSBhdHRlbXB0cyB0byBhY2Nlc3MgdGhpcy5ncmlkQXBpIGluIHRoaXMgY29tcG9uZW50cyBuZ09uSW5pdCBvciB0aGUgZmlyc3QgbmdPbkNoYW5nZXMgY3ljbGVcclxuICAgKiB3aWxsIHJlc3VsdCBpbiBhIHR5cGUgZXJyb3I7IGJlaW5nIHRoaXMuZ3JpZEFwaSBpcyB1bmRlZmluZWQgYXQgdGhhdCB0aW1lLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBvbkdyaWRSZWFkeShwYXJhbXM6IEdyaWRSZWFkeUV2ZW50KSB7XHJcbiAgICB0aGlzLmdyaWRBcGkgPSBwYXJhbXMuYXBpO1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMuZ3JpZEFwaS5wYWdpbmF0aW9uR2V0Q3VycmVudFBhZ2UoKSArIDE7XHJcbiAgICB0aGlzLnRvdGFsTGVuZ3RoID0gdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25HZXRSb3dDb3VudCgpO1xyXG4gICAgd2luZG93Lm9ucmVzaXplID0gKCkgPT4ge1xyXG4gICAgICBjb25zdCBtb2JpbGVXaWR0aFRocmVzaG9sZCA9IDc1MjtcclxuICAgICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDw9IG1vYmlsZVdpZHRoVGhyZXNob2xkKSB7XHJcbiAgICAgICAgdGhpcy5yb3dIZWlnaHQgPSA0MDtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb25QYWdlU2l6ZSA9IDEwO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMucmVzaXplR3JpZCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaGFuZGxlUGFnZUNoYW5nZVRleHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBGaXJlZCB0aGUgZmlyc3QgdGltZSBkYXRhIGlzIHJlbmRlcmVkIGludG8gdGhlIGdyaWQuICovXHJcbiAgcHVibGljIG9uRmlyc3REYXRhUmVuZGVyZWQoKSB7XHJcbiAgICBpZiAoIXRoaXMuc2F2ZWRDb2x1bW5TdGF0ZT8uc3RhdGUubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IGNvbHVtblN0YXRlOiBBcnJheTxDb2x1bW5TdGF0ZT4gPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5ncmlkQXBpLmdldENvbHVtblN0YXRlKCkpO1xyXG4gICAgICB0aGlzLnNhdmVkQ29sdW1uU3RhdGUgPSB7XHJcbiAgICAgICAgc3RhdGU6IGNvbHVtblN0YXRlLFxyXG4gICAgICAgIGFwcGx5T3JkZXI6IHRydWVcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHRoaXMuZ3JpZEFwaS5hcHBseUNvbHVtblN0YXRlKHRoaXMuc2F2ZWRDb2x1bW5TdGF0ZSk7XHJcbiAgICB0aGlzLnVwZGF0ZWRDb2x1bW5TdGF0ZS5lbWl0KHRoaXMuc2F2ZWRDb2x1bW5TdGF0ZSk7XHJcbiAgICB0aGlzLmN1cnJlbnRDb2x1bW5TdGF0ZSA9IHRoaXMuc2F2ZWRDb2x1bW5TdGF0ZTtcclxuICAgIHRoaXMucG9wdWxhdGVGaWx0ZXJzKCk7XHJcbiAgICB0aGlzLmhhbmRsZVBhZ2VDaGFuZ2VUZXh0KCk7XHJcbiAgICB0aGlzLmlzR3JpZERhdGFSZW5kZXJlZC5zZXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICAvKiogUmVzaXplIGdyaWQgZnJvbSBzaXplIG1vZGUgKi9cclxuICBwcml2YXRlIHJlc2l6ZUdyaWQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zaXplTW9kZSA9PT0gJ0NvbXBhY3QnKSB7XHJcbiAgICAgIHRoaXMucm93SGVpZ2h0ID0gNDA7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnNpemVNb2RlID09PSAnUm9vbXknKSB7XHJcbiAgICAgIHRoaXMucm93SGVpZ2h0ID0gNTY7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5yb3dIZWlnaHQgPSA0ODtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uIHBhZ2Ugc2VsZWN0aW9uIGNoYW5nZVxyXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgc2VsZWN0ZWQgcGFnZSBudW1iZXJcclxuICAgKi9cclxuICBwdWJsaWMgb25QYWdlTnVtYmVyQ2hhbmdlKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIC8vIFRoZSBwYWdlIHZhbHVlcyBhcmUgMSBvZmYgdG8gbWFrZSBhIDEtYmFzZWQgYXJyYXksIGJ1dCB0aGUgYWN0dWFsIHBhZ2VzIGFyZSBhIDAtYmFzZWQgYXJyYXkuXHJcbiAgICB0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdvVG9QYWdlKHZhbHVlIC0gMSk7XHJcbiAgfVxyXG5cclxuICAvKiogT24gbmV4dCBwYWdlIGV2ZW50ICovXHJcbiAgcHVibGljIG5leHRQYWdlKCkge1xyXG4gICAgdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25Hb1RvTmV4dFBhZ2UoKTtcclxuICAgIHRoaXMuaGFuZGxlUGFnZUNoYW5nZVRleHQoKVxyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMuZ3JpZEFwaS5wYWdpbmF0aW9uR2V0Q3VycmVudFBhZ2UoKSArIDE7XHJcbiAgfVxyXG5cclxuICAvKiogT24gUHJldmlvdXMgUGFnZSBFdmVudCAqL1xyXG4gIHB1YmxpYyBwcmV2aW91c1BhZ2UoKSB7XHJcbiAgICB0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdvVG9QcmV2aW91c1BhZ2UoKTtcclxuICAgIHRoaXMuaGFuZGxlUGFnZUNoYW5nZVRleHQoKVxyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMuZ3JpZEFwaS5wYWdpbmF0aW9uR2V0Q3VycmVudFBhZ2UoKSArIDE7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPbiBDaGFuZ2UgUGFnZSBTaXplIEV2ZW50XHJcbiAgICogQHBhcmFtIGV2ZW50IFRoZSBwYWdpbmF0aW9uIGV2ZW50XHJcbiAgICovXHJcbiAgcHVibGljIGNoYW5nZVBhZ2VTaXplKGV2ZW50OiBQYWdpbmF0aW9uQ2hhbmdlZEV2ZW50KSB7XHJcbiAgICAvLyBPbmx5IG5lZWQgdG8gZG8gdGhpcyB3b3JrIGlmIHRoZSBwYWdlIHNpemUgaGFzIGNoYW5nZWQuXHJcbiAgICBpZiAoZXZlbnQubmV3UGFnZVNpemUpIHtcclxuICAgICAgLy8gVXBkYXRlIHRoZSB0b3RhbCBudW1iZXIgb2YgZmlsdGVyZWQgcm93cy5cclxuICAgICAgdGhpcy50b3RhbExlbmd0aCA9IHRoaXMuZ3JpZEFwaS5wYWdpbmF0aW9uR2V0Um93Q291bnQoKTtcclxuICAgICAgLy8gSGFuZGxlIHRleHQgY2hhbmdlc1xyXG4gICAgICB0aGlzLmhhbmRsZVBhZ2VDaGFuZ2VUZXh0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogXHJcbiAgICogQ2FsbGVkIHdoZW4gdGhlIGdyaWQgZmlsdGVyIGlzIGNoYW5nZWQgXHJcbiAgICogQHRvZG8gdXBkYXRlIHRoZSBmaWx0ZXIgZHJvcGRvd24gb3B0aW9ucyBiYXNlZCBvbiB0aGUgZmlsdGVyZWQgZGF0YSBzZXQsIGluc3RlYWQgb2YgdGhlIGNvbXBsZXRlIGRhdGEgc2V0LlxyXG4gICAqL1xyXG4gIHB1YmxpYyBvbkZpbHRlckNoYW5nZWQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBwcmV2aW91c1RvdGFsTGVuZ3RoOiBudW1iZXIgPSBOdW1iZXIodGhpcy50b3RhbExlbmd0aCk7XHJcbiAgICAvLyBVcGRhdGUgdGhlIHRvdGFsIG51bWJlciBvZiBmaWx0ZXJlZCByb3dzLlxyXG4gICAgdGhpcy50b3RhbExlbmd0aCA9IHRoaXMuZ3JpZEFwaS5wYWdpbmF0aW9uR2V0Um93Q291bnQoKTtcclxuICAgIGlmICh0aGlzLnRvdGFsTGVuZ3RoICE9PSBwcmV2aW91c1RvdGFsTGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuYXJpYVJlc3VsdHNDb3VudC5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9IFwiXCI7XHJcbiAgICAgIHRoaXMuYXJpYVJlc3VsdHNDb3VudC5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9IHRoaXMudG90YWxMZW5ndGggPT09IDBcclxuICAgICAgICA/IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdhcm1hdHVyZS5zb2YtdGFibGUuc2NyZWVuLXJlYWRlci5maWx0ZXJlZC1yZXN1bHRzLm5vLXJlc3VsdHMnKVxyXG4gICAgICAgIDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXHJcbiAgICAgICAgICAnYXJtYXR1cmUuc29mLXRhYmxlLnNjcmVlbi1yZWFkZXIuZmlsdGVyZWQtcmVzdWx0cy5oYXMtcmVzdWx0cycsIHsncmVzdWx0c0NvdW50JzogdGhpcy50b3RhbExlbmd0aH1cclxuICAgICAgICApO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmFyaWFSZXN1bHRzQ291bnQubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSBcIlwiO1xyXG4gICAgICB9LCAxMDApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5oYW5kbGVQYWdlQ2hhbmdlVGV4dCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEdlbmVyYXRlZCB0ZXh0IGZvciBzaG93aW5nIHBhZ2VzIGluIGZvcm1hdDogMS0xMSBvZiAxMSAqL1xyXG4gIHByaXZhdGUgaGFuZGxlUGFnZUNoYW5nZVRleHQoKTogdm9pZCB7XHJcbiAgICAvLyBIYW5kbGUgZW1wdHkgdGFibGVcclxuICAgIGlmICghdGhpcy50b3RhbExlbmd0aCB8fCB0aGlzLnBhZ2luYXRpb25QYWdlU2l6ZSA9PT0gMCkge1xyXG4gICAgICAvLyBSZXNldCB0aGUgcGFnaW5hdGlvbiBVSVxyXG4gICAgICB0aGlzLnRvdGFsTnVtYmVyT2ZQYWdlcyA9IDE7XHJcbiAgICAgIHRoaXMucGFnZVNlbGVjdG9yID0gWzFdO1xyXG4gICAgICB0aGlzLnBhZ2VDaGFuZ2VUZXh0ID0gYDBgO1xyXG4gICAgICB0aGlzLmdyaWRBcGkuc2hvd05vUm93c092ZXJsYXkoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5ncmlkQXBpLmhpZGVPdmVybGF5KCk7XHJcbiAgICB9XHJcbiAgICAvLyBVcGRhdGUgdGhlIHRvdGFsIG51bWJlciBvZiBwYWdlc1xyXG4gICAgdGhpcy50b3RhbE51bWJlck9mUGFnZXMgPSB0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldFRvdGFsUGFnZXMoKSB8fCBNYXRoLmNlaWwodGhpcy50b3RhbExlbmd0aCAvIHRoaXMucGFnaW5hdGlvblBhZ2VTaXplKSB8fCAxO1xyXG4gICAgLy8gUmVzZXQgdGhlIHBhZ2Ugc2VsZWN0b3JcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xyXG4gICAgY29uc3QgcGFnZVNlbGVjdG9yID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8PSB0aGlzLnRvdGFsTnVtYmVyT2ZQYWdlczsgaSsrKSB7XHJcbiAgICAgIHBhZ2VTZWxlY3Rvci5wdXNoKGkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5wYWdlU2VsZWN0b3IgPSBwYWdlU2VsZWN0b3I7XHJcbiAgICBjb25zdCBsZW5ndGggPSBNYXRoLm1heCh0aGlzLnRvdGFsTGVuZ3RoLCAwKTtcclxuICAgIGNvbnN0IHBhZ2VTaXplID0gdGhpcy5wYWdpbmF0aW9uUGFnZVNpemU7XHJcbiAgICBjb25zdCBzdGFydEluZGV4ID0gdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25HZXRDdXJyZW50UGFnZSgpICogcGFnZVNpemU7XHJcbiAgICBjb25zdCBlbmRJbmRleCA9IHN0YXJ0SW5kZXggPCBsZW5ndGggPyBNYXRoLm1pbihzdGFydEluZGV4ICsgcGFnZVNpemUsIGxlbmd0aCkgOiBzdGFydEluZGV4ICsgcGFnZVNpemU7XHJcbiAgICB0aGlzLnBhZ2VDaGFuZ2VUZXh0ID0gYCR7c3RhcnRJbmRleCArIDF9IC0gJHtlbmRJbmRleH1gO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQXBwbHkgdGhlIHNlYXJjaCBmaWx0ZXIgb24gZGF0YSB3aGVuIHNlYXJjaCB0ZXh0IGNoYW5nZWRcclxuICAgKi9cclxuICBwdWJsaWMgb25TZWFyY2hUZXh0Q2hhbmdlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3JpZEFwaS5zZXRHcmlkT3B0aW9uKFwicXVpY2tGaWx0ZXJUZXh0XCIsIHRoaXMuZ3JpZFNlYXJjaFRleHRJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8qKiBUb2dnbGUgdGhlIGZpbHRlciBwYW5lbCBkaXNwbGF5ICovXHJcbiAgcHVibGljIHRvZ2dsZUZpbHRlclBhbmVsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5maWx0ZXJPcGVuU3RhdGUgPSAhdGhpcy5maWx0ZXJPcGVuU3RhdGU7XHJcbiAgfVxyXG5cclxuICAvKiogQXBwbHkgdGhlIHNlbGVjdGVkIGZpbHRlcnMgKi9cclxuICBwdWJsaWMgYXBwbHlGaWx0ZXJzKCk6IHZvaWQge1xyXG4gICAgbGV0IHRhYmxlRmlsdGVyTW9kZWw6IEZpbHRlck1vZGVsID0ge307XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY29sRmlsdGVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBjb2xGaWx0ZXIgPSB0aGlzLmNvbEZpbHRlcnNbaV07XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSB0aGlzLmZpbHRlclNlbGVjdGlvbnNbaV07XHJcbiAgICAgIGlmICghc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGgpIHtcclxuICAgICAgICAvLyBSZXNldCBvdXQgdGhlIGNvbHVtbiBmaWx0ZXJzXHJcbiAgICAgICAgdGhpcy5ncmlkQXBpLnNldENvbHVtbkZpbHRlck1vZGVsKGNvbEZpbHRlci5oZWFkZXIsIG51bGwpO1xyXG4gICAgICAgIHRhYmxlRmlsdGVyTW9kZWxbY29sRmlsdGVyLmhlYWRlcl0gPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAvLyBTZXQgdGhlIHNpbmdsZSBmaWx0ZXIgZm9yIHRoZSBjb2x1bW5cclxuICAgICAgICBsZXQgZmlsdGVyTW9kZWw6IFRleHRGaWx0ZXJNb2RlbCA9IHsgZmlsdGVyVHlwZTogJ3RleHQnLCB0eXBlOiAnZXF1YWxzJywgZmlsdGVyOiBzZWxlY3RlZEVsZW1lbnRzWzBdIH07XHJcbiAgICAgICAgLy8gQXBwbHkgdGhlIGZpbHRlciBtb2RlbCB0byB0aGUgY29sdW1uXHJcbiAgICAgICAgdGFibGVGaWx0ZXJNb2RlbFtjb2xGaWx0ZXIuaGVhZGVyXSA9IGZpbHRlck1vZGVsO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIC8vIFNldCBtdWx0aXBsZSBPUiBmaWx0ZXJzIGZvciB0aGUgY29sdW1uXHJcbiAgICAgICAgbGV0IGZpbHRlck1vZGVsczogQ29tYmluZWRTaW1wbGVNb2RlbDxUZXh0RmlsdGVyTW9kZWw+ID0geyBmaWx0ZXJUeXBlOiAndGV4dCcsIG9wZXJhdG9yOiAnT1InLCBjb25kaXRpb25zOiBbXSB9O1xyXG4gICAgICAgIC8vIFNldCB0aGUgc2VsZWN0ZWQgZWxlbWVudHMgaW4gdGhlIG1vZGVsXHJcbiAgICAgICAgZm9yIChjb25zdCBzZWxlY3RlZEVsZW1lbnQgb2Ygc2VsZWN0ZWRFbGVtZW50cykge1xyXG4gICAgICAgICAgZmlsdGVyTW9kZWxzLmNvbmRpdGlvbnMucHVzaCh7IGZpbHRlclR5cGU6ICd0ZXh0JywgdHlwZTogJ2VxdWFscycsIGZpbHRlcjogc2VsZWN0ZWRFbGVtZW50IH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBBcHBseSB0aGUgZmlsdGVyIG1vZGVsIGNvbGxlY3Rpb24gdG8gdGhlIGNvbHVtblxyXG4gICAgICAgIHRhYmxlRmlsdGVyTW9kZWxbY29sRmlsdGVyLmhlYWRlcl0gPSBmaWx0ZXJNb2RlbHM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIE9uY2UgZXZlcnl0aGluZyBpcyBzZXQsIHVwZGF0ZSB0aGUgZmlsdGVyc1xyXG4gICAgdGhpcy5maWx0ZXJDb3VudCA9IHRoaXMuZ2V0RmlsdGVyQ291bnQoKTtcclxuICAgIHRoaXMuZ3JpZEFwaS5zZXRGaWx0ZXJNb2RlbCh0YWJsZUZpbHRlck1vZGVsKTtcclxuICAgIHRoaXMuZ3JpZEFwaS5vbkZpbHRlckNoYW5nZWQoKTtcclxuICB9XHJcblxyXG4gIC8qKiBDbGVhciBhbGwgZmlsdGVycyAqL1xyXG4gIHB1YmxpYyBjbGVhckZpbHRlcnMoKTogdm9pZCB7XHJcbiAgICAvLyBDbGVhciBhbGwgc2VsZWN0aW9uc1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZpbHRlclNlbGVjdGlvbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdGhpcy5maWx0ZXJTZWxlY3Rpb25zW2ldID0gW107XHJcbiAgICB9XHJcbiAgICAvLyBTZXQgdGhlIGZ1bGwgZ3JpZCBmaWx0ZXIgbW9kZWwgdG8gbnVsbFxyXG4gICAgdGhpcy5ncmlkQXBpLnNldEZpbHRlck1vZGVsKG51bGwpO1xyXG4gICAgLy8gVXBkYXRlIHRoZSBkaXNwbGF5XHJcbiAgICB0aGlzLmdyaWRBcGkub25GaWx0ZXJDaGFuZ2VkKCk7XHJcbiAgICB0aGlzLmZpbHRlckNvdW50ID0gdGhpcy5nZXRGaWx0ZXJDb3VudCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0cnVlIGlmIG5vIGZpbHRlcnMgYXJlIHNlbGVjdGVkXHJcbiAgICogQHJldHVybnMgVHJ1ZSBpZiBhIGZpbHRlciBpcyBzZWxlY3RlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBoYXNFbXB0eUZpbHRlcnMoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuZmlsdGVyU2VsZWN0aW9ucyB8fCAhdGhpcy5maWx0ZXJTZWxlY3Rpb25zLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIGZvciAoY29uc3QgZmlsdGVyU2VsZWN0IG9mIHRoaXMuZmlsdGVyU2VsZWN0aW9ucykge1xyXG4gICAgICAvLyBJZiBhdCBsZWFzdCBvbmUgZmlsdGVyIGhhcyBiZWVuIHNlbGVjdGVkLCByZXR1cm4gZmFsc2VcclxuICAgICAgaWYgKGZpbHRlclNlbGVjdC5sZW5ndGgpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqIENhbmNlbCB0aGUgY2hhbmdlcyB0byB0aGUgZmlsdGVyIGFuZCBjbG9zZXMgdGhlIGZpbHRlciBwYW5lbCAqL1xyXG4gIHB1YmxpYyBjYW5jZWxGaWx0ZXJDaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgLy9TZXRzIHRoZSBmaWx0ZXIgc2VsZWN0aW9ucyBvbiBmaWx0ZXIgcGFuZWxcclxuICAgIHRoaXMuc2V0RmlsdGVyU2VsZWN0aW9ucygpO1xyXG4gICAgLy8gQ2xvc2UgdGhlIGZpbHRlciBwYW5lbFxyXG4gICAgdGhpcy50b2dnbGVGaWx0ZXJQYW5lbCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFBvcHVsYXRlcyB0aGUgZmlsdGVyIGRyb3Bkb3ducyAqL1xyXG4gIHByaXZhdGUgcG9wdWxhdGVGaWx0ZXJzKCk6IHZvaWQge1xyXG4gICAgLy8gUmVzZXQgdGhlIGZpbHRlciBkcm9wZG93bnNcclxuICAgIHRoaXMuZmlsdGVyU2VsZWN0aW9ucyA9IFtdO1xyXG4gICAgdGhpcy5jb2xGaWx0ZXJzID0gW107XHJcbiAgICAvLyBHZXQgdGhlIGNvbHVtbiBkZWZpbml0aW9ucyB0aGF0IGhhdmUgYSBmaWx0ZXJcclxuICAgIGNvbnN0IGZpbHRlcmVkQ29sczogQXJyYXk8Q29sRGVmPiA9IHRoaXMuZ3JpZEFwaS5nZXRDb2x1bW5EZWZzKCkuZmlsdGVyKChkZWYpID0+IGRlZlsnZmlsdGVyJ10pO1xyXG4gICAgLy8gQ3JlYXRlIGEgbWFwIHRvIHN0b3JlIHVuaXF1ZSB2YWx1ZXMgZm9yIGVhY2ggZmllbGRcclxuICAgIGNvbnN0IGZpbHRlclZhbHVlc01hcCA9IG5ldyBNYXA8c3RyaW5nLCBTZXQ8YW55Pj4oKTtcclxuICAgIC8vIEluaXRpYWxpemUgc2V0cyBmb3IgZWFjaCBmaWVsZCAoY29sdW1uKSBcclxuICAgIGZvciAoY29uc3QgY29sIG9mIGZpbHRlcmVkQ29scykge1xyXG4gICAgICBjb25zdCBmaWVsZDogc3RyaW5nID0gY29sW1wiZmllbGRcIl07XHJcbiAgICAgIGZpbHRlclZhbHVlc01hcC5zZXQoZmllbGQsIG5ldyBTZXQ8YW55PigpKTtcclxuICAgIH1cclxuICAgIC8vIFVzZSBmb3JFYWNoTm9kZSB0byBpdGVyYXRlIG92ZXIgdGhlIHJvd3NcclxuICAgIHRoaXMuZ3JpZEFwaS5mb3JFYWNoTm9kZSgobm9kZTogSVJvd05vZGUpID0+IHtcclxuICAgICAgaWYgKG5vZGUuZGF0YSkge1xyXG4gICAgICAgIGZvciAoY29uc3QgY29sIG9mIGZpbHRlcmVkQ29scykge1xyXG4gICAgICAgICAgY29uc3QgZmllbGQ6IHN0cmluZyA9IGNvbFtcImZpZWxkXCJdO1xyXG4gICAgICAgICAgY29uc3QgdmFsdWU6IGFueSA9IHRoaXMuZ3JpZEFwaS5nZXRDZWxsVmFsdWUoe3Jvd05vZGU6IG5vZGUsIGNvbEtleTogZmllbGR9KTtcclxuICAgICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgICBmaWx0ZXJWYWx1ZXNNYXAuZ2V0KGZpZWxkKT8uYWRkKHZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgLy8gTm93IHRoYXQgd2UgaGF2ZSB0aGUgdW5pcXVlIHZhbHVlcyBmb3IgZWFjaCBmaWVsZCwgcG9wdWxhdGUgZmlsdGVyIG9wdGlvbnNcclxuICAgIGZvciAoY29uc3QgY29sIG9mIGZpbHRlcmVkQ29scykge1xyXG4gICAgICBjb25zdCBmaWVsZDogc3RyaW5nID0gY29sW1wiZmllbGRcIl07XHJcbiAgICAgIGNvbnN0IGxhYmVsOiBzdHJpbmcgPSBjb2xbXCJoZWFkZXJOYW1lXCJdO1xyXG4gICAgICBjb25zdCB1bmlxdWVWYWx1ZXM6IEFycmF5PGFueT4gPSBBcnJheS5mcm9tKGZpbHRlclZhbHVlc01hcC5nZXQoZmllbGQpIHx8IFtdKS5zb3J0KCk7XHJcbiAgICAgIGlmICh1bmlxdWVWYWx1ZXMubGVuZ3RoID4gMSkge1xyXG4gICAgICAgIC8vIEVuc3VyZSB0aGVyZSdzIHNwYWNlIGZvciBmaWx0ZXIgc2VsZWN0aW9uc1xyXG4gICAgICAgIHRoaXMuZmlsdGVyU2VsZWN0aW9ucy5wdXNoKFtdKTsgXHJcbiAgICAgICAgdGhpcy5jb2xGaWx0ZXJzLnB1c2goeyBoZWFkZXI6IGZpZWxkLCBsYWJlbDogbGFiZWwsIG9wdGlvbnM6IHVuaXF1ZVZhbHVlcyB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5ncmlkQXBpLnNldEZpbHRlck1vZGVsKHRoaXMuaW5pdGlhbEZpbHRlck1vZGVsKTtcclxuICAgIHRoaXMuc2V0RmlsdGVyU2VsZWN0aW9ucygpO1xyXG4gICAgdGhpcy5maWx0ZXJDb3VudCA9IHRoaXMuZ2V0RmlsdGVyQ291bnQoKTtcclxuICB9XHJcblxyXG4gIC8qKiBPcGVuIHRoZSBjb2x1bW4gb3B0aW9ucyBtb2RhbCAqL1xyXG4gIHB1YmxpYyBvcGVuQ29sdW1uT3B0aW9ucygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvbHVtblN0YXRlOiBBcnJheTxDb2x1bW5TdGF0ZT4gPSB0aGlzLmdyaWRBcGkuZ2V0Q29sdW1uU3RhdGUoKTtcclxuICAgIGNvbnN0IGNvbHVtbkRhdGE6IEFycmF5PENvbHVtbkRhdGE+ID0gdGhpcy5jb2x1bW5TdGF0ZVRvRGF0YShjb2x1bW5TdGF0ZSk7XHJcbiAgICBjb25zdCBpbml0aWFsQ29sdW1uRGF0YTogQXJyYXk8Q29sdW1uRGF0YT4gPSB0aGlzLmNvbHVtblN0YXRlVG9EYXRhKHRoaXMuc2F2ZWRDb2x1bW5TdGF0ZS5zdGF0ZSk7XHJcbiAgICBjb25zdCBjb2x1bW5PcHRpb25zRGF0YTogQ29sdW1uT3B0aW9uc0RhdGEgPSB7XHJcbiAgICAgIHRhYmxlTmFtZTogdGhpcy50YWJsZU5hbWUsXHJcbiAgICAgIGNvbHVtbkRhdGEsXHJcbiAgICAgIGluaXRpYWxDb2x1bW5EYXRhLFxyXG4gICAgICBzaG93U2F2ZUNvbHVtbk9wdGlvbnNUZXh0OiB0aGlzLnNob3dTYXZlQ29sdW1uT3B0aW9uc1RleHRcclxuICAgIH07XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFNvZkNvbHVtbk9wdGlvbnNDb21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6ICc1MDBweCcsXHJcbiAgICAgIHBvc2l0aW9uOiB7IGJvdHRvbTogJzQwcHgnLCByaWdodDogJzQwcHgnIH0sXHJcbiAgICAgIGFyaWFMYWJlbGxlZEJ5OiAnY29sdW1uLW9wdGlvbnMtaGVhZGluZycsXHJcbiAgICAgIGRhdGE6IGNvbHVtbk9wdGlvbnNEYXRhXHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnBpcGUoXHJcbiAgICAgIHRha2UoMSksXHJcbiAgICAgIHRhcCgodXBkYXRlZENvbHVtblN0YXRlOiBBcHBseUNvbHVtblN0YXRlUGFyYW1zKSA9PiB7XHJcbiAgICAgICAgaWYgKHVwZGF0ZWRDb2x1bW5TdGF0ZSAmJiB1cGRhdGVkQ29sdW1uU3RhdGUuc3RhdGUubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmdyaWRBcGkuYXBwbHlDb2x1bW5TdGF0ZSh1cGRhdGVkQ29sdW1uU3RhdGUpO1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVkQ29sdW1uU3RhdGUuZW1pdCh1cGRhdGVkQ29sdW1uU3RhdGUpO1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50Q29sdW1uU3RhdGUgPSB1cGRhdGVkQ29sdW1uU3RhdGU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1hcHMgYEFycmF5PENvbHVtblN0YXRlPmAgdG8gYEFycmF5PENvbHVtbkRhdGE+YCBcclxuICAgKiBAbm90ZSBmaWx0ZXJzIG91dCBhbnkgY29sdW1ucyBtYXJrZWQgYXMgJ3Bpbm5lZCcgYnkgdGhlIGNvbHVtbiBkZWZpbml0aW9ucy5cclxuICAgKiBAbm90ZSBmaWx0ZXJzIGFueSBjb2x1bW5zIHdpdGhvdXQgYSAnaGVhZGVyTmFtZScuXHJcbiAgICogQHBhcmFtIGNvbHVtblN0YXRlIHRoZSBjb2x1bW4gc3RhdGUgdG8gbW9kaWZ5XHJcbiAgICogQHJldHVybnMgYW4gYXJyYXkgb2YgY29sdW1uIGRhdGEgZm9ybWF0dGVkIHRvIGJlIGluZ2VzdGVkIGJ5IHRoZSBgU29mQ29sdW1uT3B0aW9uc0NvbXBvbmVudGBcclxuICAqL1xyXG4gIHByaXZhdGUgY29sdW1uU3RhdGVUb0RhdGEoY29sdW1uU3RhdGU6IEFycmF5PENvbHVtblN0YXRlPik6IEFycmF5PENvbHVtbkRhdGE+IHtcclxuICAgIHJldHVybiBjb2x1bW5TdGF0ZVxyXG4gICAgICAuZmlsdGVyKChjb2x1bW4pID0+IHtcclxuICAgICAgICBjb25zdCBoZWFkZXJOYW1lOiBzdHJpbmcgPSB0aGlzLmdyaWRBcGkuZ2V0Q29sdW1uRGVmKGNvbHVtbi5jb2xJZCk/LmhlYWRlck5hbWUgfHwgXCJcIjtcclxuICAgICAgICBpZiAoaGVhZGVyTmFtZSAmJiBoZWFkZXJOYW1lLmxlbmd0aCAmJiAhY29sdW1uLnBpbm5lZCkge1xyXG4gICAgICAgICAgcmV0dXJuIGNvbHVtbjtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIC5tYXAoKGNvbHVtbikgPT4ge1xyXG4gICAgICAgIGNvbnN0IGhlYWRlck5hbWU6IHN0cmluZyA9IHRoaXMuZ3JpZEFwaS5nZXRDb2x1bW5EZWYoY29sdW1uLmNvbElkKS5oZWFkZXJOYW1lO1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBpZDogY29sdW1uLmNvbElkLFxyXG4gICAgICAgICAgaXNDaGVja2VkOiAhY29sdW1uLmhpZGUsXHJcbiAgICAgICAgICB0ZXh0OiBoZWFkZXJOYW1lXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKiBFbWl0IHRoZSBjdXJyZW50IGZpbHRlcmVkL3NvcnRlZCByb3cgZGF0YSAqL1xyXG4gIHB1YmxpYyBleHBvcnRGaWx0ZXJlZFJvd0RhdGEoKTogdm9pZCB7XHJcbiAgICBjb25zdCByb3dEYXRhOiBBcnJheTxhbnk+ID0gW107XHJcbiAgICBjb25zdCBjb2x1bW5zOiBBcnJheTxDb2x1bW4+ID0gdGhpcy5ncmlkQXBpLmdldEFsbERpc3BsYXllZENvbHVtbnMoKS5maWx0ZXIoKGNvbCkgPT4gY29sLmdldENvbERlZigpLmhlYWRlck5hbWUpO1xyXG4gICAgY29uc3QgdGFibGVIZWFkZXJzOiBBcnJheTxLZXlWYWxQYWlyPiA9IFtdO1xyXG4gICAgY29sdW1ucy5mb3JFYWNoKChjb2wpID0+IHtcclxuICAgICAgY29uc3QgY29sRGVmOiBDb2xEZWYgPSBjb2wuZ2V0Q29sRGVmKCk7XHJcbiAgICAgIHRhYmxlSGVhZGVycy5wdXNoKHtcclxuICAgICAgICBrZXk6IGNvbERlZi5maWVsZCxcclxuICAgICAgICB2YWx1ZTogY29sRGVmLmhlYWRlck5hbWVcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZ3JpZEFwaS5mb3JFYWNoTm9kZUFmdGVyRmlsdGVyQW5kU29ydCgobm9kZTogSVJvd05vZGU8YW55PikgPT4ge1xyXG4gICAgICBjb25zdCBub2RlRGF0YTogYW55ID0ge307XHJcbiAgICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY29sSWQ6IHN0cmluZyA9IGNvbC5nZXRDb2xJZCgpO1xyXG4gICAgICAgIC8vIFVzZSBncmlkQXBpJ3MgZ2V0Q2VsbFZhbHVlIHRvIGdldCB0aGUgdmFsdWUgdHJhbnNmb3JtZWQgYnkgdmFsdWVHZXR0ZXJcclxuICAgICAgICBub2RlRGF0YVtjb2xJZF0gPSB0aGlzLmdyaWRBcGkuZ2V0Q2VsbFZhbHVlKHsgcm93Tm9kZTogbm9kZSwgY29sS2V5OiBjb2xJZCB9KTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJvd0RhdGEucHVzaChub2RlRGF0YSk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGV4cG9ydERhdGE6IEV4cG9ydFRhYmxlRGF0YSA9IHtcclxuICAgICAgdGFibGVIZWFkZXJzLFxyXG4gICAgICByb3dEYXRhXHJcbiAgICB9O1xyXG4gICAgdGhpcy5maWx0ZXJlZFJvd0RhdGFGb3JFeHBvcnQuZW1pdChleHBvcnREYXRhKTtcclxuICB9XHJcblxyXG4gIC8qKiBTZXRzIGZpbHRlciBzZWxlY3Rpb25zIGZvciBmaWx0ZXIgcGFuZWwgKi9cclxuICBwcml2YXRlIHNldEZpbHRlclNlbGVjdGlvbnMoKTogdm9pZCB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY29sRmlsdGVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAvLyBHZXQgdGhlIHN0b3JlZCBmaWx0ZXJzIGZvciB0aGUgZ2l2ZW4gbW9kZWxcclxuICAgICAgY29uc3QgY29sRmlsdGVyID0gdGhpcy5jb2xGaWx0ZXJzW2ldO1xyXG4gICAgICBjb25zdCBtb2RlbCA9IHRoaXMuZ3JpZEFwaS5nZXRDb2x1bW5GaWx0ZXJNb2RlbChjb2xGaWx0ZXIuaGVhZGVyKTtcclxuICAgICAgbGV0IGZpbHRlclNlbGVjdGlvbkRhdGEgPSBbXTtcclxuICAgICAgaWYgKG1vZGVsICYmIG1vZGVsW1wiY29uZGl0aW9uc1wiXSkge1xyXG4gICAgICAgIC8vIFRoZSBtb2RlbCBpcyBhIGNvbWJpbmVkIG1vZGVsIHdpdGggbXVsdGlwbGUgc2VsZWN0aW9uc1xyXG4gICAgICAgIGNvbnN0IGZpbHRlck1vZGVsID0gbW9kZWwgYXMgQ29tYmluZWRTaW1wbGVNb2RlbDxUZXh0RmlsdGVyTW9kZWw+O1xyXG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBmaWx0ZXJNb2RlbC5jb25kaXRpb25zKSB7XHJcbiAgICAgICAgICBmaWx0ZXJTZWxlY3Rpb25EYXRhLnB1c2goZWxlbWVudC5maWx0ZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChtb2RlbCkge1xyXG4gICAgICAgIC8vIEFzc3VtZSB0aGUgbW9kZWwgaXMgYSBzaW5nbGUgVGV4dCBGaWx0ZXIgTW9kZWxcclxuICAgICAgICBsZXQgZmlsdGVyU2VsZWN0aW9uOiBUZXh0RmlsdGVyTW9kZWwgPSBtb2RlbDtcclxuICAgICAgICBmaWx0ZXJTZWxlY3Rpb25EYXRhLnB1c2goZmlsdGVyU2VsZWN0aW9uLmZpbHRlcik7XHJcbiAgICAgIH1cclxuICAgICAgLy8gU2V0IHRoZSBmaWx0ZXIgc2VsZWN0aW9uc1xyXG4gICAgICB0aGlzLmZpbHRlclNlbGVjdGlvbnNbaV0gPSBmaWx0ZXJTZWxlY3Rpb25EYXRhO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEdldHMgdGhlIGNvdW50IG9mIGN1cnJlbnQgZmlsdGVyIHNlbGVjdGlvbnMgKi9cclxuICBwcml2YXRlIGdldEZpbHRlckNvdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJTZWxlY3Rpb25zLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiBhY2MuY29uY2F0KGN1cnIpLCBbXSkubGVuZ3RoO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeHBvcnRUYWJsZURhdGEge1xyXG4gIHRhYmxlSGVhZGVycz86IEFycmF5PEtleVZhbFBhaXI+O1xyXG4gIHJvd0RhdGE/OiBBcnJheTxhbnk+XHJcbn1cclxuXHJcbmludGVyZmFjZSBLZXlWYWxQYWlyIHsgXHJcbiAga2V5Pzogc3RyaW5nO1xyXG4gIHZhbHVlPzogc3RyaW5nO1xyXG59XHJcblxyXG4vKiogVXNlZCBmb3Igc2V0dGluZyBmaWx0ZXIgdmFsdWVzICovXHJcbmNsYXNzIFNvZlRhYmxlRmlsdGVyIHtcclxuICAvKiogVGhlIGNvbHVtbiBoZWFkZXIgKi9cclxuICBoZWFkZXI6IHN0cmluZztcclxuICAvKiogVGhlIGNvbHVtbiBsYWJlbCBvciB0cmFuc2xhdGlvbiBrZXkgKi9cclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIC8qKiBUaGUgY29sdW1uIGZpbHRlciBvcHRpb25zICovXHJcbiAgb3B0aW9uczogc3RyaW5nW10gPSBbXTtcclxufVxyXG5cclxuLyoqIEEgZmlsdGVyIGNvbWJpbmluZyBtdWx0aXBsZSBjb25kaXRpb25zLCB0YWtlbiBmcm9tIEFnR3JpZCovXHJcbmNsYXNzIENvbWJpbmVkU2ltcGxlTW9kZWw8VD4ge1xyXG4gIC8qKiBUaGUgZmlsdGVyIHR5cGUuIFVzdWFsbHkgJ3RleHQnICovXHJcbiAgZmlsdGVyVHlwZTogc3RyaW5nO1xyXG4gIC8qKiBUaGUgb3BlcmF0b3IuIFVzdWFsbHkgJ09SJyAqL1xyXG4gIG9wZXJhdG9yOiAnQU5EJyB8ICdPUic7XHJcbiAgLyoqIG11bHRpcGxlIGluc3RhbmNlcyBvZiB0aGUgRmlsdGVyIE1vZGVsICovXHJcbiAgY29uZGl0aW9uczogVFtdO1xyXG59XHJcbiIsIjxkaXYgXHJcbiAgW2Z4U2hvd109XCJpc0dyaWREYXRhUmVuZGVyZWQoKSAmJiB0b3RhbExlbmd0aFwiXHJcbiAgZnhMYXlvdXRHYXA9XCIxNnB4XCIgbS1iLTI0PlxyXG4gIEBpZiAoZW5hYmxlRmlsdGVyICYmIGNvbEZpbHRlcnMubGVuZ3RoKSB7XHJcbiAgICA8YnV0dG9uIFxyXG4gICAgICAoY2xpY2spPVwidG9nZ2xlRmlsdGVyUGFuZWwoKVwiIFxyXG4gICAgICBtYXQtZmxhdC1idXR0b24gY2xhc3M9XCJzb2YtYnV0dG9uLXYyXCJcclxuICAgICAgdGhlbWU9XCJuZXV0cmFsXCIgXHJcbiAgICAgIFthdHRyLmVtcGhhc2lzXT1cImZpbHRlck9wZW5TdGF0ZSA/ICdzb2xpZCcgOiBmaWx0ZXJDb3VudCA9PT0gMCA/ICdzZWNvbmRhcnknIDogJ2NvbnRhaW5lZCdcIlxyXG4gICAgICBbbWF0QmFkZ2VdPVwiZmlsdGVyQ291bnRcIlxyXG4gICAgICBtYXRCYWRnZVBvc2l0aW9uPVwiYWZ0ZXJcIlxyXG4gICAgICBbbWF0QmFkZ2VIaWRkZW5dPVwiZmlsdGVyQ291bnQgPT09IDAgPyB0cnVlIDogZmFsc2VcIj5cclxuICAgICAgPGkgY2xhc3M9XCJwaCBwaC1ib2xkIHBoLXNsaWRlcnMtaG9yaXpvbnRhbFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAge3snYXJtYXR1cmUuc29mLXRhYmxlLmZpbHRlcicgfCB0cmFuc2xhdGV9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgfVxyXG4gIEBpZiAoZW5hYmxlU2VhcmNoKSB7XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJzb2YtZm9ybS1maWVsZCB0YWJsZS1zZWFyY2gtZmllbGQgZGVuc2UtNFwiIGZ4RmxleD1cImF1dG9cIj5cclxuICAgICAgPHNwYW4gbWF0UHJlZml4PlxyXG4gICAgICAgIDxpIGNsYXNzPVwicGgtYm9sZCBwaC1tYWduaWZ5aW5nLWdsYXNzIHNlYXJjaC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJzZWFyY2gtbGFiZWxcIj57eydhcm1hdHVyZS5zb2YtdGFibGUuc2VhcmNoJyB8IHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxpbnB1dCBcclxuICAgICAgICAoaW5wdXQpPVwib25TZWFyY2hUZXh0Q2hhbmdlZCgpXCIgXHJcbiAgICAgICAgI2dyaWRTZWFyY2hUZXh0SW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBpZD1cImdyaWRTZWFyY2hUZXh0SW5wdXRcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ2FybWF0dXJlLnNvZi10YWJsZS5zY3JlZW4tcmVhZGVyLnNlYXJjaC1maWx0ZXItZGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlXCIvPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICB9XHJcbiAgQGlmIChlbmFibGVDb2x1bW5PcHRpb25zKSB7XHJcbiAgICA8YnV0dG9uIFxyXG4gICAgICAoY2xpY2spPVwib3BlbkNvbHVtbk9wdGlvbnMoKVwiXHJcbiAgICAgIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cInNvZi1idXR0b24taWNvbi12MlwiIFxyXG4gICAgICB0aGVtZT1cIm5ldXRyYWxcIiBlbXBoYXNpcz1cInNlY29uZGFyeVwiIGlkPVwib3Blbi1jb2x1bW4tb3B0aW9uc1wiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ2FybWF0dXJlLnNvZi10YWJsZS5zY3JlZW4tcmVhZGVyLmNvbHVtbi1vcHRpb25zLWJ0bicgfCB0cmFuc2xhdGVcIlxyXG4gICAgICBbbWF0VG9vbHRpcF09XCInYXJtYXR1cmUuc29mLXRhYmxlLnNjcmVlbi1yZWFkZXIuY29sdW1uLW9wdGlvbnMtYnRuJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICA8aSBjbGFzcz1cInBoLWJvbGQgcGgtcGF1c2VcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICA8L2J1dHRvbj5cclxuICB9XHJcbiAgQGlmKGVuYWJsZUV4cG9ydCkge1xyXG4gICAgPGJ1dHRvbiBcclxuICAgICAgKGNsaWNrKT1cImV4cG9ydEZpbHRlcmVkUm93RGF0YSgpXCJcclxuICAgICAgbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwic29mLWJ1dHRvbi1pY29uLXYyXCIgXHJcbiAgICAgIHRoZW1lPVwibmV1dHJhbFwiIGVtcGhhc2lzPVwic2Vjb25kYXJ5XCIgaWQ9XCJleHBvcnQtdGFibGVcIlxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidhcm1hdHVyZS5zb2YtdGFibGUuc2NyZWVuLXJlYWRlci5leHBvcnQtdGFibGUnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgW21hdFRvb2x0aXBdPVwiJ2FybWF0dXJlLnNvZi10YWJsZS5zY3JlZW4tcmVhZGVyLmV4cG9ydC10YWJsZScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgPGkgY2xhc3M9XCJwaC1ib2xkIHBoLWV4cG9ydFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgIDwvYnV0dG9uPlxyXG4gIH1cclxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbc29mLXRhYmxlLXJpZ2h0LWJ1dHRvbnNdXCI+PC9uZy1jb250ZW50PlxyXG4gIDwhLS0gXHJcbiAgT25seSBpbmplY3QgPGJ1dHRvbj4ncyBpbnNpZGUgYW4gPG5nLWNvbnRhaW5lciBzb2YtdGFibGUtcmlnaHQtYnV0dG9ucz5cclxuICAuLi4gXHJcbiAgPG5nLWNvbnRhaW5lciBzb2YtdGFibGUtcmlnaHQtYnV0dG9ucz5cclxuICAgIDxidXR0b24gXHJcbiAgICAgIChjbGljayk9XCJhbnlGdW5jdGlvbigpXCJcclxuICAgICAgbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwic29mLWJ1dHRvbi1pY29uLXYyXCIgXHJcbiAgICAgIHRoZW1lPVwibmV1dHJhbFwiIGVtcGhhc2lzPVwic2Vjb25kYXJ5XCIgYXJpYS1sYWJlbD1cImFueSBidXR0b25cIlxyXG4gICAgICBtYXRUb29sdGlwPVwiYW55IGJ1dHRvblwiPlxyXG4gICAgICA8aSBjbGFzcz1cInBoLWJvbGQgcGgtYWNvcm5cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICAuLi4gXHJcbiAgbm90ZTogbWFrZSBzdXJlIGJ1dHRvbnMgaGF2ZSB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMgdG8gbWF0Y2ggb3RoZXJzID1cclxuICBgbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwic29mLWJ1dHRvbi1pY29uLXYyXCIgdGhlbWU9XCJuZXV0cmFsXCIgZW1waGFzaXM9XCJzZWNvbmRhcnlcImBcclxuICAqIHJlbWVtYmVyIHRvIGFkZCBhcmlhLWxhYmVsIGFuZCB0b29sdGlwIGZvciBpY29uIGJ1dHRvblxyXG4gIC0tPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgI2FyaWFSZXN1bHRzQ291bnQgY2xhc3M9XCJzci1vbmx5XCIgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCI+PC9kaXY+XHJcblxyXG5AaWYgKGlzR3JpZERhdGFSZW5kZXJlZCgpICYmIGZpbHRlck9wZW5TdGF0ZSkge1xyXG4gIDxmaWVsZHNldCBcclxuICAgIGNsYXNzPVwiZmlsdGVyLXBhbmVsXCIgcm9sZT1cInJlZ2lvblwiXHJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidhcm1hdHVyZS5zb2YtdGFibGUuc2NyZWVuLXJlYWRlci5zZWxlY3QtZmlsdGVycy1kZXNjcmlwdGlvbicgfCB0cmFuc2xhdGVcIj5cclxuICAgIDxwPlxyXG4gICAgICA8aSBjbGFzcz1cInBoIHBoLWJvbGQgcGgtc2xpZGVycy1ob3Jpem9udGFsXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm0tbC04XCI+e3snYXJtYXR1cmUuc29mLXRhYmxlLmZpbHRlcicgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgIDwvcD5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItcGFuZWwtc2VsZWN0LWNvbnRhaW5lciBtLXYtMjBcIj5cclxuICAgICAgQGZvciAoY29sRmlsdGVyIG9mIGNvbEZpbHRlcnM7IGxldCBpID0gJGluZGV4OyB0cmFjayBpKSB7XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJzb2YtZm9ybS1maWVsZCB0YWJsZS1maWx0ZXItc2VsZWN0XCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPnt7Y29sRmlsdGVyLmxhYmVsfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxtYXQtc2VsZWN0IFxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlclNlbGVjdGlvbnNbaV1cIiBcclxuICAgICAgICAgICAgbXVsdGlwbGUgXHJcbiAgICAgICAgICAgIGlkPVwiZmlsdGVyRHJvcGRvd257e2l9fVwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3snYXJtYXR1cmUuc29mLXRhYmxlLmFsbCcgfCB0cmFuc2xhdGV9fVwiIGRpc2FibGVSaXBwbGU9XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIEBmb3IgKGNvbE9wdGlvbiBvZiBjb2xGaWx0ZXIub3B0aW9uczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImNvbE9wdGlvblwiPlxyXG4gICAgICAgICAgICAgICAge3tjb2xPcHRpb259fVxyXG4gICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBmeExheW91dD1cInJvd1wiPlxyXG4gICAgICA8ZGl2IGZ4RmxleD1cIjUwJVwiPlxyXG4gICAgICAgIDxidXR0b24gXHJcbiAgICAgICAgICAoY2xpY2spPVwiY2xlYXJGaWx0ZXJzKClcIiBbZGlzYWJsZWRdPVwiaGFzRW1wdHlGaWx0ZXJzKClcIiBcclxuICAgICAgICAgIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cInNvZi1idXR0b24tdjJcIlxyXG4gICAgICAgICAgdGhlbWU9XCJuZXV0cmFsXCIgZW1waGFzaXM9XCJmbG9hdGluZ1wiXHJcbiAgICAgICAgICBpZD1cInRhYmxlRmlsdGVyQ2xlYXJcIj5cclxuICAgICAgICAgIHt7J2FybWF0dXJlLnNvZi10YWJsZS5yZXNldCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBmeEZsZXg9XCI1MCVcIj5cclxuICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIyJVwiIGZ4TGF5b3V0QWxpZ249XCJmbGV4LWVuZFwiPlxyXG4gICAgICAgICAgPGRpdiBmeEZsZXg9XCIwIDEgYXV0b1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIFxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJjYW5jZWxGaWx0ZXJDaGFuZ2VzKClcIiBtYXQtZmxhdC1idXR0b24gY2xhc3M9XCJzb2YtYnV0dG9uLXYyXCIgXHJcbiAgICAgICAgICAgICAgaWQ9XCJ0YWJsZUZpbHRlckNhbmNlbFwiIHRoZW1lPVwibmV1dHJhbFwiIGVtcGhhc2lzPVwic2Vjb25kYXJ5XCI+XHJcbiAgICAgICAgICAgICAge3snYXJtYXR1cmUuc29mLXRhYmxlLmNhbmNlbCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBmeEZsZXg9XCIwIDEgYXV0b1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIFxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJhcHBseUZpbHRlcnMoKVwiIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cInNvZi1idXR0b24tdjJcIlxyXG4gICAgICAgICAgICAgIGlkPVwidGFibGVGaWx0ZXJBcHBseVwiIHRoZW1lPVwicHJpbWFyeVwiIGVtcGhhc2lzPVwic29saWRcIj5cclxuICAgICAgICAgICAgICB7eydhcm1hdHVyZS5zb2YtdGFibGUucmVzdWx0cycgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZmllbGRzZXQ+XHJcbn1cclxuXHJcbjxhZy1ncmlkLWFuZ3VsYXIgXHJcbiAgW2Z4U2hvd109XCJpc0dyaWREYXRhUmVuZGVyZWQoKVwiXHJcbiAgKGdyaWRSZWFkeSk9XCJvbkdyaWRSZWFkeSgkZXZlbnQpXCIgXHJcbiAgKGZpcnN0RGF0YVJlbmRlcmVkKT1cIm9uRmlyc3REYXRhUmVuZGVyZWQoKVwiXHJcbiAgKGZpbHRlckNoYW5nZWQpPVwib25GaWx0ZXJDaGFuZ2VkKClcIlxyXG4gIChwYWdpbmF0aW9uQ2hhbmdlZCk9XCJjaGFuZ2VQYWdlU2l6ZSgkZXZlbnQpXCIgXHJcbiAgW3Jvd0RhdGFdPVwicm93RGF0YVwiIFxyXG4gIFtjb2x1bW5EZWZzXT1cImNvbERlZnNcIiBcclxuICBbZGVmYXVsdENvbERlZl09XCJkZWZhdWx0Q29sRGVmXCIgXHJcbiAgW3BhZ2luYXRpb25dPVwidHJ1ZVwiIFxyXG4gIFtzdXBwcmVzc1BhZ2luYXRpb25QYW5lbF09XCJ0cnVlXCJcclxuICBbcGFnaW5hdGlvblBhZ2VTaXplU2VsZWN0b3JdPVwicGFnaW5hdGlvblBhZ2VTaXplU2VsZWN0b3JcIiBcclxuICBbcGFnaW5hdGlvblBhZ2VTaXplXT1cInBhZ2luYXRpb25QYWdlU2l6ZVwiXHJcbiAgW2hlYWRlckhlaWdodF09XCJyb3dIZWlnaHRcIiBcclxuICBbcm93SGVpZ2h0XT1cInJvd0hlaWdodFwiIFxyXG4gIFtkb21MYXlvdXRdPVwiJ2F1dG9IZWlnaHQnXCIgXHJcbiAgW3Rvb2x0aXBTaG93RGVsYXldPVwidG9vbHRpcFNob3dEZWxheVwiXHJcbiAgW292ZXJsYXlOb1Jvd3NUZW1wbGF0ZV09XCInYXJtYXR1cmUuc29mLXRhYmxlLm5vLXJvd3MnIHwgdHJhbnNsYXRlXCJcclxuICBbY2xhc3Mubm8tcm93c109XCIhdG90YWxMZW5ndGhcIlxyXG4gIGNsYXNzPVwiYWctdGhlbWUtbWF0ZXJpYWxcIj5cclxuPC9hZy1ncmlkLWFuZ3VsYXI+XHJcblxyXG48ZGl2IFxyXG4gIFtmeFNob3ddPVwiaXNHcmlkRGF0YVJlbmRlcmVkKCkgJiYgdG90YWxMZW5ndGhcIlxyXG4gIGNsYXNzPVwiY3VzdG9tLXBhZ2luYXRvclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJmaXJzdC1zZWN0aW9uXCI+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uLXBhcnQtMVwiIHR5cGU9XCJidXR0b25cIj5cclxuICAgICAgPG1hdC1zZWxlY3QgXHJcbiAgICAgICAgI3BhZ2VTaXplU2VsZWN0XHJcbiAgICAgICAgaWQ9XCJwYWdlU2l6ZUlucHV0XCIgbmFtZT1cInBhZ2VTaXplSW5wdXRcIiBcclxuICAgICAgICBbKHZhbHVlKV09XCJwYWdpbmF0aW9uUGFnZVNpemVcIiBkaXNhYmxlUmlwcGxlPVwidHJ1ZVwiPlxyXG4gICAgICAgIEBmb3IgKHNpemUgb2YgcGFnaW5hdGlvblBhZ2VTaXplU2VsZWN0b3I7IGxldCBpID0gJGluZGV4OyB0cmFjayBpKSB7XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBcclxuICAgICAgICAgICAgY2xhc3M9XCJwYWdlLW9wdGlvblwiIGlkPVwic2l6ZXt7aX19XCJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cInBhZ2luYXRpb25QYWdlU2l6ZVNlbGVjdG9yW2ldXCI+XHJcbiAgICAgICAgICAgIHt7c2l6ZX19XHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxtYXQtc2VsZWN0LXRyaWdnZXI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJyZW50LXBhZ2VcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBhZ2VcIj57e3BhZ2luYXRpb25QYWdlU2l6ZX19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VsZWN0LWljb25cIj5cclxuICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiJ3BoLWJvbGQgcGgtY2FyZXQtJyArIChwYWdlU2l6ZVNlbGVjdC5wYW5lbE9wZW4gPyAndXAnOidkb3duJylcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdC10cmlnZ2VyPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxzcGFuIGNsYXNzPVwicGFnZUNoYW5nZVRleHRcIj5cclxuICAgICAge3twYWdlQ2hhbmdlVGV4dH19IHt7J2FybWF0dXJlLnNvZi10YWJsZS5vZicgfCB0cmFuc2xhdGV9fSB7e3RvdGFsTGVuZ3RofX1cclxuICAgIDwvc3Bhbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiZ28tdG8tcGFnZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm91dGVyLWJveFwiPlxyXG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uLXBhcnRcIiB0eXBlPVwiYnV0dG9uXCI+XHJcbiAgICAgICAgPG1hdC1zZWxlY3QgXHJcbiAgICAgICAgICAjcGFnZU51bWJlclNlbGVjdFxyXG4gICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblBhZ2VOdW1iZXJDaGFuZ2UoJGV2ZW50LnZhbHVlKVwiXHJcbiAgICAgICAgICBbKHZhbHVlKV09XCJjdXJyZW50UGFnZVwiIFxyXG4gICAgICAgICAgaWQ9XCJwYWdlU2VsZWxjdG9yXCIgbmFtZT1cInBhZ2VTZWxlY3RvclwiIGRpc2FibGVSaXBwbGU9XCJ0cnVlXCI+XHJcbiAgICAgICAgICBAZm9yIChwYWdlIG9mIHBhZ2VTZWxlY3RvcjsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJwYWdlXCIgY2xhc3M9XCJwYWdlLW9wdGlvblwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3VycmVudC1wYWdlXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBhZ2VcIj57e3BhZ2V9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIDxtYXQtc2VsZWN0LXRyaWdnZXI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3VycmVudC1wYWdlXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBhZ2VcIj57e2N1cnJlbnRQYWdlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9mLXBhZ2VcIj4ge3snYXJtYXR1cmUuc29mLXRhYmxlLm9mJyB8IHRyYW5zbGF0ZX19IHt7dG90YWxOdW1iZXJPZlBhZ2VzfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlbGVjdC1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiJ3BoLWJvbGQgcGgtY2FyZXQtJyArIChwYWdlTnVtYmVyU2VsZWN0LnBhbmVsT3BlbiA/ICd1cCc6J2Rvd24nKVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0LXRyaWdnZXI+XHJcbiAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPG5hdiBjbGFzcz1cInNlY29uZC1zZWN0aW9uXCI+XHJcbiAgICAgIDxidXR0b24gXHJcbiAgICAgICAgKGNsaWNrKT1cInByZXZpb3VzUGFnZSgpXCJcclxuICAgICAgICBpZD1cInByZXYtYnV0dG9uXCIgbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwic29mLWJ1dHRvbi1pY29uLXYyXCIgdGhlbWU9XCJuZXV0cmFsXCIgZW1waGFzaXM9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gMVwiIFxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3NjcmVlbi1yZWFkZXIucGFnaW5hdGlvbi5wcmV2aW91cycgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICA8aSBjbGFzcz1cInBoLWJvbGQgcGgtY2FyZXQtbGVmdFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gXHJcbiAgICAgICAgKGNsaWNrKT1cIm5leHRQYWdlKClcIiBcclxuICAgICAgICBpZD1cIm5leHQtYnV0dG9uXCIgbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwic29mLWJ1dHRvbi1pY29uLXYyXCIgdGhlbWU9XCJuZXV0cmFsXCIgZW1waGFzaXM9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gdG90YWxOdW1iZXJPZlBhZ2VzXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidzY3JlZW4tcmVhZGVyLnBhZ2luYXRpb24ubmV4dCcgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICA8aSBjbGFzcz1cInBoLWJvbGQgcGgtY2FyZXQtcmlnaHRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9uYXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuQGlmICghaXNHcmlkRGF0YVJlbmRlcmVkKCkpIHtcclxuICA8ZGl2IGNsYXNzPVwibG9hZGluZy1jb250YWluZXJcIj5cclxuICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjb2xvcj1cInByaW1hcnlcIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiLz5cclxuICA8L2Rpdj5cclxufVxyXG4iXX0=