ngx-vector-components 4.75.0 → 4.76.0

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.76.0] (22/06/2023)
4
+
5
+ ### Feature
6
+
7
+ - Added `permission` in `profile.model.ts`.
8
+
3
9
  ## [4.75.0] (22/06/2023)
4
10
 
5
11
  ### Feature
@@ -45,6 +45,7 @@ export class DataTableComponent {
45
45
  this.onSelectedRows = new EventEmitter();
46
46
  this.onFilterChanged = new EventEmitter();
47
47
  this.onTabSelected = new EventEmitter();
48
+ this.onExpandRow = new EventEmitter();
48
49
  this.selectedItems = [];
49
50
  this._selectionMode = null;
50
51
  this._height = 'small';
@@ -270,6 +271,7 @@ export class DataTableComponent {
270
271
  setTimeout(() => {
271
272
  this.cd.markForCheck();
272
273
  });
274
+ this.onExpandRow.emit(item);
273
275
  }
274
276
  get listHasActions() {
275
277
  return this.data.some((item) => item.actions?.length);
@@ -313,7 +315,7 @@ export class DataTableComponent {
313
315
  }
314
316
  }
315
317
  DataTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: DataTableComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
316
- DataTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: DataTableComponent, selector: "vector-data-table", inputs: { columns: "columns", data: "data", exportExcel: "exportExcel", exportPDF: "exportPDF", totalRecords: "totalRecords", disabledHeadercheckbox: "disabledHeadercheckbox", filters: "filters", addItemLabel: "addItemLabel", pagination: "pagination", virtualPagination: "virtualPagination", tabs: "tabs", customButtons: "customButtons", addItemButtonPlusSign: "addItemButtonPlusSign", hasActions: "hasActions", hasExpandableIcon: "hasExpandableIcon", addNameColumnExpand: "addNameColumnExpand", expandable: "expandable", expansionTemplate: "expansionTemplate", selectionMode: "selectionMode", selectionType: "selectionType", height: "height" }, outputs: { onLazyLoad: "onLazyLoad", onFilter: "onFilter", onAdd: "onAdd", onExportExcel: "onExportExcel", onExportPDF: "onExportPDF", onSelectedRows: "onSelectedRows", onFilterChanged: "onFilterChanged", onTabSelected: "onTabSelected" }, viewQueries: [{ propertyName: "filtersComponent", first: true, predicate: FiltersComponent, descendants: true, static: true }], ngImport: i0, template: "<div class=\"grid\">\r\n <div class=\"col-12\">\r\n <vector-filters\r\n [fields]=\"filters\"\r\n (onSearch)=\"lazyLoaded({ filter: true, data: $event })\"\r\n (formBuilded)=\"subscribeToFilterChanges()\"\r\n ></vector-filters>\r\n </div>\r\n <div class=\"table-header-actions field\" *ngIf=\"addItemLabel || exportExcel || exportPDF\">\r\n <button *ngIf=\"exportExcel\" (click)=\"onExportExcel.emit()\" class=\"export-button export-excel\">\r\n <i class=\"fas fa-file\"></i><span>Excel</span>\r\n </button>\r\n <button *ngIf=\"exportPDF\" (click)=\"onExportPDF.emit()\" class=\"export-button export-pdf\">\r\n <i class=\"fas fa-file\"></i><span>PDF</span>\r\n </button>\r\n <vector-button\r\n *ngFor=\"let button of customButtons\"\r\n class=\"add-item-button\"\r\n [label]=\"button.label\"\r\n (click)=\"button.clickFunction()\"\r\n [rightIcon]=\"addItemButtonPlusSign ? 'pi pi-plus' : ''\"\r\n ></vector-button>\r\n <vector-button\r\n *ngIf=\"addItemLabel\"\r\n class=\"add-item-button\"\r\n [label]=\"addItemLabel\"\r\n (click)=\"onAdd.emit()\"\r\n [rightIcon]=\"addItemButtonPlusSign ? 'pi pi-plus' : ''\"\r\n ></vector-button>\r\n </div>\r\n <div class=\"col-12\">\r\n <vector-panel class=\"data-table-panel\">\r\n <p-tabView (onChange)=\"onTabChange($event)\" *ngIf=\"tabs?.length\">\r\n <p-tabPanel *ngFor=\"let tab of tabs\">\r\n <ng-template pTemplate=\"header\">\r\n <em *ngIf=\"tab.icon\" [class]=\"tab.icon\">&nbsp;</em>\r\n <span>{{ tab.name }}</span>\r\n </ng-template>\r\n </p-tabPanel>\r\n </p-tabView>\r\n <p-table\r\n currentPageReportTemplate=\"Mostrando {first} at\u00E9 {last} de {totalRecords} registros\"\r\n sortMode=\"single\"\r\n [rows]=\"10\"\r\n [lazy]=\"pagination && !virtualPagination\"\r\n [value]=\"data\"\r\n [paginator]=\"pagination\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [rowsPerPageOptions]=\"[10, 25, 50, 100]\"\r\n [responsive]=\"true\"\r\n [resizableColumns]=\"true\"\r\n [scrollable]=\"true\"\r\n scrollDirection=\"vertical\"\r\n responsiveLayout=\"scroll\"\r\n dataKey=\"id\"\r\n [scrollHeight]=\"height\"\r\n [attr.selectionMode]=\"selectionMode\"\r\n [(selection)]=\"selectedItems\"\r\n (onRowSelect)=\"changeSelectedItems($event)\"\r\n (onHeaderCheckboxToggle)=\"changeSelectedItems($event)\"\r\n (onRowUnselect)=\"changeSelectedItems($event)\"\r\n (onLazyLoad)=\"lazyLoaded({ filter: false, data: $event })\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n >\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"header\">\r\n <th style=\"max-width: 3rem\" *ngIf=\"selectionType === 'checkbox'\">\r\n <p-tableHeaderCheckbox [disabled]=\"disabledHeadercheckbox\"></p-tableHeaderCheckbox>\r\n </th>\r\n <th style=\"max-width: 150px\" class=\"centered text-center\" *ngIf=\"hasExpandableIcon\">\r\n {{ addNameColumnExpand }}\r\n </th>\r\n <th style=\"max-width: 100px\" class=\"centered\" *ngIf=\"hasActions\">{{ 'app.label.actions' | translate }}</th>\r\n <th\r\n *ngFor=\"let col of columns\"\r\n [ngStyle]=\"getColStyle(col)\"\r\n [pSortableColumn]=\"col.notSortable ? '' : col.field\"\r\n >\r\n {{ col.header }} <p-sortIcon *ngIf=\"!col.notSortable\" [field]=\"col.field\"></p-sortIcon>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-item let-expanded=\"expanded\">\r\n <tr\r\n class=\"row\"\r\n [pSelectableRow]=\"rowData\"\r\n [ngClass]=\"{ expandable: expandable }\"\r\n [pRowToggler]=\"expandable ? item : undefined\"\r\n (click)=\"onRowClick(item)\"\r\n >\r\n <ng-container *ngIf=\"selectionType === 'checkbox'\">\r\n <td style=\"max-width: 3rem; padding-left: 10px\" class=\"flex justify-content-center align-items-center\">\r\n <p-tableCheckbox [value]=\"item\" [disabled]=\"item.disabledCheckBox\"></p-tableCheckbox>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngIf=\"selectionType === 'radiobutton'\">\r\n <td style=\"max-width: 3rem; padding-left: 10px\" class=\"flex justify-content-center align-items-center\">\r\n <p-tableRadioButton [value]=\"item\"></p-tableRadioButton>\r\n </td>\r\n </ng-container>\r\n <td *ngIf=\"hasExpandableIcon\" style=\"max-width: 150px\" class=\"centered\">\r\n <p-menu #menu [model]=\"item.actions\" [popup]=\"true\" appendTo=\"body\"></p-menu>\r\n <i\r\n [ngClass]=\"\r\n expanded ? 'actions-menu-button pi pi-chevron-down' : 'actions-menu-button pi pi-chevron-right'\r\n \"\r\n ></i>\r\n </td>\r\n <td *ngIf=\"hasActions\" style=\"max-width: 100px\" class=\"centered\">\r\n <p-menu #menu [model]=\"item.actions\" [popup]=\"true\" appendTo=\"body\"></p-menu>\r\n <i class=\"actions-menu-button fas fa-cog\" (click)=\"menu.toggle($event)\"></i>\r\n </td>\r\n <ng-container *ngFor=\"let col of columns\">\r\n <td\r\n *ngIf=\"isHtmlCell(col)\"\r\n class=\"cell\"\r\n [innerHTML]=\"getCellContent(item, col)\"\r\n (click)=\"col && col.clickFunction && col.clickFunction(item)\"\r\n [ngStyle]=\"getColStyle(col)\"\r\n ></td>\r\n <td\r\n *ngIf=\"(!isHtmlCell(col) && !!col.getStatus) || isScoreCell(col)\"\r\n class=\"cell\"\r\n (click)=\"col && col.clickFunction && col.clickFunction(item)\"\r\n [ngStyle]=\"getColStyle(col)\"\r\n >\r\n <vector-badge\r\n *ngIf=\"isBadgeCell(col)\"\r\n [label]=\"getCellText(item, col)\"\r\n [type]=\"col.getStatus && col.getStatus(item[col.field])\"\r\n [tooltip]=\"getTooltipText(item, col)\"\r\n ></vector-badge>\r\n <vector-score *ngIf=\"isScoreCell(col)\" [score]=\"item[col.field]\"></vector-score>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"row\">\r\n <td class=\"no-results\" [attr.colspan]=\"columns.length + 1\">Nenhum resultado encontrado</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorright\"> </ng-template>\r\n <ng-template let-item pTemplate=\"paginatordropdownitem\"> {{ item.value }} </ng-template>\r\n <ng-template pTemplate=\"rowexpansion\" let-item>\r\n <tr>\r\n <td [attr.colspan]=\"columns.length + (hasActions ? 1 : 0)\">\r\n <ng-container *ngTemplateOutlet=\"expansionTemplate; context: { item }\"> </ng-container>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </vector-panel>\r\n </div>\r\n</div>\r\n", styles: [".no-results{padding:15px;background-color:#fff;width:100%}.centered{display:flex;justify-content:center}.table-header-actions{display:flex;justify-content:flex-end;align-items:flex-end;width:100%;padding-right:7px;margin-bottom:15px!important}@media (min-width: 768px){.table-header-actions{margin-top:-3px}}.table-header-actions .export-button{padding:7px 10px;color:#fff;display:flex;align-items:center;border:none;border-radius:5px;margin:5px;font-size:.75rem;cursor:pointer}.table-header-actions .export-button.export-excel{background-color:var(--success-color)}.table-header-actions .export-button.export-excel:hover{background-color:var(--success-color-dark)}.table-header-actions .export-button.export-pdf{background-color:var(--error-color)}.table-header-actions .export-button.export-pdf:hover{background-color:var(--error-color-dark)}.table-header-actions .export-button i{color:#fff}.table-header-actions .export-button span{margin-left:5px}.table-header-actions .add-item-button{margin-left:10px}.actions-menu-button{font-size:23px;cursor:pointer;color:var(--theme-medium)}.expandable{cursor:pointer}\n"], components: [{ type: i1.FiltersComponent, selector: "vector-filters", inputs: ["fields"], outputs: ["onSearch", "formBuilded"] }, { type: i2.ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "rightIcon", "noShadow", "style"], outputs: ["onClick"] }, { type: i3.PanelComponent, selector: "vector-panel" }, { type: i4.TabView, selector: "p-tabView", inputs: ["orientation", "style", "styleClass", "controlClose", "scrollable", "activeIndex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { type: i4.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { type: i5.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollDelay", "virtualRowHeight", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "minBufferPx", "maxBufferPx", "responsiveLayout", "breakpoint", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { type: i5.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { type: i5.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { type: i5.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { type: i5.TableRadioButton, selector: "p-tableRadioButton", inputs: ["disabled", "value", "index", "inputId", "name", "ariaLabel"] }, { type: i6.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: i7.BadgeComponent, selector: "vector-badge", inputs: ["type", "label", "customColor", "customBackgroundColor", "tooltip"] }, { type: i8.ScoreComponent, selector: "vector-score", inputs: ["score"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i9.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i5.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { type: i5.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.RowToggler, selector: "[pRowToggler]", inputs: ["pRowToggler", "pRowTogglerDisabled"] }, { type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "translate": i11.TranslatePipe } });
318
+ DataTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: DataTableComponent, selector: "vector-data-table", inputs: { columns: "columns", data: "data", exportExcel: "exportExcel", exportPDF: "exportPDF", totalRecords: "totalRecords", disabledHeadercheckbox: "disabledHeadercheckbox", filters: "filters", addItemLabel: "addItemLabel", pagination: "pagination", virtualPagination: "virtualPagination", tabs: "tabs", customButtons: "customButtons", addItemButtonPlusSign: "addItemButtonPlusSign", hasActions: "hasActions", hasExpandableIcon: "hasExpandableIcon", addNameColumnExpand: "addNameColumnExpand", expandable: "expandable", expansionTemplate: "expansionTemplate", selectionMode: "selectionMode", selectionType: "selectionType", height: "height" }, outputs: { onLazyLoad: "onLazyLoad", onFilter: "onFilter", onAdd: "onAdd", onExportExcel: "onExportExcel", onExportPDF: "onExportPDF", onSelectedRows: "onSelectedRows", onFilterChanged: "onFilterChanged", onTabSelected: "onTabSelected", onExpandRow: "onExpandRow" }, viewQueries: [{ propertyName: "filtersComponent", first: true, predicate: FiltersComponent, descendants: true, static: true }], ngImport: i0, template: "<div class=\"grid\">\r\n <div class=\"col-12\">\r\n <vector-filters\r\n [fields]=\"filters\"\r\n (onSearch)=\"lazyLoaded({ filter: true, data: $event })\"\r\n (formBuilded)=\"subscribeToFilterChanges()\"\r\n ></vector-filters>\r\n </div>\r\n <div class=\"table-header-actions field\" *ngIf=\"addItemLabel || exportExcel || exportPDF\">\r\n <button *ngIf=\"exportExcel\" (click)=\"onExportExcel.emit()\" class=\"export-button export-excel\">\r\n <i class=\"fas fa-file\"></i><span>Excel</span>\r\n </button>\r\n <button *ngIf=\"exportPDF\" (click)=\"onExportPDF.emit()\" class=\"export-button export-pdf\">\r\n <i class=\"fas fa-file\"></i><span>PDF</span>\r\n </button>\r\n <vector-button\r\n *ngFor=\"let button of customButtons\"\r\n class=\"add-item-button\"\r\n [label]=\"button.label\"\r\n (click)=\"button.clickFunction()\"\r\n [rightIcon]=\"addItemButtonPlusSign ? 'pi pi-plus' : ''\"\r\n ></vector-button>\r\n <vector-button\r\n *ngIf=\"addItemLabel\"\r\n class=\"add-item-button\"\r\n [label]=\"addItemLabel\"\r\n (click)=\"onAdd.emit()\"\r\n [rightIcon]=\"addItemButtonPlusSign ? 'pi pi-plus' : ''\"\r\n ></vector-button>\r\n </div>\r\n <div class=\"col-12\">\r\n <vector-panel class=\"data-table-panel\">\r\n <p-tabView (onChange)=\"onTabChange($event)\" *ngIf=\"tabs?.length\">\r\n <p-tabPanel *ngFor=\"let tab of tabs\">\r\n <ng-template pTemplate=\"header\">\r\n <em *ngIf=\"tab.icon\" [class]=\"tab.icon\">&nbsp;</em>\r\n <span>{{ tab.name }}</span>\r\n </ng-template>\r\n </p-tabPanel>\r\n </p-tabView>\r\n <p-table\r\n currentPageReportTemplate=\"Mostrando {first} at\u00E9 {last} de {totalRecords} registros\"\r\n sortMode=\"single\"\r\n [rows]=\"10\"\r\n [lazy]=\"pagination && !virtualPagination\"\r\n [value]=\"data\"\r\n [paginator]=\"pagination\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [rowsPerPageOptions]=\"[10, 25, 50, 100]\"\r\n [responsive]=\"true\"\r\n [resizableColumns]=\"true\"\r\n [scrollable]=\"true\"\r\n scrollDirection=\"vertical\"\r\n responsiveLayout=\"scroll\"\r\n dataKey=\"id\"\r\n [scrollHeight]=\"height\"\r\n [attr.selectionMode]=\"selectionMode\"\r\n [(selection)]=\"selectedItems\"\r\n (onRowSelect)=\"changeSelectedItems($event)\"\r\n (onHeaderCheckboxToggle)=\"changeSelectedItems($event)\"\r\n (onRowUnselect)=\"changeSelectedItems($event)\"\r\n (onLazyLoad)=\"lazyLoaded({ filter: false, data: $event })\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n >\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"header\">\r\n <th style=\"max-width: 3rem\" *ngIf=\"selectionType === 'checkbox'\">\r\n <p-tableHeaderCheckbox [disabled]=\"disabledHeadercheckbox\"></p-tableHeaderCheckbox>\r\n </th>\r\n <th style=\"max-width: 150px\" class=\"centered text-center\" *ngIf=\"hasExpandableIcon\">\r\n {{ addNameColumnExpand }}\r\n </th>\r\n <th style=\"max-width: 100px\" class=\"centered\" *ngIf=\"hasActions\">{{ 'app.label.actions' | translate }}</th>\r\n <th\r\n *ngFor=\"let col of columns\"\r\n [ngStyle]=\"getColStyle(col)\"\r\n [pSortableColumn]=\"col.notSortable ? '' : col.field\"\r\n >\r\n {{ col.header }} <p-sortIcon *ngIf=\"!col.notSortable\" [field]=\"col.field\"></p-sortIcon>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-item let-expanded=\"expanded\">\r\n <tr\r\n class=\"row\"\r\n [pSelectableRow]=\"rowData\"\r\n [ngClass]=\"{ expandable: expandable }\"\r\n [pRowToggler]=\"expandable ? item : undefined\"\r\n (click)=\"onRowClick(item)\"\r\n >\r\n <ng-container *ngIf=\"selectionType === 'checkbox'\">\r\n <td style=\"max-width: 3rem; padding-left: 10px\" class=\"flex justify-content-center align-items-center\">\r\n <p-tableCheckbox [value]=\"item\" [disabled]=\"item.disabledCheckBox\"></p-tableCheckbox>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngIf=\"selectionType === 'radiobutton'\">\r\n <td style=\"max-width: 3rem; padding-left: 10px\" class=\"flex justify-content-center align-items-center\">\r\n <p-tableRadioButton [value]=\"item\"></p-tableRadioButton>\r\n </td>\r\n </ng-container>\r\n <td *ngIf=\"hasExpandableIcon\" style=\"max-width: 150px\" class=\"centered\">\r\n <p-menu #menu [model]=\"item.actions\" [popup]=\"true\" appendTo=\"body\"></p-menu>\r\n <i\r\n [ngClass]=\"\r\n expanded ? 'actions-menu-button pi pi-chevron-down' : 'actions-menu-button pi pi-chevron-right'\r\n \"\r\n ></i>\r\n </td>\r\n <td *ngIf=\"hasActions\" style=\"max-width: 100px\" class=\"centered\">\r\n <p-menu #menu [model]=\"item.actions\" [popup]=\"true\" appendTo=\"body\"></p-menu>\r\n <i class=\"actions-menu-button fas fa-cog\" (click)=\"menu.toggle($event)\"></i>\r\n </td>\r\n <ng-container *ngFor=\"let col of columns\">\r\n <td\r\n *ngIf=\"isHtmlCell(col)\"\r\n class=\"cell\"\r\n [innerHTML]=\"getCellContent(item, col)\"\r\n (click)=\"col && col.clickFunction && col.clickFunction(item)\"\r\n [ngStyle]=\"getColStyle(col)\"\r\n ></td>\r\n <td\r\n *ngIf=\"(!isHtmlCell(col) && !!col.getStatus) || isScoreCell(col)\"\r\n class=\"cell\"\r\n (click)=\"col && col.clickFunction && col.clickFunction(item)\"\r\n [ngStyle]=\"getColStyle(col)\"\r\n >\r\n <vector-badge\r\n *ngIf=\"isBadgeCell(col)\"\r\n [label]=\"getCellText(item, col)\"\r\n [type]=\"col.getStatus && col.getStatus(item[col.field])\"\r\n [tooltip]=\"getTooltipText(item, col)\"\r\n ></vector-badge>\r\n <vector-score *ngIf=\"isScoreCell(col)\" [score]=\"item[col.field]\"></vector-score>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"row\">\r\n <td class=\"no-results\" [attr.colspan]=\"columns.length + 1\">Nenhum resultado encontrado</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorright\"> </ng-template>\r\n <ng-template let-item pTemplate=\"paginatordropdownitem\"> {{ item.value }} </ng-template>\r\n <ng-template pTemplate=\"rowexpansion\" let-item>\r\n <tr>\r\n <td [attr.colspan]=\"columns.length + (hasActions ? 1 : 0)\">\r\n <ng-container *ngTemplateOutlet=\"expansionTemplate; context: { item }\"> </ng-container>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </vector-panel>\r\n </div>\r\n</div>\r\n", styles: [".no-results{padding:15px;background-color:#fff;width:100%}.centered{display:flex;justify-content:center}.table-header-actions{display:flex;justify-content:flex-end;align-items:flex-end;width:100%;padding-right:7px;margin-bottom:15px!important}@media (min-width: 768px){.table-header-actions{margin-top:-3px}}.table-header-actions .export-button{padding:7px 10px;color:#fff;display:flex;align-items:center;border:none;border-radius:5px;margin:5px;font-size:.75rem;cursor:pointer}.table-header-actions .export-button.export-excel{background-color:var(--success-color)}.table-header-actions .export-button.export-excel:hover{background-color:var(--success-color-dark)}.table-header-actions .export-button.export-pdf{background-color:var(--error-color)}.table-header-actions .export-button.export-pdf:hover{background-color:var(--error-color-dark)}.table-header-actions .export-button i{color:#fff}.table-header-actions .export-button span{margin-left:5px}.table-header-actions .add-item-button{margin-left:10px}.actions-menu-button{font-size:23px;cursor:pointer;color:var(--theme-medium)}.expandable{cursor:pointer}\n"], components: [{ type: i1.FiltersComponent, selector: "vector-filters", inputs: ["fields"], outputs: ["onSearch", "formBuilded"] }, { type: i2.ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "rightIcon", "noShadow", "style"], outputs: ["onClick"] }, { type: i3.PanelComponent, selector: "vector-panel" }, { type: i4.TabView, selector: "p-tabView", inputs: ["orientation", "style", "styleClass", "controlClose", "scrollable", "activeIndex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { type: i4.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { type: i5.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollDelay", "virtualRowHeight", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "minBufferPx", "maxBufferPx", "responsiveLayout", "breakpoint", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { type: i5.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { type: i5.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { type: i5.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { type: i5.TableRadioButton, selector: "p-tableRadioButton", inputs: ["disabled", "value", "index", "inputId", "name", "ariaLabel"] }, { type: i6.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: i7.BadgeComponent, selector: "vector-badge", inputs: ["type", "label", "customColor", "customBackgroundColor", "tooltip"] }, { type: i8.ScoreComponent, selector: "vector-score", inputs: ["score"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i9.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i5.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { type: i5.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.RowToggler, selector: "[pRowToggler]", inputs: ["pRowToggler", "pRowTogglerDisabled"] }, { type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "translate": i11.TranslatePipe } });
317
319
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: DataTableComponent, decorators: [{
318
320
  type: Component,
319
321
  args: [{ selector: 'vector-data-table', template: "<div class=\"grid\">\r\n <div class=\"col-12\">\r\n <vector-filters\r\n [fields]=\"filters\"\r\n (onSearch)=\"lazyLoaded({ filter: true, data: $event })\"\r\n (formBuilded)=\"subscribeToFilterChanges()\"\r\n ></vector-filters>\r\n </div>\r\n <div class=\"table-header-actions field\" *ngIf=\"addItemLabel || exportExcel || exportPDF\">\r\n <button *ngIf=\"exportExcel\" (click)=\"onExportExcel.emit()\" class=\"export-button export-excel\">\r\n <i class=\"fas fa-file\"></i><span>Excel</span>\r\n </button>\r\n <button *ngIf=\"exportPDF\" (click)=\"onExportPDF.emit()\" class=\"export-button export-pdf\">\r\n <i class=\"fas fa-file\"></i><span>PDF</span>\r\n </button>\r\n <vector-button\r\n *ngFor=\"let button of customButtons\"\r\n class=\"add-item-button\"\r\n [label]=\"button.label\"\r\n (click)=\"button.clickFunction()\"\r\n [rightIcon]=\"addItemButtonPlusSign ? 'pi pi-plus' : ''\"\r\n ></vector-button>\r\n <vector-button\r\n *ngIf=\"addItemLabel\"\r\n class=\"add-item-button\"\r\n [label]=\"addItemLabel\"\r\n (click)=\"onAdd.emit()\"\r\n [rightIcon]=\"addItemButtonPlusSign ? 'pi pi-plus' : ''\"\r\n ></vector-button>\r\n </div>\r\n <div class=\"col-12\">\r\n <vector-panel class=\"data-table-panel\">\r\n <p-tabView (onChange)=\"onTabChange($event)\" *ngIf=\"tabs?.length\">\r\n <p-tabPanel *ngFor=\"let tab of tabs\">\r\n <ng-template pTemplate=\"header\">\r\n <em *ngIf=\"tab.icon\" [class]=\"tab.icon\">&nbsp;</em>\r\n <span>{{ tab.name }}</span>\r\n </ng-template>\r\n </p-tabPanel>\r\n </p-tabView>\r\n <p-table\r\n currentPageReportTemplate=\"Mostrando {first} at\u00E9 {last} de {totalRecords} registros\"\r\n sortMode=\"single\"\r\n [rows]=\"10\"\r\n [lazy]=\"pagination && !virtualPagination\"\r\n [value]=\"data\"\r\n [paginator]=\"pagination\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [rowsPerPageOptions]=\"[10, 25, 50, 100]\"\r\n [responsive]=\"true\"\r\n [resizableColumns]=\"true\"\r\n [scrollable]=\"true\"\r\n scrollDirection=\"vertical\"\r\n responsiveLayout=\"scroll\"\r\n dataKey=\"id\"\r\n [scrollHeight]=\"height\"\r\n [attr.selectionMode]=\"selectionMode\"\r\n [(selection)]=\"selectedItems\"\r\n (onRowSelect)=\"changeSelectedItems($event)\"\r\n (onHeaderCheckboxToggle)=\"changeSelectedItems($event)\"\r\n (onRowUnselect)=\"changeSelectedItems($event)\"\r\n (onLazyLoad)=\"lazyLoaded({ filter: false, data: $event })\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n >\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"header\">\r\n <th style=\"max-width: 3rem\" *ngIf=\"selectionType === 'checkbox'\">\r\n <p-tableHeaderCheckbox [disabled]=\"disabledHeadercheckbox\"></p-tableHeaderCheckbox>\r\n </th>\r\n <th style=\"max-width: 150px\" class=\"centered text-center\" *ngIf=\"hasExpandableIcon\">\r\n {{ addNameColumnExpand }}\r\n </th>\r\n <th style=\"max-width: 100px\" class=\"centered\" *ngIf=\"hasActions\">{{ 'app.label.actions' | translate }}</th>\r\n <th\r\n *ngFor=\"let col of columns\"\r\n [ngStyle]=\"getColStyle(col)\"\r\n [pSortableColumn]=\"col.notSortable ? '' : col.field\"\r\n >\r\n {{ col.header }} <p-sortIcon *ngIf=\"!col.notSortable\" [field]=\"col.field\"></p-sortIcon>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-item let-expanded=\"expanded\">\r\n <tr\r\n class=\"row\"\r\n [pSelectableRow]=\"rowData\"\r\n [ngClass]=\"{ expandable: expandable }\"\r\n [pRowToggler]=\"expandable ? item : undefined\"\r\n (click)=\"onRowClick(item)\"\r\n >\r\n <ng-container *ngIf=\"selectionType === 'checkbox'\">\r\n <td style=\"max-width: 3rem; padding-left: 10px\" class=\"flex justify-content-center align-items-center\">\r\n <p-tableCheckbox [value]=\"item\" [disabled]=\"item.disabledCheckBox\"></p-tableCheckbox>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngIf=\"selectionType === 'radiobutton'\">\r\n <td style=\"max-width: 3rem; padding-left: 10px\" class=\"flex justify-content-center align-items-center\">\r\n <p-tableRadioButton [value]=\"item\"></p-tableRadioButton>\r\n </td>\r\n </ng-container>\r\n <td *ngIf=\"hasExpandableIcon\" style=\"max-width: 150px\" class=\"centered\">\r\n <p-menu #menu [model]=\"item.actions\" [popup]=\"true\" appendTo=\"body\"></p-menu>\r\n <i\r\n [ngClass]=\"\r\n expanded ? 'actions-menu-button pi pi-chevron-down' : 'actions-menu-button pi pi-chevron-right'\r\n \"\r\n ></i>\r\n </td>\r\n <td *ngIf=\"hasActions\" style=\"max-width: 100px\" class=\"centered\">\r\n <p-menu #menu [model]=\"item.actions\" [popup]=\"true\" appendTo=\"body\"></p-menu>\r\n <i class=\"actions-menu-button fas fa-cog\" (click)=\"menu.toggle($event)\"></i>\r\n </td>\r\n <ng-container *ngFor=\"let col of columns\">\r\n <td\r\n *ngIf=\"isHtmlCell(col)\"\r\n class=\"cell\"\r\n [innerHTML]=\"getCellContent(item, col)\"\r\n (click)=\"col && col.clickFunction && col.clickFunction(item)\"\r\n [ngStyle]=\"getColStyle(col)\"\r\n ></td>\r\n <td\r\n *ngIf=\"(!isHtmlCell(col) && !!col.getStatus) || isScoreCell(col)\"\r\n class=\"cell\"\r\n (click)=\"col && col.clickFunction && col.clickFunction(item)\"\r\n [ngStyle]=\"getColStyle(col)\"\r\n >\r\n <vector-badge\r\n *ngIf=\"isBadgeCell(col)\"\r\n [label]=\"getCellText(item, col)\"\r\n [type]=\"col.getStatus && col.getStatus(item[col.field])\"\r\n [tooltip]=\"getTooltipText(item, col)\"\r\n ></vector-badge>\r\n <vector-score *ngIf=\"isScoreCell(col)\" [score]=\"item[col.field]\"></vector-score>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"row\">\r\n <td class=\"no-results\" [attr.colspan]=\"columns.length + 1\">Nenhum resultado encontrado</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorright\"> </ng-template>\r\n <ng-template let-item pTemplate=\"paginatordropdownitem\"> {{ item.value }} </ng-template>\r\n <ng-template pTemplate=\"rowexpansion\" let-item>\r\n <tr>\r\n <td [attr.colspan]=\"columns.length + (hasActions ? 1 : 0)\">\r\n <ng-container *ngTemplateOutlet=\"expansionTemplate; context: { item }\"> </ng-container>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </vector-panel>\r\n </div>\r\n</div>\r\n", styles: [".no-results{padding:15px;background-color:#fff;width:100%}.centered{display:flex;justify-content:center}.table-header-actions{display:flex;justify-content:flex-end;align-items:flex-end;width:100%;padding-right:7px;margin-bottom:15px!important}@media (min-width: 768px){.table-header-actions{margin-top:-3px}}.table-header-actions .export-button{padding:7px 10px;color:#fff;display:flex;align-items:center;border:none;border-radius:5px;margin:5px;font-size:.75rem;cursor:pointer}.table-header-actions .export-button.export-excel{background-color:var(--success-color)}.table-header-actions .export-button.export-excel:hover{background-color:var(--success-color-dark)}.table-header-actions .export-button.export-pdf{background-color:var(--error-color)}.table-header-actions .export-button.export-pdf:hover{background-color:var(--error-color-dark)}.table-header-actions .export-button i{color:#fff}.table-header-actions .export-button span{margin-left:5px}.table-header-actions .add-item-button{margin-left:10px}.actions-menu-button{font-size:23px;cursor:pointer;color:var(--theme-medium)}.expandable{cursor:pointer}\n"] }]
@@ -375,8 +377,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
375
377
  type: Output
376
378
  }], onTabSelected: [{
377
379
  type: Output
380
+ }], onExpandRow: [{
381
+ type: Output
378
382
  }], filtersComponent: [{
379
383
  type: ViewChild,
380
384
  args: [FiltersComponent, { static: true }]
381
385
  }] } });
382
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy9kYXRhLXRhYmxlL2RhdGEtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDakMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFnQyxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RSxPQUFPLEVBQXVDLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQWUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU83RSxNQUFNLE9BQU8sa0JBQWtCO0lBeUg3QixZQUFtQixFQUFxQjtRQUFyQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQXZIakMsWUFBTyxHQUFrQixFQUFFLENBQUM7UUFTM0IsVUFBSyxHQUFVLEVBQUUsQ0FBQztRQUVuQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FB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QWlHbEIsZ0JBQWdCLDhEQ3pIN0IsNjNPQTRKQTsyRkRwSWEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLG1CQUFtQjt3R0FNdEIsT0FBTztzQkFEYixLQUFLO2dCQUdLLElBQUk7c0JBRGQsS0FBSztnQkFVQyxXQUFXO3NCQURqQixLQUFLO2dCQUdDLFNBQVM7c0JBRGYsS0FBSztnQkFHQyxZQUFZO3NCQURsQixLQUFLO2dCQUdDLHNCQUFzQjtzQkFENUIsS0FBSztnQkFHQyxPQUFPO3NCQURiLEtBQUs7Z0JBR0MsWUFBWTtzQkFEbEIsS0FBSztnQkFHQyxVQUFVO3NCQURoQixLQUFLO2dCQUdDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFHSyxJQUFJO3NCQURkLEtBQUs7Z0JBTUMsYUFBYTtzQkFEbkIsS0FBSztnQkFHQyxxQkFBcUI7c0JBRDNCLEtBQUs7Z0JBR0MsVUFBVTtzQkFEaEIsS0FBSztnQkFHQyxpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBR0MsbUJBQW1CO3NCQUR6QixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVLLGFBQWE7c0JBRHZCLEtBQUs7Z0JBZUMsYUFBYTtzQkFEbkIsS0FBSztnQkFHSyxNQUFNO3NCQURoQixLQUFLO2dCQW9CQyxVQUFVO3NCQURoQixNQUFNO2dCQUdBLFFBQVE7c0JBRGQsTUFBTTtnQkFHQSxLQUFLO3NCQURYLE1BQU07Z0JBR0EsYUFBYTtzQkFEbkIsTUFBTTtnQkFHQSxXQUFXO3NCQURqQixNQUFNO2dCQUdBLGNBQWM7c0JBRHBCLE1BQU07Z0JBR0EsZUFBZTtzQkFEckIsTUFBTTtnQkFHQSxhQUFhO3NCQURuQixNQUFNO2dCQUlBLGdCQUFnQjtzQkFEdEIsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gJ2x1eG9uJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRmlsdGVyQ2hhbmdlZEV2ZW50LCBMaXN0SXRlbSwgU3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgRGF0YVRhYmxlTGF6eUxvYWRFdmVudCwgVGFibGVDb2x1bW4sIFRhYmxlQ29sdW1uVHlwZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9kYXRhLXRhYmxlLm1vZGVsJztcclxuaW1wb3J0IHsgTWFza1V0aWwgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IEZpbHRlckZpZWxkLCBGaWx0ZXJzQ29tcG9uZW50IH0gZnJvbSAnLi4vZmlsdGVycy9maWx0ZXJzLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3ZlY3Rvci1kYXRhLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YS10YWJsZS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YVRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGNvbHVtbnM6IFRhYmxlQ29sdW1uW10gPSBbXTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgZGF0YShfZGF0YTogYW55W10pIHtcclxuICAgIHRoaXMuX2RhdGEgPSBfZGF0YTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuX2RhdGE/LmZpbHRlcigoaXRlbSkgPT4gaXRlbS5zZWxlY3RlZCkgfHwgW107XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXQgZGF0YSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhO1xyXG4gIH1cclxuICBwcml2YXRlIF9kYXRhOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGV4cG9ydEV4Y2VsID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZXhwb3J0UERGID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdG90YWxSZWNvcmRzID0gMDtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkaXNhYmxlZEhlYWRlcmNoZWNrYm94ID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZmlsdGVyczogRmlsdGVyRmllbGRbXSA9IFtdO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFkZEl0ZW1MYWJlbCA9ICcnO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHBhZ2luYXRpb24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHZpcnR1YWxQYWdpbmF0aW9uID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHRhYnMoX3RhYnM6IExpc3RJdGVtW10pIHtcclxuICAgIHRoaXMuX3RhYnMgPSBfdGFicztcclxuICAgIHRoaXMuX3RhYlNlbGVjdGVkID0gX3RhYnNbMF07XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGN1c3RvbUJ1dHRvbnM6IHsgbGFiZWw6IHN0cmluZzsgY2xpY2tGdW5jdGlvbjogRnVuY3Rpb24gfVtdIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFkZEl0ZW1CdXR0b25QbHVzU2lnbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGhhc0FjdGlvbnM6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGhhc0V4cGFuZGFibGVJY29uID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYWRkTmFtZUNvbHVtbkV4cGFuZCA9ICcnO1xyXG4gIEBJbnB1dCgpIGV4cGFuZGFibGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBleHBhbnNpb25UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBzZWxlY3Rpb25Nb2RlKF9zZWxlY3Rpb25Nb2RlKSB7XHJcbiAgICBzd2l0Y2ggKF9zZWxlY3Rpb25Nb2RlKSB7XHJcbiAgICAgIGNhc2UgJ3NpbmdsZSc6XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uTW9kZSA9ICdzaW5nbGUnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdtdWx0aXBsZSc6XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uTW9kZSA9ICdtdWx0aXBsZSc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uTW9kZSA9IG51bGw7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNlbGVjdGlvblR5cGU6ICdjaGVja2JveCcgfCAncmFkaW9idXR0b24nIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGhlaWdodChfaGVpZ2h0OiBzdHJpbmcpIHtcclxuICAgIHN3aXRjaCAoX2hlaWdodCkge1xyXG4gICAgICBjYXNlICdzbWFsbCc6XHJcbiAgICAgICAgdGhpcy5faGVpZ2h0ID0gJzMwMHB4JztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbWVkaXVtJzpcclxuICAgICAgICB0aGlzLl9oZWlnaHQgPSAnNTAwcHgnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdsYXJnZSc6XHJcbiAgICAgICAgdGhpcy5faGVpZ2h0ID0gJzcwMHB4JztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZnVsbCc6XHJcbiAgICAgICAgdGhpcy5faGVpZ2h0ID0gJ2ZsZXgnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMuX2hlaWdodCA9ICczMDBweCc7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBvbkxhenlMb2FkID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRhVGFibGVMYXp5TG9hZEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBvbkZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBvbkFkZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb25FeHBvcnRFeGNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb25FeHBvcnRQREYgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9uU2VsZWN0ZWRSb3dzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9uRmlsdGVyQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsdGVyQ2hhbmdlZEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBvblRhYlNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxMaXN0SXRlbT4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZChGaWx0ZXJzQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHB1YmxpYyBmaWx0ZXJzQ29tcG9uZW50OiBGaWx0ZXJzQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xyXG5cclxuICBwdWJsaWMgc2VsZWN0ZWRJdGVtczogYW55ID0gW107XHJcblxyXG4gIGdldCB0YWJzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RhYnM7XHJcbiAgfVxyXG4gIGdldCBoZWlnaHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faGVpZ2h0O1xyXG4gIH1cclxuICBnZXQgc2VsZWN0aW9uTW9kZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb25Nb2RlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2VsZWN0aW9uTW9kZTogJ3NpbmdsZScgfCAnbXVsdGlwbGUnIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfaGVpZ2h0OiBzdHJpbmcgPSAnc21hbGwnO1xyXG4gIHByaXZhdGUgX3RhYnM6IExpc3RJdGVtW10gPSBbXTtcclxuICBwcml2YXRlIF9kcmF3ID0gMTtcclxuICBwcml2YXRlIF9maXJzdExhenlMb2FkZWREb25lID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfbGFzdExhenlMb2FkRXZlbnQ6IERhdGFUYWJsZUxhenlMb2FkRXZlbnQgfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBfdGFiU2VsZWN0ZWQ6IExpc3RJdGVtIHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgX2ZpbHRlclN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaGVpZ2h0KSB7XHJcbiAgICAgIHRoaXMuaGVpZ2h0ID0gJ3NtYWxsJztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMucGFnaW5hdGlvbiB8fCB0aGlzLnZpcnR1YWxQYWdpbmF0aW9uKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyc0NvbXBvbmVudD8uc2VhcmNoKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2ZpbHRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29sU3R5bGUoY29sOiBUYWJsZUNvbHVtbikge1xyXG4gICAgcmV0dXJuIHsgJ21pbi13aWR0aCc6IGNvbC53aWR0aCB9O1xyXG4gIH1cclxuXHJcbiAgbGF6eUxvYWRlZChwYXJhbXM6IHsgZmlsdGVyOiBib29sZWFuOyBkYXRhOiBhbnkgfSA9IHsgZmlsdGVyOiBmYWxzZSwgZGF0YTogeyBzdGFydDogMCwgcm93czogMTAgfSB9KSB7XHJcbiAgICBpZiAoIXBhcmFtcy5maWx0ZXIpIHtcclxuICAgICAgY29uc3QgY29sdW1ucyA9IHRoaXMuY29sdW1ucy5tYXAoKGNvbCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBkYXRhOiBjb2wuZmllbGQsXHJcbiAgICAgICAgICBuYW1lOiBgJHtjb2wuZmllbGQuc3Vic3RyaW5nKDAsIDEpLnRvVXBwZXJDYXNlKCl9JHtjb2wuZmllbGQuc3Vic3RyaW5nKDEsIGNvbC5maWVsZC5sZW5ndGgpfWAsXHJcbiAgICAgICAgICBvcmRlcmFibGU6IHRydWUsXHJcbiAgICAgICAgICBzZWFyY2g6IHsgdmFsdWU6ICcnLCByZWdleDogZmFsc2UgfSxcclxuICAgICAgICAgIHNlYXJjaGFibGU6IHRydWUsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmICh0aGlzLmhhc0FjdGlvbnMpIHtcclxuICAgICAgICBjb2x1bW5zLnVuc2hpZnQoe1xyXG4gICAgICAgICAgZGF0YTogJ2FjdGl2ZScsXHJcbiAgICAgICAgICBuYW1lOiAnQWN0aXZlJyxcclxuICAgICAgICAgIG9yZGVyYWJsZTogdHJ1ZSxcclxuICAgICAgICAgIHNlYXJjaDogeyB2YWx1ZTogJycsIHJlZ2V4OiBmYWxzZSB9LFxyXG4gICAgICAgICAgc2VhcmNoYWJsZTogdHJ1ZSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9sYXN0TGF6eUxvYWRFdmVudCA9IHtcclxuICAgICAgICAuLi4odGhpcy5fbGFzdExhenlMb2FkRXZlbnQgfHwgKHt9IGFzIGFueSkpLFxyXG4gICAgICAgIHBhZ2U6IHBhcmFtcy5kYXRhLmZpcnN0IC8gcGFyYW1zLmRhdGEucm93cyArIDEsXHJcbiAgICAgICAgc3RhcnQ6IHBhcmFtcy5kYXRhLmZpcnN0LFxyXG4gICAgICAgIGxlbmd0aDogcGFyYW1zLmRhdGEucm93cyxcclxuICAgICAgICBkcmF3OiB0aGlzLl9kcmF3KyssXHJcbiAgICAgICAgb3JkZXI6IHBhcmFtcy5kYXRhLnNvcnRGaWVsZFxyXG4gICAgICAgICAgPyBbXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgY29sdW1uOlxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbnMuZmluZEluZGV4KChjb2wpID0+IGNvbC5maWVsZCA9PT0gcGFyYW1zLmRhdGEuc29ydEZpZWxkKSArICh0aGlzLmhhc0FjdGlvbnMgPyAxIDogMCksXHJcbiAgICAgICAgICAgICAgICBkaXI6IHBhcmFtcy5kYXRhLnNvcnRPcmRlciA+IDAgPyAnYXNjJyA6ICdkZXNjJyxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgICA6IFt7IGNvbHVtbjogMCwgZGlyOiAnZGVzYycgfV0sXHJcbiAgICAgICAgY29sdW1uczogY29sdW1ucyxcclxuICAgICAgICB0YWI6IHRoaXMuX3RhYlNlbGVjdGVkLFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbGFzdExhenlMb2FkRXZlbnQgPSB7XHJcbiAgICAgICAgLi4udGhpcy5fbGFzdExhenlMb2FkRXZlbnQsXHJcbiAgICAgICAgLi4ucGFyYW1zLmRhdGEsXHJcbiAgICAgICAgc3RhcnQ6IDAsXHJcbiAgICAgIH07XHJcbiAgICAgIGlmICh0aGlzLl90YWJTZWxlY3RlZCkge1xyXG4gICAgICAgIHRoaXMuX2xhc3RMYXp5TG9hZEV2ZW50ID0ge1xyXG4gICAgICAgICAgLi4uKHRoaXMuX2xhc3RMYXp5TG9hZEV2ZW50IHx8ICh7fSBhcyBhbnkpKSxcclxuICAgICAgICAgIC4uLnsgU3RhdHVzOiB0aGlzLl90YWJTZWxlY3RlZC5jb2RlIH0sXHJcbiAgICAgICAgICB0YWI6IHRoaXMuX3RhYlNlbGVjdGVkLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5fZmlyc3RMYXp5TG9hZGVkRG9uZSkge1xyXG4gICAgICB0aGlzLm9uTGF6eUxvYWQuZW1pdCh0aGlzLl9sYXN0TGF6eUxvYWRFdmVudCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9maXJzdExhenlMb2FkZWREb25lID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGdldENlbGxDb250ZW50KGl0ZW06IGFueSwgY29sOiBUYWJsZUNvbHVtbikge1xyXG4gICAgY29uc3QgY2VsbFRleHQgPSB0aGlzLmdldENlbGxUZXh0KGl0ZW0sIGNvbCk7XHJcbiAgICBsZXQgY29udGVudCA9IGA8c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+JHtjb2wuaGVhZGVyfTwvc3Bhbj48c3BhbiBjbGFzcz1cInctMTAwXCI+YDtcclxuICAgIGlmIChcclxuICAgICAgIWNvbC50eXBlIHx8XHJcbiAgICAgIFtUYWJsZUNvbHVtblR5cGUuRU5VTSwgVGFibGVDb2x1bW5UeXBlLlRFWFQsIFRhYmxlQ29sdW1uVHlwZS5EQVRFVElNRSwgVGFibGVDb2x1bW5UeXBlLkRBVEVdLmluY2x1ZGVzKGNvbC50eXBlKVxyXG4gICAgKSB7XHJcbiAgICAgIGNvbnRlbnQgKz0gY2VsbFRleHQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3dpdGNoIChjb2wudHlwZSkge1xyXG4gICAgICBjYXNlIFRhYmxlQ29sdW1uVHlwZS5DVVNUT01fU1RZTEU6XHJcbiAgICAgICAgY29udGVudCArPSBgPHNwYW4gY2xhc3M9XCIke2NvbC50ZXh0RmllbGRDbGFzcyA/IGl0ZW1bY29sLnRleHRGaWVsZENsYXNzXSA6ICcnfVwiPiR7Y2VsbFRleHR9PC9zcGFuPmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgVGFibGVDb2x1bW5UeXBlLkJPT0xFQU46XHJcbiAgICAgICAgY29udGVudCArPSBgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyZWRcIj48aSBjbGFzcz1cIiBzdGF0dXMtdGFibGUtZmllbGQgZmFzIGZhLSR7XHJcbiAgICAgICAgICBjZWxsVGV4dCA/ICdjaGVjayBib29sZWFuLXZhbHVlLXBvc2l0aXZlJyA6ICd0aW1lcyBib29sZWFuLXZhbHVlLW5lZ2F0aXZlJ1xyXG4gICAgICAgIH1cIj48L2k+PC9kaXY+YDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBUYWJsZUNvbHVtblR5cGUuU1RBVFVTX0JBREdFOlxyXG4gICAgICAgIGNvbnRlbnQgKz0gYDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlcmVkXCI+PGkgY2xhc3M9XCJmYXMgZmEtY2lyY2xlIHN0YXR1cy10YWJsZS1maWVsZCAke3RoaXMuZ2V0U3RhdHVzQ29sb3IoXHJcbiAgICAgICAgICBjZWxsVGV4dFxyXG4gICAgICAgICl9XCI+PC9pPjwvZGl2PmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgVGFibGVDb2x1bW5UeXBlLkFDVElWRV9CT09MRUFOX0JBREdFOlxyXG4gICAgICAgIGNvbnRlbnQgKz0gYDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlcmVkXCI+PGkgY2xhc3M9XCJmYXMgZmEtY2lyY2xlIHN0YXR1cy10YWJsZS1maWVsZCAke3RoaXMuZ2V0QWN0aXZlU3RhdHVzQ29sb3IoXHJcbiAgICAgICAgICBjZWxsVGV4dFxyXG4gICAgICAgICl9XCI+PC9pPjwvZGl2PmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgVGFibGVDb2x1bW5UeXBlLkJVVFRPTjpcclxuICAgICAgICBjb250ZW50ICs9IGA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJlZFwiPjxpIGNsYXNzPVwiZmFzICR7XHJcbiAgICAgICAgICBjb2wuaWNvbiB8fCAnZmEtY2lyY2xlJ1xyXG4gICAgICAgIH0gc3RhdHVzLXRhYmxlLWZpZWxkIHRhYmxlLWJ1dHRvblwiPjwvaT48L2Rpdj5gO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFRhYmxlQ29sdW1uVHlwZS5NQVNLOlxyXG4gICAgICAgIGNvbnRlbnQgKz0gTWFza1V0aWwuZG9NYXNrU3RyaW5nKGNlbGxUZXh0LCBjb2wubWFzayk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgVGFibGVDb2x1bW5UeXBlLkNVUlJFTkNZOlxyXG4gICAgICAgIGNvbnRlbnQgKz0gTnVtYmVyKGNlbGxUZXh0KS50b0xvY2FsZVN0cmluZygncHQtQlInLCB7XHJcbiAgICAgICAgICBjdXJyZW5jeTogY29sLmN1cnJlbmN5VHlwZSB8fCAnQlJMJyxcclxuICAgICAgICAgIGN1cnJlbmN5RGlzcGxheTogJ25hcnJvd1N5bWJvbCcsXHJcbiAgICAgICAgICBzdHlsZTogJ2N1cnJlbmN5JyxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjb250ZW50ICs9IGA8L3NwYW4+YDtcclxuICAgIHJldHVybiBjb250ZW50O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldENlbGxUZXh0KGl0ZW06IGFueSwgY29sOiBUYWJsZUNvbHVtbikge1xyXG4gICAgaWYgKGNvbC5nZXRFbnVtVHJhbnNsYXRlZCkge1xyXG4gICAgICByZXR1cm4gY29sLmdldEVudW1UcmFuc2xhdGVkKGl0ZW1bY29sLmZpZWxkXSk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sdW1uVHlwZS5EQVRFVElNRSAmJiBpdGVtW2NvbC5maWVsZF0pIHtcclxuICAgICAgY29uc3QgZGF0ZVRpbWUgPVxyXG4gICAgICAgIGl0ZW1bY29sLmZpZWxkXSBpbnN0YW5jZW9mIERhdGUgPyBEYXRlVGltZS5mcm9tSlNEYXRlKGl0ZW1bY29sLmZpZWxkXSkgOiBEYXRlVGltZS5mcm9tSVNPKGl0ZW1bY29sLmZpZWxkXSk7XHJcbiAgICAgIHJldHVybiBkYXRlVGltZS50b1VUQygpLnRvRm9ybWF0KCdkZC9NTS95eXl5IEhIOm1tJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sdW1uVHlwZS5EQVRFICYmIGl0ZW1bY29sLmZpZWxkXSkge1xyXG4gICAgICBjb25zdCBkYXRlVGltZSA9XHJcbiAgICAgICAgaXRlbVtjb2wuZmllbGRdIGluc3RhbmNlb2YgRGF0ZSA/IERhdGVUaW1lLmZyb21KU0RhdGUoaXRlbVtjb2wuZmllbGRdKSA6IERhdGVUaW1lLmZyb21JU08oaXRlbVtjb2wuZmllbGRdKTtcclxuICAgICAgcmV0dXJuIGRhdGVUaW1lLnRvVVRDKCkudG9Gb3JtYXQoJ2RkL01NL3l5eXknKTtcclxuICAgIH1cclxuICAgIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2x1bW5UeXBlLlNUQUNLX0JBREdFKSB7XHJcbiAgICAgIGlmICghaXRlbVtjb2wuZmllbGRdLmxlbmd0aCB8fCBpdGVtW2NvbC5maWVsZF0ubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1bY29sLmZpZWxkXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gYCske2l0ZW1bY29sLmZpZWxkXS5sZW5ndGh9YDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGNvbC50eXBlID09PSBUYWJsZUNvbHVtblR5cGUuU1RBVFVTX0JBREdFKSB7XHJcbiAgICAgIHJldHVybiBpdGVtW2NvbC5maWVsZF0gPT0gMCA/IDAgOiBpdGVtW2NvbC5maWVsZF07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGl0ZW1bY29sLmZpZWxkIHx8ICcnXSB8fCAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRUb29sdGlwVGV4dChpdGVtOiBhbnksIGNvbDogVGFibGVDb2x1bW4pIHtcclxuICAgIGlmIChcclxuICAgICAgIWNvbC50eXBlIHx8XHJcbiAgICAgICFbVGFibGVDb2x1bW5UeXBlLlNUQUNLX0JBREdFXS5pbmNsdWRlcyhjb2wudHlwZSkgfHxcclxuICAgICAgIUFycmF5LmlzQXJyYXkoaXRlbVtjb2wuZmllbGRdKSB8fFxyXG4gICAgICBpdGVtW2NvbC5maWVsZF0ubGVuZ3RoID09PSAxXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGl0ZW1bY29sLmZpZWxkXSkpIHtcclxuICAgICAgcmV0dXJuIGl0ZW1bY29sLmZpZWxkXTtcclxuICAgIH1cclxuICAgIHJldHVybiBpdGVtW2NvbC5maWVsZF0uam9pbignIC0gJyk7XHJcbiAgfVxyXG5cclxuICBvblRhYkNoYW5nZSgkZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5fdGFiU2VsZWN0ZWQgPSB0aGlzLnRhYnNbJGV2ZW50LmluZGV4XTtcclxuICAgIHRoaXMubGF6eUxvYWRlZCh7IGZpbHRlcjogdHJ1ZSwgZGF0YToge30gfSk7XHJcbiAgICB0aGlzLm9uVGFiU2VsZWN0ZWQuZW1pdCh0aGlzLl90YWJTZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBzdWJzY3JpYmVUb0ZpbHRlckNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLl9maWx0ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuX2ZpbHRlclN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICAgIE9iamVjdC5rZXlzKHRoaXMuZmlsdGVyc0NvbXBvbmVudD8uZm9ybUdyb3VwLmNvbnRyb2xzIHx8IHt9KS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgdGhpcy5fZmlsdGVyU3Vic2NyaXB0aW9uLmFkZChcclxuICAgICAgICB0aGlzLmZpbHRlcnNDb21wb25lbnQ/LmZvcm1Hcm91cFxyXG4gICAgICAgICAgLmdldChrZXkpXHJcbiAgICAgICAgICA/LnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgzMDApKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5vbkZpbHRlckNoYW5nZWQuZW1pdCh7IGZpZWxkOiBrZXksIHZhbHVlIH0pO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5vbkZpbHRlckNoYW5nZWQuZW1pdCh7IGZpZWxkOiBrZXksIHZhbHVlOiB0aGlzLmZpbHRlcnNDb21wb25lbnQ/LmZvcm1Hcm91cC5nZXQoa2V5KT8udmFsdWUgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uUm93Q2xpY2soaXRlbTogYW55KSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxpc3RIYXNBY3Rpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YS5zb21lKChpdGVtKSA9PiBpdGVtLmFjdGlvbnM/Lmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlU2VsZWN0ZWRJdGVtcyh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLm9uU2VsZWN0ZWRSb3dzLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW1zKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc0h0bWxDZWxsKGNvbDogVGFibGVDb2x1bW4pIHtcclxuICAgIHJldHVybiAhY29sLnR5cGUgfHwgIXRoaXMuaXNCYWRnZUNlbGwoY29sKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc0JhZGdlQ2VsbChjb2w6IFRhYmxlQ29sdW1uKSB7XHJcbiAgICByZXR1cm4gY29sLnR5cGUgJiYgW1RhYmxlQ29sdW1uVHlwZS5URVhUX0JBREdFLCBUYWJsZUNvbHVtblR5cGUuU1RBQ0tfQkFER0VdLmluY2x1ZGVzKGNvbC50eXBlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc1Njb3JlQ2VsbChjb2w6IFRhYmxlQ29sdW1uKSB7XHJcbiAgICByZXR1cm4gY29sLnR5cGUgPT09IFRhYmxlQ29sdW1uVHlwZS5TQ09SRTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZShzZWxlY3Rpb246IGFueSkge1xyXG4gICAgZm9yIChsZXQgaSA9IHNlbGVjdGlvbi5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xyXG4gICAgICBsZXQgZGF0YSA9IHNlbGVjdGlvbltpXTtcclxuICAgICAgaWYgKGRhdGEuZGlzYWJsZWRDaGVja0JveCkge1xyXG4gICAgICAgIHNlbGVjdGlvbi5zcGxpY2UoaSwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGlvbjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U3RhdHVzQ29sb3Ioc3RhdHVzOiBTdGF0dXMpIHtcclxuICAgIHN3aXRjaCAoc3RhdHVzKSB7XHJcbiAgICAgIGNhc2UgU3RhdHVzLlBFTkRJTkc6XHJcbiAgICAgICAgcmV0dXJuICd3YXJuaW5nJztcclxuICAgICAgY2FzZSBTdGF0dXMuQVBQUk9WRUQ6XHJcbiAgICAgICAgcmV0dXJuICdzdWNjZXNzJztcclxuICAgICAgY2FzZSBTdGF0dXMuUkVKRUNURUQ6XHJcbiAgICAgICAgcmV0dXJuICdlcnJvcic7XHJcbiAgICAgIGNhc2UgU3RhdHVzLklORk86XHJcbiAgICAgICAgcmV0dXJuICdpbmZvJztcclxuICAgIH1cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QWN0aXZlU3RhdHVzQ29sb3IoYWN0aXZlOiBib29sZWFuKSB7XHJcbiAgICByZXR1cm4gYWN0aXZlID8gJ3N1Y2Nlc3MnIDogJ2Vycm9yJztcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImdyaWRcIj5cclxuICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICA8dmVjdG9yLWZpbHRlcnNcclxuICAgICAgW2ZpZWxkc109XCJmaWx0ZXJzXCJcclxuICAgICAgKG9uU2VhcmNoKT1cImxhenlMb2FkZWQoeyBmaWx0ZXI6IHRydWUsIGRhdGE6ICRldmVudCB9KVwiXHJcbiAgICAgIChmb3JtQnVpbGRlZCk9XCJzdWJzY3JpYmVUb0ZpbHRlckNoYW5nZXMoKVwiXHJcbiAgICA+PC92ZWN0b3ItZmlsdGVycz5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwidGFibGUtaGVhZGVyLWFjdGlvbnMgZmllbGRcIiAqbmdJZj1cImFkZEl0ZW1MYWJlbCB8fCBleHBvcnRFeGNlbCB8fCBleHBvcnRQREZcIj5cclxuICAgIDxidXR0b24gKm5nSWY9XCJleHBvcnRFeGNlbFwiIChjbGljayk9XCJvbkV4cG9ydEV4Y2VsLmVtaXQoKVwiIGNsYXNzPVwiZXhwb3J0LWJ1dHRvbiBleHBvcnQtZXhjZWxcIj5cclxuICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtZmlsZVwiPjwvaT48c3Bhbj5FeGNlbDwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiAqbmdJZj1cImV4cG9ydFBERlwiIChjbGljayk9XCJvbkV4cG9ydFBERi5lbWl0KClcIiBjbGFzcz1cImV4cG9ydC1idXR0b24gZXhwb3J0LXBkZlwiPlxyXG4gICAgICA8aSBjbGFzcz1cImZhcyBmYS1maWxlXCI+PC9pPjxzcGFuPlBERjwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPHZlY3Rvci1idXR0b25cclxuICAgICAgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBjdXN0b21CdXR0b25zXCJcclxuICAgICAgY2xhc3M9XCJhZGQtaXRlbS1idXR0b25cIlxyXG4gICAgICBbbGFiZWxdPVwiYnV0dG9uLmxhYmVsXCJcclxuICAgICAgKGNsaWNrKT1cImJ1dHRvbi5jbGlja0Z1bmN0aW9uKClcIlxyXG4gICAgICBbcmlnaHRJY29uXT1cImFkZEl0ZW1CdXR0b25QbHVzU2lnbiA/ICdwaSBwaS1wbHVzJyA6ICcnXCJcclxuICAgID48L3ZlY3Rvci1idXR0b24+XHJcbiAgICA8dmVjdG9yLWJ1dHRvblxyXG4gICAgICAqbmdJZj1cImFkZEl0ZW1MYWJlbFwiXHJcbiAgICAgIGNsYXNzPVwiYWRkLWl0ZW0tYnV0dG9uXCJcclxuICAgICAgW2xhYmVsXT1cImFkZEl0ZW1MYWJlbFwiXHJcbiAgICAgIChjbGljayk9XCJvbkFkZC5lbWl0KClcIlxyXG4gICAgICBbcmlnaHRJY29uXT1cImFkZEl0ZW1CdXR0b25QbHVzU2lnbiA/ICdwaSBwaS1wbHVzJyA6ICcnXCJcclxuICAgID48L3ZlY3Rvci1idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgPHZlY3Rvci1wYW5lbCBjbGFzcz1cImRhdGEtdGFibGUtcGFuZWxcIj5cclxuICAgICAgPHAtdGFiVmlldyAob25DaGFuZ2UpPVwib25UYWJDaGFuZ2UoJGV2ZW50KVwiICpuZ0lmPVwidGFicz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgPHAtdGFiUGFuZWwgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxlbSAqbmdJZj1cInRhYi5pY29uXCIgW2NsYXNzXT1cInRhYi5pY29uXCI+Jm5ic3A7PC9lbT5cclxuICAgICAgICAgICAgPHNwYW4+e3sgdGFiLm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvcC10YWJQYW5lbD5cclxuICAgICAgPC9wLXRhYlZpZXc+XHJcbiAgICAgIDxwLXRhYmxlXHJcbiAgICAgICAgY3VycmVudFBhZ2VSZXBvcnRUZW1wbGF0ZT1cIk1vc3RyYW5kbyB7Zmlyc3R9IGF0w6kge2xhc3R9IGRlIHt0b3RhbFJlY29yZHN9IHJlZ2lzdHJvc1wiXHJcbiAgICAgICAgc29ydE1vZGU9XCJzaW5nbGVcIlxyXG4gICAgICAgIFtyb3dzXT1cIjEwXCJcclxuICAgICAgICBbbGF6eV09XCJwYWdpbmF0aW9uICYmICF2aXJ0dWFsUGFnaW5hdGlvblwiXHJcbiAgICAgICAgW3ZhbHVlXT1cImRhdGFcIlxyXG4gICAgICAgIFtwYWdpbmF0b3JdPVwicGFnaW5hdGlvblwiXHJcbiAgICAgICAgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIlxyXG4gICAgICAgIFtzaG93Q3VycmVudFBhZ2VSZXBvcnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3Jvd3NQZXJQYWdlT3B0aW9uc109XCJbMTAsIDI1LCA1MCwgMTAwXVwiXHJcbiAgICAgICAgW3Jlc3BvbnNpdmVdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3Jlc2l6YWJsZUNvbHVtbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3Njcm9sbGFibGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgc2Nyb2xsRGlyZWN0aW9uPVwidmVydGljYWxcIlxyXG4gICAgICAgIHJlc3BvbnNpdmVMYXlvdXQ9XCJzY3JvbGxcIlxyXG4gICAgICAgIGRhdGFLZXk9XCJpZFwiXHJcbiAgICAgICAgW3Njcm9sbEhlaWdodF09XCJoZWlnaHRcIlxyXG4gICAgICAgIFthdHRyLnNlbGVjdGlvbk1vZGVdPVwic2VsZWN0aW9uTW9kZVwiXHJcbiAgICAgICAgWyhzZWxlY3Rpb24pXT1cInNlbGVjdGVkSXRlbXNcIlxyXG4gICAgICAgIChvblJvd1NlbGVjdCk9XCJjaGFuZ2VTZWxlY3RlZEl0ZW1zKCRldmVudClcIlxyXG4gICAgICAgIChvbkhlYWRlckNoZWNrYm94VG9nZ2xlKT1cImNoYW5nZVNlbGVjdGVkSXRlbXMoJGV2ZW50KVwiXHJcbiAgICAgICAgKG9uUm93VW5zZWxlY3QpPVwiY2hhbmdlU2VsZWN0ZWRJdGVtcygkZXZlbnQpXCJcclxuICAgICAgICAob25MYXp5TG9hZCk9XCJsYXp5TG9hZGVkKHsgZmlsdGVyOiBmYWxzZSwgZGF0YTogJGV2ZW50IH0pXCJcclxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG4gICAgICAgICAgPHRyIGNsYXNzPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDx0aCBzdHlsZT1cIm1heC13aWR0aDogM3JlbVwiICpuZ0lmPVwic2VsZWN0aW9uVHlwZSA9PT0gJ2NoZWNrYm94J1wiPlxyXG4gICAgICAgICAgICAgIDxwLXRhYmxlSGVhZGVyQ2hlY2tib3ggW2Rpc2FibGVkXT1cImRpc2FibGVkSGVhZGVyY2hlY2tib3hcIj48L3AtdGFibGVIZWFkZXJDaGVja2JveD5cclxuICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgPHRoIHN0eWxlPVwibWF4LXdpZHRoOiAxNTBweFwiIGNsYXNzPVwiY2VudGVyZWQgdGV4dC1jZW50ZXJcIiAqbmdJZj1cImhhc0V4cGFuZGFibGVJY29uXCI+XHJcbiAgICAgICAgICAgICAge3sgYWRkTmFtZUNvbHVtbkV4cGFuZCB9fVxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICA8dGggc3R5bGU9XCJtYXgtd2lkdGg6IDEwMHB4XCIgY2xhc3M9XCJjZW50ZXJlZFwiICpuZ0lmPVwiaGFzQWN0aW9uc1wiPnt7ICdhcHAubGFiZWwuYWN0aW9ucycgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICA8dGhcclxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIlxyXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImdldENvbFN0eWxlKGNvbClcIlxyXG4gICAgICAgICAgICAgIFtwU29ydGFibGVDb2x1bW5dPVwiY29sLm5vdFNvcnRhYmxlID8gJycgOiBjb2wuZmllbGRcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3sgY29sLmhlYWRlciB9fSA8cC1zb3J0SWNvbiAqbmdJZj1cIiFjb2wubm90U29ydGFibGVcIiBbZmllbGRdPVwiY29sLmZpZWxkXCI+PC9wLXNvcnRJY29uPlxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LXJvd0RhdGEgbGV0LWl0ZW0gbGV0LWV4cGFuZGVkPVwiZXhwYW5kZWRcIj5cclxuICAgICAgICAgIDx0clxyXG4gICAgICAgICAgICBjbGFzcz1cInJvd1wiXHJcbiAgICAgICAgICAgIFtwU2VsZWN0YWJsZVJvd109XCJyb3dEYXRhXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBleHBhbmRhYmxlOiBleHBhbmRhYmxlIH1cIlxyXG4gICAgICAgICAgICBbcFJvd1RvZ2dsZXJdPVwiZXhwYW5kYWJsZSA/IGl0ZW0gOiB1bmRlZmluZWRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25Sb3dDbGljayhpdGVtKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3Rpb25UeXBlID09PSAnY2hlY2tib3gnXCI+XHJcbiAgICAgICAgICAgICAgPHRkIHN0eWxlPVwibWF4LXdpZHRoOiAzcmVtOyBwYWRkaW5nLWxlZnQ6IDEwcHhcIiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxwLXRhYmxlQ2hlY2tib3ggW3ZhbHVlXT1cIml0ZW1cIiBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZENoZWNrQm94XCI+PC9wLXRhYmxlQ2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3Rpb25UeXBlID09PSAncmFkaW9idXR0b24nXCI+XHJcbiAgICAgICAgICAgICAgPHRkIHN0eWxlPVwibWF4LXdpZHRoOiAzcmVtOyBwYWRkaW5nLWxlZnQ6IDEwcHhcIiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxwLXRhYmxlUmFkaW9CdXR0b24gW3ZhbHVlXT1cIml0ZW1cIj48L3AtdGFibGVSYWRpb0J1dHRvbj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPHRkICpuZ0lmPVwiaGFzRXhwYW5kYWJsZUljb25cIiBzdHlsZT1cIm1heC13aWR0aDogMTUwcHhcIiBjbGFzcz1cImNlbnRlcmVkXCI+XHJcbiAgICAgICAgICAgICAgPHAtbWVudSAjbWVudSBbbW9kZWxdPVwiaXRlbS5hY3Rpb25zXCIgW3BvcHVwXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIj48L3AtbWVudT5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICAgICAgICAgIGV4cGFuZGVkID8gJ2FjdGlvbnMtbWVudS1idXR0b24gcGkgcGktY2hldnJvbi1kb3duJyA6ICdhY3Rpb25zLW1lbnUtYnV0dG9uIHBpIHBpLWNoZXZyb24tcmlnaHQnXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cImhhc0FjdGlvbnNcIiBzdHlsZT1cIm1heC13aWR0aDogMTAwcHhcIiBjbGFzcz1cImNlbnRlcmVkXCI+XHJcbiAgICAgICAgICAgICAgPHAtbWVudSAjbWVudSBbbW9kZWxdPVwiaXRlbS5hY3Rpb25zXCIgW3BvcHVwXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIj48L3AtbWVudT5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImFjdGlvbnMtbWVudS1idXR0b24gZmFzIGZhLWNvZ1wiIChjbGljayk9XCJtZW51LnRvZ2dsZSgkZXZlbnQpXCI+PC9pPlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiPlxyXG4gICAgICAgICAgICAgIDx0ZFxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc0h0bWxDZWxsKGNvbClcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjZWxsXCJcclxuICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiZ2V0Q2VsbENvbnRlbnQoaXRlbSwgY29sKVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29sICYmIGNvbC5jbGlja0Z1bmN0aW9uICYmIGNvbC5jbGlja0Z1bmN0aW9uKGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImdldENvbFN0eWxlKGNvbClcIlxyXG4gICAgICAgICAgICAgID48L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZFxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIoIWlzSHRtbENlbGwoY29sKSAmJiAhIWNvbC5nZXRTdGF0dXMpIHx8IGlzU2NvcmVDZWxsKGNvbClcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjZWxsXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjb2wgJiYgY29sLmNsaWNrRnVuY3Rpb24gJiYgY29sLmNsaWNrRnVuY3Rpb24oaXRlbSlcIlxyXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwiZ2V0Q29sU3R5bGUoY29sKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPHZlY3Rvci1iYWRnZVxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImlzQmFkZ2VDZWxsKGNvbClcIlxyXG4gICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiZ2V0Q2VsbFRleHQoaXRlbSwgY29sKVwiXHJcbiAgICAgICAgICAgICAgICAgIFt0eXBlXT1cImNvbC5nZXRTdGF0dXMgJiYgY29sLmdldFN0YXR1cyhpdGVtW2NvbC5maWVsZF0pXCJcclxuICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBdPVwiZ2V0VG9vbHRpcFRleHQoaXRlbSwgY29sKVwiXHJcbiAgICAgICAgICAgICAgICA+PC92ZWN0b3ItYmFkZ2U+XHJcbiAgICAgICAgICAgICAgICA8dmVjdG9yLXNjb3JlICpuZ0lmPVwiaXNTY29yZUNlbGwoY29sKVwiIFtzY29yZV09XCJpdGVtW2NvbC5maWVsZF1cIj48L3ZlY3Rvci1zY29yZT5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZW1wdHltZXNzYWdlXCI+XHJcbiAgICAgICAgICA8dHIgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPHRkIGNsYXNzPVwibm8tcmVzdWx0c1wiIFthdHRyLmNvbHNwYW5dPVwiY29sdW1ucy5sZW5ndGggKyAxXCI+TmVuaHVtIHJlc3VsdGFkbyBlbmNvbnRyYWRvPC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwicGFnaW5hdG9ycmlnaHRcIj4gPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWl0ZW0gcFRlbXBsYXRlPVwicGFnaW5hdG9yZHJvcGRvd25pdGVtXCI+IHt7IGl0ZW0udmFsdWUgfX0gPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwicm93ZXhwYW5zaW9uXCIgbGV0LWl0ZW0+XHJcbiAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cImNvbHVtbnMubGVuZ3RoICsgKGhhc0FjdGlvbnMgPyAxIDogMClcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXhwYW5zaW9uVGVtcGxhdGU7IGNvbnRleHQ6IHsgaXRlbSB9XCI+IDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L3AtdGFibGU+XHJcbiAgICA8L3ZlY3Rvci1wYW5lbD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
386
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy9kYXRhLXRhYmxlL2RhdGEtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDakMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFnQyxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RSxPQUFPLEVBQXVDLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQWUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU83RSxNQUFNLE9BQU8sa0JBQWtCO0lBMkg3QixZQUFtQixFQUFxQjtRQUFyQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQXpIakMsWUFBTyxHQUFrQixFQUFFLENBQUM7UUFTM0IsVUFBSyxHQUFVLEVBQUUsQ0FBQztRQUVuQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FB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RSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbic7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEZpbHRlckNoYW5nZWRFdmVudCwgTGlzdEl0ZW0sIFN0YXR1cyB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IERhdGFUYWJsZUxhenlMb2FkRXZlbnQsIFRhYmxlQ29sdW1uLCBUYWJsZUNvbHVtblR5cGUgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZGF0YS10YWJsZS5tb2RlbCc7XHJcbmltcG9ydCB7IE1hc2tVdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xyXG5pbXBvcnQgeyBGaWx0ZXJGaWVsZCwgRmlsdGVyc0NvbXBvbmVudCB9IGZyb20gJy4uL2ZpbHRlcnMvZmlsdGVycy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd2ZWN0b3ItZGF0YS10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RhdGEtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjb2x1bW5zOiBUYWJsZUNvbHVtbltdID0gW107XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGRhdGEoX2RhdGE6IGFueVtdKSB7XHJcbiAgICB0aGlzLl9kYXRhID0gX2RhdGE7XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLl9kYXRhPy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uc2VsZWN0ZWQpIHx8IFtdO1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0IGRhdGEoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGF0YTogYW55W10gPSBbXTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBleHBvcnRFeGNlbCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGV4cG9ydFBERiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRvdGFsUmVjb3JkcyA9IDA7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZGlzYWJsZWRIZWFkZXJjaGVja2JveCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGZpbHRlcnM6IEZpbHRlckZpZWxkW10gPSBbXTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhZGRJdGVtTGFiZWwgPSAnJztcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwYWdpbmF0aW9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB2aXJ0dWFsUGFnaW5hdGlvbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCB0YWJzKF90YWJzOiBMaXN0SXRlbVtdKSB7XHJcbiAgICB0aGlzLl90YWJzID0gX3RhYnM7XHJcbiAgICB0aGlzLl90YWJTZWxlY3RlZCA9IF90YWJzWzBdO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjdXN0b21CdXR0b25zOiB7IGxhYmVsOiBzdHJpbmc7IGNsaWNrRnVuY3Rpb246IEZ1bmN0aW9uIH1bXSB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhZGRJdGVtQnV0dG9uUGx1c1NpZ24gPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBoYXNBY3Rpb25zOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBoYXNFeHBhbmRhYmxlSWNvbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFkZE5hbWVDb2x1bW5FeHBhbmQgPSAnJztcclxuICBASW5wdXQoKSBleHBhbmRhYmxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZXhwYW5zaW9uVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgc2VsZWN0aW9uTW9kZShfc2VsZWN0aW9uTW9kZSkge1xyXG4gICAgc3dpdGNoIChfc2VsZWN0aW9uTW9kZSkge1xyXG4gICAgICBjYXNlICdzaW5nbGUnOlxyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGUgPSAnc2luZ2xlJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbXVsdGlwbGUnOlxyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGUgPSAnbXVsdGlwbGUnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGUgPSBudWxsO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWxlY3Rpb25UeXBlOiAnY2hlY2tib3gnIHwgJ3JhZGlvYnV0dG9uJyB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBoZWlnaHQoX2hlaWdodDogc3RyaW5nKSB7XHJcbiAgICBzd2l0Y2ggKF9oZWlnaHQpIHtcclxuICAgICAgY2FzZSAnc21hbGwnOlxyXG4gICAgICAgIHRoaXMuX2hlaWdodCA9ICczMDBweCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ21lZGl1bSc6XHJcbiAgICAgICAgdGhpcy5faGVpZ2h0ID0gJzUwMHB4JztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbGFyZ2UnOlxyXG4gICAgICAgIHRoaXMuX2hlaWdodCA9ICc3MDBweCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2Z1bGwnOlxyXG4gICAgICAgIHRoaXMuX2hlaWdodCA9ICdmbGV4JztcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLl9oZWlnaHQgPSAnMzAwcHgnO1xyXG4gICAgfVxyXG4gIH1cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb25MYXp5TG9hZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0YVRhYmxlTGF6eUxvYWRFdmVudD4oKTtcclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb25GaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb25BZGQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9uRXhwb3J0RXhjZWwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9uRXhwb3J0UERGID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBvblNlbGVjdGVkUm93cyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBvbkZpbHRlckNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbHRlckNoYW5nZWRFdmVudD4oKTtcclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb25UYWJTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TGlzdEl0ZW0+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9uRXhwYW5kUm93OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQFZpZXdDaGlsZChGaWx0ZXJzQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHB1YmxpYyBmaWx0ZXJzQ29tcG9uZW50OiBGaWx0ZXJzQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xyXG5cclxuICBwdWJsaWMgc2VsZWN0ZWRJdGVtczogYW55ID0gW107XHJcblxyXG4gIGdldCB0YWJzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RhYnM7XHJcbiAgfVxyXG4gIGdldCBoZWlnaHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faGVpZ2h0O1xyXG4gIH1cclxuICBnZXQgc2VsZWN0aW9uTW9kZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb25Nb2RlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2VsZWN0aW9uTW9kZTogJ3NpbmdsZScgfCAnbXVsdGlwbGUnIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfaGVpZ2h0OiBzdHJpbmcgPSAnc21hbGwnO1xyXG4gIHByaXZhdGUgX3RhYnM6IExpc3RJdGVtW10gPSBbXTtcclxuICBwcml2YXRlIF9kcmF3ID0gMTtcclxuICBwcml2YXRlIF9maXJzdExhenlMb2FkZWREb25lID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfbGFzdExhenlMb2FkRXZlbnQ6IERhdGFUYWJsZUxhenlMb2FkRXZlbnQgfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBfdGFiU2VsZWN0ZWQ6IExpc3RJdGVtIHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgX2ZpbHRlclN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaGVpZ2h0KSB7XHJcbiAgICAgIHRoaXMuaGVpZ2h0ID0gJ3NtYWxsJztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMucGFnaW5hdGlvbiB8fCB0aGlzLnZpcnR1YWxQYWdpbmF0aW9uKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyc0NvbXBvbmVudD8uc2VhcmNoKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2ZpbHRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29sU3R5bGUoY29sOiBUYWJsZUNvbHVtbikge1xyXG4gICAgcmV0dXJuIHsgJ21pbi13aWR0aCc6IGNvbC53aWR0aCB9O1xyXG4gIH1cclxuXHJcbiAgbGF6eUxvYWRlZChwYXJhbXM6IHsgZmlsdGVyOiBib29sZWFuOyBkYXRhOiBhbnkgfSA9IHsgZmlsdGVyOiBmYWxzZSwgZGF0YTogeyBzdGFydDogMCwgcm93czogMTAgfSB9KSB7XHJcbiAgICBpZiAoIXBhcmFtcy5maWx0ZXIpIHtcclxuICAgICAgY29uc3QgY29sdW1ucyA9IHRoaXMuY29sdW1ucy5tYXAoKGNvbCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBkYXRhOiBjb2wuZmllbGQsXHJcbiAgICAgICAgICBuYW1lOiBgJHtjb2wuZmllbGQuc3Vic3RyaW5nKDAsIDEpLnRvVXBwZXJDYXNlKCl9JHtjb2wuZmllbGQuc3Vic3RyaW5nKDEsIGNvbC5maWVsZC5sZW5ndGgpfWAsXHJcbiAgICAgICAgICBvcmRlcmFibGU6IHRydWUsXHJcbiAgICAgICAgICBzZWFyY2g6IHsgdmFsdWU6ICcnLCByZWdleDogZmFsc2UgfSxcclxuICAgICAgICAgIHNlYXJjaGFibGU6IHRydWUsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmICh0aGlzLmhhc0FjdGlvbnMpIHtcclxuICAgICAgICBjb2x1bW5zLnVuc2hpZnQoe1xyXG4gICAgICAgICAgZGF0YTogJ2FjdGl2ZScsXHJcbiAgICAgICAgICBuYW1lOiAnQWN0aXZlJyxcclxuICAgICAgICAgIG9yZGVyYWJsZTogdHJ1ZSxcclxuICAgICAgICAgIHNlYXJjaDogeyB2YWx1ZTogJycsIHJlZ2V4OiBmYWxzZSB9LFxyXG4gICAgICAgICAgc2VhcmNoYWJsZTogdHJ1ZSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9sYXN0TGF6eUxvYWRFdmVudCA9IHtcclxuICAgICAgICAuLi4odGhpcy5fbGFzdExhenlMb2FkRXZlbnQgfHwgKHt9IGFzIGFueSkpLFxyXG4gICAgICAgIHBhZ2U6IHBhcmFtcy5kYXRhLmZpcnN0IC8gcGFyYW1zLmRhdGEucm93cyArIDEsXHJcbiAgICAgICAgc3RhcnQ6IHBhcmFtcy5kYXRhLmZpcnN0LFxyXG4gICAgICAgIGxlbmd0aDogcGFyYW1zLmRhdGEucm93cyxcclxuICAgICAgICBkcmF3OiB0aGlzLl9kcmF3KyssXHJcbiAgICAgICAgb3JkZXI6IHBhcmFtcy5kYXRhLnNvcnRGaWVsZFxyXG4gICAgICAgICAgPyBbXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgY29sdW1uOlxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbnMuZmluZEluZGV4KChjb2wpID0+IGNvbC5maWVsZCA9PT0gcGFyYW1zLmRhdGEuc29ydEZpZWxkKSArICh0aGlzLmhhc0FjdGlvbnMgPyAxIDogMCksXHJcbiAgICAgICAgICAgICAgICBkaXI6IHBhcmFtcy5kYXRhLnNvcnRPcmRlciA+IDAgPyAnYXNjJyA6ICdkZXNjJyxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgICA6IFt7IGNvbHVtbjogMCwgZGlyOiAnZGVzYycgfV0sXHJcbiAgICAgICAgY29sdW1uczogY29sdW1ucyxcclxuICAgICAgICB0YWI6IHRoaXMuX3RhYlNlbGVjdGVkLFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbGFzdExhenlMb2FkRXZlbnQgPSB7XHJcbiAgICAgICAgLi4udGhpcy5fbGFzdExhenlMb2FkRXZlbnQsXHJcbiAgICAgICAgLi4ucGFyYW1zLmRhdGEsXHJcbiAgICAgICAgc3RhcnQ6IDAsXHJcbiAgICAgIH07XHJcbiAgICAgIGlmICh0aGlzLl90YWJTZWxlY3RlZCkge1xyXG4gICAgICAgIHRoaXMuX2xhc3RMYXp5TG9hZEV2ZW50ID0ge1xyXG4gICAgICAgICAgLi4uKHRoaXMuX2xhc3RMYXp5TG9hZEV2ZW50IHx8ICh7fSBhcyBhbnkpKSxcclxuICAgICAgICAgIC4uLnsgU3RhdHVzOiB0aGlzLl90YWJTZWxlY3RlZC5jb2RlIH0sXHJcbiAgICAgICAgICB0YWI6IHRoaXMuX3RhYlNlbGVjdGVkLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5fZmlyc3RMYXp5TG9hZGVkRG9uZSkge1xyXG4gICAgICB0aGlzLm9uTGF6eUxvYWQuZW1pdCh0aGlzLl9sYXN0TGF6eUxvYWRFdmVudCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9maXJzdExhenlMb2FkZWREb25lID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGdldENlbGxDb250ZW50KGl0ZW06IGFueSwgY29sOiBUYWJsZUNvbHVtbikge1xyXG4gICAgY29uc3QgY2VsbFRleHQgPSB0aGlzLmdldENlbGxUZXh0KGl0ZW0sIGNvbCk7XHJcbiAgICBsZXQgY29udGVudCA9IGA8c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+JHtjb2wuaGVhZGVyfTwvc3Bhbj48c3BhbiBjbGFzcz1cInctMTAwXCI+YDtcclxuICAgIGlmIChcclxuICAgICAgIWNvbC50eXBlIHx8XHJcbiAgICAgIFtUYWJsZUNvbHVtblR5cGUuRU5VTSwgVGFibGVDb2x1bW5UeXBlLlRFWFQsIFRhYmxlQ29sdW1uVHlwZS5EQVRFVElNRSwgVGFibGVDb2x1bW5UeXBlLkRBVEVdLmluY2x1ZGVzKGNvbC50eXBlKVxyXG4gICAgKSB7XHJcbiAgICAgIGNvbnRlbnQgKz0gY2VsbFRleHQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3dpdGNoIChjb2wudHlwZSkge1xyXG4gICAgICBjYXNlIFRhYmxlQ29sdW1uVHlwZS5DVVNUT01fU1RZTEU6XHJcbiAgICAgICAgY29udGVudCArPSBgPHNwYW4gY2xhc3M9XCIke2NvbC50ZXh0RmllbGRDbGFzcyA/IGl0ZW1bY29sLnRleHRGaWVsZENsYXNzXSA6ICcnfVwiPiR7Y2VsbFRleHR9PC9zcGFuPmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgVGFibGVDb2x1bW5UeXBlLkJPT0xFQU46XHJcbiAgICAgICAgY29udGVudCArPSBgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyZWRcIj48aSBjbGFzcz1cIiBzdGF0dXMtdGFibGUtZmllbGQgZmFzIGZhLSR7XHJcbiAgICAgICAgICBjZWxsVGV4dCA/ICdjaGVjayBib29sZWFuLXZhbHVlLXBvc2l0aXZlJyA6ICd0aW1lcyBib29sZWFuLXZhbHVlLW5lZ2F0aXZlJ1xyXG4gICAgICAgIH1cIj48L2k+PC9kaXY+YDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBUYWJsZUNvbHVtblR5cGUuU1RBVFVTX0JBREdFOlxyXG4gICAgICAgIGNvbnRlbnQgKz0gYDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlcmVkXCI+PGkgY2xhc3M9XCJmYXMgZmEtY2lyY2xlIHN0YXR1cy10YWJsZS1maWVsZCAke3RoaXMuZ2V0U3RhdHVzQ29sb3IoXHJcbiAgICAgICAgICBjZWxsVGV4dFxyXG4gICAgICAgICl9XCI+PC9pPjwvZGl2PmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgVGFibGVDb2x1bW5UeXBlLkFDVElWRV9CT09MRUFOX0JBREdFOlxyXG4gICAgICAgIGNvbnRlbnQgKz0gYDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlcmVkXCI+PGkgY2xhc3M9XCJmYXMgZmEtY2lyY2xlIHN0YXR1cy10YWJsZS1maWVsZCAke3RoaXMuZ2V0QWN0aXZlU3RhdHVzQ29sb3IoXHJcbiAgICAgICAgICBjZWxsVGV4dFxyXG4gICAgICAgICl9XCI+PC9pPjwvZGl2PmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgVGFibGVDb2x1bW5UeXBlLkJVVFRPTjpcclxuICAgICAgICBjb250ZW50ICs9IGA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJlZFwiPjxpIGNsYXNzPVwiZmFzICR7XHJcbiAgICAgICAgICBjb2wuaWNvbiB8fCAnZmEtY2lyY2xlJ1xyXG4gICAgICAgIH0gc3RhdHVzLXRhYmxlLWZpZWxkIHRhYmxlLWJ1dHRvblwiPjwvaT48L2Rpdj5gO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFRhYmxlQ29sdW1uVHlwZS5NQVNLOlxyXG4gICAgICAgIGNvbnRlbnQgKz0gTWFza1V0aWwuZG9NYXNrU3RyaW5nKGNlbGxUZXh0LCBjb2wubWFzayk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgVGFibGVDb2x1bW5UeXBlLkNVUlJFTkNZOlxyXG4gICAgICAgIGNvbnRlbnQgKz0gTnVtYmVyKGNlbGxUZXh0KS50b0xvY2FsZVN0cmluZygncHQtQlInLCB7XHJcbiAgICAgICAgICBjdXJyZW5jeTogY29sLmN1cnJlbmN5VHlwZSB8fCAnQlJMJyxcclxuICAgICAgICAgIGN1cnJlbmN5RGlzcGxheTogJ25hcnJvd1N5bWJvbCcsXHJcbiAgICAgICAgICBzdHlsZTogJ2N1cnJlbmN5JyxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjb250ZW50ICs9IGA8L3NwYW4+YDtcclxuICAgIHJldHVybiBjb250ZW50O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldENlbGxUZXh0KGl0ZW06IGFueSwgY29sOiBUYWJsZUNvbHVtbikge1xyXG4gICAgaWYgKGNvbC5nZXRFbnVtVHJhbnNsYXRlZCkge1xyXG4gICAgICByZXR1cm4gY29sLmdldEVudW1UcmFuc2xhdGVkKGl0ZW1bY29sLmZpZWxkXSk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sdW1uVHlwZS5EQVRFVElNRSAmJiBpdGVtW2NvbC5maWVsZF0pIHtcclxuICAgICAgY29uc3QgZGF0ZVRpbWUgPVxyXG4gICAgICAgIGl0ZW1bY29sLmZpZWxkXSBpbnN0YW5jZW9mIERhdGUgPyBEYXRlVGltZS5mcm9tSlNEYXRlKGl0ZW1bY29sLmZpZWxkXSkgOiBEYXRlVGltZS5mcm9tSVNPKGl0ZW1bY29sLmZpZWxkXSk7XHJcbiAgICAgIHJldHVybiBkYXRlVGltZS50b1VUQygpLnRvRm9ybWF0KCdkZC9NTS95eXl5IEhIOm1tJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sdW1uVHlwZS5EQVRFICYmIGl0ZW1bY29sLmZpZWxkXSkge1xyXG4gICAgICBjb25zdCBkYXRlVGltZSA9XHJcbiAgICAgICAgaXRlbVtjb2wuZmllbGRdIGluc3RhbmNlb2YgRGF0ZSA/IERhdGVUaW1lLmZyb21KU0RhdGUoaXRlbVtjb2wuZmllbGRdKSA6IERhdGVUaW1lLmZyb21JU08oaXRlbVtjb2wuZmllbGRdKTtcclxuICAgICAgcmV0dXJuIGRhdGVUaW1lLnRvVVRDKCkudG9Gb3JtYXQoJ2RkL01NL3l5eXknKTtcclxuICAgIH1cclxuICAgIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2x1bW5UeXBlLlNUQUNLX0JBREdFKSB7XHJcbiAgICAgIGlmICghaXRlbVtjb2wuZmllbGRdLmxlbmd0aCB8fCBpdGVtW2NvbC5maWVsZF0ubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1bY29sLmZpZWxkXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gYCske2l0ZW1bY29sLmZpZWxkXS5sZW5ndGh9YDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGNvbC50eXBlID09PSBUYWJsZUNvbHVtblR5cGUuU1RBVFVTX0JBREdFKSB7XHJcbiAgICAgIHJldHVybiBpdGVtW2NvbC5maWVsZF0gPT0gMCA/IDAgOiBpdGVtW2NvbC5maWVsZF07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGl0ZW1bY29sLmZpZWxkIHx8ICcnXSB8fCAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRUb29sdGlwVGV4dChpdGVtOiBhbnksIGNvbDogVGFibGVDb2x1bW4pIHtcclxuICAgIGlmIChcclxuICAgICAgIWNvbC50eXBlIHx8XHJcbiAgICAgICFbVGFibGVDb2x1bW5UeXBlLlNUQUNLX0JBREdFXS5pbmNsdWRlcyhjb2wudHlwZSkgfHxcclxuICAgICAgIUFycmF5LmlzQXJyYXkoaXRlbVtjb2wuZmllbGRdKSB8fFxyXG4gICAgICBpdGVtW2NvbC5maWVsZF0ubGVuZ3RoID09PSAxXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGl0ZW1bY29sLmZpZWxkXSkpIHtcclxuICAgICAgcmV0dXJuIGl0ZW1bY29sLmZpZWxkXTtcclxuICAgIH1cclxuICAgIHJldHVybiBpdGVtW2NvbC5maWVsZF0uam9pbignIC0gJyk7XHJcbiAgfVxyXG5cclxuICBvblRhYkNoYW5nZSgkZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5fdGFiU2VsZWN0ZWQgPSB0aGlzLnRhYnNbJGV2ZW50LmluZGV4XTtcclxuICAgIHRoaXMubGF6eUxvYWRlZCh7IGZpbHRlcjogdHJ1ZSwgZGF0YToge30gfSk7XHJcbiAgICB0aGlzLm9uVGFiU2VsZWN0ZWQuZW1pdCh0aGlzLl90YWJTZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBzdWJzY3JpYmVUb0ZpbHRlckNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLl9maWx0ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuX2ZpbHRlclN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICAgIE9iamVjdC5rZXlzKHRoaXMuZmlsdGVyc0NvbXBvbmVudD8uZm9ybUdyb3VwLmNvbnRyb2xzIHx8IHt9KS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgdGhpcy5fZmlsdGVyU3Vic2NyaXB0aW9uLmFkZChcclxuICAgICAgICB0aGlzLmZpbHRlcnNDb21wb25lbnQ/LmZvcm1Hcm91cFxyXG4gICAgICAgICAgLmdldChrZXkpXHJcbiAgICAgICAgICA/LnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgzMDApKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5vbkZpbHRlckNoYW5nZWQuZW1pdCh7IGZpZWxkOiBrZXksIHZhbHVlIH0pO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5vbkZpbHRlckNoYW5nZWQuZW1pdCh7IGZpZWxkOiBrZXksIHZhbHVlOiB0aGlzLmZpbHRlcnNDb21wb25lbnQ/LmZvcm1Hcm91cC5nZXQoa2V5KT8udmFsdWUgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uUm93Q2xpY2soaXRlbTogYW55KSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMub25FeHBhbmRSb3cuZW1pdChpdGVtKTtcclxuICB9XHJcblxyXG4gIGdldCBsaXN0SGFzQWN0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGEuc29tZSgoaXRlbSkgPT4gaXRlbS5hY3Rpb25zPy5sZW5ndGgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZVNlbGVjdGVkSXRlbXModmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5vblNlbGVjdGVkUm93cy5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNIdG1sQ2VsbChjb2w6IFRhYmxlQ29sdW1uKSB7XHJcbiAgICByZXR1cm4gIWNvbC50eXBlIHx8ICF0aGlzLmlzQmFkZ2VDZWxsKGNvbCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNCYWRnZUNlbGwoY29sOiBUYWJsZUNvbHVtbikge1xyXG4gICAgcmV0dXJuIGNvbC50eXBlICYmIFtUYWJsZUNvbHVtblR5cGUuVEVYVF9CQURHRSwgVGFibGVDb2x1bW5UeXBlLlNUQUNLX0JBREdFXS5pbmNsdWRlcyhjb2wudHlwZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNTY29yZUNlbGwoY29sOiBUYWJsZUNvbHVtbikge1xyXG4gICAgcmV0dXJuIGNvbC50eXBlID09PSBUYWJsZUNvbHVtblR5cGUuU0NPUkU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TZWxlY3Rpb25DaGFuZ2Uoc2VsZWN0aW9uOiBhbnkpIHtcclxuICAgIGZvciAobGV0IGkgPSBzZWxlY3Rpb24ubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgbGV0IGRhdGEgPSBzZWxlY3Rpb25baV07XHJcbiAgICAgIGlmIChkYXRhLmRpc2FibGVkQ2hlY2tCb3gpIHtcclxuICAgICAgICBzZWxlY3Rpb24uc3BsaWNlKGksIDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBzZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFN0YXR1c0NvbG9yKHN0YXR1czogU3RhdHVzKSB7XHJcbiAgICBzd2l0Y2ggKHN0YXR1cykge1xyXG4gICAgICBjYXNlIFN0YXR1cy5QRU5ESU5HOlxyXG4gICAgICAgIHJldHVybiAnd2FybmluZyc7XHJcbiAgICAgIGNhc2UgU3RhdHVzLkFQUFJPVkVEOlxyXG4gICAgICAgIHJldHVybiAnc3VjY2Vzcyc7XHJcbiAgICAgIGNhc2UgU3RhdHVzLlJFSkVDVEVEOlxyXG4gICAgICAgIHJldHVybiAnZXJyb3InO1xyXG4gICAgICBjYXNlIFN0YXR1cy5JTkZPOlxyXG4gICAgICAgIHJldHVybiAnaW5mbyc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEFjdGl2ZVN0YXR1c0NvbG9yKGFjdGl2ZTogYm9vbGVhbikge1xyXG4gICAgcmV0dXJuIGFjdGl2ZSA/ICdzdWNjZXNzJyA6ICdlcnJvcic7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJncmlkXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgPHZlY3Rvci1maWx0ZXJzXHJcbiAgICAgIFtmaWVsZHNdPVwiZmlsdGVyc1wiXHJcbiAgICAgIChvblNlYXJjaCk9XCJsYXp5TG9hZGVkKHsgZmlsdGVyOiB0cnVlLCBkYXRhOiAkZXZlbnQgfSlcIlxyXG4gICAgICAoZm9ybUJ1aWxkZWQpPVwic3Vic2NyaWJlVG9GaWx0ZXJDaGFuZ2VzKClcIlxyXG4gICAgPjwvdmVjdG9yLWZpbHRlcnM+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlci1hY3Rpb25zIGZpZWxkXCIgKm5nSWY9XCJhZGRJdGVtTGFiZWwgfHwgZXhwb3J0RXhjZWwgfHwgZXhwb3J0UERGXCI+XHJcbiAgICA8YnV0dG9uICpuZ0lmPVwiZXhwb3J0RXhjZWxcIiAoY2xpY2spPVwib25FeHBvcnRFeGNlbC5lbWl0KClcIiBjbGFzcz1cImV4cG9ydC1idXR0b24gZXhwb3J0LWV4Y2VsXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWZpbGVcIj48L2k+PHNwYW4+RXhjZWw8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gKm5nSWY9XCJleHBvcnRQREZcIiAoY2xpY2spPVwib25FeHBvcnRQREYuZW1pdCgpXCIgY2xhc3M9XCJleHBvcnQtYnV0dG9uIGV4cG9ydC1wZGZcIj5cclxuICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtZmlsZVwiPjwvaT48c3Bhbj5QREY8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDx2ZWN0b3ItYnV0dG9uXHJcbiAgICAgICpuZ0Zvcj1cImxldCBidXR0b24gb2YgY3VzdG9tQnV0dG9uc1wiXHJcbiAgICAgIGNsYXNzPVwiYWRkLWl0ZW0tYnV0dG9uXCJcclxuICAgICAgW2xhYmVsXT1cImJ1dHRvbi5sYWJlbFwiXHJcbiAgICAgIChjbGljayk9XCJidXR0b24uY2xpY2tGdW5jdGlvbigpXCJcclxuICAgICAgW3JpZ2h0SWNvbl09XCJhZGRJdGVtQnV0dG9uUGx1c1NpZ24gPyAncGkgcGktcGx1cycgOiAnJ1wiXHJcbiAgICA+PC92ZWN0b3ItYnV0dG9uPlxyXG4gICAgPHZlY3Rvci1idXR0b25cclxuICAgICAgKm5nSWY9XCJhZGRJdGVtTGFiZWxcIlxyXG4gICAgICBjbGFzcz1cImFkZC1pdGVtLWJ1dHRvblwiXHJcbiAgICAgIFtsYWJlbF09XCJhZGRJdGVtTGFiZWxcIlxyXG4gICAgICAoY2xpY2spPVwib25BZGQuZW1pdCgpXCJcclxuICAgICAgW3JpZ2h0SWNvbl09XCJhZGRJdGVtQnV0dG9uUGx1c1NpZ24gPyAncGkgcGktcGx1cycgOiAnJ1wiXHJcbiAgICA+PC92ZWN0b3ItYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgIDx2ZWN0b3ItcGFuZWwgY2xhc3M9XCJkYXRhLXRhYmxlLXBhbmVsXCI+XHJcbiAgICAgIDxwLXRhYlZpZXcgKG9uQ2hhbmdlKT1cIm9uVGFiQ2hhbmdlKCRldmVudClcIiAqbmdJZj1cInRhYnM/Lmxlbmd0aFwiPlxyXG4gICAgICAgIDxwLXRhYlBhbmVsICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFic1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG4gICAgICAgICAgICA8ZW0gKm5nSWY9XCJ0YWIuaWNvblwiIFtjbGFzc109XCJ0YWIuaWNvblwiPiZuYnNwOzwvZW0+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IHRhYi5uYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3AtdGFiUGFuZWw+XHJcbiAgICAgIDwvcC10YWJWaWV3PlxyXG4gICAgICA8cC10YWJsZVxyXG4gICAgICAgIGN1cnJlbnRQYWdlUmVwb3J0VGVtcGxhdGU9XCJNb3N0cmFuZG8ge2ZpcnN0fSBhdMOpIHtsYXN0fSBkZSB7dG90YWxSZWNvcmRzfSByZWdpc3Ryb3NcIlxyXG4gICAgICAgIHNvcnRNb2RlPVwic2luZ2xlXCJcclxuICAgICAgICBbcm93c109XCIxMFwiXHJcbiAgICAgICAgW2xhenldPVwicGFnaW5hdGlvbiAmJiAhdmlydHVhbFBhZ2luYXRpb25cIlxyXG4gICAgICAgIFt2YWx1ZV09XCJkYXRhXCJcclxuICAgICAgICBbcGFnaW5hdG9yXT1cInBhZ2luYXRpb25cIlxyXG4gICAgICAgIFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcclxuICAgICAgICBbc2hvd0N1cnJlbnRQYWdlUmVwb3J0XT1cInRydWVcIlxyXG4gICAgICAgIFtyb3dzUGVyUGFnZU9wdGlvbnNdPVwiWzEwLCAyNSwgNTAsIDEwMF1cIlxyXG4gICAgICAgIFtyZXNwb25zaXZlXT1cInRydWVcIlxyXG4gICAgICAgIFtyZXNpemFibGVDb2x1bW5zXT1cInRydWVcIlxyXG4gICAgICAgIFtzY3JvbGxhYmxlXT1cInRydWVcIlxyXG4gICAgICAgIHNjcm9sbERpcmVjdGlvbj1cInZlcnRpY2FsXCJcclxuICAgICAgICByZXNwb25zaXZlTGF5b3V0PVwic2Nyb2xsXCJcclxuICAgICAgICBkYXRhS2V5PVwiaWRcIlxyXG4gICAgICAgIFtzY3JvbGxIZWlnaHRdPVwiaGVpZ2h0XCJcclxuICAgICAgICBbYXR0ci5zZWxlY3Rpb25Nb2RlXT1cInNlbGVjdGlvbk1vZGVcIlxyXG4gICAgICAgIFsoc2VsZWN0aW9uKV09XCJzZWxlY3RlZEl0ZW1zXCJcclxuICAgICAgICAob25Sb3dTZWxlY3QpPVwiY2hhbmdlU2VsZWN0ZWRJdGVtcygkZXZlbnQpXCJcclxuICAgICAgICAob25IZWFkZXJDaGVja2JveFRvZ2dsZSk9XCJjaGFuZ2VTZWxlY3RlZEl0ZW1zKCRldmVudClcIlxyXG4gICAgICAgIChvblJvd1Vuc2VsZWN0KT1cImNoYW5nZVNlbGVjdGVkSXRlbXMoJGV2ZW50KVwiXHJcbiAgICAgICAgKG9uTGF6eUxvYWQpPVwibGF6eUxvYWRlZCh7IGZpbHRlcjogZmFsc2UsIGRhdGE6ICRldmVudCB9KVwiXHJcbiAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cclxuICAgICAgICAgIDx0ciBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgICAgICAgICA8dGggc3R5bGU9XCJtYXgtd2lkdGg6IDNyZW1cIiAqbmdJZj1cInNlbGVjdGlvblR5cGUgPT09ICdjaGVja2JveCdcIj5cclxuICAgICAgICAgICAgICA8cC10YWJsZUhlYWRlckNoZWNrYm94IFtkaXNhYmxlZF09XCJkaXNhYmxlZEhlYWRlcmNoZWNrYm94XCI+PC9wLXRhYmxlSGVhZGVyQ2hlY2tib3g+XHJcbiAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgIDx0aCBzdHlsZT1cIm1heC13aWR0aDogMTUwcHhcIiBjbGFzcz1cImNlbnRlcmVkIHRleHQtY2VudGVyXCIgKm5nSWY9XCJoYXNFeHBhbmRhYmxlSWNvblwiPlxyXG4gICAgICAgICAgICAgIHt7IGFkZE5hbWVDb2x1bW5FeHBhbmQgfX1cclxuICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgPHRoIHN0eWxlPVwibWF4LXdpZHRoOiAxMDBweFwiIGNsYXNzPVwiY2VudGVyZWRcIiAqbmdJZj1cImhhc0FjdGlvbnNcIj57eyAnYXBwLmxhYmVsLmFjdGlvbnMnIHwgdHJhbnNsYXRlIH19PC90aD5cclxuICAgICAgICAgICAgPHRoXHJcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCJcclxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJnZXRDb2xTdHlsZShjb2wpXCJcclxuICAgICAgICAgICAgICBbcFNvcnRhYmxlQ29sdW1uXT1cImNvbC5ub3RTb3J0YWJsZSA/ICcnIDogY29sLmZpZWxkXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHt7IGNvbC5oZWFkZXIgfX0gPHAtc29ydEljb24gKm5nSWY9XCIhY29sLm5vdFNvcnRhYmxlXCIgW2ZpZWxkXT1cImNvbC5maWVsZFwiPjwvcC1zb3J0SWNvbj5cclxuICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1yb3dEYXRhIGxldC1pdGVtIGxldC1leHBhbmRlZD1cImV4cGFuZGVkXCI+XHJcbiAgICAgICAgICA8dHJcclxuICAgICAgICAgICAgY2xhc3M9XCJyb3dcIlxyXG4gICAgICAgICAgICBbcFNlbGVjdGFibGVSb3ddPVwicm93RGF0YVwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgZXhwYW5kYWJsZTogZXhwYW5kYWJsZSB9XCJcclxuICAgICAgICAgICAgW3BSb3dUb2dnbGVyXT1cImV4cGFuZGFibGUgPyBpdGVtIDogdW5kZWZpbmVkXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2xpY2soaXRlbSlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0aW9uVHlwZSA9PT0gJ2NoZWNrYm94J1wiPlxyXG4gICAgICAgICAgICAgIDx0ZCBzdHlsZT1cIm1heC13aWR0aDogM3JlbTsgcGFkZGluZy1sZWZ0OiAxMHB4XCIgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8cC10YWJsZUNoZWNrYm94IFt2YWx1ZV09XCJpdGVtXCIgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRDaGVja0JveFwiPjwvcC10YWJsZUNoZWNrYm94PlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0aW9uVHlwZSA9PT0gJ3JhZGlvYnV0dG9uJ1wiPlxyXG4gICAgICAgICAgICAgIDx0ZCBzdHlsZT1cIm1heC13aWR0aDogM3JlbTsgcGFkZGluZy1sZWZ0OiAxMHB4XCIgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8cC10YWJsZVJhZGlvQnV0dG9uIFt2YWx1ZV09XCJpdGVtXCI+PC9wLXRhYmxlUmFkaW9CdXR0b24+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cImhhc0V4cGFuZGFibGVJY29uXCIgc3R5bGU9XCJtYXgtd2lkdGg6IDE1MHB4XCIgY2xhc3M9XCJjZW50ZXJlZFwiPlxyXG4gICAgICAgICAgICAgIDxwLW1lbnUgI21lbnUgW21vZGVsXT1cIml0ZW0uYWN0aW9uc1wiIFtwb3B1cF09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCI+PC9wLW1lbnU+XHJcbiAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgICAgICAgICBleHBhbmRlZCA/ICdhY3Rpb25zLW1lbnUtYnV0dG9uIHBpIHBpLWNoZXZyb24tZG93bicgOiAnYWN0aW9ucy1tZW51LWJ1dHRvbiBwaSBwaS1jaGV2cm9uLXJpZ2h0J1xyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJoYXNBY3Rpb25zXCIgc3R5bGU9XCJtYXgtd2lkdGg6IDEwMHB4XCIgY2xhc3M9XCJjZW50ZXJlZFwiPlxyXG4gICAgICAgICAgICAgIDxwLW1lbnUgI21lbnUgW21vZGVsXT1cIml0ZW0uYWN0aW9uc1wiIFtwb3B1cF09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCI+PC9wLW1lbnU+XHJcbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJhY3Rpb25zLW1lbnUtYnV0dG9uIGZhcyBmYS1jb2dcIiAoY2xpY2spPVwibWVudS50b2dnbGUoJGV2ZW50KVwiPjwvaT5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIj5cclxuICAgICAgICAgICAgICA8dGRcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNIdG1sQ2VsbChjb2wpXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2VsbFwiXHJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImdldENlbGxDb250ZW50KGl0ZW0sIGNvbClcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNvbCAmJiBjb2wuY2xpY2tGdW5jdGlvbiAmJiBjb2wuY2xpY2tGdW5jdGlvbihpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJnZXRDb2xTdHlsZShjb2wpXCJcclxuICAgICAgICAgICAgICA+PC90ZD5cclxuICAgICAgICAgICAgICA8dGRcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiKCFpc0h0bWxDZWxsKGNvbCkgJiYgISFjb2wuZ2V0U3RhdHVzKSB8fCBpc1Njb3JlQ2VsbChjb2wpXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2VsbFwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29sICYmIGNvbC5jbGlja0Z1bmN0aW9uICYmIGNvbC5jbGlja0Z1bmN0aW9uKGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImdldENvbFN0eWxlKGNvbClcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDx2ZWN0b3ItYmFkZ2VcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc0JhZGdlQ2VsbChjb2wpXCJcclxuICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImdldENlbGxUZXh0KGl0ZW0sIGNvbClcIlxyXG4gICAgICAgICAgICAgICAgICBbdHlwZV09XCJjb2wuZ2V0U3RhdHVzICYmIGNvbC5nZXRTdGF0dXMoaXRlbVtjb2wuZmllbGRdKVwiXHJcbiAgICAgICAgICAgICAgICAgIFt0b29sdGlwXT1cImdldFRvb2x0aXBUZXh0KGl0ZW0sIGNvbClcIlxyXG4gICAgICAgICAgICAgICAgPjwvdmVjdG9yLWJhZGdlPlxyXG4gICAgICAgICAgICAgICAgPHZlY3Rvci1zY29yZSAqbmdJZj1cImlzU2NvcmVDZWxsKGNvbClcIiBbc2NvcmVdPVwiaXRlbVtjb2wuZmllbGRdXCI+PC92ZWN0b3Itc2NvcmU+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxyXG4gICAgICAgICAgPHRyIGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm5vLXJlc3VsdHNcIiBbYXR0ci5jb2xzcGFuXT1cImNvbHVtbnMubGVuZ3RoICsgMVwiPk5lbmh1bSByZXN1bHRhZG8gZW5jb250cmFkbzwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cInBhZ2luYXRvcnJpZ2h0XCI+IDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1pdGVtIHBUZW1wbGF0ZT1cInBhZ2luYXRvcmRyb3Bkb3duaXRlbVwiPiB7eyBpdGVtLnZhbHVlIH19IDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cInJvd2V4cGFuc2lvblwiIGxldC1pdGVtPlxyXG4gICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICA8dGQgW2F0dHIuY29sc3Bhbl09XCJjb2x1bW5zLmxlbmd0aCArIChoYXNBY3Rpb25zID8gMSA6IDApXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImV4cGFuc2lvblRlbXBsYXRlOyBjb250ZXh0OiB7IGl0ZW0gfVwiPiA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9wLXRhYmxlPlxyXG4gICAgPC92ZWN0b3ItcGFuZWw+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -240,6 +240,7 @@ export var ProfileModuleActionType;
240
240
  ProfileModuleActionType["SHOW_MOVEMENT_ETCD"] = "Show Movement Etcd";
241
241
  ProfileModuleActionType["CREATE_AND_EDIT_NPS"] = "Create and edit NPS";
242
242
  ProfileModuleActionType["READ_NPS_INFORMATION"] = "Read NPS information";
243
+ ProfileModuleActionType["TEX_ONBOARDING_TRACKING"] = "OnboardingTracking";
243
244
  ProfileModuleActionType["BIDDING_PARAMETERS"] = "Bidding Parameters";
244
245
  })(ProfileModuleActionType || (ProfileModuleActionType = {}));
245
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12ZWN0b3ItY29tcG9uZW50cy9zcmMvbGliL21vZGVscy9wcm9maWxlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThCQSxNQUFNLENBQU4sSUFBWSxpQkFPWDtBQVBELFdBQVksaUJBQWlCO0lBQzNCLHFFQUFnRCxDQUFBO0lBQ2hELG1EQUE4QixDQUFBO0lBQzlCLHFFQUFzQyxDQUFBO0lBQ3RDLDZEQUF3QyxDQUFBO0lBQ3hDLDBEQUFxQyxDQUFBO0lBQ3JDLHNDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFQVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBTzVCO0FBRUQsTUFBTSxDQUFOLElBQVksdUJBeU9YO0FBek9ELFdBQVksdUJBQXVCO0lBQ2pDLHNEQUEyQixDQUFBO0lBQzNCLHdEQUE2QixDQUFBO0lBQzdCLDREQUFpQyxDQUFBO0lBQ2pDLHdEQUE2QixDQUFBO0lBQzdCLG9EQUF5QixDQUFBO0lBQ3pCLHNEQUEyQixDQUFBO0lBQzNCLDBEQUErQixDQUFBO0lBQy9CLHNEQUEyQixDQUFBO0lBQzNCLHNEQUEyQixDQUFBO0lBQzNCLHdEQUE2QixDQUFBO0lBQzdCLDREQUFpQyxDQUFBO0lBQ2pDLHdEQUE2QixDQUFBO0lBQzdCLHNEQUEyQixDQUFBO0lBQzNCLHdEQUE2QixDQUFBO0lBQzdCLDREQUFpQyxDQUFBO0lBQ2pDLHdEQUE2QixDQUFBO0lBQzdCLDBFQUErQyxDQUFBO0lBQy9DLGdEQUFxQixDQUFBO0lBQ3JCLGtEQUF1QixDQUFBO0lBQ3ZCLG9GQUF5RCxDQUFBO0lBQ3pELGtGQUF1RCxDQUFBO0lBQ3ZELG9GQUF5RCxDQUFBO0lBQ3pELDhFQUFtRCxDQUFBO0lBQ25ELDhFQUFtRCxDQUFBO0lBQ25ELHdEQUE2QixDQUFBO0lBQzdCLDZEQUFrQyxDQUFBO0lBQ2xDLDhFQUFtRCxDQUFBO0lBQ25ELDhFQUFtRCxDQUFBO0lBQ25ELHdEQUE2QixDQUFBO0lBQzdCLDBEQUErQixDQUFBO0lBQy9CLDBEQUErQixDQUFBO0lBQy9CLGdFQUFxQyxDQUFBO0lBQ3JDLGtFQUF1QyxDQUFBO0lBQ3ZDLGtFQUF1QyxDQUFBO0lBQ3ZDLHNFQUEyQyxDQUFBO0lBQzNDLDhEQUFtQyxDQUFBO0lBQ25DLDBEQUErQixDQUFBO0lBQy9CLDBEQUErQixDQUFBO0lBQy9CLDhEQUFtQyxDQUFBO0lBQ25DLHdEQUE2QixDQUFBO0lBQzdCLDhDQUFtQixDQUFBO0lBQ25CLGdEQUFxQixDQUFBO0lBQ3JCLG9EQUF5QixDQUFBO0lBQ3pCLGdEQUFxQixDQUFBO0lBQ3JCLDBEQUErQixDQUFBO0lBQy9CLHNEQUEyQixDQUFBO0lBQzNCLGtGQUF1RCxDQUFBO0lBQ3ZELG9GQUF5RCxDQUFBO0lBQ3pELG9GQUF5RCxDQUFBO0lBQ3pELDREQUFpQyxDQUFBO0lBQ2pDLDhEQUFtQyxDQUFBO0lBQ25DLGtFQUF1QyxDQUFBO0lBQ3ZDLGtHQUF1RSxDQUFBO0lBQ3ZFLG9HQUF5RSxDQUFBO0lBQ3pFLG9HQUF5RSxDQUFBO0lBQ3pFLDhEQUFtQyxDQUFBO0lBQ25DLDhEQUFtQyxDQUFBO0lBQ25DLG9HQUF5RSxDQUFBO0lBQ3pFLG9HQUF5RSxDQUFBO0lBQ3pFLG9GQUF5RCxDQUFBO0lBQ3pELHNGQUF1QyxDQUFBO0lBQ3ZDLG9FQUF5QyxDQUFBO0lBQ3pDLGtFQUF1QyxDQUFBO0lBQ3ZDLG9FQUF5QyxDQUFBO0lBQ3pDLGdFQUFxQyxDQUFBO0lBQ3JDLDhFQUFtRCxDQUFBO0lBQ25ELHdEQUE2QixDQUFBO0lBQzdCLDhGQUFtRSxDQUFBO0lBQ25FLDRGQUFpRSxDQUFBO0lBQ2pFLDRGQUFpRSxDQUFBO0lBQ2pFLDBGQUErRCxDQUFBO0lBQy9ELDRGQUFpRSxDQUFBO0lBQ2pFLGdHQUFxRSxDQUFBO0lBQ3JFLDBGQUErRCxDQUFBO0lBQy9ELHdGQUE2RCxDQUFBO0lBQzdELDBGQUErRCxDQUFBO0lBQy9ELDhGQUFtRSxDQUFBO0lBQ25FLHdGQUE2RCxDQUFBO0lBQzdELHNGQUEyRCxDQUFBO0lBQzNELHdGQUE2RCxDQUFBO0lBQzdELDRGQUFpRSxDQUFBO0lBQ2pFLDRGQUFpRSxDQUFBO0lBQ2pFLDBGQUErRCxDQUFBO0lBQy9ELDRGQUFpRSxDQUFBO0lBQ2pFLGdHQUFxRSxDQUFBO0lBQ3JFLDhFQUFtRCxDQUFBO0lBQ25ELDRFQUFpRCxDQUFBO0lBQ2pELGtFQUF1QyxDQUFBO0lBQ3ZDLG9FQUF5QyxDQUFBO0lBQ3pDLGtFQUF1QyxDQUFBO0lBQ3ZDLG9FQUF5QyxDQUFBO0lBQ3pDLHdFQUE2QyxDQUFBO0lBQzdDLDhFQUFtRCxDQUFBO0lBQ25ELDRFQUFpRCxDQUFBO0lBQ2pELDhFQUFtRCxDQUFBO0lBQ25ELHNFQUEyQyxDQUFBO0lBQzNDLG9FQUF5QyxDQUFBO0lBQ3pDLHNFQUEyQyxDQUFBO0lBQzNDLDBFQUErQyxDQUFBO0lBQy9DLG9FQUF5QyxDQUFBO0lBQ3pDLGtFQUF1QyxDQUFBO0lBQ3ZDLHdFQUE2QyxDQUFBO0lBQzdDLHNFQUEyQyxDQUFBO0lBQzNDLGtHQUF1RSxDQUFBO0lBQ3ZFLHdIQUE2RixDQUFBO0lBQzdGLGtIQUF1RixDQUFBO0lBQ3ZGLGdFQUFxQyxDQUFBO0lBQ3JDLDhEQUFtQyxDQUFBO0lBQ25DLDhEQUFtQyxDQUFBO0lBQ25DLHdEQUE2QixDQUFBO0lBQzdCLGtEQUF1QixDQUFBO0lBQ3ZCLGdEQUFxQixDQUFBO0lBQ3JCLGtEQUF1QixDQUFBO0lBQ3ZCLHNEQUEyQixDQUFBO0lBQzNCLG9EQUF5QixDQUFBO0lBQ3pCLHNEQUEyQixDQUFBO0lBQzNCLHNEQUEyQixDQUFBO0lBQzNCLHVFQUE0QyxDQUFBO0lBQzVDLHlFQUE4QyxDQUFBO0lBQzlDLHlFQUE4QyxDQUFBO0lBQzlDLDZFQUFrRCxDQUFBO0lBQ2xELHdEQUE2QixDQUFBO0lBQzdCLDBEQUErQixDQUFBO0lBQy9CLDBEQUErQixDQUFBO0lBQy9CLDRFQUFpRCxDQUFBO0lBQ2pELGdGQUFxRCxDQUFBO0lBQ3JELDhFQUFtRCxDQUFBO0lBQ25ELGdFQUFxQyxDQUFBO0lBQ3JDLGtEQUF1QixDQUFBO0lBQ3ZCLGdEQUFxQixDQUFBO0lBQ3JCLGtEQUF1QixDQUFBO0lBQ3ZCLHNEQUEyQixDQUFBO0lBQzNCLDhFQUFtRCxDQUFBO0lBQ25ELDBHQUErRSxDQUFBO0lBQy9FLDRHQUFpRixDQUFBO0lBQ2pGLDRHQUFpRixDQUFBO0lBQ2pGLGdIQUFxRixDQUFBO0lBQ3JGLG1IQUF3RixDQUFBO0lBQ3hGLHFIQUEwRixDQUFBO0lBQzFGLHFIQUEwRixDQUFBO0lBQzFGLHlIQUE4RixDQUFBO0lBQzlGLDJEQUFnQyxDQUFBO0lBQ2hDLHVEQUE0QixDQUFBO0lBQzVCLHVFQUE0QyxDQUFBO0lBQzVDLDRFQUFpRCxDQUFBO0lBQ2pELDRFQUFpRCxDQUFBO0lBQ2pELGdGQUFxRCxDQUFBO0lBQ3JELDBFQUErQyxDQUFBO0lBQy9DLDRFQUFpRCxDQUFBO0lBQ2pELHdGQUE2RCxDQUFBO0lBQzdELGtEQUF1QixDQUFBO0lBQ3ZCLGtEQUF1QixDQUFBO0lBQ3ZCLHNEQUEyQixDQUFBO0lBQzNCLGdEQUFxQixDQUFBO0lBQ3JCLG9FQUF5QyxDQUFBO0lBQ3pDLHNFQUEyQyxDQUFBO0lBQzNDLHNFQUEyQyxDQUFBO0lBQzNDLG9FQUF5QyxDQUFBO0lBQ3pDLDBFQUErQyxDQUFBO0lBQy9DLHdFQUE2QyxDQUFBO0lBQzdDLHdFQUE2QyxDQUFBO0lBQzdDLHNFQUEyQyxDQUFBO0lBQzNDLDRFQUFpRCxDQUFBO0lBQ2pELG9FQUF5QyxDQUFBO0lBQ3pDLG9FQUF5QyxDQUFBO0lBQ3pDLGtFQUF1QyxDQUFBO0lBQ3ZDLHdFQUE2QyxDQUFBO0lBQzdDLHdFQUE2QyxDQUFBO0lBQzdDLGdFQUFxQyxDQUFBO0lBQ3JDLGtFQUF1QyxDQUFBO0lBQ3ZDLGtFQUF1QyxDQUFBO0lBQ3ZDLHNFQUEyQyxDQUFBO0lBQzNDLHNFQUEyQyxDQUFBO0lBQzNDLHdFQUE2QyxDQUFBO0lBQzdDLHdFQUE2QyxDQUFBO0lBQzdDLGdFQUFxQyxDQUFBO0lBQ3JDLGtFQUF1QyxDQUFBO0lBQ3ZDLDRFQUFpRCxDQUFBO0lBQ2pELDRFQUFpRCxDQUFBO0lBQ2pELDRFQUFpRCxDQUFBO0lBQ2pELDhFQUFtRCxDQUFBO0lBQ25ELGtGQUF1RCxDQUFBO0lBQ3ZELHdFQUE2QyxDQUFBO0lBQzdDLHdFQUE2QyxDQUFBO0lBQzdDLGtFQUF1QyxDQUFBO0lBQ3ZDLDBFQUErQyxDQUFBO0lBQy9DLHNEQUEyQixDQUFBO0lBQzNCLCtEQUFvQyxDQUFBO0lBQ3BDLDBFQUErQyxDQUFBO0lBQy9DLHlFQUE4QyxDQUFBO0lBQzlDLDJFQUFnRCxDQUFBO0lBQ2hELGdGQUFxRCxDQUFBO0lBQ3JELDZEQUFrQyxDQUFBO0lBQ2xDLGdGQUFxRCxDQUFBO0lBQ3JELGtGQUF1RCxDQUFBO0lBQ3ZELDRFQUFpRCxDQUFBO0lBQ2pELHNEQUEyQixDQUFBO0lBQzNCLDBEQUErQixDQUFBO0lBQy9CLHNEQUEyQixDQUFBO0lBQzNCLG9EQUF5QixDQUFBO0lBQ3pCLHNFQUEyQyxDQUFBO0lBQzNDLDBEQUErQixDQUFBO0lBQy9CLGtFQUF1QyxDQUFBO0lBQ3ZDLHNGQUEyRCxDQUFBO0lBQzNELDhEQUFtQyxDQUFBO0lBQ25DLDhFQUFtRCxDQUFBO0lBQ25ELGtFQUF1QyxDQUFBO0lBQ3ZDLDRGQUFpRSxDQUFBO0lBQ2pFLDhEQUFtQyxDQUFBO0lBQ25DLHdFQUE2QyxDQUFBO0lBQzdDLHNFQUEyQyxDQUFBO0lBQzNDLHdFQUE2QyxDQUFBO0lBQzdDLDRFQUFpRCxDQUFBO0lBQ2pELHVGQUE0RCxDQUFBO0lBQzVELDhGQUFtRSxDQUFBO0lBQ25FLGdIQUFxRixDQUFBO0lBQ3JGLGtHQUF1RSxDQUFBO0lBQ3ZFLG9IQUF5RixDQUFBO0lBQ3pGLHdHQUE2RSxDQUFBO0lBQzdFLHVHQUE0RSxDQUFBO0lBQzVFLHVFQUE0QyxDQUFBO0lBQzVDLDJFQUFnRCxDQUFBO0lBQ2hELHFFQUEwQyxDQUFBO0lBQzFDLHVFQUE0QyxDQUFBO0lBQzVDLHdGQUE2RCxDQUFBO0lBQzdELDZDQUFrQixDQUFBO0lBQ2xCLCtEQUFvQyxDQUFBO0lBQ3BDLHlFQUE4QyxDQUFBO0lBQzlDLG9FQUF5QyxDQUFBO0lBQ3pDLHNFQUEyQyxDQUFBO0lBQzNDLHdFQUE2QyxDQUFBO0lBQzdDLG9FQUF5QyxDQUFBO0FBQzNDLENBQUMsRUF6T1csdUJBQXVCLEtBQXZCLHVCQUF1QixRQXlPbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhVGFibGVCYXNlSXRlbSB9IGZyb20gJy4vZGF0YS10YWJsZS5tb2RlbCc7XHJcblxyXG5leHBvcnQgdHlwZSBQcm9maWxlID0ge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHByb2ZpbGVUeXBlSWQ6IG51bWJlcjtcclxuICBQcm9maWxlVHlwZU5hbWU6IHN0cmluZztcclxuICBtb2R1bGVzOiBQcm9maWxlTW9kdWxlW107XHJcbiAgYWN0aXZlOiBib29sZWFuO1xyXG59ICYgRGF0YVRhYmxlQmFzZUl0ZW07XHJcblxyXG5leHBvcnQgdHlwZSBQcm9maWxlTW9kdWxlID0ge1xyXG4gIG1lbnU6IHN0cmluZztcclxuICBhY3Rpb25zOiBQcm9maWxlTW9kdWxlQWN0aW9uW107XHJcbn0gJiBQcm9maWxlTW9kdWxlQmFzZTtcclxuXHJcbmV4cG9ydCB0eXBlIFByb2ZpbGVNb2R1bGVHcm91cGVkQnlNZW51ID0ge1xyXG4gIG1lbnU6IHN0cmluZztcclxuICBtb2R1bGVzOiBQcm9maWxlTW9kdWxlW107XHJcbiAgY2hpbGRyZW4/OiBQcm9maWxlTW9kdWxlR3JvdXBlZEJ5TWVudVtdO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgUHJvZmlsZU1vZHVsZUFjdGlvbiA9IHt9ICYgUHJvZmlsZU1vZHVsZUJhc2U7XHJcblxyXG5leHBvcnQgdHlwZSBQcm9maWxlTW9kdWxlQmFzZSA9IHtcclxuICBpZDogbnVtYmVyO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBpc0F2YWlsYWJsZT86IGJvb2xlYW47XHJcbn07XHJcblxyXG5leHBvcnQgZW51bSBQcm9maWxlTW9kdWxlVHlwZSB7XHJcbiAgT1BFUkFUSU9OQUxfRVZBTFVBVElPTiA9ICdPcGVyYXRpb25hbEV2YWx1YXRpb24nLFxyXG4gIEFETUlOX1NVUlZFWVMgPSAnQWRtaW5TdXJ2ZXlzJyxcclxuICBESUdJVEFMX0RJU0NIQVJHRSA9ICdRdWl0YcOnw6NvIERpZ2l0YWwnLFxyXG4gIFJFR0lTVEVSX09QRVJBVElPTiA9ICdSZWdpc3Rlck9wZXJhdGlvbicsXHJcbiAgUkVHSVNURVJfUFJPRFVDVFMgPSAnUmVnaXN0ZXJQcm9kdWN0JyxcclxuICBBRE1JTl9OUFMgPSAnTlBTJyxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gUHJvZmlsZU1vZHVsZUFjdGlvblR5cGUge1xyXG4gIEFERF9WRUhJQ0xFID0gJ0FkZCBWZWhpY2xlJyxcclxuICBFRElUX1ZFSElDTEUgPSAnRWRpdCBWZWhpY2xlJyxcclxuICBERUxFVEVfVkVISUNMRSA9ICdEZWxldGUgVmVoaWNsZScsXHJcbiAgU0hPV19WRUhJQ0xFID0gJ1Nob3cgVmVoaWNsZScsXHJcbiAgQUREX0RSSVZFUiA9ICdBZGQgRHJpdmVyJyxcclxuICBFRElUX0RSSVZFUiA9ICdFZGl0IERyaXZlcicsXHJcbiAgREVMRVRFX0RSSVZFUiA9ICdEZWxldGUgRHJpdmVyJyxcclxuICBTSE9XX0RSSVZFUiA9ICdTaG93IERyaXZlcicsXHJcbiAgQUREX0NBUlJJRVIgPSAnQWRkIENhcnJpZXInLFxyXG4gIEVESVRfQ0FSUklFUiA9ICdFZGl0IENhcnJpZXInLFxyXG4gIERFTEVURV9DQVJSSUVSID0gJ0RlbGV0ZSBDYXJyaWVyJyxcclxuICBTSE9XX0NBUlJJRVIgPSAnU2hvdyBDYXJyaWVyJyxcclxuICBBRERfUFJPRklMRSA9ICdBZGQgUHJvZmlsZScsXHJcbiAgRURJVF9QUk9GSUxFID0gJ0VkaXQgUHJvZmlsZScsXHJcbiAgREVMRVRFX1BST0ZJTEUgPSAnRGVsZXRlIFByb2ZpbGUnLFxyXG4gIFNIT1dfUFJPRklMRSA9ICdTaG93IFByb2ZpbGUnLFxyXG4gIEVESVRfQlJPQURDQVNUX1ZBTFVFUyA9ICdFZGl0IEJyb2FkY2FzdCBWYWx1ZXMnLFxyXG4gIEFERF9XQVZFID0gJ0FkZCBXYXZlJyxcclxuICBFRElUX1dBVkUgPSAnRWRpdCBXYXZlJyxcclxuICBISVNUT1JJQ0FMX0NIQU5HRVNfVkVISUNMRSA9ICdIaXN0b3JpY2FsIENoYW5nZXMgVmVoaWNsZScsXHJcbiAgSElTVE9SSUNBTF9DSEFOR0VTX0RSSVZFUiA9ICdIaXN0b3JpY2FsIENoYW5nZXMgRHJpdmVyJyxcclxuICBISVNUT1JJQ0FMX0NIQU5HRVNfQ0FSUklFUiA9ICdIaXN0b3JpY2FsIENoYW5nZXMgQ2FycmllcicsXHJcbiAgSElTVE9SSUNBTF9DSEFOR0VTX1RSSVAgPSAnSGlzdG9yaWNhbCBDaGFuZ2VzIFRyaXAnLFxyXG4gIEhJU1RPUklDQUxfQ0hBTkdFU19VU0VSID0gJ0hpc3RvcmljYWwgQ2hhbmdlcyBVc2VyJyxcclxuICBDQU5DRUxfVFJJUFMgPSAnQ2FuY2VsIFRyaXBzJyxcclxuICBDQU5DRUxfVFJJUFNQQSA9ICdDYW5jZWwgVHJpcHMgUEEnLFxyXG4gIE1BTlVBTF9VUExPQURfRE9DVU1FTlRTID0gJ01hbnVhbCBVcGxvYWQgRG9jdW1lbnRzJyxcclxuICBISVNUT1JJQ0FMX0NIQU5HRVNfTE9UUyA9ICdIaXN0b3JpY2FsIENoYW5nZXMgTG90cycsXHJcbiAgQUREX0xPQ0FUSU9OID0gJ0FkZCBMb2NhdGlvbicsXHJcbiAgRURJVF9MT0NBVElPTiA9ICdFZGl0IExvY2F0aW9uJyxcclxuICBTSE9XX0xPQ0FUSU9OID0gJ1Nob3cgTG9jYXRpb24nLFxyXG4gIEFERF9SRVNUUklDVElPTlMgPSAnQWRkIFJlc3RyaWN0aW9ucycsXHJcbiAgRURJVF9SRVNUUklDVElPTlMgPSAnRWRpdCBSZXN0cmljdGlvbnMnLFxyXG4gIFNIT1dfUkVTVFJJQ1RJT05TID0gJ1Nob3cgUmVzdHJpY3Rpb25zJyxcclxuICBERUxFVEVfUkVTVFJJQ1RJT05TID0gJ0RlbGV0ZSBSZXN0cmljdGlvbnMnLFxyXG4gIERFTEVURV9MT0NBVElPTiA9ICdEZWxldGUgTG9jYXRpb24nLFxyXG4gIFNIT1dfTUVTU0FHRVMgPSAnU2hvdyBNZXNzYWdlcycsXHJcbiAgRURJVF9NRVNTQUdFUyA9ICdFZGl0IE1lc3NhZ2VzJyxcclxuICBERUxFVEVfTUVTU0FHRVMgPSAnRGVsZXRlIE1lc3NhZ2VzJyxcclxuICBBRERfTUVTU0FHRVMgPSAnQWRkIE1lc3NhZ2VzJyxcclxuICBBRERfTE9UID0gJ0FkZCBMb3QnLFxyXG4gIEVESVRfTE9UID0gJ0VkaXQgTG90JyxcclxuICBERUxFVEVfTE9UID0gJ0RlbGV0ZSBMb3QnLFxyXG4gIFNIT1dfTE9UID0gJ1Nob3cgTG90JyxcclxuICBBQ0NFUFRfQ1JFRElUID0gJ0FjY2VwdCBDcmVkaXQnLFxyXG4gIFNIT1dfQ1JFRElUID0gJ1Nob3cgQ3JlZGl0JyxcclxuICBBRERfVkVISUNMRV9DT05GSUdVUkFUSU9OID0gJ0FkZCBWZWhpY2xlIENvbmZpZ3VyYXRpb24nLFxyXG4gIEVESVRfVkVISUNMRV9DT05GSUdVUkFUSU9OID0gJ0VkaXQgVmVoaWNsZSBDb25maWd1cmF0aW9uJyxcclxuICBTSE9XX1ZFSElDTEVfQ09ORklHVVJBVElPTiA9ICdTaG93IFZlaGljbGUgQ29uZmlndXJhdGlvbicsXHJcbiAgQUREX1NDSEVEVUxJTkcgPSAnQWRkIFNjaGVkdWxpbmcnLFxyXG4gIEVESVRfU0NIRURVTElORyA9ICdFZGl0IFNjaGVkdWxpbmcnLFxyXG4gIERFTEVURV9TQ0hFRFVMSU5HID0gJ0RlbGV0ZSBTY2hlZHVsaW5nJyxcclxuICBBRERfVkVISUNMRV9DT05GSUdVUkFUSU9OX1NISVBQRVIgPSAnQWRkIFZlaGljbGUgQ29uZmlndXJhdGlvbiBTaGlwcGVyJyxcclxuICBFRElUX1ZFSElDTEVfQ09ORklHVVJBVElPTl9TSElQUEVSID0gJ0VkaXQgVmVoaWNsZSBDb25maWd1cmF0aW9uIFNoaXBwZXInLFxyXG4gIFNIT1dfVkVISUNMRV9DT05GSUdVUkFUSU9OX1NISVBQRVIgPSAnU2hvdyBWZWhpY2xlIENvbmZpZ3VyYXRpb24gU2hpcHBlcicsXHJcbiAgRURJVF9UUklQX0JVTkdFID0gJ0VkaXQgdHJpcCBCdW5nZScsXHJcbiAgRURJVF9UUklQX0NPRkNPID0gJ0VkaXQgdHJpcCBDb2ZjbycsXHJcbiAgU0hPV19NSU5JTVVNX1RSQU5TUE9SVF9QUklDRV9UQUJMRSA9ICdTaG93IE1pbmltdW0gVHJhbnNwb3J0IFByaWNlIFRhYmxlJyxcclxuICBFRElUX01JTklNVU1fVFJBTlNQT1JUX1BSSUNFX1RBQkxFID0gJ0VkaXQgTWluaW11bSBUcmFuc3BvcnQgUHJpY2UgVGFibGUnLFxyXG4gIEhJU1RPUklDQUxfQ0hBTkdFU19DUkVESVRTID0gJ0hpc3RvcmljYWwgQ2hhbmdlcyBDcmVkaXRzJyxcclxuICBJTlRFR1JBw4fDg09fUEFHQkVNID0gJ0ludGVncmHDp8OjbyBQYWdiZW0nLFxyXG4gIFZBTElEQVRJT05fQ0FSUklFUiA9ICdWYWxpZGF0aW9uIENhcnJpZXInLFxyXG4gIFZBTElEQVRJT05fRFJJVkVSID0gJ1ZhbGlkYXRpb24gRHJpdmVyJyxcclxuICBWQUxJREFUSU9OX1ZFSElDTEUgPSAnVmFsaWRhdGlvbiBWZWhpY2xlJyxcclxuICBFRElUX1RSSVBfU1RBVFVTID0gJ0VkaXQgdHJpcCBzdGF0dXMnLFxyXG4gIFJFR0lTVFJBVElPTl9WQUxJREFUSU9OID0gJ1JlZ2lzdHJhdGlvbiBWYWxpZGF0aW9uJyxcclxuICBCM19PUEVSQVRJT04gPSAnQjMgT3BlcmF0aW9uJyxcclxuICBTSE9XX0NBUlJJRVJfREVUQUlMX0lOVEVHUkFUSU9OID0gJ1Nob3cgQ2FycmllciBEZXRhaWwgSW50ZWdyYXRpb24nLFxyXG4gIFNIT1dfRFJJVkVSX0RFVEFJTF9JTlRFR1JBVElPTiA9ICdTaG93IERyaXZlciBEZXRhaWwgSW50ZWdyYXRpb24nLFxyXG4gIEZVRUxTX1NIT1dfRElTVFJJQlVUSU9OX0NFTlRFUiA9ICdGdWVscyBzaG93IGRpc3RyaWJ1dGlvbiBjZW50ZXInLFxyXG4gIEZVRUxTX0FERF9ESVNUUklCVVRJT05fQ0VOVEVSID0gJ0Z1ZWxzIGFkZCBkaXN0cmlidXRpb24gY2VudGVyJyxcclxuICBGVUVMU19FRElUX0RJU1RSSUJVVElPTl9DRU5URVIgPSAnRnVlbHMgZWRpdCBkaXN0cmlidXRpb24gY2VudGVyJyxcclxuICBGVUVMU19ERUxFVEVfRElTVFJJQlVUSU9OX0NFTlRFUiA9ICdGdWVscyBkZWxldGUgZGlzdHJpYnV0aW9uIGNlbnRlcicsXHJcbiAgRlVFTFNfU0hPV19ESVNUUklCVVRJT05fUE9JTlQgPSAnRnVlbHMgc2hvdyBkaXN0cmlidXRpb24gcG9pbnQnLFxyXG4gIEZVRUxTX0FERF9ESVNUUklCVVRJT05fUE9JTlQgPSAnRnVlbHMgYWRkIGRpc3RyaWJ1dGlvbiBwb2ludCcsXHJcbiAgRlVFTFNfRURJVF9ESVNUUklCVVRJT05fUE9JTlQgPSAnRnVlbHMgZWRpdCBkaXN0cmlidXRpb24gcG9pbnQnLFxyXG4gIEZVRUxTX0RFTEVURV9ESVNUUklCVVRJT05fUE9JTlQgPSAnRnVlbHMgZGVsZXRlIGRpc3RyaWJ1dGlvbiBwb2ludCcsXHJcbiAgRlVFTFNfU0hPV19ESVNUUklCVVRJT05fUE9TVCA9ICdGdWVscyBzaG93IGRpc3RyaWJ1dGlvbiBwb3N0JyxcclxuICBGVUVMU19BRERfRElTVFJJQlVUSU9OX1BPU1QgPSAnRnVlbHMgYWRkIGRpc3RyaWJ1dGlvbiBwb3N0JyxcclxuICBGVUVMU19FRElUX0RJU1RSSUJVVElPTl9QT1NUID0gJ0Z1ZWxzIGVkaXQgZGlzdHJpYnV0aW9uIHBvc3QnLFxyXG4gIEZVRUxTX0RFTEVURV9ESVNUUklCVVRJT05fUE9TVCA9ICdGdWVscyBkZWxldGUgZGlzdHJpYnV0aW9uIHBvc3QnLFxyXG4gIEZVRUxTX1NIT1dfTUFSS0VUUExBQ0VfUFJPRFVDVCA9ICdGdWVscyBzaG93IG1hcmtldHBsYWNlIHByb2R1Y3QnLFxyXG4gIEZVRUxTX0FERF9NQVJLRVRQTEFDRV9QUk9EVUNUID0gJ0Z1ZWxzIGFkZCBtYXJrZXRwbGFjZSBwcm9kdWN0JyxcclxuICBGVUVMU19FRElUX01BUktFVFBMQUNFX1BST0RVQ1QgPSAnRnVlbHMgZWRpdCBtYXJrZXRwbGFjZSBwcm9kdWN0JyxcclxuICBGVUVMU19ERUxFVEVfTUFSS0VUUExBQ0VfUFJPRFVDVCA9ICdGdWVscyBkZWxldGUgbWFya2V0cGxhY2UgcHJvZHVjdCcsXHJcbiAgRlVFTFNfU0hPV19TVE9DS19VUERBVEUgPSAnRnVlbHMgc2hvdyBzdG9jayB1cGRhdGUnLFxyXG4gIEZVRUxTX0FERF9TVE9DS19VUERBVEUgPSAnRnVlbHMgYWRkIHN0b2NrIHVwZGF0ZScsXHJcbiAgU0hPV19NQVJLRVRQTEFDRVMgPSAnU2hvdyBtYXJrZXRwbGFjZXMnLFxyXG4gIEZVRUxTX1NIT1dfREVQT1NJVCA9ICdGdWVscyBzaG93IGRlcG9zaXQnLFxyXG4gIEZVRUxTX0FERF9ERVBPU0lUID0gJ0Z1ZWxzIGFkZCBkZXBvc2l0JyxcclxuICBGVUVMU19FRElUX0RFUE9TSVQgPSAnRnVlbHMgZWRpdCBkZXBvc2l0JyxcclxuICBGVUVMU19ERUxFVEVfREVQT1NJVCA9ICdGdWVscyBkZWxldGUgZGVwb3NpdCcsXHJcbiAgRlVFTFNfU0hPV19TVVBQTFlfT0ZGRVIgPSAnRnVlbHMgc2hvdyBzdXBwbHkgb2ZmZXInLFxyXG4gIEZVRUxTX0FERF9TVVBQTFlfT0ZGRVIgPSAnRnVlbHMgYWRkIHN1cHBseSBvZmZlcicsXHJcbiAgRlVFTFNfRURJVF9TVVBQTFlfT0ZGRVIgPSAnRnVlbHMgZWRpdCBzdXBwbHkgb2ZmZXInLFxyXG4gIEZVRUxTX1NIT1dfT1BFUkFUT1IgPSAnRnVlbHMgc2hvdyBvcGVyYXRvcicsXHJcbiAgRlVFTFNfQUREX09QRVJBVE9SID0gJ0Z1ZWxzIGFkZCBvcGVyYXRvcicsXHJcbiAgRlVFTFNfRURJVF9PUEVSQVRPUiA9ICdGdWVscyBlZGl0IG9wZXJhdG9yJyxcclxuICBGVUVMU19ERUxFVEVfT1BFUkFUT1IgPSAnRnVlbHMgZGVsZXRlIG9wZXJhdG9yJyxcclxuICBGSU5URUNIX0JBTktfQURNSU4gPSAnRmludGVjaCBCYW5rIEFkbWluJyxcclxuICBGSU5URUNIX0JBTktfVVNFUiA9ICdGaW50ZWNoIEJhbmsgVXNlcicsXHJcbiAgRklOVEVDSF9DUkVESVRfQURNSU4gPSAnRmludGVjaCBDcmVkaXQgQWRtaW4nLFxyXG4gIEZJTlRFQ0hfQ1JFRElUX1VTRVIgPSAnRmludGVjaCBDcmVkaXQgVXNlcicsXHJcbiAgRklOVEVDSF9CQU5LX0FETUlOX0FDQ09VTlRTX1ZJRVcgPSAnRmludGVjaCBCYW5rIEFkbWluIC0gQWNjb3VudHMgVmlldycsXHJcbiAgRklOVEVDSF9DUkVESVRfQURNSU5fUFJPUE9TQUxfTk9UX0NPTkZJUk1FRCA9ICdGaW50ZWNoIENyZWRpdCBBZG1pbiAtIFByb3Bvc2FsIE5vdCBDb25maXJtZWQnLFxyXG4gIEZJTlRFQ0hfQ1JFRElUX0FETUlOX0NPTlRSQUNUU19GT0xMT1dfVVAgPSAnRmludGVjaCBDcmVkaXQgQWRtaW4gLSBDb250cmFjdHMgRm9sbG93LVVwJyxcclxuICBBRE1JTl9NQVJLRVBMQUNFID0gJ0FkbWluIE1hcmtlcGxhY2UnLFxyXG4gIEFQUFJPVkVfUkVRVUVTVCA9ICdBcHByb3ZlIFJlcXVlc3QnLFxyXG4gIFJFUFJPVkVfUkVRVUVTVCA9ICdSZXByb3ZlIFJlcXVlc3QnLFxyXG4gIFNIT1dfUkVRVUVTVCA9ICdTaG93IFJlcXVlc3QnLFxyXG4gIFNIT1dfVVNFUiA9ICdTaG93IFVzZXInLFxyXG4gIEFERF9VU0VSID0gJ0FkZCBVc2VyJyxcclxuICBFRElUX1VTRVIgPSAnRWRpdCBVc2VyJyxcclxuICBERUxFVEVfVVNFUiA9ICdEZWxldGUgVXNlcicsXHJcbiAgQUREX1JFR0lPTiA9ICdBZGQgUmVnaW9uJyxcclxuICBTSE9XX1JFR0lPTiA9ICdTaG93IFJlZ2lvbicsXHJcbiAgRURJVF9SRUdJT04gPSAnRWRpdCBSZWdpb24nLFxyXG4gIEFERF9MT0NBVElPTl9TSElQUEVSID0gJ0FkZCBMb2NhdGlvblNoaXBwZXInLFxyXG4gIEVESVRfTE9DQVRJT05fU0hJUFBFUiA9ICdFZGl0IExvY2F0aW9uU2hpcHBlcicsXHJcbiAgU0hPV19MT0NBVElPTl9TSElQUEVSID0gJ1Nob3cgTG9jYXRpb25TaGlwcGVyJyxcclxuICBERUxFVEVfTE9DQVRJT05fU0hJUFBFUiA9ICdEZWxldGUgTG9jYXRpb25TaGlwcGVyJyxcclxuICBBRERfU0NIRURVTEUgPSAnQWRkIFNjaGVkdWxlJyxcclxuICBFRElUX1NDSEVEVUxFID0gJ0VkaXQgU2NoZWR1bGUnLFxyXG4gIFNIT1dfU0NIRURVTEUgPSAnU2hvdyBTY2hlZHVsZScsXHJcbiAgQUREX1ZBQ0FOQ0lFU19MT0dJU1RJQyA9ICdBZGQgVmFjYW5jaWVzIExvZ2lzdGljJyxcclxuICBBRERfVkFDQU5DSUVTX0NPTU1FUkNJQUwgPSAnQWRkIFZhY2FuY2llcyBDb21tZXJjaWFsJyxcclxuICBTSE9XX1ZBQ0FOQ0lFU19DT01QTEVURSA9ICdTaG93IFZhY2FuY2llcyBDb21wbGV0ZScsXHJcbiAgQUREX1NDSEVEVUxFX09GRiA9ICdBZGQgU2NoZWR1bGUgT2ZmJyxcclxuICBTSE9XX05FV1MgPSAnU2hvdyBOZXdzJyxcclxuICBBRERfTkVXUyA9ICdBZGQgTmV3cycsXHJcbiAgRURJVF9ORVdTID0gJ0VkaXQgTmV3cycsXHJcbiAgREVMRVRFX05FV1MgPSAnRGVsZXRlIE5ld3MnLFxyXG4gIEhJU1RPUklDQUxfQ0hBTkdFU19ORVdTID0gJ0hpc3RvcmljYWwgQ2hhbmdlcyBOZXdzJyxcclxuICBBRERfRElTVFJJQlVUSU9OX0NFTlRFUl9DT01QQU5ZX0NSRURJVCA9ICdBZGQgRGlzdHJpYnV0aW9uQ2VudGVyc0NvbXBhbnlDcmVkaXQnLFxyXG4gIEVESVRfRElTVFJJQlVUSU9OX0NFTlRFUl9DT01QQU5ZX0NSRURJVCA9ICdFZGl0IERpc3RyaWJ1dGlvbkNlbnRlcnNDb21wYW55Q3JlZGl0JyxcclxuICBTSE9XX0RJU1RSSUJVVElPTl9DRU5URVJfQ09NUEFOWV9DUkVESVQgPSAnU2hvdyBEaXN0cmlidXRpb25DZW50ZXJzQ29tcGFueUNyZWRpdCcsXHJcbiAgREVMRVRFX0RJU1RSSUJVVElPTl9DRU5URVJfQ09NUEFOWV9DUkVESVQgPSAnRGVsZXRlIERpc3RyaWJ1dGlvbkNlbnRlcnNDb21wYW55Q3JlZGl0JyxcclxuICBBRERfRElTVFJJQlVUSU9OX0NFTlRFUl9DT01QQU5ZX0NSRURJVF9VTklUID0gJ0FkZCBEaXN0cmlidXRpb25DZW50ZXJzQ29tcGFueVVuaXRDcmVkaXQnLFxyXG4gIEVESVRfRElTVFJJQlVUSU9OX0NFTlRFUl9DT01QQU5ZX0NSRURJVF9VTklUID0gJ0VkaXQgRGlzdHJpYnV0aW9uQ2VudGVyc0NvbXBhbnlVbml0Q3JlZGl0JyxcclxuICBTSE9XX0RJU1RSSUJVVElPTl9DRU5URVJfQ09NUEFOWV9DUkVESVRfVU5JVCA9ICdTaG93IERpc3RyaWJ1dGlvbkNlbnRlcnNDb21wYW55VW5pdENyZWRpdCcsXHJcbiAgREVMRVRFX0RJU1RSSUJVVElPTl9DRU5URVJfQ09NUEFOWV9DUkVESVRfVU5JVCA9ICdEZWxldGUgRGlzdHJpYnV0aW9uQ2VudGVyc0NvbXBhbnlVbml0Q3JlZGl0JyxcclxuICBBUFBST1ZFX1ZFQ1RPUiA9ICdBcHByb3ZlVmVjdG9yJyxcclxuICBBUFBST1ZFX0VUQ0QgPSAnQXBwcm92ZUVUQ0QnLFxyXG4gIERFTEVURV9QQVJBTUVURVJTX0VUQ0QgPSAnRGVsZXRlIFBhcmFtZXRlcnMnLFxyXG4gIFNIT1dfUkVDRVBUSU9OX1BST0RVQ1QgPSAnU2hvdyBSZWNlcHRpb24gUHJvZHVjdCcsXHJcbiAgRURJVF9SRUNFUFRJT05fUFJPRFVDVCA9ICdFZGl0IFJlY2VwdGlvbiBQcm9kdWN0JyxcclxuICBERUxFVEVfUkVDRVBUSU9OX1BST0RVQ1QgPSAnRGVsZXRlIFJlY2VwdGlvbiBQcm9kdWN0JyxcclxuICBBRERfUkVDRVBUSU9OX1BST0RVQ1QgPSAnQWRkIFJlY2VwdGlvbiBQcm9kdWN0JyxcclxuICBTSE9XX0RJR0lUQUxfRElTQ0hBUkdFID0gJ1Nob3cgRGlnaXRhbCBEaXNjaGFyZ2UnLFxyXG4gIFNIT1dfRElHSVRBTF9ESVNDSEFSR0VfRklMRVMgPSAnU2hvdyBEaWdpdGFsIERpc2NoYXJnZSBGaWxlcycsXHJcbiAgU0hPV19FVENEID0gJ1Nob3cgRVRDRCcsXHJcbiAgRURJVF9FVENEID0gJ0VkaXQgRVRDRCcsXHJcbiAgREVMRVRFX0VUQ0QgPSAnRGVsZXRlIEVUQ0QnLFxyXG4gIEFERF9FVENEID0gJ0FkZCBFVENEJyxcclxuICBTSE9XX1JFR0lPTkFMX0VUQ0QgPSAnU2hvdyBSZWdpb25hbCBFVENEJyxcclxuICBTSE9XX1ZJUlRVQUxfQlJBTkNIID0gJ1Nob3cgVmlydHVhbCBCcmFuY2gnLFxyXG4gIEVESVRfVklSVFVBTF9CUkFOQ0ggPSAnRWRpdCBWaXJ0dWFsIEJyYW5jaCcsXHJcbiAgQUREX1ZJUlRVQUxfQlJBTkNIID0gJ0FkZCBWaXJ0dWFsIEJyYW5jaCcsXHJcbiAgREVMRVRFX1ZJUlRVQUxfQlJBTkNIID0gJ0RlbGV0ZSBWaXJ0dWFsIEJyYW5jaCcsXHJcbiAgU0hPV19QSFlTSUNBTF9CUkFOQ0ggPSAnU2hvdyBQaHlzaWNhbCBCcmFuY2gnLFxyXG4gIEVESVRfUEhZU0lDQUxfQlJBTkNIID0gJ0VkaXQgUGh5c2ljYWwgQnJhbmNoJyxcclxuICBBRERfUEhZU0lDQUxfQlJBTkNIID0gJ0FkZCBQaHlzaWNhbCBCcmFuY2gnLFxyXG4gIERFTEVURV9QSFlTSUNBTF9CUkFOQ0ggPSAnRGVsZXRlIFBoeXNpY2FsIEJyYW5jaCcsXHJcbiAgU0hPV19GSVNDQUxfQlJBTkNIID0gJ1Nob3cgRmlzY2FsIEJyYW5jaCcsXHJcbiAgRURJVF9GSVNDQUxfQlJBTkNIID0gJ0VkaXQgRmlzY2FsIEJyYW5jaCcsXHJcbiAgQUREX0ZJU0NBTF9CUkFOQ0ggPSAnQWRkIEZpc2NhbCBCcmFuY2gnLFxyXG4gIERFTEVURV9GSVNDQUxfQlJBTkNIID0gJ0RlbGV0ZSBGaXNjYWwgQnJhbmNoJyxcclxuICBTSE9XX01PTklUT1JJTkdfRVRDRCA9ICdTaG93IE1vbml0b3JpbmcgRVRDRCcsXHJcbiAgQUREX1BST0RVQ1RfRVRDRCA9ICdBZGQgUHJvZHVjdCBFVENEJyxcclxuICBFRElUX1BST0RVQ1RfRVRDRCA9ICdFZGl0IFByb2R1Y3QgRVRDRCcsXHJcbiAgU0hPV19QUk9EVUNUX0VUQ0QgPSAnU2hvdyBQcm9kdWN0IEVUQ0QnLFxyXG4gIERFTEVURV9QUk9EVUNUX0VUQ0QgPSAnRGVsZXRlIFByb2R1Y3QgRVRDRCcsXHJcbiAgQUREX1BBUkFNRVRFUlNfRVRDRCA9ICdBZGQgUGFyYW1ldGVycyBFVENEJyxcclxuICBFRElUX1BBUkFNRVRFUlNfRVRDRCA9ICdFZGl0IFBhcmFtZXRlcnMgRVRDRCcsXHJcbiAgU0hPV19QQVJBTUVURVJTX0VUQ0QgPSAnU2hvdyBQYXJhbWV0ZXJzIEVUQ0QnLFxyXG4gIEFERF9GUkVJR0hUX0VUQ0QgPSAnQWRkIEZyZWlnaHQgRVRDRCcsXHJcbiAgU0hPV19GUkVJR0hUX0VUQ0QgPSAnU2hvdyBGcmVpZ2h0IEVUQ0QnLFxyXG4gIEFQUFJPVkVfQURKVVNNRU5UX0VUQ0QgPSAnQXBwcm92ZSBBZGp1c21lbnQgRVRDRCcsXHJcbiAgUkVQUk9WRV9BREpVU01FTlRfRVRDRCA9ICdSZXByb3ZlIEFkanVzbWVudCBFVENEJyxcclxuICBBRERfSlVTVElGSUNBVElWRV9FVENEID0gJ0FkZCBKdXN0aWZpY2F0aXZlIEVUQ0QnLFxyXG4gIEVESVRfSlVTVElGSUNBVElWRV9FVENEID0gJ0VkaXQgSnVzdGlmaWNhdGl2ZSBFVENEJyxcclxuICBERUxFVEVfSlVTVElGSUNBVElWRV9FVENEID0gJ0RlbGV0ZSBKdXN0aWZpY2F0aXZlIEVUQ0QnLFxyXG4gIEFQUFJPVkVfUkVMRUFTRV9FVENEID0gJ0FwcHJvdmUgUmVsZWFzZSBFVENEJyxcclxuICBSRVBST1ZFX1JFTEVBU0VfRVRDRCA9ICdSZXByb3ZlIFJlbGVhc2UgRVRDRCcsXHJcbiAgU0hPV19BRFZBTkNFX0VUQ0QgPSAnU2hvdyBBZHZhbmNlIEVUQ0QnLFxyXG4gIEFQUFJPVkVfUkVRVUVTVFNfRVRDRCA9ICdBcHByb3ZlIFJlcXVlc3RzIEVUQ0QnLFxyXG4gIFNIT1dfU1VQUExZID0gJ1Nob3cgU3VwcGx5JyxcclxuICBTSE9XX1RSSVBfT0ZGRVJUID0gJ1RyaXAgT2ZmZXIgU2hvdycsXHJcbiAgQUREX0xBU1ROQU1FX0xPQ0FUSU9OID0gJ0FkZCBMYXN0TmFtZSBMb2NhdGlvbicsXHJcbiAgQVBQUk9WRV9ESVNDSEFSR0VfUEFZTUVOVCA9ICdBcHJvdmFyIHF1aXRhY2FvJyxcclxuICBBUFBST1ZFX0FEVkFOQ0VfUEFZTUVOVCA9ICdBcHJvdmFyIGFkaWFudGFtZW50bycsXHJcbiAgQVBQUk9WRV9FTkdJTkVfUEFZTUVOVCA9ICdBcHJvdmFyIG1vdG9yIGRlIHBhZ2FtZW50bycsXHJcbiAgRVhUUkFDVF9USElSRCA9ICdFeHRyYXRvIHRlcmNlaXJvJyxcclxuICBISVNUT1JJQ0FMX0NIQU5HRVNfR1JPVVBTID0gJ0hpc3RvcmljYWxDaGFuZ2VzR3JvdXBzJyxcclxuICBERUxFVEVfT05MWV9NRU1CRVJfR1JPVVBTID0gJ0RlbGV0ZSBPbmx5IE1lbWJlciBHcm91cHMnLFxyXG4gIEFERF9PTkxZX01FTUJFUl9HUk9VUFMgPSAnQWRkIE9ubHkgTWVtYmVyIEdyb3VwcycsXHJcbiAgU0hPV19HUk9VUFMgPSAnU2hvdyBHcm91cHMnLFxyXG4gIERFTEVURV9HUk9VUFMgPSAnRGVsZXRlIEdyb3VwcycsXHJcbiAgRURJVF9HUk9VUFMgPSAnRWRpdCBHcm91cHMnLFxyXG4gIEFERF9HUk9VUFMgPSAnQWRkIEdyb3VwcycsXHJcbiAgQUREX1VQREFURV9HRU9GRU5DRSA9ICdBZGQgVXBkYXRlIEdlb2ZlbmNlJyxcclxuICBTSE9XX0dFT0ZFTkNFID0gJ1Nob3cgR2VvZmVuY2UnLFxyXG4gIFNIT1dfR0VPRkVOQ0VfTE9HID0gJ1Nob3cgR2VvZmVuY2UgTG9nJyxcclxuICBISVNUT1JJQ0FMX0NIQU5HRVNfR0VPRkVOQ0UgPSAnSGlzdG9yaWNhbCBDaGFuZ2VzIEdlb2ZlbmNlJyxcclxuICBTSE9XX0RSSVZFUl9MT0cgPSAnU2hvdyBEcml2ZXIgTG9nJyxcclxuICBVUERBVEVfQ0hFQ0tJTl9DSEVDS09VVCA9ICdVcGRhdGUgQ2hlY2tJbiBDaGVja091dCcsXHJcbiAgQVVUT01BVElDX0NIRUNLSU4gPSAnQXV0b21hdGljIENoZWNrSW4nLFxyXG4gIFNIT1dfRklMVEVSU19NT05USExZX1JFQ0VQVElPTiA9ICdTaG93IEZpbHRlcnMgTW9udGhseSBSZWNlcHRpb24nLFxyXG4gIFZJRVdfUk9VVEVfVFJJUCA9ICdWaWV3IFJvdXRlIFRyaXAnLFxyXG4gIFNIT1dfUklTS19NQU5BR0VNRU5UID0gJ1Nob3cgUmlzayBNYW5hZ2VtZW50JyxcclxuICBBRERfUklTS19NQU5BR0VNRU5UID0gJ0FkZCBSaXNrIE1hbmFnZW1lbnQnLFxyXG4gIEVESVRfUklTS19NQU5BR0VNRU5UID0gJ0VkaXQgUmlzayBNYW5hZ2VtZW50JyxcclxuICBERUxFVEVfUklTS19NQU5BR0VNRU5UID0gJ0RlbGV0ZSBSaXNrIE1hbmFnZW1lbnQnLFxyXG4gIERJR0lUQUxfRElTQ0hBUkdFX0JBU0lDX0RBVEEgPSAnUXVpdGFjYW8gRGlnaXRhbCBCYXNpYyBEYXRhJyxcclxuICBESUdJVEFMX0RJU0NIQVJHRV9FVENEX0FQUFJPVkVSID0gJ1F1aXRhY2FvIERpZ2l0YWwgRVRDRCBBcHJvdmFkb3InLFxyXG4gIERJR0lUQUxfRElTQ0hBUkdFX0VUQ0RfQVBQUk9WRVJfTUFOQUdFTUVOVCA9ICdRdWl0YWNhbyBEaWdpdGFsIEVUQ0QgQXByb3ZhZG9yIEdlc3RvcicsXHJcbiAgRElHSVRBTF9ESVNDSEFSR0VfVkVDVE9SX0FQUFJPVkVSID0gJ1F1aXRhY2FvIERpZ2l0YWwgVmVjdG9yIEFwcm92YWRvcicsXHJcbiAgRElHSVRBTF9ESVNDSEFSR0VfVkVDVE9SX0FQUFJPVkVSX01BTkFHRU1FTlQgPSAnUXVpdGFjYW8gRGlnaXRhbCBWZWN0b3IgQXByb3ZhZG9yIEdlc3RvcicsXHJcbiAgRElHSVRBTF9ESVNDSEFSR0VfQVBQUk9WRV9TQVAgPSAnUXVpdGFjYW8gRGlnaXRhbCBBcHJvdmFkb3IgQ29udGluZ2VuY2lhIFNhcCcsXHJcbiAgUEFZTUVOVF9GUkVJR0hUX0FESlVTVF9GUkVJR0hUX1ZBTFVFID0gJ1BhZ2FtZW50byBGcmV0ZSBBanVzdGFyIFZhbG9yIEZyZXRlJyxcclxuICBTSE9XX01FU1NBR0VfQ1VTVE9NID0gJ1Nob3cgTWVzc2FnZXMgQ3VzdG9tJyxcclxuICBERUxFVEVfTUVTU0FHRV9DVVNUT00gPSAnRGVsZXRlIE1lc3NhZ2VzIEN1c3RvbScsXHJcbiAgQUREX01FU1NBR0VfQ1VTVE9NID0gJ0FkZCBNZXNzYWdlcyBDdXN0b20nLFxyXG4gIEVESVRfTUVTU0FHRV9DVVNUT00gPSAnRWRpdCBNZXNzYWdlcyBDdXN0b20nLFxyXG4gIFJFQ0VQVElPTl9XSVRIT1VUX1NDSEVEVUxJTkcgPSAnUmVjZXB0aW9uIFdpdGhvdXQgU2NoZWR1bGluZycsXHJcbiAgQkFOS19FRElUID0gJ0VkaXQnLFxyXG4gIEJBTktfUkVHSVNURVJfRlVMTCA9ICdDYWRhc3RybyBGdWxsJyxcclxuICBTRUFSQ0hfQ0FMRU5EQVJfRlVMTCA9ICdQZXNxdWlzYXIgQWdlbmRhIEZ1bGwnLFxyXG4gIFNIT1dfTU9WRU1FTlRfRVRDRCA9ICdTaG93IE1vdmVtZW50IEV0Y2QnLFxyXG4gIENSRUFURV9BTkRfRURJVF9OUFMgPSAnQ3JlYXRlIGFuZCBlZGl0IE5QUycsXHJcbiAgUkVBRF9OUFNfSU5GT1JNQVRJT04gPSAnUmVhZCBOUFMgaW5mb3JtYXRpb24nLFxyXG4gIEJJRERJTkdfUEFSQU1FVEVSUyA9ICdCaWRkaW5nIFBhcmFtZXRlcnMnXHJcbn1cclxuIl19
246
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12ZWN0b3ItY29tcG9uZW50cy9zcmMvbGliL21vZGVscy9wcm9maWxlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThCQSxNQUFNLENBQU4sSUFBWSxpQkFPWDtBQVBELFdBQVksaUJBQWlCO0lBQzNCLHFFQUFnRCxDQUFBO0lBQ2hELG1EQUE4QixDQUFBO0lBQzlCLHFFQUFzQyxDQUFBO0lBQ3RDLDZEQUF3QyxDQUFBO0lBQ3hDLDBEQUFxQyxDQUFBO0lBQ3JDLHNDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFQVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBTzVCO0FBRUQsTUFBTSxDQUFOLElBQVksdUJBME9YO0FBMU9ELFdBQVksdUJBQXVCO0lBQ2pDLHNEQUEyQixDQUFBO0lBQzNCLHdEQUE2QixDQUFBO0lBQzdCLDREQUFpQyxDQUFBO0lBQ2pDLHdEQUE2QixDQUFBO0lBQzdCLG9EQUF5QixDQUFBO0lBQ3pCLHNEQUEyQixDQUFBO0lBQzNCLDBEQUErQixDQUFBO0lBQy9CLHNEQUEyQixDQUFBO0lBQzNCLHNEQUEyQixDQUFBO0lBQzNCLHdEQUE2QixDQUFBO0lBQzdCLDREQUFpQyxDQUFBO0lBQ2pDLHdEQUE2QixDQUFBO0lBQzdCLHNEQUEyQixDQUFBO0lBQzNCLHdEQUE2QixDQUFBO0lBQzdCLDREQUFpQyxDQUFBO0lBQ2pDLHdEQUE2QixDQUFBO0lBQzdCLDBFQUErQyxDQUFBO0lBQy9DLGdEQUFxQixDQUFBO0lBQ3JCLGtEQUF1QixDQUFBO0lBQ3ZCLG9GQUF5RCxDQUFBO0lBQ3pELGtGQUF1RCxDQUFBO0lBQ3ZELG9GQUF5RCxDQUFBO0lBQ3pELDhFQUFtRCxDQUFBO0lBQ25ELDhFQUFtRCxDQUFBO0lBQ25ELHdEQUE2QixDQUFBO0lBQzdCLDZEQUFrQyxDQUFBO0lBQ2xDLDhFQUFtRCxDQUFBO0lBQ25ELDhFQUFtRCxDQUFBO0lBQ25ELHdEQUE2QixDQUFBO0lBQzdCLDBEQUErQixDQUFBO0lBQy9CLDBEQUErQixDQUFBO0lBQy9CLGdFQUFxQyxDQUFBO0lBQ3JDLGtFQUF1QyxDQUFBO0lBQ3ZDLGtFQUF1QyxDQUFBO0lBQ3ZDLHNFQUEyQyxDQUFBO0lBQzNDLDhEQUFtQyxDQUFBO0lBQ25DLDBEQUErQixDQUFBO0lBQy9CLDBEQUErQixDQUFBO0lBQy9CLDhEQUFtQyxDQUFBO0lBQ25DLHdEQUE2QixDQUFBO0lBQzdCLDhDQUFtQixDQUFBO0lBQ25CLGdEQUFxQixDQUFBO0lBQ3JCLG9EQUF5QixDQUFBO0lBQ3pCLGdEQUFxQixDQUFBO0lBQ3JCLDBEQUErQixDQUFBO0lBQy9CLHNEQUEyQixDQUFBO0lBQzNCLGtGQUF1RCxDQUFBO0lBQ3ZELG9GQUF5RCxDQUFBO0lBQ3pELG9GQUF5RCxDQUFBO0lBQ3pELDREQUFpQyxDQUFBO0lBQ2pDLDhEQUFtQyxDQUFBO0lBQ25DLGtFQUF1QyxDQUFBO0lBQ3ZDLGtHQUF1RSxDQUFBO0lBQ3ZFLG9HQUF5RSxDQUFBO0lBQ3pFLG9HQUF5RSxDQUFBO0lBQ3pFLDhEQUFtQyxDQUFBO0lBQ25DLDhEQUFtQyxDQUFBO0lBQ25DLG9HQUF5RSxDQUFBO0lBQ3pFLG9HQUF5RSxDQUFBO0lBQ3pFLG9GQUF5RCxDQUFBO0lBQ3pELHNGQUF1QyxDQUFBO0lBQ3ZDLG9FQUF5QyxDQUFBO0lBQ3pDLGtFQUF1QyxDQUFBO0lBQ3ZDLG9FQUF5QyxDQUFBO0lBQ3pDLGdFQUFxQyxDQUFBO0lBQ3JDLDhFQUFtRCxDQUFBO0lBQ25ELHdEQUE2QixDQUFBO0lBQzdCLDhGQUFtRSxDQUFBO0lBQ25FLDRGQUFpRSxDQUFBO0lBQ2pFLDRGQUFpRSxDQUFBO0lBQ2pFLDBGQUErRCxDQUFBO0lBQy9ELDRGQUFpRSxDQUFBO0lBQ2pFLGdHQUFxRSxDQUFBO0lBQ3JFLDBGQUErRCxDQUFBO0lBQy9ELHdGQUE2RCxDQUFBO0lBQzdELDBGQUErRCxDQUFBO0lBQy9ELDhGQUFtRSxDQUFBO0lBQ25FLHdGQUE2RCxDQUFBO0lBQzdELHNGQUEyRCxDQUFBO0lBQzNELHdGQUE2RCxDQUFBO0lBQzdELDRGQUFpRSxDQUFBO0lBQ2pFLDRGQUFpRSxDQUFBO0lBQ2pFLDBGQUErRCxDQUFBO0lBQy9ELDRGQUFpRSxDQUFBO0lBQ2pFLGdHQUFxRSxDQUFBO0lBQ3JFLDhFQUFtRCxDQUFBO0lBQ25ELDRFQUFpRCxDQUFBO0lBQ2pELGtFQUF1QyxDQUFBO0lBQ3ZDLG9FQUF5QyxDQUFBO0lBQ3pDLGtFQUF1QyxDQUFBO0lBQ3ZDLG9FQUF5QyxDQUFBO0lBQ3pDLHdFQUE2QyxDQUFBO0lBQzdDLDhFQUFtRCxDQUFBO0lBQ25ELDRFQUFpRCxDQUFBO0lBQ2pELDhFQUFtRCxDQUFBO0lBQ25ELHNFQUEyQyxDQUFBO0lBQzNDLG9FQUF5QyxDQUFBO0lBQ3pDLHNFQUEyQyxDQUFBO0lBQzNDLDBFQUErQyxDQUFBO0lBQy9DLG9FQUF5QyxDQUFBO0lBQ3pDLGtFQUF1QyxDQUFBO0lBQ3ZDLHdFQUE2QyxDQUFBO0lBQzdDLHNFQUEyQyxDQUFBO0lBQzNDLGtHQUF1RSxDQUFBO0lBQ3ZFLHdIQUE2RixDQUFBO0lBQzdGLGtIQUF1RixDQUFBO0lBQ3ZGLGdFQUFxQyxDQUFBO0lBQ3JDLDhEQUFtQyxDQUFBO0lBQ25DLDhEQUFtQyxDQUFBO0lBQ25DLHdEQUE2QixDQUFBO0lBQzdCLGtEQUF1QixDQUFBO0lBQ3ZCLGdEQUFxQixDQUFBO0lBQ3JCLGtEQUF1QixDQUFBO0lBQ3ZCLHNEQUEyQixDQUFBO0lBQzNCLG9EQUF5QixDQUFBO0lBQ3pCLHNEQUEyQixDQUFBO0lBQzNCLHNEQUEyQixDQUFBO0lBQzNCLHVFQUE0QyxDQUFBO0lBQzVDLHlFQUE4QyxDQUFBO0lBQzlDLHlFQUE4QyxDQUFBO0lBQzlDLDZFQUFrRCxDQUFBO0lBQ2xELHdEQUE2QixDQUFBO0lBQzdCLDBEQUErQixDQUFBO0lBQy9CLDBEQUErQixDQUFBO0lBQy9CLDRFQUFpRCxDQUFBO0lBQ2pELGdGQUFxRCxDQUFBO0lBQ3JELDhFQUFtRCxDQUFBO0lBQ25ELGdFQUFxQyxDQUFBO0lBQ3JDLGtEQUF1QixDQUFBO0lBQ3ZCLGdEQUFxQixDQUFBO0lBQ3JCLGtEQUF1QixDQUFBO0lBQ3ZCLHNEQUEyQixDQUFBO0lBQzNCLDhFQUFtRCxDQUFBO0lBQ25ELDBHQUErRSxDQUFBO0lBQy9FLDRHQUFpRixDQUFBO0lBQ2pGLDRHQUFpRixDQUFBO0lBQ2pGLGdIQUFxRixDQUFBO0lBQ3JGLG1IQUF3RixDQUFBO0lBQ3hGLHFIQUEwRixDQUFBO0lBQzFGLHFIQUEwRixDQUFBO0lBQzFGLHlIQUE4RixDQUFBO0lBQzlGLDJEQUFnQyxDQUFBO0lBQ2hDLHVEQUE0QixDQUFBO0lBQzVCLHVFQUE0QyxDQUFBO0lBQzVDLDRFQUFpRCxDQUFBO0lBQ2pELDRFQUFpRCxDQUFBO0lBQ2pELGdGQUFxRCxDQUFBO0lBQ3JELDBFQUErQyxDQUFBO0lBQy9DLDRFQUFpRCxDQUFBO0lBQ2pELHdGQUE2RCxDQUFBO0lBQzdELGtEQUF1QixDQUFBO0lBQ3ZCLGtEQUF1QixDQUFBO0lBQ3ZCLHNEQUEyQixDQUFBO0lBQzNCLGdEQUFxQixDQUFBO0lBQ3JCLG9FQUF5QyxDQUFBO0lBQ3pDLHNFQUEyQyxDQUFBO0lBQzNDLHNFQUEyQyxDQUFBO0lBQzNDLG9FQUF5QyxDQUFBO0lBQ3pDLDBFQUErQyxDQUFBO0lBQy9DLHdFQUE2QyxDQUFBO0lBQzdDLHdFQUE2QyxDQUFBO0lBQzdDLHNFQUEyQyxDQUFBO0lBQzNDLDRFQUFpRCxDQUFBO0lBQ2pELG9FQUF5QyxDQUFBO0lBQ3pDLG9FQUF5QyxDQUFBO0lBQ3pDLGtFQUF1QyxDQUFBO0lBQ3ZDLHdFQUE2QyxDQUFBO0lBQzdDLHdFQUE2QyxDQUFBO0lBQzdDLGdFQUFxQyxDQUFBO0lBQ3JDLGtFQUF1QyxDQUFBO0lBQ3ZDLGtFQUF1QyxDQUFBO0lBQ3ZDLHNFQUEyQyxDQUFBO0lBQzNDLHNFQUEyQyxDQUFBO0lBQzNDLHdFQUE2QyxDQUFBO0lBQzdDLHdFQUE2QyxDQUFBO0lBQzdDLGdFQUFxQyxDQUFBO0lBQ3JDLGtFQUF1QyxDQUFBO0lBQ3ZDLDRFQUFpRCxDQUFBO0lBQ2pELDRFQUFpRCxDQUFBO0lBQ2pELDRFQUFpRCxDQUFBO0lBQ2pELDhFQUFtRCxDQUFBO0lBQ25ELGtGQUF1RCxDQUFBO0lBQ3ZELHdFQUE2QyxDQUFBO0lBQzdDLHdFQUE2QyxDQUFBO0lBQzdDLGtFQUF1QyxDQUFBO0lBQ3ZDLDBFQUErQyxDQUFBO0lBQy9DLHNEQUEyQixDQUFBO0lBQzNCLCtEQUFvQyxDQUFBO0lBQ3BDLDBFQUErQyxDQUFBO0lBQy9DLHlFQUE4QyxDQUFBO0lBQzlDLDJFQUFnRCxDQUFBO0lBQ2hELGdGQUFxRCxDQUFBO0lBQ3JELDZEQUFrQyxDQUFBO0lBQ2xDLGdGQUFxRCxDQUFBO0lBQ3JELGtGQUF1RCxDQUFBO0lBQ3ZELDRFQUFpRCxDQUFBO0lBQ2pELHNEQUEyQixDQUFBO0lBQzNCLDBEQUErQixDQUFBO0lBQy9CLHNEQUEyQixDQUFBO0lBQzNCLG9EQUF5QixDQUFBO0lBQ3pCLHNFQUEyQyxDQUFBO0lBQzNDLDBEQUErQixDQUFBO0lBQy9CLGtFQUF1QyxDQUFBO0lBQ3ZDLHNGQUEyRCxDQUFBO0lBQzNELDhEQUFtQyxDQUFBO0lBQ25DLDhFQUFtRCxDQUFBO0lBQ25ELGtFQUF1QyxDQUFBO0lBQ3ZDLDRGQUFpRSxDQUFBO0lBQ2pFLDhEQUFtQyxDQUFBO0lBQ25DLHdFQUE2QyxDQUFBO0lBQzdDLHNFQUEyQyxDQUFBO0lBQzNDLHdFQUE2QyxDQUFBO0lBQzdDLDRFQUFpRCxDQUFBO0lBQ2pELHVGQUE0RCxDQUFBO0lBQzVELDhGQUFtRSxDQUFBO0lBQ25FLGdIQUFxRixDQUFBO0lBQ3JGLGtHQUF1RSxDQUFBO0lBQ3ZFLG9IQUF5RixDQUFBO0lBQ3pGLHdHQUE2RSxDQUFBO0lBQzdFLHVHQUE0RSxDQUFBO0lBQzVFLHVFQUE0QyxDQUFBO0lBQzVDLDJFQUFnRCxDQUFBO0lBQ2hELHFFQUEwQyxDQUFBO0lBQzFDLHVFQUE0QyxDQUFBO0lBQzVDLHdGQUE2RCxDQUFBO0lBQzdELDZDQUFrQixDQUFBO0lBQ2xCLCtEQUFvQyxDQUFBO0lBQ3BDLHlFQUE4QyxDQUFBO0lBQzlDLG9FQUF5QyxDQUFBO0lBQ3pDLHNFQUEyQyxDQUFBO0lBQzNDLHdFQUE2QyxDQUFBO0lBQzdDLHlFQUE4QyxDQUFBO0lBQzlDLG9FQUF5QyxDQUFBO0FBQzNDLENBQUMsRUExT1csdUJBQXVCLEtBQXZCLHVCQUF1QixRQTBPbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhVGFibGVCYXNlSXRlbSB9IGZyb20gJy4vZGF0YS10YWJsZS5tb2RlbCc7XHJcblxyXG5leHBvcnQgdHlwZSBQcm9maWxlID0ge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHByb2ZpbGVUeXBlSWQ6IG51bWJlcjtcclxuICBQcm9maWxlVHlwZU5hbWU6IHN0cmluZztcclxuICBtb2R1bGVzOiBQcm9maWxlTW9kdWxlW107XHJcbiAgYWN0aXZlOiBib29sZWFuO1xyXG59ICYgRGF0YVRhYmxlQmFzZUl0ZW07XHJcblxyXG5leHBvcnQgdHlwZSBQcm9maWxlTW9kdWxlID0ge1xyXG4gIG1lbnU6IHN0cmluZztcclxuICBhY3Rpb25zOiBQcm9maWxlTW9kdWxlQWN0aW9uW107XHJcbn0gJiBQcm9maWxlTW9kdWxlQmFzZTtcclxuXHJcbmV4cG9ydCB0eXBlIFByb2ZpbGVNb2R1bGVHcm91cGVkQnlNZW51ID0ge1xyXG4gIG1lbnU6IHN0cmluZztcclxuICBtb2R1bGVzOiBQcm9maWxlTW9kdWxlW107XHJcbiAgY2hpbGRyZW4/OiBQcm9maWxlTW9kdWxlR3JvdXBlZEJ5TWVudVtdO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgUHJvZmlsZU1vZHVsZUFjdGlvbiA9IHt9ICYgUHJvZmlsZU1vZHVsZUJhc2U7XHJcblxyXG5leHBvcnQgdHlwZSBQcm9maWxlTW9kdWxlQmFzZSA9IHtcclxuICBpZDogbnVtYmVyO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBpc0F2YWlsYWJsZT86IGJvb2xlYW47XHJcbn07XHJcblxyXG5leHBvcnQgZW51bSBQcm9maWxlTW9kdWxlVHlwZSB7XHJcbiAgT1BFUkFUSU9OQUxfRVZBTFVBVElPTiA9ICdPcGVyYXRpb25hbEV2YWx1YXRpb24nLFxyXG4gIEFETUlOX1NVUlZFWVMgPSAnQWRtaW5TdXJ2ZXlzJyxcclxuICBESUdJVEFMX0RJU0NIQVJHRSA9ICdRdWl0YcOnw6NvIERpZ2l0YWwnLFxyXG4gIFJFR0lTVEVSX09QRVJBVElPTiA9ICdSZWdpc3Rlck9wZXJhdGlvbicsXHJcbiAgUkVHSVNURVJfUFJPRFVDVFMgPSAnUmVnaXN0ZXJQcm9kdWN0JyxcclxuICBBRE1JTl9OUFMgPSAnTlBTJyxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gUHJvZmlsZU1vZHVsZUFjdGlvblR5cGUge1xyXG4gIEFERF9WRUhJQ0xFID0gJ0FkZCBWZWhpY2xlJyxcclxuICBFRElUX1ZFSElDTEUgPSAnRWRpdCBWZWhpY2xlJyxcclxuICBERUxFVEVfVkVISUNMRSA9ICdEZWxldGUgVmVoaWNsZScsXHJcbiAgU0hPV19WRUhJQ0xFID0gJ1Nob3cgVmVoaWNsZScsXHJcbiAgQUREX0RSSVZFUiA9ICdBZGQgRHJpdmVyJyxcclxuICBFRElUX0RSSVZFUiA9ICdFZGl0IERyaXZlcicsXHJcbiAgREVMRVRFX0RSSVZFUiA9ICdEZWxldGUgRHJpdmVyJyxcclxuICBTSE9XX0RSSVZFUiA9ICdTaG93IERyaXZlcicsXHJcbiAgQUREX0NBUlJJRVIgPSAnQWRkIENhcnJpZXInLFxyXG4gIEVESVRfQ0FSUklFUiA9ICdFZGl0IENhcnJpZXInLFxyXG4gIERFTEVURV9DQVJSSUVSID0gJ0RlbGV0ZSBDYXJyaWVyJyxcclxuICBTSE9XX0NBUlJJRVIgPSAnU2hvdyBDYXJyaWVyJyxcclxuICBBRERfUFJPRklMRSA9ICdBZGQgUHJvZmlsZScsXHJcbiAgRURJVF9QUk9GSUxFID0gJ0VkaXQgUHJvZmlsZScsXHJcbiAgREVMRVRFX1BST0ZJTEUgPSAnRGVsZXRlIFByb2ZpbGUnLFxyXG4gIFNIT1dfUFJPRklMRSA9ICdTaG93IFByb2ZpbGUnLFxyXG4gIEVESVRfQlJPQURDQVNUX1ZBTFVFUyA9ICdFZGl0IEJyb2FkY2FzdCBWYWx1ZXMnLFxyXG4gIEFERF9XQVZFID0gJ0FkZCBXYXZlJyxcclxuICBFRElUX1dBVkUgPSAnRWRpdCBXYXZlJyxcclxuICBISVNUT1JJQ0FMX0NIQU5HRVNfVkVISUNMRSA9ICdIaXN0b3JpY2FsIENoYW5nZXMgVmVoaWNsZScsXHJcbiAgSElTVE9SSUNBTF9DSEFOR0VTX0RSSVZFUiA9ICdIaXN0b3JpY2FsIENoYW5nZXMgRHJpdmVyJyxcclxuICBISVNUT1JJQ0FMX0NIQU5HRVNfQ0FSUklFUiA9ICdIaXN0b3JpY2FsIENoYW5nZXMgQ2FycmllcicsXHJcbiAgSElTVE9SSUNBTF9DSEFOR0VTX1RSSVAgPSAnSGlzdG9yaWNhbCBDaGFuZ2VzIFRyaXAnLFxyXG4gIEhJU1RPUklDQUxfQ0hBTkdFU19VU0VSID0gJ0hpc3RvcmljYWwgQ2hhbmdlcyBVc2VyJyxcclxuICBDQU5DRUxfVFJJUFMgPSAnQ2FuY2VsIFRyaXBzJyxcclxuICBDQU5DRUxfVFJJUFNQQSA9ICdDYW5jZWwgVHJpcHMgUEEnLFxyXG4gIE1BTlVBTF9VUExPQURfRE9DVU1FTlRTID0gJ01hbnVhbCBVcGxvYWQgRG9jdW1lbnRzJyxcclxuICBISVNUT1JJQ0FMX0NIQU5HRVNfTE9UUyA9ICdIaXN0b3JpY2FsIENoYW5nZXMgTG90cycsXHJcbiAgQUREX0xPQ0FUSU9OID0gJ0FkZCBMb2NhdGlvbicsXHJcbiAgRURJVF9MT0NBVElPTiA9ICdFZGl0IExvY2F0aW9uJyxcclxuICBTSE9XX0xPQ0FUSU9OID0gJ1Nob3cgTG9jYXRpb24nLFxyXG4gIEFERF9SRVNUUklDVElPTlMgPSAnQWRkIFJlc3RyaWN0aW9ucycsXHJcbiAgRURJVF9SRVNUUklDVElPTlMgPSAnRWRpdCBSZXN0cmljdGlvbnMnLFxyXG4gIFNIT1dfUkVTVFJJQ1RJT05TID0gJ1Nob3cgUmVzdHJpY3Rpb25zJyxcclxuICBERUxFVEVfUkVTVFJJQ1RJT05TID0gJ0RlbGV0ZSBSZXN0cmljdGlvbnMnLFxyXG4gIERFTEVURV9MT0NBVElPTiA9ICdEZWxldGUgTG9jYXRpb24nLFxyXG4gIFNIT1dfTUVTU0FHRVMgPSAnU2hvdyBNZXNzYWdlcycsXHJcbiAgRURJVF9NRVNTQUdFUyA9ICdFZGl0IE1lc3NhZ2VzJyxcclxuICBERUxFVEVfTUVTU0FHRVMgPSAnRGVsZXRlIE1lc3NhZ2VzJyxcclxuICBBRERfTUVTU0FHRVMgPSAnQWRkIE1lc3NhZ2VzJyxcclxuICBBRERfTE9UID0gJ0FkZCBMb3QnLFxyXG4gIEVESVRfTE9UID0gJ0VkaXQgTG90JyxcclxuICBERUxFVEVfTE9UID0gJ0RlbGV0ZSBMb3QnLFxyXG4gIFNIT1dfTE9UID0gJ1Nob3cgTG90JyxcclxuICBBQ0NFUFRfQ1JFRElUID0gJ0FjY2VwdCBDcmVkaXQnLFxyXG4gIFNIT1dfQ1JFRElUID0gJ1Nob3cgQ3JlZGl0JyxcclxuICBBRERfVkVISUNMRV9DT05GSUdVUkFUSU9OID0gJ0FkZCBWZWhpY2xlIENvbmZpZ3VyYXRpb24nLFxyXG4gIEVESVRfVkVISUNMRV9DT05GSUdVUkFUSU9OID0gJ0VkaXQgVmVoaWNsZSBDb25maWd1cmF0aW9uJyxcclxuICBTSE9XX1ZFSElDTEVfQ09ORklHVVJBVElPTiA9ICdTaG93IFZlaGljbGUgQ29uZmlndXJhdGlvbicsXHJcbiAgQUREX1NDSEVEVUxJTkcgPSAnQWRkIFNjaGVkdWxpbmcnLFxyXG4gIEVESVRfU0NIRURVTElORyA9ICdFZGl0IFNjaGVkdWxpbmcnLFxyXG4gIERFTEVURV9TQ0hFRFVMSU5HID0gJ0RlbGV0ZSBTY2hlZHVsaW5nJyxcclxuICBBRERfVkVISUNMRV9DT05GSUdVUkFUSU9OX1NISVBQRVIgPSAnQWRkIFZlaGljbGUgQ29uZmlndXJhdGlvbiBTaGlwcGVyJyxcclxuICBFRElUX1ZFSElDTEVfQ09ORklHVVJBVElPTl9TSElQUEVSID0gJ0VkaXQgVmVoaWNsZSBDb25maWd1cmF0aW9uIFNoaXBwZXInLFxyXG4gIFNIT1dfVkVISUNMRV9DT05GSUdVUkFUSU9OX1NISVBQRVIgPSAnU2hvdyBWZWhpY2xlIENvbmZpZ3VyYXRpb24gU2hpcHBlcicsXHJcbiAgRURJVF9UUklQX0JVTkdFID0gJ0VkaXQgdHJpcCBCdW5nZScsXHJcbiAgRURJVF9UUklQX0NPRkNPID0gJ0VkaXQgdHJpcCBDb2ZjbycsXHJcbiAgU0hPV19NSU5JTVVNX1RSQU5TUE9SVF9QUklDRV9UQUJMRSA9ICdTaG93IE1pbmltdW0gVHJhbnNwb3J0IFByaWNlIFRhYmxlJyxcclxuICBFRElUX01JTklNVU1fVFJBTlNQT1JUX1BSSUNFX1RBQkxFID0gJ0VkaXQgTWluaW11bSBUcmFuc3BvcnQgUHJpY2UgVGFibGUnLFxyXG4gIEhJU1RPUklDQUxfQ0hBTkdFU19DUkVESVRTID0gJ0hpc3RvcmljYWwgQ2hhbmdlcyBDcmVkaXRzJyxcclxuICBJTlRFR1JBw4fDg09fUEFHQkVNID0gJ0ludGVncmHDp8OjbyBQYWdiZW0nLFxyXG4gIFZBTElEQVRJT05fQ0FSUklFUiA9ICdWYWxpZGF0aW9uIENhcnJpZXInLFxyXG4gIFZBTElEQVRJT05fRFJJVkVSID0gJ1ZhbGlkYXRpb24gRHJpdmVyJyxcclxuICBWQUxJREFUSU9OX1ZFSElDTEUgPSAnVmFsaWRhdGlvbiBWZWhpY2xlJyxcclxuICBFRElUX1RSSVBfU1RBVFVTID0gJ0VkaXQgdHJpcCBzdGF0dXMnLFxyXG4gIFJFR0lTVFJBVElPTl9WQUxJREFUSU9OID0gJ1JlZ2lzdHJhdGlvbiBWYWxpZGF0aW9uJyxcclxuICBCM19PUEVSQVRJT04gPSAnQjMgT3BlcmF0aW9uJyxcclxuICBTSE9XX0NBUlJJRVJfREVUQUlMX0lOVEVHUkFUSU9OID0gJ1Nob3cgQ2FycmllciBEZXRhaWwgSW50ZWdyYXRpb24nLFxyXG4gIFNIT1dfRFJJVkVSX0RFVEFJTF9JTlRFR1JBVElPTiA9ICdTaG93IERyaXZlciBEZXRhaWwgSW50ZWdyYXRpb24nLFxyXG4gIEZVRUxTX1NIT1dfRElTVFJJQlVUSU9OX0NFTlRFUiA9ICdGdWVscyBzaG93IGRpc3RyaWJ1dGlvbiBjZW50ZXInLFxyXG4gIEZVRUxTX0FERF9ESVNUUklCVVRJT05fQ0VOVEVSID0gJ0Z1ZWxzIGFkZCBkaXN0cmlidXRpb24gY2VudGVyJyxcclxuICBGVUVMU19FRElUX0RJU1RSSUJVVElPTl9DRU5URVIgPSAnRnVlbHMgZWRpdCBkaXN0cmlidXRpb24gY2VudGVyJyxcclxuICBGVUVMU19ERUxFVEVfRElTVFJJQlVUSU9OX0NFTlRFUiA9ICdGdWVscyBkZWxldGUgZGlzdHJpYnV0aW9uIGNlbnRlcicsXHJcbiAgRlVFTFNfU0hPV19ESVNUUklCVVRJT05fUE9JTlQgPSAnRnVlbHMgc2hvdyBkaXN0cmlidXRpb24gcG9pbnQnLFxyXG4gIEZVRUxTX0FERF9ESVNUUklCVVRJT05fUE9JTlQgPSAnRnVlbHMgYWRkIGRpc3RyaWJ1dGlvbiBwb2ludCcsXHJcbiAgRlVFTFNfRURJVF9ESVNUUklCVVRJT05fUE9JTlQgPSAnRnVlbHMgZWRpdCBkaXN0cmlidXRpb24gcG9pbnQnLFxyXG4gIEZVRUxTX0RFTEVURV9ESVNUUklCVVRJT05fUE9JTlQgPSAnRnVlbHMgZGVsZXRlIGRpc3RyaWJ1dGlvbiBwb2ludCcsXHJcbiAgRlVFTFNfU0hPV19ESVNUUklCVVRJT05fUE9TVCA9ICdGdWVscyBzaG93IGRpc3RyaWJ1dGlvbiBwb3N0JyxcclxuICBGVUVMU19BRERfRElTVFJJQlVUSU9OX1BPU1QgPSAnRnVlbHMgYWRkIGRpc3RyaWJ1dGlvbiBwb3N0JyxcclxuICBGVUVMU19FRElUX0RJU1RSSUJVVElPTl9QT1NUID0gJ0Z1ZWxzIGVkaXQgZGlzdHJpYnV0aW9uIHBvc3QnLFxyXG4gIEZVRUxTX0RFTEVURV9ESVNUUklCVVRJT05fUE9TVCA9ICdGdWVscyBkZWxldGUgZGlzdHJpYnV0aW9uIHBvc3QnLFxyXG4gIEZVRUxTX1NIT1dfTUFSS0VUUExBQ0VfUFJPRFVDVCA9ICdGdWVscyBzaG93IG1hcmtldHBsYWNlIHByb2R1Y3QnLFxyXG4gIEZVRUxTX0FERF9NQVJLRVRQTEFDRV9QUk9EVUNUID0gJ0Z1ZWxzIGFkZCBtYXJrZXRwbGFjZSBwcm9kdWN0JyxcclxuICBGVUVMU19FRElUX01BUktFVFBMQUNFX1BST0RVQ1QgPSAnRnVlbHMgZWRpdCBtYXJrZXRwbGFjZSBwcm9kdWN0JyxcclxuICBGVUVMU19ERUxFVEVfTUFSS0VUUExBQ0VfUFJPRFVDVCA9ICdGdWVscyBkZWxldGUgbWFya2V0cGxhY2UgcHJvZHVjdCcsXHJcbiAgRlVFTFNfU0hPV19TVE9DS19VUERBVEUgPSAnRnVlbHMgc2hvdyBzdG9jayB1cGRhdGUnLFxyXG4gIEZVRUxTX0FERF9TVE9DS19VUERBVEUgPSAnRnVlbHMgYWRkIHN0b2NrIHVwZGF0ZScsXHJcbiAgU0hPV19NQVJLRVRQTEFDRVMgPSAnU2hvdyBtYXJrZXRwbGFjZXMnLFxyXG4gIEZVRUxTX1NIT1dfREVQT1NJVCA9ICdGdWVscyBzaG93IGRlcG9zaXQnLFxyXG4gIEZVRUxTX0FERF9ERVBPU0lUID0gJ0Z1ZWxzIGFkZCBkZXBvc2l0JyxcclxuICBGVUVMU19FRElUX0RFUE9TSVQgPSAnRnVlbHMgZWRpdCBkZXBvc2l0JyxcclxuICBGVUVMU19ERUxFVEVfREVQT1NJVCA9ICdGdWVscyBkZWxldGUgZGVwb3NpdCcsXHJcbiAgRlVFTFNfU0hPV19TVVBQTFlfT0ZGRVIgPSAnRnVlbHMgc2hvdyBzdXBwbHkgb2ZmZXInLFxyXG4gIEZVRUxTX0FERF9TVVBQTFlfT0ZGRVIgPSAnRnVlbHMgYWRkIHN1cHBseSBvZmZlcicsXHJcbiAgRlVFTFNfRURJVF9TVVBQTFlfT0ZGRVIgPSAnRnVlbHMgZWRpdCBzdXBwbHkgb2ZmZXInLFxyXG4gIEZVRUxTX1NIT1dfT1BFUkFUT1IgPSAnRnVlbHMgc2hvdyBvcGVyYXRvcicsXHJcbiAgRlVFTFNfQUREX09QRVJBVE9SID0gJ0Z1ZWxzIGFkZCBvcGVyYXRvcicsXHJcbiAgRlVFTFNfRURJVF9PUEVSQVRPUiA9ICdGdWVscyBlZGl0IG9wZXJhdG9yJyxcclxuICBGVUVMU19ERUxFVEVfT1BFUkFUT1IgPSAnRnVlbHMgZGVsZXRlIG9wZXJhdG9yJyxcclxuICBGSU5URUNIX0JBTktfQURNSU4gPSAnRmludGVjaCBCYW5rIEFkbWluJyxcclxuICBGSU5URUNIX0JBTktfVVNFUiA9ICdGaW50ZWNoIEJhbmsgVXNlcicsXHJcbiAgRklOVEVDSF9DUkVESVRfQURNSU4gPSAnRmludGVjaCBDcmVkaXQgQWRtaW4nLFxyXG4gIEZJTlRFQ0hfQ1JFRElUX1VTRVIgPSAnRmludGVjaCBDcmVkaXQgVXNlcicsXHJcbiAgRklOVEVDSF9CQU5LX0FETUlOX0FDQ09VTlRTX1ZJRVcgPSAnRmludGVjaCBCYW5rIEFkbWluIC0gQWNjb3VudHMgVmlldycsXHJcbiAgRklOVEVDSF9DUkVESVRfQURNSU5fUFJPUE9TQUxfTk9UX0NPTkZJUk1FRCA9ICdGaW50ZWNoIENyZWRpdCBBZG1pbiAtIFByb3Bvc2FsIE5vdCBDb25maXJtZWQnLFxyXG4gIEZJTlRFQ0hfQ1JFRElUX0FETUlOX0NPTlRSQUNUU19GT0xMT1dfVVAgPSAnRmludGVjaCBDcmVkaXQgQWRtaW4gLSBDb250cmFjdHMgRm9sbG93LVVwJyxcclxuICBBRE1JTl9NQVJLRVBMQUNFID0gJ0FkbWluIE1hcmtlcGxhY2UnLFxyXG4gIEFQUFJPVkVfUkVRVUVTVCA9ICdBcHByb3ZlIFJlcXVlc3QnLFxyXG4gIFJFUFJPVkVfUkVRVUVTVCA9ICdSZXByb3ZlIFJlcXVlc3QnLFxyXG4gIFNIT1dfUkVRVUVTVCA9ICdTaG93IFJlcXVlc3QnLFxyXG4gIFNIT1dfVVNFUiA9ICdTaG93IFVzZXInLFxyXG4gIEFERF9VU0VSID0gJ0FkZCBVc2VyJyxcclxuICBFRElUX1VTRVIgPSAnRWRpdCBVc2VyJyxcclxuICBERUxFVEVfVVNFUiA9ICdEZWxldGUgVXNlcicsXHJcbiAgQUREX1JFR0lPTiA9ICdBZGQgUmVnaW9uJyxcclxuICBTSE9XX1JFR0lPTiA9ICdTaG93IFJlZ2lvbicsXHJcbiAgRURJVF9SRUdJT04gPSAnRWRpdCBSZWdpb24nLFxyXG4gIEFERF9MT0NBVElPTl9TSElQUEVSID0gJ0FkZCBMb2NhdGlvblNoaXBwZXInLFxyXG4gIEVESVRfTE9DQVRJT05fU0hJUFBFUiA9ICdFZGl0IExvY2F0aW9uU2hpcHBlcicsXHJcbiAgU0hPV19MT0NBVElPTl9TSElQUEVSID0gJ1Nob3cgTG9jYXRpb25TaGlwcGVyJyxcclxuICBERUxFVEVfTE9DQVRJT05fU0hJUFBFUiA9ICdEZWxldGUgTG9jYXRpb25TaGlwcGVyJyxcclxuICBBRERfU0NIRURVTEUgPSAnQWRkIFNjaGVkdWxlJyxcclxuICBFRElUX1NDSEVEVUxFID0gJ0VkaXQgU2NoZWR1bGUnLFxyXG4gIFNIT1dfU0NIRURVTEUgPSAnU2hvdyBTY2hlZHVsZScsXHJcbiAgQUREX1ZBQ0FOQ0lFU19MT0dJU1RJQyA9ICdBZGQgVmFjYW5jaWVzIExvZ2lzdGljJyxcclxuICBBRERfVkFDQU5DSUVTX0NPTU1FUkNJQUwgPSAnQWRkIFZhY2FuY2llcyBDb21tZXJjaWFsJyxcclxuICBTSE9XX1ZBQ0FOQ0lFU19DT01QTEVURSA9ICdTaG93IFZhY2FuY2llcyBDb21wbGV0ZScsXHJcbiAgQUREX1NDSEVEVUxFX09GRiA9ICdBZGQgU2NoZWR1bGUgT2ZmJyxcclxuICBTSE9XX05FV1MgPSAnU2hvdyBOZXdzJyxcclxuICBBRERfTkVXUyA9ICdBZGQgTmV3cycsXHJcbiAgRURJVF9ORVdTID0gJ0VkaXQgTmV3cycsXHJcbiAgREVMRVRFX05FV1MgPSAnRGVsZXRlIE5ld3MnLFxyXG4gIEhJU1RPUklDQUxfQ0hBTkdFU19ORVdTID0gJ0hpc3RvcmljYWwgQ2hhbmdlcyBOZXdzJyxcclxuICBBRERfRElTVFJJQlVUSU9OX0NFTlRFUl9DT01QQU5ZX0NSRURJVCA9ICdBZGQgRGlzdHJpYnV0aW9uQ2VudGVyc0NvbXBhbnlDcmVkaXQnLFxyXG4gIEVESVRfRElTVFJJQlVUSU9OX0NFTlRFUl9DT01QQU5ZX0NSRURJVCA9ICdFZGl0IERpc3RyaWJ1dGlvbkNlbnRlcnNDb21wYW55Q3JlZGl0JyxcclxuICBTSE9XX0RJU1RSSUJVVElPTl9DRU5URVJfQ09NUEFOWV9DUkVESVQgPSAnU2hvdyBEaXN0cmlidXRpb25DZW50ZXJzQ29tcGFueUNyZWRpdCcsXHJcbiAgREVMRVRFX0RJU1RSSUJVVElPTl9DRU5URVJfQ09NUEFOWV9DUkVESVQgPSAnRGVsZXRlIERpc3RyaWJ1dGlvbkNlbnRlcnNDb21wYW55Q3JlZGl0JyxcclxuICBBRERfRElTVFJJQlVUSU9OX0NFTlRFUl9DT01QQU5ZX0NSRURJVF9VTklUID0gJ0FkZCBEaXN0cmlidXRpb25DZW50ZXJzQ29tcGFueVVuaXRDcmVkaXQnLFxyXG4gIEVESVRfRElTVFJJQlVUSU9OX0NFTlRFUl9DT01QQU5ZX0NSRURJVF9VTklUID0gJ0VkaXQgRGlzdHJpYnV0aW9uQ2VudGVyc0NvbXBhbnlVbml0Q3JlZGl0JyxcclxuICBTSE9XX0RJU1RSSUJVVElPTl9DRU5URVJfQ09NUEFOWV9DUkVESVRfVU5JVCA9ICdTaG93IERpc3RyaWJ1dGlvbkNlbnRlcnNDb21wYW55VW5pdENyZWRpdCcsXHJcbiAgREVMRVRFX0RJU1RSSUJVVElPTl9DRU5URVJfQ09NUEFOWV9DUkVESVRfVU5JVCA9ICdEZWxldGUgRGlzdHJpYnV0aW9uQ2VudGVyc0NvbXBhbnlVbml0Q3JlZGl0JyxcclxuICBBUFBST1ZFX1ZFQ1RPUiA9ICdBcHByb3ZlVmVjdG9yJyxcclxuICBBUFBST1ZFX0VUQ0QgPSAnQXBwcm92ZUVUQ0QnLFxyXG4gIERFTEVURV9QQVJBTUVURVJTX0VUQ0QgPSAnRGVsZXRlIFBhcmFtZXRlcnMnLFxyXG4gIFNIT1dfUkVDRVBUSU9OX1BST0RVQ1QgPSAnU2hvdyBSZWNlcHRpb24gUHJvZHVjdCcsXHJcbiAgRURJVF9SRUNFUFRJT05fUFJPRFVDVCA9ICdFZGl0IFJlY2VwdGlvbiBQcm9kdWN0JyxcclxuICBERUxFVEVfUkVDRVBUSU9OX1BST0RVQ1QgPSAnRGVsZXRlIFJlY2VwdGlvbiBQcm9kdWN0JyxcclxuICBBRERfUkVDRVBUSU9OX1BST0RVQ1QgPSAnQWRkIFJlY2VwdGlvbiBQcm9kdWN0JyxcclxuICBTSE9XX0RJR0lUQUxfRElTQ0hBUkdFID0gJ1Nob3cgRGlnaXRhbCBEaXNjaGFyZ2UnLFxyXG4gIFNIT1dfRElHSVRBTF9ESVNDSEFSR0VfRklMRVMgPSAnU2hvdyBEaWdpdGFsIERpc2NoYXJnZSBGaWxlcycsXHJcbiAgU0hPV19FVENEID0gJ1Nob3cgRVRDRCcsXHJcbiAgRURJVF9FVENEID0gJ0VkaXQgRVRDRCcsXHJcbiAgREVMRVRFX0VUQ0QgPSAnRGVsZXRlIEVUQ0QnLFxyXG4gIEFERF9FVENEID0gJ0FkZCBFVENEJyxcclxuICBTSE9XX1JFR0lPTkFMX0VUQ0QgPSAnU2hvdyBSZWdpb25hbCBFVENEJyxcclxuICBTSE9XX1ZJUlRVQUxfQlJBTkNIID0gJ1Nob3cgVmlydHVhbCBCcmFuY2gnLFxyXG4gIEVESVRfVklSVFVBTF9CUkFOQ0ggPSAnRWRpdCBWaXJ0dWFsIEJyYW5jaCcsXHJcbiAgQUREX1ZJUlRVQUxfQlJBTkNIID0gJ0FkZCBWaXJ0dWFsIEJyYW5jaCcsXHJcbiAgREVMRVRFX1ZJUlRVQUxfQlJBTkNIID0gJ0RlbGV0ZSBWaXJ0dWFsIEJyYW5jaCcsXHJcbiAgU0hPV19QSFlTSUNBTF9CUkFOQ0ggPSAnU2hvdyBQaHlzaWNhbCBCcmFuY2gnLFxyXG4gIEVESVRfUEhZU0lDQUxfQlJBTkNIID0gJ0VkaXQgUGh5c2ljYWwgQnJhbmNoJyxcclxuICBBRERfUEhZU0lDQUxfQlJBTkNIID0gJ0FkZCBQaHlzaWNhbCBCcmFuY2gnLFxyXG4gIERFTEVURV9QSFlTSUNBTF9CUkFOQ0ggPSAnRGVsZXRlIFBoeXNpY2FsIEJyYW5jaCcsXHJcbiAgU0hPV19GSVNDQUxfQlJBTkNIID0gJ1Nob3cgRmlzY2FsIEJyYW5jaCcsXHJcbiAgRURJVF9GSVNDQUxfQlJBTkNIID0gJ0VkaXQgRmlzY2FsIEJyYW5jaCcsXHJcbiAgQUREX0ZJU0NBTF9CUkFOQ0ggPSAnQWRkIEZpc2NhbCBCcmFuY2gnLFxyXG4gIERFTEVURV9GSVNDQUxfQlJBTkNIID0gJ0RlbGV0ZSBGaXNjYWwgQnJhbmNoJyxcclxuICBTSE9XX01PTklUT1JJTkdfRVRDRCA9ICdTaG93IE1vbml0b3JpbmcgRVRDRCcsXHJcbiAgQUREX1BST0RVQ1RfRVRDRCA9ICdBZGQgUHJvZHVjdCBFVENEJyxcclxuICBFRElUX1BST0RVQ1RfRVRDRCA9ICdFZGl0IFByb2R1Y3QgRVRDRCcsXHJcbiAgU0hPV19QUk9EVUNUX0VUQ0QgPSAnU2hvdyBQcm9kdWN0IEVUQ0QnLFxyXG4gIERFTEVURV9QUk9EVUNUX0VUQ0QgPSAnRGVsZXRlIFByb2R1Y3QgRVRDRCcsXHJcbiAgQUREX1BBUkFNRVRFUlNfRVRDRCA9ICdBZGQgUGFyYW1ldGVycyBFVENEJyxcclxuICBFRElUX1BBUkFNRVRFUlNfRVRDRCA9ICdFZGl0IFBhcmFtZXRlcnMgRVRDRCcsXHJcbiAgU0hPV19QQVJBTUVURVJTX0VUQ0QgPSAnU2hvdyBQYXJhbWV0ZXJzIEVUQ0QnLFxyXG4gIEFERF9GUkVJR0hUX0VUQ0QgPSAnQWRkIEZyZWlnaHQgRVRDRCcsXHJcbiAgU0hPV19GUkVJR0hUX0VUQ0QgPSAnU2hvdyBGcmVpZ2h0IEVUQ0QnLFxyXG4gIEFQUFJPVkVfQURKVVNNRU5UX0VUQ0QgPSAnQXBwcm92ZSBBZGp1c21lbnQgRVRDRCcsXHJcbiAgUkVQUk9WRV9BREpVU01FTlRfRVRDRCA9ICdSZXByb3ZlIEFkanVzbWVudCBFVENEJyxcclxuICBBRERfSlVTVElGSUNBVElWRV9FVENEID0gJ0FkZCBKdXN0aWZpY2F0aXZlIEVUQ0QnLFxyXG4gIEVESVRfSlVTVElGSUNBVElWRV9FVENEID0gJ0VkaXQgSnVzdGlmaWNhdGl2ZSBFVENEJyxcclxuICBERUxFVEVfSlVTVElGSUNBVElWRV9FVENEID0gJ0RlbGV0ZSBKdXN0aWZpY2F0aXZlIEVUQ0QnLFxyXG4gIEFQUFJPVkVfUkVMRUFTRV9FVENEID0gJ0FwcHJvdmUgUmVsZWFzZSBFVENEJyxcclxuICBSRVBST1ZFX1JFTEVBU0VfRVRDRCA9ICdSZXByb3ZlIFJlbGVhc2UgRVRDRCcsXHJcbiAgU0hPV19BRFZBTkNFX0VUQ0QgPSAnU2hvdyBBZHZhbmNlIEVUQ0QnLFxyXG4gIEFQUFJPVkVfUkVRVUVTVFNfRVRDRCA9ICdBcHByb3ZlIFJlcXVlc3RzIEVUQ0QnLFxyXG4gIFNIT1dfU1VQUExZID0gJ1Nob3cgU3VwcGx5JyxcclxuICBTSE9XX1RSSVBfT0ZGRVJUID0gJ1RyaXAgT2ZmZXIgU2hvdycsXHJcbiAgQUREX0xBU1ROQU1FX0xPQ0FUSU9OID0gJ0FkZCBMYXN0TmFtZSBMb2NhdGlvbicsXHJcbiAgQVBQUk9WRV9ESVNDSEFSR0VfUEFZTUVOVCA9ICdBcHJvdmFyIHF1aXRhY2FvJyxcclxuICBBUFBST1ZFX0FEVkFOQ0VfUEFZTUVOVCA9ICdBcHJvdmFyIGFkaWFudGFtZW50bycsXHJcbiAgQVBQUk9WRV9FTkdJTkVfUEFZTUVOVCA9ICdBcHJvdmFyIG1vdG9yIGRlIHBhZ2FtZW50bycsXHJcbiAgRVhUUkFDVF9USElSRCA9ICdFeHRyYXRvIHRlcmNlaXJvJyxcclxuICBISVNUT1JJQ0FMX0NIQU5HRVNfR1JPVVBTID0gJ0hpc3RvcmljYWxDaGFuZ2VzR3JvdXBzJyxcclxuICBERUxFVEVfT05MWV9NRU1CRVJfR1JPVVBTID0gJ0RlbGV0ZSBPbmx5IE1lbWJlciBHcm91cHMnLFxyXG4gIEFERF9PTkxZX01FTUJFUl9HUk9VUFMgPSAnQWRkIE9ubHkgTWVtYmVyIEdyb3VwcycsXHJcbiAgU0hPV19HUk9VUFMgPSAnU2hvdyBHcm91cHMnLFxyXG4gIERFTEVURV9HUk9VUFMgPSAnRGVsZXRlIEdyb3VwcycsXHJcbiAgRURJVF9HUk9VUFMgPSAnRWRpdCBHcm91cHMnLFxyXG4gIEFERF9HUk9VUFMgPSAnQWRkIEdyb3VwcycsXHJcbiAgQUREX1VQREFURV9HRU9GRU5DRSA9ICdBZGQgVXBkYXRlIEdlb2ZlbmNlJyxcclxuICBTSE9XX0dFT0ZFTkNFID0gJ1Nob3cgR2VvZmVuY2UnLFxyXG4gIFNIT1dfR0VPRkVOQ0VfTE9HID0gJ1Nob3cgR2VvZmVuY2UgTG9nJyxcclxuICBISVNUT1JJQ0FMX0NIQU5HRVNfR0VPRkVOQ0UgPSAnSGlzdG9yaWNhbCBDaGFuZ2VzIEdlb2ZlbmNlJyxcclxuICBTSE9XX0RSSVZFUl9MT0cgPSAnU2hvdyBEcml2ZXIgTG9nJyxcclxuICBVUERBVEVfQ0hFQ0tJTl9DSEVDS09VVCA9ICdVcGRhdGUgQ2hlY2tJbiBDaGVja091dCcsXHJcbiAgQVVUT01BVElDX0NIRUNLSU4gPSAnQXV0b21hdGljIENoZWNrSW4nLFxyXG4gIFNIT1dfRklMVEVSU19NT05USExZX1JFQ0VQVElPTiA9ICdTaG93IEZpbHRlcnMgTW9udGhseSBSZWNlcHRpb24nLFxyXG4gIFZJRVdfUk9VVEVfVFJJUCA9ICdWaWV3IFJvdXRlIFRyaXAnLFxyXG4gIFNIT1dfUklTS19NQU5BR0VNRU5UID0gJ1Nob3cgUmlzayBNYW5hZ2VtZW50JyxcclxuICBBRERfUklTS19NQU5BR0VNRU5UID0gJ0FkZCBSaXNrIE1hbmFnZW1lbnQnLFxyXG4gIEVESVRfUklTS19NQU5BR0VNRU5UID0gJ0VkaXQgUmlzayBNYW5hZ2VtZW50JyxcclxuICBERUxFVEVfUklTS19NQU5BR0VNRU5UID0gJ0RlbGV0ZSBSaXNrIE1hbmFnZW1lbnQnLFxyXG4gIERJR0lUQUxfRElTQ0hBUkdFX0JBU0lDX0RBVEEgPSAnUXVpdGFjYW8gRGlnaXRhbCBCYXNpYyBEYXRhJyxcclxuICBESUdJVEFMX0RJU0NIQVJHRV9FVENEX0FQUFJPVkVSID0gJ1F1aXRhY2FvIERpZ2l0YWwgRVRDRCBBcHJvdmFkb3InLFxyXG4gIERJR0lUQUxfRElTQ0hBUkdFX0VUQ0RfQVBQUk9WRVJfTUFOQUdFTUVOVCA9ICdRdWl0YWNhbyBEaWdpdGFsIEVUQ0QgQXByb3ZhZG9yIEdlc3RvcicsXHJcbiAgRElHSVRBTF9ESVNDSEFSR0VfVkVDVE9SX0FQUFJPVkVSID0gJ1F1aXRhY2FvIERpZ2l0YWwgVmVjdG9yIEFwcm92YWRvcicsXHJcbiAgRElHSVRBTF9ESVNDSEFSR0VfVkVDVE9SX0FQUFJPVkVSX01BTkFHRU1FTlQgPSAnUXVpdGFjYW8gRGlnaXRhbCBWZWN0b3IgQXByb3ZhZG9yIEdlc3RvcicsXHJcbiAgRElHSVRBTF9ESVNDSEFSR0VfQVBQUk9WRV9TQVAgPSAnUXVpdGFjYW8gRGlnaXRhbCBBcHJvdmFkb3IgQ29udGluZ2VuY2lhIFNhcCcsXHJcbiAgUEFZTUVOVF9GUkVJR0hUX0FESlVTVF9GUkVJR0hUX1ZBTFVFID0gJ1BhZ2FtZW50byBGcmV0ZSBBanVzdGFyIFZhbG9yIEZyZXRlJyxcclxuICBTSE9XX01FU1NBR0VfQ1VTVE9NID0gJ1Nob3cgTWVzc2FnZXMgQ3VzdG9tJyxcclxuICBERUxFVEVfTUVTU0FHRV9DVVNUT00gPSAnRGVsZXRlIE1lc3NhZ2VzIEN1c3RvbScsXHJcbiAgQUREX01FU1NBR0VfQ1VTVE9NID0gJ0FkZCBNZXNzYWdlcyBDdXN0b20nLFxyXG4gIEVESVRfTUVTU0FHRV9DVVNUT00gPSAnRWRpdCBNZXNzYWdlcyBDdXN0b20nLFxyXG4gIFJFQ0VQVElPTl9XSVRIT1VUX1NDSEVEVUxJTkcgPSAnUmVjZXB0aW9uIFdpdGhvdXQgU2NoZWR1bGluZycsXHJcbiAgQkFOS19FRElUID0gJ0VkaXQnLFxyXG4gIEJBTktfUkVHSVNURVJfRlVMTCA9ICdDYWRhc3RybyBGdWxsJyxcclxuICBTRUFSQ0hfQ0FMRU5EQVJfRlVMTCA9ICdQZXNxdWlzYXIgQWdlbmRhIEZ1bGwnLFxyXG4gIFNIT1dfTU9WRU1FTlRfRVRDRCA9ICdTaG93IE1vdmVtZW50IEV0Y2QnLFxyXG4gIENSRUFURV9BTkRfRURJVF9OUFMgPSAnQ3JlYXRlIGFuZCBlZGl0IE5QUycsXHJcbiAgUkVBRF9OUFNfSU5GT1JNQVRJT04gPSAnUmVhZCBOUFMgaW5mb3JtYXRpb24nLFxyXG4gIFRFWF9PTkJPQVJESU5HX1RSQUNLSU5HID0gXCJPbmJvYXJkaW5nVHJhY2tpbmdcIixcclxuICBCSURESU5HX1BBUkFNRVRFUlMgPSAnQmlkZGluZyBQYXJhbWV0ZXJzJ1xyXG59XHJcbiJdfQ==