@hitsoft/ovolt 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/esm2020/config/ovolt-config.module.mjs +2 -2
  2. package/esm2020/config/providers/fuel-integration-log-route.provider.mjs +1 -1
  3. package/esm2020/config/providers/process-log-route.provider.mjs +1 -1
  4. package/esm2020/config/providers/system-parameter-route.provider.mjs +1 -1
  5. package/esm2020/lib/components/hit-fuel-integration-logs/components/hit-fuel-integration-log.component.mjs +27 -20
  6. package/esm2020/lib/components/hit-process-logs/components/hit-process-log.component.mjs +58 -30
  7. package/esm2020/lib/components/hit-process-logs/hit-process-log.module.mjs +8 -5
  8. package/esm2020/lib/components/hit-proxy/hit-process-logs/hit-process-log.service.mjs +5 -1
  9. package/esm2020/lib/fuel-integration-logs/fuel-integration-log/components/fuel-integration-log.component.mjs +3 -3
  10. package/esm2020/lib/fuel-integration-logs/fuel-integration-log/fuel-integration-log-routing.module.mjs +1 -1
  11. package/esm2020/lib/fuel-integration-logs/fuel-integration-log/fuel-integration-log.module.mjs +1 -1
  12. package/esm2020/lib/ovolt-routing.module.mjs +2 -2
  13. package/esm2020/lib/process-logs/process-log/components/process-log.component.mjs +3 -3
  14. package/esm2020/lib/process-logs/process-log/process-log-routing.module.mjs +1 -1
  15. package/esm2020/lib/process-logs/process-log/process-log.module.mjs +1 -1
  16. package/fesm2015/hitsoft-ovolt-config.mjs +1 -1
  17. package/fesm2015/hitsoft-ovolt-config.mjs.map +1 -1
  18. package/fesm2015/hitsoft-ovolt.mjs +94 -52
  19. package/fesm2015/hitsoft-ovolt.mjs.map +1 -1
  20. package/fesm2020/hitsoft-ovolt-config.mjs +1 -1
  21. package/fesm2020/hitsoft-ovolt-config.mjs.map +1 -1
  22. package/fesm2020/hitsoft-ovolt.mjs +93 -52
  23. package/fesm2020/hitsoft-ovolt.mjs.map +1 -1
  24. package/lib/components/hit-fuel-integration-logs/components/hit-fuel-integration-log.component.d.ts +5 -3
  25. package/lib/components/hit-process-logs/components/hit-process-log.component.d.ts +13 -8
  26. package/lib/components/hit-process-logs/hit-process-log.module.d.ts +1 -1
  27. package/lib/components/hit-proxy/hit-process-logs/hit-process-log.service.d.ts +1 -0
  28. package/package.json +1 -1
@@ -95,9 +95,9 @@ export class FuelIntegrationLogComponent {
95
95
  }
96
96
  }
97
97
  FuelIntegrationLogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FuelIntegrationLogComponent, deps: [{ token: i1.ListService }, { token: i1.TrackByService }, { token: i2.FuelIntegrationLogService }, { token: i3.ConfirmationService }, { token: i4.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
98
- FuelIntegrationLogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FuelIntegrationLogComponent, selector: "lib-fuel-integration-log", providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], ngImport: i0, template: "<abp-page [title]=\"'Ovolt::FuelIntegrationLogs' | abpLocalization\">\n <abp-page-toolbar-container class=\"col\">\n <div class=\"text-lg-end pt-2\">\n <button\n *abpPermission=\"'Ovolt.FuelIntegrationLogs.Create'\"\n class=\"btn btn-primary btn-sm\"\n type=\"button\"\n (click)=\"create()\"\n >\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\n {{ 'Ovolt::NewFuelIntegrationLog' | abpLocalization }}\n </button>\n </div>\n </abp-page-toolbar-container>\n\n <abp-advanced-entity-filters localizationSourceName=\"Ovolt\" [list]=\"list\">\n <abp-advanced-entity-filters-form>\n <form #filterForm (keyup.enter)=\"list.get()\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-auto\">\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"pathFilter\">\n {{ 'Ovolt::Path' | abpLocalization }}\n </label>\n\n <input\n id=\"pathFilter\"\n class=\"form-control\"\n [(ngModel)]=\"filters.path\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n </div>\n </div>\n <div class=\"col-12 col-sm-auto\">\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"methodFilter\">\n {{ 'Ovolt::Method' | abpLocalization }}\n </label>\n\n <input\n id=\"methodFilter\"\n class=\"form-control\"\n [(ngModel)]=\"filters.method\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n </div>\n </div>\n <div class=\"col-12 col-sm-auto\">\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"requestBodyFilter\">\n {{ 'Ovolt::RequestBody' | abpLocalization }}\n </label>\n\n <input\n id=\"requestBodyFilter\"\n class=\"form-control\"\n [(ngModel)]=\"filters.requestBody\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n </div>\n </div>\n <div class=\"col-12 col-sm-auto\">\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"responseBodyFilter\">\n {{ 'Ovolt::ResponseBody' | abpLocalization }}\n </label>\n\n <input\n id=\"responseBodyFilter\"\n class=\"form-control\"\n [(ngModel)]=\"filters.responseBody\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n </div>\n </div>\n <div class=\"col-12 col-sm-auto\">\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"statusCodeFilter\">\n {{ 'Ovolt::StatusCode' | abpLocalization }}\n </label>\n\n <input\n id=\"statusCodeFilter\"\n class=\"form-control\"\n [(ngModel)]=\"filters.statusCode\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n </div>\n </div>\n <div class=\"col-12 col-sm-auto\">\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"minRequestTime\">\n {{ 'Ovolt::MinRequestTime' | abpLocalization }}\n </label>\n\n <div class=\"input-group\" validationTarget>\n <input\n id=\"minRequestTime\"\n class=\"form-control\"\n #minRequestTimeInput\n #minRequestTimeDatepicker=\"ngbDatepicker\"\n name=\"minRequestTime\"\n ngbDatepicker\n container=\"body\"\n readonly\n (click)=\"minRequestTimeDatepicker.toggle()\"\n (keyup.space)=\"minRequestTimeDatepicker.toggle()\"\n [(ngModel)]=\"filters.requestTimeMin\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n <div *ngIf=\"minRequestTimeInput.value\" class=\"input-group-append\">\n <button\n class=\"btn btn-link px-2\"\n type=\"button\"\n [title]=\"'AbpUi::Clear' | abpLocalization\"\n (click)=\"\n minRequestTimeDatepicker.writeValue(null);\n minRequestTimeDatepicker.manualDateChange(null, true)\n \"\n >\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"col-12 col-sm-auto\">\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"maxRequestTime\">\n {{ 'Ovolt::MaxRequestTime' | abpLocalization }}\n </label>\n\n <div class=\"input-group\" validationTarget>\n <input\n id=\"maxRequestTime\"\n class=\"form-control\"\n #maxRequestTimeInput\n #maxRequestTimeDatepicker=\"ngbDatepicker\"\n name=\"maxRequestTime\"\n ngbDatepicker\n readonly\n (click)=\"maxRequestTimeDatepicker.toggle()\"\n (keyup.space)=\"maxRequestTimeDatepicker.toggle()\"\n [(ngModel)]=\"filters.requestTimeMax\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n <div *ngIf=\"maxRequestTimeInput.value\" class=\"input-group-append\">\n <button\n class=\"btn btn-link px-2\"\n type=\"button\"\n [title]=\"'AbpUi::Clear' | abpLocalization\"\n (click)=\"\n maxRequestTimeDatepicker.writeValue(null);\n maxRequestTimeDatepicker.manualDateChange(null, true)\n \"\n >\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-12 col-sm-auto\">\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"minResponseTime\">\n {{ 'Ovolt::MinResponseTime' | abpLocalization }}\n </label>\n\n <div class=\"input-group\" validationTarget>\n <input\n id=\"minResponseTime\"\n class=\"form-control\"\n #minResponseTimeInput\n #minResponseTimeDatepicker=\"ngbDatepicker\"\n name=\"minResponseTime\"\n ngbDatepicker\n container=\"body\"\n readonly\n (click)=\"minResponseTimeDatepicker.toggle()\"\n (keyup.space)=\"minResponseTimeDatepicker.toggle()\"\n [(ngModel)]=\"filters.responseTimeMin\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n <div *ngIf=\"minResponseTimeInput.value\" class=\"input-group-append\">\n <button\n class=\"btn btn-link px-2\"\n type=\"button\"\n [title]=\"'AbpUi::Clear' | abpLocalization\"\n (click)=\"\n minResponseTimeDatepicker.writeValue(null);\n minResponseTimeDatepicker.manualDateChange(null, true)\n \"\n >\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"col-12 col-sm-auto\">\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"maxResponseTime\">\n {{ 'Ovolt::MaxResponseTime' | abpLocalization }}\n </label>\n\n <div class=\"input-group\" validationTarget>\n <input\n id=\"maxResponseTime\"\n class=\"form-control\"\n #maxResponseTimeInput\n #maxResponseTimeDatepicker=\"ngbDatepicker\"\n name=\"maxResponseTime\"\n ngbDatepicker\n readonly\n (click)=\"maxResponseTimeDatepicker.toggle()\"\n (keyup.space)=\"maxResponseTimeDatepicker.toggle()\"\n [(ngModel)]=\"filters.responseTimeMax\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n <div *ngIf=\"maxResponseTimeInput.value\" class=\"input-group-append\">\n <button\n class=\"btn btn-link px-2\"\n type=\"button\"\n [title]=\"'AbpUi::Clear' | abpLocalization\"\n (click)=\"\n maxResponseTimeDatepicker.writeValue(null);\n maxResponseTimeDatepicker.manualDateChange(null, true)\n \"\n >\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"col-12 col-sm-auto align-self-end mb-3\">\n <div class=\"row\">\n <div class=\"col-6 col-sm-auto d-grid\">\n <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\n <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\n </button>\n </div>\n <div class=\"col-6 col-sm-auto d-grid\">\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\n <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n </form>\n </abp-advanced-entity-filters-form>\n </abp-advanced-entity-filters>\n\n <div class=\"card\">\n <div class=\"card-body\">\n <ngx-datatable [rows]=\"data.items\" [count]=\"data.totalCount\" [list]=\"list\" default>\n <ngx-datatable-column\n [name]=\"'AbpUi::Actions' | abpLocalization\"\n [maxWidth]=\"150\"\n [width]=\"150\"\n [sortable]=\"false\"\n >\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button\n class=\"btn btn-primary btn-sm dropdown-toggle\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n ngbDropdownToggle\n >\n <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\n {{ 'AbpUi::Actions' | abpLocalization }}\n </button>\n\n <div ngbDropdownMenu>\n <button\n ngbDropdownItem\n *abpPermission=\"'Ovolt.FuelIntegrationLogs.Edit'\"\n (click)=\"update(row)\"\n >\n {{ 'AbpUi::Edit' | abpLocalization }}\n </button>\n\n <button\n ngbDropdownItem\n *abpPermission=\"'Ovolt.FuelIntegrationLogs.Delete'\"\n (click)=\"delete(row)\"\n >\n {{ 'AbpUi::Delete' | abpLocalization }}\n </button>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column name=\"{{ 'Ovolt::Path' | abpLocalization }}\" prop=\"path\">\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\n {{ row.path }}\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column name=\"{{ 'Ovolt::Method' | abpLocalization }}\" prop=\"method\">\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\n {{ row.method }}\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column\n name=\"{{ 'Ovolt::RequestBody' | abpLocalization }}\"\n prop=\"requestBody\"\n >\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\n {{ row.requestBody }}\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column\n name=\"{{ 'Ovolt::ResponseBody' | abpLocalization }}\"\n prop=\"responseBody\"\n >\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\n {{ row.responseBody }}\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column name=\"{{ 'Ovolt::StatusCode' | abpLocalization }}\" prop=\"statusCode\">\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\n {{ row.statusCode }}\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column\n name=\"{{ 'Ovolt::RequestTime' | abpLocalization }}\"\n prop=\"requestTime\"\n >\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\n {{ row.requestTime | date }}\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column\n name=\"{{ 'Ovolt::ResponseTime' | abpLocalization }}\"\n prop=\"responseTime\"\n >\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\n {{ row.responseTime | date }}\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n </div>\n</abp-page>\n\n<abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\n <ng-template #abpHeader>\n <h3>\n {{ (selected ? 'AbpUi::Edit' : 'Ovolt::NewFuelIntegrationLog') | abpLocalization }}\n </h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form [formGroup]=\"form\" id=\"fuel-integration-log\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\n <div class=\"mt-2 fade-in-top\">\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"fuel-integration-log-path\">\n {{ 'Ovolt::Path' | abpLocalization }}\n </label>\n\n <input\n id=\"fuel-integration-log-path\"\n formControlName=\"path\"\n class=\"form-control\"\n autofocus\n />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"fuel-integration-log-method\">\n {{ 'Ovolt::Method' | abpLocalization }}\n </label>\n\n <input id=\"fuel-integration-log-method\" formControlName=\"method\" class=\"form-control\" />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"fuel-integration-log-request-body\">\n {{ 'Ovolt::RequestBody' | abpLocalization }}\n </label>\n\n <input\n id=\"fuel-integration-log-request-body\"\n formControlName=\"requestBody\"\n class=\"form-control\"\n />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"fuel-integration-log-response-body\">\n {{ 'Ovolt::ResponseBody' | abpLocalization }}\n </label>\n\n <input\n id=\"fuel-integration-log-response-body\"\n formControlName=\"responseBody\"\n class=\"form-control\"\n />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"fuel-integration-log-status-code\">\n {{ 'Ovolt::StatusCode' | abpLocalization }}\n </label>\n\n <input\n id=\"fuel-integration-log-status-code\"\n formControlName=\"statusCode\"\n class=\"form-control\"\n />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"fuel-integration-log-request-time\">\n {{ 'Ovolt::RequestTime' | abpLocalization }}\n </label>\n\n <div class=\"input-group\" validationTarget>\n <input\n readonly\n id=\"fuel-integration-log-request-time\"\n formControlName=\"requestTime\"\n class=\"form-control\"\n ngbDatepicker\n #requestTimeInput\n #requestTimeDatepicker=\"ngbDatepicker\"\n (click)=\"requestTimeDatepicker.open()\"\n (keyup.space)=\"requestTimeDatepicker.open()\"\n />\n <div *ngIf=\"requestTimeInput.value\" class=\"input-group-append\">\n <button\n class=\"btn btn-link px-2\"\n type=\"button\"\n [title]=\"'AbpUi::Clear' | abpLocalization\"\n (click)=\"\n requestTimeDatepicker.writeValue(null);\n requestTimeDatepicker.manualDateChange(null, true)\n \"\n >\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"fuel-integration-log-response-time\">\n {{ 'Ovolt::ResponseTime' | abpLocalization }}\n </label>\n\n <div class=\"input-group\" validationTarget>\n <input\n readonly\n id=\"fuel-integration-log-response-time\"\n formControlName=\"responseTime\"\n class=\"form-control\"\n ngbDatepicker\n #responseTimeInput\n #responseTimeDatepicker=\"ngbDatepicker\"\n (click)=\"responseTimeDatepicker.open()\"\n (keyup.space)=\"responseTimeDatepicker.open()\"\n />\n <div *ngIf=\"responseTimeInput.value\" class=\"input-group-append\">\n <button\n class=\"btn btn-link px-2\"\n type=\"button\"\n [title]=\"'AbpUi::Clear' | abpLocalization\"\n (click)=\"\n responseTimeDatepicker.writeValue(null);\n responseTimeDatepicker.manualDateChange(null, true)\n \"\n >\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\n {{ 'AbpUi::Cancel' | abpLocalization }}\n </button>\n\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"fuel-integration-log\">\n {{ 'AbpUi::Save' | abpLocalization }}\n </abp-button>\n </ng-template>\n</abp-modal>\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { kind: "directive", type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i6.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i6.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i6.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "component", type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3.NgxDatatableDefaultDirective, selector: "ngx-datatable[default]", inputs: ["class"], exportAs: ["ngxDatatableDefault"] }, { kind: "directive", type: i3.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: i3.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i7.AdvancedEntityFiltersComponent, selector: "abp-advanced-entity-filters", inputs: ["list", "localizationSourceName", "entityFilterPlaceholder"] }, { kind: "component", type: i7.AdvancedEntityFiltersFormComponent, selector: "abp-advanced-entity-filters-form" }, { kind: "directive", type: i8.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i8.ValidationTargetDirective, selector: "[validationTarget]", exportAs: ["validationTarget"] }, { kind: "directive", type: i8.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "directive", type: i9.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "directive", type: i9.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i9.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i9.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i9.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i10.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i10.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "pipe", type: i5.DatePipe, name: "date" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.Default });
98
+ FuelIntegrationLogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FuelIntegrationLogComponent, selector: "lib-fuel-integration-log", providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], ngImport: i0, template: "<abp-page [title]=\"'Ovolt::FuelIntegrationLogs' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <button\r\n *abpPermission=\"'Ovolt.FuelIntegrationLogs.Create'\"\r\n class=\"btn btn-primary btn-sm\"\r\n type=\"button\"\r\n (click)=\"create()\"\r\n >\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'Ovolt::NewFuelIntegrationLog' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <abp-advanced-entity-filters localizationSourceName=\"Ovolt\" [list]=\"list\">\r\n <abp-advanced-entity-filters-form>\r\n <form #filterForm (keyup.enter)=\"list.get()\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"pathFilter\">\r\n {{ 'Ovolt::Path' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"pathFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.path\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"methodFilter\">\r\n {{ 'Ovolt::Method' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"methodFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.method\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"requestBodyFilter\">\r\n {{ 'Ovolt::RequestBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"requestBodyFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.requestBody\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"responseBodyFilter\">\r\n {{ 'Ovolt::ResponseBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"responseBodyFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.responseBody\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"statusCodeFilter\">\r\n {{ 'Ovolt::StatusCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"statusCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.statusCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minRequestTime\">\r\n {{ 'Ovolt::MinRequestTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minRequestTime\"\r\n class=\"form-control\"\r\n #minRequestTimeInput\r\n #minRequestTimeDatepicker=\"ngbDatepicker\"\r\n name=\"minRequestTime\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minRequestTimeDatepicker.toggle()\"\r\n (keyup.space)=\"minRequestTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.requestTimeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minRequestTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minRequestTimeDatepicker.writeValue(null);\r\n minRequestTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxRequestTime\">\r\n {{ 'Ovolt::MaxRequestTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxRequestTime\"\r\n class=\"form-control\"\r\n #maxRequestTimeInput\r\n #maxRequestTimeDatepicker=\"ngbDatepicker\"\r\n name=\"maxRequestTime\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxRequestTimeDatepicker.toggle()\"\r\n (keyup.space)=\"maxRequestTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.requestTimeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxRequestTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxRequestTimeDatepicker.writeValue(null);\r\n maxRequestTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minResponseTime\">\r\n {{ 'Ovolt::MinResponseTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minResponseTime\"\r\n class=\"form-control\"\r\n #minResponseTimeInput\r\n #minResponseTimeDatepicker=\"ngbDatepicker\"\r\n name=\"minResponseTime\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minResponseTimeDatepicker.toggle()\"\r\n (keyup.space)=\"minResponseTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.responseTimeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minResponseTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minResponseTimeDatepicker.writeValue(null);\r\n minResponseTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxResponseTime\">\r\n {{ 'Ovolt::MaxResponseTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxResponseTime\"\r\n class=\"form-control\"\r\n #maxResponseTimeInput\r\n #maxResponseTimeDatepicker=\"ngbDatepicker\"\r\n name=\"maxResponseTime\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxResponseTimeDatepicker.toggle()\"\r\n (keyup.space)=\"maxResponseTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.responseTimeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxResponseTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxResponseTimeDatepicker.writeValue(null);\r\n maxResponseTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto align-self-end mb-3\">\r\n <div class=\"row\">\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\r\n <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\r\n <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </abp-advanced-entity-filters-form>\r\n </abp-advanced-entity-filters>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <ngx-datatable [rows]=\"data.items\" [count]=\"data.totalCount\" [list]=\"list\" default>\r\n <ngx-datatable-column\r\n [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [maxWidth]=\"150\"\r\n [width]=\"150\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n\r\n <div ngbDropdownMenu>\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'Ovolt.FuelIntegrationLogs.Edit'\"\r\n (click)=\"update(row)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'Ovolt.FuelIntegrationLogs.Delete'\"\r\n (click)=\"delete(row)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'Ovolt::Path' | abpLocalization }}\" prop=\"path\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.path }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'Ovolt::Method' | abpLocalization }}\" prop=\"method\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.method }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::RequestBody' | abpLocalization }}\"\r\n prop=\"requestBody\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.requestBody }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::ResponseBody' | abpLocalization }}\"\r\n prop=\"responseBody\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.responseBody }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'Ovolt::StatusCode' | abpLocalization }}\" prop=\"statusCode\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.statusCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::RequestTime' | abpLocalization }}\"\r\n prop=\"requestTime\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.requestTime | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::ResponseTime' | abpLocalization }}\"\r\n prop=\"responseTime\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.responseTime | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'Ovolt::NewFuelIntegrationLog') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"fuel-integration-log\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-path\">\r\n {{ 'Ovolt::Path' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"fuel-integration-log-path\"\r\n formControlName=\"path\"\r\n class=\"form-control\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-method\">\r\n {{ 'Ovolt::Method' | abpLocalization }}\r\n </label>\r\n\r\n <input id=\"fuel-integration-log-method\" formControlName=\"method\" class=\"form-control\" />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-request-body\">\r\n {{ 'Ovolt::RequestBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"fuel-integration-log-request-body\"\r\n formControlName=\"requestBody\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-response-body\">\r\n {{ 'Ovolt::ResponseBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"fuel-integration-log-response-body\"\r\n formControlName=\"responseBody\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-status-code\">\r\n {{ 'Ovolt::StatusCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"fuel-integration-log-status-code\"\r\n formControlName=\"statusCode\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-request-time\">\r\n {{ 'Ovolt::RequestTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"fuel-integration-log-request-time\"\r\n formControlName=\"requestTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #requestTimeInput\r\n #requestTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"requestTimeDatepicker.open()\"\r\n (keyup.space)=\"requestTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"requestTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n requestTimeDatepicker.writeValue(null);\r\n requestTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-response-time\">\r\n {{ 'Ovolt::ResponseTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"fuel-integration-log-response-time\"\r\n formControlName=\"responseTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #responseTimeInput\r\n #responseTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"responseTimeDatepicker.open()\"\r\n (keyup.space)=\"responseTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"responseTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n responseTimeDatepicker.writeValue(null);\r\n responseTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"fuel-integration-log\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { kind: "directive", type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i6.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i6.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i6.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "component", type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3.NgxDatatableDefaultDirective, selector: "ngx-datatable[default]", inputs: ["class"], exportAs: ["ngxDatatableDefault"] }, { kind: "directive", type: i3.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: i3.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i7.AdvancedEntityFiltersComponent, selector: "abp-advanced-entity-filters", inputs: ["list", "localizationSourceName", "entityFilterPlaceholder"] }, { kind: "component", type: i7.AdvancedEntityFiltersFormComponent, selector: "abp-advanced-entity-filters-form" }, { kind: "directive", type: i8.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i8.ValidationTargetDirective, selector: "[validationTarget]", exportAs: ["validationTarget"] }, { kind: "directive", type: i8.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "directive", type: i9.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "directive", type: i9.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i9.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i9.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i9.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i10.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i10.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "pipe", type: i5.DatePipe, name: "date" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.Default });
99
99
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FuelIntegrationLogComponent, decorators: [{
100
100
  type: Component,
101
- args: [{ selector: 'lib-fuel-integration-log', changeDetection: ChangeDetectionStrategy.Default, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], template: "<abp-page [title]=\"'Ovolt::FuelIntegrationLogs' | abpLocalization\">\n <abp-page-toolbar-container class=\"col\">\n <div class=\"text-lg-end pt-2\">\n <button\n *abpPermission=\"'Ovolt.FuelIntegrationLogs.Create'\"\n class=\"btn btn-primary btn-sm\"\n type=\"button\"\n (click)=\"create()\"\n >\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\n {{ 'Ovolt::NewFuelIntegrationLog' | abpLocalization }}\n </button>\n </div>\n </abp-page-toolbar-container>\n\n <abp-advanced-entity-filters localizationSourceName=\"Ovolt\" [list]=\"list\">\n <abp-advanced-entity-filters-form>\n <form #filterForm (keyup.enter)=\"list.get()\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-auto\">\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"pathFilter\">\n {{ 'Ovolt::Path' | abpLocalization }}\n </label>\n\n <input\n id=\"pathFilter\"\n class=\"form-control\"\n [(ngModel)]=\"filters.path\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n </div>\n </div>\n <div class=\"col-12 col-sm-auto\">\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"methodFilter\">\n {{ 'Ovolt::Method' | abpLocalization }}\n </label>\n\n <input\n id=\"methodFilter\"\n class=\"form-control\"\n [(ngModel)]=\"filters.method\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n </div>\n </div>\n <div class=\"col-12 col-sm-auto\">\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"requestBodyFilter\">\n {{ 'Ovolt::RequestBody' | abpLocalization }}\n </label>\n\n <input\n id=\"requestBodyFilter\"\n class=\"form-control\"\n [(ngModel)]=\"filters.requestBody\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n </div>\n </div>\n <div class=\"col-12 col-sm-auto\">\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"responseBodyFilter\">\n {{ 'Ovolt::ResponseBody' | abpLocalization }}\n </label>\n\n <input\n id=\"responseBodyFilter\"\n class=\"form-control\"\n [(ngModel)]=\"filters.responseBody\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n </div>\n </div>\n <div class=\"col-12 col-sm-auto\">\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"statusCodeFilter\">\n {{ 'Ovolt::StatusCode' | abpLocalization }}\n </label>\n\n <input\n id=\"statusCodeFilter\"\n class=\"form-control\"\n [(ngModel)]=\"filters.statusCode\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n </div>\n </div>\n <div class=\"col-12 col-sm-auto\">\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"minRequestTime\">\n {{ 'Ovolt::MinRequestTime' | abpLocalization }}\n </label>\n\n <div class=\"input-group\" validationTarget>\n <input\n id=\"minRequestTime\"\n class=\"form-control\"\n #minRequestTimeInput\n #minRequestTimeDatepicker=\"ngbDatepicker\"\n name=\"minRequestTime\"\n ngbDatepicker\n container=\"body\"\n readonly\n (click)=\"minRequestTimeDatepicker.toggle()\"\n (keyup.space)=\"minRequestTimeDatepicker.toggle()\"\n [(ngModel)]=\"filters.requestTimeMin\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n <div *ngIf=\"minRequestTimeInput.value\" class=\"input-group-append\">\n <button\n class=\"btn btn-link px-2\"\n type=\"button\"\n [title]=\"'AbpUi::Clear' | abpLocalization\"\n (click)=\"\n minRequestTimeDatepicker.writeValue(null);\n minRequestTimeDatepicker.manualDateChange(null, true)\n \"\n >\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"col-12 col-sm-auto\">\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"maxRequestTime\">\n {{ 'Ovolt::MaxRequestTime' | abpLocalization }}\n </label>\n\n <div class=\"input-group\" validationTarget>\n <input\n id=\"maxRequestTime\"\n class=\"form-control\"\n #maxRequestTimeInput\n #maxRequestTimeDatepicker=\"ngbDatepicker\"\n name=\"maxRequestTime\"\n ngbDatepicker\n readonly\n (click)=\"maxRequestTimeDatepicker.toggle()\"\n (keyup.space)=\"maxRequestTimeDatepicker.toggle()\"\n [(ngModel)]=\"filters.requestTimeMax\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n <div *ngIf=\"maxRequestTimeInput.value\" class=\"input-group-append\">\n <button\n class=\"btn btn-link px-2\"\n type=\"button\"\n [title]=\"'AbpUi::Clear' | abpLocalization\"\n (click)=\"\n maxRequestTimeDatepicker.writeValue(null);\n maxRequestTimeDatepicker.manualDateChange(null, true)\n \"\n >\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-12 col-sm-auto\">\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"minResponseTime\">\n {{ 'Ovolt::MinResponseTime' | abpLocalization }}\n </label>\n\n <div class=\"input-group\" validationTarget>\n <input\n id=\"minResponseTime\"\n class=\"form-control\"\n #minResponseTimeInput\n #minResponseTimeDatepicker=\"ngbDatepicker\"\n name=\"minResponseTime\"\n ngbDatepicker\n container=\"body\"\n readonly\n (click)=\"minResponseTimeDatepicker.toggle()\"\n (keyup.space)=\"minResponseTimeDatepicker.toggle()\"\n [(ngModel)]=\"filters.responseTimeMin\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n <div *ngIf=\"minResponseTimeInput.value\" class=\"input-group-append\">\n <button\n class=\"btn btn-link px-2\"\n type=\"button\"\n [title]=\"'AbpUi::Clear' | abpLocalization\"\n (click)=\"\n minResponseTimeDatepicker.writeValue(null);\n minResponseTimeDatepicker.manualDateChange(null, true)\n \"\n >\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"col-12 col-sm-auto\">\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"maxResponseTime\">\n {{ 'Ovolt::MaxResponseTime' | abpLocalization }}\n </label>\n\n <div class=\"input-group\" validationTarget>\n <input\n id=\"maxResponseTime\"\n class=\"form-control\"\n #maxResponseTimeInput\n #maxResponseTimeDatepicker=\"ngbDatepicker\"\n name=\"maxResponseTime\"\n ngbDatepicker\n readonly\n (click)=\"maxResponseTimeDatepicker.toggle()\"\n (keyup.space)=\"maxResponseTimeDatepicker.toggle()\"\n [(ngModel)]=\"filters.responseTimeMax\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n <div *ngIf=\"maxResponseTimeInput.value\" class=\"input-group-append\">\n <button\n class=\"btn btn-link px-2\"\n type=\"button\"\n [title]=\"'AbpUi::Clear' | abpLocalization\"\n (click)=\"\n maxResponseTimeDatepicker.writeValue(null);\n maxResponseTimeDatepicker.manualDateChange(null, true)\n \"\n >\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"col-12 col-sm-auto align-self-end mb-3\">\n <div class=\"row\">\n <div class=\"col-6 col-sm-auto d-grid\">\n <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\n <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\n </button>\n </div>\n <div class=\"col-6 col-sm-auto d-grid\">\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\n <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n </form>\n </abp-advanced-entity-filters-form>\n </abp-advanced-entity-filters>\n\n <div class=\"card\">\n <div class=\"card-body\">\n <ngx-datatable [rows]=\"data.items\" [count]=\"data.totalCount\" [list]=\"list\" default>\n <ngx-datatable-column\n [name]=\"'AbpUi::Actions' | abpLocalization\"\n [maxWidth]=\"150\"\n [width]=\"150\"\n [sortable]=\"false\"\n >\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button\n class=\"btn btn-primary btn-sm dropdown-toggle\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n ngbDropdownToggle\n >\n <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\n {{ 'AbpUi::Actions' | abpLocalization }}\n </button>\n\n <div ngbDropdownMenu>\n <button\n ngbDropdownItem\n *abpPermission=\"'Ovolt.FuelIntegrationLogs.Edit'\"\n (click)=\"update(row)\"\n >\n {{ 'AbpUi::Edit' | abpLocalization }}\n </button>\n\n <button\n ngbDropdownItem\n *abpPermission=\"'Ovolt.FuelIntegrationLogs.Delete'\"\n (click)=\"delete(row)\"\n >\n {{ 'AbpUi::Delete' | abpLocalization }}\n </button>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column name=\"{{ 'Ovolt::Path' | abpLocalization }}\" prop=\"path\">\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\n {{ row.path }}\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column name=\"{{ 'Ovolt::Method' | abpLocalization }}\" prop=\"method\">\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\n {{ row.method }}\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column\n name=\"{{ 'Ovolt::RequestBody' | abpLocalization }}\"\n prop=\"requestBody\"\n >\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\n {{ row.requestBody }}\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column\n name=\"{{ 'Ovolt::ResponseBody' | abpLocalization }}\"\n prop=\"responseBody\"\n >\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\n {{ row.responseBody }}\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column name=\"{{ 'Ovolt::StatusCode' | abpLocalization }}\" prop=\"statusCode\">\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\n {{ row.statusCode }}\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column\n name=\"{{ 'Ovolt::RequestTime' | abpLocalization }}\"\n prop=\"requestTime\"\n >\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\n {{ row.requestTime | date }}\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column\n name=\"{{ 'Ovolt::ResponseTime' | abpLocalization }}\"\n prop=\"responseTime\"\n >\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\n {{ row.responseTime | date }}\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n </div>\n</abp-page>\n\n<abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\n <ng-template #abpHeader>\n <h3>\n {{ (selected ? 'AbpUi::Edit' : 'Ovolt::NewFuelIntegrationLog') | abpLocalization }}\n </h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form [formGroup]=\"form\" id=\"fuel-integration-log\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\n <div class=\"mt-2 fade-in-top\">\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"fuel-integration-log-path\">\n {{ 'Ovolt::Path' | abpLocalization }}\n </label>\n\n <input\n id=\"fuel-integration-log-path\"\n formControlName=\"path\"\n class=\"form-control\"\n autofocus\n />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"fuel-integration-log-method\">\n {{ 'Ovolt::Method' | abpLocalization }}\n </label>\n\n <input id=\"fuel-integration-log-method\" formControlName=\"method\" class=\"form-control\" />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"fuel-integration-log-request-body\">\n {{ 'Ovolt::RequestBody' | abpLocalization }}\n </label>\n\n <input\n id=\"fuel-integration-log-request-body\"\n formControlName=\"requestBody\"\n class=\"form-control\"\n />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"fuel-integration-log-response-body\">\n {{ 'Ovolt::ResponseBody' | abpLocalization }}\n </label>\n\n <input\n id=\"fuel-integration-log-response-body\"\n formControlName=\"responseBody\"\n class=\"form-control\"\n />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"fuel-integration-log-status-code\">\n {{ 'Ovolt::StatusCode' | abpLocalization }}\n </label>\n\n <input\n id=\"fuel-integration-log-status-code\"\n formControlName=\"statusCode\"\n class=\"form-control\"\n />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"fuel-integration-log-request-time\">\n {{ 'Ovolt::RequestTime' | abpLocalization }}\n </label>\n\n <div class=\"input-group\" validationTarget>\n <input\n readonly\n id=\"fuel-integration-log-request-time\"\n formControlName=\"requestTime\"\n class=\"form-control\"\n ngbDatepicker\n #requestTimeInput\n #requestTimeDatepicker=\"ngbDatepicker\"\n (click)=\"requestTimeDatepicker.open()\"\n (keyup.space)=\"requestTimeDatepicker.open()\"\n />\n <div *ngIf=\"requestTimeInput.value\" class=\"input-group-append\">\n <button\n class=\"btn btn-link px-2\"\n type=\"button\"\n [title]=\"'AbpUi::Clear' | abpLocalization\"\n (click)=\"\n requestTimeDatepicker.writeValue(null);\n requestTimeDatepicker.manualDateChange(null, true)\n \"\n >\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"fuel-integration-log-response-time\">\n {{ 'Ovolt::ResponseTime' | abpLocalization }}\n </label>\n\n <div class=\"input-group\" validationTarget>\n <input\n readonly\n id=\"fuel-integration-log-response-time\"\n formControlName=\"responseTime\"\n class=\"form-control\"\n ngbDatepicker\n #responseTimeInput\n #responseTimeDatepicker=\"ngbDatepicker\"\n (click)=\"responseTimeDatepicker.open()\"\n (keyup.space)=\"responseTimeDatepicker.open()\"\n />\n <div *ngIf=\"responseTimeInput.value\" class=\"input-group-append\">\n <button\n class=\"btn btn-link px-2\"\n type=\"button\"\n [title]=\"'AbpUi::Clear' | abpLocalization\"\n (click)=\"\n responseTimeDatepicker.writeValue(null);\n responseTimeDatepicker.manualDateChange(null, true)\n \"\n >\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\n {{ 'AbpUi::Cancel' | abpLocalization }}\n </button>\n\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"fuel-integration-log\">\n {{ 'AbpUi::Save' | abpLocalization }}\n </abp-button>\n </ng-template>\n</abp-modal>\n" }]
101
+ args: [{ selector: 'lib-fuel-integration-log', changeDetection: ChangeDetectionStrategy.Default, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], template: "<abp-page [title]=\"'Ovolt::FuelIntegrationLogs' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <button\r\n *abpPermission=\"'Ovolt.FuelIntegrationLogs.Create'\"\r\n class=\"btn btn-primary btn-sm\"\r\n type=\"button\"\r\n (click)=\"create()\"\r\n >\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'Ovolt::NewFuelIntegrationLog' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <abp-advanced-entity-filters localizationSourceName=\"Ovolt\" [list]=\"list\">\r\n <abp-advanced-entity-filters-form>\r\n <form #filterForm (keyup.enter)=\"list.get()\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"pathFilter\">\r\n {{ 'Ovolt::Path' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"pathFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.path\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"methodFilter\">\r\n {{ 'Ovolt::Method' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"methodFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.method\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"requestBodyFilter\">\r\n {{ 'Ovolt::RequestBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"requestBodyFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.requestBody\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"responseBodyFilter\">\r\n {{ 'Ovolt::ResponseBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"responseBodyFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.responseBody\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"statusCodeFilter\">\r\n {{ 'Ovolt::StatusCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"statusCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.statusCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minRequestTime\">\r\n {{ 'Ovolt::MinRequestTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minRequestTime\"\r\n class=\"form-control\"\r\n #minRequestTimeInput\r\n #minRequestTimeDatepicker=\"ngbDatepicker\"\r\n name=\"minRequestTime\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minRequestTimeDatepicker.toggle()\"\r\n (keyup.space)=\"minRequestTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.requestTimeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minRequestTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minRequestTimeDatepicker.writeValue(null);\r\n minRequestTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxRequestTime\">\r\n {{ 'Ovolt::MaxRequestTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxRequestTime\"\r\n class=\"form-control\"\r\n #maxRequestTimeInput\r\n #maxRequestTimeDatepicker=\"ngbDatepicker\"\r\n name=\"maxRequestTime\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxRequestTimeDatepicker.toggle()\"\r\n (keyup.space)=\"maxRequestTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.requestTimeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxRequestTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxRequestTimeDatepicker.writeValue(null);\r\n maxRequestTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minResponseTime\">\r\n {{ 'Ovolt::MinResponseTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minResponseTime\"\r\n class=\"form-control\"\r\n #minResponseTimeInput\r\n #minResponseTimeDatepicker=\"ngbDatepicker\"\r\n name=\"minResponseTime\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minResponseTimeDatepicker.toggle()\"\r\n (keyup.space)=\"minResponseTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.responseTimeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minResponseTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minResponseTimeDatepicker.writeValue(null);\r\n minResponseTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxResponseTime\">\r\n {{ 'Ovolt::MaxResponseTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxResponseTime\"\r\n class=\"form-control\"\r\n #maxResponseTimeInput\r\n #maxResponseTimeDatepicker=\"ngbDatepicker\"\r\n name=\"maxResponseTime\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxResponseTimeDatepicker.toggle()\"\r\n (keyup.space)=\"maxResponseTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.responseTimeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxResponseTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxResponseTimeDatepicker.writeValue(null);\r\n maxResponseTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto align-self-end mb-3\">\r\n <div class=\"row\">\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\r\n <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\r\n <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </abp-advanced-entity-filters-form>\r\n </abp-advanced-entity-filters>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <ngx-datatable [rows]=\"data.items\" [count]=\"data.totalCount\" [list]=\"list\" default>\r\n <ngx-datatable-column\r\n [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [maxWidth]=\"150\"\r\n [width]=\"150\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n\r\n <div ngbDropdownMenu>\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'Ovolt.FuelIntegrationLogs.Edit'\"\r\n (click)=\"update(row)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'Ovolt.FuelIntegrationLogs.Delete'\"\r\n (click)=\"delete(row)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'Ovolt::Path' | abpLocalization }}\" prop=\"path\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.path }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'Ovolt::Method' | abpLocalization }}\" prop=\"method\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.method }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::RequestBody' | abpLocalization }}\"\r\n prop=\"requestBody\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.requestBody }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::ResponseBody' | abpLocalization }}\"\r\n prop=\"responseBody\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.responseBody }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'Ovolt::StatusCode' | abpLocalization }}\" prop=\"statusCode\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.statusCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::RequestTime' | abpLocalization }}\"\r\n prop=\"requestTime\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.requestTime | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::ResponseTime' | abpLocalization }}\"\r\n prop=\"responseTime\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.responseTime | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'Ovolt::NewFuelIntegrationLog') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"fuel-integration-log\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-path\">\r\n {{ 'Ovolt::Path' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"fuel-integration-log-path\"\r\n formControlName=\"path\"\r\n class=\"form-control\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-method\">\r\n {{ 'Ovolt::Method' | abpLocalization }}\r\n </label>\r\n\r\n <input id=\"fuel-integration-log-method\" formControlName=\"method\" class=\"form-control\" />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-request-body\">\r\n {{ 'Ovolt::RequestBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"fuel-integration-log-request-body\"\r\n formControlName=\"requestBody\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-response-body\">\r\n {{ 'Ovolt::ResponseBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"fuel-integration-log-response-body\"\r\n formControlName=\"responseBody\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-status-code\">\r\n {{ 'Ovolt::StatusCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"fuel-integration-log-status-code\"\r\n formControlName=\"statusCode\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-request-time\">\r\n {{ 'Ovolt::RequestTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"fuel-integration-log-request-time\"\r\n formControlName=\"requestTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #requestTimeInput\r\n #requestTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"requestTimeDatepicker.open()\"\r\n (keyup.space)=\"requestTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"requestTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n requestTimeDatepicker.writeValue(null);\r\n requestTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-response-time\">\r\n {{ 'Ovolt::ResponseTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"fuel-integration-log-response-time\"\r\n formControlName=\"responseTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #responseTimeInput\r\n #responseTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"responseTimeDatepicker.open()\"\r\n (keyup.space)=\"responseTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"responseTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n responseTimeDatepicker.writeValue(null);\r\n responseTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"fuel-integration-log\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n" }]
102
102
  }], ctorParameters: function () { return [{ type: i1.ListService }, { type: i1.TrackByService }, { type: i2.FuelIntegrationLogService }, { type: i3.ConfirmationService }, { type: i4.FormBuilder }]; } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVlbC1pbnRlZ3JhdGlvbi1sb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3ZvbHQvc3JjL2xpYi9mdWVsLWludGVncmF0aW9uLWxvZ3MvZnVlbC1pbnRlZ3JhdGlvbi1sb2cvY29tcG9uZW50cy9mdWVsLWludGVncmF0aW9uLWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vdm9sdC9zcmMvbGliL2Z1ZWwtaW50ZWdyYXRpb24tbG9ncy9mdWVsLWludGVncmF0aW9uLWxvZy9jb21wb25lbnRzL2Z1ZWwtaW50ZWdyYXRpb24tbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBTyxXQUFXLEVBQWtDLE1BQU0sY0FBYyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQXVCLE1BQU0sc0JBQXNCLENBQUM7QUFDekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBYWxFLE1BQU0sT0FBTywyQkFBMkI7SUFrQnRDLFlBQ2tCLElBQWlCLEVBQ2pCLEtBQXFCLEVBQ3JCLE9BQWtDLEVBQzFDLFlBQWlDLEVBQ2pDLEVBQWU7UUFKUCxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBQzFDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxPQUFFLEdBQUYsRUFB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RkQ5ZGEsMkJBQTJCO2tCQVB2QyxTQUFTOytCQUNFLDBCQUEwQixtQkFDbkIsdUJBQXVCLENBQUMsT0FBTyxhQUNyQyxDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQLCBMaXN0U2VydmljZSwgUGFnZWRSZXN1bHREdG8sIFRyYWNrQnlTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IENvbmZpcm1hdGlvbiwgQ29uZmlybWF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQvZXh0ZW5zaW9ucyc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ2JEYXRlQWRhcHRlciB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IGZpbHRlciwgZmluYWxpemUsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHR5cGUge1xuICBHZXRGdWVsSW50ZWdyYXRpb25Mb2dzSW5wdXQsXG4gIEZ1ZWxJbnRlZ3JhdGlvbkxvZ0R0byxcbn0gZnJvbSAnLi4vLi4vLi4vcHJveHkvZnVlbC1pbnRlZ3JhdGlvbi1sb2dzL21vZGVscyc7XG5pbXBvcnQgeyBGdWVsSW50ZWdyYXRpb25Mb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvZnVlbC1pbnRlZ3JhdGlvbi1sb2dzL2Z1ZWwtaW50ZWdyYXRpb24tbG9nLnNlcnZpY2UnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWZ1ZWwtaW50ZWdyYXRpb24tbG9nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxuICBwcm92aWRlcnM6IFtMaXN0U2VydmljZSwgeyBwcm92aWRlOiBOZ2JEYXRlQWRhcHRlciwgdXNlQ2xhc3M6IERhdGVBZGFwdGVyIH1dLFxuICB0ZW1wbGF0ZVVybDogJy4vZnVlbC1pbnRlZ3JhdGlvbi1sb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBGdWVsSW50ZWdyYXRpb25Mb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBkYXRhOiBQYWdlZFJlc3VsdER0bzxGdWVsSW50ZWdyYXRpb25Mb2dEdG8+ID0ge1xuICAgIGl0ZW1zOiBbXSxcbiAgICB0b3RhbENvdW50OiAwLFxuICB9O1xuXG4gIGZpbHRlcnMgPSB7fSBhcyBHZXRGdWVsSW50ZWdyYXRpb25Mb2dzSW5wdXQ7XG5cbiAgZm9ybTogRm9ybUdyb3VwO1xuXG4gIGlzRmlsdGVyc0hpZGRlbiA9IHRydWU7XG5cbiAgaXNNb2RhbEJ1c3kgPSBmYWxzZTtcblxuICBpc01vZGFsT3BlbiA9IGZhbHNlO1xuXG4gIHNlbGVjdGVkPzogRnVlbEludGVncmF0aW9uTG9nRHRvO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBsaXN0OiBMaXN0U2VydmljZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHJhY2s6IFRyYWNrQnlTZXJ2aWNlLFxuICAgIHB1YmxpYyByZWFkb25seSBzZXJ2aWNlOiBGdWVsSW50ZWdyYXRpb25Mb2dTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBnZXREYXRhID0gKHF1ZXJ5OiBBQlAuUGFnZVF1ZXJ5UGFyYW1zKSA9PlxuICAgICAgdGhpcy5zZXJ2aWNlLmdldExpc3Qoe1xuICAgICAgICAuLi5xdWVyeSxcbiAgICAgICAgLi4udGhpcy5maWx0ZXJzLFxuICAgICAgICBmaWx0ZXJUZXh0OiBxdWVyeS5maWx0ZXIsXG4gICAgICB9KTtcblxuICAgIGNvbnN0IHNldERhdGEgPSAobGlzdDogUGFnZWRSZXN1bHREdG88RnVlbEludGVncmF0aW9uTG9nRHRvPikgPT4gKHRoaXMuZGF0YSA9IGxpc3QpO1xuXG4gICAgdGhpcy5saXN0Lmhvb2tUb1F1ZXJ5KGdldERhdGEpLnN1YnNjcmliZShzZXREYXRhKTtcbiAgfVxuXG4gIGNsZWFyRmlsdGVycygpIHtcbiAgICB0aGlzLmZpbHRlcnMgPSB7fSBhcyBHZXRGdWVsSW50ZWdyYXRpb25Mb2dzSW5wdXQ7XG4gIH1cblxuICBidWlsZEZvcm0oKSB7XG4gICAgY29uc3QgeyBwYXRoLCBtZXRob2QsIHJlcXVlc3RCb2R5LCByZXNwb25zZUJvZHksIHN0YXR1c0NvZGUsIHJlcXVlc3RUaW1lLCByZXNwb25zZVRpbWUgfSA9XG4gICAgICB0aGlzLnNlbGVjdGVkIHx8IHt9O1xuXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBwYXRoOiBbcGF0aCA/PyBudWxsLCBbXV0sXG4gICAgICBtZXRob2Q6IFttZXRob2QgPz8gbnVsbCwgW11dLFxuICAgICAgcmVxdWVzdEJvZHk6IFtyZXF1ZXN0Qm9keSA/PyBudWxsLCBbXV0sXG4gICAgICByZXNwb25zZUJvZHk6IFtyZXNwb25zZUJvZHkgPz8gbnVsbCwgW11dLFxuICAgICAgc3RhdHVzQ29kZTogW3N0YXR1c0NvZGUgPz8gbnVsbCwgW11dLFxuICAgICAgcmVxdWVzdFRpbWU6IFtyZXF1ZXN0VGltZSA/IG5ldyBEYXRlKHJlcXVlc3RUaW1lKSA6IG51bGwsIFtdXSxcbiAgICAgIHJlc3BvbnNlVGltZTogW3Jlc3BvbnNlVGltZSA/IG5ldyBEYXRlKHJlc3BvbnNlVGltZSkgOiBudWxsLCBbXV0sXG4gICAgfSk7XG4gIH1cblxuICBoaWRlRm9ybSgpIHtcbiAgICB0aGlzLmlzTW9kYWxPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gIH1cblxuICBzaG93Rm9ybSgpIHtcbiAgICB0aGlzLmJ1aWxkRm9ybSgpO1xuICAgIHRoaXMuaXNNb2RhbE9wZW4gPSB0cnVlO1xuICB9XG5cbiAgc3VibWl0Rm9ybSgpIHtcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHJldHVybjtcblxuICAgIGNvbnN0IHJlcXVlc3QgPSB0aGlzLnNlbGVjdGVkXG4gICAgICA/IHRoaXMuc2VydmljZS51cGRhdGUodGhpcy5zZWxlY3RlZC5pZCwge1xuICAgICAgICAgIC4uLnRoaXMuZm9ybS52YWx1ZSxcbiAgICAgICAgICBjb25jdXJyZW5jeVN0YW1wOiB0aGlzLnNlbGVjdGVkLmNvbmN1cnJlbmN5U3RhbXAsXG4gICAgICAgIH0pXG4gICAgICA6IHRoaXMuc2VydmljZS5jcmVhdGUodGhpcy5mb3JtLnZhbHVlKTtcblxuICAgIHRoaXMuaXNNb2RhbEJ1c3kgPSB0cnVlO1xuXG4gICAgcmVxdWVzdFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmlzTW9kYWxCdXN5ID0gZmFsc2UpKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuaGlkZUZvcm0oKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5saXN0LmdldCk7XG4gIH1cblxuICBjcmVhdGUoKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnNob3dGb3JtKCk7XG4gIH1cblxuICB1cGRhdGUocmVjb3JkOiBGdWVsSW50ZWdyYXRpb25Mb2dEdG8pIHtcbiAgICB0aGlzLnNlbGVjdGVkID0gcmVjb3JkO1xuICAgIHRoaXMuc2hvd0Zvcm0oKTtcbiAgfVxuXG4gIGRlbGV0ZShyZWNvcmQ6IEZ1ZWxJbnRlZ3JhdGlvbkxvZ0R0bykge1xuICAgIHRoaXMuY29uZmlybWF0aW9uXG4gICAgICAud2FybignT3ZvbHQ6OkRlbGV0ZUNvbmZpcm1hdGlvbk1lc3NhZ2UnLCAnT3ZvbHQ6OkFyZVlvdVN1cmUnLCB7XG4gICAgICAgIG1lc3NhZ2VMb2NhbGl6YXRpb25QYXJhbXM6IFtdLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoc3RhdHVzID0+IHN0YXR1cyA9PT0gQ29uZmlybWF0aW9uLlN0YXR1cy5jb25maXJtKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuc2VydmljZS5kZWxldGUocmVjb3JkLmlkKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5saXN0LmdldCk7XG4gIH1cbn1cbiIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ092b2x0OjpGdWVsSW50ZWdyYXRpb25Mb2dzJyB8IGFicExvY2FsaXphdGlvblwiPlxuICA8YWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXIgY2xhc3M9XCJjb2xcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZy1lbmQgcHQtMlwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqYWJwUGVybWlzc2lvbj1cIidPdm9sdC5GdWVsSW50ZWdyYXRpb25Mb2dzLkNyZWF0ZSdcIlxuICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cImNyZWF0ZSgpXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1wbHVzIG1lLTFcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgIHt7ICdPdm9sdDo6TmV3RnVlbEludGVncmF0aW9uTG9nJyB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvYWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXI+XG5cbiAgPGFicC1hZHZhbmNlZC1lbnRpdHktZmlsdGVycyBsb2NhbGl6YXRpb25Tb3VyY2VOYW1lPVwiT3ZvbHRcIiBbbGlzdF09XCJsaXN0XCI+XG4gICAgPGFicC1hZHZhbmNlZC1lbnRpdHktZmlsdGVycy1mb3JtPlxuICAgICAgPGZvcm0gI2ZpbHRlckZvcm0gKGtleXVwLmVudGVyKT1cImxpc3QuZ2V0KClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXRoRmlsdGVyXCI+XG4gICAgICAgICAgICAgICAge3sgJ092b2x0OjpQYXRoJyB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgICAgICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGlkPVwicGF0aEZpbHRlclwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5wYXRoXCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1ldGhvZEZpbHRlclwiPlxuICAgICAgICAgICAgICAgIHt7ICdPdm9sdDo6TWV0aG9kJyB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgICAgICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGlkPVwibWV0aG9kRmlsdGVyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLm1ldGhvZFwiXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJyZXF1ZXN0Qm9keUZpbHRlclwiPlxuICAgICAgICAgICAgICAgIHt7ICdPdm9sdDo6UmVxdWVzdEJvZHknIHwgYWJwTG9jYWxpemF0aW9uIH19XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgaWQ9XCJyZXF1ZXN0Qm9keUZpbHRlclwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5yZXF1ZXN0Qm9keVwiXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJyZXNwb25zZUJvZHlGaWx0ZXJcIj5cbiAgICAgICAgICAgICAgICB7eyAnT3ZvbHQ6OlJlc3BvbnNlQm9keScgfCBhYnBMb2NhbGl6YXRpb24gfX1cbiAgICAgICAgICAgICAgPC9sYWJlbD5cblxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBpZD1cInJlc3BvbnNlQm9keUZpbHRlclwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5yZXNwb25zZUJvZHlcIlxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwic3RhdHVzQ29kZUZpbHRlclwiPlxuICAgICAgICAgICAgICAgIHt7ICdPdm9sdDo6U3RhdHVzQ29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cbiAgICAgICAgICAgICAgPC9sYWJlbD5cblxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBpZD1cInN0YXR1c0NvZGVGaWx0ZXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuc3RhdHVzQ29kZVwiXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtaW5SZXF1ZXN0VGltZVwiPlxuICAgICAgICAgICAgICAgIHt7ICdPdm9sdDo6TWluUmVxdWVzdFRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIGlkPVwibWluUmVxdWVzdFRpbWVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgI21pblJlcXVlc3RUaW1lSW5wdXRcbiAgICAgICAgICAgICAgICAgICNtaW5SZXF1ZXN0VGltZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJtaW5SZXF1ZXN0VGltZVwiXG4gICAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXG4gICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICAgICAgICAgIHJlYWRvbmx5XG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWluUmVxdWVzdFRpbWVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcbiAgICAgICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJtaW5SZXF1ZXN0VGltZURhdGVwaWNrZXIudG9nZ2xlKClcIlxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnJlcXVlc3RUaW1lTWluXCJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibWluUmVxdWVzdFRpbWVJbnB1dC52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgICAgIG1pblJlcXVlc3RUaW1lRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICAgIG1pblJlcXVlc3RUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhSZXF1ZXN0VGltZVwiPlxuICAgICAgICAgICAgICAgIHt7ICdPdm9sdDo6TWF4UmVxdWVzdFRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIGlkPVwibWF4UmVxdWVzdFRpbWVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgI21heFJlcXVlc3RUaW1lSW5wdXRcbiAgICAgICAgICAgICAgICAgICNtYXhSZXF1ZXN0VGltZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJtYXhSZXF1ZXN0VGltZVwiXG4gICAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1heFJlcXVlc3RUaW1lRGF0ZXBpY2tlci50b2dnbGUoKVwiXG4gICAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwibWF4UmVxdWVzdFRpbWVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5yZXF1ZXN0VGltZU1heFwiXG4gICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1heFJlcXVlc3RUaW1lSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBweC0yXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICBtYXhSZXF1ZXN0VGltZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgICBtYXhSZXF1ZXN0VGltZURhdGVwaWNrZXIubWFudWFsRGF0ZUNoYW5nZShudWxsLCB0cnVlKVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pblJlc3BvbnNlVGltZVwiPlxuICAgICAgICAgICAgICAgIHt7ICdPdm9sdDo6TWluUmVzcG9uc2VUaW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgICAgICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICBpZD1cIm1pblJlc3BvbnNlVGltZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAjbWluUmVzcG9uc2VUaW1lSW5wdXRcbiAgICAgICAgICAgICAgICAgICNtaW5SZXNwb25zZVRpbWVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwibWluUmVzcG9uc2VUaW1lXCJcbiAgICAgICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcbiAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtaW5SZXNwb25zZVRpbWVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcbiAgICAgICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJtaW5SZXNwb25zZVRpbWVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5yZXNwb25zZVRpbWVNaW5cIlxuICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtaW5SZXNwb25zZVRpbWVJbnB1dC52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgICAgIG1pblJlc3BvbnNlVGltZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgICBtaW5SZXNwb25zZVRpbWVEYXRlcGlja2VyLm1hbnVhbERhdGVDaGFuZ2UobnVsbCwgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1heFJlc3BvbnNlVGltZVwiPlxuICAgICAgICAgICAgICAgIHt7ICdPdm9sdDo6TWF4UmVzcG9uc2VUaW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgICAgICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICBpZD1cIm1heFJlc3BvbnNlVGltZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAjbWF4UmVzcG9uc2VUaW1lSW5wdXRcbiAgICAgICAgICAgICAgICAgICNtYXhSZXNwb25zZVRpbWVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwibWF4UmVzcG9uc2VUaW1lXCJcbiAgICAgICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcbiAgICAgICAgICAgICAgICAgIHJlYWRvbmx5XG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWF4UmVzcG9uc2VUaW1lRGF0ZXBpY2tlci50b2dnbGUoKVwiXG4gICAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwibWF4UmVzcG9uc2VUaW1lRGF0ZXBpY2tlci50b2dnbGUoKVwiXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMucmVzcG9uc2VUaW1lTWF4XCJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibWF4UmVzcG9uc2VUaW1lSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBweC0yXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICBtYXhSZXNwb25zZVRpbWVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgICAgbWF4UmVzcG9uc2VUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG8gYWxpZ24tc2VsZi1lbmQgbWItM1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgY29sLXNtLWF1dG8gZC1ncmlkXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeVwiIChjbGljayk9XCJjbGVhckZpbHRlcnMoKVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb24gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgY29sLXNtLWF1dG8gZC1ncmlkXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwibGlzdC5nZXQoKVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgJ0FicFVpOjpSZWZyZXNoJyB8IGFicExvY2FsaXphdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Zvcm0+XG4gICAgPC9hYnAtYWR2YW5jZWQtZW50aXR5LWZpbHRlcnMtZm9ybT5cbiAgPC9hYnAtYWR2YW5jZWQtZW50aXR5LWZpbHRlcnM+XG5cbiAgPGRpdiBjbGFzcz1cImNhcmRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XG4gICAgICA8bmd4LWRhdGF0YWJsZSBbcm93c109XCJkYXRhLml0ZW1zXCIgW2NvdW50XT1cImRhdGEudG90YWxDb3VudFwiIFtsaXN0XT1cImxpc3RcIiBkZWZhdWx0PlxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cbiAgICAgICAgICBbbmFtZV09XCInQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9uXCJcbiAgICAgICAgICBbbWF4V2lkdGhdPVwiMTUwXCJcbiAgICAgICAgICBbd2lkdGhdPVwiMTUwXCJcbiAgICAgICAgICBbc29ydGFibGVdPVwiZmFsc2VcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cInJvd0luZGV4XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxuICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjb250YWluZXI9XCJib2R5XCIgY2xhc3M9XCJkLWlubGluZS1ibG9ja1wiPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIGRyb3Bkb3duLXRvZ2dsZVwiXG4gICAgICAgICAgICAgICAgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiXG4gICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duVG9nZ2xlXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNvZyBtZS0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgIHt7ICdBYnBVaTo6QWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb24gfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnU+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgbmdiRHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgICAqYWJwUGVybWlzc2lvbj1cIidPdm9sdC5GdWVsSW50ZWdyYXRpb25Mb2dzLkVkaXQnXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ1cGRhdGUocm93KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgJ0FicFVpOjpFZGl0JyB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgbmdiRHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgICAqYWJwUGVybWlzc2lvbj1cIidPdm9sdC5GdWVsSW50ZWdyYXRpb25Mb2dzLkRlbGV0ZSdcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZShyb3cpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyAnQWJwVWk6OkRlbGV0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxuXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBuYW1lPVwie3sgJ092b2x0OjpQYXRoJyB8IGFicExvY2FsaXphdGlvbiB9fVwiIHByb3A9XCJwYXRoXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICB7eyByb3cucGF0aCB9fVxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG5cbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIG5hbWU9XCJ7eyAnT3ZvbHQ6Ok1ldGhvZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cIiBwcm9wPVwibWV0aG9kXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICB7eyByb3cubWV0aG9kIH19XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cblxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cbiAgICAgICAgICBuYW1lPVwie3sgJ092b2x0OjpSZXF1ZXN0Qm9keScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxuICAgICAgICAgIHByb3A9XCJyZXF1ZXN0Qm9keVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cbiAgICAgICAgICAgIHt7IHJvdy5yZXF1ZXN0Qm9keSB9fVxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG5cbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXG4gICAgICAgICAgbmFtZT1cInt7ICdPdm9sdDo6UmVzcG9uc2VCb2R5JyB8IGFicExvY2FsaXphdGlvbiB9fVwiXG4gICAgICAgICAgcHJvcD1cInJlc3BvbnNlQm9keVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cbiAgICAgICAgICAgIHt7IHJvdy5yZXNwb25zZUJvZHkgfX1cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxuXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBuYW1lPVwie3sgJ092b2x0OjpTdGF0dXNDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiIHByb3A9XCJzdGF0dXNDb2RlXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICB7eyByb3cuc3RhdHVzQ29kZSB9fVxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG5cbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXG4gICAgICAgICAgbmFtZT1cInt7ICdPdm9sdDo6UmVxdWVzdFRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcbiAgICAgICAgICBwcm9wPVwicmVxdWVzdFRpbWVcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICB7eyByb3cucmVxdWVzdFRpbWUgfCBkYXRlIH19XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cblxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cbiAgICAgICAgICBuYW1lPVwie3sgJ092b2x0OjpSZXNwb25zZVRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcbiAgICAgICAgICBwcm9wPVwicmVzcG9uc2VUaW1lXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxuICAgICAgICAgICAge3sgcm93LnJlc3BvbnNlVGltZSB8IGRhdGUgfX1cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxuICAgICAgPC9uZ3gtZGF0YXRhYmxlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvYWJwLXBhZ2U+XG5cbjxhYnAtbW9kYWwgW2J1c3ldPVwiaXNNb2RhbEJ1c3lcIiBbKHZpc2libGUpXT1cImlzTW9kYWxPcGVuXCI+XG4gIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxuICAgIDxoMz5cbiAgICAgIHt7IChzZWxlY3RlZCA/ICdBYnBVaTo6RWRpdCcgOiAnT3ZvbHQ6Ok5ld0Z1ZWxJbnRlZ3JhdGlvbkxvZycpIHwgYWJwTG9jYWxpemF0aW9uIH19XG4gICAgPC9oMz5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgaWQ9XCJmdWVsLWludGVncmF0aW9uLWxvZ1wiIChuZ1N1Ym1pdCk9XCJzdWJtaXRGb3JtKClcIiB2YWxpZGF0ZU9uU3VibWl0PlxuICAgICAgPGRpdiBjbGFzcz1cIm10LTIgZmFkZS1pbi10b3BcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZnVlbC1pbnRlZ3JhdGlvbi1sb2ctcGF0aFwiPlxuICAgICAgICAgICAge3sgJ092b2x0OjpQYXRoJyB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGlkPVwiZnVlbC1pbnRlZ3JhdGlvbi1sb2ctcGF0aFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwYXRoXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGF1dG9mb2N1c1xuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJmdWVsLWludGVncmF0aW9uLWxvZy1tZXRob2RcIj5cbiAgICAgICAgICAgIHt7ICdPdm9sdDo6TWV0aG9kJyB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgICA8aW5wdXQgaWQ9XCJmdWVsLWludGVncmF0aW9uLWxvZy1tZXRob2RcIiBmb3JtQ29udHJvbE5hbWU9XCJtZXRob2RcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJmdWVsLWludGVncmF0aW9uLWxvZy1yZXF1ZXN0LWJvZHlcIj5cbiAgICAgICAgICAgIHt7ICdPdm9sdDo6UmVxdWVzdEJvZHknIHwgYWJwTG9jYWxpemF0aW9uIH19XG4gICAgICAgICAgPC9sYWJlbD5cblxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgaWQ9XCJmdWVsLWludGVncmF0aW9uLWxvZy1yZXF1ZXN0LWJvZHlcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVxdWVzdEJvZHlcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJmdWVsLWludGVncmF0aW9uLWxvZy1yZXNwb25zZS1ib2R5XCI+XG4gICAgICAgICAgICB7eyAnT3ZvbHQ6OlJlc3BvbnNlQm9keScgfCBhYnBMb2NhbGl6YXRpb24gfX1cbiAgICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBpZD1cImZ1ZWwtaW50ZWdyYXRpb24tbG9nLXJlc3BvbnNlLWJvZHlcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVzcG9uc2VCb2R5XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZnVlbC1pbnRlZ3JhdGlvbi1sb2ctc3RhdHVzLWNvZGVcIj5cbiAgICAgICAgICAgIHt7ICdPdm9sdDo6U3RhdHVzQ29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cbiAgICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBpZD1cImZ1ZWwtaW50ZWdyYXRpb24tbG9nLXN0YXR1cy1jb2RlXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInN0YXR1c0NvZGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJmdWVsLWludGVncmF0aW9uLWxvZy1yZXF1ZXN0LXRpbWVcIj5cbiAgICAgICAgICAgIHt7ICdPdm9sdDo6UmVxdWVzdFRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XG4gICAgICAgICAgPC9sYWJlbD5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgICAgICAgaWQ9XCJmdWVsLWludGVncmF0aW9uLWxvZy1yZXF1ZXN0LXRpbWVcIlxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZXF1ZXN0VGltZVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxuICAgICAgICAgICAgICAjcmVxdWVzdFRpbWVJbnB1dFxuICAgICAgICAgICAgICAjcmVxdWVzdFRpbWVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJyZXF1ZXN0VGltZURhdGVwaWNrZXIub3BlbigpXCJcbiAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cInJlcXVlc3RUaW1lRGF0ZXBpY2tlci5vcGVuKClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZXF1ZXN0VGltZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgcmVxdWVzdFRpbWVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XG4gICAgICAgICAgICAgICAgICByZXF1ZXN0VGltZURhdGVwaWNrZXIubWFudWFsRGF0ZUNoYW5nZShudWxsLCB0cnVlKVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZnVlbC1pbnRlZ3JhdGlvbi1sb2ctcmVzcG9uc2UtdGltZVwiPlxuICAgICAgICAgICAge3sgJ092b2x0OjpSZXNwb25zZVRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XG4gICAgICAgICAgPC9sYWJlbD5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgICAgICAgaWQ9XCJmdWVsLWludGVncmF0aW9uLWxvZy1yZXNwb25zZS10aW1lXCJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVzcG9uc2VUaW1lXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXG4gICAgICAgICAgICAgICNyZXNwb25zZVRpbWVJbnB1dFxuICAgICAgICAgICAgICAjcmVzcG9uc2VUaW1lRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwicmVzcG9uc2VUaW1lRGF0ZXBpY2tlci5vcGVuKClcIlxuICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwicmVzcG9uc2VUaW1lRGF0ZXBpY2tlci5vcGVuKClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZXNwb25zZVRpbWVJbnB1dC52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBweC0yXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVGltZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcbiAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVGltZURhdGVwaWNrZXIubWFudWFsRGF0ZUNoYW5nZShudWxsLCB0cnVlKVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctdGVtcGxhdGUgI2FicEZvb3Rlcj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgYWJwQ2xvc2U+XG4gICAgICB7eyAnQWJwVWk6OkNhbmNlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cbiAgICA8L2J1dHRvbj5cblxuICAgIDxhYnAtYnV0dG9uIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCIgYnV0dG9uVHlwZT1cInN1Ym1pdFwiIGZvcm1OYW1lPVwiZnVlbC1pbnRlZ3JhdGlvbi1sb2dcIj5cbiAgICAgIHt7ICdBYnBVaTo6U2F2ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cbiAgICA8L2FicC1idXR0b24+XG4gIDwvbmctdGVtcGxhdGU+XG48L2FicC1tb2RhbD5cbiJdfQ==
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVlbC1pbnRlZ3JhdGlvbi1sb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3ZvbHQvc3JjL2xpYi9mdWVsLWludGVncmF0aW9uLWxvZ3MvZnVlbC1pbnRlZ3JhdGlvbi1sb2cvY29tcG9uZW50cy9mdWVsLWludGVncmF0aW9uLWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vdm9sdC9zcmMvbGliL2Z1ZWwtaW50ZWdyYXRpb24tbG9ncy9mdWVsLWludGVncmF0aW9uLWxvZy9jb21wb25lbnRzL2Z1ZWwtaW50ZWdyYXRpb24tbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBTyxXQUFXLEVBQWtDLE1BQU0sY0FBYyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQXVCLE1BQU0sc0JBQXNCLENBQUM7QUFDekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBYWxFLE1BQU0sT0FBTywyQkFBMkI7SUFrQnRDLFlBQ2tCLElBQWlCLEVBQ2pCLEtBQXFCLEVBQ3JCLE9BQWtDLEVBQzFDLFlBQWlDLEVBQ2pDLEVBQWU7UUFKUCxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBQzFDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxPQUFFLEdBQUYsRUFB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RkQ5ZGEsMkJBQTJCO2tCQVB2QyxTQUFTOytCQUNFLDBCQUEwQixtQkFDbkIsdUJBQXVCLENBQUMsT0FBTyxhQUNyQyxDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQLCBMaXN0U2VydmljZSwgUGFnZWRSZXN1bHREdG8sIFRyYWNrQnlTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uLCBDb25maXJtYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkL2V4dGVuc2lvbnMnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdiRGF0ZUFkYXB0ZXIgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IGZpbHRlciwgZmluYWxpemUsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgdHlwZSB7XHJcbiAgR2V0RnVlbEludGVncmF0aW9uTG9nc0lucHV0LFxyXG4gIEZ1ZWxJbnRlZ3JhdGlvbkxvZ0R0byxcclxufSBmcm9tICcuLi8uLi8uLi9wcm94eS9mdWVsLWludGVncmF0aW9uLWxvZ3MvbW9kZWxzJztcclxuaW1wb3J0IHsgRnVlbEludGVncmF0aW9uTG9nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2Z1ZWwtaW50ZWdyYXRpb24tbG9ncy9mdWVsLWludGVncmF0aW9uLWxvZy5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZnVlbC1pbnRlZ3JhdGlvbi1sb2cnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcclxuICBwcm92aWRlcnM6IFtMaXN0U2VydmljZSwgeyBwcm92aWRlOiBOZ2JEYXRlQWRhcHRlciwgdXNlQ2xhc3M6IERhdGVBZGFwdGVyIH1dLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mdWVsLWludGVncmF0aW9uLWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVzOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZ1ZWxJbnRlZ3JhdGlvbkxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgZGF0YTogUGFnZWRSZXN1bHREdG88RnVlbEludGVncmF0aW9uTG9nRHRvPiA9IHtcclxuICAgIGl0ZW1zOiBbXSxcclxuICAgIHRvdGFsQ291bnQ6IDAsXHJcbiAgfTtcclxuXHJcbiAgZmlsdGVycyA9IHt9IGFzIEdldEZ1ZWxJbnRlZ3JhdGlvbkxvZ3NJbnB1dDtcclxuXHJcbiAgZm9ybTogRm9ybUdyb3VwO1xyXG5cclxuICBpc0ZpbHRlcnNIaWRkZW4gPSB0cnVlO1xyXG5cclxuICBpc01vZGFsQnVzeSA9IGZhbHNlO1xyXG5cclxuICBpc01vZGFsT3BlbiA9IGZhbHNlO1xyXG5cclxuICBzZWxlY3RlZD86IEZ1ZWxJbnRlZ3JhdGlvbkxvZ0R0bztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGlzdDogTGlzdFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHJhY2s6IFRyYWNrQnlTZXJ2aWNlLFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2U6IEZ1ZWxJbnRlZ3JhdGlvbkxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnN0IGdldERhdGEgPSAocXVlcnk6IEFCUC5QYWdlUXVlcnlQYXJhbXMpID0+XHJcbiAgICAgIHRoaXMuc2VydmljZS5nZXRMaXN0KHtcclxuICAgICAgICAuLi5xdWVyeSxcclxuICAgICAgICAuLi50aGlzLmZpbHRlcnMsXHJcbiAgICAgICAgZmlsdGVyVGV4dDogcXVlcnkuZmlsdGVyLFxyXG4gICAgICB9KTtcclxuXHJcbiAgICBjb25zdCBzZXREYXRhID0gKGxpc3Q6IFBhZ2VkUmVzdWx0RHRvPEZ1ZWxJbnRlZ3JhdGlvbkxvZ0R0bz4pID0+ICh0aGlzLmRhdGEgPSBsaXN0KTtcclxuXHJcbiAgICB0aGlzLmxpc3QuaG9va1RvUXVlcnkoZ2V0RGF0YSkuc3Vic2NyaWJlKHNldERhdGEpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJGaWx0ZXJzKCkge1xyXG4gICAgdGhpcy5maWx0ZXJzID0ge30gYXMgR2V0RnVlbEludGVncmF0aW9uTG9nc0lucHV0O1xyXG4gIH1cclxuXHJcbiAgYnVpbGRGb3JtKCkge1xyXG4gICAgY29uc3QgeyBwYXRoLCBtZXRob2QsIHJlcXVlc3RCb2R5LCByZXNwb25zZUJvZHksIHN0YXR1c0NvZGUsIHJlcXVlc3RUaW1lLCByZXNwb25zZVRpbWUgfSA9XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQgfHwge307XHJcblxyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIHBhdGg6IFtwYXRoID8/IG51bGwsIFtdXSxcclxuICAgICAgbWV0aG9kOiBbbWV0aG9kID8/IG51bGwsIFtdXSxcclxuICAgICAgcmVxdWVzdEJvZHk6IFtyZXF1ZXN0Qm9keSA/PyBudWxsLCBbXV0sXHJcbiAgICAgIHJlc3BvbnNlQm9keTogW3Jlc3BvbnNlQm9keSA/PyBudWxsLCBbXV0sXHJcbiAgICAgIHN0YXR1c0NvZGU6IFtzdGF0dXNDb2RlID8/IG51bGwsIFtdXSxcclxuICAgICAgcmVxdWVzdFRpbWU6IFtyZXF1ZXN0VGltZSA/IG5ldyBEYXRlKHJlcXVlc3RUaW1lKSA6IG51bGwsIFtdXSxcclxuICAgICAgcmVzcG9uc2VUaW1lOiBbcmVzcG9uc2VUaW1lID8gbmV3IERhdGUocmVzcG9uc2VUaW1lKSA6IG51bGwsIFtdXSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaGlkZUZvcm0oKSB7XHJcbiAgICB0aGlzLmlzTW9kYWxPcGVuID0gZmFsc2U7XHJcbiAgICB0aGlzLmZvcm0ucmVzZXQoKTtcclxuICB9XHJcblxyXG4gIHNob3dGb3JtKCkge1xyXG4gICAgdGhpcy5idWlsZEZvcm0oKTtcclxuICAgIHRoaXMuaXNNb2RhbE9wZW4gPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0Rm9ybSgpIHtcclxuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHJlcXVlc3QgPSB0aGlzLnNlbGVjdGVkXHJcbiAgICAgID8gdGhpcy5zZXJ2aWNlLnVwZGF0ZSh0aGlzLnNlbGVjdGVkLmlkLCB7XHJcbiAgICAgICAgICAuLi50aGlzLmZvcm0udmFsdWUsXHJcbiAgICAgICAgICBjb25jdXJyZW5jeVN0YW1wOiB0aGlzLnNlbGVjdGVkLmNvbmN1cnJlbmN5U3RhbXAsXHJcbiAgICAgICAgfSlcclxuICAgICAgOiB0aGlzLnNlcnZpY2UuY3JlYXRlKHRoaXMuZm9ybS52YWx1ZSk7XHJcblxyXG4gICAgdGhpcy5pc01vZGFsQnVzeSA9IHRydWU7XHJcblxyXG4gICAgcmVxdWVzdFxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5pc01vZGFsQnVzeSA9IGZhbHNlKSksXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuaGlkZUZvcm0oKSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHRoaXMubGlzdC5nZXQpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc2hvd0Zvcm0oKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZShyZWNvcmQ6IEZ1ZWxJbnRlZ3JhdGlvbkxvZ0R0bykge1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IHJlY29yZDtcclxuICAgIHRoaXMuc2hvd0Zvcm0oKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZShyZWNvcmQ6IEZ1ZWxJbnRlZ3JhdGlvbkxvZ0R0bykge1xyXG4gICAgdGhpcy5jb25maXJtYXRpb25cclxuICAgICAgLndhcm4oJ092b2x0OjpEZWxldGVDb25maXJtYXRpb25NZXNzYWdlJywgJ092b2x0OjpBcmVZb3VTdXJlJywge1xyXG4gICAgICAgIG1lc3NhZ2VMb2NhbGl6YXRpb25QYXJhbXM6IFtdLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoc3RhdHVzID0+IHN0YXR1cyA9PT0gQ29uZmlybWF0aW9uLlN0YXR1cy5jb25maXJtKSxcclxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5zZXJ2aWNlLmRlbGV0ZShyZWNvcmQuaWQpKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5saXN0LmdldCk7XHJcbiAgfVxyXG59XHJcbiIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ092b2x0OjpGdWVsSW50ZWdyYXRpb25Mb2dzJyB8IGFicExvY2FsaXphdGlvblwiPlxyXG4gIDxhYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lciBjbGFzcz1cImNvbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInRleHQtbGctZW5kIHB0LTJcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgICphYnBQZXJtaXNzaW9uPVwiJ092b2x0LkZ1ZWxJbnRlZ3JhdGlvbkxvZ3MuQ3JlYXRlJ1wiXHJcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAoY2xpY2spPVwiY3JlYXRlKClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1wbHVzIG1lLTFcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAge3sgJ092b2x0OjpOZXdGdWVsSW50ZWdyYXRpb25Mb2cnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9hYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lcj5cclxuXHJcbiAgPGFicC1hZHZhbmNlZC1lbnRpdHktZmlsdGVycyBsb2NhbGl6YXRpb25Tb3VyY2VOYW1lPVwiT3ZvbHRcIiBbbGlzdF09XCJsaXN0XCI+XHJcbiAgICA8YWJwLWFkdmFuY2VkLWVudGl0eS1maWx0ZXJzLWZvcm0+XHJcbiAgICAgIDxmb3JtICNmaWx0ZXJGb3JtIChrZXl1cC5lbnRlcik9XCJsaXN0LmdldCgpXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXRoRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnT3ZvbHQ6OlBhdGgnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cInBhdGhGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnBhdGhcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtZXRob2RGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdPdm9sdDo6TWV0aG9kJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJtZXRob2RGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLm1ldGhvZFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInJlcXVlc3RCb2R5RmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnT3ZvbHQ6OlJlcXVlc3RCb2R5JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJyZXF1ZXN0Qm9keUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMucmVxdWVzdEJvZHlcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJyZXNwb25zZUJvZHlGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdPdm9sdDo6UmVzcG9uc2VCb2R5JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJyZXNwb25zZUJvZHlGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnJlc3BvbnNlQm9keVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInN0YXR1c0NvZGVGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdPdm9sdDo6U3RhdHVzQ29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwic3RhdHVzQ29kZUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuc3RhdHVzQ29kZVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pblJlcXVlc3RUaW1lXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnT3ZvbHQ6Ok1pblJlcXVlc3RUaW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgaWQ9XCJtaW5SZXF1ZXN0VGltZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgI21pblJlcXVlc3RUaW1lSW5wdXRcclxuICAgICAgICAgICAgICAgICAgI21pblJlcXVlc3RUaW1lRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwibWluUmVxdWVzdFRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWluUmVxdWVzdFRpbWVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cIm1pblJlcXVlc3RUaW1lRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5yZXF1ZXN0VGltZU1pblwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1pblJlcXVlc3RUaW1lSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtaW5SZXF1ZXN0VGltZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAgIG1pblJlcXVlc3RUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhSZXF1ZXN0VGltZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ092b2x0OjpNYXhSZXF1ZXN0VGltZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgIGlkPVwibWF4UmVxdWVzdFRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICNtYXhSZXF1ZXN0VGltZUlucHV0XHJcbiAgICAgICAgICAgICAgICAgICNtYXhSZXF1ZXN0VGltZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm1heFJlcXVlc3RUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWF4UmVxdWVzdFRpbWVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cIm1heFJlcXVlc3RUaW1lRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5yZXF1ZXN0VGltZU1heFwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1heFJlcXVlc3RUaW1lSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtYXhSZXF1ZXN0VGltZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAgIG1heFJlcXVlc3RUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pblJlc3BvbnNlVGltZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ092b2x0OjpNaW5SZXNwb25zZVRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICBpZD1cIm1pblJlc3BvbnNlVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgI21pblJlc3BvbnNlVGltZUlucHV0XHJcbiAgICAgICAgICAgICAgICAgICNtaW5SZXNwb25zZVRpbWVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJtaW5SZXNwb25zZVRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWluUmVzcG9uc2VUaW1lRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJtaW5SZXNwb25zZVRpbWVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnJlc3BvbnNlVGltZU1pblwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1pblJlc3BvbnNlVGltZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgbWluUmVzcG9uc2VUaW1lRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgbWluUmVzcG9uc2VUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhSZXNwb25zZVRpbWVcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdPdm9sdDo6TWF4UmVzcG9uc2VUaW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgaWQ9XCJtYXhSZXNwb25zZVRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICNtYXhSZXNwb25zZVRpbWVJbnB1dFxyXG4gICAgICAgICAgICAgICAgICAjbWF4UmVzcG9uc2VUaW1lRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwibWF4UmVzcG9uc2VUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWF4UmVzcG9uc2VUaW1lRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJtYXhSZXNwb25zZVRpbWVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnJlc3BvbnNlVGltZU1heFwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1heFJlc3BvbnNlVGltZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgbWF4UmVzcG9uc2VUaW1lRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgbWF4UmVzcG9uc2VUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0byBhbGlnbi1zZWxmLWVuZCBtYi0zXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgY29sLXNtLWF1dG8gZC1ncmlkXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5XCIgKGNsaWNrKT1cImNsZWFyRmlsdGVycygpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ICdBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IGNvbC1zbS1hdXRvIGQtZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwibGlzdC5nZXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyAnQWJwVWk6OlJlZnJlc2gnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZm9ybT5cclxuICAgIDwvYWJwLWFkdmFuY2VkLWVudGl0eS1maWx0ZXJzLWZvcm0+XHJcbiAgPC9hYnAtYWR2YW5jZWQtZW50aXR5LWZpbHRlcnM+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgIDxuZ3gtZGF0YXRhYmxlIFtyb3dzXT1cImRhdGEuaXRlbXNcIiBbY291bnRdPVwiZGF0YS50b3RhbENvdW50XCIgW2xpc3RdPVwibGlzdFwiIGRlZmF1bHQ+XHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBbbmFtZV09XCInQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgIFttYXhXaWR0aF09XCIxNTBcIlxyXG4gICAgICAgICAgW3dpZHRoXT1cIjE1MFwiXHJcbiAgICAgICAgICBbc29ydGFibGVdPVwiZmFsc2VcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LWk9XCJyb3dJbmRleFwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjb250YWluZXI9XCJib2R5XCIgY2xhc3M9XCJkLWlubGluZS1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBkcm9wZG93bi10b2dnbGVcIlxyXG4gICAgICAgICAgICAgICAgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiXHJcbiAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBuZ2JEcm9wZG93blRvZ2dsZVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY29nIG1lLTFcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICB7eyAnQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51PlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICBuZ2JEcm9wZG93bkl0ZW1cclxuICAgICAgICAgICAgICAgICAgKmFicFBlcm1pc3Npb249XCInT3ZvbHQuRnVlbEludGVncmF0aW9uTG9ncy5FZGl0J1wiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ1cGRhdGUocm93KVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7ICdBYnBVaTo6RWRpdCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgbmdiRHJvcGRvd25JdGVtXHJcbiAgICAgICAgICAgICAgICAgICphYnBQZXJtaXNzaW9uPVwiJ092b2x0LkZ1ZWxJbnRlZ3JhdGlvbkxvZ3MuRGVsZXRlJ1wiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGUocm93KVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7ICdBYnBVaTo6RGVsZXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gbmFtZT1cInt7ICdPdm9sdDo6UGF0aCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cIiBwcm9wPVwicGF0aFwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5wYXRoIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBuYW1lPVwie3sgJ092b2x0OjpNZXRob2QnIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgcHJvcD1cIm1ldGhvZFwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5tZXRob2QgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ092b2x0OjpSZXF1ZXN0Qm9keScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cInJlcXVlc3RCb2R5XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LnJlcXVlc3RCb2R5IH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdPdm9sdDo6UmVzcG9uc2VCb2R5JyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwicmVzcG9uc2VCb2R5XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LnJlc3BvbnNlQm9keSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gbmFtZT1cInt7ICdPdm9sdDo6U3RhdHVzQ29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIiBwcm9wPVwic3RhdHVzQ29kZVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5zdGF0dXNDb2RlIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdPdm9sdDo6UmVxdWVzdFRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJyZXF1ZXN0VGltZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5yZXF1ZXN0VGltZSB8IGRhdGUgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ092b2x0OjpSZXNwb25zZVRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJyZXNwb25zZVRpbWVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cucmVzcG9uc2VUaW1lIHwgZGF0ZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gICAgICA8L25neC1kYXRhdGFibGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9hYnAtcGFnZT5cclxuXHJcbjxhYnAtbW9kYWwgW2J1c3ldPVwiaXNNb2RhbEJ1c3lcIiBbKHZpc2libGUpXT1cImlzTW9kYWxPcGVuXCI+XHJcbiAgPG5nLXRlbXBsYXRlICNhYnBIZWFkZXI+XHJcbiAgICA8aDM+XHJcbiAgICAgIHt7IChzZWxlY3RlZCA/ICdBYnBVaTo6RWRpdCcgOiAnT3ZvbHQ6Ok5ld0Z1ZWxJbnRlZ3JhdGlvbkxvZycpIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2gzPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGlkPVwiZnVlbC1pbnRlZ3JhdGlvbi1sb2dcIiAobmdTdWJtaXQpPVwic3VibWl0Rm9ybSgpXCIgdmFsaWRhdGVPblN1Ym1pdD5cclxuICAgICAgPGRpdiBjbGFzcz1cIm10LTIgZmFkZS1pbi10b3BcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImZ1ZWwtaW50ZWdyYXRpb24tbG9nLXBhdGhcIj5cclxuICAgICAgICAgICAge3sgJ092b2x0OjpQYXRoJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJmdWVsLWludGVncmF0aW9uLWxvZy1wYXRoXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGF0aFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgYXV0b2ZvY3VzXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZnVlbC1pbnRlZ3JhdGlvbi1sb2ctbWV0aG9kXCI+XHJcbiAgICAgICAgICAgIHt7ICdPdm9sdDo6TWV0aG9kJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXQgaWQ9XCJmdWVsLWludGVncmF0aW9uLWxvZy1tZXRob2RcIiBmb3JtQ29udHJvbE5hbWU9XCJtZXRob2RcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJmdWVsLWludGVncmF0aW9uLWxvZy1yZXF1ZXN0LWJvZHlcIj5cclxuICAgICAgICAgICAge3sgJ092b2x0OjpSZXF1ZXN0Qm9keScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwiZnVlbC1pbnRlZ3JhdGlvbi1sb2ctcmVxdWVzdC1ib2R5XCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVxdWVzdEJvZHlcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZnVlbC1pbnRlZ3JhdGlvbi1sb2ctcmVzcG9uc2UtYm9keVwiPlxyXG4gICAgICAgICAgICB7eyAnT3ZvbHQ6OlJlc3BvbnNlQm9keScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwiZnVlbC1pbnRlZ3JhdGlvbi1sb2ctcmVzcG9uc2UtYm9keVwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJlc3BvbnNlQm9keVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJmdWVsLWludGVncmF0aW9uLWxvZy1zdGF0dXMtY29kZVwiPlxyXG4gICAgICAgICAgICB7eyAnT3ZvbHQ6OlN0YXR1c0NvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cImZ1ZWwtaW50ZWdyYXRpb24tbG9nLXN0YXR1cy1jb2RlXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic3RhdHVzQ29kZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJmdWVsLWludGVncmF0aW9uLWxvZy1yZXF1ZXN0LXRpbWVcIj5cclxuICAgICAgICAgICAge3sgJ092b2x0OjpSZXF1ZXN0VGltZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICBpZD1cImZ1ZWwtaW50ZWdyYXRpb24tbG9nLXJlcXVlc3QtdGltZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVxdWVzdFRpbWVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgI3JlcXVlc3RUaW1lSW5wdXRcclxuICAgICAgICAgICAgICAjcmVxdWVzdFRpbWVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJlcXVlc3RUaW1lRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJyZXF1ZXN0VGltZURhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJlcXVlc3RUaW1lSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICByZXF1ZXN0VGltZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgcmVxdWVzdFRpbWVEYXRlcGlja2VyLm1hbnVhbERhdGVDaGFuZ2UobnVsbCwgdHJ1ZSlcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImZ1ZWwtaW50ZWdyYXRpb24tbG9nLXJlc3BvbnNlLXRpbWVcIj5cclxuICAgICAgICAgICAge3sgJ092b2x0OjpSZXNwb25zZVRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgaWQ9XCJmdWVsLWludGVncmF0aW9uLWxvZy1yZXNwb25zZS10aW1lXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZXNwb25zZVRpbWVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgI3Jlc3BvbnNlVGltZUlucHV0XHJcbiAgICAgICAgICAgICAgI3Jlc3BvbnNlVGltZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwicmVzcG9uc2VUaW1lRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJyZXNwb25zZVRpbWVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZXNwb25zZVRpbWVJbnB1dC52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVGltZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGFicENsb3NlPlxyXG4gICAgICB7eyAnQWJwVWk6OkNhbmNlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxhYnAtYnV0dG9uIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCIgYnV0dG9uVHlwZT1cInN1Ym1pdFwiIGZvcm1OYW1lPVwiZnVlbC1pbnRlZ3JhdGlvbi1sb2dcIj5cclxuICAgICAge3sgJ0FicFVpOjpTYXZlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgPC9hYnAtYnV0dG9uPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvYWJwLW1vZGFsPlxyXG4iXX0=
@@ -23,4 +23,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
23
23
  exports: [RouterModule],
24
24
  }]
25
25
  }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVlbC1pbnRlZ3JhdGlvbi1sb2ctcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vdm9sdC9zcmMvbGliL2Z1ZWwtaW50ZWdyYXRpb24tbG9ncy9mdWVsLWludGVncmF0aW9uLWxvZy9mdWVsLWludGVncmF0aW9uLWxvZy1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7O0FBRTFGLE1BQU0sTUFBTSxHQUFXO0lBQ3JCO1FBQ0UsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsMkJBQTJCO1FBQ3RDLFdBQVcsRUFBRSxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUM7S0FDMUM7Q0FDRixDQUFDO0FBTUYsTUFBTSxPQUFPLCtCQUErQjs7NEhBQS9CLCtCQUErQjs2SEFBL0IsK0JBQStCLHdDQUZoQyxZQUFZOzZIQUVYLCtCQUErQixZQUhoQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUM3QixZQUFZOzJGQUVYLCtCQUErQjtrQkFKM0MsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aEd1YXJkLCBQZXJtaXNzaW9uR3VhcmQgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEZ1ZWxJbnRlZ3JhdGlvbkxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mdWVsLWludGVncmF0aW9uLWxvZy5jb21wb25lbnQnO1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICcnLFxuICAgIGNvbXBvbmVudDogRnVlbEludGVncmF0aW9uTG9nQ29tcG9uZW50LFxuICAgIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkLCBQZXJtaXNzaW9uR3VhcmRdLFxuICB9LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXSxcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEZ1ZWxJbnRlZ3JhdGlvbkxvZ1JvdXRpbmdNb2R1bGUge31cbiJdfQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVlbC1pbnRlZ3JhdGlvbi1sb2ctcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vdm9sdC9zcmMvbGliL2Z1ZWwtaW50ZWdyYXRpb24tbG9ncy9mdWVsLWludGVncmF0aW9uLWxvZy9mdWVsLWludGVncmF0aW9uLWxvZy1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7O0FBRTFGLE1BQU0sTUFBTSxHQUFXO0lBQ3JCO1FBQ0UsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsMkJBQTJCO1FBQ3RDLFdBQVcsRUFBRSxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUM7S0FDMUM7Q0FDRixDQUFDO0FBTUYsTUFBTSxPQUFPLCtCQUErQjs7NEhBQS9CLCtCQUErQjs2SEFBL0IsK0JBQStCLHdDQUZoQyxZQUFZOzZIQUVYLCtCQUErQixZQUhoQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUM3QixZQUFZOzJGQUVYLCtCQUErQjtrQkFKM0MsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aEd1YXJkLCBQZXJtaXNzaW9uR3VhcmQgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEZ1ZWxJbnRlZ3JhdGlvbkxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mdWVsLWludGVncmF0aW9uLWxvZy5jb21wb25lbnQnO1xyXG5cclxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXHJcbiAge1xyXG4gICAgcGF0aDogJycsXHJcbiAgICBjb21wb25lbnQ6IEZ1ZWxJbnRlZ3JhdGlvbkxvZ0NvbXBvbmVudCxcclxuICAgIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkLCBQZXJtaXNzaW9uR3VhcmRdLFxyXG4gIH0sXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXHJcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGdWVsSW50ZWdyYXRpb25Mb2dSb3V0aW5nTW9kdWxlIHt9XHJcbiJdfQ==
@@ -49,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
49
49
  export function loadFuelIntegrationLogModuleAsChild() {
50
50
  return Promise.resolve(FuelIntegrationLogModule);
51
51
  }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVlbC1pbnRlZ3JhdGlvbi1sb2cubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3ZvbHQvc3JjL2xpYi9mdWVsLWludGVncmF0aW9uLWxvZ3MvZnVlbC1pbnRlZ3JhdGlvbi1sb2cvZnVlbC1pbnRlZ3JhdGlvbi1sb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixpQkFBaUIsR0FDbEIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDMUYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7O0FBaUJ4RixNQUFNLE9BQU8sd0JBQXdCOztxSEFBeEIsd0JBQXdCO3NIQUF4Qix3QkFBd0IsaUJBZHBCLDJCQUEyQixhQUV4QywrQkFBK0I7UUFDL0IsVUFBVTtRQUNWLGlCQUFpQjtRQUNqQixrQkFBa0I7UUFDbEIscUJBQXFCO1FBQ3JCLGlCQUFpQjtRQUNqQixtQkFBbUI7UUFDbkIsaUJBQWlCO1FBRWpCLFVBQVU7c0hBR0Qsd0JBQXdCLFlBWmpDLCtCQUErQjtRQUMvQixVQUFVO1FBQ1YsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUNsQixxQkFBcUI7UUFDckIsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFFakIsVUFBVTsyRkFHRCx3QkFBd0I7a0JBZnBDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsMkJBQTJCLENBQUM7b0JBQzNDLE9BQU8sRUFBRTt3QkFDUCwrQkFBK0I7d0JBQy9CLFVBQVU7d0JBQ1YsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFFakIsVUFBVTtxQkFDWDtpQkFDRjs7QUFHRCxNQUFNLFVBQVUsbUNBQW1DO0lBQ2pELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBQ25ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFRoZW1lU2hhcmVkTW9kdWxlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE5nYkNvbGxhcHNlTW9kdWxlLFxuICBOZ2JEYXRlcGlja2VyTW9kdWxlLFxuICBOZ2JEcm9wZG93bk1vZHVsZSxcbn0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgTmd4VmFsaWRhdGVDb3JlTW9kdWxlIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcbmltcG9ydCB7IENvbW1lcmNpYWxVaU1vZHVsZSB9IGZyb20gJ0B2b2xvL2FicC5jb21tZXJjaWFsLm5nLnVpJztcbmltcG9ydCB7IFBhZ2VNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvbXBvbmVudHMvcGFnZSc7XG5pbXBvcnQgeyBGdWVsSW50ZWdyYXRpb25Mb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZnVlbC1pbnRlZ3JhdGlvbi1sb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEZ1ZWxJbnRlZ3JhdGlvbkxvZ1JvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2Z1ZWwtaW50ZWdyYXRpb24tbG9nLXJvdXRpbmcubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbRnVlbEludGVncmF0aW9uTG9nQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIEZ1ZWxJbnRlZ3JhdGlvbkxvZ1JvdXRpbmdNb2R1bGUsXG4gICAgQ29yZU1vZHVsZSxcbiAgICBUaGVtZVNoYXJlZE1vZHVsZSxcbiAgICBDb21tZXJjaWFsVWlNb2R1bGUsXG4gICAgTmd4VmFsaWRhdGVDb3JlTW9kdWxlLFxuICAgIE5nYkNvbGxhcHNlTW9kdWxlLFxuICAgIE5nYkRhdGVwaWNrZXJNb2R1bGUsXG4gICAgTmdiRHJvcGRvd25Nb2R1bGUsXG5cbiAgICBQYWdlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGdWVsSW50ZWdyYXRpb25Mb2dNb2R1bGUge31cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRGdWVsSW50ZWdyYXRpb25Mb2dNb2R1bGVBc0NoaWxkKCkge1xuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKEZ1ZWxJbnRlZ3JhdGlvbkxvZ01vZHVsZSk7XG59XG4iXX0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVlbC1pbnRlZ3JhdGlvbi1sb2cubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3ZvbHQvc3JjL2xpYi9mdWVsLWludGVncmF0aW9uLWxvZ3MvZnVlbC1pbnRlZ3JhdGlvbi1sb2cvZnVlbC1pbnRlZ3JhdGlvbi1sb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixpQkFBaUIsR0FDbEIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDMUYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7O0FBaUJ4RixNQUFNLE9BQU8sd0JBQXdCOztxSEFBeEIsd0JBQXdCO3NIQUF4Qix3QkFBd0IsaUJBZHBCLDJCQUEyQixhQUV4QywrQkFBK0I7UUFDL0IsVUFBVTtRQUNWLGlCQUFpQjtRQUNqQixrQkFBa0I7UUFDbEIscUJBQXFCO1FBQ3JCLGlCQUFpQjtRQUNqQixtQkFBbUI7UUFDbkIsaUJBQWlCO1FBRWpCLFVBQVU7c0hBR0Qsd0JBQXdCLFlBWmpDLCtCQUErQjtRQUMvQixVQUFVO1FBQ1YsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUNsQixxQkFBcUI7UUFDckIsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFFakIsVUFBVTsyRkFHRCx3QkFBd0I7a0JBZnBDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsMkJBQTJCLENBQUM7b0JBQzNDLE9BQU8sRUFBRTt3QkFDUCwrQkFBK0I7d0JBQy9CLFVBQVU7d0JBQ1YsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFFakIsVUFBVTtxQkFDWDtpQkFDRjs7QUFHRCxNQUFNLFVBQVUsbUNBQW1DO0lBQ2pELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBQ25ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgVGhlbWVTaGFyZWRNb2R1bGUgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgTmdiQ29sbGFwc2VNb2R1bGUsXHJcbiAgTmdiRGF0ZXBpY2tlck1vZHVsZSxcclxuICBOZ2JEcm9wZG93bk1vZHVsZSxcclxufSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IE5neFZhbGlkYXRlQ29yZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XHJcbmltcG9ydCB7IENvbW1lcmNpYWxVaU1vZHVsZSB9IGZyb20gJ0B2b2xvL2FicC5jb21tZXJjaWFsLm5nLnVpJztcclxuaW1wb3J0IHsgUGFnZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29tcG9uZW50cy9wYWdlJztcclxuaW1wb3J0IHsgRnVlbEludGVncmF0aW9uTG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Z1ZWwtaW50ZWdyYXRpb24tbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZ1ZWxJbnRlZ3JhdGlvbkxvZ1JvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2Z1ZWwtaW50ZWdyYXRpb24tbG9nLXJvdXRpbmcubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbRnVlbEludGVncmF0aW9uTG9nQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBGdWVsSW50ZWdyYXRpb25Mb2dSb3V0aW5nTW9kdWxlLFxyXG4gICAgQ29yZU1vZHVsZSxcclxuICAgIFRoZW1lU2hhcmVkTW9kdWxlLFxyXG4gICAgQ29tbWVyY2lhbFVpTW9kdWxlLFxyXG4gICAgTmd4VmFsaWRhdGVDb3JlTW9kdWxlLFxyXG4gICAgTmdiQ29sbGFwc2VNb2R1bGUsXHJcbiAgICBOZ2JEYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgTmdiRHJvcGRvd25Nb2R1bGUsXHJcblxyXG4gICAgUGFnZU1vZHVsZSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRnVlbEludGVncmF0aW9uTG9nTW9kdWxlIHt9XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZEZ1ZWxJbnRlZ3JhdGlvbkxvZ01vZHVsZUFzQ2hpbGQoKSB7XHJcbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShGdWVsSW50ZWdyYXRpb25Mb2dNb2R1bGUpO1xyXG59XHJcbiJdfQ==
@@ -12,8 +12,8 @@ const routes = [
12
12
  pathMatch: 'full',
13
13
  component: OvoltComponent,
14
14
  },
15
- { path: 'process-logs', loadChildren: loadHitProcessLogModuleAsChild },
16
15
  { path: 'system-parameters', loadChildren: loadHitSystemParameterModuleAsChild },
16
+ { path: 'process-logs', loadChildren: loadHitProcessLogModuleAsChild },
17
17
  { path: 'fuel-integration-logs', loadChildren: loadHitFuelIntegrationLogModuleAsChild },
18
18
  ];
19
19
  export class OvoltRoutingModule {
@@ -28,4 +28,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
28
28
  exports: [RouterModule],
29
29
  }]
30
30
  }] });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZvbHQtcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vdm9sdC9zcmMvbGliL292b2x0LXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUN0RyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUVySCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQzs7O0FBRWhJLE1BQU0sTUFBTSxHQUFXO0lBQ3JCO1FBQ0UsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsTUFBTTtRQUNqQixTQUFTLEVBQUUsY0FBYztLQUMxQjtJQUNELEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsOEJBQThCLEVBQUU7SUFDdEUsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLG1DQUFtQyxFQUFFO0lBQ2hGLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFFLFlBQVksRUFBRSxzQ0FBc0MsRUFBRTtDQUN4RixDQUFDO0FBTUYsTUFBTSxPQUFPLGtCQUFrQjs7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCLHdDQUZuQixZQUFZO2dIQUVYLGtCQUFrQixZQUhuQixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUM3QixZQUFZOzJGQUVYLGtCQUFrQjtrQkFKOUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE92b2x0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL292b2x0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBsb2FkUHJvY2Vzc0xvZ01vZHVsZUFzQ2hpbGQgfSBmcm9tICcuL3Byb2Nlc3MtbG9ncy9wcm9jZXNzLWxvZy9wcm9jZXNzLWxvZy5tb2R1bGUnO1xuaW1wb3J0IHsgbG9hZEhpdFByb2Nlc3NMb2dNb2R1bGVBc0NoaWxkIH0gZnJvbSAnLi9jb21wb25lbnRzL2hpdC1wcm9jZXNzLWxvZ3MvaGl0LXByb2Nlc3MtbG9nLm1vZHVsZSc7XG5pbXBvcnQgeyBsb2FkSGl0U3lzdGVtUGFyYW1ldGVyTW9kdWxlQXNDaGlsZCB9IGZyb20gJy4vY29tcG9uZW50cy9oaXQtc3lzdGVtLXBhcmFtZXRlcnMvaGl0LXN5c3RlbS1wYXJhbWV0ZXIubW9kdWxlJztcbmltcG9ydCB7IGxvYWRGdWVsSW50ZWdyYXRpb25Mb2dNb2R1bGVBc0NoaWxkIH0gZnJvbSAnLi9mdWVsLWludGVncmF0aW9uLWxvZ3MvZnVlbC1pbnRlZ3JhdGlvbi1sb2cvZnVlbC1pbnRlZ3JhdGlvbi1sb2cubW9kdWxlJztcbmltcG9ydCB7IGxvYWRIaXRGdWVsSW50ZWdyYXRpb25Mb2dNb2R1bGVBc0NoaWxkIH0gZnJvbSAnLi9jb21wb25lbnRzL2hpdC1mdWVsLWludGVncmF0aW9uLWxvZ3MvaGl0LWZ1ZWwtaW50ZWdyYXRpb24tbG9nLm1vZHVsZSc7XG5cbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJycsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgY29tcG9uZW50OiBPdm9sdENvbXBvbmVudCxcbiAgfSxcbiAgeyBwYXRoOiAncHJvY2Vzcy1sb2dzJywgbG9hZENoaWxkcmVuOiBsb2FkSGl0UHJvY2Vzc0xvZ01vZHVsZUFzQ2hpbGQgfSxcbiAgeyBwYXRoOiAnc3lzdGVtLXBhcmFtZXRlcnMnLCBsb2FkQ2hpbGRyZW46IGxvYWRIaXRTeXN0ZW1QYXJhbWV0ZXJNb2R1bGVBc0NoaWxkIH0sXG4gIHsgcGF0aDogJ2Z1ZWwtaW50ZWdyYXRpb24tbG9ncycsIGxvYWRDaGlsZHJlbjogbG9hZEhpdEZ1ZWxJbnRlZ3JhdGlvbkxvZ01vZHVsZUFzQ2hpbGQgfSxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBPdm9sdFJvdXRpbmdNb2R1bGUge31cbiJdfQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZvbHQtcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vdm9sdC9zcmMvbGliL292b2x0LXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUN0RyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUVySCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQzs7O0FBRWhJLE1BQU0sTUFBTSxHQUFXO0lBQ3JCO1FBQ0UsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsTUFBTTtRQUNqQixTQUFTLEVBQUUsY0FBYztLQUMxQjtJQUNELEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxtQ0FBbUMsRUFBRTtJQUNoRixFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLDhCQUE4QixFQUFFO0lBQ3RFLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFFLFlBQVksRUFBRSxzQ0FBc0MsRUFBRTtDQUN4RixDQUFDO0FBTUYsTUFBTSxPQUFPLGtCQUFrQjs7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCLHdDQUZuQixZQUFZO2dIQUVYLGtCQUFrQixZQUhuQixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUM3QixZQUFZOzJGQUVYLGtCQUFrQjtrQkFKOUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPdm9sdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9vdm9sdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBsb2FkUHJvY2Vzc0xvZ01vZHVsZUFzQ2hpbGQgfSBmcm9tICcuL3Byb2Nlc3MtbG9ncy9wcm9jZXNzLWxvZy9wcm9jZXNzLWxvZy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBsb2FkSGl0UHJvY2Vzc0xvZ01vZHVsZUFzQ2hpbGQgfSBmcm9tICcuL2NvbXBvbmVudHMvaGl0LXByb2Nlc3MtbG9ncy9oaXQtcHJvY2Vzcy1sb2cubW9kdWxlJztcclxuaW1wb3J0IHsgbG9hZEhpdFN5c3RlbVBhcmFtZXRlck1vZHVsZUFzQ2hpbGQgfSBmcm9tICcuL2NvbXBvbmVudHMvaGl0LXN5c3RlbS1wYXJhbWV0ZXJzL2hpdC1zeXN0ZW0tcGFyYW1ldGVyLm1vZHVsZSc7XHJcbmltcG9ydCB7IGxvYWRGdWVsSW50ZWdyYXRpb25Mb2dNb2R1bGVBc0NoaWxkIH0gZnJvbSAnLi9mdWVsLWludGVncmF0aW9uLWxvZ3MvZnVlbC1pbnRlZ3JhdGlvbi1sb2cvZnVlbC1pbnRlZ3JhdGlvbi1sb2cubW9kdWxlJztcclxuaW1wb3J0IHsgbG9hZEhpdEZ1ZWxJbnRlZ3JhdGlvbkxvZ01vZHVsZUFzQ2hpbGQgfSBmcm9tICcuL2NvbXBvbmVudHMvaGl0LWZ1ZWwtaW50ZWdyYXRpb24tbG9ncy9oaXQtZnVlbC1pbnRlZ3JhdGlvbi1sb2cubW9kdWxlJztcclxuXHJcbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xyXG4gIHtcclxuICAgIHBhdGg6ICcnLFxyXG4gICAgcGF0aE1hdGNoOiAnZnVsbCcsXHJcbiAgICBjb21wb25lbnQ6IE92b2x0Q29tcG9uZW50LFxyXG4gIH0sXHJcbiAgeyBwYXRoOiAnc3lzdGVtLXBhcmFtZXRlcnMnLCBsb2FkQ2hpbGRyZW46IGxvYWRIaXRTeXN0ZW1QYXJhbWV0ZXJNb2R1bGVBc0NoaWxkIH0sXHJcbiAgeyBwYXRoOiAncHJvY2Vzcy1sb2dzJywgbG9hZENoaWxkcmVuOiBsb2FkSGl0UHJvY2Vzc0xvZ01vZHVsZUFzQ2hpbGQgfSxcclxuICB7IHBhdGg6ICdmdWVsLWludGVncmF0aW9uLWxvZ3MnLCBsb2FkQ2hpbGRyZW46IGxvYWRIaXRGdWVsSW50ZWdyYXRpb25Mb2dNb2R1bGVBc0NoaWxkIH0sXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXHJcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPdm9sdFJvdXRpbmdNb2R1bGUge31cclxuIl19