@progress-chef/platform-shared-components 0.0.43 → 0.0.44

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.
Files changed (37) hide show
  1. package/esm2022/lib/atoms/avatar/avatar.component.mjs +3 -3
  2. package/esm2022/lib/atoms/breadcrumb/breadcrumb.component.mjs +2 -2
  3. package/esm2022/lib/atoms/button/button.component.mjs +4 -4
  4. package/esm2022/lib/atoms/button-group/button-group.component.mjs +3 -3
  5. package/esm2022/lib/atoms/checkbox/checkbox.component.mjs +2 -2
  6. package/esm2022/lib/atoms/drag-and-drop/drag-and-drop.component.mjs +13 -26
  7. package/esm2022/lib/atoms/dropdown/dropdown.component.mjs +2 -2
  8. package/esm2022/lib/atoms/dropdowntree/dropdowntree.component.mjs +3 -3
  9. package/esm2022/lib/atoms/expansion-panel/expansion-panel.component.mjs +3 -3
  10. package/esm2022/lib/atoms/label/label.component.mjs +2 -2
  11. package/esm2022/lib/atoms/multi-select-dropdown/multi-select-dropdown.component.mjs +2 -2
  12. package/esm2022/lib/atoms/radio-button/radio-button.component.mjs +2 -2
  13. package/esm2022/lib/atoms/slider/slider.component.mjs +3 -3
  14. package/esm2022/lib/atoms/text-area/text-area.component.mjs +30 -8
  15. package/esm2022/lib/atoms/text-area/text-area.module.mjs +6 -6
  16. package/esm2022/lib/atoms/timescheduler/timescheduler.component.mjs +2 -2
  17. package/esm2022/lib/atoms/typography/TypographyType.mjs +1 -1
  18. package/esm2022/lib/atoms/typography/typography.component.mjs +40 -20
  19. package/esm2022/lib/molecules/card/card-header/card-header.component.mjs +3 -3
  20. package/esm2022/lib/molecules/card/card.component.mjs +2 -2
  21. package/esm2022/lib/molecules/dialog/confirmation-dialog/confirmation-dialog.component.mjs +68 -0
  22. package/esm2022/lib/molecules/dialog/dialog-titlebar/dialog-titlebar.component.mjs +2 -2
  23. package/esm2022/lib/molecules/dialog/dialog.module.mjs +14 -7
  24. package/esm2022/lib/molecules/grid/grid-form/grid-form.component.mjs +3 -3
  25. package/esm2022/lib/molecules/grid/grid.component.mjs +3 -3
  26. package/esm2022/lib/molecules/grid-pagination/grid-pagination.component.mjs +3 -3
  27. package/esm2022/public-api.mjs +2 -1
  28. package/fesm2022/progress-chef-platform-shared-components.mjs +189 -94
  29. package/fesm2022/progress-chef-platform-shared-components.mjs.map +1 -1
  30. package/lib/atoms/drag-and-drop/drag-and-drop.component.d.ts +3 -3
  31. package/lib/atoms/text-area/text-area.component.d.ts +11 -3
  32. package/lib/atoms/text-area/text-area.module.d.ts +1 -1
  33. package/lib/atoms/typography/TypographyType.d.ts +1 -1
  34. package/lib/molecules/dialog/confirmation-dialog/confirmation-dialog.component.d.ts +19 -0
  35. package/lib/molecules/dialog/dialog.module.d.ts +7 -5
  36. package/package.json +1 -1
  37. package/public-api.d.ts +1 -0
@@ -312,11 +312,11 @@ export class GridPaginationComponent {
312
312
  this.grid.cancelCell();
313
313
  }
314
314
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridPaginationComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
315
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GridPaginationComponent, selector: "lib-grid-pagination", inputs: { gridView: "gridView", skip: "skip", columnData: "columnData", pageSize: "pageSize", pageable: "pageable", sortable: "sortable", groupable: "groupable", reorderable: "reorderable", resizable: "resizable", checkBoxWidth: "checkBoxWidth", checkBoxColumnResizable: "checkBoxColumnResizable", checkBoxColumnMenu: "checkBoxColumnMenu", checkBoxColumnShowSelectedAll: "checkBoxColumnShowSelectedAll", checkBoxRequired: "checkBoxRequired", columnMenu: "columnMenu", mode: "mode", checkboxOnly: "checkboxOnly", dragColumns: "dragColumns", navigable: "navigable", gridRowSelectByValue: "gridRowSelectByValue", noRecordsContent: "noRecordsContent", showToolbar: "showToolbar", kebabList: "kebabList", showKebab: "showKebab", icon: "icon", kebabColumnWidth: "kebabColumnWidth", selectColumn: "selectColumn", preSelected: "preSelected", ignoreColumnCellClick: "ignoreColumnCellClick", allowColumnClick: "allowColumnClick", sort: "sort", hasApiSorting: "hasApiSorting", expandRowIndex: "expandRowIndex", customExpandRowColumn: "customExpandRowColumn", deleteColumnWidth: "deleteColumnWidth", sizes: "sizes", pageCount: "pageCount", showDeleteColumn: "showDeleteColumn", hideKebabRowIndex: "hideKebabRowIndex", loading: "loading", loaderType: "loaderType", loaderSize: "loaderSize", loaderTheme: "loaderTheme", disablePreSelectedRows: "disablePreSelectedRows", allowEditingCell: "allowEditingCell" }, outputs: { selectedRowData: "selectedRowData", rowDetails: "rowDetails", kebabItemClick: "kebabItemClick", rowDataOfClickedCell: "rowDataOfClickedCell", onPageChange: "onPageChange", sortDirection: "sortDirection", deletedRowData: "deletedRowData", updatedData: "updatedData" }, host: { listeners: { "window:resize": "resize($event)" } }, queries: [{ propertyName: "templateRef", first: true, predicate: ["multiColumnData"], descendants: true }, { propertyName: "detailTemplate", first: true, predicate: ["detailTemplate"], descendants: true }, { propertyName: "impactColumn", first: true, predicate: ["impactColumn"], descendants: true }], viewQueries: [{ propertyName: "grid", first: true, predicate: GridComponent, descendants: true }, { propertyName: "gridElement", first: true, predicate: ["gridElement"], descendants: true }], ngImport: i0, template: "<div #gridElement (window:resize)=\"resize($event)\">\n <kendo-grid [data]=\"gridView\" [pageSize]=\"pageSize\" [skip]=\"skip\" [selectable]=\"selectableSettings\"\n [pageable]=\"pageable\" [sortable]=\"sortable\" [groupable]=\"groupable\" [reorderable]=\"reorderable\"\n [resizable]=\"resizable\" [columnMenu]=\"columnMenu\" [navigable]=\"navigable\" [height]=\"height\" [style.height]=\"height\"\n (change)=\"setSelectableSettings()\" (selectedKeysChange)=\"selectedKeysChange($event)\"\n [kendoGridSelectBy]=\"gridRowSelectByValue\" (detailExpand)=\"onDetailExpand($event)\" [selectedKeys]=\"preSelected\"\n (pageChange)=\"pageChange($event)\" (cellClick)=\"cellClickHandler($event)\" (cellClose)=\"cellCloseHandler($event)\" [sort]=\"sort\"\n (sortChange)=\"sortChange($event)\" [ngClass]=\"getHeaderHeight()\" id=\"lib-grid\" [rowClass]=\"rowClass\">\n\n <ng-template *ngIf=\"showToolbar\" kendoGridToolbarTemplate>\n <ng-content></ng-content>\n </ng-template>\n\n <ng-template *ngIf=\"this.gridView.total === 0\" kendoGridNoRecordsTemplate>\n <lib-typography *ngIf=\"!loading\" [defaultText]=\"noRecordsContent\" type=\"BODY_MEDIUM\"></lib-typography>\n <lib-loader *ngIf=\"loading\" [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n\n <ng-container *ngIf=\"this.gridView.total > 0\">\n <kendo-grid-checkbox-column *ngIf=\"checkBoxRequired === true\" [width]=\"checkBoxWidth\"\n [resizable]=\"checkBoxColumnResizable\" [columnMenu]=\"checkBoxColumnMenu\" class=\"checkbox-column\">\n <ng-template kendoGridHeaderTemplate>\n <input id=\"selectAllCheckboxId\" type=\"checkbox\" kendoCheckBox kendoGridSelectAllCheckbox\n [state]=\"selectAllState\" (selectAllChange)=\"onSelectAllChange($event)\" />\n </ng-template>\n </kendo-grid-checkbox-column>\n \n <kendo-grid-column class=\"grid-column\" *ngFor=\"let item of columnData\" [field]=\"item.field\" [title]=\"item.title\"\n [width]=\"item.columnWidth\" [sortable]=\"item.sortable\" [editor]=\"item.editor\">\n\n <ng-template *ngIf=\"sortable\" kendoGridHeaderTemplate>\n {{item.title}}\n <span *ngIf=\"sort[0].field === item.field\">\n <span *ngIf=\"sort[0].dir === 'asc'\"></span>\n <span *ngIf=\"sort[0].dir === 'desc'\"></span>\n </span>\n </ng-template>\n\n <ng-template *ngIf=\"item.custom\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"templateRef; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"item.impact\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"impactColumn; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column *ngIf=\"showDeleteColumn\" [width]=\"deleteColumnWidth\" class=\"delete-column\" title=\"Action\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <lib-tooltip showOn=\"hover\" position=\"bottom\" class=\"remove-tooltip\">\n <lib-icon name=\"delete\" class=\"delete-icon\" (click)=\"onDelete(dataItem)\"></lib-icon>\n <div class=\"tooltip-content\">\n <lib-typography defaultText=\"Remove\"></lib-typography>\n </div>\n </lib-tooltip>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column [width]=\"kebabColumnWidth\" class=\"kebab-column\" *ngIf=\"showKebab\" title=\"Actions\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <kendo-dropdownbutton *ngIf=\"!hideKebabRowIndex.includes(rowIndex)\" [svgIcon]=\"icon\" fillMode=\"none\"\n [data]=\"kebabList | kebabMenuFilter : dataItem\" class=\"kebab\" (itemClick)=\"onKebabClick($event, dataItem)\"\n [popupSettings]=\"{ align: 'right', animate: true, popupClass: 'kebab-list' }\">\n </kendo-dropdownbutton>\n </ng-template>\n </kendo-grid-column>\n </ng-container>\n\n <ng-template kendoGridDetailTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"detailTemplate; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n\n <kendo-grid-column *ngIf=\"customExpandRowColumn\" [width]=\"expandRowColumnWidth\" class=\"grid-column expand-column\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <div [ngClass]=\"expandColumnClass()\">\n <span *ngIf=\"selectedRows.includes(dataItem[gridRowSelectByValue]) && disablePreSelectedRows\"\n class=\"expand-column-text\">\n Already added\n </span>\n <kendo-button *ngIf=\"!expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowDownIcon\"\n (click)=\"expandRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n <kendo-button *ngIf=\"expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowUpIcon\"\n (click)=\"collapseRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n </div>\n </ng-template>\n </kendo-grid-column>\n\n <ng-template kendoPagerTemplate let-totalPages=\"totalPages\" let-currentPage=\"currentPage\">\n <kendo-pager-prev-buttons></kendo-pager-prev-buttons>\n <kendo-pager-numeric-buttons [buttonCount]=\"pageCount\"></kendo-pager-numeric-buttons>\n <kendo-pager-next-buttons></kendo-pager-next-buttons>\n <kendo-pager-info></kendo-pager-info>\n <kendo-pager-page-sizes [pageSizes]=\"sizes\"></kendo-pager-page-sizes>\n </ng-template>\n\n </kendo-grid>\n</div>\n", styles: ["::ng-deep .k-grid tr{height:50px}::ng-deep .k-grid .k-table-th,::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important;border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:2px!important;border-right:0px!important;border-left:0px!important}::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important}::ng-deep .k-grid tbody>tr:not(.k-detail-row):hover{background-color:#d0dcf5!important}::ng-deep .k-grid .k-table-row.k-selected>.k-table-td{background-color:#c9d7f4!important}::ng-deep .k-grid .k-table-td{border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:1px!important;border-right:0px!important;border-left:0px!important}::ng-deep .k-table-alt-row{background-color:inherit!important}::ng-deep .k-grid .k-table-td{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}::ng-deep .k-grid-norecords{text-align:center!important;opacity:.4}::ng-deep .k-grid-norecords td{padding:14px 0 14px 24px!important}::ng-deep kendo-pager.k-pager-wrap.k-grid-pager{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}::ng-deep .k-grid th.k-header{vertical-align:middle!important;padding-left:16px;padding-right:0}::ng-deep .grid-column,::ng-deep .kebab-column,::ng-deep .delete-column{padding:0!important}::ng-deep .grid-column kendo-button,::ng-deep .kebab-column kendo-button,::ng-deep .delete-column kendo-button{align-items:center!important;justify-content:center!important;display:flex!important}::ng-deep .k-checkbox{width:20px!important;height:20px!important;border-radius:0!important}::ng-deep .k-grid .k-hierarchy-cell,::ng-deep .k-grid .k-hierarchy-col{width:0;display:none}::ng-deep .k-grid .k-detail-row .k-detail-cell{padding:16px!important}::ng-deep .delete-icon{color:#dc267f!important;padding-left:12px;cursor:pointer}::ng-deep .remove-tooltip kendo-tooltip.k-tooltip{background-color:#fff;color:#000}::ng-deep .hide-header .k-grid-header{border:0px!important}::ng-deep .k-grid-toolbar{padding:4px 16px!important;height:50px}::ng-deep .k-grid td:not(.kebab-column):not(.expand-column){padding-left:16px!important;padding-right:16px!important}::ng-deep .view-header .k-table-thead tr{height:50px}::ng-deep .hide-header .k-table-thead tr{height:0px;padding:0;display:block}::ng-deep td.kebab-column{display:flex;justify-content:center;align-items:center;height:inherit}::ng-deep .k-grid .k-table-td>.k-checkbox{vertical-align:middle!important}::ng-deep .kebab .k-button,::ng-deep .expand-column .k-button{border:0px}::ng-deep .expand-column{pointer-events:all!important}::ng-deep .expand-column-text{margin-right:32px}::ng-deep .expand-row{display:flex;align-items:center;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: i2.DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["arrowIcon", "icon", "svgIcon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor", "buttonAttributes"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }, { kind: "component", type: i3.IconComponent, selector: "lib-icon", inputs: ["name", "fontSize", "type"] }, { kind: "directive", type: i4.CheckBoxDirective, selector: "input[kendoCheckBox]", inputs: ["size", "rounded"] }, { kind: "component", type: i5.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "rowReorderable", "navigable", "navigatable", "autoSize", "rowClass", "rowSticky", "rowSelected", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "isDetailExpanded", "isGroupExpanded"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "directive", type: i5.ToolbarTemplateDirective, selector: "[kendoGridToolbarTemplate]", inputs: ["position"] }, { kind: "directive", type: i5.SelectionDirective, selector: "[kendoGridSelectBy]" }, { kind: "component", type: i5.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterable", "editable"] }, { kind: "directive", type: i5.DetailTemplateDirective, selector: "[kendoGridDetailTemplate]", inputs: ["kendoGridDetailTemplateShowIf"] }, { kind: "component", type: i5.CheckboxColumnComponent, selector: "kendo-grid-checkbox-column", inputs: ["showSelectAll"] }, { kind: "directive", type: i5.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "directive", type: i5.NoRecordsTemplateDirective, selector: "[kendoGridNoRecordsTemplate]" }, { kind: "directive", type: i5.HeaderTemplateDirective, selector: "[kendoGridHeaderTemplate]" }, { kind: "directive", type: i5.SelectAllCheckboxDirective, selector: "[kendoGridSelectAllCheckbox]", inputs: ["state"], outputs: ["selectAllChange"] }, { kind: "component", type: i5.PagerPrevButtonsComponent, selector: "kendo-pager-prev-buttons" }, { kind: "component", type: i5.PagerNextButtonsComponent, selector: "kendo-pager-next-buttons" }, { kind: "component", type: i5.PagerNumericButtonsComponent, selector: "kendo-pager-numeric-buttons", inputs: ["buttonCount"] }, { kind: "component", type: i5.PagerInfoComponent, selector: "kendo-pager-info" }, { kind: "component", type: i5.PagerPageSizesComponent, selector: "kendo-pager-page-sizes", inputs: ["pageSizes"] }, { kind: "directive", type: i5.PagerTemplateDirective, selector: "[kendoPagerTemplate]" }, { kind: "component", type: i6.TooltipComponent, selector: "lib-tooltip", inputs: ["position", "tooltipWidth", "tooltipHeight", "showOn", "closable", "title", "callout"] }, { kind: "component", type: i7.TypographyComponent, selector: "lib-typography", inputs: ["type", "defaultText", "isLabel", "hiddenLabel"] }, { kind: "component", type: i8.LoaderComponent, selector: "lib-loader", inputs: ["size", "type", "themeColor"] }, { kind: "pipe", type: i9.KebabMenuFilterPipe, name: "kebabMenuFilter" }] }); }
315
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GridPaginationComponent, selector: "lib-grid-pagination", inputs: { gridView: "gridView", skip: "skip", columnData: "columnData", pageSize: "pageSize", pageable: "pageable", sortable: "sortable", groupable: "groupable", reorderable: "reorderable", resizable: "resizable", checkBoxWidth: "checkBoxWidth", checkBoxColumnResizable: "checkBoxColumnResizable", checkBoxColumnMenu: "checkBoxColumnMenu", checkBoxColumnShowSelectedAll: "checkBoxColumnShowSelectedAll", checkBoxRequired: "checkBoxRequired", columnMenu: "columnMenu", mode: "mode", checkboxOnly: "checkboxOnly", dragColumns: "dragColumns", navigable: "navigable", gridRowSelectByValue: "gridRowSelectByValue", noRecordsContent: "noRecordsContent", showToolbar: "showToolbar", kebabList: "kebabList", showKebab: "showKebab", icon: "icon", kebabColumnWidth: "kebabColumnWidth", selectColumn: "selectColumn", preSelected: "preSelected", ignoreColumnCellClick: "ignoreColumnCellClick", allowColumnClick: "allowColumnClick", sort: "sort", hasApiSorting: "hasApiSorting", expandRowIndex: "expandRowIndex", customExpandRowColumn: "customExpandRowColumn", deleteColumnWidth: "deleteColumnWidth", sizes: "sizes", pageCount: "pageCount", showDeleteColumn: "showDeleteColumn", hideKebabRowIndex: "hideKebabRowIndex", loading: "loading", loaderType: "loaderType", loaderSize: "loaderSize", loaderTheme: "loaderTheme", disablePreSelectedRows: "disablePreSelectedRows", allowEditingCell: "allowEditingCell" }, outputs: { selectedRowData: "selectedRowData", rowDetails: "rowDetails", kebabItemClick: "kebabItemClick", rowDataOfClickedCell: "rowDataOfClickedCell", onPageChange: "onPageChange", sortDirection: "sortDirection", deletedRowData: "deletedRowData", updatedData: "updatedData" }, host: { listeners: { "window:resize": "resize($event)" } }, queries: [{ propertyName: "templateRef", first: true, predicate: ["multiColumnData"], descendants: true }, { propertyName: "detailTemplate", first: true, predicate: ["detailTemplate"], descendants: true }, { propertyName: "impactColumn", first: true, predicate: ["impactColumn"], descendants: true }], viewQueries: [{ propertyName: "grid", first: true, predicate: GridComponent, descendants: true }, { propertyName: "gridElement", first: true, predicate: ["gridElement"], descendants: true }], ngImport: i0, template: "<div #gridElement (window:resize)=\"resize($event)\">\n <kendo-grid [data]=\"gridView\" [pageSize]=\"pageSize\" [skip]=\"skip\" [selectable]=\"selectableSettings\"\n [pageable]=\"pageable\" [sortable]=\"sortable\" [groupable]=\"groupable\" [reorderable]=\"reorderable\"\n [resizable]=\"resizable\" [columnMenu]=\"columnMenu\" [navigable]=\"navigable\" [height]=\"height\" [style.height]=\"height\"\n (change)=\"setSelectableSettings()\" (selectedKeysChange)=\"selectedKeysChange($event)\"\n [kendoGridSelectBy]=\"gridRowSelectByValue\" (detailExpand)=\"onDetailExpand($event)\" [selectedKeys]=\"preSelected\"\n (pageChange)=\"pageChange($event)\" (cellClick)=\"cellClickHandler($event)\" (cellClose)=\"cellCloseHandler($event)\" [sort]=\"sort\"\n (sortChange)=\"sortChange($event)\" [ngClass]=\"getHeaderHeight()\" id=\"lib-grid\" [rowClass]=\"rowClass\">\n\n <ng-template *ngIf=\"showToolbar\" kendoGridToolbarTemplate>\n <ng-content></ng-content>\n </ng-template>\n\n <ng-template *ngIf=\"this.gridView.total === 0\" kendoGridNoRecordsTemplate>\n <lib-typography *ngIf=\"!loading\" [defaultText]=\"noRecordsContent\" type=\"P_MULISH_16_REGULAR\"></lib-typography>\n <lib-loader *ngIf=\"loading\" [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n\n <ng-container *ngIf=\"this.gridView.total > 0\">\n <kendo-grid-checkbox-column *ngIf=\"checkBoxRequired === true\" [width]=\"checkBoxWidth\"\n [resizable]=\"checkBoxColumnResizable\" [columnMenu]=\"checkBoxColumnMenu\" class=\"checkbox-column\">\n <ng-template kendoGridHeaderTemplate>\n <input id=\"selectAllCheckboxId\" type=\"checkbox\" kendoCheckBox kendoGridSelectAllCheckbox\n [state]=\"selectAllState\" (selectAllChange)=\"onSelectAllChange($event)\" />\n </ng-template>\n </kendo-grid-checkbox-column>\n \n <kendo-grid-column class=\"grid-column\" *ngFor=\"let item of columnData\" [field]=\"item.field\" [title]=\"item.title\"\n [width]=\"item.columnWidth\" [sortable]=\"item.sortable\" [editor]=\"item.editor\">\n\n <ng-template *ngIf=\"sortable\" kendoGridHeaderTemplate>\n {{item.title}}\n <span *ngIf=\"sort[0].field === item.field\">\n <span *ngIf=\"sort[0].dir === 'asc'\"></span>\n <span *ngIf=\"sort[0].dir === 'desc'\"></span>\n </span>\n </ng-template>\n\n <ng-template *ngIf=\"item.custom\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"templateRef; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"item.impact\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"impactColumn; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column *ngIf=\"showDeleteColumn\" [width]=\"deleteColumnWidth\" class=\"delete-column\" title=\"Action\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <lib-tooltip showOn=\"hover\" position=\"bottom\" class=\"remove-tooltip\">\n <lib-icon name=\"delete\" class=\"delete-icon\" (click)=\"onDelete(dataItem)\"></lib-icon>\n <div class=\"tooltip-content\">\n <lib-typography defaultText=\"Remove\"></lib-typography>\n </div>\n </lib-tooltip>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column [width]=\"kebabColumnWidth\" class=\"kebab-column\" *ngIf=\"showKebab\" title=\"Actions\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <kendo-dropdownbutton *ngIf=\"!hideKebabRowIndex.includes(rowIndex)\" [svgIcon]=\"icon\" fillMode=\"none\"\n [data]=\"kebabList | kebabMenuFilter : dataItem\" class=\"kebab\" (itemClick)=\"onKebabClick($event, dataItem)\"\n [popupSettings]=\"{ align: 'right', animate: true, popupClass: 'kebab-list' }\">\n </kendo-dropdownbutton>\n </ng-template>\n </kendo-grid-column>\n </ng-container>\n\n <ng-template kendoGridDetailTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"detailTemplate; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n\n <kendo-grid-column *ngIf=\"customExpandRowColumn\" [width]=\"expandRowColumnWidth\" class=\"grid-column expand-column\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <div [ngClass]=\"expandColumnClass()\">\n <span *ngIf=\"selectedRows.includes(dataItem[gridRowSelectByValue]) && disablePreSelectedRows\"\n class=\"expand-column-text\">\n Already added\n </span>\n <kendo-button *ngIf=\"!expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowDownIcon\"\n (click)=\"expandRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n <kendo-button *ngIf=\"expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowUpIcon\"\n (click)=\"collapseRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n </div>\n </ng-template>\n </kendo-grid-column>\n\n <ng-template kendoPagerTemplate let-totalPages=\"totalPages\" let-currentPage=\"currentPage\">\n <kendo-pager-prev-buttons></kendo-pager-prev-buttons>\n <kendo-pager-numeric-buttons [buttonCount]=\"pageCount\"></kendo-pager-numeric-buttons>\n <kendo-pager-next-buttons></kendo-pager-next-buttons>\n <kendo-pager-info></kendo-pager-info>\n <kendo-pager-page-sizes [pageSizes]=\"sizes\"></kendo-pager-page-sizes>\n </ng-template>\n\n </kendo-grid>\n</div>\n", styles: ["::ng-deep .k-grid th{font-family:Mulish,sans-serif;font-weight:700;font-style:normal;font-size:16px;line-height:24px;letter-spacing:.2px}::ng-deep .k-grid tr{font-family:Mulish,sans-serif;font-weight:400;font-style:normal;font-size:14px;line-height:21px;letter-spacing:.8px;height:50px}::ng-deep .k-grid tr:hover{font-family:Mulish,sans-serif;font-weight:700;font-style:normal;font-size:14px;line-height:21px;letter-spacing:.8px}::ng-deep .k-grid-norecords{text-align:center!important;opacity:.4}::ng-deep .k-grid-norecords td{padding:14px 0 14px 24px!important}::ng-deep kendo-pager.k-pager-wrap.k-grid-pager{font-family:Mulish,sans-serif;font-weight:400;font-style:normal;font-size:14px;line-height:21px;letter-spacing:.2px}::ng-deep .k-grid th.k-header{vertical-align:middle!important;padding-left:16px;padding-right:0}::ng-deep .grid-column,::ng-deep .kebab-column,::ng-deep .delete-column{padding:0!important}::ng-deep .grid-column kendo-button,::ng-deep .kebab-column kendo-button,::ng-deep .delete-column kendo-button{align-items:center!important;justify-content:center!important;display:flex!important}::ng-deep .k-checkbox{width:20px!important;height:20px!important;border-radius:0!important}::ng-deep .k-grid .k-hierarchy-cell,::ng-deep .k-grid .k-hierarchy-col{width:0;display:none}::ng-deep .k-grid .k-detail-row .k-detail-cell{padding:16px!important}::ng-deep .delete-icon{color:#dc267f!important;padding-left:12px;cursor:pointer}::ng-deep .remove-tooltip kendo-tooltip.k-tooltip{background-color:#fff;color:#000}::ng-deep .hide-header .k-grid-header{border:0px!important}::ng-deep .k-grid-toolbar{padding:4px 16px!important;height:50px}::ng-deep .k-grid td:not(.kebab-column):not(.expand-column){padding-left:16px!important;padding-right:16px!important}::ng-deep .view-header .k-table-thead tr{height:50px}::ng-deep .hide-header .k-table-thead tr{height:0px;padding:0;display:block}::ng-deep td.kebab-column{display:flex;justify-content:center;align-items:center;height:inherit}::ng-deep .k-grid .k-table-td>.k-checkbox{vertical-align:middle!important}::ng-deep .kebab .k-button,::ng-deep .expand-column .k-button{border:0px}::ng-deep .expand-column{pointer-events:all!important}::ng-deep .expand-column-text{margin-right:32px}::ng-deep .expand-row{display:flex;align-items:center;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: i2.DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["arrowIcon", "icon", "svgIcon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor", "buttonAttributes"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }, { kind: "component", type: i3.IconComponent, selector: "lib-icon", inputs: ["name", "fontSize", "type"] }, { kind: "directive", type: i4.CheckBoxDirective, selector: "input[kendoCheckBox]", inputs: ["size", "rounded"] }, { kind: "component", type: i5.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "rowReorderable", "navigable", "navigatable", "autoSize", "rowClass", "rowSticky", "rowSelected", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "isDetailExpanded", "isGroupExpanded"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "directive", type: i5.ToolbarTemplateDirective, selector: "[kendoGridToolbarTemplate]", inputs: ["position"] }, { kind: "directive", type: i5.SelectionDirective, selector: "[kendoGridSelectBy]" }, { kind: "component", type: i5.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterable", "editable"] }, { kind: "directive", type: i5.DetailTemplateDirective, selector: "[kendoGridDetailTemplate]", inputs: ["kendoGridDetailTemplateShowIf"] }, { kind: "component", type: i5.CheckboxColumnComponent, selector: "kendo-grid-checkbox-column", inputs: ["showSelectAll"] }, { kind: "directive", type: i5.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "directive", type: i5.NoRecordsTemplateDirective, selector: "[kendoGridNoRecordsTemplate]" }, { kind: "directive", type: i5.HeaderTemplateDirective, selector: "[kendoGridHeaderTemplate]" }, { kind: "directive", type: i5.SelectAllCheckboxDirective, selector: "[kendoGridSelectAllCheckbox]", inputs: ["state"], outputs: ["selectAllChange"] }, { kind: "component", type: i5.PagerPrevButtonsComponent, selector: "kendo-pager-prev-buttons" }, { kind: "component", type: i5.PagerNextButtonsComponent, selector: "kendo-pager-next-buttons" }, { kind: "component", type: i5.PagerNumericButtonsComponent, selector: "kendo-pager-numeric-buttons", inputs: ["buttonCount"] }, { kind: "component", type: i5.PagerInfoComponent, selector: "kendo-pager-info" }, { kind: "component", type: i5.PagerPageSizesComponent, selector: "kendo-pager-page-sizes", inputs: ["pageSizes"] }, { kind: "directive", type: i5.PagerTemplateDirective, selector: "[kendoPagerTemplate]" }, { kind: "component", type: i6.TooltipComponent, selector: "lib-tooltip", inputs: ["position", "tooltipWidth", "tooltipHeight", "showOn", "closable", "title", "callout"] }, { kind: "component", type: i7.TypographyComponent, selector: "lib-typography", inputs: ["type", "defaultText", "isLabel", "hiddenLabel"] }, { kind: "component", type: i8.LoaderComponent, selector: "lib-loader", inputs: ["size", "type", "themeColor"] }, { kind: "pipe", type: i9.KebabMenuFilterPipe, name: "kebabMenuFilter" }] }); }
316
316
  }
317
317
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridPaginationComponent, decorators: [{
318
318
  type: Component,
319
- args: [{ selector: 'lib-grid-pagination', template: "<div #gridElement (window:resize)=\"resize($event)\">\n <kendo-grid [data]=\"gridView\" [pageSize]=\"pageSize\" [skip]=\"skip\" [selectable]=\"selectableSettings\"\n [pageable]=\"pageable\" [sortable]=\"sortable\" [groupable]=\"groupable\" [reorderable]=\"reorderable\"\n [resizable]=\"resizable\" [columnMenu]=\"columnMenu\" [navigable]=\"navigable\" [height]=\"height\" [style.height]=\"height\"\n (change)=\"setSelectableSettings()\" (selectedKeysChange)=\"selectedKeysChange($event)\"\n [kendoGridSelectBy]=\"gridRowSelectByValue\" (detailExpand)=\"onDetailExpand($event)\" [selectedKeys]=\"preSelected\"\n (pageChange)=\"pageChange($event)\" (cellClick)=\"cellClickHandler($event)\" (cellClose)=\"cellCloseHandler($event)\" [sort]=\"sort\"\n (sortChange)=\"sortChange($event)\" [ngClass]=\"getHeaderHeight()\" id=\"lib-grid\" [rowClass]=\"rowClass\">\n\n <ng-template *ngIf=\"showToolbar\" kendoGridToolbarTemplate>\n <ng-content></ng-content>\n </ng-template>\n\n <ng-template *ngIf=\"this.gridView.total === 0\" kendoGridNoRecordsTemplate>\n <lib-typography *ngIf=\"!loading\" [defaultText]=\"noRecordsContent\" type=\"BODY_MEDIUM\"></lib-typography>\n <lib-loader *ngIf=\"loading\" [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n\n <ng-container *ngIf=\"this.gridView.total > 0\">\n <kendo-grid-checkbox-column *ngIf=\"checkBoxRequired === true\" [width]=\"checkBoxWidth\"\n [resizable]=\"checkBoxColumnResizable\" [columnMenu]=\"checkBoxColumnMenu\" class=\"checkbox-column\">\n <ng-template kendoGridHeaderTemplate>\n <input id=\"selectAllCheckboxId\" type=\"checkbox\" kendoCheckBox kendoGridSelectAllCheckbox\n [state]=\"selectAllState\" (selectAllChange)=\"onSelectAllChange($event)\" />\n </ng-template>\n </kendo-grid-checkbox-column>\n \n <kendo-grid-column class=\"grid-column\" *ngFor=\"let item of columnData\" [field]=\"item.field\" [title]=\"item.title\"\n [width]=\"item.columnWidth\" [sortable]=\"item.sortable\" [editor]=\"item.editor\">\n\n <ng-template *ngIf=\"sortable\" kendoGridHeaderTemplate>\n {{item.title}}\n <span *ngIf=\"sort[0].field === item.field\">\n <span *ngIf=\"sort[0].dir === 'asc'\"></span>\n <span *ngIf=\"sort[0].dir === 'desc'\"></span>\n </span>\n </ng-template>\n\n <ng-template *ngIf=\"item.custom\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"templateRef; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"item.impact\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"impactColumn; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column *ngIf=\"showDeleteColumn\" [width]=\"deleteColumnWidth\" class=\"delete-column\" title=\"Action\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <lib-tooltip showOn=\"hover\" position=\"bottom\" class=\"remove-tooltip\">\n <lib-icon name=\"delete\" class=\"delete-icon\" (click)=\"onDelete(dataItem)\"></lib-icon>\n <div class=\"tooltip-content\">\n <lib-typography defaultText=\"Remove\"></lib-typography>\n </div>\n </lib-tooltip>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column [width]=\"kebabColumnWidth\" class=\"kebab-column\" *ngIf=\"showKebab\" title=\"Actions\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <kendo-dropdownbutton *ngIf=\"!hideKebabRowIndex.includes(rowIndex)\" [svgIcon]=\"icon\" fillMode=\"none\"\n [data]=\"kebabList | kebabMenuFilter : dataItem\" class=\"kebab\" (itemClick)=\"onKebabClick($event, dataItem)\"\n [popupSettings]=\"{ align: 'right', animate: true, popupClass: 'kebab-list' }\">\n </kendo-dropdownbutton>\n </ng-template>\n </kendo-grid-column>\n </ng-container>\n\n <ng-template kendoGridDetailTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"detailTemplate; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n\n <kendo-grid-column *ngIf=\"customExpandRowColumn\" [width]=\"expandRowColumnWidth\" class=\"grid-column expand-column\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <div [ngClass]=\"expandColumnClass()\">\n <span *ngIf=\"selectedRows.includes(dataItem[gridRowSelectByValue]) && disablePreSelectedRows\"\n class=\"expand-column-text\">\n Already added\n </span>\n <kendo-button *ngIf=\"!expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowDownIcon\"\n (click)=\"expandRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n <kendo-button *ngIf=\"expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowUpIcon\"\n (click)=\"collapseRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n </div>\n </ng-template>\n </kendo-grid-column>\n\n <ng-template kendoPagerTemplate let-totalPages=\"totalPages\" let-currentPage=\"currentPage\">\n <kendo-pager-prev-buttons></kendo-pager-prev-buttons>\n <kendo-pager-numeric-buttons [buttonCount]=\"pageCount\"></kendo-pager-numeric-buttons>\n <kendo-pager-next-buttons></kendo-pager-next-buttons>\n <kendo-pager-info></kendo-pager-info>\n <kendo-pager-page-sizes [pageSizes]=\"sizes\"></kendo-pager-page-sizes>\n </ng-template>\n\n </kendo-grid>\n</div>\n", styles: ["::ng-deep .k-grid tr{height:50px}::ng-deep .k-grid .k-table-th,::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important;border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:2px!important;border-right:0px!important;border-left:0px!important}::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important}::ng-deep .k-grid tbody>tr:not(.k-detail-row):hover{background-color:#d0dcf5!important}::ng-deep .k-grid .k-table-row.k-selected>.k-table-td{background-color:#c9d7f4!important}::ng-deep .k-grid .k-table-td{border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:1px!important;border-right:0px!important;border-left:0px!important}::ng-deep .k-table-alt-row{background-color:inherit!important}::ng-deep .k-grid .k-table-td{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}::ng-deep .k-grid-norecords{text-align:center!important;opacity:.4}::ng-deep .k-grid-norecords td{padding:14px 0 14px 24px!important}::ng-deep kendo-pager.k-pager-wrap.k-grid-pager{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}::ng-deep .k-grid th.k-header{vertical-align:middle!important;padding-left:16px;padding-right:0}::ng-deep .grid-column,::ng-deep .kebab-column,::ng-deep .delete-column{padding:0!important}::ng-deep .grid-column kendo-button,::ng-deep .kebab-column kendo-button,::ng-deep .delete-column kendo-button{align-items:center!important;justify-content:center!important;display:flex!important}::ng-deep .k-checkbox{width:20px!important;height:20px!important;border-radius:0!important}::ng-deep .k-grid .k-hierarchy-cell,::ng-deep .k-grid .k-hierarchy-col{width:0;display:none}::ng-deep .k-grid .k-detail-row .k-detail-cell{padding:16px!important}::ng-deep .delete-icon{color:#dc267f!important;padding-left:12px;cursor:pointer}::ng-deep .remove-tooltip kendo-tooltip.k-tooltip{background-color:#fff;color:#000}::ng-deep .hide-header .k-grid-header{border:0px!important}::ng-deep .k-grid-toolbar{padding:4px 16px!important;height:50px}::ng-deep .k-grid td:not(.kebab-column):not(.expand-column){padding-left:16px!important;padding-right:16px!important}::ng-deep .view-header .k-table-thead tr{height:50px}::ng-deep .hide-header .k-table-thead tr{height:0px;padding:0;display:block}::ng-deep td.kebab-column{display:flex;justify-content:center;align-items:center;height:inherit}::ng-deep .k-grid .k-table-td>.k-checkbox{vertical-align:middle!important}::ng-deep .kebab .k-button,::ng-deep .expand-column .k-button{border:0px}::ng-deep .expand-column{pointer-events:all!important}::ng-deep .expand-column-text{margin-right:32px}::ng-deep .expand-row{display:flex;align-items:center;justify-content:flex-end}\n"] }]
319
+ args: [{ selector: 'lib-grid-pagination', template: "<div #gridElement (window:resize)=\"resize($event)\">\n <kendo-grid [data]=\"gridView\" [pageSize]=\"pageSize\" [skip]=\"skip\" [selectable]=\"selectableSettings\"\n [pageable]=\"pageable\" [sortable]=\"sortable\" [groupable]=\"groupable\" [reorderable]=\"reorderable\"\n [resizable]=\"resizable\" [columnMenu]=\"columnMenu\" [navigable]=\"navigable\" [height]=\"height\" [style.height]=\"height\"\n (change)=\"setSelectableSettings()\" (selectedKeysChange)=\"selectedKeysChange($event)\"\n [kendoGridSelectBy]=\"gridRowSelectByValue\" (detailExpand)=\"onDetailExpand($event)\" [selectedKeys]=\"preSelected\"\n (pageChange)=\"pageChange($event)\" (cellClick)=\"cellClickHandler($event)\" (cellClose)=\"cellCloseHandler($event)\" [sort]=\"sort\"\n (sortChange)=\"sortChange($event)\" [ngClass]=\"getHeaderHeight()\" id=\"lib-grid\" [rowClass]=\"rowClass\">\n\n <ng-template *ngIf=\"showToolbar\" kendoGridToolbarTemplate>\n <ng-content></ng-content>\n </ng-template>\n\n <ng-template *ngIf=\"this.gridView.total === 0\" kendoGridNoRecordsTemplate>\n <lib-typography *ngIf=\"!loading\" [defaultText]=\"noRecordsContent\" type=\"P_MULISH_16_REGULAR\"></lib-typography>\n <lib-loader *ngIf=\"loading\" [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n\n <ng-container *ngIf=\"this.gridView.total > 0\">\n <kendo-grid-checkbox-column *ngIf=\"checkBoxRequired === true\" [width]=\"checkBoxWidth\"\n [resizable]=\"checkBoxColumnResizable\" [columnMenu]=\"checkBoxColumnMenu\" class=\"checkbox-column\">\n <ng-template kendoGridHeaderTemplate>\n <input id=\"selectAllCheckboxId\" type=\"checkbox\" kendoCheckBox kendoGridSelectAllCheckbox\n [state]=\"selectAllState\" (selectAllChange)=\"onSelectAllChange($event)\" />\n </ng-template>\n </kendo-grid-checkbox-column>\n \n <kendo-grid-column class=\"grid-column\" *ngFor=\"let item of columnData\" [field]=\"item.field\" [title]=\"item.title\"\n [width]=\"item.columnWidth\" [sortable]=\"item.sortable\" [editor]=\"item.editor\">\n\n <ng-template *ngIf=\"sortable\" kendoGridHeaderTemplate>\n {{item.title}}\n <span *ngIf=\"sort[0].field === item.field\">\n <span *ngIf=\"sort[0].dir === 'asc'\"></span>\n <span *ngIf=\"sort[0].dir === 'desc'\"></span>\n </span>\n </ng-template>\n\n <ng-template *ngIf=\"item.custom\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"templateRef; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"item.impact\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"impactColumn; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column *ngIf=\"showDeleteColumn\" [width]=\"deleteColumnWidth\" class=\"delete-column\" title=\"Action\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <lib-tooltip showOn=\"hover\" position=\"bottom\" class=\"remove-tooltip\">\n <lib-icon name=\"delete\" class=\"delete-icon\" (click)=\"onDelete(dataItem)\"></lib-icon>\n <div class=\"tooltip-content\">\n <lib-typography defaultText=\"Remove\"></lib-typography>\n </div>\n </lib-tooltip>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column [width]=\"kebabColumnWidth\" class=\"kebab-column\" *ngIf=\"showKebab\" title=\"Actions\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <kendo-dropdownbutton *ngIf=\"!hideKebabRowIndex.includes(rowIndex)\" [svgIcon]=\"icon\" fillMode=\"none\"\n [data]=\"kebabList | kebabMenuFilter : dataItem\" class=\"kebab\" (itemClick)=\"onKebabClick($event, dataItem)\"\n [popupSettings]=\"{ align: 'right', animate: true, popupClass: 'kebab-list' }\">\n </kendo-dropdownbutton>\n </ng-template>\n </kendo-grid-column>\n </ng-container>\n\n <ng-template kendoGridDetailTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"detailTemplate; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n\n <kendo-grid-column *ngIf=\"customExpandRowColumn\" [width]=\"expandRowColumnWidth\" class=\"grid-column expand-column\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <div [ngClass]=\"expandColumnClass()\">\n <span *ngIf=\"selectedRows.includes(dataItem[gridRowSelectByValue]) && disablePreSelectedRows\"\n class=\"expand-column-text\">\n Already added\n </span>\n <kendo-button *ngIf=\"!expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowDownIcon\"\n (click)=\"expandRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n <kendo-button *ngIf=\"expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowUpIcon\"\n (click)=\"collapseRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n </div>\n </ng-template>\n </kendo-grid-column>\n\n <ng-template kendoPagerTemplate let-totalPages=\"totalPages\" let-currentPage=\"currentPage\">\n <kendo-pager-prev-buttons></kendo-pager-prev-buttons>\n <kendo-pager-numeric-buttons [buttonCount]=\"pageCount\"></kendo-pager-numeric-buttons>\n <kendo-pager-next-buttons></kendo-pager-next-buttons>\n <kendo-pager-info></kendo-pager-info>\n <kendo-pager-page-sizes [pageSizes]=\"sizes\"></kendo-pager-page-sizes>\n </ng-template>\n\n </kendo-grid>\n</div>\n", styles: ["::ng-deep .k-grid th{font-family:Mulish,sans-serif;font-weight:700;font-style:normal;font-size:16px;line-height:24px;letter-spacing:.2px}::ng-deep .k-grid tr{font-family:Mulish,sans-serif;font-weight:400;font-style:normal;font-size:14px;line-height:21px;letter-spacing:.8px;height:50px}::ng-deep .k-grid tr:hover{font-family:Mulish,sans-serif;font-weight:700;font-style:normal;font-size:14px;line-height:21px;letter-spacing:.8px}::ng-deep .k-grid-norecords{text-align:center!important;opacity:.4}::ng-deep .k-grid-norecords td{padding:14px 0 14px 24px!important}::ng-deep kendo-pager.k-pager-wrap.k-grid-pager{font-family:Mulish,sans-serif;font-weight:400;font-style:normal;font-size:14px;line-height:21px;letter-spacing:.2px}::ng-deep .k-grid th.k-header{vertical-align:middle!important;padding-left:16px;padding-right:0}::ng-deep .grid-column,::ng-deep .kebab-column,::ng-deep .delete-column{padding:0!important}::ng-deep .grid-column kendo-button,::ng-deep .kebab-column kendo-button,::ng-deep .delete-column kendo-button{align-items:center!important;justify-content:center!important;display:flex!important}::ng-deep .k-checkbox{width:20px!important;height:20px!important;border-radius:0!important}::ng-deep .k-grid .k-hierarchy-cell,::ng-deep .k-grid .k-hierarchy-col{width:0;display:none}::ng-deep .k-grid .k-detail-row .k-detail-cell{padding:16px!important}::ng-deep .delete-icon{color:#dc267f!important;padding-left:12px;cursor:pointer}::ng-deep .remove-tooltip kendo-tooltip.k-tooltip{background-color:#fff;color:#000}::ng-deep .hide-header .k-grid-header{border:0px!important}::ng-deep .k-grid-toolbar{padding:4px 16px!important;height:50px}::ng-deep .k-grid td:not(.kebab-column):not(.expand-column){padding-left:16px!important;padding-right:16px!important}::ng-deep .view-header .k-table-thead tr{height:50px}::ng-deep .hide-header .k-table-thead tr{height:0px;padding:0;display:block}::ng-deep td.kebab-column{display:flex;justify-content:center;align-items:center;height:inherit}::ng-deep .k-grid .k-table-td>.k-checkbox{vertical-align:middle!important}::ng-deep .kebab .k-button,::ng-deep .expand-column .k-button{border:0px}::ng-deep .expand-column{pointer-events:all!important}::ng-deep .expand-column-text{margin-right:32px}::ng-deep .expand-row{display:flex;align-items:center;justify-content:flex-end}\n"] }]
320
320
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { templateRef: [{
321
321
  type: ContentChild,
322
322
  args: ['multiColumnData']
@@ -442,4 +442,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
442
442
  type: HostListener,
443
443
  args: ['window:resize', ['$event']]
444
444
  }] } });
445
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUlMLGFBQWEsRUFNZCxNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBa0IsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUVMLGVBQWUsRUFDZixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2pCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7O0FBRXRELE1BQU0sZUFBZSxHQUFHLENBQUMsUUFBYSxFQUFhLEVBQUU7SUFDbkQsTUFBTSxJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0IsS0FBSyxJQUFJLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3RDLElBQUks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Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQU1HLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTTtnQkFHRSxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUksY0FBYztzQkFBdkIsTUFBTTtnQkFDRSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFNRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBbUxOLE1BQU07c0JBREwsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTZWxlY3RhYmxlU2V0dGluZ3MsXG4gIFNlbGVjdGFibGVNb2RlLFxuICBDZWxsQ2xpY2tFdmVudCxcbiAgR3JpZENvbXBvbmVudCxcbiAgR3JpZERhdGFSZXN1bHQsXG4gIFBhZ2VDaGFuZ2VFdmVudCxcbiAgUm93Q2xhc3NBcmdzLFxuICBTZWxlY3RBbGxDaGVja2JveFN0YXRlLFxuICBDZWxsQ2xvc2VFdmVudFxufSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1ncmlkJztcbmltcG9ydCB7IFNvcnREZXNjcmlwdG9yLCBvcmRlckJ5IH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWRhdGEtcXVlcnknO1xuaW1wb3J0IHtcbiAgU1ZHSWNvbixcbiAgY2hldnJvbkRvd25JY29uLFxuICBjaGV2cm9uVXBJY29uLFxuICBtb3JlVmVydGljYWxJY29uXG59IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1zdmctaWNvbnMnO1xuaW1wb3J0IHsgTG9hZGVyU2l6ZSwgTG9hZGVyVHlwZSwgTG9hZGVyVGhlbWVDb2xvciB9IGZyb20gJy4uLy4uL2F0b21zL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBLZXlzIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItY29tbW9uJztcblxuY29uc3QgY3JlYXRlRm9ybUdyb3VwID0gKGRhdGFJdGVtOiBhbnkpOiBGb3JtR3JvdXAgPT4ge1xuICBjb25zdCBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIGZvciAobGV0IGRhdGEgb2YgT2JqZWN0LmtleXMoZGF0YUl0ZW0pKSB7XG4gICAgZm9ybS5hZGRDb250cm9sKGRhdGEsIG5ldyBGb3JtQ29udHJvbChkYXRhSXRlbVtkYXRhXSwgVmFsaWRhdG9ycy5yZXF1aXJlZCkpXG4gIH1cbiAgcmV0dXJuIGZvcm1cbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1ncmlkLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdyaWRQYWdpbmF0aW9uQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQENvbnRlbnRDaGlsZCgnbXVsdGlDb2x1bW5EYXRhJykgdGVtcGxhdGVSZWYhOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcbiAgQENvbnRlbnRDaGlsZCgnZGV0YWlsVGVtcGxhdGUnKSBkZXRhaWxUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuICBAQ29udGVudENoaWxkKCdpbXBhY3RDb2x1bW4nKSBpbXBhY3RDb2x1bW4hOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcbiAgQFZpZXdDaGlsZChHcmlkQ29tcG9uZW50KSBncmlkITogR3JpZENvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnZ3JpZEVsZW1lbnQnKSBncmlkRWxlbWVudCE6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCkgZ3JpZFZpZXc6IEdyaWREYXRhUmVzdWx0ID0geyBkYXRhOiBbXSwgdG90YWw6IDAgfTtcbiAgQElucHV0KCkgc2tpcDogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgY29sdW1uRGF0YTogYW55ID0gW107XG4gIEBJbnB1dCgpIHBhZ2VTaXplOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBwYWdlYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzb3J0YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBncm91cGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcmVvcmRlcmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcmVzaXphYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNoZWNrQm94V2lkdGg6IG51bWJlciA9IDQ1O1xuICBASW5wdXQoKSBjaGVja0JveENvbHVtblJlc2l6YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjaGVja0JveENvbHVtbk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY2hlY2tCb3hDb2x1bW5TaG93U2VsZWN0ZWRBbGw6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBjaGVja0JveFJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNvbHVtbk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbW9kZTogU2VsZWN0YWJsZU1vZGUgfCB1bmRlZmluZWQgPSAnbXVsdGlwbGUnO1xuICBASW5wdXQoKSBjaGVja2JveE9ubHkgPSB0cnVlO1xuICBASW5wdXQoKSBkcmFnQ29sdW1ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBuYXZpZ2FibGU6IGJvb2xlYW4gPSB0cnVlO1xuICBoZWlnaHQ6IGFueTtcbiAgQElucHV0KCkgZ3JpZFJvd1NlbGVjdEJ5VmFsdWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBub1JlY29yZHNDb250ZW50OiBzdHJpbmcgPSAnTm8gUmVjb3JkcyBBdmFpbGFibGUnO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRSb3dEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgQElucHV0KCkgc2hvd1Rvb2xiYXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXh0cmFjdERhdGFJdGVtczogYW55O1xuICBzZWxlY3RhYmxlU2V0dGluZ3M6IFNlbGVjdGFibGVTZXR0aW5ncyA9IHt9O1xuICBASW5wdXQoKSBrZWJhYkxpc3Q6IGFueSA9IFtdO1xuICBASW5wdXQoKSBzaG93S2ViYWI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHJvd0RldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuICBAT3V0cHV0KCkga2ViYWJJdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgaWNvbjogU1ZHSWNvbiA9IG1vcmVWZXJ0aWNhbEljb247XG4gIEBJbnB1dCgpIGtlYmFiQ29sdW1uV2lkdGg6IG51bWJlciA9IDYwO1xuICBkYXRhOiBhbnkgPSBbXTtcbiAgQElucHV0KCkgc2VsZWN0Q29sdW1uID0gJyc7XG4gIEBPdXRwdXQoKSByb3dEYXRhT2ZDbGlja2VkQ2VsbCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBwcmVTZWxlY3RlZDogYW55W10gPSBbXTtcbiAgcHJlU2VsZWN0ZWRSZWNvcmRzOiBhbnlbXSA9IFtdO1xuICBAT3V0cHV0KCkgb25QYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGlnbm9yZUNvbHVtbkNlbGxDbGljazogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgYWxsb3dDb2x1bW5DbGljazogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzb3J0OiBTb3J0RGVzY3JpcHRvcltdID0gW1xuICAgIHtcbiAgICAgIGZpZWxkOiAnJyxcbiAgICAgIGRpcjogdW5kZWZpbmVkLFxuICAgIH0sXG4gIF07XG4gIEBJbnB1dCgpIGhhc0FwaVNvcnRpbmcgPSBmYWxzZTtcbiAgQE91dHB1dCgpIHNvcnREaXJlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcHVibGljIGFycm93RG93bkljb246IFNWR0ljb24gPSBjaGV2cm9uRG93bkljb247XG4gIHB1YmxpYyBhcnJvd1VwSWNvbjogU1ZHSWNvbiA9IGNoZXZyb25VcEljb247XG4gIEBJbnB1dCgpIGV4cGFuZFJvd0luZGV4OiBudW1iZXJbXSA9IFtdO1xuICBASW5wdXQoKSBjdXN0b21FeHBhbmRSb3dDb2x1bW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZGVsZXRlQ29sdW1uV2lkdGg6IG51bWJlciA9IDQyO1xuICBleHBhbmRSb3dDb2x1bW5XaWR0aDogbnVtYmVyID0gNTY7XG4gIEBPdXRwdXQoKSBkZWxldGVkUm93RGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBzaXplczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgcGFnZUNvdW50ID0gMDtcbiAgQElucHV0KCkgc2hvd0RlbGV0ZUNvbHVtbiA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWRlS2ViYWJSb3dJbmRleDogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBsb2FkZXJUeXBlOiBMb2FkZXJUeXBlID0gTG9hZGVyVHlwZS5wdWxzaW5nO1xuICBASW5wdXQoKSBsb2FkZXJTaXplOiBMb2FkZXJTaXplID0gTG9hZGVyU2l6ZS5tZWRpdW07XG4gIEBJbnB1dCgpIGxvYWRlclRoZW1lOiBMb2FkZXJUaGVtZUNvbG9yID0gTG9hZGVyVGhlbWVDb2xvci5wcmltYXJ5O1xuICBpbml0aWFsR3JpZEhlaWdodDogYW55O1xuICBncmlkQm90dG9tU3BhY2UgPSAyNDtcbiAgcmVzaXplSGVpZ2h0OiBhbnkgPSAwO1xuICBzZWxlY3RBbGxTdGF0ZTogU2VsZWN0QWxsQ2hlY2tib3hTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICBzZWxlY3RlZFJvd3M6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIGRpc2FibGVQcmVTZWxlY3RlZFJvd3MgPSBmYWxzZTtcbiAgcHVibGljIGZvcm1Hcm91cCE6IEZvcm1Hcm91cCB8IGFueTtcbiAgQE91dHB1dCgpIHVwZGF0ZWREYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGFsbG93RWRpdGluZ0NlbGwgPSBmYWxzZTtcbiAgXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5zZXRTZWxlY3RhYmxlU2V0dGluZ3MoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGZvciAobGV0IGNvbHVtbiBvZiB0aGlzLmNvbHVtbkRhdGEpIHtcbiAgICAgIGNvbHVtbi5zb3J0YWJsZSA9IGNvbHVtbi5zb3J0YWJsZSA9PSB1bmRlZmluZWQgPyB0cnVlIDogY29sdW1uLnNvcnRhYmxlO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuaGFzQXBpU29ydGluZykge1xuICAgICAgdGhpcy5sb2FkR3JpZERhdGEoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnBhZ2VhYmxlKSB7XG4gICAgICB0aGlzLnBhZ2VTaXplID0gdGhpcy5ncmlkVmlldy5kYXRhPy5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmN1c3RvbUV4cGFuZFJvd0NvbHVtbikge1xuICAgICAgdGhpcy5leHBhbmRSb3dJbmRleC5mb3JFYWNoKChpZCkgPT4ge1xuICAgICAgICB0aGlzLmdyaWQuZXhwYW5kUm93KGlkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkUm93cyA9IHRoaXMucHJlU2VsZWN0ZWQ7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCA9PSB0aGlzLmdyaWRWaWV3LnRvdGFsKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAnY2hlY2tlZCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2luZGV0ZXJtaW5hdGUnO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ3VuY2hlY2tlZCc7XG4gICAgfVxuICAgIHRoaXMuaW5pdGlhbEdyaWRIZWlnaHQgPVxuICAgICAgdGhpcy5ncmlkRWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCArIHRoaXMuZ3JpZEJvdHRvbVNwYWNlO1xuICAgIHRoaXMuZ2V0R3JpZEhlaWdodCgpO1xuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcGFnZUNoYW5nZShldmVudDogUGFnZUNoYW5nZUV2ZW50KSB7XG4gICAgdGhpcy5vblBhZ2VDaGFuZ2UuZW1pdChldmVudCk7XG4gIH1cblxuICBzZXRTZWxlY3RhYmxlU2V0dGluZ3MoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2hlY2tib3hPbmx5IHx8IHRoaXMubW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIHRoaXMuZHJhZ0NvbHVtbnMgPSBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGFibGVTZXR0aW5ncyA9IHtcbiAgICAgIGNoZWNrYm94T25seTogdGhpcy5jaGVja2JveE9ubHksXG4gICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICBkcmFnOiB0aGlzLmRyYWdDb2x1bW5zLFxuICAgIH07XG4gIH1cblxuICAvLyBXZSBjYW4gZXh0cmFjdCBkYXRhIG91dCBvZiByb3cgbnVtYmVyIHVzaW5nIGJlbG93IGZ1bmN0aW9uXG4gIC8qIGV4dHJhY3QoKSB7XG4gICAgdGhpcy5leHRyYWN0RGF0YUl0ZW1zID0gdGhpcy5teVNlbGVjdGlvbi5tYXAoaWR4ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmdyaWREYXRhLmZpbmQoKGRhdGE6IHsgUHJvZHVjdElEOiBudW1iZXI7IH0pID0+IGRhdGEuUHJvZHVjdElEID09PSBpZHgpO1xuICAgIH0pO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuZXh0cmFjdERhdGFJdGVtcylcbiAgICB0aGlzLnNlbGVjdGVkUm93RGF0YS5lbWl0KHRoaXMuZXh0cmFjdERhdGFJdGVtcyk7XG4gIH0gKi9cblxuICBzZWxlY3RlZEtleXNDaGFuZ2Uocm93czogbnVtYmVyW10pIHtcbiAgICBsZXQgc2VsZWN0ZWRSb3dEYXRhID0gW107XG4gICAgbGV0IHNlbGVjdGVkUm93c0NvdW50ID0gMDtcblxuICAgIGlmIChyb3dzPy5sZW5ndGggPiAwKSB7XG4gICAgICBzZWxlY3RlZFJvd3NDb3VudCA9IHJvd3M/Lmxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPiAwICYmIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cykge1xuICAgICAgc2VsZWN0ZWRSb3dzQ291bnQgPSB0aGlzLnNlbGVjdGVkUm93cz8ubGVuZ3RoO1xuICAgICAgcm93cyA9IHRoaXMuc2VsZWN0ZWRSb3dzO1xuICAgIH1cblxuICAgIGlmIChzZWxlY3RlZFJvd3NDb3VudCA9PSB0aGlzLmdyaWRWaWV3LnRvdGFsKSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2NoZWNrZWQnO1xuICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWRSb3dzQ291bnQgPT0gMCkge1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2luZGV0ZXJtaW5hdGUnO1xuICAgIH1cblxuICAgIHNlbGVjdGVkUm93RGF0YSA9IHJvd3MubWFwKHJvd0RhdGEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZ3JpZFZpZXcuZGF0YS5maW5kKChkYXRhKSA9PiBkYXRhW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdID09PSByb3dEYXRhKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2VsZWN0ZWRSb3dEYXRhLmVtaXQoc2VsZWN0ZWRSb3dEYXRhKTtcbiAgfVxuXG4gIG9uS2ViYWJDbGljayhpdGVtOiBhbnksIHJvd0RldGFpbHM6IGFueSkge1xuICAgIHRoaXMua2ViYWJJdGVtQ2xpY2suZW1pdCh7IGFjdGlvbjogaXRlbSwgcm93RGV0YWlscyB9KTtcbiAgfVxuXG4gIG9uRGV0YWlsRXhwYW5kKHJvd0RhdGE6IGFueSkge1xuICAgIHRoaXMucm93RGV0YWlscy5lbWl0KHJvd0RhdGEuZGF0YUl0ZW0pO1xuICB9XG5cbiAgY2VsbENsaWNrSGFuZGxlcihhcmdzOiBDZWxsQ2xpY2tFdmVudCkge1xuICAgIGlmICh0aGlzLmFsbG93Q29sdW1uQ2xpY2spIHtcbiAgICAgIGlmICh0aGlzLmlnbm9yZUNvbHVtbkNlbGxDbGljay5pbmNsdWRlcyhhcmdzLmNvbHVtbkluZGV4KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnJvd0RhdGFPZkNsaWNrZWRDZWxsLmVtaXQoYXJncy5kYXRhSXRlbSk7XG4gICAgfVxuICAgIGlmKHRoaXMuYWxsb3dFZGl0aW5nQ2VsbCl7XG4gICAgICB0aGlzLmZvcm1Hcm91cCA9IGNyZWF0ZUZvcm1Hcm91cChhcmdzLmRhdGFJdGVtKTtcbiAgICAgICAgICAgIGFyZ3Muc2VuZGVyLmVkaXRDZWxsKGFyZ3Mucm93SW5kZXgsIGFyZ3MuY29sdW1uSW5kZXgsIHRoaXMuZm9ybUdyb3VwKTtcbiAgICAgIH1cbiAgfVxuXG4gIHNvcnRDaGFuZ2Uoc29ydDogU29ydERlc2NyaXB0b3JbXSk6IHZvaWQge1xuICAgIHRoaXMuc29ydCA9IHNvcnQ7XG4gICAgaWYgKCF0aGlzLmhhc0FwaVNvcnRpbmcpIHtcbiAgICAgIHRoaXMubG9hZEdyaWREYXRhKCk7XG4gICAgfVxuICAgIHRoaXMuc29ydERpcmVjdGlvbi5lbWl0KHRoaXMuc29ydCk7XG4gIH1cblxuICBsb2FkR3JpZERhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5ncmlkVmlldyA9IHtcbiAgICAgIGRhdGE6IG9yZGVyQnkodGhpcy5ncmlkVmlldz8uZGF0YSwgdGhpcy5zb3J0KSxcbiAgICAgIHRvdGFsOiB0aGlzLmdyaWRWaWV3Py50b3RhbCxcbiAgICB9O1xuICB9XG5cbiAgZXhwYW5kUm93KGlkOiBudW1iZXIpIHtcbiAgICB0aGlzLmdyaWQuZXhwYW5kUm93KGlkKTtcbiAgICB0aGlzLmV4cGFuZFJvd0luZGV4LnB1c2goaWQpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5nZXRHcmlkSGVpZ2h0KCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBjb2xsYXBzZVJvdyhpZDogbnVtYmVyKSB7XG4gICAgdGhpcy5ncmlkLmNvbGxhcHNlUm93KGlkKTtcbiAgICB0aGlzLmV4cGFuZFJvd0luZGV4LnNwbGljZSh0aGlzLmV4cGFuZFJvd0luZGV4LmluZGV4T2YoaWQpLCAxKTtcbiAgICBpZiAodGhpcy5leHBhbmRSb3dJbmRleD8ubGVuZ3RoID09IDApIHtcbiAgICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAgIGNvbnN0IHZpZXdwb3J0OiBhbnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGliLWdyaWQnKTtcbiAgICAgIGNvbnN0IGdyaWRPZmZzZXQgPSB2aWV3cG9ydC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyB3aW5kb3cuc2Nyb2xsWTtcbiAgICAgIGlmICh3aW5kb3dIZWlnaHQgPiBncmlkT2Zmc2V0ICsgdGhpcy5pbml0aWFsR3JpZEhlaWdodCkge1xuICAgICAgICB0aGlzLmhlaWdodCA9ICcxMDAlJztcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5nZXRHcmlkSGVpZ2h0KCk7XG4gICAgfVxuICB9XG5cbiAgb25EZWxldGUocm93RGV0YWlsczogYW55KSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmdldEhlYWRlckhlaWdodCgpO1xuICAgIH0sIDEwMDApO1xuICAgIHRoaXMuZGVsZXRlZFJvd0RhdGEuZW1pdChyb3dEZXRhaWxzKTtcbiAgfVxuXG4gIGdldEhlYWRlckhlaWdodCgpIHtcbiAgICBpZiAodGhpcy5ncmlkVmlldz8uZGF0YT8ubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gJ2hpZGUtaGVhZGVyJztcbiAgICB9XG4gICAgcmV0dXJuICd2aWV3LWhlYWRlcic7XG4gIH1cblxuICBnZXRHcmlkSGVpZ2h0KCkge1xuICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICBjb25zdCB2aWV3cG9ydDogYW55ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpYi1ncmlkJyk7XG4gICAgY29uc3QgZ3JpZE9mZnNldCA9IHZpZXdwb3J0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHdpbmRvdy5zY3JvbGxZO1xuICAgIGNvbnN0IGdyaWRIZWlnaHQgPVxuICAgICAgdGhpcy5ncmlkRWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCArIHRoaXMuZ3JpZEJvdHRvbVNwYWNlOyAvL2dyaWQgc2hvdWxkIGhhdmUgMjRweCBzcGFjZSBhdCBib3R0b21cbiAgICBpZiAoZ3JpZE9mZnNldCArIGdyaWRIZWlnaHQgPj0gd2luZG93SGVpZ2h0KSB7XG4gICAgICB0aGlzLmhlaWdodCA9IHdpbmRvd0hlaWdodCAtIChncmlkT2Zmc2V0ICsgdGhpcy5ncmlkQm90dG9tU3BhY2UpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICByZXNpemUoZXY6IGFueSkge1xuICAgIGlmIChldi50YXJnZXQuaW5uZXJIZWlnaHQgPiB0aGlzLnJlc2l6ZUhlaWdodCkge1xuICAgICAgdGhpcy5yZXNpemVIZWlnaHQgPSBldi50YXJnZXQuaW5uZXJIZWlnaHQ7XG4gICAgICB0aGlzLmhlaWdodCA9ICcxMDAlJztcbiAgICB9XG4gICAgaWYgKHRoaXMucmVzaXplSGVpZ2h0ID4gd2luZG93LmlubmVySGVpZ2h0KSB7XG4gICAgICB0aGlzLnJlc2l6ZUhlaWdodCA9IDA7XG4gICAgfVxuICAgIHRoaXMuZ2V0R3JpZEhlaWdodCgpO1xuICB9XG5cbiAgcm93Q2xhc3MgPSAoYXJnczogUm93Q2xhc3NBcmdzKSA9PiB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzICYmIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgJ2stZGlzYWJsZWQnOiB0aGlzLnNlbGVjdGVkUm93cy5pbmNsdWRlcyhcbiAgICAgICAgICBhcmdzLmRhdGFJdGVtW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH07XG5cbiAgZXhwYW5kQ29sdW1uQ2xhc3MoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPiAwICYmIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cykge1xuICAgICAgdGhpcy5leHBhbmRSb3dDb2x1bW5XaWR0aCA9IDE5NDtcbiAgICAgIHJldHVybiAnZXhwYW5kLXJvdyc7XG4gICAgfVxuICAgIHRoaXMuZXhwYW5kUm93Q29sdW1uV2lkdGggPSA1NjtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBvblNlbGVjdEFsbENoYW5nZShjaGVja2VkU3RhdGU6IFNlbGVjdEFsbENoZWNrYm94U3RhdGUpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBjaGVja2VkU3RhdGUgPT09ICdjaGVja2VkJyB8fFxuICAgICAgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPT0gdGhpcy5ncmlkVmlldy50b3RhbCAmJlxuICAgICAgICB0aGlzLmRpc2FibGVQcmVTZWxlY3RlZFJvd3MpXG4gICAgKSB7XG4gICAgICB0aGlzLnByZVNlbGVjdGVkID0gdGhpcy5ncmlkVmlldy5kYXRhXG4gICAgICAgIC5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbVt0aGlzLmdyaWRSb3dTZWxlY3RCeVZhbHVlXSlcbiAgICAgICAgLmZpbHRlcigoaWQ6IGFueSkgPT4gaWQpO1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICdjaGVja2VkJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPiAwICYmIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cykge1xuICAgICAgdGhpcy5wcmVTZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRSb3dzO1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICdpbmRldGVybWluYXRlJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcmVTZWxlY3RlZCA9IFtdO1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjZWxsQ2xvc2VIYW5kbGVyKGFyZ3M6IENlbGxDbG9zZUV2ZW50KTogdm9pZCB7XG4gICAgbGV0IHsgZm9ybUdyb3VwLCBkYXRhSXRlbSB9ID0gYXJncztcbiAgICBpZiAoIWZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgYXJncy5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH0gZWxzZSBpZiAoZm9ybUdyb3VwLmRpcnR5KSB7XG4gICAgICBpZiAoYXJncy5vcmlnaW5hbEV2ZW50ICYmIGFyZ3Mub3JpZ2luYWxFdmVudC5rZXlDb2RlID09PSBLZXlzLkVzY2FwZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBPYmplY3QuYXNzaWduKGRhdGFJdGVtLCBmb3JtR3JvdXAudmFsdWUpO1xuICAgICAgdGhpcy5zYXZlQ2hhbmdlcygpO1xuICAgICAgdGhpcy51cGRhdGVkRGF0YS5lbWl0KHRoaXMuZ3JpZC5kYXRhKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzYXZlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmdyaWQuY2xvc2VDZWxsKCk7XG4gICAgdGhpcy5ncmlkLmNhbmNlbENlbGwoKTtcbiAgfVxufVxuIiwiPGRpdiAjZ3JpZEVsZW1lbnQgKHdpbmRvdzpyZXNpemUpPVwicmVzaXplKCRldmVudClcIj5cbiAgPGtlbmRvLWdyaWQgW2RhdGFdPVwiZ3JpZFZpZXdcIiBbcGFnZVNpemVdPVwicGFnZVNpemVcIiBbc2tpcF09XCJza2lwXCIgW3NlbGVjdGFibGVdPVwic2VsZWN0YWJsZVNldHRpbmdzXCJcbiAgICBbcGFnZWFibGVdPVwicGFnZWFibGVcIiBbc29ydGFibGVdPVwic29ydGFibGVcIiBbZ3JvdXBhYmxlXT1cImdyb3VwYWJsZVwiIFtyZW9yZGVyYWJsZV09XCJyZW9yZGVyYWJsZVwiXG4gICAgW3Jlc2l6YWJsZV09XCJyZXNpemFibGVcIiBbY29sdW1uTWVudV09XCJjb2x1bW5NZW51XCIgW25hdmlnYWJsZV09XCJuYXZpZ2FibGVcIiBbaGVpZ2h0XT1cImhlaWdodFwiIFtzdHlsZS5oZWlnaHRdPVwiaGVpZ2h0XCJcbiAgICAoY2hhbmdlKT1cInNldFNlbGVjdGFibGVTZXR0aW5ncygpXCIgKHNlbGVjdGVkS2V5c0NoYW5nZSk9XCJzZWxlY3RlZEtleXNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2tlbmRvR3JpZFNlbGVjdEJ5XT1cImdyaWRSb3dTZWxlY3RCeVZhbHVlXCIgKGRldGFpbEV4cGFuZCk9XCJvbkRldGFpbEV4cGFuZCgkZXZlbnQpXCIgW3NlbGVjdGVkS2V5c109XCJwcmVTZWxlY3RlZFwiXG4gICAgKHBhZ2VDaGFuZ2UpPVwicGFnZUNoYW5nZSgkZXZlbnQpXCIgKGNlbGxDbGljayk9XCJjZWxsQ2xpY2tIYW5kbGVyKCRldmVudClcIiAoY2VsbENsb3NlKT1cImNlbGxDbG9zZUhhbmRsZXIoJGV2ZW50KVwiIFtzb3J0XT1cInNvcnRcIlxuICAgIChzb3J0Q2hhbmdlKT1cInNvcnRDaGFuZ2UoJGV2ZW50KVwiIFtuZ0NsYXNzXT1cImdldEhlYWRlckhlaWdodCgpXCIgaWQ9XCJsaWItZ3JpZFwiIFtyb3dDbGFzc109XCJyb3dDbGFzc1wiPlxuXG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwic2hvd1Rvb2xiYXJcIiBrZW5kb0dyaWRUb29sYmFyVGVtcGxhdGU+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cInRoaXMuZ3JpZFZpZXcudG90YWwgPT09IDBcIiBrZW5kb0dyaWROb1JlY29yZHNUZW1wbGF0ZT5cbiAgICAgIDxsaWItdHlwb2dyYXBoeSAqbmdJZj1cIiFsb2FkaW5nXCIgW2RlZmF1bHRUZXh0XT1cIm5vUmVjb3Jkc0NvbnRlbnRcIiB0eXBlPVwiQk9EWV9NRURJVU1cIj48L2xpYi10eXBvZ3JhcGh5PlxuICAgICAgPGxpYi1sb2FkZXIgKm5nSWY9XCJsb2FkaW5nXCIgW3R5cGVdPVwibG9hZGVyVHlwZVwiIFtzaXplXT1cImxvYWRlclNpemVcIiBbdGhlbWVDb2xvcl09XCJsb2FkZXJUaGVtZVwiPjwvbGliLWxvYWRlcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRoaXMuZ3JpZFZpZXcudG90YWwgPiAwXCI+XG4gICAgICA8a2VuZG8tZ3JpZC1jaGVja2JveC1jb2x1bW4gKm5nSWY9XCJjaGVja0JveFJlcXVpcmVkID09PSB0cnVlXCIgW3dpZHRoXT1cImNoZWNrQm94V2lkdGhcIlxuICAgICAgICBbcmVzaXphYmxlXT1cImNoZWNrQm94Q29sdW1uUmVzaXphYmxlXCIgW2NvbHVtbk1lbnVdPVwiY2hlY2tCb3hDb2x1bW5NZW51XCIgY2xhc3M9XCJjaGVja2JveC1jb2x1bW5cIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZEhlYWRlclRlbXBsYXRlPlxuICAgICAgICAgIDxpbnB1dCBpZD1cInNlbGVjdEFsbENoZWNrYm94SWRcIiB0eXBlPVwiY2hlY2tib3hcIiBrZW5kb0NoZWNrQm94IGtlbmRvR3JpZFNlbGVjdEFsbENoZWNrYm94XG4gICAgICAgICAgICBbc3RhdGVdPVwic2VsZWN0QWxsU3RhdGVcIiAoc2VsZWN0QWxsQ2hhbmdlKT1cIm9uU2VsZWN0QWxsQ2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9rZW5kby1ncmlkLWNoZWNrYm94LWNvbHVtbj5cbiAgICAgIFxuICAgICAgPGtlbmRvLWdyaWQtY29sdW1uIGNsYXNzPVwiZ3JpZC1jb2x1bW5cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb2x1bW5EYXRhXCIgW2ZpZWxkXT1cIml0ZW0uZmllbGRcIiBbdGl0bGVdPVwiaXRlbS50aXRsZVwiXG4gICAgICAgIFt3aWR0aF09XCJpdGVtLmNvbHVtbldpZHRoXCIgW3NvcnRhYmxlXT1cIml0ZW0uc29ydGFibGVcIiBbZWRpdG9yXT1cIml0ZW0uZWRpdG9yXCI+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwic29ydGFibGVcIiBrZW5kb0dyaWRIZWFkZXJUZW1wbGF0ZT5cbiAgICAgICAgICB7e2l0ZW0udGl0bGV9fVxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwic29ydFswXS5maWVsZCA9PT0gaXRlbS5maWVsZFwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0WzBdLmRpciA9PT0gJ2FzYydcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRbMF0uZGlyID09PSAnZGVzYydcIj48L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cIml0ZW0uY3VzdG9tXCIga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVSZWY7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGRhdGFJdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJpdGVtLmltcGFjdFwiIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImltcGFjdENvbHVtbjsgY29udGV4dDogeyRpbXBsaWNpdDogZGF0YUl0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2tlbmRvLWdyaWQtY29sdW1uPlxuXG4gICAgICA8a2VuZG8tZ3JpZC1jb2x1bW4gKm5nSWY9XCJzaG93RGVsZXRlQ29sdW1uXCIgW3dpZHRoXT1cImRlbGV0ZUNvbHVtbldpZHRoXCIgY2xhc3M9XCJkZWxldGUtY29sdW1uXCIgdGl0bGU9XCJBY3Rpb25cIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0gbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgICAgICAgICA8bGliLXRvb2x0aXAgc2hvd09uPVwiaG92ZXJcIiBwb3NpdGlvbj1cImJvdHRvbVwiIGNsYXNzPVwicmVtb3ZlLXRvb2x0aXBcIj5cbiAgICAgICAgICAgIDxsaWItaWNvbiBuYW1lPVwiZGVsZXRlXCIgY2xhc3M9XCJkZWxldGUtaWNvblwiIChjbGljayk9XCJvbkRlbGV0ZShkYXRhSXRlbSlcIj48L2xpYi1pY29uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2x0aXAtY29udGVudFwiPlxuICAgICAgICAgICAgICA8bGliLXR5cG9ncmFwaHkgZGVmYXVsdFRleHQ9XCJSZW1vdmVcIj48L2xpYi10eXBvZ3JhcGh5PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9saWItdG9vbHRpcD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwva2VuZG8tZ3JpZC1jb2x1bW4+XG5cbiAgICAgIDxrZW5kby1ncmlkLWNvbHVtbiBbd2lkdGhdPVwia2ViYWJDb2x1bW5XaWR0aFwiIGNsYXNzPVwia2ViYWItY29sdW1uXCIgKm5nSWY9XCJzaG93S2ViYWJcIiB0aXRsZT1cIkFjdGlvbnNcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0gbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgICAgICAgICA8a2VuZG8tZHJvcGRvd25idXR0b24gKm5nSWY9XCIhaGlkZUtlYmFiUm93SW5kZXguaW5jbHVkZXMocm93SW5kZXgpXCIgW3N2Z0ljb25dPVwiaWNvblwiIGZpbGxNb2RlPVwibm9uZVwiXG4gICAgICAgICAgICBbZGF0YV09XCJrZWJhYkxpc3QgfCBrZWJhYk1lbnVGaWx0ZXIgOiBkYXRhSXRlbVwiIGNsYXNzPVwia2ViYWJcIiAoaXRlbUNsaWNrKT1cIm9uS2ViYWJDbGljaygkZXZlbnQsIGRhdGFJdGVtKVwiXG4gICAgICAgICAgICBbcG9wdXBTZXR0aW5nc109XCJ7IGFsaWduOiAncmlnaHQnLCBhbmltYXRlOiB0cnVlLCBwb3B1cENsYXNzOiAna2ViYWItbGlzdCcgfVwiPlxuICAgICAgICAgIDwva2VuZG8tZHJvcGRvd25idXR0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2tlbmRvLWdyaWQtY29sdW1uPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZERldGFpbFRlbXBsYXRlIGxldC1kYXRhSXRlbT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZXRhaWxUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogZGF0YUl0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxrZW5kby1ncmlkLWNvbHVtbiAqbmdJZj1cImN1c3RvbUV4cGFuZFJvd0NvbHVtblwiIFt3aWR0aF09XCJleHBhbmRSb3dDb2x1bW5XaWR0aFwiIGNsYXNzPVwiZ3JpZC1jb2x1bW4gZXhwYW5kLWNvbHVtblwiPlxuICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0gbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJleHBhbmRDb2x1bW5DbGFzcygpXCI+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZFJvd3MuaW5jbHVkZXMoZGF0YUl0ZW1bZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdKSAmJiBkaXNhYmxlUHJlU2VsZWN0ZWRSb3dzXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZXhwYW5kLWNvbHVtbi10ZXh0XCI+XG4gICAgICAgICAgICBBbHJlYWR5IGFkZGVkXG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxrZW5kby1idXR0b24gKm5nSWY9XCIhZXhwYW5kUm93SW5kZXguaW5jbHVkZXMocm93SW5kZXgpXCIgW3N2Z0ljb25dPVwiYXJyb3dEb3duSWNvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZXhwYW5kUm93KHJvd0luZGV4KVwiIGZpbGxNb2RlPVwibm9uZVwiIGNsYXNzPVwiYXJyb3ctYnRuXCI+XG4gICAgICAgICAgPC9rZW5kby1idXR0b24+XG4gICAgICAgICAgPGtlbmRvLWJ1dHRvbiAqbmdJZj1cImV4cGFuZFJvd0luZGV4LmluY2x1ZGVzKHJvd0luZGV4KVwiIFtzdmdJY29uXT1cImFycm93VXBJY29uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjb2xsYXBzZVJvdyhyb3dJbmRleClcIiBmaWxsTW9kZT1cIm5vbmVcIiBjbGFzcz1cImFycm93LWJ0blwiPlxuICAgICAgICAgIDwva2VuZG8tYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9rZW5kby1ncmlkLWNvbHVtbj5cblxuICAgIDxuZy10ZW1wbGF0ZSBrZW5kb1BhZ2VyVGVtcGxhdGUgbGV0LXRvdGFsUGFnZXM9XCJ0b3RhbFBhZ2VzXCIgbGV0LWN1cnJlbnRQYWdlPVwiY3VycmVudFBhZ2VcIj5cbiAgICAgIDxrZW5kby1wYWdlci1wcmV2LWJ1dHRvbnM+PC9rZW5kby1wYWdlci1wcmV2LWJ1dHRvbnM+XG4gICAgICA8a2VuZG8tcGFnZXItbnVtZXJpYy1idXR0b25zIFtidXR0b25Db3VudF09XCJwYWdlQ291bnRcIj48L2tlbmRvLXBhZ2VyLW51bWVyaWMtYnV0dG9ucz5cbiAgICAgIDxrZW5kby1wYWdlci1uZXh0LWJ1dHRvbnM+PC9rZW5kby1wYWdlci1uZXh0LWJ1dHRvbnM+XG4gICAgICA8a2VuZG8tcGFnZXItaW5mbz48L2tlbmRvLXBhZ2VyLWluZm8+XG4gICAgICA8a2VuZG8tcGFnZXItcGFnZS1zaXplcyBbcGFnZVNpemVzXT1cInNpemVzXCI+PC9rZW5kby1wYWdlci1wYWdlLXNpemVzPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgPC9rZW5kby1ncmlkPlxuPC9kaXY+XG4iXX0=
445
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUlMLGFBQWEsRUFNZCxNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBa0IsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUVMLGVBQWUsRUFDZixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2pCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7O0FBRXRELE1BQU0sZUFBZSxHQUFHLENBQUMsUUFBYSxFQUFhLEVBQUU7SUFDbkQsTUFBTSxJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0IsS0FBSyxJQUFJLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3RDLElBQUks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Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQU1HLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTTtnQkFHRSxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUksY0FBYztzQkFBdkIsTUFBTTtnQkFDRSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFNRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBbUxOLE1BQU07c0JBREwsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTZWxlY3RhYmxlU2V0dGluZ3MsXG4gIFNlbGVjdGFibGVNb2RlLFxuICBDZWxsQ2xpY2tFdmVudCxcbiAgR3JpZENvbXBvbmVudCxcbiAgR3JpZERhdGFSZXN1bHQsXG4gIFBhZ2VDaGFuZ2VFdmVudCxcbiAgUm93Q2xhc3NBcmdzLFxuICBTZWxlY3RBbGxDaGVja2JveFN0YXRlLFxuICBDZWxsQ2xvc2VFdmVudFxufSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1ncmlkJztcbmltcG9ydCB7IFNvcnREZXNjcmlwdG9yLCBvcmRlckJ5IH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWRhdGEtcXVlcnknO1xuaW1wb3J0IHtcbiAgU1ZHSWNvbixcbiAgY2hldnJvbkRvd25JY29uLFxuICBjaGV2cm9uVXBJY29uLFxuICBtb3JlVmVydGljYWxJY29uXG59IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1zdmctaWNvbnMnO1xuaW1wb3J0IHsgTG9hZGVyU2l6ZSwgTG9hZGVyVHlwZSwgTG9hZGVyVGhlbWVDb2xvciB9IGZyb20gJy4uLy4uL2F0b21zL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBLZXlzIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItY29tbW9uJztcblxuY29uc3QgY3JlYXRlRm9ybUdyb3VwID0gKGRhdGFJdGVtOiBhbnkpOiBGb3JtR3JvdXAgPT4ge1xuICBjb25zdCBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIGZvciAobGV0IGRhdGEgb2YgT2JqZWN0LmtleXMoZGF0YUl0ZW0pKSB7XG4gICAgZm9ybS5hZGRDb250cm9sKGRhdGEsIG5ldyBGb3JtQ29udHJvbChkYXRhSXRlbVtkYXRhXSwgVmFsaWRhdG9ycy5yZXF1aXJlZCkpXG4gIH1cbiAgcmV0dXJuIGZvcm1cbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1ncmlkLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdyaWRQYWdpbmF0aW9uQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQENvbnRlbnRDaGlsZCgnbXVsdGlDb2x1bW5EYXRhJykgdGVtcGxhdGVSZWYhOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcbiAgQENvbnRlbnRDaGlsZCgnZGV0YWlsVGVtcGxhdGUnKSBkZXRhaWxUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuICBAQ29udGVudENoaWxkKCdpbXBhY3RDb2x1bW4nKSBpbXBhY3RDb2x1bW4hOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcbiAgQFZpZXdDaGlsZChHcmlkQ29tcG9uZW50KSBncmlkITogR3JpZENvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnZ3JpZEVsZW1lbnQnKSBncmlkRWxlbWVudCE6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCkgZ3JpZFZpZXc6IEdyaWREYXRhUmVzdWx0ID0geyBkYXRhOiBbXSwgdG90YWw6IDAgfTtcbiAgQElucHV0KCkgc2tpcDogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgY29sdW1uRGF0YTogYW55ID0gW107XG4gIEBJbnB1dCgpIHBhZ2VTaXplOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBwYWdlYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzb3J0YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBncm91cGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcmVvcmRlcmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcmVzaXphYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNoZWNrQm94V2lkdGg6IG51bWJlciA9IDQ1O1xuICBASW5wdXQoKSBjaGVja0JveENvbHVtblJlc2l6YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjaGVja0JveENvbHVtbk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY2hlY2tCb3hDb2x1bW5TaG93U2VsZWN0ZWRBbGw6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBjaGVja0JveFJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNvbHVtbk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbW9kZTogU2VsZWN0YWJsZU1vZGUgfCB1bmRlZmluZWQgPSAnbXVsdGlwbGUnO1xuICBASW5wdXQoKSBjaGVja2JveE9ubHkgPSB0cnVlO1xuICBASW5wdXQoKSBkcmFnQ29sdW1ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBuYXZpZ2FibGU6IGJvb2xlYW4gPSB0cnVlO1xuICBoZWlnaHQ6IGFueTtcbiAgQElucHV0KCkgZ3JpZFJvd1NlbGVjdEJ5VmFsdWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBub1JlY29yZHNDb250ZW50OiBzdHJpbmcgPSAnTm8gUmVjb3JkcyBBdmFpbGFibGUnO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRSb3dEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgQElucHV0KCkgc2hvd1Rvb2xiYXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXh0cmFjdERhdGFJdGVtczogYW55O1xuICBzZWxlY3RhYmxlU2V0dGluZ3M6IFNlbGVjdGFibGVTZXR0aW5ncyA9IHt9O1xuICBASW5wdXQoKSBrZWJhYkxpc3Q6IGFueSA9IFtdO1xuICBASW5wdXQoKSBzaG93S2ViYWI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHJvd0RldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuICBAT3V0cHV0KCkga2ViYWJJdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgaWNvbjogU1ZHSWNvbiA9IG1vcmVWZXJ0aWNhbEljb247XG4gIEBJbnB1dCgpIGtlYmFiQ29sdW1uV2lkdGg6IG51bWJlciA9IDYwO1xuICBkYXRhOiBhbnkgPSBbXTtcbiAgQElucHV0KCkgc2VsZWN0Q29sdW1uID0gJyc7XG4gIEBPdXRwdXQoKSByb3dEYXRhT2ZDbGlja2VkQ2VsbCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBwcmVTZWxlY3RlZDogYW55W10gPSBbXTtcbiAgcHJlU2VsZWN0ZWRSZWNvcmRzOiBhbnlbXSA9IFtdO1xuICBAT3V0cHV0KCkgb25QYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGlnbm9yZUNvbHVtbkNlbGxDbGljazogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgYWxsb3dDb2x1bW5DbGljazogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzb3J0OiBTb3J0RGVzY3JpcHRvcltdID0gW1xuICAgIHtcbiAgICAgIGZpZWxkOiAnJyxcbiAgICAgIGRpcjogdW5kZWZpbmVkLFxuICAgIH0sXG4gIF07XG4gIEBJbnB1dCgpIGhhc0FwaVNvcnRpbmcgPSBmYWxzZTtcbiAgQE91dHB1dCgpIHNvcnREaXJlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcHVibGljIGFycm93RG93bkljb246IFNWR0ljb24gPSBjaGV2cm9uRG93bkljb247XG4gIHB1YmxpYyBhcnJvd1VwSWNvbjogU1ZHSWNvbiA9IGNoZXZyb25VcEljb247XG4gIEBJbnB1dCgpIGV4cGFuZFJvd0luZGV4OiBudW1iZXJbXSA9IFtdO1xuICBASW5wdXQoKSBjdXN0b21FeHBhbmRSb3dDb2x1bW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZGVsZXRlQ29sdW1uV2lkdGg6IG51bWJlciA9IDQyO1xuICBleHBhbmRSb3dDb2x1bW5XaWR0aDogbnVtYmVyID0gNTY7XG4gIEBPdXRwdXQoKSBkZWxldGVkUm93RGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBzaXplczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgcGFnZUNvdW50ID0gMDtcbiAgQElucHV0KCkgc2hvd0RlbGV0ZUNvbHVtbiA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWRlS2ViYWJSb3dJbmRleDogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBsb2FkZXJUeXBlOiBMb2FkZXJUeXBlID0gTG9hZGVyVHlwZS5wdWxzaW5nO1xuICBASW5wdXQoKSBsb2FkZXJTaXplOiBMb2FkZXJTaXplID0gTG9hZGVyU2l6ZS5tZWRpdW07XG4gIEBJbnB1dCgpIGxvYWRlclRoZW1lOiBMb2FkZXJUaGVtZUNvbG9yID0gTG9hZGVyVGhlbWVDb2xvci5wcmltYXJ5O1xuICBpbml0aWFsR3JpZEhlaWdodDogYW55O1xuICBncmlkQm90dG9tU3BhY2UgPSAyNDtcbiAgcmVzaXplSGVpZ2h0OiBhbnkgPSAwO1xuICBzZWxlY3RBbGxTdGF0ZTogU2VsZWN0QWxsQ2hlY2tib3hTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICBzZWxlY3RlZFJvd3M6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIGRpc2FibGVQcmVTZWxlY3RlZFJvd3MgPSBmYWxzZTtcbiAgcHVibGljIGZvcm1Hcm91cCE6IEZvcm1Hcm91cCB8IGFueTtcbiAgQE91dHB1dCgpIHVwZGF0ZWREYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGFsbG93RWRpdGluZ0NlbGwgPSBmYWxzZTtcbiAgXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5zZXRTZWxlY3RhYmxlU2V0dGluZ3MoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGZvciAobGV0IGNvbHVtbiBvZiB0aGlzLmNvbHVtbkRhdGEpIHtcbiAgICAgIGNvbHVtbi5zb3J0YWJsZSA9IGNvbHVtbi5zb3J0YWJsZSA9PSB1bmRlZmluZWQgPyB0cnVlIDogY29sdW1uLnNvcnRhYmxlO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuaGFzQXBpU29ydGluZykge1xuICAgICAgdGhpcy5sb2FkR3JpZERhdGEoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnBhZ2VhYmxlKSB7XG4gICAgICB0aGlzLnBhZ2VTaXplID0gdGhpcy5ncmlkVmlldy5kYXRhPy5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmN1c3RvbUV4cGFuZFJvd0NvbHVtbikge1xuICAgICAgdGhpcy5leHBhbmRSb3dJbmRleC5mb3JFYWNoKChpZCkgPT4ge1xuICAgICAgICB0aGlzLmdyaWQuZXhwYW5kUm93KGlkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkUm93cyA9IHRoaXMucHJlU2VsZWN0ZWQ7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCA9PSB0aGlzLmdyaWRWaWV3LnRvdGFsKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAnY2hlY2tlZCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2luZGV0ZXJtaW5hdGUnO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ3VuY2hlY2tlZCc7XG4gICAgfVxuICAgIHRoaXMuaW5pdGlhbEdyaWRIZWlnaHQgPVxuICAgICAgdGhpcy5ncmlkRWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCArIHRoaXMuZ3JpZEJvdHRvbVNwYWNlO1xuICAgIHRoaXMuZ2V0R3JpZEhlaWdodCgpO1xuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcGFnZUNoYW5nZShldmVudDogUGFnZUNoYW5nZUV2ZW50KSB7XG4gICAgdGhpcy5vblBhZ2VDaGFuZ2UuZW1pdChldmVudCk7XG4gIH1cblxuICBzZXRTZWxlY3RhYmxlU2V0dGluZ3MoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2hlY2tib3hPbmx5IHx8IHRoaXMubW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIHRoaXMuZHJhZ0NvbHVtbnMgPSBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGFibGVTZXR0aW5ncyA9IHtcbiAgICAgIGNoZWNrYm94T25seTogdGhpcy5jaGVja2JveE9ubHksXG4gICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICBkcmFnOiB0aGlzLmRyYWdDb2x1bW5zLFxuICAgIH07XG4gIH1cblxuICAvLyBXZSBjYW4gZXh0cmFjdCBkYXRhIG91dCBvZiByb3cgbnVtYmVyIHVzaW5nIGJlbG93IGZ1bmN0aW9uXG4gIC8qIGV4dHJhY3QoKSB7XG4gICAgdGhpcy5leHRyYWN0RGF0YUl0ZW1zID0gdGhpcy5teVNlbGVjdGlvbi5tYXAoaWR4ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmdyaWREYXRhLmZpbmQoKGRhdGE6IHsgUHJvZHVjdElEOiBudW1iZXI7IH0pID0+IGRhdGEuUHJvZHVjdElEID09PSBpZHgpO1xuICAgIH0pO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuZXh0cmFjdERhdGFJdGVtcylcbiAgICB0aGlzLnNlbGVjdGVkUm93RGF0YS5lbWl0KHRoaXMuZXh0cmFjdERhdGFJdGVtcyk7XG4gIH0gKi9cblxuICBzZWxlY3RlZEtleXNDaGFuZ2Uocm93czogbnVtYmVyW10pIHtcbiAgICBsZXQgc2VsZWN0ZWRSb3dEYXRhID0gW107XG4gICAgbGV0IHNlbGVjdGVkUm93c0NvdW50ID0gMDtcblxuICAgIGlmIChyb3dzPy5sZW5ndGggPiAwKSB7XG4gICAgICBzZWxlY3RlZFJvd3NDb3VudCA9IHJvd3M/Lmxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPiAwICYmIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cykge1xuICAgICAgc2VsZWN0ZWRSb3dzQ291bnQgPSB0aGlzLnNlbGVjdGVkUm93cz8ubGVuZ3RoO1xuICAgICAgcm93cyA9IHRoaXMuc2VsZWN0ZWRSb3dzO1xuICAgIH1cblxuICAgIGlmIChzZWxlY3RlZFJvd3NDb3VudCA9PSB0aGlzLmdyaWRWaWV3LnRvdGFsKSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2NoZWNrZWQnO1xuICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWRSb3dzQ291bnQgPT0gMCkge1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2luZGV0ZXJtaW5hdGUnO1xuICAgIH1cblxuICAgIHNlbGVjdGVkUm93RGF0YSA9IHJvd3MubWFwKHJvd0RhdGEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZ3JpZFZpZXcuZGF0YS5maW5kKChkYXRhKSA9PiBkYXRhW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdID09PSByb3dEYXRhKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2VsZWN0ZWRSb3dEYXRhLmVtaXQoc2VsZWN0ZWRSb3dEYXRhKTtcbiAgfVxuXG4gIG9uS2ViYWJDbGljayhpdGVtOiBhbnksIHJvd0RldGFpbHM6IGFueSkge1xuICAgIHRoaXMua2ViYWJJdGVtQ2xpY2suZW1pdCh7IGFjdGlvbjogaXRlbSwgcm93RGV0YWlscyB9KTtcbiAgfVxuXG4gIG9uRGV0YWlsRXhwYW5kKHJvd0RhdGE6IGFueSkge1xuICAgIHRoaXMucm93RGV0YWlscy5lbWl0KHJvd0RhdGEuZGF0YUl0ZW0pO1xuICB9XG5cbiAgY2VsbENsaWNrSGFuZGxlcihhcmdzOiBDZWxsQ2xpY2tFdmVudCkge1xuICAgIGlmICh0aGlzLmFsbG93Q29sdW1uQ2xpY2spIHtcbiAgICAgIGlmICh0aGlzLmlnbm9yZUNvbHVtbkNlbGxDbGljay5pbmNsdWRlcyhhcmdzLmNvbHVtbkluZGV4KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnJvd0RhdGFPZkNsaWNrZWRDZWxsLmVtaXQoYXJncy5kYXRhSXRlbSk7XG4gICAgfVxuICAgIGlmKHRoaXMuYWxsb3dFZGl0aW5nQ2VsbCl7XG4gICAgICB0aGlzLmZvcm1Hcm91cCA9IGNyZWF0ZUZvcm1Hcm91cChhcmdzLmRhdGFJdGVtKTtcbiAgICAgICAgICAgIGFyZ3Muc2VuZGVyLmVkaXRDZWxsKGFyZ3Mucm93SW5kZXgsIGFyZ3MuY29sdW1uSW5kZXgsIHRoaXMuZm9ybUdyb3VwKTtcbiAgICAgIH1cbiAgfVxuXG4gIHNvcnRDaGFuZ2Uoc29ydDogU29ydERlc2NyaXB0b3JbXSk6IHZvaWQge1xuICAgIHRoaXMuc29ydCA9IHNvcnQ7XG4gICAgaWYgKCF0aGlzLmhhc0FwaVNvcnRpbmcpIHtcbiAgICAgIHRoaXMubG9hZEdyaWREYXRhKCk7XG4gICAgfVxuICAgIHRoaXMuc29ydERpcmVjdGlvbi5lbWl0KHRoaXMuc29ydCk7XG4gIH1cblxuICBsb2FkR3JpZERhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5ncmlkVmlldyA9IHtcbiAgICAgIGRhdGE6IG9yZGVyQnkodGhpcy5ncmlkVmlldz8uZGF0YSwgdGhpcy5zb3J0KSxcbiAgICAgIHRvdGFsOiB0aGlzLmdyaWRWaWV3Py50b3RhbCxcbiAgICB9O1xuICB9XG5cbiAgZXhwYW5kUm93KGlkOiBudW1iZXIpIHtcbiAgICB0aGlzLmdyaWQuZXhwYW5kUm93KGlkKTtcbiAgICB0aGlzLmV4cGFuZFJvd0luZGV4LnB1c2goaWQpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5nZXRHcmlkSGVpZ2h0KCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBjb2xsYXBzZVJvdyhpZDogbnVtYmVyKSB7XG4gICAgdGhpcy5ncmlkLmNvbGxhcHNlUm93KGlkKTtcbiAgICB0aGlzLmV4cGFuZFJvd0luZGV4LnNwbGljZSh0aGlzLmV4cGFuZFJvd0luZGV4LmluZGV4T2YoaWQpLCAxKTtcbiAgICBpZiAodGhpcy5leHBhbmRSb3dJbmRleD8ubGVuZ3RoID09IDApIHtcbiAgICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAgIGNvbnN0IHZpZXdwb3J0OiBhbnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGliLWdyaWQnKTtcbiAgICAgIGNvbnN0IGdyaWRPZmZzZXQgPSB2aWV3cG9ydC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyB3aW5kb3cuc2Nyb2xsWTtcbiAgICAgIGlmICh3aW5kb3dIZWlnaHQgPiBncmlkT2Zmc2V0ICsgdGhpcy5pbml0aWFsR3JpZEhlaWdodCkge1xuICAgICAgICB0aGlzLmhlaWdodCA9ICcxMDAlJztcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5nZXRHcmlkSGVpZ2h0KCk7XG4gICAgfVxuICB9XG5cbiAgb25EZWxldGUocm93RGV0YWlsczogYW55KSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmdldEhlYWRlckhlaWdodCgpO1xuICAgIH0sIDEwMDApO1xuICAgIHRoaXMuZGVsZXRlZFJvd0RhdGEuZW1pdChyb3dEZXRhaWxzKTtcbiAgfVxuXG4gIGdldEhlYWRlckhlaWdodCgpIHtcbiAgICBpZiAodGhpcy5ncmlkVmlldz8uZGF0YT8ubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gJ2hpZGUtaGVhZGVyJztcbiAgICB9XG4gICAgcmV0dXJuICd2aWV3LWhlYWRlcic7XG4gIH1cblxuICBnZXRHcmlkSGVpZ2h0KCkge1xuICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICBjb25zdCB2aWV3cG9ydDogYW55ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpYi1ncmlkJyk7XG4gICAgY29uc3QgZ3JpZE9mZnNldCA9IHZpZXdwb3J0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHdpbmRvdy5zY3JvbGxZO1xuICAgIGNvbnN0IGdyaWRIZWlnaHQgPVxuICAgICAgdGhpcy5ncmlkRWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCArIHRoaXMuZ3JpZEJvdHRvbVNwYWNlOyAvL2dyaWQgc2hvdWxkIGhhdmUgMjRweCBzcGFjZSBhdCBib3R0b21cbiAgICBpZiAoZ3JpZE9mZnNldCArIGdyaWRIZWlnaHQgPj0gd2luZG93SGVpZ2h0KSB7XG4gICAgICB0aGlzLmhlaWdodCA9IHdpbmRvd0hlaWdodCAtIChncmlkT2Zmc2V0ICsgdGhpcy5ncmlkQm90dG9tU3BhY2UpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICByZXNpemUoZXY6IGFueSkge1xuICAgIGlmIChldi50YXJnZXQuaW5uZXJIZWlnaHQgPiB0aGlzLnJlc2l6ZUhlaWdodCkge1xuICAgICAgdGhpcy5yZXNpemVIZWlnaHQgPSBldi50YXJnZXQuaW5uZXJIZWlnaHQ7XG4gICAgICB0aGlzLmhlaWdodCA9ICcxMDAlJztcbiAgICB9XG4gICAgaWYgKHRoaXMucmVzaXplSGVpZ2h0ID4gd2luZG93LmlubmVySGVpZ2h0KSB7XG4gICAgICB0aGlzLnJlc2l6ZUhlaWdodCA9IDA7XG4gICAgfVxuICAgIHRoaXMuZ2V0R3JpZEhlaWdodCgpO1xuICB9XG5cbiAgcm93Q2xhc3MgPSAoYXJnczogUm93Q2xhc3NBcmdzKSA9PiB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzICYmIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgJ2stZGlzYWJsZWQnOiB0aGlzLnNlbGVjdGVkUm93cy5pbmNsdWRlcyhcbiAgICAgICAgICBhcmdzLmRhdGFJdGVtW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH07XG5cbiAgZXhwYW5kQ29sdW1uQ2xhc3MoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPiAwICYmIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cykge1xuICAgICAgdGhpcy5leHBhbmRSb3dDb2x1bW5XaWR0aCA9IDE5NDtcbiAgICAgIHJldHVybiAnZXhwYW5kLXJvdyc7XG4gICAgfVxuICAgIHRoaXMuZXhwYW5kUm93Q29sdW1uV2lkdGggPSA1NjtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBvblNlbGVjdEFsbENoYW5nZShjaGVja2VkU3RhdGU6IFNlbGVjdEFsbENoZWNrYm94U3RhdGUpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBjaGVja2VkU3RhdGUgPT09ICdjaGVja2VkJyB8fFxuICAgICAgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPT0gdGhpcy5ncmlkVmlldy50b3RhbCAmJlxuICAgICAgICB0aGlzLmRpc2FibGVQcmVTZWxlY3RlZFJvd3MpXG4gICAgKSB7XG4gICAgICB0aGlzLnByZVNlbGVjdGVkID0gdGhpcy5ncmlkVmlldy5kYXRhXG4gICAgICAgIC5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbVt0aGlzLmdyaWRSb3dTZWxlY3RCeVZhbHVlXSlcbiAgICAgICAgLmZpbHRlcigoaWQ6IGFueSkgPT4gaWQpO1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICdjaGVja2VkJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPiAwICYmIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cykge1xuICAgICAgdGhpcy5wcmVTZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRSb3dzO1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICdpbmRldGVybWluYXRlJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcmVTZWxlY3RlZCA9IFtdO1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjZWxsQ2xvc2VIYW5kbGVyKGFyZ3M6IENlbGxDbG9zZUV2ZW50KTogdm9pZCB7XG4gICAgbGV0IHsgZm9ybUdyb3VwLCBkYXRhSXRlbSB9ID0gYXJncztcbiAgICBpZiAoIWZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgYXJncy5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH0gZWxzZSBpZiAoZm9ybUdyb3VwLmRpcnR5KSB7XG4gICAgICBpZiAoYXJncy5vcmlnaW5hbEV2ZW50ICYmIGFyZ3Mub3JpZ2luYWxFdmVudC5rZXlDb2RlID09PSBLZXlzLkVzY2FwZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBPYmplY3QuYXNzaWduKGRhdGFJdGVtLCBmb3JtR3JvdXAudmFsdWUpO1xuICAgICAgdGhpcy5zYXZlQ2hhbmdlcygpO1xuICAgICAgdGhpcy51cGRhdGVkRGF0YS5lbWl0KHRoaXMuZ3JpZC5kYXRhKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzYXZlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmdyaWQuY2xvc2VDZWxsKCk7XG4gICAgdGhpcy5ncmlkLmNhbmNlbENlbGwoKTtcbiAgfVxufVxuIiwiPGRpdiAjZ3JpZEVsZW1lbnQgKHdpbmRvdzpyZXNpemUpPVwicmVzaXplKCRldmVudClcIj5cbiAgPGtlbmRvLWdyaWQgW2RhdGFdPVwiZ3JpZFZpZXdcIiBbcGFnZVNpemVdPVwicGFnZVNpemVcIiBbc2tpcF09XCJza2lwXCIgW3NlbGVjdGFibGVdPVwic2VsZWN0YWJsZVNldHRpbmdzXCJcbiAgICBbcGFnZWFibGVdPVwicGFnZWFibGVcIiBbc29ydGFibGVdPVwic29ydGFibGVcIiBbZ3JvdXBhYmxlXT1cImdyb3VwYWJsZVwiIFtyZW9yZGVyYWJsZV09XCJyZW9yZGVyYWJsZVwiXG4gICAgW3Jlc2l6YWJsZV09XCJyZXNpemFibGVcIiBbY29sdW1uTWVudV09XCJjb2x1bW5NZW51XCIgW25hdmlnYWJsZV09XCJuYXZpZ2FibGVcIiBbaGVpZ2h0XT1cImhlaWdodFwiIFtzdHlsZS5oZWlnaHRdPVwiaGVpZ2h0XCJcbiAgICAoY2hhbmdlKT1cInNldFNlbGVjdGFibGVTZXR0aW5ncygpXCIgKHNlbGVjdGVkS2V5c0NoYW5nZSk9XCJzZWxlY3RlZEtleXNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2tlbmRvR3JpZFNlbGVjdEJ5XT1cImdyaWRSb3dTZWxlY3RCeVZhbHVlXCIgKGRldGFpbEV4cGFuZCk9XCJvbkRldGFpbEV4cGFuZCgkZXZlbnQpXCIgW3NlbGVjdGVkS2V5c109XCJwcmVTZWxlY3RlZFwiXG4gICAgKHBhZ2VDaGFuZ2UpPVwicGFnZUNoYW5nZSgkZXZlbnQpXCIgKGNlbGxDbGljayk9XCJjZWxsQ2xpY2tIYW5kbGVyKCRldmVudClcIiAoY2VsbENsb3NlKT1cImNlbGxDbG9zZUhhbmRsZXIoJGV2ZW50KVwiIFtzb3J0XT1cInNvcnRcIlxuICAgIChzb3J0Q2hhbmdlKT1cInNvcnRDaGFuZ2UoJGV2ZW50KVwiIFtuZ0NsYXNzXT1cImdldEhlYWRlckhlaWdodCgpXCIgaWQ9XCJsaWItZ3JpZFwiIFtyb3dDbGFzc109XCJyb3dDbGFzc1wiPlxuXG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwic2hvd1Rvb2xiYXJcIiBrZW5kb0dyaWRUb29sYmFyVGVtcGxhdGU+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cInRoaXMuZ3JpZFZpZXcudG90YWwgPT09IDBcIiBrZW5kb0dyaWROb1JlY29yZHNUZW1wbGF0ZT5cbiAgICAgIDxsaWItdHlwb2dyYXBoeSAqbmdJZj1cIiFsb2FkaW5nXCIgW2RlZmF1bHRUZXh0XT1cIm5vUmVjb3Jkc0NvbnRlbnRcIiB0eXBlPVwiUF9NVUxJU0hfMTZfUkVHVUxBUlwiPjwvbGliLXR5cG9ncmFwaHk+XG4gICAgICA8bGliLWxvYWRlciAqbmdJZj1cImxvYWRpbmdcIiBbdHlwZV09XCJsb2FkZXJUeXBlXCIgW3NpemVdPVwibG9hZGVyU2l6ZVwiIFt0aGVtZUNvbG9yXT1cImxvYWRlclRoZW1lXCI+PC9saWItbG9hZGVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGhpcy5ncmlkVmlldy50b3RhbCA+IDBcIj5cbiAgICAgIDxrZW5kby1ncmlkLWNoZWNrYm94LWNvbHVtbiAqbmdJZj1cImNoZWNrQm94UmVxdWlyZWQgPT09IHRydWVcIiBbd2lkdGhdPVwiY2hlY2tCb3hXaWR0aFwiXG4gICAgICAgIFtyZXNpemFibGVdPVwiY2hlY2tCb3hDb2x1bW5SZXNpemFibGVcIiBbY29sdW1uTWVudV09XCJjaGVja0JveENvbHVtbk1lbnVcIiBjbGFzcz1cImNoZWNrYm94LWNvbHVtblwiPlxuICAgICAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkSGVhZGVyVGVtcGxhdGU+XG4gICAgICAgICAgPGlucHV0IGlkPVwic2VsZWN0QWxsQ2hlY2tib3hJZFwiIHR5cGU9XCJjaGVja2JveFwiIGtlbmRvQ2hlY2tCb3gga2VuZG9HcmlkU2VsZWN0QWxsQ2hlY2tib3hcbiAgICAgICAgICAgIFtzdGF0ZV09XCJzZWxlY3RBbGxTdGF0ZVwiIChzZWxlY3RBbGxDaGFuZ2UpPVwib25TZWxlY3RBbGxDaGFuZ2UoJGV2ZW50KVwiIC8+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2tlbmRvLWdyaWQtY2hlY2tib3gtY29sdW1uPlxuICAgICAgXG4gICAgICA8a2VuZG8tZ3JpZC1jb2x1bW4gY2xhc3M9XCJncmlkLWNvbHVtblwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbHVtbkRhdGFcIiBbZmllbGRdPVwiaXRlbS5maWVsZFwiIFt0aXRsZV09XCJpdGVtLnRpdGxlXCJcbiAgICAgICAgW3dpZHRoXT1cIml0ZW0uY29sdW1uV2lkdGhcIiBbc29ydGFibGVdPVwiaXRlbS5zb3J0YWJsZVwiIFtlZGl0b3JdPVwiaXRlbS5lZGl0b3JcIj5cblxuICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJzb3J0YWJsZVwiIGtlbmRvR3JpZEhlYWRlclRlbXBsYXRlPlxuICAgICAgICAgIHt7aXRlbS50aXRsZX19XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0WzBdLmZpZWxkID09PSBpdGVtLmZpZWxkXCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRbMF0uZGlyID09PSAnYXNjJ1wiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic29ydFswXS5kaXIgPT09ICdkZXNjJ1wiPjwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiaXRlbS5jdXN0b21cIiBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZVJlZjsgY29udGV4dDogeyRpbXBsaWNpdDogZGF0YUl0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cIml0ZW0uaW1wYWN0XCIga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW1wYWN0Q29sdW1uOyBjb250ZXh0OiB7JGltcGxpY2l0OiBkYXRhSXRlbX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwva2VuZG8tZ3JpZC1jb2x1bW4+XG5cbiAgICAgIDxrZW5kby1ncmlkLWNvbHVtbiAqbmdJZj1cInNob3dEZWxldGVDb2x1bW5cIiBbd2lkdGhdPVwiZGVsZXRlQ29sdW1uV2lkdGhcIiBjbGFzcz1cImRlbGV0ZS1jb2x1bW5cIiB0aXRsZT1cIkFjdGlvblwiPlxuICAgICAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbSBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxuICAgICAgICAgIDxsaWItdG9vbHRpcCBzaG93T249XCJob3ZlclwiIHBvc2l0aW9uPVwiYm90dG9tXCIgY2xhc3M9XCJyZW1vdmUtdG9vbHRpcFwiPlxuICAgICAgICAgICAgPGxpYi1pY29uIG5hbWU9XCJkZWxldGVcIiBjbGFzcz1cImRlbGV0ZS1pY29uXCIgKGNsaWNrKT1cIm9uRGVsZXRlKGRhdGFJdGVtKVwiPjwvbGliLWljb24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbHRpcC1jb250ZW50XCI+XG4gICAgICAgICAgICAgIDxsaWItdHlwb2dyYXBoeSBkZWZhdWx0VGV4dD1cIlJlbW92ZVwiPjwvbGliLXR5cG9ncmFwaHk+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2xpYi10b29sdGlwPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9rZW5kby1ncmlkLWNvbHVtbj5cblxuICAgICAgPGtlbmRvLWdyaWQtY29sdW1uIFt3aWR0aF09XCJrZWJhYkNvbHVtbldpZHRoXCIgY2xhc3M9XCJrZWJhYi1jb2x1bW5cIiAqbmdJZj1cInNob3dLZWJhYlwiIHRpdGxlPVwiQWN0aW9uc1wiPlxuICAgICAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbSBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxuICAgICAgICAgIDxrZW5kby1kcm9wZG93bmJ1dHRvbiAqbmdJZj1cIiFoaWRlS2ViYWJSb3dJbmRleC5pbmNsdWRlcyhyb3dJbmRleClcIiBbc3ZnSWNvbl09XCJpY29uXCIgZmlsbE1vZGU9XCJub25lXCJcbiAgICAgICAgICAgIFtkYXRhXT1cImtlYmFiTGlzdCB8IGtlYmFiTWVudUZpbHRlciA6IGRhdGFJdGVtXCIgY2xhc3M9XCJrZWJhYlwiIChpdGVtQ2xpY2spPVwib25LZWJhYkNsaWNrKCRldmVudCwgZGF0YUl0ZW0pXCJcbiAgICAgICAgICAgIFtwb3B1cFNldHRpbmdzXT1cInsgYWxpZ246ICdyaWdodCcsIGFuaW1hdGU6IHRydWUsIHBvcHVwQ2xhc3M6ICdrZWJhYi1saXN0JyB9XCI+XG4gICAgICAgICAgPC9rZW5kby1kcm9wZG93bmJ1dHRvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwva2VuZG8tZ3JpZC1jb2x1bW4+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkRGV0YWlsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRldGFpbFRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiBkYXRhSXRlbX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPGtlbmRvLWdyaWQtY29sdW1uICpuZ0lmPVwiY3VzdG9tRXhwYW5kUm93Q29sdW1uXCIgW3dpZHRoXT1cImV4cGFuZFJvd0NvbHVtbldpZHRoXCIgY2xhc3M9XCJncmlkLWNvbHVtbiBleHBhbmQtY29sdW1uXCI+XG4gICAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbSBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImV4cGFuZENvbHVtbkNsYXNzKClcIj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkUm93cy5pbmNsdWRlcyhkYXRhSXRlbVtncmlkUm93U2VsZWN0QnlWYWx1ZV0pICYmIGRpc2FibGVQcmVTZWxlY3RlZFJvd3NcIlxuICAgICAgICAgICAgY2xhc3M9XCJleHBhbmQtY29sdW1uLXRleHRcIj5cbiAgICAgICAgICAgIEFscmVhZHkgYWRkZWRcbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGtlbmRvLWJ1dHRvbiAqbmdJZj1cIiFleHBhbmRSb3dJbmRleC5pbmNsdWRlcyhyb3dJbmRleClcIiBbc3ZnSWNvbl09XCJhcnJvd0Rvd25JY29uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJleHBhbmRSb3cocm93SW5kZXgpXCIgZmlsbE1vZGU9XCJub25lXCIgY2xhc3M9XCJhcnJvdy1idG5cIj5cbiAgICAgICAgICA8L2tlbmRvLWJ1dHRvbj5cbiAgICAgICAgICA8a2VuZG8tYnV0dG9uICpuZ0lmPVwiZXhwYW5kUm93SW5kZXguaW5jbHVkZXMocm93SW5kZXgpXCIgW3N2Z0ljb25dPVwiYXJyb3dVcEljb25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNvbGxhcHNlUm93KHJvd0luZGV4KVwiIGZpbGxNb2RlPVwibm9uZVwiIGNsYXNzPVwiYXJyb3ctYnRuXCI+XG4gICAgICAgICAgPC9rZW5kby1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2tlbmRvLWdyaWQtY29sdW1uPlxuXG4gICAgPG5nLXRlbXBsYXRlIGtlbmRvUGFnZXJUZW1wbGF0ZSBsZXQtdG90YWxQYWdlcz1cInRvdGFsUGFnZXNcIiBsZXQtY3VycmVudFBhZ2U9XCJjdXJyZW50UGFnZVwiPlxuICAgICAgPGtlbmRvLXBhZ2VyLXByZXYtYnV0dG9ucz48L2tlbmRvLXBhZ2VyLXByZXYtYnV0dG9ucz5cbiAgICAgIDxrZW5kby1wYWdlci1udW1lcmljLWJ1dHRvbnMgW2J1dHRvbkNvdW50XT1cInBhZ2VDb3VudFwiPjwva2VuZG8tcGFnZXItbnVtZXJpYy1idXR0b25zPlxuICAgICAgPGtlbmRvLXBhZ2VyLW5leHQtYnV0dG9ucz48L2tlbmRvLXBhZ2VyLW5leHQtYnV0dG9ucz5cbiAgICAgIDxrZW5kby1wYWdlci1pbmZvPjwva2VuZG8tcGFnZXItaW5mbz5cbiAgICAgIDxrZW5kby1wYWdlci1wYWdlLXNpemVzIFtwYWdlU2l6ZXNdPVwic2l6ZXNcIj48L2tlbmRvLXBhZ2VyLXBhZ2Utc2l6ZXM+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICA8L2tlbmRvLWdyaWQ+XG48L2Rpdj5cbiJdfQ==
@@ -95,6 +95,7 @@ export * from './lib/molecules/card/card-header/card-header.component';
95
95
  export * from './lib/molecules/card/card.component';
96
96
  export * from './lib/molecules/dialog/dialog-actions/dialog-actions.component';
97
97
  export * from './lib/molecules/dialog/dialog-titlebar/dialog-titlebar.component';
98
+ export * from './lib/molecules/dialog/confirmation-dialog/confirmation-dialog.component';
98
99
  export * from './lib/molecules/dialog/dialog.component';
99
100
  export * from './lib/molecules/grid-layout/grid-layout-item/grid-layout-item.component';
100
101
  export * from './lib/molecules/grid-layout/grid-layout.component';
@@ -105,4 +106,4 @@ export * from './lib/molecules/grid-pagination/grid-pagination.component';
105
106
  export * from './lib/molecules/grid-pagination/grid-pagination-spacer/grid-pagination-spacer.component';
106
107
  export * from './lib/molecules/tabstrip/tabstrip-tab/tabstrip-tab.component';
107
108
  export * from './lib/molecules/tabstrip/tabstrip.component';
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxXQUFXO0FBQ1gsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDJEQUEyRCxDQUFBO0FBRXpFLGVBQWU7QUFDZixjQUFjLHdDQUF3QyxDQUFDO0FBRXZELHVEQUF1RDtBQUN2RCxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLFFBQVE7QUFDUixjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxnRUFBZ0UsQ0FBQTtBQUM5RSxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHdDQUF3QyxDQUFBO0FBQ3RELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYywwREFBMEQsQ0FBQTtBQUN4RSxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFlLDBDQUEwQyxDQUFDO0FBQzFELGNBQWUsb0NBQW9DLENBQUM7QUFDcEQsY0FBaUIsd0NBQXdDLENBQUE7QUFDekQsY0FBZSwwQ0FBMEMsQ0FBQztBQUMxRCxjQUFlLGdEQUFnRCxDQUFDO0FBQ2hFLGNBQWMsa0NBQWtDLENBQUE7QUFFaEQsWUFBWTtBQUNaLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLHdEQUF3RCxDQUFBO0FBQ3RFLGNBQWMsMENBQTBDLENBQUM7QUFFekQsMERBQTBEO0FBQzFELFFBQVE7QUFDUixjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsbUVBQW1FLENBQUE7QUFDakYsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWUsNkNBQTZDLENBQUM7QUFDN0QsY0FBZSx1Q0FBdUMsQ0FBQztBQUN2RCxjQUFlLG1EQUFtRCxDQUFDO0FBQ25FLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBZSwyQ0FBMkMsQ0FBQTtBQUMxRCxjQUFlLDZDQUE2QyxDQUFDO0FBQzdELGNBQWUscUNBQXFDLENBQUE7QUFFcEQsWUFBWTtBQUNaLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHlFQUF5RSxDQUFDO0FBQ3hGLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLHlGQUF5RixDQUFDO0FBQ3hHLGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYyw2Q0FBNkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHNlcnZpY2VzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy90b2FzdC1ub3RpZmljYXRpb24vdG9hc3Qtbm90aWZpY2F0aW9uLnNlcnZpY2UnXG5cbi8vIHN0eWxlLXRva2Vuc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3R5bGUtdG9rZW5zL3N0eWxlLXRva2Vucy5tb2R1bGUnO1xuXG4vKiogLS0tLS0tLS0tLS0tLS0tIG1vZHVsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKiovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQubW9kdWxlJztcblxuLy8gQXRvbXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL2F0b21zLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9hbGVydC9hbGVydC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvYW5ndWxhci1wb3B1cC9hbmd1bGFyLXBvcHVwLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9hdmF0YXIvYXZhdGFyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9icmVhZGNydW1iL2JyZWFkY3J1bWIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL2J1dHRvbi9idXR0b24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL2J1dHRvbi1ncm91cC9idXR0b24tZ3JvdXAubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL2NoZWNrYm94L2NoZWNrYm94Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9jbGlwYm9hcmQvY2xpcGJvYXJkLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9jb250YWluZXIvY29udGFpbmVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9kcm9wZG93bi9kcm9wZG93bi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvZHJvcGRvd250cmVlL2Ryb3Bkb3dudHJlZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvZXhwYW5zaW9uLXBhbmVsL2V4cGFuc2lvbi1wYW5lbC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvaWNvbi9pY29uLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9sYWJlbC9sYWJlbC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvbG9hZGVyL2xvYWRlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvbG9hZGluZy1zcGlubmVyL2xvYWRpbmctc3Bpbm5lci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvbXVsdGktc2VsZWN0LWRyb3Bkb3duL211bHRpLXNlbGVjdC1kcm9wZG93bi5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9udW1lcmljLXRleHRib3gvbnVtZXJpYy10ZXh0Ym94Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9zZWFyY2gtYm94L3NlYXJjaC1ib3gubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL3NsaWRlci9zbGlkZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL3RleHQtYXJlYS90ZXh0LWFyZWEubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvdGV4dGJveC90ZXh0Ym94Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy90b2FzdC1ub3RpZmljYXRpb24vdG9hc3Qtbm90aWZpY2F0aW9uLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL3RpbWVzY2hlZHVsZXIvdGltZXNjaGVkdWxlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvdG9vbHRpcC90b29sdGlwLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy90eXBvZ3JhcGh5L3R5cG9ncmFwaHkubW9kdWxlJztcbmV4cG9ydCAqICBmcm9tICcuL2xpYi9hdG9tcy9kYXRlcGlja2VyL2RhdGVwaWNrZXIubW9kdWxlJztcbmV4cG9ydCAqICBmcm9tICcuL2xpYi9hdG9tcy9zdGVwcGVyL3N0ZXBwZXIubW9kdWxlJztcbmV4cG9ydCAgKiAgZnJvbSAgJy4vbGliL2F0b21zL2xpc3Qtdmlldy9saXN0LXZpZXcubW9kdWxlJ1xuZXhwb3J0ICogIGZyb20gJy4vbGliL2F0b21zL2RhdGUtcmFuZ2UvZGF0ZS1yYW5nZS5tb2R1bGUnO1xuZXhwb3J0ICogIGZyb20gJy4vbGliL2F0b21zL2RyYWctYW5kLWRyb3AvZHJhZy1hbmQtZHJvcC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvc3dpdGNoL3N3aXRjaC5tb2R1bGUnXG5cbi8vIG1vbGVjdWxlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9sZWN1bGVzL21vbGVjdWxlcy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9sZWN1bGVzL2NhcmQvY2FyZC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9sZWN1bGVzL2RpYWxvZy9kaWFsb2cubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vbGVjdWxlcy9ncmlkL2dyaWQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vbGVjdWxlcy9ncmlkLWxheW91dC9ncmlkLWxheW91dC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9sZWN1bGVzL2dyaWQtcGFnaW5hdGlvbi9ncmlkLXBhZ2luYXRpb24ubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9sZWN1bGVzL3RhYnN0cmlwL3RhYnN0cmlwLm1vZHVsZSc7XG5cbi8qKiAtLS0tLS0tLS0tLS0tLS0gY29tcG9uZW50cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKi9cbi8vIEF0b21zXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9hbGVydC9hbGVydC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvYW5ndWxhci1wb3B1cC9hbmd1bGFyLXBvcHVwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL2J1dHRvbi1ncm91cC9idXR0b24tZ3JvdXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9jbGlwYm9hcmQvY2xpcGJvYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9jb250YWluZXIvY29udGFpbmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvZHJvcGRvd250cmVlL2Ryb3Bkb3dudHJlZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvZXhwYW5zaW9uLXBhbmVsL2V4cGFuc2lvbi1wYW5lbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvaWNvbi9pY29uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9sYWJlbC9sYWJlbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvbG9hZGVyL2xvYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvbG9hZGluZy1zcGlubmVyL2xvYWRpbmctc3Bpbm5lci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvbXVsdGktc2VsZWN0LWRyb3Bkb3duL211bHRpLXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9udW1lcmljLXRleHRib3gvbnVtZXJpYy10ZXh0Ym94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9zZWFyY2gtYm94L3NlYXJjaC1ib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL3NsaWRlci9zbGlkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL3RleHQtYXJlYS90ZXh0LWFyZWEuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL3RleHRib3gvdGV4dGJveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvdGltZXNjaGVkdWxlci90aW1lc2NoZWR1bGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL3R5cG9ncmFwaHkvdHlwb2dyYXBoeS5jb21wb25lbnQnO1xuZXhwb3J0ICAqIGZyb20gJy4vbGliL2F0b21zL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0ICAqIGZyb20gJy4vbGliL2F0b21zL3N0ZXBwZXIvc3RlcHBlci5jb21wb25lbnQnO1xuZXhwb3J0ICAqIGZyb20gJy4vbGliL2F0b21zL2RyYWctYW5kLWRyb3AvZHJhZy1hbmQtZHJvcC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkLmNvbXBvbmVudCc7XG5leHBvcnQgICogZnJvbSAnLi9saWIvYXRvbXMvbGlzdC12aWV3L2xpc3Qtdmlldy5jb21wb25lbnQnXG5leHBvcnQgICogZnJvbSAnLi9saWIvYXRvbXMvZGF0ZS1yYW5nZS9kYXRlLXJhbmdlLmNvbXBvbmVudCc7XG5leHBvcnQgICogZnJvbSAnLi9saWIvYXRvbXMvc3dpdGNoL3N3aXRjaC5jb21wb25lbnQnXG5cbi8vIG1vbGVjdWxlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9sZWN1bGVzL2NhcmQvY2FyZC1hY3Rpb25zL2NhcmQtYWN0aW9ucy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9sZWN1bGVzL2NhcmQvY2FyZC1ib2R5L2NhcmQtYm9keS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9sZWN1bGVzL2NhcmQvY2FyZC1mb290ZXIvY2FyZC1mb290ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vbGVjdWxlcy9jYXJkL2NhcmQtaGVhZGVyL2NhcmQtaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2xlY3VsZXMvY2FyZC9jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2xlY3VsZXMvZGlhbG9nL2RpYWxvZy1hY3Rpb25zL2RpYWxvZy1hY3Rpb25zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2xlY3VsZXMvZGlhbG9nL2RpYWxvZy10aXRsZWJhci9kaWFsb2ctdGl0bGViYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vbGVjdWxlcy9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2xlY3VsZXMvZ3JpZC1sYXlvdXQvZ3JpZC1sYXlvdXQtaXRlbS9ncmlkLWxheW91dC1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2xlY3VsZXMvZ3JpZC1sYXlvdXQvZ3JpZC1sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vbGVjdWxlcy9ncmlkL2dyaWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vbGVjdWxlcy9ncmlkL2dyaWQtc3BhY2VyL2dyaWQtc3BhY2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2xlY3VsZXMvZ3JpZC9ncmlkLWZvcm0vZ3JpZC1mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2xlY3VsZXMvZ3JpZC1wYWdpbmF0aW9uL2dyaWQtcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9sZWN1bGVzL2dyaWQtcGFnaW5hdGlvbi9ncmlkLXBhZ2luYXRpb24tc3BhY2VyL2dyaWQtcGFnaW5hdGlvbi1zcGFjZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vbGVjdWxlcy90YWJzdHJpcC90YWJzdHJpcC10YWIvdGFic3RyaXAtdGFiLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2xlY3VsZXMvdGFic3RyaXAvdGFic3RyaXAuY29tcG9uZW50JztcbiJdfQ==
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxXQUFXO0FBQ1gsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDJEQUEyRCxDQUFBO0FBRXpFLGVBQWU7QUFDZixjQUFjLHdDQUF3QyxDQUFDO0FBRXZELHVEQUF1RDtBQUN2RCxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLFFBQVE7QUFDUixjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxnRUFBZ0UsQ0FBQTtBQUM5RSxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHdDQUF3QyxDQUFBO0FBQ3RELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYywwREFBMEQsQ0FBQTtBQUN4RSxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFlLDBDQUEwQyxDQUFDO0FBQzFELGNBQWUsb0NBQW9DLENBQUM7QUFDcEQsY0FBaUIsd0NBQXdDLENBQUE7QUFDekQsY0FBZSwwQ0FBMEMsQ0FBQztBQUMxRCxjQUFlLGdEQUFnRCxDQUFDO0FBQ2hFLGNBQWMsa0NBQWtDLENBQUE7QUFFaEQsWUFBWTtBQUNaLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLHdEQUF3RCxDQUFBO0FBQ3RFLGNBQWMsMENBQTBDLENBQUM7QUFFekQsMERBQTBEO0FBQzFELFFBQVE7QUFDUixjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsbUVBQW1FLENBQUE7QUFDakYsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWUsNkNBQTZDLENBQUM7QUFDN0QsY0FBZSx1Q0FBdUMsQ0FBQztBQUN2RCxjQUFlLG1EQUFtRCxDQUFDO0FBQ25FLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBZSwyQ0FBMkMsQ0FBQTtBQUMxRCxjQUFlLDZDQUE2QyxDQUFDO0FBQzdELGNBQWUscUNBQXFDLENBQUE7QUFFcEQsWUFBWTtBQUNaLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYywwRUFBMEUsQ0FBQTtBQUN4RixjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMseUVBQXlFLENBQUM7QUFDeEYsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMseUZBQXlGLENBQUM7QUFDeEcsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLDZDQUE2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc2VydmljZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL3RvYXN0LW5vdGlmaWNhdGlvbi90b2FzdC1ub3RpZmljYXRpb24uc2VydmljZSdcblxuLy8gc3R5bGUtdG9rZW5zXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdHlsZS10b2tlbnMvc3R5bGUtdG9rZW5zLm1vZHVsZSc7XG5cbi8qKiAtLS0tLS0tLS0tLS0tLS0gbW9kdWxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC5tb2R1bGUnO1xuXG4vLyBBdG9tc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvYXRvbXMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL2FsZXJ0L2FsZXJ0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9hbmd1bGFyLXBvcHVwL2FuZ3VsYXItcG9wdXAubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL2F2YXRhci9hdmF0YXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvYnV0dG9uL2J1dHRvbi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvYnV0dG9uLWdyb3VwL2J1dHRvbi1ncm91cC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvY2hlY2tib3gvY2hlY2tib3gubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL2NsaXBib2FyZC9jbGlwYm9hcmQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL2NvbnRhaW5lci9jb250YWluZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL2Ryb3Bkb3duL2Ryb3Bkb3duLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9kcm9wZG93bnRyZWUvZHJvcGRvd250cmVlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9leHBhbnNpb24tcGFuZWwvZXhwYW5zaW9uLXBhbmVsLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9pY29uL2ljb24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL2xhYmVsL2xhYmVsLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9sb2FkZXIvbG9hZGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9sb2FkaW5nLXNwaW5uZXIvbG9hZGluZy1zcGlubmVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9tdWx0aS1zZWxlY3QtZHJvcGRvd24vbXVsdGktc2VsZWN0LWRyb3Bkb3duLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL251bWVyaWMtdGV4dGJveC9udW1lcmljLXRleHRib3gubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL3JhZGlvLWJ1dHRvbi9yYWRpby1idXR0b24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL3NlYXJjaC1ib3gvc2VhcmNoLWJveC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvc2xpZGVyL3NsaWRlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvdGV4dC1hcmVhL3RleHQtYXJlYS5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy90ZXh0Ym94L3RleHRib3gubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL3RvYXN0LW5vdGlmaWNhdGlvbi90b2FzdC1ub3RpZmljYXRpb24ubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvdGltZXNjaGVkdWxlci90aW1lc2NoZWR1bGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy90b29sdGlwL3Rvb2x0aXAubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL3R5cG9ncmFwaHkvdHlwb2dyYXBoeS5tb2R1bGUnO1xuZXhwb3J0ICogIGZyb20gJy4vbGliL2F0b21zL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5tb2R1bGUnO1xuZXhwb3J0ICogIGZyb20gJy4vbGliL2F0b21zL3N0ZXBwZXIvc3RlcHBlci5tb2R1bGUnO1xuZXhwb3J0ICAqICBmcm9tICAnLi9saWIvYXRvbXMvbGlzdC12aWV3L2xpc3Qtdmlldy5tb2R1bGUnXG5leHBvcnQgKiAgZnJvbSAnLi9saWIvYXRvbXMvZGF0ZS1yYW5nZS9kYXRlLXJhbmdlLm1vZHVsZSc7XG5leHBvcnQgKiAgZnJvbSAnLi9saWIvYXRvbXMvZHJhZy1hbmQtZHJvcC9kcmFnLWFuZC1kcm9wLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9zd2l0Y2gvc3dpdGNoLm1vZHVsZSdcblxuLy8gbW9sZWN1bGVzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2xlY3VsZXMvbW9sZWN1bGVzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2xlY3VsZXMvY2FyZC9jYXJkLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2xlY3VsZXMvZGlhbG9nL2RpYWxvZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9sZWN1bGVzL2dyaWQvZ3JpZC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9sZWN1bGVzL2dyaWQtbGF5b3V0L2dyaWQtbGF5b3V0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2xlY3VsZXMvZ3JpZC1wYWdpbmF0aW9uL2dyaWQtcGFnaW5hdGlvbi5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2xlY3VsZXMvdGFic3RyaXAvdGFic3RyaXAubW9kdWxlJztcblxuLyoqIC0tLS0tLS0tLS0tLS0tLSBjb21wb25lbnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoqL1xuLy8gQXRvbXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9hbmd1bGFyLXBvcHVwL2FuZ3VsYXItcG9wdXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvYnV0dG9uLWdyb3VwL2J1dHRvbi1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL2NsaXBib2FyZC9jbGlwYm9hcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL2NvbnRhaW5lci9jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9kcm9wZG93bnRyZWUvZHJvcGRvd250cmVlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9leHBhbnNpb24tcGFuZWwvZXhwYW5zaW9uLXBhbmVsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9pY29uL2ljb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL2xhYmVsL2xhYmVsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9sb2FkaW5nLXNwaW5uZXIvbG9hZGluZy1zcGlubmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy9tdWx0aS1zZWxlY3QtZHJvcGRvd24vbXVsdGktc2VsZWN0LWRyb3Bkb3duLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL251bWVyaWMtdGV4dGJveC9udW1lcmljLXRleHRib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL3JhZGlvLWJ1dHRvbi9yYWRpby1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL3NlYXJjaC1ib3gvc2VhcmNoLWJveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvc2xpZGVyL3NsaWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvdGV4dC1hcmVhL3RleHQtYXJlYS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvdGV4dGJveC90ZXh0Ym94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdG9tcy90aW1lc2NoZWR1bGVyL3RpbWVzY2hlZHVsZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0b21zL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXRvbXMvdHlwb2dyYXBoeS90eXBvZ3JhcGh5LmNvbXBvbmVudCc7XG5leHBvcnQgICogZnJvbSAnLi9saWIvYXRvbXMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQgICogZnJvbSAnLi9saWIvYXRvbXMvc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudCc7XG5leHBvcnQgICogZnJvbSAnLi9saWIvYXRvbXMvZHJhZy1hbmQtZHJvcC9kcmFnLWFuZC1kcm9wLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQuY29tcG9uZW50JztcbmV4cG9ydCAgKiBmcm9tICcuL2xpYi9hdG9tcy9saXN0LXZpZXcvbGlzdC12aWV3LmNvbXBvbmVudCdcbmV4cG9ydCAgKiBmcm9tICcuL2xpYi9hdG9tcy9kYXRlLXJhbmdlL2RhdGUtcmFuZ2UuY29tcG9uZW50JztcbmV4cG9ydCAgKiBmcm9tICcuL2xpYi9hdG9tcy9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudCdcblxuLy8gbW9sZWN1bGVzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2xlY3VsZXMvY2FyZC9jYXJkLWFjdGlvbnMvY2FyZC1hY3Rpb25zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2xlY3VsZXMvY2FyZC9jYXJkLWJvZHkvY2FyZC1ib2R5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2xlY3VsZXMvY2FyZC9jYXJkLWZvb3Rlci9jYXJkLWZvb3Rlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9sZWN1bGVzL2NhcmQvY2FyZC1oZWFkZXIvY2FyZC1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vbGVjdWxlcy9jYXJkL2NhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vbGVjdWxlcy9kaWFsb2cvZGlhbG9nLWFjdGlvbnMvZGlhbG9nLWFjdGlvbnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vbGVjdWxlcy9kaWFsb2cvZGlhbG9nLXRpdGxlYmFyL2RpYWxvZy10aXRsZWJhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9sZWN1bGVzL2RpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9sZWN1bGVzL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vbGVjdWxlcy9ncmlkLWxheW91dC9ncmlkLWxheW91dC1pdGVtL2dyaWQtbGF5b3V0LWl0ZW0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vbGVjdWxlcy9ncmlkLWxheW91dC9ncmlkLWxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9sZWN1bGVzL2dyaWQvZ3JpZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9sZWN1bGVzL2dyaWQvZ3JpZC1zcGFjZXIvZ3JpZC1zcGFjZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vbGVjdWxlcy9ncmlkL2dyaWQtZm9ybS9ncmlkLWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2xlY3VsZXMvZ3JpZC1wYWdpbmF0aW9uL2dyaWQtcGFnaW5hdGlvbi1zcGFjZXIvZ3JpZC1wYWdpbmF0aW9uLXNwYWNlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9sZWN1bGVzL3RhYnN0cmlwL3RhYnN0cmlwLXRhYi90YWJzdHJpcC10YWIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vbGVjdWxlcy90YWJzdHJpcC90YWJzdHJpcC5jb21wb25lbnQnO1xuIl19