@hitsoft/abp.kadooglu 1.0.4 → 1.0.5

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.
@@ -211,32 +211,14 @@ export class HitEntryWeighingListComponent {
211
211
  }
212
212
  });
213
213
  }
214
- barkodYazdir(row) {
215
- const docEntry = row.docEntry ?? row.docEntry;
216
- this.service.getWeighingSlip(docEntry).subscribe({
217
- next: (response) => {
218
- const byteChars = atob(response.base64);
219
- const byteNumbers = new Array(byteChars.length);
220
- for (let i = 0; i < byteChars.length; i++) {
221
- byteNumbers[i] = byteChars.charCodeAt(i);
222
- }
223
- const blob = new Blob([new Uint8Array(byteNumbers)], { type: 'application/pdf' });
224
- const url = URL.createObjectURL(blob);
225
- window.open(url, '_blank');
226
- },
227
- error: () => {
228
- alert('Barkod / kantar fişi oluşturulurken bir hata oluştu.');
229
- }
230
- });
231
- }
232
214
  }
233
215
  HitEntryWeighingListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitEntryWeighingListComponent, deps: [{ token: i1.HitEntryWeighingService }, { token: i2.ConfirmationService }, { token: i3.Router }, { token: i4.LocalizationService }, { token: i5.HitGateService }], target: i0.ɵɵFactoryTarget.Component });
234
- HitEntryWeighingListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitEntryWeighingListComponent, selector: "lib-hit-entry-weighing-list", viewQueries: [{ propertyName: "dataGrid", first: true, predicate: ["dataGrid"], descendants: true }], ngImport: i0, template: "<abp-page [breadcrumb]=\"false\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col\">\r\n <h3 class=\"page-title\">{{ 'Kadooglu::EntryWeighingTitle' | abpLocalization }}</h3>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"card mt-2\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n #dataGrid\r\n [dataSource]=\"filteredData\"\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\"\r\n [rowAlternationEnabled]=\"true\"\r\n keyExpr=\"docEntry\"\r\n (onToolbarPreparing)=\"onToolbarPreparing($event)\"\r\n style=\"height: calc(100vh - 280px);\">\r\n\r\n <dxo-scrolling showScrollbar=\"always\" [useNative]=\"false\"></dxo-scrolling>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel [visible]=\"true\" [width]=\"200\" [placeholder]=\"'Kadooglu::Ara' | abpLocalization\"></dxo-search-panel>\r\n\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\">\r\n </dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n <dxi-column [fixed]=\"true\" dataField=\"docEntry\" [allowGrouping]=\"false\" [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\" [allowHiding]=\"false\" [allowReordering]=\"false\"\r\n alignment=\"center\"\r\n cellTemplate=\"operationTemplate\" caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\">\r\n <div *dxTemplate=\"let row of 'operationTemplate'\" style=\"text-align:center\">\r\n <!-- Devam eden tart\u0131m: i\u015Flemler dropdown (status '0' ve '1') -->\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm dropdown-toggle\" style=\"min-width: 110px;\" data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\" ngbDropdownToggle [disabled]=\"disabledIdColumn\">\r\n <i class=\"fa fa-cog mr-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '0'\" (click)=\"tartimYap(row.data, 'first')\">\r\n <i class=\"fa fa-balance-scale\" aria-hidden=\"true\"></i> {{ 'Kadooglu::PerformFirstWeighing' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '1'\" (click)=\"tartimYap(row.data, 'last')\">\r\n <i class=\"fa fa-balance-scale\" aria-hidden=\"true\"></i> {{ 'Kadooglu::PerformLastWeighing' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '2' && isMalGC(row.data.u_EntryType)\" (click)=\"malGcYap(row.data)\">\r\n <i class=\"fa fa-exchange\" aria-hidden=\"true\"></i> {{ 'Kadooglu::MalGcYap' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '2' || row.data.u_Status === '3' || row.data.u_Status === '4'\" (click)=\"ozetiGoruntule(row.data)\">\r\n <i class=\"fa fa-file-text\" aria-hidden=\"true\"></i> {{ 'Kadooglu::ViewSummary' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '0'\" (click)=\"duzenle(row.data)\">\r\n <i class=\"fa fa-edit\" aria-hidden=\"true\"></i> {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"barkodYazdir(row.data)\">\r\n <i class=\"fa fa-print\" aria-hidden=\"true\"></i> Barkod Yazd\u0131r\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_Status\"\r\n caption=\"{{ 'Kadooglu::Status' | abpLocalization }}\"\r\n [fixed]=\"true\"\r\n alignment=\"center\"\r\n cellTemplate=\"statusTemplate\"\r\n [allowFiltering]=\"true\"\r\n [allowHeaderFiltering]=\"true\">\r\n <dxo-lookup [dataSource]=\"statusFilterDataSource\" valueExpr=\"value\" displayExpr=\"text\"></dxo-lookup>\r\n <dxo-header-filter [dataSource]=\"statusFilterDataSource\"></dxo-header-filter>\r\n </dxi-column>\r\n\r\n <dxi-column dataField=\"docNum\" caption=\"{{ 'Kadooglu::DocumentNo' | abpLocalization }}\" width=\"100\"></dxi-column>\r\n\r\n <dxi-column dataField=\"u_GateCode\" caption=\"{{ 'Kadooglu::Gate' | abpLocalization }}\">\r\n <dxo-lookup [dataSource]=\"gateList\" valueExpr=\"code\" displayExpr=\"name\"></dxo-lookup>\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_EntryDate\"\r\n caption=\"{{ 'Kadooglu::EntryDateTime' | abpLocalization }}\"\r\n cellTemplate=\"entryDateTimeTemplate\"\r\n [allowFiltering]=\"true\">\r\n </dxi-column>\r\n\r\n <dxi-column dataField=\"u_EntryType\" caption=\"Ara\u00E7 Hareket T\u00FCr\u00FC\">\r\n <dxo-lookup [dataSource]=\"vehicleTypeList\" valueExpr=\"code\" displayExpr=\"name\"></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"u_Plate\" caption=\"{{ 'Kadooglu::TruckPlate' | abpLocalization }}\" cellTemplate=\"plateTemplate\"></dxi-column>\r\n <dxi-column dataField=\"u_DorsePlate\" caption=\"{{ 'Kadooglu::DorsePlate' | abpLocalization }}\" cellTemplate=\"dorsePlateTemplate\"></dxi-column>\r\n <dxi-column dataField=\"u_Driver\" caption=\"{{ 'Kadooglu::DriverName' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_DriverCode\" caption=\"{{ 'Kadooglu::DriverCode' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_TcNo\" caption=\"{{ 'Kadooglu::TcIdentityNo' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_CardCode\" caption=\"{{ 'Kadooglu::CardCode' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_ItemCode\" caption=\"{{ 'Kadooglu::ItemCode' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_DespatchAdviceNo\" caption=\"{{ 'Kadooglu::DespatchAdviceNo' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_ScaleCode\" caption=\"{{ 'Kadooglu::ScaleCode' | abpLocalization }}\"></dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_FirstWeighing\"\r\n caption=\"{{ 'Kadooglu::FirstWeighingKg' | abpLocalization }}\"\r\n dataType=\"number\"\r\n [format]=\"{ type: 'fixedPoint', precision: 0 }\">\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_LastWeighing\"\r\n caption=\"{{ 'Kadooglu::LastWeighingKg' | abpLocalization }}\"\r\n dataType=\"number\"\r\n [format]=\"{ type: 'fixedPoint', precision: 0 }\">\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_Net\"\r\n caption=\"{{ 'Kadooglu::NetKg' | abpLocalization }}\"\r\n dataType=\"number\"\r\n [format]=\"{ type: 'fixedPoint', precision: 0 }\">\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_ExitDate\"\r\n caption=\"{{ 'Kadooglu::ExitDate' | abpLocalization }}\"\r\n cellTemplate=\"exitDateTimeTemplate\"\r\n [allowFiltering]=\"true\">\r\n </dxi-column>\r\n <dxi-column dataField=\"u_Description\" caption=\"{{ 'Kadooglu::Description' | abpLocalization }}\"></dxi-column>\r\n\r\n <div *dxTemplate=\"let cell of 'plateTemplate'\">\r\n <span *ngIf=\"cell.data.u_Plate\" class=\"tr-plate\">\r\n <span class=\"tr-plate-blue\">TR</span>\r\n <span class=\"tr-plate-text\">{{ formatPlate(cell.data.u_Plate) }}</span>\r\n </span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'dorsePlateTemplate'\">\r\n <span *ngIf=\"cell.data.u_DorsePlate\" class=\"tr-plate\">\r\n <span class=\"tr-plate-blue\">TR</span>\r\n <span class=\"tr-plate-text\">{{ formatPlate(cell.data.u_DorsePlate) }}</span>\r\n </span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'entryDateTimeTemplate'\">\r\n {{ formatEntryDateTime(cell.data.u_EntryDate, cell.data.u_EntryTime) }}\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'exitDateTimeTemplate'\">\r\n <span *ngIf=\"cell.data.u_ExitDate\">\r\n {{ cell.data.u_ExitDate | date:'dd.MM.yyyy' }}\r\n <span *ngIf=\"cell.data.u_ExitTime\" class=\"text-muted ms-1\">{{ formatTime(cell.data.u_ExitTime) }}</span>\r\n </span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'statusTemplate'\">\r\n <span [class]=\"getStatusClass(cell.data.u_Status)\" style=\"padding: 0.25em .5em .25em .5em;\">\r\n {{ getStatusLabel(cell.data.u_Status) }}\r\n </span>\r\n </div>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: ["::ng-deep .dx-scrollbar-horizontal{height:8px}::ng-deep .dx-scrollbar-horizontal .dx-scrollable-scroll{height:8px}::ng-deep .dx-scrollbar-vertical{width:8px}::ng-deep .dx-scrollbar-vertical .dx-scrollable-scroll{width:8px}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i7.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "component", type: i8.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i9.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i9.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i9.DxoLookupComponent, selector: "dxo-lookup", inputs: ["allowClearing", "calculateCellValue", "dataSource", "displayExpr", "valueExpr"] }, { kind: "component", type: i9.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i9.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i9.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i9.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i9.DxoSearchPanelComponent, selector: "dxo-search-panel", inputs: ["highlightCaseSensitive", "highlightSearchText", "placeholder", "searchVisibleColumnsOnly", "text", "visible", "width"], outputs: ["textChange"] }, { kind: "directive", type: i10.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "directive", type: i11.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i11.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i11.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i11.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "pipe", type: i6.DatePipe, name: "date" }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
216
+ HitEntryWeighingListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitEntryWeighingListComponent, selector: "lib-hit-entry-weighing-list", viewQueries: [{ propertyName: "dataGrid", first: true, predicate: ["dataGrid"], descendants: true }], ngImport: i0, template: "<abp-page [breadcrumb]=\"false\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col\">\r\n <h3 class=\"page-title\">{{ 'Kadooglu::EntryWeighingTitle' | abpLocalization }}</h3>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"card mt-2\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n #dataGrid\r\n [dataSource]=\"filteredData\"\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\"\r\n [rowAlternationEnabled]=\"true\"\r\n keyExpr=\"docEntry\"\r\n (onToolbarPreparing)=\"onToolbarPreparing($event)\"\r\n style=\"height: calc(100vh - 280px);\">\r\n\r\n <dxo-scrolling showScrollbar=\"always\" [useNative]=\"false\"></dxo-scrolling>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel [visible]=\"true\" [width]=\"200\" [placeholder]=\"'Kadooglu::Ara' | abpLocalization\"></dxo-search-panel>\r\n\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\">\r\n </dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n <dxi-column [fixed]=\"true\" dataField=\"docEntry\" [allowGrouping]=\"false\" [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\" [allowHiding]=\"false\" [allowReordering]=\"false\"\r\n alignment=\"center\"\r\n cellTemplate=\"operationTemplate\" caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\">\r\n <div *dxTemplate=\"let row of 'operationTemplate'\" style=\"text-align:center\">\r\n <!-- Devam eden tart\u0131m: i\u015Flemler dropdown (status '0' ve '1') -->\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm dropdown-toggle\" style=\"min-width: 110px;\" data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\" ngbDropdownToggle [disabled]=\"disabledIdColumn\">\r\n <i class=\"fa fa-cog mr-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '0'\" (click)=\"tartimYap(row.data, 'first')\">\r\n <i class=\"fa fa-balance-scale\" aria-hidden=\"true\"></i> {{ 'Kadooglu::PerformFirstWeighing' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '1'\" (click)=\"tartimYap(row.data, 'last')\">\r\n <i class=\"fa fa-balance-scale\" aria-hidden=\"true\"></i> {{ 'Kadooglu::PerformLastWeighing' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '2' && isMalGC(row.data.u_EntryType)\" (click)=\"malGcYap(row.data)\">\r\n <i class=\"fa fa-exchange\" aria-hidden=\"true\"></i> {{ 'Kadooglu::MalGcYap' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '2' || row.data.u_Status === '3' || row.data.u_Status === '4'\" (click)=\"ozetiGoruntule(row.data)\">\r\n <i class=\"fa fa-file-text\" aria-hidden=\"true\"></i> {{ 'Kadooglu::ViewSummary' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '0'\" (click)=\"duzenle(row.data)\">\r\n <i class=\"fa fa-edit\" aria-hidden=\"true\"></i> {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_Status\"\r\n caption=\"{{ 'Kadooglu::Status' | abpLocalization }}\"\r\n [fixed]=\"true\"\r\n alignment=\"center\"\r\n cellTemplate=\"statusTemplate\"\r\n [allowFiltering]=\"true\"\r\n [allowHeaderFiltering]=\"true\">\r\n <dxo-lookup [dataSource]=\"statusFilterDataSource\" valueExpr=\"value\" displayExpr=\"text\"></dxo-lookup>\r\n <dxo-header-filter [dataSource]=\"statusFilterDataSource\"></dxo-header-filter>\r\n </dxi-column>\r\n\r\n <dxi-column dataField=\"docNum\" caption=\"{{ 'Kadooglu::DocumentNo' | abpLocalization }}\" width=\"100\"></dxi-column>\r\n\r\n <dxi-column dataField=\"u_GateCode\" caption=\"{{ 'Kadooglu::Gate' | abpLocalization }}\">\r\n <dxo-lookup [dataSource]=\"gateList\" valueExpr=\"code\" displayExpr=\"name\"></dxo-lookup>\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_EntryDate\"\r\n caption=\"{{ 'Kadooglu::EntryDateTime' | abpLocalization }}\"\r\n cellTemplate=\"entryDateTimeTemplate\"\r\n [allowFiltering]=\"true\">\r\n </dxi-column>\r\n\r\n <dxi-column dataField=\"u_EntryType\" caption=\"Ara\u00E7 Hareket T\u00FCr\u00FC\">\r\n <dxo-lookup [dataSource]=\"vehicleTypeList\" valueExpr=\"code\" displayExpr=\"name\"></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"u_Plate\" caption=\"{{ 'Kadooglu::TruckPlate' | abpLocalization }}\" cellTemplate=\"plateTemplate\"></dxi-column>\r\n <dxi-column dataField=\"u_DorsePlate\" caption=\"{{ 'Kadooglu::DorsePlate' | abpLocalization }}\" cellTemplate=\"dorsePlateTemplate\"></dxi-column>\r\n <dxi-column dataField=\"u_Driver\" caption=\"{{ 'Kadooglu::DriverName' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_DriverCode\" caption=\"{{ 'Kadooglu::DriverCode' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_TcNo\" caption=\"{{ 'Kadooglu::TcIdentityNo' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_CardCode\" caption=\"{{ 'Kadooglu::CardCode' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_ItemCode\" caption=\"{{ 'Kadooglu::ItemCode' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_DespatchAdviceNo\" caption=\"{{ 'Kadooglu::DespatchAdviceNo' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_ScaleCode\" caption=\"{{ 'Kadooglu::ScaleCode' | abpLocalization }}\"></dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_FirstWeighing\"\r\n caption=\"{{ 'Kadooglu::FirstWeighingKg' | abpLocalization }}\"\r\n dataType=\"number\"\r\n [format]=\"{ type: 'fixedPoint', precision: 0 }\">\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_LastWeighing\"\r\n caption=\"{{ 'Kadooglu::LastWeighingKg' | abpLocalization }}\"\r\n dataType=\"number\"\r\n [format]=\"{ type: 'fixedPoint', precision: 0 }\">\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_Net\"\r\n caption=\"{{ 'Kadooglu::NetKg' | abpLocalization }}\"\r\n dataType=\"number\"\r\n [format]=\"{ type: 'fixedPoint', precision: 0 }\">\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_ExitDate\"\r\n caption=\"{{ 'Kadooglu::ExitDate' | abpLocalization }}\"\r\n cellTemplate=\"exitDateTimeTemplate\"\r\n [allowFiltering]=\"true\">\r\n </dxi-column>\r\n <dxi-column dataField=\"u_Description\" caption=\"{{ 'Kadooglu::Description' | abpLocalization }}\"></dxi-column>\r\n\r\n <div *dxTemplate=\"let cell of 'plateTemplate'\">\r\n <span *ngIf=\"cell.data.u_Plate\" class=\"tr-plate\">\r\n <span class=\"tr-plate-blue\">TR</span>\r\n <span class=\"tr-plate-text\">{{ formatPlate(cell.data.u_Plate) }}</span>\r\n </span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'dorsePlateTemplate'\">\r\n <span *ngIf=\"cell.data.u_DorsePlate\" class=\"tr-plate\">\r\n <span class=\"tr-plate-blue\">TR</span>\r\n <span class=\"tr-plate-text\">{{ formatPlate(cell.data.u_DorsePlate) }}</span>\r\n </span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'entryDateTimeTemplate'\">\r\n {{ formatEntryDateTime(cell.data.u_EntryDate, cell.data.u_EntryTime) }}\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'exitDateTimeTemplate'\">\r\n <span *ngIf=\"cell.data.u_ExitDate\">\r\n {{ cell.data.u_ExitDate | date:'dd.MM.yyyy' }}\r\n <span *ngIf=\"cell.data.u_ExitTime\" class=\"text-muted ms-1\">{{ formatTime(cell.data.u_ExitTime) }}</span>\r\n </span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'statusTemplate'\">\r\n <span [class]=\"getStatusClass(cell.data.u_Status)\" style=\"padding: 0.25em .5em .25em .5em;\">\r\n {{ getStatusLabel(cell.data.u_Status) }}\r\n </span>\r\n </div>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: ["::ng-deep .dx-scrollbar-horizontal{height:8px}::ng-deep .dx-scrollbar-horizontal .dx-scrollable-scroll{height:8px}::ng-deep .dx-scrollbar-vertical{width:8px}::ng-deep .dx-scrollbar-vertical .dx-scrollable-scroll{width:8px}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i7.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "component", type: i8.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i9.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i9.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i9.DxoLookupComponent, selector: "dxo-lookup", inputs: ["allowClearing", "calculateCellValue", "dataSource", "displayExpr", "valueExpr"] }, { kind: "component", type: i9.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i9.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i9.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i9.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i9.DxoSearchPanelComponent, selector: "dxo-search-panel", inputs: ["highlightCaseSensitive", "highlightSearchText", "placeholder", "searchVisibleColumnsOnly", "text", "visible", "width"], outputs: ["textChange"] }, { kind: "directive", type: i10.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "directive", type: i11.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i11.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i11.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i11.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "pipe", type: i6.DatePipe, name: "date" }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
235
217
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitEntryWeighingListComponent, decorators: [{
236
218
  type: Component,
237
- args: [{ selector: 'lib-hit-entry-weighing-list', template: "<abp-page [breadcrumb]=\"false\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col\">\r\n <h3 class=\"page-title\">{{ 'Kadooglu::EntryWeighingTitle' | abpLocalization }}</h3>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"card mt-2\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n #dataGrid\r\n [dataSource]=\"filteredData\"\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\"\r\n [rowAlternationEnabled]=\"true\"\r\n keyExpr=\"docEntry\"\r\n (onToolbarPreparing)=\"onToolbarPreparing($event)\"\r\n style=\"height: calc(100vh - 280px);\">\r\n\r\n <dxo-scrolling showScrollbar=\"always\" [useNative]=\"false\"></dxo-scrolling>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel [visible]=\"true\" [width]=\"200\" [placeholder]=\"'Kadooglu::Ara' | abpLocalization\"></dxo-search-panel>\r\n\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\">\r\n </dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n <dxi-column [fixed]=\"true\" dataField=\"docEntry\" [allowGrouping]=\"false\" [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\" [allowHiding]=\"false\" [allowReordering]=\"false\"\r\n alignment=\"center\"\r\n cellTemplate=\"operationTemplate\" caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\">\r\n <div *dxTemplate=\"let row of 'operationTemplate'\" style=\"text-align:center\">\r\n <!-- Devam eden tart\u0131m: i\u015Flemler dropdown (status '0' ve '1') -->\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm dropdown-toggle\" style=\"min-width: 110px;\" data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\" ngbDropdownToggle [disabled]=\"disabledIdColumn\">\r\n <i class=\"fa fa-cog mr-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '0'\" (click)=\"tartimYap(row.data, 'first')\">\r\n <i class=\"fa fa-balance-scale\" aria-hidden=\"true\"></i> {{ 'Kadooglu::PerformFirstWeighing' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '1'\" (click)=\"tartimYap(row.data, 'last')\">\r\n <i class=\"fa fa-balance-scale\" aria-hidden=\"true\"></i> {{ 'Kadooglu::PerformLastWeighing' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '2' && isMalGC(row.data.u_EntryType)\" (click)=\"malGcYap(row.data)\">\r\n <i class=\"fa fa-exchange\" aria-hidden=\"true\"></i> {{ 'Kadooglu::MalGcYap' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '2' || row.data.u_Status === '3' || row.data.u_Status === '4'\" (click)=\"ozetiGoruntule(row.data)\">\r\n <i class=\"fa fa-file-text\" aria-hidden=\"true\"></i> {{ 'Kadooglu::ViewSummary' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '0'\" (click)=\"duzenle(row.data)\">\r\n <i class=\"fa fa-edit\" aria-hidden=\"true\"></i> {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"barkodYazdir(row.data)\">\r\n <i class=\"fa fa-print\" aria-hidden=\"true\"></i> Barkod Yazd\u0131r\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_Status\"\r\n caption=\"{{ 'Kadooglu::Status' | abpLocalization }}\"\r\n [fixed]=\"true\"\r\n alignment=\"center\"\r\n cellTemplate=\"statusTemplate\"\r\n [allowFiltering]=\"true\"\r\n [allowHeaderFiltering]=\"true\">\r\n <dxo-lookup [dataSource]=\"statusFilterDataSource\" valueExpr=\"value\" displayExpr=\"text\"></dxo-lookup>\r\n <dxo-header-filter [dataSource]=\"statusFilterDataSource\"></dxo-header-filter>\r\n </dxi-column>\r\n\r\n <dxi-column dataField=\"docNum\" caption=\"{{ 'Kadooglu::DocumentNo' | abpLocalization }}\" width=\"100\"></dxi-column>\r\n\r\n <dxi-column dataField=\"u_GateCode\" caption=\"{{ 'Kadooglu::Gate' | abpLocalization }}\">\r\n <dxo-lookup [dataSource]=\"gateList\" valueExpr=\"code\" displayExpr=\"name\"></dxo-lookup>\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_EntryDate\"\r\n caption=\"{{ 'Kadooglu::EntryDateTime' | abpLocalization }}\"\r\n cellTemplate=\"entryDateTimeTemplate\"\r\n [allowFiltering]=\"true\">\r\n </dxi-column>\r\n\r\n <dxi-column dataField=\"u_EntryType\" caption=\"Ara\u00E7 Hareket T\u00FCr\u00FC\">\r\n <dxo-lookup [dataSource]=\"vehicleTypeList\" valueExpr=\"code\" displayExpr=\"name\"></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"u_Plate\" caption=\"{{ 'Kadooglu::TruckPlate' | abpLocalization }}\" cellTemplate=\"plateTemplate\"></dxi-column>\r\n <dxi-column dataField=\"u_DorsePlate\" caption=\"{{ 'Kadooglu::DorsePlate' | abpLocalization }}\" cellTemplate=\"dorsePlateTemplate\"></dxi-column>\r\n <dxi-column dataField=\"u_Driver\" caption=\"{{ 'Kadooglu::DriverName' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_DriverCode\" caption=\"{{ 'Kadooglu::DriverCode' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_TcNo\" caption=\"{{ 'Kadooglu::TcIdentityNo' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_CardCode\" caption=\"{{ 'Kadooglu::CardCode' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_ItemCode\" caption=\"{{ 'Kadooglu::ItemCode' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_DespatchAdviceNo\" caption=\"{{ 'Kadooglu::DespatchAdviceNo' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_ScaleCode\" caption=\"{{ 'Kadooglu::ScaleCode' | abpLocalization }}\"></dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_FirstWeighing\"\r\n caption=\"{{ 'Kadooglu::FirstWeighingKg' | abpLocalization }}\"\r\n dataType=\"number\"\r\n [format]=\"{ type: 'fixedPoint', precision: 0 }\">\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_LastWeighing\"\r\n caption=\"{{ 'Kadooglu::LastWeighingKg' | abpLocalization }}\"\r\n dataType=\"number\"\r\n [format]=\"{ type: 'fixedPoint', precision: 0 }\">\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_Net\"\r\n caption=\"{{ 'Kadooglu::NetKg' | abpLocalization }}\"\r\n dataType=\"number\"\r\n [format]=\"{ type: 'fixedPoint', precision: 0 }\">\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_ExitDate\"\r\n caption=\"{{ 'Kadooglu::ExitDate' | abpLocalization }}\"\r\n cellTemplate=\"exitDateTimeTemplate\"\r\n [allowFiltering]=\"true\">\r\n </dxi-column>\r\n <dxi-column dataField=\"u_Description\" caption=\"{{ 'Kadooglu::Description' | abpLocalization }}\"></dxi-column>\r\n\r\n <div *dxTemplate=\"let cell of 'plateTemplate'\">\r\n <span *ngIf=\"cell.data.u_Plate\" class=\"tr-plate\">\r\n <span class=\"tr-plate-blue\">TR</span>\r\n <span class=\"tr-plate-text\">{{ formatPlate(cell.data.u_Plate) }}</span>\r\n </span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'dorsePlateTemplate'\">\r\n <span *ngIf=\"cell.data.u_DorsePlate\" class=\"tr-plate\">\r\n <span class=\"tr-plate-blue\">TR</span>\r\n <span class=\"tr-plate-text\">{{ formatPlate(cell.data.u_DorsePlate) }}</span>\r\n </span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'entryDateTimeTemplate'\">\r\n {{ formatEntryDateTime(cell.data.u_EntryDate, cell.data.u_EntryTime) }}\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'exitDateTimeTemplate'\">\r\n <span *ngIf=\"cell.data.u_ExitDate\">\r\n {{ cell.data.u_ExitDate | date:'dd.MM.yyyy' }}\r\n <span *ngIf=\"cell.data.u_ExitTime\" class=\"text-muted ms-1\">{{ formatTime(cell.data.u_ExitTime) }}</span>\r\n </span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'statusTemplate'\">\r\n <span [class]=\"getStatusClass(cell.data.u_Status)\" style=\"padding: 0.25em .5em .25em .5em;\">\r\n {{ getStatusLabel(cell.data.u_Status) }}\r\n </span>\r\n </div>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: ["::ng-deep .dx-scrollbar-horizontal{height:8px}::ng-deep .dx-scrollbar-horizontal .dx-scrollable-scroll{height:8px}::ng-deep .dx-scrollbar-vertical{width:8px}::ng-deep .dx-scrollbar-vertical .dx-scrollable-scroll{width:8px}\n"] }]
219
+ args: [{ selector: 'lib-hit-entry-weighing-list', template: "<abp-page [breadcrumb]=\"false\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col\">\r\n <h3 class=\"page-title\">{{ 'Kadooglu::EntryWeighingTitle' | abpLocalization }}</h3>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"card mt-2\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n #dataGrid\r\n [dataSource]=\"filteredData\"\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\"\r\n [rowAlternationEnabled]=\"true\"\r\n keyExpr=\"docEntry\"\r\n (onToolbarPreparing)=\"onToolbarPreparing($event)\"\r\n style=\"height: calc(100vh - 280px);\">\r\n\r\n <dxo-scrolling showScrollbar=\"always\" [useNative]=\"false\"></dxo-scrolling>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel [visible]=\"true\" [width]=\"200\" [placeholder]=\"'Kadooglu::Ara' | abpLocalization\"></dxo-search-panel>\r\n\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\">\r\n </dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n <dxi-column [fixed]=\"true\" dataField=\"docEntry\" [allowGrouping]=\"false\" [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\" [allowHiding]=\"false\" [allowReordering]=\"false\"\r\n alignment=\"center\"\r\n cellTemplate=\"operationTemplate\" caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\">\r\n <div *dxTemplate=\"let row of 'operationTemplate'\" style=\"text-align:center\">\r\n <!-- Devam eden tart\u0131m: i\u015Flemler dropdown (status '0' ve '1') -->\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm dropdown-toggle\" style=\"min-width: 110px;\" data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\" ngbDropdownToggle [disabled]=\"disabledIdColumn\">\r\n <i class=\"fa fa-cog mr-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '0'\" (click)=\"tartimYap(row.data, 'first')\">\r\n <i class=\"fa fa-balance-scale\" aria-hidden=\"true\"></i> {{ 'Kadooglu::PerformFirstWeighing' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '1'\" (click)=\"tartimYap(row.data, 'last')\">\r\n <i class=\"fa fa-balance-scale\" aria-hidden=\"true\"></i> {{ 'Kadooglu::PerformLastWeighing' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '2' && isMalGC(row.data.u_EntryType)\" (click)=\"malGcYap(row.data)\">\r\n <i class=\"fa fa-exchange\" aria-hidden=\"true\"></i> {{ 'Kadooglu::MalGcYap' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '2' || row.data.u_Status === '3' || row.data.u_Status === '4'\" (click)=\"ozetiGoruntule(row.data)\">\r\n <i class=\"fa fa-file-text\" aria-hidden=\"true\"></i> {{ 'Kadooglu::ViewSummary' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '0'\" (click)=\"duzenle(row.data)\">\r\n <i class=\"fa fa-edit\" aria-hidden=\"true\"></i> {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_Status\"\r\n caption=\"{{ 'Kadooglu::Status' | abpLocalization }}\"\r\n [fixed]=\"true\"\r\n alignment=\"center\"\r\n cellTemplate=\"statusTemplate\"\r\n [allowFiltering]=\"true\"\r\n [allowHeaderFiltering]=\"true\">\r\n <dxo-lookup [dataSource]=\"statusFilterDataSource\" valueExpr=\"value\" displayExpr=\"text\"></dxo-lookup>\r\n <dxo-header-filter [dataSource]=\"statusFilterDataSource\"></dxo-header-filter>\r\n </dxi-column>\r\n\r\n <dxi-column dataField=\"docNum\" caption=\"{{ 'Kadooglu::DocumentNo' | abpLocalization }}\" width=\"100\"></dxi-column>\r\n\r\n <dxi-column dataField=\"u_GateCode\" caption=\"{{ 'Kadooglu::Gate' | abpLocalization }}\">\r\n <dxo-lookup [dataSource]=\"gateList\" valueExpr=\"code\" displayExpr=\"name\"></dxo-lookup>\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_EntryDate\"\r\n caption=\"{{ 'Kadooglu::EntryDateTime' | abpLocalization }}\"\r\n cellTemplate=\"entryDateTimeTemplate\"\r\n [allowFiltering]=\"true\">\r\n </dxi-column>\r\n\r\n <dxi-column dataField=\"u_EntryType\" caption=\"Ara\u00E7 Hareket T\u00FCr\u00FC\">\r\n <dxo-lookup [dataSource]=\"vehicleTypeList\" valueExpr=\"code\" displayExpr=\"name\"></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"u_Plate\" caption=\"{{ 'Kadooglu::TruckPlate' | abpLocalization }}\" cellTemplate=\"plateTemplate\"></dxi-column>\r\n <dxi-column dataField=\"u_DorsePlate\" caption=\"{{ 'Kadooglu::DorsePlate' | abpLocalization }}\" cellTemplate=\"dorsePlateTemplate\"></dxi-column>\r\n <dxi-column dataField=\"u_Driver\" caption=\"{{ 'Kadooglu::DriverName' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_DriverCode\" caption=\"{{ 'Kadooglu::DriverCode' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_TcNo\" caption=\"{{ 'Kadooglu::TcIdentityNo' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_CardCode\" caption=\"{{ 'Kadooglu::CardCode' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_ItemCode\" caption=\"{{ 'Kadooglu::ItemCode' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_DespatchAdviceNo\" caption=\"{{ 'Kadooglu::DespatchAdviceNo' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_ScaleCode\" caption=\"{{ 'Kadooglu::ScaleCode' | abpLocalization }}\"></dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_FirstWeighing\"\r\n caption=\"{{ 'Kadooglu::FirstWeighingKg' | abpLocalization }}\"\r\n dataType=\"number\"\r\n [format]=\"{ type: 'fixedPoint', precision: 0 }\">\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_LastWeighing\"\r\n caption=\"{{ 'Kadooglu::LastWeighingKg' | abpLocalization }}\"\r\n dataType=\"number\"\r\n [format]=\"{ type: 'fixedPoint', precision: 0 }\">\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_Net\"\r\n caption=\"{{ 'Kadooglu::NetKg' | abpLocalization }}\"\r\n dataType=\"number\"\r\n [format]=\"{ type: 'fixedPoint', precision: 0 }\">\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_ExitDate\"\r\n caption=\"{{ 'Kadooglu::ExitDate' | abpLocalization }}\"\r\n cellTemplate=\"exitDateTimeTemplate\"\r\n [allowFiltering]=\"true\">\r\n </dxi-column>\r\n <dxi-column dataField=\"u_Description\" caption=\"{{ 'Kadooglu::Description' | abpLocalization }}\"></dxi-column>\r\n\r\n <div *dxTemplate=\"let cell of 'plateTemplate'\">\r\n <span *ngIf=\"cell.data.u_Plate\" class=\"tr-plate\">\r\n <span class=\"tr-plate-blue\">TR</span>\r\n <span class=\"tr-plate-text\">{{ formatPlate(cell.data.u_Plate) }}</span>\r\n </span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'dorsePlateTemplate'\">\r\n <span *ngIf=\"cell.data.u_DorsePlate\" class=\"tr-plate\">\r\n <span class=\"tr-plate-blue\">TR</span>\r\n <span class=\"tr-plate-text\">{{ formatPlate(cell.data.u_DorsePlate) }}</span>\r\n </span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'entryDateTimeTemplate'\">\r\n {{ formatEntryDateTime(cell.data.u_EntryDate, cell.data.u_EntryTime) }}\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'exitDateTimeTemplate'\">\r\n <span *ngIf=\"cell.data.u_ExitDate\">\r\n {{ cell.data.u_ExitDate | date:'dd.MM.yyyy' }}\r\n <span *ngIf=\"cell.data.u_ExitTime\" class=\"text-muted ms-1\">{{ formatTime(cell.data.u_ExitTime) }}</span>\r\n </span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'statusTemplate'\">\r\n <span [class]=\"getStatusClass(cell.data.u_Status)\" style=\"padding: 0.25em .5em .25em .5em;\">\r\n {{ getStatusLabel(cell.data.u_Status) }}\r\n </span>\r\n </div>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: ["::ng-deep .dx-scrollbar-horizontal{height:8px}::ng-deep .dx-scrollbar-horizontal .dx-scrollable-scroll{height:8px}::ng-deep .dx-scrollbar-vertical{width:8px}::ng-deep .dx-scrollbar-vertical .dx-scrollable-scroll{width:8px}\n"] }]
238
220
  }], ctorParameters: function () { return [{ type: i1.HitEntryWeighingService }, { type: i2.ConfirmationService }, { type: i3.Router }, { type: i4.LocalizationService }, { type: i5.HitGateService }]; }, propDecorators: { dataGrid: [{
239
221
  type: ViewChild,
240
222
  args: ['dataGrid', { static: false }]
241
223
  }] } });
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWVudHJ5LXdlaWdoaW5nLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUvc3JjL2xpYi9oaXQtY29tcG9uZW50cy9oaXQtZW50cnktd2VpZ2hpbmcvaGl0LWVudHJ5LXdlaWdoaW5nLWxpc3QvaGl0LWVudHJ5LXdlaWdoaW5nLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUvc3JjL2xpYi9oaXQtY29tcG9uZW50cy9oaXQtZW50cnktd2VpZ2hpbmcvaGl0LWVudHJ5LXdlaWdoaW5nLWxpc3QvaGl0LWVudHJ5LXdlaWdoaW5nLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFnQjdELE1BQU0sT0FBTyw2QkFBNkI7SUFjeEMsWUFDVSxPQUFnQyxFQUNoQyxZQUFpQyxFQUNqQyxNQUFjLEVBQ2QsbUJBQXdDLEVBQ3hDLFdBQTJCO1FBSjNCLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBQ2hDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFoQnJDLFlBQU8sR0FBb0IsRUFBRSxDQUFDO1FBQzlCLGlCQUFZLEdBQW9CLEVBQUUsQ0FBQztRQUNuQyxvQkFBZSxHQUFrQixFQUFFLENBQUM7UUFDcEMsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixlQUFVLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUMvQixrQkFBYSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFFbEMscUJBQWdCLEdBQUcsS0FBSyxDQUFD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LENBQUMsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUMxQztnQkFDRCxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO2dCQUNsRixNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN0QyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUM3QixDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDVixLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztZQUNoRSxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7MEhBMU9VLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLHlLQ2hCMUMsKzdTQStLQTsyRkQvSmEsNkJBQTZCO2tCQUx6QyxTQUFTOytCQUNFLDZCQUE2QjtvT0FLRyxRQUFRO3NCQUFqRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBEeERhdGFHcmlkQ29tcG9uZW50IH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgSGl0RW50cnlXZWlnaGluZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9oaXQtcHJveHkvaGl0LWVudHJ5LXdlaWdoaW5nL2hpdC1lbnRyeS13ZWlnaGluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW50cnlXZWlnaGluZyB9IGZyb20gJy4uLy4uLy4uL2hpdC1wcm94eS9oaXQtZW50cnktd2VpZ2hpbmcvbW9kZWxzJztcclxuaW1wb3J0IHsgVmVoaWNsZVR5cGUgfSBmcm9tICcuLi8uLi8uLi9oaXQtcHJveHkvaGl0LXZlaGljbGUtdHlwZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBIaXRHYXRlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2hpdC1wcm94eS9oaXQtZ2F0ZS9oaXQtZ2F0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR2F0ZSB9IGZyb20gJy4uLy4uLy4uL2hpdC1wcm94eS9oaXQtZ2F0ZS9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItaGl0LWVudHJ5LXdlaWdoaW5nLWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9oaXQtZW50cnktd2VpZ2hpbmctbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaGl0LWVudHJ5LXdlaWdoaW5nLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhpdEVudHJ5V2VpZ2hpbmdMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdkYXRhR3JpZCcsIHsgc3RhdGljOiBmYWxzZSB9KSBkYXRhR3JpZCE6IER4RGF0YUdyaWRDb21wb25lbnQ7XHJcblxyXG4gIGFsbERhdGE6IEVudHJ5V2VpZ2hpbmdbXSA9IFtdO1xyXG4gIGZpbHRlcmVkRGF0YTogRW50cnlXZWlnaGluZ1tdID0gW107XHJcbiAgdmVoaWNsZVR5cGVMaXN0OiBWZWhpY2xlVHlwZVtdID0gW107XHJcbiAgZ2F0ZUxpc3Q6IEdhdGVbXSA9IFtdO1xyXG4gIG1hbEdjVHlwZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuICB3ZWlnaGluZ1R5cGVzID0gbmV3IFNldDxzdHJpbmc+KCk7XHJcblxyXG4gIGRpc2FibGVkSWRDb2x1bW4gPSBmYWxzZTtcclxuICBmaWx0ZXJNb2RlOiAnYWxsJyB8ICdwZW5kaW5nJyA9ICdwZW5kaW5nJztcclxuICBzdGF0dXNGaWx0ZXJEYXRhU291cmNlOiB7IHRleHQ6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IEhpdEVudHJ5V2VpZ2hpbmdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maXJtYXRpb246IENvbmZpcm1hdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBsb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBnYXRlU2VydmljZTogSGl0R2F0ZVNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdGF0dXNGaWx0ZXJEYXRhU291cmNlID0gWycwJywgJzEnLCAnMicsICczJywgJzQnXS5tYXAodiA9PiAoe1xyXG4gICAgICB2YWx1ZTogdixcclxuICAgICAgdGV4dDogdGhpcy5nZXRTdGF0dXNMYWJlbCh2KSxcclxuICAgIH0pKTtcclxuICAgIHRoaXMuZ2F0ZVNlcnZpY2UuZ2V0TGlzdCgpLnN1YnNjcmliZShnYXRlcyA9PiAodGhpcy5nYXRlTGlzdCA9IGdhdGVzKSk7XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0VmVoaWNsZVR5cGVzKCkuc3Vic2NyaWJlKHR5cGVzID0+IHtcclxuICAgICAgdGhpcy52ZWhpY2xlVHlwZUxpc3QgPSB0eXBlcztcclxuICAgICAgdGhpcy5tYWxHY1R5cGVzID0gbmV3IFNldCh0eXBlcy5maWx0ZXIodCA9PiB0LnVfTWFsR0MgPT09ICdZJykubWFwKHQgPT4gdC5jb2RlKSk7XHJcbiAgICAgIHRoaXMud2VpZ2hpbmdUeXBlcyA9IG5ldyBTZXQodHlwZXMuZmlsdGVyKHQgPT4gdC51X1RydG1ZcGlsY2sgPT09ICdZJykubWFwKHQgPT4gdC5jb2RlKSk7XHJcbiAgICAgIHRoaXMubG9hZExpc3QoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbG9hZExpc3QoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0TGlzdCgpLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgdGhpcy5hbGxEYXRhID0gZGF0YS5maWx0ZXIoeCA9PiB0aGlzLndlaWdoaW5nVHlwZXMuaGFzKHgudV9FbnRyeVR5cGUpKTtcclxuICAgICAgdGhpcy5hcHBseUZpbHRlcigpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRGaWx0ZXIobW9kZTogJ2FsbCcgfCAncGVuZGluZycpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsdGVyTW9kZSA9IG1vZGU7XHJcbiAgICB0aGlzLmFwcGx5RmlsdGVyKCk7XHJcbiAgICB0aGlzLmRhdGFHcmlkPy5pbnN0YW5jZT8ucmVwYWludCgpO1xyXG4gIH1cclxuXHJcbiAgb25Ub29sYmFyUHJlcGFyaW5nKGU6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgYWxsVGV4dCA9IHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KCdLYWRvb2dsdTo6QWxsV2VpZ2hpbmdzJyk7XHJcbiAgICBjb25zdCBwZW5kaW5nVGV4dCA9IHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KCdLYWRvb2dsdTo6UGVuZGluZ1dlaWdoaW5ncycpO1xyXG4gICAgY29uc3QgbmV3UmVjb3JkVGV4dCA9IHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KCdLYWRvb2dsdTo6TmV3UmVjb3JkJyk7XHJcbiAgICBlLnRvb2xiYXJPcHRpb25zLml0ZW1zLnVuc2hpZnQoXHJcbiAgICAgIHtcclxuICAgICAgICBsb2NhdGlvbjogJ2FmdGVyJyxcclxuICAgICAgICB3aWRnZXQ6ICdkeEJ1dHRvbicsXHJcbiAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgaWNvbjogJ3BsdXMnLFxyXG4gICAgICAgICAgdGV4dDogbmV3UmVjb3JkVGV4dCxcclxuICAgICAgICAgIHR5cGU6ICdkZWZhdWx0JyxcclxuICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHRoaXMueWVuaUtheWl0KCksXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGxvY2F0aW9uOiAnYmVmb3JlJyxcclxuICAgICAgICB3aWRnZXQ6ICdkeEJ1dHRvbicsXHJcbiAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgdGV4dDogYWxsVGV4dCxcclxuICAgICAgICAgIHR5cGU6IHRoaXMuZmlsdGVyTW9kZSA9PT0gJ2FsbCcgPyAnc3VjY2VzcycgOiAnbm9ybWFsJyxcclxuICAgICAgICAgIHN0eWxpbmdNb2RlOiB0aGlzLmZpbHRlck1vZGUgPT09ICdhbGwnID8gJ2NvbnRhaW5lZCcgOiAnb3V0bGluZWQnLFxyXG4gICAgICAgICAgb25DbGljazogKCkgPT4gdGhpcy5zZXRGaWx0ZXIoJ2FsbCcpLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBsb2NhdGlvbjogJ2JlZm9yZScsXHJcbiAgICAgICAgd2lkZ2V0OiAnZHhCdXR0b24nLFxyXG4gICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgIHRleHQ6IHBlbmRpbmdUZXh0LFxyXG4gICAgICAgICAgdHlwZTogdGhpcy5maWx0ZXJNb2RlID09PSAncGVuZGluZycgPyAnc3VjY2VzcycgOiAnbm9ybWFsJyxcclxuICAgICAgICAgIHN0eWxpbmdNb2RlOiB0aGlzLmZpbHRlck1vZGUgPT09ICdwZW5kaW5nJyA/ICdjb250YWluZWQnIDogJ291dGxpbmVkJyxcclxuICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHRoaXMuc2V0RmlsdGVyKCdwZW5kaW5nJyksXHJcbiAgICAgICAgfSxcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGFwcGx5RmlsdGVyKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZmlsdGVyTW9kZSA9PT0gJ3BlbmRpbmcnKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gdGhpcy5hbGxEYXRhLmZpbHRlcih4ID0+IHtcclxuICAgICAgICBpZiAoeC51X1N0YXR1cyA9PT0gJzQnKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgaWYgKHgudV9TdGF0dXMgPT09ICcyJyAmJiB0aGlzLm1hbEdjVHlwZXMuaGFzKHgudV9FbnRyeVR5cGUpKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gISh4LnVfTGFzdFdlaWdoaW5nID8/ICh4IGFzIGFueSkudV9MYXN0V2VpZ2hpbmcpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gWy4uLnRoaXMuYWxsRGF0YV07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc01hbEdDKGVudHJ5VHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5tYWxHY1R5cGVzPy5oYXMoZW50cnlUeXBlKSA/PyBmYWxzZTtcclxuICB9XHJcblxyXG4gIHllbmlLYXlpdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2thZG9vZ2x1L2VudHJ5LXdlaWdoaW5nL25ldyddKTtcclxuICB9XHJcblxyXG4gIGR1emVubGUocm93OiBFbnRyeVdlaWdoaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9rYWRvb2dsdS9lbnRyeS13ZWlnaGluZycsIHJvdy5kb2NFbnRyeSA/PyAocm93IGFzIGFueSkuZG9jRW50cnldLCB7XHJcbiAgICAgIHN0YXRlOiB7IHJvd0RhdGE6IHJvdyB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRhcnRpbVlhcChyb3c6IEVudHJ5V2VpZ2hpbmcsIG1vZGU6ICdmaXJzdCcgfCAnbGFzdCcpOiB2b2lkIHtcclxuICAgIGNvbnN0IG1zZ0tleSA9IG1vZGUgPT09ICdmaXJzdCdcclxuICAgICAgPyAnS2Fkb29nbHU6OkZpcnN0V2VpZ2hpbmdDb25maXJtTWVzc2FnZSdcclxuICAgICAgOiAnS2Fkb29nbHU6Okxhc3RXZWlnaGluZ0NvbmZpcm1NZXNzYWdlJztcclxuXHJcbiAgICB0aGlzLmNvbmZpcm1hdGlvblxyXG4gICAgICAud2Fybih0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChtc2dLZXksIFN0cmluZyhyb3cudV9QbGF0ZSB8fCByb3cuZG9jTnVtKSksICcnLCB7XHJcbiAgICAgICAgeWVzVGV4dDogdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoJ0thZG9vZ2x1OjpZZXMnKSxcclxuICAgICAgICBjYW5jZWxUZXh0OiB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudCgnS2Fkb29nbHU6Ok5vJyksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5zdWJzY3JpYmUoc3RhdHVzID0+IHtcclxuICAgICAgICBpZiAoc3RhdHVzID09PSAnY29uZmlybScpIHtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2thZG9vZ2x1L2VudHJ5LXdlaWdoaW5nJywgcm93LmRvY0VudHJ5ID8/IChyb3cgYXMgYW55KS5kb2NFbnRyeV0sIHtcclxuICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHsgbW9kZSB9LFxyXG4gICAgICAgICAgICBzdGF0ZTogeyByb3dEYXRhOiByb3cgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG96ZXRpR29ydW50dWxlKHJvdzogRW50cnlXZWlnaGluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycva2Fkb29nbHUvZW50cnktd2VpZ2hpbmcnLCByb3cuZG9jRW50cnkgPz8gKHJvdyBhcyBhbnkpLmRvY0VudHJ5XSwge1xyXG4gICAgICBzdGF0ZTogeyByb3dEYXRhOiByb3cgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzaWwocm93OiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRvY0VudHJ5ID0gcm93LmRvY0VudHJ5ID8/IHJvdy5kb2NFbnRyeTtcclxuICAgIHRoaXMuY29uZmlybWF0aW9uXHJcbiAgICAgIC53YXJuKGBcIiR7cm93LnVfUGxhdGUgfHwgcm93LnVfUGxhdGUgfHwgcm93LmRvY051bSB8fCByb3cuZG9jTnVtfVwiIGtheWTEsSBzaWxtZWsgaXN0ZWRpxJ9pbml6ZSBlbWluIG1pc2luaXo/YCwgYGAsIHtcclxuICAgICAgICB5ZXNUZXh0OiAnRXZldCcsXHJcbiAgICAgICAgY2FuY2VsVGV4dDogJ0hhecSxcicsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5zdWJzY3JpYmUoc3RhdHVzID0+IHtcclxuICAgICAgICBpZiAoc3RhdHVzID09PSAnY29uZmlybScpIHtcclxuICAgICAgICAgIHRoaXMuc2VydmljZS5kZWxldGUoZG9jRW50cnkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmxvYWRMaXN0KCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBmb3JtYXRQbGF0ZShwbGF0ZTogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXBsYXRlKSByZXR1cm4gJyc7XHJcbiAgICBjb25zdCBwID0gcGxhdGUucmVwbGFjZSgvXFxzKy9nLCAnJykudG9VcHBlckNhc2UoKTtcclxuICAgIGNvbnN0IG1hdGNoID0gcC5tYXRjaCgvXihcXGR7Mn0pKFtBLVrDh8SexLDDlsWew5xdezEsM30pKFxcZHsxLDR9KSQvKTtcclxuICAgIHJldHVybiBtYXRjaCA/IGAke21hdGNoWzFdfSAke21hdGNoWzJdfSAke21hdGNoWzNdfWAgOiBwbGF0ZTtcclxuICB9XHJcblxyXG4gIGZvcm1hdEVudHJ5RGF0ZVRpbWUoZGF0ZVN0cjogc3RyaW5nIHwgbnVsbCwgdGltZVN0cjogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWRhdGVTdHIpIHJldHVybiAnJztcclxuICAgIGNvbnN0IHBhcnRzID0gZGF0ZVN0ci5zcGxpdCgnVCcpWzBdLnNwbGl0KCctJyk7XHJcbiAgICBpZiAocGFydHMubGVuZ3RoIDwgMykgcmV0dXJuIGRhdGVTdHI7XHJcbiAgICBjb25zdCBkID0gbmV3IERhdGUoK3BhcnRzWzBdLCArcGFydHNbMV0gLSAxLCArcGFydHNbMl0pO1xyXG4gICAgaWYgKGlzTmFOKGQuZ2V0VGltZSgpKSkgcmV0dXJuIGRhdGVTdHI7XHJcbiAgICBjb25zdCBkZCAgID0gU3RyaW5nKGQuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgY29uc3QgbW0gICA9IFN0cmluZyhkLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgY29uc3QgeXl5eSA9IGQuZ2V0RnVsbFllYXIoKTtcclxuICAgIGNvbnN0IHRpbWUgPSB0aGlzLmZvcm1hdFRpbWUodGltZVN0cik7XHJcbiAgICByZXR1cm4gdGltZSA/IGAke2RkfS4ke21tfS4ke3l5eXl9ICR7dGltZX1gIDogYCR7ZGR9LiR7bW19LiR7eXl5eX1gO1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0VGltZSh0aW1lOiBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHtcclxuICAgIGlmICghdGltZSkgcmV0dXJuICcnO1xyXG4gICAgY29uc3QgdCA9IHRpbWUucmVwbGFjZSgvW14wLTldL2csICcnKTtcclxuICAgIGlmICh0Lmxlbmd0aCA9PT0gNCkgcmV0dXJuIHQuc3Vic3RyaW5nKDAsIDIpICsgJzonICsgdC5zdWJzdHJpbmcoMik7XHJcbiAgICBpZiAodC5sZW5ndGggPT09IDMpIHJldHVybiAnMCcgKyB0LnN1YnN0cmluZygwLCAxKSArICc6JyArIHQuc3Vic3RyaW5nKDEpO1xyXG4gICAgcmV0dXJuIHRpbWU7XHJcbiAgfVxyXG5cclxuICBnZXRTdGF0dXNMYWJlbChzdGF0dXM6IHN0cmluZyB8IG51bGwpOiBzdHJpbmcge1xyXG4gICAgc3dpdGNoIChzdGF0dXMpIHtcclxuICAgICAgY2FzZSAnMCc6IHJldHVybiB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudCgnS2Fkb29nbHU6OlN0YXR1c0VudGVyZWQnKTtcclxuICAgICAgY2FzZSAnMSc6IHJldHVybiB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudCgnS2Fkb29nbHU6OlN0YXR1c0ZpcnN0V2VpZ2hpbmdEb25lJyk7XHJcbiAgICAgIGNhc2UgJzInOiByZXR1cm4gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoJ0thZG9vZ2x1OjpTdGF0dXNMYXN0V2VpZ2hpbmdEb25lJyk7XHJcbiAgICAgIGNhc2UgJzMnOiByZXR1cm4gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoJ0thZG9vZ2x1OjpTdGF0dXNFeGl0ZWQnKTtcclxuICAgICAgY2FzZSAnNCc6IHJldHVybiB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudCgnS2Fkb29nbHU6OlN0YXR1c0dvb2RzTW92ZW1lbnREb25lJyk7XHJcbiAgICAgIGRlZmF1bHQ6ICByZXR1cm4gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoJ0thZG9vZ2x1OjpTdGF0dXNVbmtub3duJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRTdGF0dXNDbGFzcyhzdGF0dXM6IHN0cmluZyB8IG51bGwpOiBzdHJpbmcge1xyXG4gICAgc3dpdGNoIChzdGF0dXMpIHtcclxuICAgICAgY2FzZSAnMCc6IHJldHVybiAnYmFkZ2Ugcm91bmRlZC1waWxsIGJnLXNlY29uZGFyeSBmcy02IGZ3LW5vcm1hbCc7XHJcbiAgICAgIGNhc2UgJzEnOiByZXR1cm4gJ2JhZGdlIHJvdW5kZWQtcGlsbCBiZy1pbmZvIGZzLTYgZnctbm9ybWFsJztcclxuICAgICAgY2FzZSAnMic6IHJldHVybiAnYmFkZ2Ugcm91bmRlZC1waWxsIGJnLXN1Y2Nlc3MgZnMtNiBmdy1ub3JtYWwnO1xyXG4gICAgICBjYXNlICczJzogcmV0dXJuICdiYWRnZSByb3VuZGVkLXBpbGwgYmctc3VjY2VzcyBmcy02IGZ3LW5vcm1hbCc7XHJcbiAgICAgIGNhc2UgJzQnOiByZXR1cm4gJ2JhZGdlIHJvdW5kZWQtcGlsbCBiZy1zdWNjZXNzIGZzLTYgZnctbm9ybWFsJztcclxuICAgICAgZGVmYXVsdDogcmV0dXJuICdiYWRnZSByb3VuZGVkLXBpbGwgYmctc2Vjb25kYXJ5IGZzLTYgZnctbm9ybWFsJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1hbEdjWWFwKHJvdzogRW50cnlXZWlnaGluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgZG9jRW50cnkgPSByb3cuZG9jRW50cnkgPz8gKHJvdyBhcyBhbnkpLmRvY0VudHJ5O1xyXG4gICAgdGhpcy5jb25maXJtYXRpb25cclxuICAgICAgLndhcm4odGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoJ0thZG9vZ2x1OjpNYWxHY0NvbmZpcm1NZXNzYWdlJywgU3RyaW5nKHJvdy51X1BsYXRlIHx8IHJvdy5kb2NOdW0pKSwgJycsIHtcclxuICAgICAgICB5ZXNUZXh0OiB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudCgnS2Fkb29nbHU6OlllcycpLFxyXG4gICAgICAgIGNhbmNlbFRleHQ6IHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KCdLYWRvb2dsdTo6Tm8nKSxcclxuICAgICAgfSlcclxuICAgICAgLnN1YnNjcmliZShzdGF0dXMgPT4ge1xyXG4gICAgICAgIGlmIChzdGF0dXMgPT09ICdjb25maXJtJykge1xyXG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLmRvR29vZHNNb3ZlbWVudChkb2NFbnRyeSkuc3Vic2NyaWJlKCgpID0+IHRoaXMubG9hZExpc3QoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGJhcmtvZFlhemRpcihyb3c6IEVudHJ5V2VpZ2hpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRvY0VudHJ5ID0gcm93LmRvY0VudHJ5ID8/IChyb3cgYXMgYW55KS5kb2NFbnRyeTtcclxuICAgIHRoaXMuc2VydmljZS5nZXRXZWlnaGluZ1NsaXAoZG9jRW50cnkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGJ5dGVDaGFycyA9IGF0b2IocmVzcG9uc2UuYmFzZTY0KTtcclxuICAgICAgICBjb25zdCBieXRlTnVtYmVycyA9IG5ldyBBcnJheShieXRlQ2hhcnMubGVuZ3RoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJ5dGVDaGFycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgYnl0ZU51bWJlcnNbaV0gPSBieXRlQ2hhcnMuY2hhckNvZGVBdChpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtuZXcgVWludDhBcnJheShieXRlTnVtYmVycyldLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi9wZGYnIH0pO1xyXG4gICAgICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAgICAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJyk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgYWxlcnQoJ0JhcmtvZCAvIGthbnRhciBmacWfaSBvbHXFn3R1cnVsdXJrZW4gYmlyIGhhdGEgb2x1xZ90dS4nKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxhYnAtcGFnZSBbYnJlYWRjcnVtYl09XCJmYWxzZVwiPlxyXG4gIDxhYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lciBjbGFzcz1cImNvbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgIDxoMyBjbGFzcz1cInBhZ2UtdGl0bGVcIj57eyAnS2Fkb29nbHU6OkVudHJ5V2VpZ2hpbmdUaXRsZScgfCBhYnBMb2NhbGl6YXRpb24gfX08L2gzPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvYWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkIG10LTJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgPGR4LWRhdGEtZ3JpZFxyXG4gICAgICAgICNkYXRhR3JpZFxyXG4gICAgICAgIFtkYXRhU291cmNlXT1cImZpbHRlcmVkRGF0YVwiXHJcbiAgICAgICAgW2NvbHVtbkF1dG9XaWR0aF09XCJ0cnVlXCJcclxuICAgICAgICBbc2hvd0JvcmRlcnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3Nob3dSb3dMaW5lc109XCJ0cnVlXCJcclxuICAgICAgICBbaG92ZXJTdGF0ZUVuYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2FsbG93Q29sdW1uUmVzaXppbmddPVwidHJ1ZVwiXHJcbiAgICAgICAgY29sdW1uUmVzaXppbmdNb2RlPVwid2lkZ2V0XCJcclxuICAgICAgICBbcm93QWx0ZXJuYXRpb25FbmFibGVkXT1cInRydWVcIlxyXG4gICAgICAgIGtleUV4cHI9XCJkb2NFbnRyeVwiXHJcbiAgICAgICAgKG9uVG9vbGJhclByZXBhcmluZyk9XCJvblRvb2xiYXJQcmVwYXJpbmcoJGV2ZW50KVwiXHJcbiAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IGNhbGMoMTAwdmggLSAyODBweCk7XCI+XHJcblxyXG4gICAgICAgIDxkeG8tc2Nyb2xsaW5nIHNob3dTY3JvbGxiYXI9XCJhbHdheXNcIiBbdXNlTmF0aXZlXT1cImZhbHNlXCI+PC9keG8tc2Nyb2xsaW5nPlxyXG4gICAgICAgIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cclxuICAgICAgICA8ZHhvLWhlYWRlci1maWx0ZXIgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWhlYWRlci1maWx0ZXI+XHJcbiAgICAgICAgPGR4by1zZWFyY2gtcGFuZWwgW3Zpc2libGVdPVwidHJ1ZVwiIFt3aWR0aF09XCIyMDBcIiBbcGxhY2Vob2xkZXJdPVwiJ0thZG9vZ2x1OjpBcmEnIHwgYWJwTG9jYWxpemF0aW9uXCI+PC9keG8tc2VhcmNoLXBhbmVsPlxyXG5cclxuICAgICAgICA8ZHhvLXBhZ2VyXHJcbiAgICAgICAgICBbdmlzaWJsZV09XCJ0cnVlXCJcclxuICAgICAgICAgIFtzaG93SW5mb109XCJ0cnVlXCJcclxuICAgICAgICAgIFthbGxvd2VkUGFnZVNpemVzXT1cIlsxMCwgMjAsIDUwXVwiXHJcbiAgICAgICAgICBbc2hvd1BhZ2VTaXplU2VsZWN0b3JdPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbc2hvd05hdmlnYXRpb25CdXR0b25zXT1cInRydWVcIj5cclxuICAgICAgICA8L2R4by1wYWdlcj5cclxuICAgICAgICA8ZHhvLXBhZ2luZyBbcGFnZVNpemVdPVwiMTBcIj48L2R4by1wYWdpbmc+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gW2ZpeGVkXT1cInRydWVcIiBkYXRhRmllbGQ9XCJkb2NFbnRyeVwiIFthbGxvd0dyb3VwaW5nXT1cImZhbHNlXCIgW2FsbG93RmlsdGVyaW5nXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgW2FsbG93SGVhZGVyRmlsdGVyaW5nXT1cImZhbHNlXCIgW2FsbG93SGlkaW5nXT1cImZhbHNlXCIgW2FsbG93UmVvcmRlcmluZ109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIGFsaWdubWVudD1cImNlbnRlclwiXHJcbiAgICAgICAgICAgIGNlbGxUZW1wbGF0ZT1cIm9wZXJhdGlvblRlbXBsYXRlXCIgY2FwdGlvbj1cInt7ICdBYnBVaTo6QWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb24gfX1cIj5cclxuICAgICAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCByb3cgb2YgJ29wZXJhdGlvblRlbXBsYXRlJ1wiIHN0eWxlPVwidGV4dC1hbGlnbjpjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8IS0tIERldmFtIGVkZW4gdGFydMSxbTogacWfbGVtbGVyIGRyb3Bkb3duIChzdGF0dXMgJzAnIHZlICcxJykgLS0+XHJcbiAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjb250YWluZXI9XCJib2R5XCIgY2xhc3M9XCJkLWlubGluZS1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gZHJvcGRvd24tdG9nZ2xlXCIgc3R5bGU9XCJtaW4td2lkdGg6IDExMHB4O1wiIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiIG5nYkRyb3Bkb3duVG9nZ2xlIFtkaXNhYmxlZF09XCJkaXNhYmxlZElkQ29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY29nIG1yLTFcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIHt7ICdBYnBVaTo6QWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnU+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtICpuZ0lmPVwicm93LmRhdGEudV9TdGF0dXMgPT09ICcwJ1wiIChjbGljayk9XCJ0YXJ0aW1ZYXAocm93LmRhdGEsICdmaXJzdCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1iYWxhbmNlLXNjYWxlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPiB7eyAnS2Fkb29nbHU6OlBlcmZvcm1GaXJzdFdlaWdoaW5nJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKm5nSWY9XCJyb3cuZGF0YS51X1N0YXR1cyA9PT0gJzEnXCIgKGNsaWNrKT1cInRhcnRpbVlhcChyb3cuZGF0YSwgJ2xhc3QnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYmFsYW5jZS1zY2FsZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgJ0thZG9vZ2x1OjpQZXJmb3JtTGFzdFdlaWdoaW5nJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKm5nSWY9XCJyb3cuZGF0YS51X1N0YXR1cyA9PT0gJzInICYmIGlzTWFsR0Mocm93LmRhdGEudV9FbnRyeVR5cGUpXCIgKGNsaWNrKT1cIm1hbEdjWWFwKHJvdy5kYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZXhjaGFuZ2VcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IHt7ICdLYWRvb2dsdTo6TWFsR2NZYXAnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAqbmdJZj1cInJvdy5kYXRhLnVfU3RhdHVzID09PSAnMicgfHwgcm93LmRhdGEudV9TdGF0dXMgPT09ICczJyB8fCByb3cuZGF0YS51X1N0YXR1cyA9PT0gJzQnXCIgKGNsaWNrKT1cIm96ZXRpR29ydW50dWxlKHJvdy5kYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZmlsZS10ZXh0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPiB7eyAnS2Fkb29nbHU6OlZpZXdTdW1tYXJ5JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKm5nSWY9XCJyb3cuZGF0YS51X1N0YXR1cyA9PT0gJzAnXCIgKGNsaWNrKT1cImR1emVubGUocm93LmRhdGEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1lZGl0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPiB7eyAnQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAoY2xpY2spPVwiYmFya29kWWF6ZGlyKHJvdy5kYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcHJpbnRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IEJhcmtvZCBZYXpkxLFyXHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZHhpLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPGR4aS1jb2x1bW5cclxuICAgICAgICAgIGRhdGFGaWVsZD1cInVfU3RhdHVzXCJcclxuICAgICAgICAgIGNhcHRpb249XCJ7eyAnS2Fkb29nbHU6OlN0YXR1cycgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgW2ZpeGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgYWxpZ25tZW50PVwiY2VudGVyXCJcclxuICAgICAgICAgIGNlbGxUZW1wbGF0ZT1cInN0YXR1c1RlbXBsYXRlXCJcclxuICAgICAgICAgIFthbGxvd0ZpbHRlcmluZ109XCJ0cnVlXCJcclxuICAgICAgICAgIFthbGxvd0hlYWRlckZpbHRlcmluZ109XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8ZHhvLWxvb2t1cCBbZGF0YVNvdXJjZV09XCJzdGF0dXNGaWx0ZXJEYXRhU291cmNlXCIgdmFsdWVFeHByPVwidmFsdWVcIiBkaXNwbGF5RXhwcj1cInRleHRcIj48L2R4by1sb29rdXA+XHJcbiAgICAgICAgICA8ZHhvLWhlYWRlci1maWx0ZXIgW2RhdGFTb3VyY2VdPVwic3RhdHVzRmlsdGVyRGF0YVNvdXJjZVwiPjwvZHhvLWhlYWRlci1maWx0ZXI+XHJcbiAgICAgICAgPC9keGktY29sdW1uPlxyXG5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJkb2NOdW1cIiBjYXB0aW9uPVwie3sgJ0thZG9vZ2x1OjpEb2N1bWVudE5vJyB8IGFicExvY2FsaXphdGlvbiB9fVwiIHdpZHRoPVwiMTAwXCI+PC9keGktY29sdW1uPlxyXG5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJ1X0dhdGVDb2RlXCIgY2FwdGlvbj1cInt7ICdLYWRvb2dsdTo6R2F0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIj5cclxuICAgICAgICAgIDxkeG8tbG9va3VwIFtkYXRhU291cmNlXT1cImdhdGVMaXN0XCIgdmFsdWVFeHByPVwiY29kZVwiIGRpc3BsYXlFeHByPVwibmFtZVwiPjwvZHhvLWxvb2t1cD5cclxuICAgICAgICA8L2R4aS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxkeGktY29sdW1uXHJcbiAgICAgICAgICBkYXRhRmllbGQ9XCJ1X0VudHJ5RGF0ZVwiXHJcbiAgICAgICAgICBjYXB0aW9uPVwie3sgJ0thZG9vZ2x1OjpFbnRyeURhdGVUaW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBjZWxsVGVtcGxhdGU9XCJlbnRyeURhdGVUaW1lVGVtcGxhdGVcIlxyXG4gICAgICAgICAgW2FsbG93RmlsdGVyaW5nXT1cInRydWVcIj5cclxuICAgICAgICA8L2R4aS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInVfRW50cnlUeXBlXCIgY2FwdGlvbj1cIkFyYcOnIEhhcmVrZXQgVMO8csO8XCI+XHJcbiAgICAgICAgICA8ZHhvLWxvb2t1cCBbZGF0YVNvdXJjZV09XCJ2ZWhpY2xlVHlwZUxpc3RcIiB2YWx1ZUV4cHI9XCJjb2RlXCIgZGlzcGxheUV4cHI9XCJuYW1lXCI+PC9keG8tbG9va3VwPlxyXG4gICAgICAgIDwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJ1X1BsYXRlXCIgY2FwdGlvbj1cInt7ICdLYWRvb2dsdTo6VHJ1Y2tQbGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIiBjZWxsVGVtcGxhdGU9XCJwbGF0ZVRlbXBsYXRlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInVfRG9yc2VQbGF0ZVwiIGNhcHRpb249XCJ7eyAnS2Fkb29nbHU6OkRvcnNlUGxhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgY2VsbFRlbXBsYXRlPVwiZG9yc2VQbGF0ZVRlbXBsYXRlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInVfRHJpdmVyXCIgY2FwdGlvbj1cInt7ICdLYWRvb2dsdTo6RHJpdmVyTmFtZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidV9Ecml2ZXJDb2RlXCIgY2FwdGlvbj1cInt7ICdLYWRvb2dsdTo6RHJpdmVyQ29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidV9UY05vXCIgY2FwdGlvbj1cInt7ICdLYWRvb2dsdTo6VGNJZGVudGl0eU5vJyB8IGFicExvY2FsaXphdGlvbiB9fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJ1X0NhcmRDb2RlXCIgY2FwdGlvbj1cInt7ICdLYWRvb2dsdTo6Q2FyZENvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInVfSXRlbUNvZGVcIiBjYXB0aW9uPVwie3sgJ0thZG9vZ2x1OjpJdGVtQ29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidV9EZXNwYXRjaEFkdmljZU5vXCIgY2FwdGlvbj1cInt7ICdLYWRvb2dsdTo6RGVzcGF0Y2hBZHZpY2VObycgfCBhYnBMb2NhbGl6YXRpb24gfX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidV9TY2FsZUNvZGVcIiBjYXB0aW9uPVwie3sgJ0thZG9vZ2x1OjpTY2FsZUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCI+PC9keGktY29sdW1uPlxyXG5cclxuICAgICAgICA8ZHhpLWNvbHVtblxyXG4gICAgICAgICAgZGF0YUZpZWxkPVwidV9GaXJzdFdlaWdoaW5nXCJcclxuICAgICAgICAgIGNhcHRpb249XCJ7eyAnS2Fkb29nbHU6OkZpcnN0V2VpZ2hpbmdLZycgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgZGF0YVR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgW2Zvcm1hdF09XCJ7IHR5cGU6ICdmaXhlZFBvaW50JywgcHJlY2lzaW9uOiAwIH1cIj5cclxuICAgICAgICA8L2R4aS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxkeGktY29sdW1uXHJcbiAgICAgICAgICBkYXRhRmllbGQ9XCJ1X0xhc3RXZWlnaGluZ1wiXHJcbiAgICAgICAgICBjYXB0aW9uPVwie3sgJ0thZG9vZ2x1OjpMYXN0V2VpZ2hpbmdLZycgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgZGF0YVR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgW2Zvcm1hdF09XCJ7IHR5cGU6ICdmaXhlZFBvaW50JywgcHJlY2lzaW9uOiAwIH1cIj5cclxuICAgICAgICA8L2R4aS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxkeGktY29sdW1uXHJcbiAgICAgICAgICBkYXRhRmllbGQ9XCJ1X05ldFwiXHJcbiAgICAgICAgICBjYXB0aW9uPVwie3sgJ0thZG9vZ2x1OjpOZXRLZycgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgZGF0YVR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgW2Zvcm1hdF09XCJ7IHR5cGU6ICdmaXhlZFBvaW50JywgcHJlY2lzaW9uOiAwIH1cIj5cclxuICAgICAgICA8L2R4aS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxkeGktY29sdW1uXHJcbiAgICAgICAgICBkYXRhRmllbGQ9XCJ1X0V4aXREYXRlXCJcclxuICAgICAgICAgIGNhcHRpb249XCJ7eyAnS2Fkb29nbHU6OkV4aXREYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBjZWxsVGVtcGxhdGU9XCJleGl0RGF0ZVRpbWVUZW1wbGF0ZVwiXHJcbiAgICAgICAgICBbYWxsb3dGaWx0ZXJpbmddPVwidHJ1ZVwiPlxyXG4gICAgICAgIDwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJ1X0Rlc2NyaXB0aW9uXCIgY2FwdGlvbj1cInt7ICdLYWRvb2dsdTo6RGVzY3JpcHRpb24nIHwgYWJwTG9jYWxpemF0aW9uIH19XCI+PC9keGktY29sdW1uPlxyXG5cclxuICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGNlbGwgb2YgJ3BsYXRlVGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImNlbGwuZGF0YS51X1BsYXRlXCIgY2xhc3M9XCJ0ci1wbGF0ZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRyLXBsYXRlLWJsdWVcIj5UUjwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ci1wbGF0ZS10ZXh0XCI+e3sgZm9ybWF0UGxhdGUoY2VsbC5kYXRhLnVfUGxhdGUpIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGNlbGwgb2YgJ2RvcnNlUGxhdGVUZW1wbGF0ZSdcIj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY2VsbC5kYXRhLnVfRG9yc2VQbGF0ZVwiIGNsYXNzPVwidHItcGxhdGVcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ci1wbGF0ZS1ibHVlXCI+VFI8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHItcGxhdGUtdGV4dFwiPnt7IGZvcm1hdFBsYXRlKGNlbGwuZGF0YS51X0RvcnNlUGxhdGUpIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGNlbGwgb2YgJ2VudHJ5RGF0ZVRpbWVUZW1wbGF0ZSdcIj5cclxuICAgICAgICAgIHt7IGZvcm1hdEVudHJ5RGF0ZVRpbWUoY2VsbC5kYXRhLnVfRW50cnlEYXRlLCBjZWxsLmRhdGEudV9FbnRyeVRpbWUpIH19XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgY2VsbCBvZiAnZXhpdERhdGVUaW1lVGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImNlbGwuZGF0YS51X0V4aXREYXRlXCI+XHJcbiAgICAgICAgICAgIHt7IGNlbGwuZGF0YS51X0V4aXREYXRlIHwgZGF0ZTonZGQuTU0ueXl5eScgfX1cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjZWxsLmRhdGEudV9FeGl0VGltZVwiIGNsYXNzPVwidGV4dC1tdXRlZCBtcy0xXCI+e3sgZm9ybWF0VGltZShjZWxsLmRhdGEudV9FeGl0VGltZSkgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgY2VsbCBvZiAnc3RhdHVzVGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiZ2V0U3RhdHVzQ2xhc3MoY2VsbC5kYXRhLnVfU3RhdHVzKVwiIHN0eWxlPVwicGFkZGluZzogMC4yNWVtIC41ZW0gLjI1ZW0gLjVlbTtcIj5cclxuICAgICAgICAgICAge3sgZ2V0U3RhdHVzTGFiZWwoY2VsbC5kYXRhLnVfU3RhdHVzKSB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2R4LWRhdGEtZ3JpZD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2FicC1wYWdlPlxyXG4iXX0=
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWVudHJ5LXdlaWdoaW5nLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUvc3JjL2xpYi9oaXQtY29tcG9uZW50cy9oaXQtZW50cnktd2VpZ2hpbmcvaGl0LWVudHJ5LXdlaWdoaW5nLWxpc3QvaGl0LWVudHJ5LXdlaWdoaW5nLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUvc3JjL2xpYi9oaXQtY29tcG9uZW50cy9oaXQtZW50cnktd2VpZ2hpbmcvaGl0LWVudHJ5LXdlaWdoaW5nLWxpc3QvaGl0LWVudHJ5LXdlaWdoaW5nLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFnQjdELE1BQU0sT0FBTyw2QkFBNkI7SUFjeEMsWUFDVSxPQUFnQyxFQUNoQyxZQUFpQyxFQUNqQyxNQUFjLEVBQ2QsbUJBQXdDLEVBQ3hDLFdBQTJCO1FBSjNCLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBQ2hDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFoQnJDLFlBQU8sR0FBb0IsRUFBRSxDQUFDO1FBQzlCLGlCQUFZLEdBQW9CLEVBQUUsQ0FBQztRQUNuQyxvQkFBZSxHQUFrQixFQUFFLENBQUM7UUFDcEMsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixlQUFVLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUMvQixrQkFBYSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFFbEMscUJBQWdCLEdBQUcsS0FBSyxDQUFD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QVcsQ0FBQyxRQUFRLENBQUM7UUFDdkQsSUFBSSxDQUFDLFlBQVk7YUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQywrQkFBK0IsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDOUcsT0FBTyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO1lBQzFELFVBQVUsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztTQUM3RCxDQUFDO2FBQ0QsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2xCLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQ3pFO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzswSEF2TlUsNkJBQTZCOzhHQUE3Qiw2QkFBNkIseUtDaEIxQyxrdlNBNEtBOzJGRDVKYSw2QkFBNkI7a0JBTHpDLFNBQVM7K0JBQ0UsNkJBQTZCO29PQUtHLFFBQVE7c0JBQWpELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IER4RGF0YUdyaWRDb21wb25lbnQgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBIaXRFbnRyeVdlaWdoaW5nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2hpdC1wcm94eS9oaXQtZW50cnktd2VpZ2hpbmcvaGl0LWVudHJ5LXdlaWdoaW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnRyeVdlaWdoaW5nIH0gZnJvbSAnLi4vLi4vLi4vaGl0LXByb3h5L2hpdC1lbnRyeS13ZWlnaGluZy9tb2RlbHMnO1xyXG5pbXBvcnQgeyBWZWhpY2xlVHlwZSB9IGZyb20gJy4uLy4uLy4uL2hpdC1wcm94eS9oaXQtdmVoaWNsZS10eXBlL21vZGVscyc7XHJcbmltcG9ydCB7IEhpdEdhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vaGl0LXByb3h5L2hpdC1nYXRlL2hpdC1nYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHYXRlIH0gZnJvbSAnLi4vLi4vLi4vaGl0LXByb3h5L2hpdC1nYXRlL21vZGVscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1oaXQtZW50cnktd2VpZ2hpbmctbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hpdC1lbnRyeS13ZWlnaGluZy1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9oaXQtZW50cnktd2VpZ2hpbmctbGlzdC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0RW50cnlXZWlnaGluZ0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ2RhdGFHcmlkJywgeyBzdGF0aWM6IGZhbHNlIH0pIGRhdGFHcmlkITogRHhEYXRhR3JpZENvbXBvbmVudDtcclxuXHJcbiAgYWxsRGF0YTogRW50cnlXZWlnaGluZ1tdID0gW107XHJcbiAgZmlsdGVyZWREYXRhOiBFbnRyeVdlaWdoaW5nW10gPSBbXTtcclxuICB2ZWhpY2xlVHlwZUxpc3Q6IFZlaGljbGVUeXBlW10gPSBbXTtcclxuICBnYXRlTGlzdDogR2F0ZVtdID0gW107XHJcbiAgbWFsR2NUeXBlcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG4gIHdlaWdoaW5nVHlwZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuXHJcbiAgZGlzYWJsZWRJZENvbHVtbiA9IGZhbHNlO1xyXG4gIGZpbHRlck1vZGU6ICdhbGwnIHwgJ3BlbmRpbmcnID0gJ3BlbmRpbmcnO1xyXG4gIHN0YXR1c0ZpbHRlckRhdGFTb3VyY2U6IHsgdGV4dDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2VydmljZTogSGl0RW50cnlXZWlnaGluZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGxvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdhdGVTZXJ2aWNlOiBIaXRHYXRlU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0YXR1c0ZpbHRlckRhdGFTb3VyY2UgPSBbJzAnLCAnMScsICcyJywgJzMnLCAnNCddLm1hcCh2ID0+ICh7XHJcbiAgICAgIHZhbHVlOiB2LFxyXG4gICAgICB0ZXh0OiB0aGlzLmdldFN0YXR1c0xhYmVsKHYpLFxyXG4gICAgfSkpO1xyXG4gICAgdGhpcy5nYXRlU2VydmljZS5nZXRMaXN0KCkuc3Vic2NyaWJlKGdhdGVzID0+ICh0aGlzLmdhdGVMaXN0ID0gZ2F0ZXMpKTtcclxuICAgIHRoaXMuc2VydmljZS5nZXRWZWhpY2xlVHlwZXMoKS5zdWJzY3JpYmUodHlwZXMgPT4ge1xyXG4gICAgICB0aGlzLnZlaGljbGVUeXBlTGlzdCA9IHR5cGVzO1xyXG4gICAgICB0aGlzLm1hbEdjVHlwZXMgPSBuZXcgU2V0KHR5cGVzLmZpbHRlcih0ID0+IHQudV9NYWxHQyA9PT0gJ1knKS5tYXAodCA9PiB0LmNvZGUpKTtcclxuICAgICAgdGhpcy53ZWlnaGluZ1R5cGVzID0gbmV3IFNldCh0eXBlcy5maWx0ZXIodCA9PiB0LnVfVHJ0bVlwaWxjayA9PT0gJ1knKS5tYXAodCA9PiB0LmNvZGUpKTtcclxuICAgICAgdGhpcy5sb2FkTGlzdCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2FkTGlzdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VydmljZS5nZXRMaXN0KCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICB0aGlzLmFsbERhdGEgPSBkYXRhLmZpbHRlcih4ID0+IHRoaXMud2VpZ2hpbmdUeXBlcy5oYXMoeC51X0VudHJ5VHlwZSkpO1xyXG4gICAgICB0aGlzLmFwcGx5RmlsdGVyKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldEZpbHRlcihtb2RlOiAnYWxsJyB8ICdwZW5kaW5nJyk6IHZvaWQge1xyXG4gICAgdGhpcy5maWx0ZXJNb2RlID0gbW9kZTtcclxuICAgIHRoaXMuYXBwbHlGaWx0ZXIoKTtcclxuICAgIHRoaXMuZGF0YUdyaWQ/Lmluc3RhbmNlPy5yZXBhaW50KCk7XHJcbiAgfVxyXG5cclxuICBvblRvb2xiYXJQcmVwYXJpbmcoZTogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBhbGxUZXh0ID0gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoJ0thZG9vZ2x1OjpBbGxXZWlnaGluZ3MnKTtcclxuICAgIGNvbnN0IHBlbmRpbmdUZXh0ID0gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoJ0thZG9vZ2x1OjpQZW5kaW5nV2VpZ2hpbmdzJyk7XHJcbiAgICBjb25zdCBuZXdSZWNvcmRUZXh0ID0gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoJ0thZG9vZ2x1OjpOZXdSZWNvcmQnKTtcclxuICAgIGUudG9vbGJhck9wdGlvbnMuaXRlbXMudW5zaGlmdChcclxuICAgICAge1xyXG4gICAgICAgIGxvY2F0aW9uOiAnYWZ0ZXInLFxyXG4gICAgICAgIHdpZGdldDogJ2R4QnV0dG9uJyxcclxuICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICBpY29uOiAncGx1cycsXHJcbiAgICAgICAgICB0ZXh0OiBuZXdSZWNvcmRUZXh0LFxyXG4gICAgICAgICAgdHlwZTogJ2RlZmF1bHQnLFxyXG4gICAgICAgICAgb25DbGljazogKCkgPT4gdGhpcy55ZW5pS2F5aXQoKSxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbG9jYXRpb246ICdiZWZvcmUnLFxyXG4gICAgICAgIHdpZGdldDogJ2R4QnV0dG9uJyxcclxuICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICB0ZXh0OiBhbGxUZXh0LFxyXG4gICAgICAgICAgdHlwZTogdGhpcy5maWx0ZXJNb2RlID09PSAnYWxsJyA/ICdzdWNjZXNzJyA6ICdub3JtYWwnLFxyXG4gICAgICAgICAgc3R5bGluZ01vZGU6IHRoaXMuZmlsdGVyTW9kZSA9PT0gJ2FsbCcgPyAnY29udGFpbmVkJyA6ICdvdXRsaW5lZCcsXHJcbiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB0aGlzLnNldEZpbHRlcignYWxsJyksXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGxvY2F0aW9uOiAnYmVmb3JlJyxcclxuICAgICAgICB3aWRnZXQ6ICdkeEJ1dHRvbicsXHJcbiAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgdGV4dDogcGVuZGluZ1RleHQsXHJcbiAgICAgICAgICB0eXBlOiB0aGlzLmZpbHRlck1vZGUgPT09ICdwZW5kaW5nJyA/ICdzdWNjZXNzJyA6ICdub3JtYWwnLFxyXG4gICAgICAgICAgc3R5bGluZ01vZGU6IHRoaXMuZmlsdGVyTW9kZSA9PT0gJ3BlbmRpbmcnID8gJ2NvbnRhaW5lZCcgOiAnb3V0bGluZWQnLFxyXG4gICAgICAgICAgb25DbGljazogKCkgPT4gdGhpcy5zZXRGaWx0ZXIoJ3BlbmRpbmcnKSxcclxuICAgICAgICB9LFxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYXBwbHlGaWx0ZXIoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5maWx0ZXJNb2RlID09PSAncGVuZGluZycpIHtcclxuICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLmFsbERhdGEuZmlsdGVyKHggPT4ge1xyXG4gICAgICAgIGlmICh4LnVfU3RhdHVzID09PSAnNCcpIHJldHVybiBmYWxzZTtcclxuICAgICAgICBpZiAoeC51X1N0YXR1cyA9PT0gJzInICYmIHRoaXMubWFsR2NUeXBlcy5oYXMoeC51X0VudHJ5VHlwZSkpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIHJldHVybiAhKHgudV9MYXN0V2VpZ2hpbmcgPz8gKHggYXMgYW55KS51X0xhc3RXZWlnaGluZyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSBbLi4udGhpcy5hbGxEYXRhXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzTWFsR0MoZW50cnlUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm1hbEdjVHlwZXM/LmhhcyhlbnRyeVR5cGUpID8/IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgeWVuaUtheWl0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycva2Fkb29nbHUvZW50cnktd2VpZ2hpbmcvbmV3J10pO1xyXG4gIH1cclxuXHJcbiAgZHV6ZW5sZShyb3c6IEVudHJ5V2VpZ2hpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2thZG9vZ2x1L2VudHJ5LXdlaWdoaW5nJywgcm93LmRvY0VudHJ5ID8/IChyb3cgYXMgYW55KS5kb2NFbnRyeV0sIHtcclxuICAgICAgc3RhdGU6IHsgcm93RGF0YTogcm93IH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdGFydGltWWFwKHJvdzogRW50cnlXZWlnaGluZywgbW9kZTogJ2ZpcnN0JyB8ICdsYXN0Jyk6IHZvaWQge1xyXG4gICAgY29uc3QgbXNnS2V5ID0gbW9kZSA9PT0gJ2ZpcnN0J1xyXG4gICAgICA/ICdLYWRvb2dsdTo6Rmlyc3RXZWlnaGluZ0NvbmZpcm1NZXNzYWdlJ1xyXG4gICAgICA6ICdLYWRvb2dsdTo6TGFzdFdlaWdoaW5nQ29uZmlybU1lc3NhZ2UnO1xyXG5cclxuICAgIHRoaXMuY29uZmlybWF0aW9uXHJcbiAgICAgIC53YXJuKHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KG1zZ0tleSwgU3RyaW5nKHJvdy51X1BsYXRlIHx8IHJvdy5kb2NOdW0pKSwgJycsIHtcclxuICAgICAgICB5ZXNUZXh0OiB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudCgnS2Fkb29nbHU6OlllcycpLFxyXG4gICAgICAgIGNhbmNlbFRleHQ6IHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KCdLYWRvb2dsdTo6Tm8nKSxcclxuICAgICAgfSlcclxuICAgICAgLnN1YnNjcmliZShzdGF0dXMgPT4ge1xyXG4gICAgICAgIGlmIChzdGF0dXMgPT09ICdjb25maXJtJykge1xyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycva2Fkb29nbHUvZW50cnktd2VpZ2hpbmcnLCByb3cuZG9jRW50cnkgPz8gKHJvdyBhcyBhbnkpLmRvY0VudHJ5XSwge1xyXG4gICAgICAgICAgICBxdWVyeVBhcmFtczogeyBtb2RlIH0sXHJcbiAgICAgICAgICAgIHN0YXRlOiB7IHJvd0RhdGE6IHJvdyB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3pldGlHb3J1bnR1bGUocm93OiBFbnRyeVdlaWdoaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9rYWRvb2dsdS9lbnRyeS13ZWlnaGluZycsIHJvdy5kb2NFbnRyeSA/PyAocm93IGFzIGFueSkuZG9jRW50cnldLCB7XHJcbiAgICAgIHN0YXRlOiB7IHJvd0RhdGE6IHJvdyB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNpbChyb3c6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgZG9jRW50cnkgPSByb3cuZG9jRW50cnkgPz8gcm93LmRvY0VudHJ5O1xyXG4gICAgdGhpcy5jb25maXJtYXRpb25cclxuICAgICAgLndhcm4oYFwiJHtyb3cudV9QbGF0ZSB8fCByb3cudV9QbGF0ZSB8fCByb3cuZG9jTnVtIHx8IHJvdy5kb2NOdW19XCIga2F5ZMSxIHNpbG1layBpc3RlZGnEn2luaXplIGVtaW4gbWlzaW5pej9gLCBgYCwge1xyXG4gICAgICAgIHllc1RleHQ6ICdFdmV0JyxcclxuICAgICAgICBjYW5jZWxUZXh0OiAnSGF5xLFyJyxcclxuICAgICAgfSlcclxuICAgICAgLnN1YnNjcmliZShzdGF0dXMgPT4ge1xyXG4gICAgICAgIGlmIChzdGF0dXMgPT09ICdjb25maXJtJykge1xyXG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLmRlbGV0ZShkb2NFbnRyeSkuc3Vic2NyaWJlKCgpID0+IHRoaXMubG9hZExpc3QoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGZvcm1hdFBsYXRlKHBsYXRlOiBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHtcclxuICAgIGlmICghcGxhdGUpIHJldHVybiAnJztcclxuICAgIGNvbnN0IHAgPSBwbGF0ZS5yZXBsYWNlKC9cXHMrL2csICcnKS50b1VwcGVyQ2FzZSgpO1xyXG4gICAgY29uc3QgbWF0Y2ggPSBwLm1hdGNoKC9eKFxcZHsyfSkoW0EtWsOHxJ7EsMOWxZ7DnF17MSwzfSkoXFxkezEsNH0pJC8pO1xyXG4gICAgcmV0dXJuIG1hdGNoID8gYCR7bWF0Y2hbMV19ICR7bWF0Y2hbMl19ICR7bWF0Y2hbM119YCA6IHBsYXRlO1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0RW50cnlEYXRlVGltZShkYXRlU3RyOiBzdHJpbmcgfCBudWxsLCB0aW1lU3RyOiBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHtcclxuICAgIGlmICghZGF0ZVN0cikgcmV0dXJuICcnO1xyXG4gICAgY29uc3QgcGFydHMgPSBkYXRlU3RyLnNwbGl0KCdUJylbMF0uc3BsaXQoJy0nKTtcclxuICAgIGlmIChwYXJ0cy5sZW5ndGggPCAzKSByZXR1cm4gZGF0ZVN0cjtcclxuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSgrcGFydHNbMF0sICtwYXJ0c1sxXSAtIDEsICtwYXJ0c1syXSk7XHJcbiAgICBpZiAoaXNOYU4oZC5nZXRUaW1lKCkpKSByZXR1cm4gZGF0ZVN0cjtcclxuICAgIGNvbnN0IGRkICAgPSBTdHJpbmcoZC5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICBjb25zdCBtbSAgID0gU3RyaW5nKGQuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICBjb25zdCB5eXl5ID0gZC5nZXRGdWxsWWVhcigpO1xyXG4gICAgY29uc3QgdGltZSA9IHRoaXMuZm9ybWF0VGltZSh0aW1lU3RyKTtcclxuICAgIHJldHVybiB0aW1lID8gYCR7ZGR9LiR7bW19LiR7eXl5eX0gJHt0aW1lfWAgOiBgJHtkZH0uJHttbX0uJHt5eXl5fWA7XHJcbiAgfVxyXG5cclxuICBmb3JtYXRUaW1lKHRpbWU6IHN0cmluZyB8IG51bGwpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aW1lKSByZXR1cm4gJyc7XHJcbiAgICBjb25zdCB0ID0gdGltZS5yZXBsYWNlKC9bXjAtOV0vZywgJycpO1xyXG4gICAgaWYgKHQubGVuZ3RoID09PSA0KSByZXR1cm4gdC5zdWJzdHJpbmcoMCwgMikgKyAnOicgKyB0LnN1YnN0cmluZygyKTtcclxuICAgIGlmICh0Lmxlbmd0aCA9PT0gMykgcmV0dXJuICcwJyArIHQuc3Vic3RyaW5nKDAsIDEpICsgJzonICsgdC5zdWJzdHJpbmcoMSk7XHJcbiAgICByZXR1cm4gdGltZTtcclxuICB9XHJcblxyXG4gIGdldFN0YXR1c0xhYmVsKHN0YXR1czogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XHJcbiAgICBzd2l0Y2ggKHN0YXR1cykge1xyXG4gICAgICBjYXNlICcwJzogcmV0dXJuIHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KCdLYWRvb2dsdTo6U3RhdHVzRW50ZXJlZCcpO1xyXG4gICAgICBjYXNlICcxJzogcmV0dXJuIHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KCdLYWRvb2dsdTo6U3RhdHVzRmlyc3RXZWlnaGluZ0RvbmUnKTtcclxuICAgICAgY2FzZSAnMic6IHJldHVybiB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudCgnS2Fkb29nbHU6OlN0YXR1c0xhc3RXZWlnaGluZ0RvbmUnKTtcclxuICAgICAgY2FzZSAnMyc6IHJldHVybiB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudCgnS2Fkb29nbHU6OlN0YXR1c0V4aXRlZCcpO1xyXG4gICAgICBjYXNlICc0JzogcmV0dXJuIHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KCdLYWRvb2dsdTo6U3RhdHVzR29vZHNNb3ZlbWVudERvbmUnKTtcclxuICAgICAgZGVmYXVsdDogIHJldHVybiB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudCgnS2Fkb29nbHU6OlN0YXR1c1Vua25vd24nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFN0YXR1c0NsYXNzKHN0YXR1czogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XHJcbiAgICBzd2l0Y2ggKHN0YXR1cykge1xyXG4gICAgICBjYXNlICcwJzogcmV0dXJuICdiYWRnZSByb3VuZGVkLXBpbGwgYmctc2Vjb25kYXJ5IGZzLTYgZnctbm9ybWFsJztcclxuICAgICAgY2FzZSAnMSc6IHJldHVybiAnYmFkZ2Ugcm91bmRlZC1waWxsIGJnLWluZm8gZnMtNiBmdy1ub3JtYWwnO1xyXG4gICAgICBjYXNlICcyJzogcmV0dXJuICdiYWRnZSByb3VuZGVkLXBpbGwgYmctc3VjY2VzcyBmcy02IGZ3LW5vcm1hbCc7XHJcbiAgICAgIGNhc2UgJzMnOiByZXR1cm4gJ2JhZGdlIHJvdW5kZWQtcGlsbCBiZy1zdWNjZXNzIGZzLTYgZnctbm9ybWFsJztcclxuICAgICAgY2FzZSAnNCc6IHJldHVybiAnYmFkZ2Ugcm91bmRlZC1waWxsIGJnLXN1Y2Nlc3MgZnMtNiBmdy1ub3JtYWwnO1xyXG4gICAgICBkZWZhdWx0OiByZXR1cm4gJ2JhZGdlIHJvdW5kZWQtcGlsbCBiZy1zZWNvbmRhcnkgZnMtNiBmdy1ub3JtYWwnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWFsR2NZYXAocm93OiBFbnRyeVdlaWdoaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBkb2NFbnRyeSA9IHJvdy5kb2NFbnRyeSA/PyAocm93IGFzIGFueSkuZG9jRW50cnk7XHJcbiAgICB0aGlzLmNvbmZpcm1hdGlvblxyXG4gICAgICAud2Fybih0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudCgnS2Fkb29nbHU6Ok1hbEdjQ29uZmlybU1lc3NhZ2UnLCBTdHJpbmcocm93LnVfUGxhdGUgfHwgcm93LmRvY051bSkpLCAnJywge1xyXG4gICAgICAgIHllc1RleHQ6IHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KCdLYWRvb2dsdTo6WWVzJyksXHJcbiAgICAgICAgY2FuY2VsVGV4dDogdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoJ0thZG9vZ2x1OjpObycpLFxyXG4gICAgICB9KVxyXG4gICAgICAuc3Vic2NyaWJlKHN0YXR1cyA9PiB7XHJcbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gJ2NvbmZpcm0nKSB7XHJcbiAgICAgICAgICB0aGlzLnNlcnZpY2UuZG9Hb29kc01vdmVtZW50KGRvY0VudHJ5KS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5sb2FkTGlzdCgpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8YWJwLXBhZ2UgW2JyZWFkY3J1bWJdPVwiZmFsc2VcIj5cclxuICA8YWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXIgY2xhc3M9XCJjb2xcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICA8aDMgY2xhc3M9XCJwYWdlLXRpdGxlXCI+e3sgJ0thZG9vZ2x1OjpFbnRyeVdlaWdoaW5nVGl0bGUnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9oMz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2FicC1wYWdlLXRvb2xiYXItY29udGFpbmVyPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZCBtdC0yXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgIDxkeC1kYXRhLWdyaWRcclxuICAgICAgICAjZGF0YUdyaWRcclxuICAgICAgICBbZGF0YVNvdXJjZV09XCJmaWx0ZXJlZERhdGFcIlxyXG4gICAgICAgIFtjb2x1bW5BdXRvV2lkdGhdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3Nob3dCb3JkZXJzXT1cInRydWVcIlxyXG4gICAgICAgIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2hvdmVyU3RhdGVFbmFibGVkXT1cInRydWVcIlxyXG4gICAgICAgIFthbGxvd0NvbHVtblJlc2l6aW5nXT1cInRydWVcIlxyXG4gICAgICAgIGNvbHVtblJlc2l6aW5nTW9kZT1cIndpZGdldFwiXHJcbiAgICAgICAgW3Jvd0FsdGVybmF0aW9uRW5hYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICBrZXlFeHByPVwiZG9jRW50cnlcIlxyXG4gICAgICAgIChvblRvb2xiYXJQcmVwYXJpbmcpPVwib25Ub29sYmFyUHJlcGFyaW5nKCRldmVudClcIlxyXG4gICAgICAgIHN0eWxlPVwiaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjgwcHgpO1wiPlxyXG5cclxuICAgICAgICA8ZHhvLXNjcm9sbGluZyBzaG93U2Nyb2xsYmFyPVwiYWx3YXlzXCIgW3VzZU5hdGl2ZV09XCJmYWxzZVwiPjwvZHhvLXNjcm9sbGluZz5cclxuICAgICAgICA8ZHhvLWZpbHRlci1yb3cgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1yb3c+XHJcbiAgICAgICAgPGR4by1oZWFkZXItZmlsdGVyIFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1oZWFkZXItZmlsdGVyPlxyXG4gICAgICAgIDxkeG8tc2VhcmNoLXBhbmVsIFt2aXNpYmxlXT1cInRydWVcIiBbd2lkdGhdPVwiMjAwXCIgW3BsYWNlaG9sZGVyXT1cIidLYWRvb2dsdTo6QXJhJyB8IGFicExvY2FsaXphdGlvblwiPjwvZHhvLXNlYXJjaC1wYW5lbD5cclxuXHJcbiAgICAgICAgPGR4by1wYWdlclxyXG4gICAgICAgICAgW3Zpc2libGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbc2hvd0luZm9dPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbYWxsb3dlZFBhZ2VTaXplc109XCJbMTAsIDIwLCA1MF1cIlxyXG4gICAgICAgICAgW3Nob3dQYWdlU2l6ZVNlbGVjdG9yXT1cInRydWVcIlxyXG4gICAgICAgICAgW3Nob3dOYXZpZ2F0aW9uQnV0dG9uc109XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9keG8tcGFnZXI+XHJcbiAgICAgICAgPGR4by1wYWdpbmcgW3BhZ2VTaXplXT1cIjEwXCI+PC9keG8tcGFnaW5nPlxyXG4gICAgICAgIDxkeGktY29sdW1uIFtmaXhlZF09XCJ0cnVlXCIgZGF0YUZpZWxkPVwiZG9jRW50cnlcIiBbYWxsb3dHcm91cGluZ109XCJmYWxzZVwiIFthbGxvd0ZpbHRlcmluZ109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIFthbGxvd0hlYWRlckZpbHRlcmluZ109XCJmYWxzZVwiIFthbGxvd0hpZGluZ109XCJmYWxzZVwiIFthbGxvd1Jlb3JkZXJpbmddPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBhbGlnbm1lbnQ9XCJjZW50ZXJcIlxyXG4gICAgICAgICAgICBjZWxsVGVtcGxhdGU9XCJvcGVyYXRpb25UZW1wbGF0ZVwiIGNhcHRpb249XCJ7eyAnQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9uIH19XCI+XHJcbiAgICAgICAgICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgcm93IG9mICdvcGVyYXRpb25UZW1wbGF0ZSdcIiBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPCEtLSBEZXZhbSBlZGVuIHRhcnTEsW06IGnFn2xlbWxlciBkcm9wZG93biAoc3RhdHVzICcwJyB2ZSAnMScpIC0tPlxyXG4gICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIGRyb3Bkb3duLXRvZ2dsZVwiIHN0eWxlPVwibWluLXdpZHRoOiAxMTBweDtcIiBkYXRhLXRvZ2dsZT1cImRyb3Bkb3duXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBuZ2JEcm9wZG93blRvZ2dsZSBbZGlzYWJsZWRdPVwiZGlzYWJsZWRJZENvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNvZyBtci0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICB7eyAnQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51PlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAqbmdJZj1cInJvdy5kYXRhLnVfU3RhdHVzID09PSAnMCdcIiAoY2xpY2spPVwidGFydGltWWFwKHJvdy5kYXRhLCAnZmlyc3QnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYmFsYW5jZS1zY2FsZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgJ0thZG9vZ2x1OjpQZXJmb3JtRmlyc3RXZWlnaGluZycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtICpuZ0lmPVwicm93LmRhdGEudV9TdGF0dXMgPT09ICcxJ1wiIChjbGljayk9XCJ0YXJ0aW1ZYXAocm93LmRhdGEsICdsYXN0JylcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWJhbGFuY2Utc2NhbGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IHt7ICdLYWRvb2dsdTo6UGVyZm9ybUxhc3RXZWlnaGluZycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtICpuZ0lmPVwicm93LmRhdGEudV9TdGF0dXMgPT09ICcyJyAmJiBpc01hbEdDKHJvdy5kYXRhLnVfRW50cnlUeXBlKVwiIChjbGljayk9XCJtYWxHY1lhcChyb3cuZGF0YSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWV4Y2hhbmdlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPiB7eyAnS2Fkb29nbHU6Ok1hbEdjWWFwJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKm5nSWY9XCJyb3cuZGF0YS51X1N0YXR1cyA9PT0gJzInIHx8IHJvdy5kYXRhLnVfU3RhdHVzID09PSAnMycgfHwgcm93LmRhdGEudV9TdGF0dXMgPT09ICc0J1wiIChjbGljayk9XCJvemV0aUdvcnVudHVsZShyb3cuZGF0YSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWZpbGUtdGV4dFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgJ0thZG9vZ2x1OjpWaWV3U3VtbWFyeScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtICpuZ0lmPVwicm93LmRhdGEudV9TdGF0dXMgPT09ICcwJ1wiIChjbGljayk9XCJkdXplbmxlKHJvdy5kYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZWRpdFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgJ0FicFVpOjpFZGl0JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2R4aS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxkeGktY29sdW1uXHJcbiAgICAgICAgICBkYXRhRmllbGQ9XCJ1X1N0YXR1c1wiXHJcbiAgICAgICAgICBjYXB0aW9uPVwie3sgJ0thZG9vZ2x1OjpTdGF0dXMnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIFtmaXhlZF09XCJ0cnVlXCJcclxuICAgICAgICAgIGFsaWdubWVudD1cImNlbnRlclwiXHJcbiAgICAgICAgICBjZWxsVGVtcGxhdGU9XCJzdGF0dXNUZW1wbGF0ZVwiXHJcbiAgICAgICAgICBbYWxsb3dGaWx0ZXJpbmddPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbYWxsb3dIZWFkZXJGaWx0ZXJpbmddPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgPGR4by1sb29rdXAgW2RhdGFTb3VyY2VdPVwic3RhdHVzRmlsdGVyRGF0YVNvdXJjZVwiIHZhbHVlRXhwcj1cInZhbHVlXCIgZGlzcGxheUV4cHI9XCJ0ZXh0XCI+PC9keG8tbG9va3VwPlxyXG4gICAgICAgICAgPGR4by1oZWFkZXItZmlsdGVyIFtkYXRhU291cmNlXT1cInN0YXR1c0ZpbHRlckRhdGFTb3VyY2VcIj48L2R4by1oZWFkZXItZmlsdGVyPlxyXG4gICAgICAgIDwvZHhpLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiZG9jTnVtXCIgY2FwdGlvbj1cInt7ICdLYWRvb2dsdTo6RG9jdW1lbnRObycgfCBhYnBMb2NhbGl6YXRpb24gfX1cIiB3aWR0aD1cIjEwMFwiPjwvZHhpLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidV9HYXRlQ29kZVwiIGNhcHRpb249XCJ7eyAnS2Fkb29nbHU6OkdhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCI+XHJcbiAgICAgICAgICA8ZHhvLWxvb2t1cCBbZGF0YVNvdXJjZV09XCJnYXRlTGlzdFwiIHZhbHVlRXhwcj1cImNvZGVcIiBkaXNwbGF5RXhwcj1cIm5hbWVcIj48L2R4by1sb29rdXA+XHJcbiAgICAgICAgPC9keGktY29sdW1uPlxyXG5cclxuICAgICAgICA8ZHhpLWNvbHVtblxyXG4gICAgICAgICAgZGF0YUZpZWxkPVwidV9FbnRyeURhdGVcIlxyXG4gICAgICAgICAgY2FwdGlvbj1cInt7ICdLYWRvb2dsdTo6RW50cnlEYXRlVGltZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgY2VsbFRlbXBsYXRlPVwiZW50cnlEYXRlVGltZVRlbXBsYXRlXCJcclxuICAgICAgICAgIFthbGxvd0ZpbHRlcmluZ109XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9keGktY29sdW1uPlxyXG5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJ1X0VudHJ5VHlwZVwiIGNhcHRpb249XCJBcmHDpyBIYXJla2V0IFTDvHLDvFwiPlxyXG4gICAgICAgICAgPGR4by1sb29rdXAgW2RhdGFTb3VyY2VdPVwidmVoaWNsZVR5cGVMaXN0XCIgdmFsdWVFeHByPVwiY29kZVwiIGRpc3BsYXlFeHByPVwibmFtZVwiPjwvZHhvLWxvb2t1cD5cclxuICAgICAgICA8L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidV9QbGF0ZVwiIGNhcHRpb249XCJ7eyAnS2Fkb29nbHU6OlRydWNrUGxhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgY2VsbFRlbXBsYXRlPVwicGxhdGVUZW1wbGF0ZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJ1X0RvcnNlUGxhdGVcIiBjYXB0aW9uPVwie3sgJ0thZG9vZ2x1OjpEb3JzZVBsYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiIGNlbGxUZW1wbGF0ZT1cImRvcnNlUGxhdGVUZW1wbGF0ZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJ1X0RyaXZlclwiIGNhcHRpb249XCJ7eyAnS2Fkb29nbHU6OkRyaXZlck5hbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInVfRHJpdmVyQ29kZVwiIGNhcHRpb249XCJ7eyAnS2Fkb29nbHU6OkRyaXZlckNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInVfVGNOb1wiIGNhcHRpb249XCJ7eyAnS2Fkb29nbHU6OlRjSWRlbnRpdHlObycgfCBhYnBMb2NhbGl6YXRpb24gfX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidV9DYXJkQ29kZVwiIGNhcHRpb249XCJ7eyAnS2Fkb29nbHU6OkNhcmRDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJ1X0l0ZW1Db2RlXCIgY2FwdGlvbj1cInt7ICdLYWRvb2dsdTo6SXRlbUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInVfRGVzcGF0Y2hBZHZpY2VOb1wiIGNhcHRpb249XCJ7eyAnS2Fkb29nbHU6OkRlc3BhdGNoQWR2aWNlTm8nIHwgYWJwTG9jYWxpemF0aW9uIH19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInVfU2NhbGVDb2RlXCIgY2FwdGlvbj1cInt7ICdLYWRvb2dsdTo6U2NhbGVDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiPjwvZHhpLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPGR4aS1jb2x1bW5cclxuICAgICAgICAgIGRhdGFGaWVsZD1cInVfRmlyc3RXZWlnaGluZ1wiXHJcbiAgICAgICAgICBjYXB0aW9uPVwie3sgJ0thZG9vZ2x1OjpGaXJzdFdlaWdoaW5nS2cnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIGRhdGFUeXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgIFtmb3JtYXRdPVwieyB0eXBlOiAnZml4ZWRQb2ludCcsIHByZWNpc2lvbjogMCB9XCI+XHJcbiAgICAgICAgPC9keGktY29sdW1uPlxyXG5cclxuICAgICAgICA8ZHhpLWNvbHVtblxyXG4gICAgICAgICAgZGF0YUZpZWxkPVwidV9MYXN0V2VpZ2hpbmdcIlxyXG4gICAgICAgICAgY2FwdGlvbj1cInt7ICdLYWRvb2dsdTo6TGFzdFdlaWdoaW5nS2cnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIGRhdGFUeXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgIFtmb3JtYXRdPVwieyB0eXBlOiAnZml4ZWRQb2ludCcsIHByZWNpc2lvbjogMCB9XCI+XHJcbiAgICAgICAgPC9keGktY29sdW1uPlxyXG5cclxuICAgICAgICA8ZHhpLWNvbHVtblxyXG4gICAgICAgICAgZGF0YUZpZWxkPVwidV9OZXRcIlxyXG4gICAgICAgICAgY2FwdGlvbj1cInt7ICdLYWRvb2dsdTo6TmV0S2cnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIGRhdGFUeXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgIFtmb3JtYXRdPVwieyB0eXBlOiAnZml4ZWRQb2ludCcsIHByZWNpc2lvbjogMCB9XCI+XHJcbiAgICAgICAgPC9keGktY29sdW1uPlxyXG5cclxuICAgICAgICA8ZHhpLWNvbHVtblxyXG4gICAgICAgICAgZGF0YUZpZWxkPVwidV9FeGl0RGF0ZVwiXHJcbiAgICAgICAgICBjYXB0aW9uPVwie3sgJ0thZG9vZ2x1OjpFeGl0RGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgY2VsbFRlbXBsYXRlPVwiZXhpdERhdGVUaW1lVGVtcGxhdGVcIlxyXG4gICAgICAgICAgW2FsbG93RmlsdGVyaW5nXT1cInRydWVcIj5cclxuICAgICAgICA8L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidV9EZXNjcmlwdGlvblwiIGNhcHRpb249XCJ7eyAnS2Fkb29nbHU6OkRlc2NyaXB0aW9uJyB8IGFicExvY2FsaXphdGlvbiB9fVwiPjwvZHhpLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBjZWxsIG9mICdwbGF0ZVRlbXBsYXRlJ1wiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJjZWxsLmRhdGEudV9QbGF0ZVwiIGNsYXNzPVwidHItcGxhdGVcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ci1wbGF0ZS1ibHVlXCI+VFI8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHItcGxhdGUtdGV4dFwiPnt7IGZvcm1hdFBsYXRlKGNlbGwuZGF0YS51X1BsYXRlKSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBjZWxsIG9mICdkb3JzZVBsYXRlVGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImNlbGwuZGF0YS51X0RvcnNlUGxhdGVcIiBjbGFzcz1cInRyLXBsYXRlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHItcGxhdGUtYmx1ZVwiPlRSPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRyLXBsYXRlLXRleHRcIj57eyBmb3JtYXRQbGF0ZShjZWxsLmRhdGEudV9Eb3JzZVBsYXRlKSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBjZWxsIG9mICdlbnRyeURhdGVUaW1lVGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICB7eyBmb3JtYXRFbnRyeURhdGVUaW1lKGNlbGwuZGF0YS51X0VudHJ5RGF0ZSwgY2VsbC5kYXRhLnVfRW50cnlUaW1lKSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGNlbGwgb2YgJ2V4aXREYXRlVGltZVRlbXBsYXRlJ1wiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJjZWxsLmRhdGEudV9FeGl0RGF0ZVwiPlxyXG4gICAgICAgICAgICB7eyBjZWxsLmRhdGEudV9FeGl0RGF0ZSB8IGRhdGU6J2RkLk1NLnl5eXknIH19XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY2VsbC5kYXRhLnVfRXhpdFRpbWVcIiBjbGFzcz1cInRleHQtbXV0ZWQgbXMtMVwiPnt7IGZvcm1hdFRpbWUoY2VsbC5kYXRhLnVfRXhpdFRpbWUpIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGNlbGwgb2YgJ3N0YXR1c1RlbXBsYXRlJ1wiPlxyXG4gICAgICAgICAgPHNwYW4gW2NsYXNzXT1cImdldFN0YXR1c0NsYXNzKGNlbGwuZGF0YS51X1N0YXR1cylcIiBzdHlsZT1cInBhZGRpbmc6IDAuMjVlbSAuNWVtIC4yNWVtIC41ZW07XCI+XHJcbiAgICAgICAgICAgIHt7IGdldFN0YXR1c0xhYmVsKGNlbGwuZGF0YS51X1N0YXR1cykgfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9keC1kYXRhLWdyaWQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9hYnAtcGFnZT5cclxuIl19
@@ -85,9 +85,6 @@ export class HitEntryWeighingService {
85
85
  doGoodsMovement(docEntry) {
86
86
  return this.restService.request({ method: 'POST', url: `${this.baseUrl}/${docEntry}/do-goods-movement` }, { apiName: this.apiName }).pipe(map(r => r?.items));
87
87
  }
88
- getWeighingSlip(docEntry) {
89
- return this.restService.request({ method: 'GET', url: `${this.baseUrl}/${docEntry}/weighing-slip` }, { apiName: this.apiName });
90
- }
91
88
  }
92
89
  HitEntryWeighingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitEntryWeighingService, deps: [{ token: i1.RestService }, { token: i2.HitScaleService }, { token: i3.HitPlateService }, { token: i4.HitCarrierPersonService }, { token: i5.HitBusinessPartnerService }, { token: i6.HitItemService }, { token: i7.HitPurchaseDeliveryNoteService }, { token: i8.HitStockTransferService }, { token: i9.HitGateService }, { token: i10.HitVehicleTypeService }], target: i0.ɵɵFactoryTarget.Injectable });
93
90
  HitEntryWeighingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitEntryWeighingService, providedIn: 'root' });
@@ -95,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
95
92
  type: Injectable,
96
93
  args: [{ providedIn: 'root' }]
97
94
  }], ctorParameters: function () { return [{ type: i1.RestService }, { type: i2.HitScaleService }, { type: i3.HitPlateService }, { type: i4.HitCarrierPersonService }, { type: i5.HitBusinessPartnerService }, { type: i6.HitItemService }, { type: i7.HitPurchaseDeliveryNoteService }, { type: i8.HitStockTransferService }, { type: i9.HitGateService }, { type: i10.HitVehicleTypeService }]; } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWVudHJ5LXdlaWdoaW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rYWRvb2dsdS9zcmMvbGliL2hpdC1wcm94eS9oaXQtZW50cnktd2VpZ2hpbmcvaGl0LWVudHJ5LXdlaWdoaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQWMsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7QUEwQnZDLE1BQU0sT0FBTyx1QkFBdUI7SUFJbEMsWUFDVSxXQUF3QixFQUN4QixZQUE2QixFQUM3QixZQUE2QixFQUM3QixvQkFBNkMsRUFDN0Msc0JBQWlELEVBQ2pELFdBQTJCLEVBQzNCLDJCQUEyRCxFQUMzRCxvQkFBNkMsRUFDN0MsV0FBMkIsRUFDM0Isa0JBQXlDO1FBVHpDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFpQjtRQUM3QixpQkFBWSxHQUFaLFlBQVksQ0FBaUI7UUFDN0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUF5QjtRQUM3QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQTJCO1FBQ2pELGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQixnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQWdDO1FBQzNELHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBeUI7UUFDN0MsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBdUI7UUFibkQsWUFBTyxHQUFHLFVBQVUsQ0FBQztRQUNyQixZQUFPLEdBQUcsMENBQTBDLENBQUM7SUFhbEQsQ0FBQztJQUVKLE9BQU8sQ0FBQyxNQUFZO1FBQ2xCLE1BQU0sYUFBYSxHQUFHLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxHQUFHLE1BQU0sRUFBRSxD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TUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLFFBQVEsZ0JBQWdCLEVBQUUsRUFDbkUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUMxQixDQUFDO0lBQ0osQ0FBQzs7b0hBdEpVLHVCQUF1Qjt3SEFBdkIsdUJBQXVCLGNBRFYsTUFBTTsyRkFDbkIsdUJBQXVCO2tCQURuQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBtYXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBFbnRyeVdlaWdoaW5nLFxyXG4gIEVudHJ5V2VpZ2hpbmdBY2NvdW50LFxyXG4gIEVudHJ5V2VpZ2hpbmdEb2N1bWVudCxcclxuICBFbnRyeVdlaWdoaW5nRHJpdmVyLFxyXG4gIEVudHJ5V2VpZ2hpbmdHYXRlLFxyXG4gIEVudHJ5V2VpZ2hpbmdTY2FsZSxcclxuICBFbnRyeVdlaWdoaW5nU3RvY2tJdGVtLFxyXG4gIEVudHJ5V2VpZ2hpbmdUcmFpbGVyUGxhdGUsXHJcbiAgRW50cnlXZWlnaGluZ1RydWNrUGxhdGUsXHJcbiAgRW50cnlXZWlnaGluZ1ZlaGljbGVUeXBlLFxyXG4gIFNhdmVFbnRyeVdlaWdoaW5nRHRvLFxyXG59IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgQXBpUmVzcG9uc2UgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBIaXRTY2FsZVNlcnZpY2UgfSBmcm9tICcuLi9oaXQtc2NhbGUvaGl0LXNjYWxlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIaXRQbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9oaXQtcGxhdGUvaGl0LXBsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIaXRDYXJyaWVyUGVyc29uU2VydmljZSB9IGZyb20gJy4uL2hpdC1jYXJyaWVyLXBlcnNvbi9oaXQtY2Fycmllci1wZXJzb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEhpdEJ1c2luZXNzUGFydG5lclNlcnZpY2UgfSBmcm9tICcuLi9oaXQtYnVzaW5lc3MtcGFydG5lci9oaXQtYnVzaW5lc3MtcGFydG5lci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSGl0SXRlbVNlcnZpY2UgfSBmcm9tICcuLi9oaXQtaXRlbS9oaXQtaXRlbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSGl0UHVyY2hhc2VEZWxpdmVyeU5vdGVTZXJ2aWNlIH0gZnJvbSAnLi4vaGl0LXB1cmNoYXNlLWRlbGl2ZXJ5LW5vdGUvaGl0LXB1cmNoYXNlLWRlbGl2ZXJ5LW5vdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEhpdFN0b2NrVHJhbnNmZXJTZXJ2aWNlIH0gZnJvbSAnLi4vaGl0LXN0b2NrLXRyYW5zZmVyL2hpdC1zdG9jay10cmFuc2Zlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSGl0R2F0ZVNlcnZpY2UgfSBmcm9tICcuLi9oaXQtZ2F0ZS9oaXQtZ2F0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSGl0VmVoaWNsZVR5cGVTZXJ2aWNlIH0gZnJvbSAnLi4vaGl0LXZlaGljbGUtdHlwZS9oaXQtdmVoaWNsZS10eXBlLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEhpdEVudHJ5V2VpZ2hpbmdTZXJ2aWNlIHtcclxuICBhcGlOYW1lID0gJ0thZG9vZ2x1JztcclxuICBiYXNlVXJsID0gJy9hcGkvZW50ZWdyYXRpb24tc2VydmljZS9lbnRyeS13ZWlnaGluZ3MnO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzY2FsZVNlcnZpY2U6IEhpdFNjYWxlU2VydmljZSxcclxuICAgIHByaXZhdGUgcGxhdGVTZXJ2aWNlOiBIaXRQbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNhcnJpZXJQZXJzb25TZXJ2aWNlOiBIaXRDYXJyaWVyUGVyc29uU2VydmljZSxcclxuICAgIHByaXZhdGUgYnVzaW5lc3NQYXJ0bmVyU2VydmljZTogSGl0QnVzaW5lc3NQYXJ0bmVyU2VydmljZSxcclxuICAgIHByaXZhdGUgaXRlbVNlcnZpY2U6IEhpdEl0ZW1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwdXJjaGFzZURlbGl2ZXJ5Tm90ZVNlcnZpY2U6IEhpdFB1cmNoYXNlRGVsaXZlcnlOb3RlU2VydmljZSxcclxuICAgIHByaXZhdGUgc3RvY2tUcmFuc2ZlclNlcnZpY2U6IEhpdFN0b2NrVHJhbnNmZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBnYXRlU2VydmljZTogSGl0R2F0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHZlaGljbGVUeXBlU2VydmljZTogSGl0VmVoaWNsZVR5cGVTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBnZXRMaXN0KHBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8RW50cnlXZWlnaGluZ1tdPiB7XHJcbiAgICBjb25zdCBkZWZhdWx0UGFyYW1zID0geyBtYXhSZXN1bHRDb3VudDogNTAsIC4uLnBhcmFtcyB9O1xyXG4gICAgcmV0dXJuIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDx2b2lkLCBBcGlSZXNwb25zZTxFbnRyeVdlaWdoaW5nW10+PihcclxuICAgICAgeyBtZXRob2Q6ICdHRVQnLCB1cmw6IHRoaXMuYmFzZVVybCwgcGFyYW1zOiBkZWZhdWx0UGFyYW1zIH0sXHJcbiAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH1cclxuICAgICkucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlPy5pdGVtcyA/PyBbXSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXQoZG9jRW50cnk6IG51bWJlcik6IE9ic2VydmFibGU8RW50cnlXZWlnaGluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDx2b2lkLCBBcGlSZXNwb25zZTxFbnRyeVdlaWdoaW5nPj4oXHJcbiAgICAgIHsgbWV0aG9kOiAnR0VUJywgdXJsOiBgJHt0aGlzLmJhc2VVcmx9LyR7ZG9jRW50cnl9YCB9LFxyXG4gICAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9XHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZT8uaXRlbXMpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlKGJvZHk6IFNhdmVFbnRyeVdlaWdoaW5nRHRvKTogT2JzZXJ2YWJsZTxFbnRyeVdlaWdoaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PFNhdmVFbnRyeVdlaWdoaW5nRHRvLCBBcGlSZXNwb25zZTxFbnRyeVdlaWdoaW5nPj4oXHJcbiAgICAgIHsgbWV0aG9kOiAnUE9TVCcsIHVybDogdGhpcy5iYXNlVXJsLCBib2R5IH0sXHJcbiAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH1cclxuICAgICkucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlPy5pdGVtcylcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGUoZG9jRW50cnk6IG51bWJlciwgYm9keTogU2F2ZUVudHJ5V2VpZ2hpbmdEdG8pOiBPYnNlcnZhYmxlPEVudHJ5V2VpZ2hpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8U2F2ZUVudHJ5V2VpZ2hpbmdEdG8sIEFwaVJlc3BvbnNlPEVudHJ5V2VpZ2hpbmc+PihcclxuICAgICAgeyBtZXRob2Q6ICdQQVRDSCcsIHVybDogYCR7dGhpcy5iYXNlVXJsfS8ke2RvY0VudHJ5fWAsIGJvZHkgfSxcclxuICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2U/Lml0ZW1zKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZShkb2NFbnRyeTogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8dm9pZCwgYW55PihcclxuICAgICAgeyBtZXRob2Q6ICdERUxFVEUnLCB1cmw6IGAke3RoaXMuYmFzZVVybH0vJHtkb2NFbnRyeX1gIH0sXHJcbiAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkb1dlaWdoaW5nKGRvY0VudHJ5OiBudW1iZXIsIGJvZHk6IHsgd2VpZ2hpbmdWYWx1ZTogbnVtYmVyOyBvcGVyYXRvckNvZGU6IHN0cmluZyB9KTogT2JzZXJ2YWJsZTxFbnRyeVdlaWdoaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgQXBpUmVzcG9uc2U8RW50cnlXZWlnaGluZz4+KFxyXG4gICAgICB7IG1ldGhvZDogJ1BPU1QnLCB1cmw6IGAke3RoaXMuYmFzZVVybH0vJHtkb2NFbnRyeX0vZG8td2VpZ2hpbmdgLCBib2R5IH0sXHJcbiAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH1cclxuICAgICkucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlPy5pdGVtcylcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyAtLS0gTG9va3VwIG1ldGhvZHMgLS0tXHJcblxyXG4gIGdldERvY3VtZW50cygpOiBPYnNlcnZhYmxlPEVudHJ5V2VpZ2hpbmdEb2N1bWVudFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5wdXJjaGFzZURlbGl2ZXJ5Tm90ZVNlcnZpY2UuZ2V0TGlzdCgpLnBpcGUoXHJcbiAgICBtYXAobm90ZXMgPT4gbm90ZXMubWFwKG4gPT4gKHsgY29kZTogbi5kb2NOdW0udG9TdHJpbmcoKSwgbmFtZTogbi5jYXJkTmFtZSA/PyAnJyB9KSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2NhbGVzKCk6IE9ic2VydmFibGU8RW50cnlXZWlnaGluZ1NjYWxlW10+IHtcclxuICAgIHJldHVybiB0aGlzLnNjYWxlU2VydmljZS5nZXRMaXN0KCkucGlwZShcclxuICAgICAgbWFwKHNjYWxlcyA9PiBzY2FsZXMubWFwKHMgPT4gKHsgY29kZTogcy5jb2RlLCBuYW1lOiBzLm5hbWUgfSkpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFRydWNrUGxhdGVzKCk6IE9ic2VydmFibGU8RW50cnlXZWlnaGluZ1RydWNrUGxhdGVbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMucGxhdGVTZXJ2aWNlLmdldExpc3QoKS5waXBlKFxyXG4gICAgICBtYXAocGxhdGVzID0+IHBsYXRlc1xyXG4gICAgICAgIC5maWx0ZXIocCA9PiBwLnVfSXNUcmFpbGVyID09PSAnTicgfHwgIXAudV9Jc1RyYWlsZXIpXHJcbiAgICAgICAgLm1hcChwID0+ICh7IGNvZGU6IHAuY29kZSwgcGxhdGVObzogcC5jb2RlIH0pKVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VHJhaWxlclBsYXRlcygpOiBPYnNlcnZhYmxlPEVudHJ5V2VpZ2hpbmdUcmFpbGVyUGxhdGVbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMucGxhdGVTZXJ2aWNlLmdldExpc3QoKS5waXBlKFxyXG4gICAgICBtYXAocGxhdGVzID0+IHBsYXRlc1xyXG4gICAgICAgIC5maWx0ZXIocCA9PiBwLnVfSXNUcmFpbGVyID09PSAnWScpXHJcbiAgICAgICAgLm1hcChwID0+ICh7IGNvZGU6IHAuY29kZSwgcGxhdGVObzogcC5jb2RlIH0pKVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RHJpdmVycygpOiBPYnNlcnZhYmxlPEVudHJ5V2VpZ2hpbmdEcml2ZXJbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2FycmllclBlcnNvblNlcnZpY2UuZ2V0TGlzdCgpLnBpcGUoXHJcbiAgICAgIG1hcChwZXJzb25zID0+IHBlcnNvbnNcclxuICAgICAgICAuZmlsdGVyKHAgPT4gcC51X0FjdGl2ZSA9PT0gJ1knKVxyXG4gICAgICAgIC5tYXAocCA9PiAoeyBjb2RlOiBwLmNvZGUsIG5hbWU6IGAke3AudV9GaXJzdG5hbWUgPz8gJyd9ICR7cC51X0xhc3RuYW1lID8/ICcnfWAudHJpbSgpIH0pKVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWNjb3VudHMoKTogT2JzZXJ2YWJsZTxFbnRyeVdlaWdoaW5nQWNjb3VudFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5idXNpbmVzc1BhcnRuZXJTZXJ2aWNlLmdldExpc3QoKS5waXBlKFxyXG4gICAgICBtYXAocGFydG5lcnMgPT4gcGFydG5lcnMubWFwKHAgPT4gKHsgY29kZTogcC5jYXJkQ29kZSwgdGl0bGU6IHAuY2FyZE5hbWUgfSkpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFN0b2NrSXRlbXMoKTogT2JzZXJ2YWJsZTxFbnRyeVdlaWdoaW5nU3RvY2tJdGVtW10+IHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1TZXJ2aWNlLmdldExpc3QoKS5waXBlKFxyXG4gICAgICBtYXAoaXRlbXMgPT4gaXRlbXMubWFwKGkgPT4gKHsgY29kZTogaS5pdGVtQ29kZSwgbmFtZTogaS5pdGVtTmFtZSB9KSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0R2F0ZXMoKTogT2JzZXJ2YWJsZTxFbnRyeVdlaWdoaW5nR2F0ZVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5nYXRlU2VydmljZS5nZXRMaXN0KCkucGlwZShcclxuICAgICAgbWFwKGdhdGVzID0+IGdhdGVzLm1hcChnID0+ICh7IGNvZGU6IGcuY29kZSwgbmFtZTogZy5uYW1lIH0pKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRWZWhpY2xlVHlwZXMoKTogT2JzZXJ2YWJsZTxFbnRyeVdlaWdoaW5nVmVoaWNsZVR5cGVbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudmVoaWNsZVR5cGVTZXJ2aWNlLmdldExpc3QoKS5waXBlKFxyXG4gICAgICBtYXAodHlwZXMgPT4gdHlwZXMubWFwKHQgPT4gKHtcclxuICAgICAgICBjb2RlOiB0LmNvZGUsIG5hbWU6IHQubmFtZSxcclxuICAgICAgICB1X1RydG1ZcGlsY2s6IHQudV9UcnRtWXBpbGNrLCB1X01hbEdDOiB0LnVfTWFsR0NcclxuICAgICAgfSkpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRvR29vZHNNb3ZlbWVudChkb2NFbnRyeTogbnVtYmVyKTogT2JzZXJ2YWJsZTxFbnRyeVdlaWdoaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PHZvaWQsIEFwaVJlc3BvbnNlPEVudHJ5V2VpZ2hpbmc+PihcclxuICAgICAgeyBtZXRob2Q6ICdQT1NUJywgdXJsOiBgJHt0aGlzLmJhc2VVcmx9LyR7ZG9jRW50cnl9L2RvLWdvb2RzLW1vdmVtZW50YCB9LFxyXG4gICAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9XHJcbiAgICApLnBpcGUobWFwKHIgPT4gcj8uaXRlbXMpKTtcclxuICB9XHJcblxyXG4gIGdldFdlaWdoaW5nU2xpcChkb2NFbnRyeTogbnVtYmVyKTogT2JzZXJ2YWJsZTx7IGJhc2U2NDogc3RyaW5nIH0+IHtcclxuICAgIHJldHVybiB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8dm9pZCwgeyBiYXNlNjQ6IHN0cmluZyB9PihcclxuICAgICAgeyBtZXRob2Q6ICdHRVQnLCB1cmw6IGAke3RoaXMuYmFzZVVybH0vJHtkb2NFbnRyeX0vd2VpZ2hpbmctc2xpcGAgfSxcclxuICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWVudHJ5LXdlaWdoaW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rYWRvb2dsdS9zcmMvbGliL2hpdC1wcm94eS9oaXQtZW50cnktd2VpZ2hpbmcvaGl0LWVudHJ5LXdlaWdoaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQWMsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7QUEwQnZDLE1BQU0sT0FBTyx1QkFBdUI7SUFJbEMsWUFDVSxXQUF3QixFQUN4QixZQUE2QixFQUM3QixZQUE2QixFQUM3QixvQkFBNkMsRUFDN0Msc0JBQWlELEVBQ2pELFdBQTJCLEVBQzNCLDJCQUEyRCxFQUMzRCxvQkFBNkMsRUFDN0MsV0FBMkIsRUFDM0Isa0JBQXlDO1FBVHpDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFpQjtRQUM3QixpQkFBWSxHQUFaLFlBQVksQ0FBaUI7UUFDN0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUF5QjtRQUM3QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQTJCO1FBQ2pELGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQixnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQWdDO1FBQzNELHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBeUI7UUFDN0MsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBdUI7UUFibkQsWUFBTyxHQUFHLFVBQVUsQ0FBQztRQUNyQixZQUFPLEdBQUcsMENBQTBDLENBQUM7SUFhbEQsQ0FBQztJQUVKLE9BQU8sQ0FBQyxNQUFZO1FBQ2xCLE1BQU0sYUFBYSxHQUFHLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxHQUFHLE1BQU0sRUFBRSxD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QUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG1hcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIEVudHJ5V2VpZ2hpbmcsXHJcbiAgRW50cnlXZWlnaGluZ0FjY291bnQsXHJcbiAgRW50cnlXZWlnaGluZ0RvY3VtZW50LFxyXG4gIEVudHJ5V2VpZ2hpbmdEcml2ZXIsXHJcbiAgRW50cnlXZWlnaGluZ0dhdGUsXHJcbiAgRW50cnlXZWlnaGluZ1NjYWxlLFxyXG4gIEVudHJ5V2VpZ2hpbmdTdG9ja0l0ZW0sXHJcbiAgRW50cnlXZWlnaGluZ1RyYWlsZXJQbGF0ZSxcclxuICBFbnRyeVdlaWdoaW5nVHJ1Y2tQbGF0ZSxcclxuICBFbnRyeVdlaWdoaW5nVmVoaWNsZVR5cGUsXHJcbiAgU2F2ZUVudHJ5V2VpZ2hpbmdEdG8sXHJcbn0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBBcGlSZXNwb25zZSB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEhpdFNjYWxlU2VydmljZSB9IGZyb20gJy4uL2hpdC1zY2FsZS9oaXQtc2NhbGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEhpdFBsYXRlU2VydmljZSB9IGZyb20gJy4uL2hpdC1wbGF0ZS9oaXQtcGxhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEhpdENhcnJpZXJQZXJzb25TZXJ2aWNlIH0gZnJvbSAnLi4vaGl0LWNhcnJpZXItcGVyc29uL2hpdC1jYXJyaWVyLXBlcnNvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSGl0QnVzaW5lc3NQYXJ0bmVyU2VydmljZSB9IGZyb20gJy4uL2hpdC1idXNpbmVzcy1wYXJ0bmVyL2hpdC1idXNpbmVzcy1wYXJ0bmVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIaXRJdGVtU2VydmljZSB9IGZyb20gJy4uL2hpdC1pdGVtL2hpdC1pdGVtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIaXRQdXJjaGFzZURlbGl2ZXJ5Tm90ZVNlcnZpY2UgfSBmcm9tICcuLi9oaXQtcHVyY2hhc2UtZGVsaXZlcnktbm90ZS9oaXQtcHVyY2hhc2UtZGVsaXZlcnktbm90ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSGl0U3RvY2tUcmFuc2ZlclNlcnZpY2UgfSBmcm9tICcuLi9oaXQtc3RvY2stdHJhbnNmZXIvaGl0LXN0b2NrLXRyYW5zZmVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIaXRHYXRlU2VydmljZSB9IGZyb20gJy4uL2hpdC1nYXRlL2hpdC1nYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIaXRWZWhpY2xlVHlwZVNlcnZpY2UgfSBmcm9tICcuLi9oaXQtdmVoaWNsZS10eXBlL2hpdC12ZWhpY2xlLXR5cGUuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgSGl0RW50cnlXZWlnaGluZ1NlcnZpY2Uge1xyXG4gIGFwaU5hbWUgPSAnS2Fkb29nbHUnO1xyXG4gIGJhc2VVcmwgPSAnL2FwaS9lbnRlZ3JhdGlvbi1zZXJ2aWNlL2VudHJ5LXdlaWdoaW5ncyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNjYWxlU2VydmljZTogSGl0U2NhbGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwbGF0ZVNlcnZpY2U6IEhpdFBsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgY2FycmllclBlcnNvblNlcnZpY2U6IEhpdENhcnJpZXJQZXJzb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBidXNpbmVzc1BhcnRuZXJTZXJ2aWNlOiBIaXRCdXNpbmVzc1BhcnRuZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBpdGVtU2VydmljZTogSGl0SXRlbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHB1cmNoYXNlRGVsaXZlcnlOb3RlU2VydmljZTogSGl0UHVyY2hhc2VEZWxpdmVyeU5vdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzdG9ja1RyYW5zZmVyU2VydmljZTogSGl0U3RvY2tUcmFuc2ZlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdhdGVTZXJ2aWNlOiBIaXRHYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgdmVoaWNsZVR5cGVTZXJ2aWNlOiBIaXRWZWhpY2xlVHlwZVNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIGdldExpc3QocGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTxFbnRyeVdlaWdoaW5nW10+IHtcclxuICAgIGNvbnN0IGRlZmF1bHRQYXJhbXMgPSB7IG1heFJlc3VsdENvdW50OiA1MCwgLi4ucGFyYW1zIH07XHJcbiAgICByZXR1cm4gdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PHZvaWQsIEFwaVJlc3BvbnNlPEVudHJ5V2VpZ2hpbmdbXT4+KFxyXG4gICAgICB7IG1ldGhvZDogJ0dFVCcsIHVybDogdGhpcy5iYXNlVXJsLCBwYXJhbXM6IGRlZmF1bHRQYXJhbXMgfSxcclxuICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2U/Lml0ZW1zID8/IFtdKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldChkb2NFbnRyeTogbnVtYmVyKTogT2JzZXJ2YWJsZTxFbnRyeVdlaWdoaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PHZvaWQsIEFwaVJlc3BvbnNlPEVudHJ5V2VpZ2hpbmc+PihcclxuICAgICAgeyBtZXRob2Q6ICdHRVQnLCB1cmw6IGAke3RoaXMuYmFzZVVybH0vJHtkb2NFbnRyeX1gIH0sXHJcbiAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH1cclxuICAgICkucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlPy5pdGVtcylcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGUoYm9keTogU2F2ZUVudHJ5V2VpZ2hpbmdEdG8pOiBPYnNlcnZhYmxlPEVudHJ5V2VpZ2hpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8U2F2ZUVudHJ5V2VpZ2hpbmdEdG8sIEFwaVJlc3BvbnNlPEVudHJ5V2VpZ2hpbmc+PihcclxuICAgICAgeyBtZXRob2Q6ICdQT1NUJywgdXJsOiB0aGlzLmJhc2VVcmwsIGJvZHkgfSxcclxuICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2U/Lml0ZW1zKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZShkb2NFbnRyeTogbnVtYmVyLCBib2R5OiBTYXZlRW50cnlXZWlnaGluZ0R0byk6IE9ic2VydmFibGU8RW50cnlXZWlnaGluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxTYXZlRW50cnlXZWlnaGluZ0R0bywgQXBpUmVzcG9uc2U8RW50cnlXZWlnaGluZz4+KFxyXG4gICAgICB7IG1ldGhvZDogJ1BBVENIJywgdXJsOiBgJHt0aGlzLmJhc2VVcmx9LyR7ZG9jRW50cnl9YCwgYm9keSB9LFxyXG4gICAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9XHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZT8uaXRlbXMpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlKGRvY0VudHJ5OiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDx2b2lkLCBhbnk+KFxyXG4gICAgICB7IG1ldGhvZDogJ0RFTEVURScsIHVybDogYCR7dGhpcy5iYXNlVXJsfS8ke2RvY0VudHJ5fWAgfSxcclxuICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRvV2VpZ2hpbmcoZG9jRW50cnk6IG51bWJlciwgYm9keTogeyB3ZWlnaGluZ1ZhbHVlOiBudW1iZXI7IG9wZXJhdG9yQ29kZTogc3RyaW5nIH0pOiBPYnNlcnZhYmxlPEVudHJ5V2VpZ2hpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBBcGlSZXNwb25zZTxFbnRyeVdlaWdoaW5nPj4oXHJcbiAgICAgIHsgbWV0aG9kOiAnUE9TVCcsIHVybDogYCR7dGhpcy5iYXNlVXJsfS8ke2RvY0VudHJ5fS9kby13ZWlnaGluZ2AsIGJvZHkgfSxcclxuICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2U/Lml0ZW1zKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIC0tLSBMb29rdXAgbWV0aG9kcyAtLS1cclxuXHJcbiAgZ2V0RG9jdW1lbnRzKCk6IE9ic2VydmFibGU8RW50cnlXZWlnaGluZ0RvY3VtZW50W10+IHtcclxuICAgIHJldHVybiB0aGlzLnB1cmNoYXNlRGVsaXZlcnlOb3RlU2VydmljZS5nZXRMaXN0KCkucGlwZShcclxuICAgIG1hcChub3RlcyA9PiBub3Rlcy5tYXAobiA9PiAoeyBjb2RlOiBuLmRvY051bS50b1N0cmluZygpLCBuYW1lOiBuLmNhcmROYW1lID8/ICcnIH0pKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRTY2FsZXMoKTogT2JzZXJ2YWJsZTxFbnRyeVdlaWdoaW5nU2NhbGVbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2NhbGVTZXJ2aWNlLmdldExpc3QoKS5waXBlKFxyXG4gICAgICBtYXAoc2NhbGVzID0+IHNjYWxlcy5tYXAocyA9PiAoeyBjb2RlOiBzLmNvZGUsIG5hbWU6IHMubmFtZSB9KSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VHJ1Y2tQbGF0ZXMoKTogT2JzZXJ2YWJsZTxFbnRyeVdlaWdoaW5nVHJ1Y2tQbGF0ZVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5wbGF0ZVNlcnZpY2UuZ2V0TGlzdCgpLnBpcGUoXHJcbiAgICAgIG1hcChwbGF0ZXMgPT4gcGxhdGVzXHJcbiAgICAgICAgLmZpbHRlcihwID0+IHAudV9Jc1RyYWlsZXIgPT09ICdOJyB8fCAhcC51X0lzVHJhaWxlcilcclxuICAgICAgICAubWFwKHAgPT4gKHsgY29kZTogcC5jb2RlLCBwbGF0ZU5vOiBwLmNvZGUgfSkpXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUcmFpbGVyUGxhdGVzKCk6IE9ic2VydmFibGU8RW50cnlXZWlnaGluZ1RyYWlsZXJQbGF0ZVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5wbGF0ZVNlcnZpY2UuZ2V0TGlzdCgpLnBpcGUoXHJcbiAgICAgIG1hcChwbGF0ZXMgPT4gcGxhdGVzXHJcbiAgICAgICAgLmZpbHRlcihwID0+IHAudV9Jc1RyYWlsZXIgPT09ICdZJylcclxuICAgICAgICAubWFwKHAgPT4gKHsgY29kZTogcC5jb2RlLCBwbGF0ZU5vOiBwLmNvZGUgfSkpXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXREcml2ZXJzKCk6IE9ic2VydmFibGU8RW50cnlXZWlnaGluZ0RyaXZlcltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5jYXJyaWVyUGVyc29uU2VydmljZS5nZXRMaXN0KCkucGlwZShcclxuICAgICAgbWFwKHBlcnNvbnMgPT4gcGVyc29uc1xyXG4gICAgICAgIC5maWx0ZXIocCA9PiBwLnVfQWN0aXZlID09PSAnWScpXHJcbiAgICAgICAgLm1hcChwID0+ICh7IGNvZGU6IHAuY29kZSwgbmFtZTogYCR7cC51X0ZpcnN0bmFtZSA/PyAnJ30gJHtwLnVfTGFzdG5hbWUgPz8gJyd9YC50cmltKCkgfSkpXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRBY2NvdW50cygpOiBPYnNlcnZhYmxlPEVudHJ5V2VpZ2hpbmdBY2NvdW50W10+IHtcclxuICAgIHJldHVybiB0aGlzLmJ1c2luZXNzUGFydG5lclNlcnZpY2UuZ2V0TGlzdCgpLnBpcGUoXHJcbiAgICAgIG1hcChwYXJ0bmVycyA9PiBwYXJ0bmVycy5tYXAocCA9PiAoeyBjb2RlOiBwLmNhcmRDb2RlLCB0aXRsZTogcC5jYXJkTmFtZSB9KSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvY2tJdGVtcygpOiBPYnNlcnZhYmxlPEVudHJ5V2VpZ2hpbmdTdG9ja0l0ZW1bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbVNlcnZpY2UuZ2V0TGlzdCgpLnBpcGUoXHJcbiAgICAgIG1hcChpdGVtcyA9PiBpdGVtcy5tYXAoaSA9PiAoeyBjb2RlOiBpLml0ZW1Db2RlLCBuYW1lOiBpLml0ZW1OYW1lIH0pKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRHYXRlcygpOiBPYnNlcnZhYmxlPEVudHJ5V2VpZ2hpbmdHYXRlW10+IHtcclxuICAgIHJldHVybiB0aGlzLmdhdGVTZXJ2aWNlLmdldExpc3QoKS5waXBlKFxyXG4gICAgICBtYXAoZ2F0ZXMgPT4gZ2F0ZXMubWFwKGcgPT4gKHsgY29kZTogZy5jb2RlLCBuYW1lOiBnLm5hbWUgfSkpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFZlaGljbGVUeXBlcygpOiBPYnNlcnZhYmxlPEVudHJ5V2VpZ2hpbmdWZWhpY2xlVHlwZVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy52ZWhpY2xlVHlwZVNlcnZpY2UuZ2V0TGlzdCgpLnBpcGUoXHJcbiAgICAgIG1hcCh0eXBlcyA9PiB0eXBlcy5tYXAodCA9PiAoe1xyXG4gICAgICAgIGNvZGU6IHQuY29kZSwgbmFtZTogdC5uYW1lLFxyXG4gICAgICAgIHVfVHJ0bVlwaWxjazogdC51X1RydG1ZcGlsY2ssIHVfTWFsR0M6IHQudV9NYWxHQ1xyXG4gICAgICB9KSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZG9Hb29kc01vdmVtZW50KGRvY0VudHJ5OiBudW1iZXIpOiBPYnNlcnZhYmxlPEVudHJ5V2VpZ2hpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8dm9pZCwgQXBpUmVzcG9uc2U8RW50cnlXZWlnaGluZz4+KFxyXG4gICAgICB7IG1ldGhvZDogJ1BPU1QnLCB1cmw6IGAke3RoaXMuYmFzZVVybH0vJHtkb2NFbnRyeX0vZG8tZ29vZHMtbW92ZW1lbnRgIH0sXHJcbiAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH1cclxuICAgICkucGlwZShtYXAociA9PiByPy5pdGVtcykpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -58,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
58
58
  type: Injectable,
59
59
  args: [{ providedIn: 'root' }]
60
60
  }] });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGUtc2lnbmFsci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUvc3JjL2xpYi9zZXJ2aWNlcy9zY2FsZS1zaWduYWxyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBRUwsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixRQUFRLEdBQ1QsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOztBQUduRCxNQUFNLE9BQU8sbUJBQW1CO0lBRGhDO1FBRVUsZUFBVSxHQUF5QixJQUFJLENBQUM7UUFDL0IsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUU1RCxZQUFPLEdBQThCLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7S0FpRDVFO0lBL0NDOzs7T0FHRztJQUNILEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBa0IsRUFBRSxPQUFlO1FBQzdDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLEtBQUssa0JBQWtCLENBQUMsU0FBUyxFQUFFO1lBQzNELE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDMUQsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLG9CQUFvQixFQUFFO2FBQ3pDLE9BQU8sQ0FBQyxHQUFHLFVBQVUsYUFBYSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDO2FBQzlELHNCQUFzQixDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3JELGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7YUFDbEMsS0FBSyxFQUFFLENBQUM7UUFFWCxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxPQUE2QixFQUFFLEVBQUU7WUFDcEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDdkMsTUFBTSxJQUFJLENBQUMsVUFBVyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QixNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBZTtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPO1FBQzdCLElBQUk7WUFDRixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxLQUFLLGtCQUFrQixDQUFDLFNBQVMsRUFBRTtnQkFDMUQsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxPQUFPLENBQUMsQ0FBQzthQUMvRDtZQUNELE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUM5QjtnQkFBUztZQUNSLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7O2dIQXBEVSxtQkFBbUI7b0hBQW5CLG1CQUFtQixjQUROLE1BQU07MkZBQ25CLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEh1YkNvbm5lY3Rpb24sXG4gIEh1YkNvbm5lY3Rpb25CdWlsZGVyLFxuICBIdWJDb25uZWN0aW9uU3RhdGUsXG4gIExvZ0xldmVsLFxufSBmcm9tICdAbWljcm9zb2Z0L3NpZ25hbHInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU2NhbGVTaWduYWxSU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgY29ubmVjdGlvbjogSHViQ29ubmVjdGlvbiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IF93ZWlnaHQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXIgfCBudWxsPihudWxsKTtcblxuICByZWFkb25seSB3ZWlnaHQkOiBPYnNlcnZhYmxlPG51bWJlciB8IG51bGw+ID0gdGhpcy5fd2VpZ2h0JC5hc09ic2VydmFibGUoKTtcblxuICAvKipcbiAgICogU2lnbmFsUiBiYcSfbGFudMSxc8SxbsSxIGJhxZ9sYXTEsXIgdmUgaWxnaWxpIGthbnRhciBncnVidW5hIGFib25lIG9sdXIuXG4gICAqIFphdGVuIGJhxJ9sxLF5c2Egc2FkZWNlIGdydWJhIGFib25lIG9sdXIuXG4gICAqL1xuICBhc3luYyBzdGFydChhcGlCYXNlVXJsOiBzdHJpbmcsIHNjYWxlSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmNvbm5lY3Rpb24/LnN0YXRlID09PSBIdWJDb25uZWN0aW9uU3RhdGUuQ29ubmVjdGVkKSB7XG4gICAgICBhd2FpdCB0aGlzLmNvbm5lY3Rpb24uaW52b2tlKCdTdWJzY3JpYmVUb1NjYWxlJywgc2NhbGVJZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jb25uZWN0aW9uID0gbmV3IEh1YkNvbm5lY3Rpb25CdWlsZGVyKClcbiAgICAgIC53aXRoVXJsKGAke2FwaUJhc2VVcmx9L2h1YnMvc2NhbGVgLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgLndpdGhBdXRvbWF0aWNSZWNvbm5lY3QoWzAsIDIwMDAsIDUwMDAsIDEwMDAwLCAzMDAwMF0pXG4gICAgICAuY29uZmlndXJlTG9nZ2luZyhMb2dMZXZlbC5XYXJuaW5nKVxuICAgICAgLmJ1aWxkKCk7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb24ub24oJ1JlY2VpdmVXZWlnaHQnLCAocmVhZGluZzogeyB3ZWlnaHRLZzogbnVtYmVyIH0pID0+IHtcbiAgICAgIHRoaXMuX3dlaWdodCQubmV4dChyZWFkaW5nLndlaWdodEtnKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY29ubmVjdGlvbi5vbnJlY29ubmVjdGVkKGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IHRoaXMuY29ubmVjdGlvbiEuaW52b2tlKCdTdWJzY3JpYmVUb1NjYWxlJywgc2NhbGVJZCk7XG4gICAgfSk7XG5cbiAgICBhd2FpdCB0aGlzLmNvbm5lY3Rpb24uc3RhcnQoKTtcbiAgICBhd2FpdCB0aGlzLmNvbm5lY3Rpb24uaW52b2tlKCdTdWJzY3JpYmVUb1NjYWxlJywgc2NhbGVJZCk7XG4gIH1cblxuICAvKipcbiAgICogS2FudGFyIGdydWJ1bmRhbiDDp8Sxa2FyIHZlIGJhxJ9sYW50xLF5xLEga2FwYXTEsXIuXG4gICAqL1xuICBhc3luYyBzdG9wKHNjYWxlSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5jb25uZWN0aW9uKSByZXR1cm47XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLmNvbm5lY3Rpb24uc3RhdGUgPT09IEh1YkNvbm5lY3Rpb25TdGF0ZS5Db25uZWN0ZWQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5jb25uZWN0aW9uLmludm9rZSgnVW5zdWJzY3JpYmVGcm9tU2NhbGUnLCBzY2FsZUlkKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMuY29ubmVjdGlvbi5zdG9wKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuY29ubmVjdGlvbiA9IG51bGw7XG4gICAgICB0aGlzLl93ZWlnaHQkLm5leHQobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jb25uZWN0aW9uPy5zdG9wKCk7XG4gIH1cbn1cbiJdfQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGUtc2lnbmFsci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUvc3JjL2xpYi9zZXJ2aWNlcy9zY2FsZS1zaWduYWxyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBRUwsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixRQUFRLEdBQ1QsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOztBQUduRCxNQUFNLE9BQU8sbUJBQW1CO0lBRGhDO1FBRVUsZUFBVSxHQUF5QixJQUFJLENBQUM7UUFDL0IsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUU1RCxZQUFPLEdBQThCLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7S0FpRDVFO0lBL0NDOzs7T0FHRztJQUNILEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBa0IsRUFBRSxPQUFlO1FBQzdDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLEtBQUssa0JBQWtCLENBQUMsU0FBUyxFQUFFO1lBQzNELE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDMUQsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLG9CQUFvQixFQUFFO2FBQ3pDLE9BQU8sQ0FBQyxHQUFHLFVBQVUsYUFBYSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDO2FBQzlELHNCQUFzQixDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3JELGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7YUFDbEMsS0FBSyxFQUFFLENBQUM7UUFFWCxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxPQUE2QixFQUFFLEVBQUU7WUFDcEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDdkMsTUFBTSxJQUFJLENBQUMsVUFBVyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QixNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBZTtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPO1FBQzdCLElBQUk7WUFDRixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxLQUFLLGtCQUFrQixDQUFDLFNBQVMsRUFBRTtnQkFDMUQsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxPQUFPLENBQUMsQ0FBQzthQUMvRDtZQUNELE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUM5QjtnQkFBUztZQUNSLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7O2dIQXBEVSxtQkFBbUI7b0hBQW5CLG1CQUFtQixjQUROLE1BQU07MkZBQ25CLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBIdWJDb25uZWN0aW9uLFxyXG4gIEh1YkNvbm5lY3Rpb25CdWlsZGVyLFxyXG4gIEh1YkNvbm5lY3Rpb25TdGF0ZSxcclxuICBMb2dMZXZlbCxcclxufSBmcm9tICdAbWljcm9zb2Z0L3NpZ25hbHInO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBTY2FsZVNpZ25hbFJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBwcml2YXRlIGNvbm5lY3Rpb246IEh1YkNvbm5lY3Rpb24gfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIHJlYWRvbmx5IF93ZWlnaHQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXIgfCBudWxsPihudWxsKTtcclxuXHJcbiAgcmVhZG9ubHkgd2VpZ2h0JDogT2JzZXJ2YWJsZTxudW1iZXIgfCBudWxsPiA9IHRoaXMuX3dlaWdodCQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNpZ25hbFIgYmHEn2xhbnTEsXPEsW7EsSBiYcWfbGF0xLFyIHZlIGlsZ2lsaSBrYW50YXIgZ3J1YnVuYSBhYm9uZSBvbHVyLlxyXG4gICAqIFphdGVuIGJhxJ9sxLF5c2Egc2FkZWNlIGdydWJhIGFib25lIG9sdXIuXHJcbiAgICovXHJcbiAgYXN5bmMgc3RhcnQoYXBpQmFzZVVybDogc3RyaW5nLCBzY2FsZUlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLmNvbm5lY3Rpb24/LnN0YXRlID09PSBIdWJDb25uZWN0aW9uU3RhdGUuQ29ubmVjdGVkKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuY29ubmVjdGlvbi5pbnZva2UoJ1N1YnNjcmliZVRvU2NhbGUnLCBzY2FsZUlkKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29ubmVjdGlvbiA9IG5ldyBIdWJDb25uZWN0aW9uQnVpbGRlcigpXHJcbiAgICAgIC53aXRoVXJsKGAke2FwaUJhc2VVcmx9L2h1YnMvc2NhbGVgLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxyXG4gICAgICAud2l0aEF1dG9tYXRpY1JlY29ubmVjdChbMCwgMjAwMCwgNTAwMCwgMTAwMDAsIDMwMDAwXSlcclxuICAgICAgLmNvbmZpZ3VyZUxvZ2dpbmcoTG9nTGV2ZWwuV2FybmluZylcclxuICAgICAgLmJ1aWxkKCk7XHJcblxyXG4gICAgdGhpcy5jb25uZWN0aW9uLm9uKCdSZWNlaXZlV2VpZ2h0JywgKHJlYWRpbmc6IHsgd2VpZ2h0S2c6IG51bWJlciB9KSA9PiB7XHJcbiAgICAgIHRoaXMuX3dlaWdodCQubmV4dChyZWFkaW5nLndlaWdodEtnKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuY29ubmVjdGlvbi5vbnJlY29ubmVjdGVkKGFzeW5jICgpID0+IHtcclxuICAgICAgYXdhaXQgdGhpcy5jb25uZWN0aW9uIS5pbnZva2UoJ1N1YnNjcmliZVRvU2NhbGUnLCBzY2FsZUlkKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGF3YWl0IHRoaXMuY29ubmVjdGlvbi5zdGFydCgpO1xyXG4gICAgYXdhaXQgdGhpcy5jb25uZWN0aW9uLmludm9rZSgnU3Vic2NyaWJlVG9TY2FsZScsIHNjYWxlSWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogS2FudGFyIGdydWJ1bmRhbiDDp8Sxa2FyIHZlIGJhxJ9sYW50xLF5xLEga2FwYXTEsXIuXHJcbiAgICovXHJcbiAgYXN5bmMgc3RvcChzY2FsZUlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghdGhpcy5jb25uZWN0aW9uKSByZXR1cm47XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAodGhpcy5jb25uZWN0aW9uLnN0YXRlID09PSBIdWJDb25uZWN0aW9uU3RhdGUuQ29ubmVjdGVkKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5jb25uZWN0aW9uLmludm9rZSgnVW5zdWJzY3JpYmVGcm9tU2NhbGUnLCBzY2FsZUlkKTtcclxuICAgICAgfVxyXG4gICAgICBhd2FpdCB0aGlzLmNvbm5lY3Rpb24uc3RvcCgpO1xyXG4gICAgfSBmaW5hbGx5IHtcclxuICAgICAgdGhpcy5jb25uZWN0aW9uID0gbnVsbDtcclxuICAgICAgdGhpcy5fd2VpZ2h0JC5uZXh0KG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbm5lY3Rpb24/LnN0b3AoKTtcclxuICB9XHJcbn1cclxuIl19