@c8y/ngx-components 1021.2.0 → 1021.3.1

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 (42) hide show
  1. package/alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.component.d.ts +6 -3
  2. package/alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.component.d.ts.map +1 -1
  3. package/alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.service.d.ts +9 -0
  4. package/alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.service.d.ts.map +1 -0
  5. package/alarm-event-selector/custom-alarm-event-form/custom-alarm-event-form.component.d.ts +2 -1
  6. package/alarm-event-selector/custom-alarm-event-form/custom-alarm-event-form.component.d.ts.map +1 -1
  7. package/auth-configuration/sso-configuration/template-parts/basic-configuration.component.d.ts +1 -0
  8. package/auth-configuration/sso-configuration/template-parts/basic-configuration.component.d.ts.map +1 -1
  9. package/context-dashboard/context-dashboard.service.d.ts.map +1 -1
  10. package/core/common/get-group-icon.pipe.d.ts.map +1 -1
  11. package/core/common/global-config.service.d.ts +1 -1
  12. package/core/common/global-config.service.d.ts.map +1 -1
  13. package/device-profile/device-profile-list.component.d.ts +31 -14
  14. package/device-profile/device-profile-list.component.d.ts.map +1 -1
  15. package/esm2022/alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.component.mjs +24 -10
  16. package/esm2022/alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.service.mjs +20 -0
  17. package/esm2022/alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.mjs +1 -1
  18. package/esm2022/alarm-event-selector/alarm-event-selector.component.mjs +3 -3
  19. package/esm2022/alarm-event-selector/custom-alarm-event-form/custom-alarm-event-form.component.mjs +6 -3
  20. package/esm2022/auth-configuration/sso-configuration/template-parts/basic-configuration.component.mjs +5 -3
  21. package/esm2022/context-dashboard/context-dashboard.service.mjs +3 -2
  22. package/esm2022/core/common/get-group-icon.pipe.mjs +4 -1
  23. package/esm2022/core/common/global-config.service.mjs +3 -2
  24. package/esm2022/device-profile/device-profile-list.component.mjs +102 -27
  25. package/esm2022/repository/shared/repository.model.mjs +2 -1
  26. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +46 -13
  27. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs.map +1 -1
  28. package/fesm2022/c8y-ngx-components-auth-configuration.mjs +4 -2
  29. package/fesm2022/c8y-ngx-components-auth-configuration.mjs.map +1 -1
  30. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +2 -1
  31. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  32. package/fesm2022/c8y-ngx-components-device-profile.mjs +110 -35
  33. package/fesm2022/c8y-ngx-components-device-profile.mjs.map +1 -1
  34. package/fesm2022/c8y-ngx-components-repository-shared.mjs +1 -0
  35. package/fesm2022/c8y-ngx-components-repository-shared.mjs.map +1 -1
  36. package/fesm2022/c8y-ngx-components.mjs +5 -1
  37. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  38. package/locales/locales.pot +17 -2
  39. package/package.json +1 -1
  40. package/repository/shared/repository.model.d.ts +2 -1
  41. package/repository/shared/repository.model.d.ts.map +1 -1
  42. package/repository/shared/repository.service.d.ts +1 -1
@@ -1,47 +1,119 @@
1
- import { Component, forwardRef } from '@angular/core';
2
- import { Router } from '@angular/router';
3
- import { InventoryService } from '@c8y/client';
4
- import { AlertService, gettext, ModalService, PRODUCT_EXPERIENCE_EVENT_SOURCE, Status } from '@c8y/ngx-components';
1
+ import { Component, EventEmitter, forwardRef } from '@angular/core';
2
+ import { ActivatedRoute, Router } from '@angular/router';
3
+ import { AlertService, BuiltInActionType, DataGridService, gettext, ModalService, PRODUCT_EXPERIENCE_EVENT_SOURCE, Status } from '@c8y/ngx-components';
4
+ import { DeviceTypeGridColumn, RepositoryItemNameGridColumn, RepositoryService, RepositoryType } from '@c8y/ngx-components/repository/shared';
5
5
  import { TranslateService } from '@ngx-translate/core';
6
6
  import { cloneDeep } from 'lodash-es';
7
7
  import { BsModalService } from 'ngx-bootstrap/modal';
8
- import { BehaviorSubject } from 'rxjs';
9
- import { switchMap, tap } from 'rxjs/operators';
8
+ import { from } from 'rxjs';
9
+ import { map } from 'rxjs/operators';
10
10
  import { AddDeviceProfileComponent } from './add-device-profile.component';
11
11
  import { PRODUCT_EXPERIENCE_DEVICE_PROFILE } from './device-profile.model';
12
12
  import { DeviceProfileService } from './device-profile.service';
13
13
  import * as i0 from "@angular/core";
14
- import * as i1 from "@c8y/client";
15
- import * as i2 from "@ngx-translate/core";
16
- import * as i3 from "@c8y/ngx-components";
17
- import * as i4 from "ngx-bootstrap/modal";
14
+ import * as i1 from "@c8y/ngx-components/repository/shared";
15
+ import * as i2 from "@c8y/ngx-components";
16
+ import * as i3 from "ngx-bootstrap/modal";
17
+ import * as i4 from "@ngx-translate/core";
18
18
  import * as i5 from "@angular/router";
19
19
  import * as i6 from "./device-profile.service";
20
20
  import * as i7 from "@angular/common";
21
21
  export class DeviceProfileListComponent {
22
- constructor(inventoryService, translateService, modalService, alertService, bsModalService, router, deviceProfileService) {
23
- this.inventoryService = inventoryService;
24
- this.translateService = translateService;
22
+ constructor(repositoryService, gridService, modalService, bsModalService, translateService, alertService, router, activatedRoute, deviceProfileService) {
23
+ this.repositoryService = repositoryService;
24
+ this.gridService = gridService;
25
25
  this.modalService = modalService;
26
- this.alertService = alertService;
27
26
  this.bsModalService = bsModalService;
27
+ this.translateService = translateService;
28
+ this.alertService = alertService;
28
29
  this.router = router;
30
+ this.activatedRoute = activatedRoute;
29
31
  this.deviceProfileService = deviceProfileService;
30
- this.reloading = false;
31
- this.reload = new BehaviorSubject(null);
32
- this.deviceProfiles$ = this.reload.pipe(tap(() => (this.reloading = true)), switchMap(() => this.deviceProfileService.getDeviceProfiles()), tap(() => (this.reloading = false)));
32
+ this.sizeRequestDone = false;
33
+ this.refresh$ = new EventEmitter();
34
+ this.isDataPresent$ = from(this.repositoryService.listRepositoryEntries(RepositoryType.PROFILE, { skipLegacy: true })).pipe(map(({ data }) => data.length > 0));
35
+ this.columns = [
36
+ new RepositoryItemNameGridColumn({
37
+ filterLabel: gettext('Filter device profile by name'),
38
+ placeholder: gettext('ubuntu core')
39
+ }),
40
+ new DeviceTypeGridColumn({ filterLabel: gettext('Filter device profile by device type') })
41
+ ];
42
+ this.actionControls = [];
43
+ this.pagination = {
44
+ pageSize: 50,
45
+ currentPage: 1
46
+ };
33
47
  this.productExperienceEvent = {
34
48
  eventName: PRODUCT_EXPERIENCE_DEVICE_PROFILE.EVENTS.REPOSITORY,
35
49
  data: {
36
50
  component: PRODUCT_EXPERIENCE_DEVICE_PROFILE.COMPONENTS.DEVICE_PROFILE_LIST
37
51
  }
38
52
  };
53
+ this.noResultsMessage = gettext('No results to display.');
54
+ this.noDataMessage = gettext('No device profiles to display.');
55
+ this.noResultsSubtitle = gettext('Refine your search terms or check your spelling.');
56
+ this.noDataSubtitle = gettext('Add a new device profile by clicking below.');
57
+ this.serverSideDataCallback = this.onDataSourceModifier.bind(this);
39
58
  }
40
59
  ngOnInit() {
41
- this.loadDeviceProfiles();
60
+ this.actionControls.push({
61
+ type: BuiltInActionType.Edit,
62
+ callback: this.editDeviceProfile.bind(this)
63
+ });
64
+ this.actionControls.push({
65
+ type: 'duplicate',
66
+ icon: 'copy',
67
+ text: gettext('Duplicate'),
68
+ callback: this.duplicateDeviceProfile.bind(this)
69
+ });
70
+ this.actionControls.push({
71
+ type: BuiltInActionType.Delete,
72
+ callback: this.deleteDeviceProfile.bind(this)
73
+ });
42
74
  }
43
- loadDeviceProfiles() {
44
- this.reload.next();
75
+ async onDataSourceModifier(dataSourceModifier) {
76
+ const dataRequest = this.repositoryService.listRepositoryEntries(RepositoryType.PROFILE, {
77
+ query: this.gridService.getQueryObj(dataSourceModifier.columns),
78
+ skipDefaultOrder: true,
79
+ params: {
80
+ pageSize: dataSourceModifier.pagination.pageSize,
81
+ currentPage: dataSourceModifier.pagination.currentPage
82
+ }
83
+ });
84
+ const filtererdSizeRequest = this.repositoryService
85
+ .listRepositoryEntries(RepositoryType.PROFILE, {
86
+ skipDefaultOrder: true,
87
+ query: this.gridService.getQueryObj(dataSourceModifier.columns),
88
+ params: { pageSize: 1 }
89
+ })
90
+ .then(response => response?.paging?.totalPages);
91
+ this.sizeRequest = this.repositoryService
92
+ .listRepositoryEntries(RepositoryType.PROFILE, {
93
+ skipDefaultOrder: true,
94
+ params: { pageSize: 1 }
95
+ })
96
+ .then(response => {
97
+ this.sizeRequestDone = true;
98
+ return response?.paging?.totalPages;
99
+ });
100
+ const [dataResponse, size, filteredSize] = await Promise.all([
101
+ dataRequest,
102
+ this.sizeRequest,
103
+ filtererdSizeRequest
104
+ ]);
105
+ const { res, data, paging } = dataResponse;
106
+ const serverSideDataResult = {
107
+ res,
108
+ data,
109
+ paging,
110
+ filteredSize,
111
+ size
112
+ };
113
+ return serverSideDataResult;
114
+ }
115
+ editDeviceProfile(deviceProfile) {
116
+ this.router.navigate([deviceProfile.id], { relativeTo: this.activatedRoute });
45
117
  }
46
118
  async createDeviceProfile() {
47
119
  const modal = this.bsModalService.show(AddDeviceProfileComponent, {
@@ -86,28 +158,31 @@ export class DeviceProfileListComponent {
86
158
  ok: gettext('Delete')
87
159
  }, {}, this.productExperienceEvent);
88
160
  await this.delete(deviceProfile.id);
89
- this.reload.next();
161
+ this.refresh$.next();
90
162
  }
91
163
  catch (ex) {
92
164
  // do nothing
93
165
  }
94
166
  }
167
+ trackByName(_index, column) {
168
+ return column.name;
169
+ }
95
170
  async delete(profileId) {
96
171
  try {
97
- await this.inventoryService.delete(profileId);
172
+ await this.repositoryService.delete(profileId);
98
173
  this.alertService.success(gettext('Device profile deleted.'));
99
174
  }
100
175
  catch (ex) {
101
176
  this.alertService.addServerFailure(ex);
102
177
  }
103
178
  }
104
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DeviceProfileListComponent, deps: [{ token: i1.InventoryService }, { token: i2.TranslateService }, { token: i3.ModalService }, { token: i3.AlertService }, { token: i4.BsModalService }, { token: i5.Router }, { token: i6.DeviceProfileService }], target: i0.ɵɵFactoryTarget.Component }); }
179
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DeviceProfileListComponent, deps: [{ token: i1.RepositoryService }, { token: i2.DataGridService }, { token: i2.ModalService }, { token: i3.BsModalService }, { token: i4.TranslateService }, { token: i2.AlertService }, { token: i5.Router }, { token: i5.ActivatedRoute }, { token: i6.DeviceProfileService }], target: i0.ɵɵFactoryTarget.Component }); }
105
180
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DeviceProfileListComponent, selector: "c8y-device-profile-list", providers: [
106
181
  {
107
182
  provide: PRODUCT_EXPERIENCE_EVENT_SOURCE,
108
183
  useExisting: forwardRef(() => DeviceProfileListComponent)
109
184
  }
110
- ], ngImport: i0, template: "<c8y-title>{{ 'Device profiles' | translate }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-management\"\n label=\"{{ 'Management' | translate }}\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n icon=\"c8y-device-profile\"\n label=\"{{ 'Device profiles' | translate }}\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add device profile' | translate }}\"\n data-cy=\"device-profile-list--Add-device-profile\"\n (click)=\"createDeviceProfile()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add device profile' | translate }}\n </button>\n</c8y-action-bar-item>\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Reload' | translate }}\"\n (click)=\"loadDeviceProfiles()\"\n >\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': reloading }\"\n ></i>\n {{ 'Reload' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help\n src=\"/docs/device-management-application/managing-device-data/#managing-device-profiles\"\n></c8y-help>\n\n<c8y-ui-empty-state\n [icon]=\"'c8y-device-profile'\"\n [title]=\"'No device profiles available.' | translate\"\n [subtitle]=\"'Add a new device profile by clicking below.' | translate\"\n *ngIf=\"(deviceProfiles$ | async)?.data.length === 0\"\n>\n <p>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Add device profile' | translate }}\"\n (click)=\"createDeviceProfile()\"\n >\n {{ 'Add device profile' | translate }}\n </button>\n </p>\n</c8y-ui-empty-state>\n\n<!-- DEVICE PROFILES LIST -->\n<c8y-list-group class=\"m-b-24\">\n <c8y-li\n class=\"page-sticky-header hidden-xs\"\n [emptyActions]=\"true\"\n *ngIf=\"(deviceProfiles$ | async)?.data.length > 0\"\n >\n <c8y-li-icon>\n <i class=\"p-l-24\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-50\">\n <div class=\"col-6\">\n {{ 'Device profile' | translate }}\n </div>\n <div class=\"col-6\">\n {{ 'Device type' | translate }}\n </div>\n </c8y-li-body>\n </c8y-li>\n <c8y-li *c8yFor=\"let deviceProfile of deviceProfiles$\">\n <c8y-li-icon>\n <i c8yIcon=\"c8y-device-profile\"></i>\n </c8y-li-icon>\n\n <c8y-li-body class=\"content-flex-50\">\n <div\n class=\"col-6\"\n title=\"{{ deviceProfile.name }}\"\n >\n <button\n class=\"btn-clean max-width-inherit\"\n routerLink=\"/device-profiles/{{ deviceProfile.id }}\"\n >\n <span class=\"text-truncate\">\n {{ deviceProfile.name }}\n </span>\n </button>\n </div>\n <div\n class=\"col-6\"\n title=\"{{ deviceProfile.c8y_Filter?.type || '-' }}\"\n >\n <span\n class=\"text-label-small m-r-4 visible-xs\"\n translate\n >\n Device type\n </span>\n <span\n class=\"text-truncate\"\n *ngIf=\"deviceProfile.c8y_Filter?.type; else emptyText\"\n >\n {{ deviceProfile.c8y_Filter?.type }}\n </span>\n </div>\n <ng-template #emptyText>\n <small class=\"text-muted\">\n <em>\n {{ 'Undefined' | translate }}\n </em>\n </small>\n </ng-template>\n </c8y-li-body>\n\n <c8y-li-action\n icon=\"pencil\"\n routerLink=\"/device-profiles/{{ deviceProfile.id }}\"\n label=\"{{ 'Edit' | translate }}\"\n data-cy=\"device-profile-list--edit\"\n c8yProductExperience\n inherit\n ></c8y-li-action>\n <c8y-li-action\n icon=\"copy\"\n (click)=\"duplicateDeviceProfile(deviceProfile)\"\n data-cy=\"device-profile-list--duplicate\"\n label=\"{{ 'Duplicate' | translate }}\"\n c8yProductExperience\n inherit\n ></c8y-li-action>\n <c8y-li-action\n icon=\"delete\"\n (click)=\"deleteDeviceProfile(deviceProfile)\"\n data-cy=\"device-profile-list--delete\"\n label=\"{{ 'Delete' | translate }}\"\n c8yProductExperience\n inherit\n ></c8y-li-action>\n </c8y-li>\n</c8y-list-group>\n", dependencies: [{ kind: "component", type: i3.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "component", type: i3.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i3.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: i3.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i3.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "component", type: i3.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i3.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i3.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i3.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i3.ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "component", type: i3.ListItemActionComponent, selector: "c8y-list-item-action, c8y-li-action", inputs: ["label", "icon", "disabled"], outputs: ["click"] }, { kind: "directive", type: i3.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "component", type: i3.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }] }); }
185
+ ], ngImport: i0, template: "<c8y-title>{{ 'Device profiles' | translate }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-management\"\n label=\"{{ 'Management' | translate }}\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n icon=\"c8y-device-profile\"\n label=\"{{ 'Device profiles' | translate }}\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add device profile' | translate }}\"\n data-cy=\"device-profile-list--Add-device-profile\"\n (click)=\"createDeviceProfile()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add device profile' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help\n src=\"/docs/device-management-application/managing-device-data/#managing-device-profiles\"\n></c8y-help>\n\n<div class=\"content-fullpage border-top border-bottom\">\n <c8y-data-grid\n [title]=\"'Device profiles' | translate\"\n [refresh]=\"refresh$\"\n [pagination]=\"pagination\"\n [columns]=\"columns\"\n [actionControls]=\"actionControls\"\n [infiniteScroll]=\"'auto'\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n >\n <c8y-ui-empty-state\n [icon]=\"stats?.size > 0 ? 'search' : 'c8y-tools'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"stats?.size > 0 ? (noResultsSubtitle | translate) : (noDataSubtitle | translate)\"\n *emptyStateContext=\"let stats\"\n [horizontal]=\"stats?.size > 0\"\n >\n <p *ngIf=\"stats?.size === 0\">\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Add device profile' | translate }}\"\n type=\"button\"\n (click)=\"createDeviceProfile()\"\n >\n {{ 'Add device profile' | translate }}\n </button>\n </p>\n </c8y-ui-empty-state>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n </c8y-data-grid>\n</div>\n", dependencies: [{ kind: "component", type: i2.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "component", type: i2.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i2.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: i2.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i2.EmptyStateContextDirective, selector: "[emptyStateContext]" }, { kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "component", type: i2.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "component", type: i2.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i2.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
111
186
  }
112
187
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DeviceProfileListComponent, decorators: [{
113
188
  type: Component,
@@ -116,6 +191,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
116
191
  provide: PRODUCT_EXPERIENCE_EVENT_SOURCE,
117
192
  useExisting: forwardRef(() => DeviceProfileListComponent)
118
193
  }
119
- ], template: "<c8y-title>{{ 'Device profiles' | translate }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-management\"\n label=\"{{ 'Management' | translate }}\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n icon=\"c8y-device-profile\"\n label=\"{{ 'Device profiles' | translate }}\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add device profile' | translate }}\"\n data-cy=\"device-profile-list--Add-device-profile\"\n (click)=\"createDeviceProfile()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add device profile' | translate }}\n </button>\n</c8y-action-bar-item>\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Reload' | translate }}\"\n (click)=\"loadDeviceProfiles()\"\n >\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': reloading }\"\n ></i>\n {{ 'Reload' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help\n src=\"/docs/device-management-application/managing-device-data/#managing-device-profiles\"\n></c8y-help>\n\n<c8y-ui-empty-state\n [icon]=\"'c8y-device-profile'\"\n [title]=\"'No device profiles available.' | translate\"\n [subtitle]=\"'Add a new device profile by clicking below.' | translate\"\n *ngIf=\"(deviceProfiles$ | async)?.data.length === 0\"\n>\n <p>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Add device profile' | translate }}\"\n (click)=\"createDeviceProfile()\"\n >\n {{ 'Add device profile' | translate }}\n </button>\n </p>\n</c8y-ui-empty-state>\n\n<!-- DEVICE PROFILES LIST -->\n<c8y-list-group class=\"m-b-24\">\n <c8y-li\n class=\"page-sticky-header hidden-xs\"\n [emptyActions]=\"true\"\n *ngIf=\"(deviceProfiles$ | async)?.data.length > 0\"\n >\n <c8y-li-icon>\n <i class=\"p-l-24\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-50\">\n <div class=\"col-6\">\n {{ 'Device profile' | translate }}\n </div>\n <div class=\"col-6\">\n {{ 'Device type' | translate }}\n </div>\n </c8y-li-body>\n </c8y-li>\n <c8y-li *c8yFor=\"let deviceProfile of deviceProfiles$\">\n <c8y-li-icon>\n <i c8yIcon=\"c8y-device-profile\"></i>\n </c8y-li-icon>\n\n <c8y-li-body class=\"content-flex-50\">\n <div\n class=\"col-6\"\n title=\"{{ deviceProfile.name }}\"\n >\n <button\n class=\"btn-clean max-width-inherit\"\n routerLink=\"/device-profiles/{{ deviceProfile.id }}\"\n >\n <span class=\"text-truncate\">\n {{ deviceProfile.name }}\n </span>\n </button>\n </div>\n <div\n class=\"col-6\"\n title=\"{{ deviceProfile.c8y_Filter?.type || '-' }}\"\n >\n <span\n class=\"text-label-small m-r-4 visible-xs\"\n translate\n >\n Device type\n </span>\n <span\n class=\"text-truncate\"\n *ngIf=\"deviceProfile.c8y_Filter?.type; else emptyText\"\n >\n {{ deviceProfile.c8y_Filter?.type }}\n </span>\n </div>\n <ng-template #emptyText>\n <small class=\"text-muted\">\n <em>\n {{ 'Undefined' | translate }}\n </em>\n </small>\n </ng-template>\n </c8y-li-body>\n\n <c8y-li-action\n icon=\"pencil\"\n routerLink=\"/device-profiles/{{ deviceProfile.id }}\"\n label=\"{{ 'Edit' | translate }}\"\n data-cy=\"device-profile-list--edit\"\n c8yProductExperience\n inherit\n ></c8y-li-action>\n <c8y-li-action\n icon=\"copy\"\n (click)=\"duplicateDeviceProfile(deviceProfile)\"\n data-cy=\"device-profile-list--duplicate\"\n label=\"{{ 'Duplicate' | translate }}\"\n c8yProductExperience\n inherit\n ></c8y-li-action>\n <c8y-li-action\n icon=\"delete\"\n (click)=\"deleteDeviceProfile(deviceProfile)\"\n data-cy=\"device-profile-list--delete\"\n label=\"{{ 'Delete' | translate }}\"\n c8yProductExperience\n inherit\n ></c8y-li-action>\n </c8y-li>\n</c8y-list-group>\n" }]
120
- }], ctorParameters: () => [{ type: i1.InventoryService }, { type: i2.TranslateService }, { type: i3.ModalService }, { type: i3.AlertService }, { type: i4.BsModalService }, { type: i5.Router }, { type: i6.DeviceProfileService }] });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXByb2ZpbGUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9kZXZpY2UtcHJvZmlsZS9kZXZpY2UtcHJvZmlsZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2RldmljZS1wcm9maWxlL2RldmljZS1wcm9maWxlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBa0IsZ0JBQWdCLEVBQWUsTUFBTSxhQUFhLENBQUM7QUFDNUUsT0FBTyxFQUNMLFlBQVksRUFDWixPQUFPLEVBQ1AsWUFBWSxFQUdaLCtCQUErQixFQUMvQixNQUFNLEVBQ1AsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7OztBQVloRSxNQUFNLE9BQU8sMEJBQTBCO0lBZXJDLFlBQ1UsZ0JBQWtDLEVBQ2xDLGdCQUFrQyxFQUNsQyxZQUEwQixFQUMxQixZQUEwQixFQUMxQixj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WUFDWixJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDOzhHQXBHVSwwQkFBMEI7a0dBQTFCLDBCQUEwQixrREFQMUI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsK0JBQStCO2dCQUN4QyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDBCQUEwQixDQUFDO2FBQzFEO1NBQ0YsMEJDN0JILHNwSUFxSkE7OzJGRHRIYSwwQkFBMEI7a0JBVnRDLFNBQVM7K0JBQ0UseUJBQXlCLGFBRXhCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSwrQkFBK0I7NEJBQ3hDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDJCQUEyQixDQUFDO3lCQUMxRDtxQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QsIEludmVudG9yeVNlcnZpY2UsIElSZXN1bHRMaXN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQWxlcnRTZXJ2aWNlLFxuICBnZXR0ZXh0LFxuICBNb2RhbFNlcnZpY2UsXG4gIFByb2R1Y3RFeHBlcmllbmNlRXZlbnQsXG4gIFByb2R1Y3RFeHBlcmllbmNlRXZlbnRTb3VyY2UsXG4gIFBST0RVQ1RfRVhQRVJJRU5DRV9FVkVOVF9TT1VSQ0UsXG4gIFN0YXR1c1xufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFkZERldmljZVByb2ZpbGVDb21wb25lbnQgfSBmcm9tICcuL2FkZC1kZXZpY2UtcHJvZmlsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUFJPRFVDVF9FWFBFUklFTkNFX0RFVklDRV9QUk9GSUxFIH0gZnJvbSAnLi9kZXZpY2UtcHJvZmlsZS5tb2RlbCc7XG5pbXBvcnQgeyBEZXZpY2VQcm9maWxlU2VydmljZSB9IGZyb20gJy4vZGV2aWNlLXByb2ZpbGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1kZXZpY2UtcHJvZmlsZS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RldmljZS1wcm9maWxlLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBQUk9EVUNUX0VYUEVSSUVOQ0VfRVZFTlRfU09VUkNFLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGV2aWNlUHJvZmlsZUxpc3RDb21wb25lbnQpXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERldmljZVByb2ZpbGVMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBQcm9kdWN0RXhwZXJpZW5jZUV2ZW50U291cmNlIHtcbiAgcmVsb2FkaW5nID0gZmFsc2U7XG4gIHJlbG9hZDogQmVoYXZpb3JTdWJqZWN0PHZvaWQ+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgZGV2aWNlUHJvZmlsZXMkOiBPYnNlcnZhYmxlPElSZXN1bHRMaXN0PElNYW5hZ2VkT2JqZWN0Pj4gPSB0aGlzLnJlbG9hZC5waXBlKFxuICAgIHRhcCgoKSA9PiAodGhpcy5yZWxvYWRpbmcgPSB0cnVlKSksXG4gICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuZGV2aWNlUHJvZmlsZVNlcnZpY2UuZ2V0RGV2aWNlUHJvZmlsZXMoKSksXG4gICAgdGFwKCgpID0+ICh0aGlzLnJlbG9hZGluZyA9IGZhbHNlKSlcbiAgKTtcbiAgcHJvZHVjdEV4cGVyaWVuY2VFdmVudDogUHJvZHVjdEV4cGVyaWVuY2VFdmVudCA9IHtcbiAgICBldmVudE5hbWU6IFBST0RVQ1RfRVhQRVJJRU5DRV9ERVZJQ0VfUFJPRklMRS5FVkVOVFMuUkVQT1NJVE9SWSxcbiAgICBkYXRhOiB7XG4gICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRV9ERVZJQ0VfUFJPRklMRS5DT01QT05FTlRTLkRFVklDRV9QUk9GSUxFX0xJU1RcbiAgICB9XG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbnZlbnRvcnlTZXJ2aWNlOiBJbnZlbnRvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBic01vZGFsU2VydmljZTogQnNNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGRldmljZVByb2ZpbGVTZXJ2aWNlOiBEZXZpY2VQcm9maWxlU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5sb2FkRGV2aWNlUHJvZmlsZXMoKTtcbiAgfVxuXG4gIGxvYWREZXZpY2VQcm9maWxlcygpIHtcbiAgICB0aGlzLnJlbG9hZC5uZXh0KCk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVEZXZpY2VQcm9maWxlKCkge1xuICAgIGNvbnN0IG1vZGFsID0gdGhpcy5ic01vZGFsU2VydmljZS5zaG93KEFkZERldmljZVByb2ZpbGVDb21wb25lbnQsIHtcbiAgICAgIGNsYXNzOiAnbW9kYWwtc20nLFxuICAgICAgYXJpYURlc2NyaWJlZGJ5OiAnYWRkRGV2aWNlUHJvZmlsZU1vZGFsRGVzY3JpcHRpb24nLFxuICAgICAgYXJpYUxhYmVsbGVkQnk6ICdhZGREZXZpY2VQcm9maWxlTW9kYWxUaXRsZScsXG4gICAgICBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlLFxuICAgICAga2V5Ym9hcmQ6IGZhbHNlLFxuICAgICAgaW5pdGlhbFN0YXRlOiB7XG4gICAgICAgIHByb2R1Y3RFeHBlcmllbmNlRXZlbnQ6IHtcbiAgICAgICAgICAuLi50aGlzLnByb2R1Y3RFeHBlcmllbmNlRXZlbnQsXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgLi4udGhpcy5wcm9kdWN0RXhwZXJpZW5jZUV2ZW50LmRhdGEsXG4gICAgICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRV9ERVZJQ0VfUFJPRklMRS5DT01QT05FTlRTLkFERF9ERVZJQ0VfUFJPRklMRVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pLmNvbnRlbnQgYXMgQWRkRGV2aWNlUHJvZmlsZUNvbXBvbmVudDtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcHJvZmlsZUlkID0gYXdhaXQgbW9kYWwucmVzdWx0O1xuICAgICAgbW9kYWwuY2xvc2UoKTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYC9kZXZpY2UtcHJvZmlsZXMvJHtwcm9maWxlSWR9YCk7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIC8vIGRvIG5vdGhpbmdcbiAgICB9XG4gIH1cblxuICBhc3luYyBkdXBsaWNhdGVEZXZpY2VQcm9maWxlKGRldmljZVByb2ZpbGUpIHtcbiAgICBjb25zdCBjb3B5ID0gY2xvbmVEZWVwKGRldmljZVByb2ZpbGUpO1xuICAgIGNvcHkuaWQgPSBudWxsO1xuICAgIGNvcHkubmFtZSA9ICdEdXBsaWNhdGUgb2YgJyArIGRldmljZVByb2ZpbGUubmFtZTtcbiAgICBjb25zdCBtbyA9IChhd2FpdCB0aGlzLmRldmljZVByb2ZpbGVTZXJ2aWNlLmNyZWF0ZURldmljZVByb2ZpbGUoY29weSkpLmRhdGE7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChgL2RldmljZS1wcm9maWxlcy8ke21vLmlkfWApO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlRGV2aWNlUHJvZmlsZShkZXZpY2VQcm9maWxlKSB7XG4gICAgY29uc3QgZGV2aWNlUHJvZmlsZU5hbWUgPSBkZXZpY2VQcm9maWxlLm5hbWU7XG4gICAgY29uc3QgdGl0bGUgPSBnZXR0ZXh0KCdEZWxldGUgZGV2aWNlIHByb2ZpbGUnKTtcbiAgICBjb25zdCBjb25maXJtYXRpb25UZXh0ID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICBnZXR0ZXh0KCdZb3UgYXJlIGFib3V0IHRvIGRlbGV0ZSBhIGRldmljZSBwcm9maWxlIFwie3sgZGV2aWNlUHJvZmlsZU5hbWUgfX1cIi4nKSxcbiAgICAgIHsgZGV2aWNlUHJvZmlsZU5hbWUgfVxuICAgICk7XG4gICAgY29uc3QgZmluYWxRdWVzdGlvbiA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGdldHRleHQoJ0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/JykpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLm1vZGFsU2VydmljZS5jb25maXJtKFxuICAgICAgICB0aXRsZSxcbiAgICAgICAgYCR7Y29uZmlybWF0aW9uVGV4dH0gJHtmaW5hbFF1ZXN0aW9ufWAsXG4gICAgICAgIFN0YXR1cy5EQU5HRVIsXG4gICAgICAgIHtcbiAgICAgICAgICBvazogZ2V0dGV4dCgnRGVsZXRlJylcbiAgICAgICAgfSxcbiAgICAgICAge30sXG4gICAgICAgIHRoaXMucHJvZHVjdEV4cGVyaWVuY2VFdmVudFxuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMuZGVsZXRlKGRldmljZVByb2ZpbGUuaWQpO1xuICAgICAgdGhpcy5yZWxvYWQubmV4dCgpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAvLyBkbyBub3RoaW5nXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBkZWxldGUocHJvZmlsZUlkKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuaW52ZW50b3J5U2VydmljZS5kZWxldGUocHJvZmlsZUlkKTtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoZ2V0dGV4dCgnRGV2aWNlIHByb2ZpbGUgZGVsZXRlZC4nKSk7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXgpO1xuICAgIH1cbiAgfVxufVxuIiwiPGM4eS10aXRsZT57eyAnRGV2aWNlIHByb2ZpbGVzJyB8IHRyYW5zbGF0ZSB9fTwvYzh5LXRpdGxlPlxuXG48Yzh5LWJyZWFkY3J1bWI+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgaWNvbj1cImM4eS1tYW5hZ2VtZW50XCJcbiAgICBsYWJlbD1cInt7ICdNYW5hZ2VtZW50JyB8IHRyYW5zbGF0ZSB9fVwiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgaWNvbj1cImM4eS1kZXZpY2UtcHJvZmlsZVwiXG4gICAgbGFiZWw9XCJ7eyAnRGV2aWNlIHByb2ZpbGVzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG48L2M4eS1icmVhZGNydW1iPlxuXG48Yzh5LWFjdGlvbi1iYXItaXRlbSBbcGxhY2VtZW50XT1cIidyaWdodCdcIj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICB0aXRsZT1cInt7ICdBZGQgZGV2aWNlIHByb2ZpbGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICBkYXRhLWN5PVwiZGV2aWNlLXByb2ZpbGUtbGlzdC0tQWRkLWRldmljZS1wcm9maWxlXCJcbiAgICAoY2xpY2spPVwiY3JlYXRlRGV2aWNlUHJvZmlsZSgpXCJcbiAgPlxuICAgIDxpIGM4eUljb249XCJwbHVzLWNpcmNsZVwiPjwvaT5cbiAgICB7eyAnQWRkIGRldmljZSBwcm9maWxlJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cbjxjOHktYWN0aW9uLWJhci1pdGVtIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgIHRpdGxlPVwie3sgJ1JlbG9hZCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgIChjbGljayk9XCJsb2FkRGV2aWNlUHJvZmlsZXMoKVwiXG4gID5cbiAgICA8aVxuICAgICAgYzh5SWNvbj1cInJlZnJlc2hcIlxuICAgICAgW25nQ2xhc3NdPVwieyAnaWNvbi1zcGluJzogcmVsb2FkaW5nIH1cIlxuICAgID48L2k+XG4gICAge3sgJ1JlbG9hZCcgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktaGVscFxuICBzcmM9XCIvZG9jcy9kZXZpY2UtbWFuYWdlbWVudC1hcHBsaWNhdGlvbi9tYW5hZ2luZy1kZXZpY2UtZGF0YS8jbWFuYWdpbmctZGV2aWNlLXByb2ZpbGVzXCJcbj48L2M4eS1oZWxwPlxuXG48Yzh5LXVpLWVtcHR5LXN0YXRlXG4gIFtpY29uXT1cIidjOHktZGV2aWNlLXByb2ZpbGUnXCJcbiAgW3RpdGxlXT1cIidObyBkZXZpY2UgcHJvZmlsZXMgYXZhaWxhYmxlLicgfCB0cmFuc2xhdGVcIlxuICBbc3VidGl0bGVdPVwiJ0FkZCBhIG5ldyBkZXZpY2UgcHJvZmlsZSBieSBjbGlja2luZyBiZWxvdy4nIHwgdHJhbnNsYXRlXCJcbiAgKm5nSWY9XCIoZGV2aWNlUHJvZmlsZXMkIHwgYXN5bmMpPy5kYXRhLmxlbmd0aCA9PT0gMFwiXG4+XG4gIDxwPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgIHRpdGxlPVwie3sgJ0FkZCBkZXZpY2UgcHJvZmlsZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgKGNsaWNrKT1cImNyZWF0ZURldmljZVByb2ZpbGUoKVwiXG4gICAgPlxuICAgICAge3sgJ0FkZCBkZXZpY2UgcHJvZmlsZScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9wPlxuPC9jOHktdWktZW1wdHktc3RhdGU+XG5cbjwhLS0gREVWSUNFIFBST0ZJTEVTIExJU1QgLS0+XG48Yzh5LWxpc3QtZ3JvdXAgY2xhc3M9XCJtLWItMjRcIj5cbiAgPGM4eS1saVxuICAgIGNsYXNzPVwicGFnZS1zdGlja3ktaGVhZGVyIGhpZGRlbi14c1wiXG4gICAgW2VtcHR5QWN0aW9uc109XCJ0cnVlXCJcbiAgICAqbmdJZj1cIihkZXZpY2VQcm9maWxlcyQgfCBhc3luYyk/LmRhdGEubGVuZ3RoID4gMFwiXG4gID5cbiAgICA8Yzh5LWxpLWljb24+XG4gICAgICA8aSBjbGFzcz1cInAtbC0yNFwiPjwvaT5cbiAgICA8L2M4eS1saS1pY29uPlxuICAgIDxjOHktbGktYm9keSBjbGFzcz1cImNvbnRlbnQtZmxleC01MFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XG4gICAgICAgIHt7ICdEZXZpY2UgcHJvZmlsZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XG4gICAgICAgIHt7ICdEZXZpY2UgdHlwZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvYzh5LWxpLWJvZHk+XG4gIDwvYzh5LWxpPlxuICA8Yzh5LWxpICpjOHlGb3I9XCJsZXQgZGV2aWNlUHJvZmlsZSBvZiBkZXZpY2VQcm9maWxlcyRcIj5cbiAgICA8Yzh5LWxpLWljb24+XG4gICAgICA8aSBjOHlJY29uPVwiYzh5LWRldmljZS1wcm9maWxlXCI+PC9pPlxuICAgIDwvYzh5LWxpLWljb24+XG5cbiAgICA8Yzh5LWxpLWJvZHkgY2xhc3M9XCJjb250ZW50LWZsZXgtNTBcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjb2wtNlwiXG4gICAgICAgIHRpdGxlPVwie3sgZGV2aWNlUHJvZmlsZS5uYW1lIH19XCJcbiAgICAgID5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYnRuLWNsZWFuIG1heC13aWR0aC1pbmhlcml0XCJcbiAgICAgICAgICByb3V0ZXJMaW5rPVwiL2RldmljZS1wcm9maWxlcy97eyBkZXZpY2VQcm9maWxlLmlkIH19XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiPlxuICAgICAgICAgICAge3sgZGV2aWNlUHJvZmlsZS5uYW1lIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImNvbC02XCJcbiAgICAgICAgdGl0bGU9XCJ7eyBkZXZpY2VQcm9maWxlLmM4eV9GaWx0ZXI/LnR5cGUgfHwgJy0nIH19XCJcbiAgICAgID5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cInRleHQtbGFiZWwtc21hbGwgbS1yLTQgdmlzaWJsZS14c1wiXG4gICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgID5cbiAgICAgICAgICBEZXZpY2UgdHlwZVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCJcbiAgICAgICAgICAqbmdJZj1cImRldmljZVByb2ZpbGUuYzh5X0ZpbHRlcj8udHlwZTsgZWxzZSBlbXB0eVRleHRcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgZGV2aWNlUHJvZmlsZS5jOHlfRmlsdGVyPy50eXBlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eVRleHQ+XG4gICAgICAgIDxzbWFsbCBjbGFzcz1cInRleHQtbXV0ZWRcIj5cbiAgICAgICAgICA8ZW0+XG4gICAgICAgICAgICB7eyAnVW5kZWZpbmVkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvZW0+XG4gICAgICAgIDwvc21hbGw+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvYzh5LWxpLWJvZHk+XG5cbiAgICA8Yzh5LWxpLWFjdGlvblxuICAgICAgaWNvbj1cInBlbmNpbFwiXG4gICAgICByb3V0ZXJMaW5rPVwiL2RldmljZS1wcm9maWxlcy97eyBkZXZpY2VQcm9maWxlLmlkIH19XCJcbiAgICAgIGxhYmVsPVwie3sgJ0VkaXQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIGRhdGEtY3k9XCJkZXZpY2UtcHJvZmlsZS1saXN0LS1lZGl0XCJcbiAgICAgIGM4eVByb2R1Y3RFeHBlcmllbmNlXG4gICAgICBpbmhlcml0XG4gICAgPjwvYzh5LWxpLWFjdGlvbj5cbiAgICA8Yzh5LWxpLWFjdGlvblxuICAgICAgaWNvbj1cImNvcHlcIlxuICAgICAgKGNsaWNrKT1cImR1cGxpY2F0ZURldmljZVByb2ZpbGUoZGV2aWNlUHJvZmlsZSlcIlxuICAgICAgZGF0YS1jeT1cImRldmljZS1wcm9maWxlLWxpc3QtLWR1cGxpY2F0ZVwiXG4gICAgICBsYWJlbD1cInt7ICdEdXBsaWNhdGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIGM4eVByb2R1Y3RFeHBlcmllbmNlXG4gICAgICBpbmhlcml0XG4gICAgPjwvYzh5LWxpLWFjdGlvbj5cbiAgICA8Yzh5LWxpLWFjdGlvblxuICAgICAgaWNvbj1cImRlbGV0ZVwiXG4gICAgICAoY2xpY2spPVwiZGVsZXRlRGV2aWNlUHJvZmlsZShkZXZpY2VQcm9maWxlKVwiXG4gICAgICBkYXRhLWN5PVwiZGV2aWNlLXByb2ZpbGUtbGlzdC0tZGVsZXRlXCJcbiAgICAgIGxhYmVsPVwie3sgJ0RlbGV0ZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgYzh5UHJvZHVjdEV4cGVyaWVuY2VcbiAgICAgIGluaGVyaXRcbiAgICA+PC9jOHktbGktYWN0aW9uPlxuICA8L2M4eS1saT5cbjwvYzh5LWxpc3QtZ3JvdXA+XG4iXX0=
194
+ ], template: "<c8y-title>{{ 'Device profiles' | translate }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-management\"\n label=\"{{ 'Management' | translate }}\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n icon=\"c8y-device-profile\"\n label=\"{{ 'Device profiles' | translate }}\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add device profile' | translate }}\"\n data-cy=\"device-profile-list--Add-device-profile\"\n (click)=\"createDeviceProfile()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add device profile' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help\n src=\"/docs/device-management-application/managing-device-data/#managing-device-profiles\"\n></c8y-help>\n\n<div class=\"content-fullpage border-top border-bottom\">\n <c8y-data-grid\n [title]=\"'Device profiles' | translate\"\n [refresh]=\"refresh$\"\n [pagination]=\"pagination\"\n [columns]=\"columns\"\n [actionControls]=\"actionControls\"\n [infiniteScroll]=\"'auto'\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n >\n <c8y-ui-empty-state\n [icon]=\"stats?.size > 0 ? 'search' : 'c8y-tools'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"stats?.size > 0 ? (noResultsSubtitle | translate) : (noDataSubtitle | translate)\"\n *emptyStateContext=\"let stats\"\n [horizontal]=\"stats?.size > 0\"\n >\n <p *ngIf=\"stats?.size === 0\">\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Add device profile' | translate }}\"\n type=\"button\"\n (click)=\"createDeviceProfile()\"\n >\n {{ 'Add device profile' | translate }}\n </button>\n </p>\n </c8y-ui-empty-state>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n </c8y-data-grid>\n</div>\n" }]
195
+ }], ctorParameters: () => [{ type: i1.RepositoryService }, { type: i2.DataGridService }, { type: i2.ModalService }, { type: i3.BsModalService }, { type: i4.TranslateService }, { type: i2.AlertService }, { type: i5.Router }, { type: i5.ActivatedRoute }, { type: i6.DeviceProfileService }] });
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXByb2ZpbGUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9kZXZpY2UtcHJvZmlsZS9kZXZpY2UtcHJvZmlsZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2RldmljZS1wcm9maWxlL2RldmljZS1wcm9maWxlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekQsT0FBTyxFQUVMLFlBQVksRUFDWixpQkFBaUIsRUFFakIsZUFBZSxFQUVmLE9BQU8sRUFDUCxZQUFZLEVBQ1osK0JBQStCLEVBSS9CLE1BQU0sRUFDUCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsNEJBQTRCLEVBQzVCLGlCQUFpQixFQUNqQixjQUFjLEVBQ2YsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7O0FBWWhFLE1BQU0sT0FB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QkFBeUIsYUFFeEI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLCtCQUErQjs0QkFDeEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMkJBQTJCLENBQUM7eUJBQzFEO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCwgSVJlc3VsdExpc3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBBY3Rpb25Db250cm9sLFxuICBBbGVydFNlcnZpY2UsXG4gIEJ1aWx0SW5BY3Rpb25UeXBlLFxuICBDb2x1bW4sXG4gIERhdGFHcmlkU2VydmljZSxcbiAgRGF0YVNvdXJjZU1vZGlmaWVyLFxuICBnZXR0ZXh0LFxuICBNb2RhbFNlcnZpY2UsXG4gIFBST0RVQ1RfRVhQRVJJRU5DRV9FVkVOVF9TT1VSQ0UsXG4gIFByb2R1Y3RFeHBlcmllbmNlRXZlbnQsXG4gIFNlcnZlclNpZGVEYXRhQ2FsbGJhY2ssXG4gIFNlcnZlclNpZGVEYXRhUmVzdWx0LFxuICBTdGF0dXNcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBEZXZpY2VUeXBlR3JpZENvbHVtbixcbiAgUmVwb3NpdG9yeUl0ZW1OYW1lR3JpZENvbHVtbixcbiAgUmVwb3NpdG9yeVNlcnZpY2UsXG4gIFJlcG9zaXRvcnlUeXBlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcmVwb3NpdG9yeS9zaGFyZWQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBZGREZXZpY2VQcm9maWxlQ29tcG9uZW50IH0gZnJvbSAnLi9hZGQtZGV2aWNlLXByb2ZpbGUuY29tcG9uZW50JztcbmltcG9ydCB7IFBST0RVQ1RfRVhQRVJJRU5DRV9ERVZJQ0VfUFJPRklMRSB9IGZyb20gJy4vZGV2aWNlLXByb2ZpbGUubW9kZWwnO1xuaW1wb3J0IHsgRGV2aWNlUHJvZmlsZVNlcnZpY2UgfSBmcm9tICcuL2RldmljZS1wcm9maWxlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktZGV2aWNlLXByb2ZpbGUtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kZXZpY2UtcHJvZmlsZS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogUFJPRFVDVF9FWFBFUklFTkNFX0VWRU5UX1NPVVJDRSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERldmljZVByb2ZpbGVMaXN0Q29tcG9uZW50KVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEZXZpY2VQcm9maWxlTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHNpemVSZXF1ZXN0OiBQcm9taXNlPG51bWJlcj47XG4gIHNpemVSZXF1ZXN0RG9uZSA9IGZhbHNlO1xuICByZWZyZXNoJDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBpc0RhdGFQcmVzZW50JDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IGZyb20oXG4gICAgdGhpcy5yZXBvc2l0b3J5U2VydmljZS5saXN0UmVwb3NpdG9yeUVudHJpZXMoUmVwb3NpdG9yeVR5cGUuUFJPRklMRSwgeyBza2lwTGVnYWN5OiB0cnVlIH0pXG4gICkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhLmxlbmd0aCA+IDApKTtcblxuICBjb2x1bW5zOiBDb2x1bW5bXSA9IFtcbiAgICBuZXcgUmVwb3NpdG9yeUl0ZW1OYW1lR3JpZENvbHVtbih7XG4gICAgICBmaWx0ZXJMYWJlbDogZ2V0dGV4dCgnRmlsdGVyIGRldmljZSBwcm9maWxlIGJ5IG5hbWUnKSxcbiAgICAgIHBsYWNlaG9sZGVyOiBnZXR0ZXh0KCd1YnVudHUgY29yZScpXG4gICAgfSksXG4gICAgbmV3IERldmljZVR5cGVHcmlkQ29sdW1uKHsgZmlsdGVyTGFiZWw6IGdldHRleHQoJ0ZpbHRlciBkZXZpY2UgcHJvZmlsZSBieSBkZXZpY2UgdHlwZScpIH0pXG4gIF07XG4gIGFjdGlvbkNvbnRyb2xzOiBBY3Rpb25Db250cm9sW10gPSBbXTtcbiAgc2VydmVyU2lkZURhdGFDYWxsYmFjazogU2VydmVyU2lkZURhdGFDYWxsYmFjaztcbiAgcGFnaW5hdGlvbiA9IHtcbiAgICBwYWdlU2l6ZTogNTAsXG4gICAgY3VycmVudFBhZ2U6IDFcbiAgfTtcbiAgcHJvZHVjdEV4cGVyaWVuY2VFdmVudDogUHJvZHVjdEV4cGVyaWVuY2VFdmVudCA9IHtcbiAgICBldmVudE5hbWU6IFBST0RVQ1RfRVhQRVJJRU5DRV9ERVZJQ0VfUFJPRklMRS5FVkVOVFMuUkVQT1NJVE9SWSxcbiAgICBkYXRhOiB7XG4gICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRV9ERVZJQ0VfUFJPRklMRS5DT01QT05FTlRTLkRFVklDRV9QUk9GSUxFX0xJU1RcbiAgICB9XG4gIH07XG5cbiAgbm9SZXN1bHRzTWVzc2FnZSA9IGdldHRleHQoJ05vIHJlc3VsdHMgdG8gZGlzcGxheS4nKTtcbiAgbm9EYXRhTWVzc2FnZSA9IGdldHRleHQoJ05vIGRldmljZSBwcm9maWxlcyB0byBkaXNwbGF5LicpO1xuICBub1Jlc3VsdHNTdWJ0aXRsZSA9IGdldHRleHQoJ1JlZmluZSB5b3VyIHNlYXJjaCB0ZXJtcyBvciBjaGVjayB5b3VyIHNwZWxsaW5nLicpO1xuICBub0RhdGFTdWJ0aXRsZSA9IGdldHRleHQoJ0FkZCBhIG5ldyBkZXZpY2UgcHJvZmlsZSBieSBjbGlja2luZyBiZWxvdy4nKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlcG9zaXRvcnlTZXJ2aWNlOiBSZXBvc2l0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGdyaWRTZXJ2aWNlOiBEYXRhR3JpZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIGJzTW9kYWxTZXJ2aWNlOiBCc01vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgZGV2aWNlUHJvZmlsZVNlcnZpY2U6IERldmljZVByb2ZpbGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuc2VydmVyU2lkZURhdGFDYWxsYmFjayA9IHRoaXMub25EYXRhU291cmNlTW9kaWZpZXIuYmluZCh0aGlzKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aW9uQ29udHJvbHMucHVzaCh7XG4gICAgICB0eXBlOiBCdWlsdEluQWN0aW9uVHlwZS5FZGl0LFxuICAgICAgY2FsbGJhY2s6IHRoaXMuZWRpdERldmljZVByb2ZpbGUuYmluZCh0aGlzKVxuICAgIH0pO1xuICAgIHRoaXMuYWN0aW9uQ29udHJvbHMucHVzaCh7XG4gICAgICB0eXBlOiAnZHVwbGljYXRlJyxcbiAgICAgIGljb246ICdjb3B5JyxcbiAgICAgIHRleHQ6IGdldHRleHQoJ0R1cGxpY2F0ZScpLFxuICAgICAgY2FsbGJhY2s6IHRoaXMuZHVwbGljYXRlRGV2aWNlUHJvZmlsZS5iaW5kKHRoaXMpXG4gICAgfSk7XG4gICAgdGhpcy5hY3Rpb25Db250cm9scy5wdXNoKHtcbiAgICAgIHR5cGU6IEJ1aWx0SW5BY3Rpb25UeXBlLkRlbGV0ZSxcbiAgICAgIGNhbGxiYWNrOiB0aGlzLmRlbGV0ZURldmljZVByb2ZpbGUuYmluZCh0aGlzKVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgb25EYXRhU291cmNlTW9kaWZpZXIoXG4gICAgZGF0YVNvdXJjZU1vZGlmaWVyOiBEYXRhU291cmNlTW9kaWZpZXJcbiAgKTogUHJvbWlzZTxTZXJ2ZXJTaWRlRGF0YVJlc3VsdD4ge1xuICAgIGNvbnN0IGRhdGFSZXF1ZXN0OiBQcm9taXNlPElSZXN1bHRMaXN0PElNYW5hZ2VkT2JqZWN0Pj4gPVxuICAgICAgdGhpcy5yZXBvc2l0b3J5U2VydmljZS5saXN0UmVwb3NpdG9yeUVudHJpZXMoUmVwb3NpdG9yeVR5cGUuUFJPRklMRSwge1xuICAgICAgICBxdWVyeTogdGhpcy5ncmlkU2VydmljZS5nZXRRdWVyeU9iaihkYXRhU291cmNlTW9kaWZpZXIuY29sdW1ucyksXG4gICAgICAgIHNraXBEZWZhdWx0T3JkZXI6IHRydWUsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIHBhZ2VTaXplOiBkYXRhU291cmNlTW9kaWZpZXIucGFnaW5hdGlvbi5wYWdlU2l6ZSxcbiAgICAgICAgICBjdXJyZW50UGFnZTogZGF0YVNvdXJjZU1vZGlmaWVyLnBhZ2luYXRpb24uY3VycmVudFBhZ2VcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBjb25zdCBmaWx0ZXJlcmRTaXplUmVxdWVzdDogUHJvbWlzZTxudW1iZXI+ID0gdGhpcy5yZXBvc2l0b3J5U2VydmljZVxuICAgICAgLmxpc3RSZXBvc2l0b3J5RW50cmllcyhSZXBvc2l0b3J5VHlwZS5QUk9GSUxFLCB7XG4gICAgICAgIHNraXBEZWZhdWx0T3JkZXI6IHRydWUsXG4gICAgICAgIHF1ZXJ5OiB0aGlzLmdyaWRTZXJ2aWNlLmdldFF1ZXJ5T2JqKGRhdGFTb3VyY2VNb2RpZmllci5jb2x1bW5zKSxcbiAgICAgICAgcGFyYW1zOiB7IHBhZ2VTaXplOiAxIH1cbiAgICAgIH0pXG4gICAgICAudGhlbihyZXNwb25zZSA9PiByZXNwb25zZT8ucGFnaW5nPy50b3RhbFBhZ2VzKTtcblxuICAgIHRoaXMuc2l6ZVJlcXVlc3QgPSB0aGlzLnJlcG9zaXRvcnlTZXJ2aWNlXG4gICAgICAubGlzdFJlcG9zaXRvcnlFbnRyaWVzKFJlcG9zaXRvcnlUeXBlLlBST0ZJTEUsIHtcbiAgICAgICAgc2tpcERlZmF1bHRPcmRlcjogdHJ1ZSxcbiAgICAgICAgcGFyYW1zOiB7IHBhZ2VTaXplOiAxIH1cbiAgICAgIH0pXG4gICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgIHRoaXMuc2l6ZVJlcXVlc3REb25lID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlPy5wYWdpbmc/LnRvdGFsUGFnZXM7XG4gICAgICB9KTtcblxuICAgIGNvbnN0IFtkYXRhUmVzcG9uc2UsIHNpemUsIGZpbHRlcmVkU2l6ZV0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICBkYXRhUmVxdWVzdCxcbiAgICAgIHRoaXMuc2l6ZVJlcXVlc3QsXG4gICAgICBmaWx0ZXJlcmRTaXplUmVxdWVzdFxuICAgIF0pO1xuXG4gICAgY29uc3QgeyByZXMsIGRhdGEsIHBhZ2luZyB9ID0gZGF0YVJlc3BvbnNlO1xuXG4gICAgY29uc3Qgc2VydmVyU2lkZURhdGFSZXN1bHQ6IFNlcnZlclNpZGVEYXRhUmVzdWx0ID0ge1xuICAgICAgcmVzLFxuICAgICAgZGF0YSxcbiAgICAgIHBhZ2luZyxcbiAgICAgIGZpbHRlcmVkU2l6ZSxcbiAgICAgIHNpemVcbiAgICB9O1xuXG4gICAgcmV0dXJuIHNlcnZlclNpZGVEYXRhUmVzdWx0O1xuICB9XG5cbiAgZWRpdERldmljZVByb2ZpbGUoZGV2aWNlUHJvZmlsZTogUGFydGlhbDxJTWFuYWdlZE9iamVjdD4pIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbZGV2aWNlUHJvZmlsZS5pZF0sIHsgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZSB9KTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZURldmljZVByb2ZpbGUoKSB7XG4gICAgY29uc3QgbW9kYWwgPSB0aGlzLmJzTW9kYWxTZXJ2aWNlLnNob3coQWRkRGV2aWNlUHJvZmlsZUNvbXBvbmVudCwge1xuICAgICAgY2xhc3M6ICdtb2RhbC1zbScsXG4gICAgICBhcmlhRGVzY3JpYmVkYnk6ICdhZGREZXZpY2VQcm9maWxlTW9kYWxEZXNjcmlwdGlvbicsXG4gICAgICBhcmlhTGFiZWxsZWRCeTogJ2FkZERldmljZVByb2ZpbGVNb2RhbFRpdGxlJyxcbiAgICAgIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWUsXG4gICAgICBrZXlib2FyZDogZmFsc2UsXG4gICAgICBpbml0aWFsU3RhdGU6IHtcbiAgICAgICAgcHJvZHVjdEV4cGVyaWVuY2VFdmVudDoge1xuICAgICAgICAgIC4uLnRoaXMucHJvZHVjdEV4cGVyaWVuY2VFdmVudCxcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAuLi50aGlzLnByb2R1Y3RFeHBlcmllbmNlRXZlbnQuZGF0YSxcbiAgICAgICAgICAgIGNvbXBvbmVudDogUFJPRFVDVF9FWFBFUklFTkNFX0RFVklDRV9QUk9GSUxFLkNPTVBPTkVOVFMuQUREX0RFVklDRV9QUk9GSUxFXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkuY29udGVudCBhcyBBZGREZXZpY2VQcm9maWxlQ29tcG9uZW50O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwcm9maWxlSWQgPSBhd2FpdCBtb2RhbC5yZXN1bHQ7XG4gICAgICBtb2RhbC5jbG9zZSgpO1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChgL2RldmljZS1wcm9maWxlcy8ke3Byb2ZpbGVJZH1gKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgLy8gZG8gbm90aGluZ1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGR1cGxpY2F0ZURldmljZVByb2ZpbGUoZGV2aWNlUHJvZmlsZSkge1xuICAgIGNvbnN0IGNvcHkgPSBjbG9uZURlZXAoZGV2aWNlUHJvZmlsZSk7XG4gICAgY29weS5pZCA9IG51bGw7XG4gICAgY29weS5uYW1lID0gJ0R1cGxpY2F0ZSBvZiAnICsgZGV2aWNlUHJvZmlsZS5uYW1lO1xuICAgIGNvbnN0IG1vID0gKGF3YWl0IHRoaXMuZGV2aWNlUHJvZmlsZVNlcnZpY2UuY3JlYXRlRGV2aWNlUHJvZmlsZShjb3B5KSkuZGF0YTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAvZGV2aWNlLXByb2ZpbGVzLyR7bW8uaWR9YCk7XG4gIH1cblxuICBhc3luYyBkZWxldGVEZXZpY2VQcm9maWxlKGRldmljZVByb2ZpbGUpIHtcbiAgICBjb25zdCBkZXZpY2VQcm9maWxlTmFtZSA9IGRldmljZVByb2ZpbGUubmFtZTtcbiAgICBjb25zdCB0aXRsZSA9IGdldHRleHQoJ0RlbGV0ZSBkZXZpY2UgcHJvZmlsZScpO1xuICAgIGNvbnN0IGNvbmZpcm1hdGlvblRleHQgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgIGdldHRleHQoJ1lvdSBhcmUgYWJvdXQgdG8gZGVsZXRlIGEgZGV2aWNlIHByb2ZpbGUgXCJ7eyBkZXZpY2VQcm9maWxlTmFtZSB9fVwiLicpLFxuICAgICAgeyBkZXZpY2VQcm9maWxlTmFtZSB9XG4gICAgKTtcbiAgICBjb25zdCBmaW5hbFF1ZXN0aW9uID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nKSk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMubW9kYWxTZXJ2aWNlLmNvbmZpcm0oXG4gICAgICAgIHRpdGxlLFxuICAgICAgICBgJHtjb25maXJtYXRpb25UZXh0fSAke2ZpbmFsUXVlc3Rpb259YCxcbiAgICAgICAgU3RhdHVzLkRBTkdFUixcbiAgICAgICAge1xuICAgICAgICAgIG9rOiBnZXR0ZXh0KCdEZWxldGUnKVxuICAgICAgICB9LFxuICAgICAgICB7fSxcbiAgICAgICAgdGhpcy5wcm9kdWN0RXhwZXJpZW5jZUV2ZW50XG4gICAgICApO1xuICAgICAgYXdhaXQgdGhpcy5kZWxldGUoZGV2aWNlUHJvZmlsZS5pZCk7XG4gICAgICB0aGlzLnJlZnJlc2gkLm5leHQoKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgLy8gZG8gbm90aGluZ1xuICAgIH1cbiAgfVxuXG4gIHRyYWNrQnlOYW1lKF9pbmRleCwgY29sdW1uOiBDb2x1bW4pOiBzdHJpbmcge1xuICAgIHJldHVybiBjb2x1bW4ubmFtZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZGVsZXRlKHByb2ZpbGVJZCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnJlcG9zaXRvcnlTZXJ2aWNlLmRlbGV0ZShwcm9maWxlSWQpO1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2VzcyhnZXR0ZXh0KCdEZXZpY2UgcHJvZmlsZSBkZWxldGVkLicpKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShleCk7XG4gICAgfVxuICB9XG59XG4iLCI8Yzh5LXRpdGxlPnt7ICdEZXZpY2UgcHJvZmlsZXMnIHwgdHJhbnNsYXRlIH19PC9jOHktdGl0bGU+XG5cbjxjOHktYnJlYWRjcnVtYj5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBpY29uPVwiYzh5LW1hbmFnZW1lbnRcIlxuICAgIGxhYmVsPVwie3sgJ01hbmFnZW1lbnQnIHwgdHJhbnNsYXRlIH19XCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBpY29uPVwiYzh5LWRldmljZS1wcm9maWxlXCJcbiAgICBsYWJlbD1cInt7ICdEZXZpY2UgcHJvZmlsZXMnIHwgdHJhbnNsYXRlIH19XCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbjwvYzh5LWJyZWFkY3J1bWI+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgIHRpdGxlPVwie3sgJ0FkZCBkZXZpY2UgcHJvZmlsZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgIGRhdGEtY3k9XCJkZXZpY2UtcHJvZmlsZS1saXN0LS1BZGQtZGV2aWNlLXByb2ZpbGVcIlxuICAgIChjbGljayk9XCJjcmVhdGVEZXZpY2VQcm9maWxlKClcIlxuICA+XG4gICAgPGkgYzh5SWNvbj1cInBsdXMtY2lyY2xlXCI+PC9pPlxuICAgIHt7ICdBZGQgZGV2aWNlIHByb2ZpbGUnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48Yzh5LWhlbHBcbiAgc3JjPVwiL2RvY3MvZGV2aWNlLW1hbmFnZW1lbnQtYXBwbGljYXRpb24vbWFuYWdpbmctZGV2aWNlLWRhdGEvI21hbmFnaW5nLWRldmljZS1wcm9maWxlc1wiXG4+PC9jOHktaGVscD5cblxuPGRpdiBjbGFzcz1cImNvbnRlbnQtZnVsbHBhZ2UgYm9yZGVyLXRvcCBib3JkZXItYm90dG9tXCI+XG4gIDxjOHktZGF0YS1ncmlkXG4gICAgW3RpdGxlXT1cIidEZXZpY2UgcHJvZmlsZXMnIHwgdHJhbnNsYXRlXCJcbiAgICBbcmVmcmVzaF09XCJyZWZyZXNoJFwiXG4gICAgW3BhZ2luYXRpb25dPVwicGFnaW5hdGlvblwiXG4gICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgW2FjdGlvbkNvbnRyb2xzXT1cImFjdGlvbkNvbnRyb2xzXCJcbiAgICBbaW5maW5pdGVTY3JvbGxdPVwiJ2F1dG8nXCJcbiAgICBbc2VydmVyU2lkZURhdGFDYWxsYmFja109XCJzZXJ2ZXJTaWRlRGF0YUNhbGxiYWNrXCJcbiAgPlxuICAgIDxjOHktdWktZW1wdHktc3RhdGVcbiAgICAgIFtpY29uXT1cInN0YXRzPy5zaXplID4gMCA/ICdzZWFyY2gnIDogJ2M4eS10b29scydcIlxuICAgICAgW3RpdGxlXT1cInN0YXRzPy5zaXplID4gMCA/IChub1Jlc3VsdHNNZXNzYWdlIHwgdHJhbnNsYXRlKSA6IChub0RhdGFNZXNzYWdlIHwgdHJhbnNsYXRlKVwiXG4gICAgICBbc3VidGl0bGVdPVwic3RhdHM/LnNpemUgPiAwID8gKG5vUmVzdWx0c1N1YnRpdGxlIHwgdHJhbnNsYXRlKSA6IChub0RhdGFTdWJ0aXRsZSB8IHRyYW5zbGF0ZSlcIlxuICAgICAgKmVtcHR5U3RhdGVDb250ZXh0PVwibGV0IHN0YXRzXCJcbiAgICAgIFtob3Jpem9udGFsXT1cInN0YXRzPy5zaXplID4gMFwiXG4gICAgPlxuICAgICAgPHAgKm5nSWY9XCJzdGF0cz8uc2l6ZSA9PT0gMFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgICAgIHRpdGxlPVwie3sgJ0FkZCBkZXZpY2UgcHJvZmlsZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJjcmVhdGVEZXZpY2VQcm9maWxlKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ0FkZCBkZXZpY2UgcHJvZmlsZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L3A+XG4gICAgPC9jOHktdWktZW1wdHktc3RhdGU+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrQnk6IHRyYWNrQnlOYW1lXCI+XG4gICAgICA8Yzh5LWNvbHVtbiBbbmFtZV09XCJjb2x1bW4ubmFtZVwiPjwvYzh5LWNvbHVtbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9jOHktZGF0YS1ncmlkPlxuPC9kaXY+XG4iXX0=
@@ -3,6 +3,7 @@ export var RepositoryType;
3
3
  RepositoryType["FIRMWARE"] = "c8y_Firmware";
4
4
  RepositoryType["SOFTWARE"] = "c8y_Software";
5
5
  RepositoryType["CONFIGURATION"] = "c8y_ConfigurationDump";
6
+ RepositoryType["PROFILE"] = "c8y_Profile";
6
7
  })(RepositoryType || (RepositoryType = {}));
7
8
  export const REPOSITORY_BINARY_TYPES = {
8
9
  [RepositoryType.SOFTWARE]: 'c8y_SoftwareBinary',
@@ -71,4 +72,4 @@ export const PRODUCT_EXPERIENCE_REPOSITORY_SHARED = {
71
72
  }
72
73
  }
73
74
  };
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3NpdG9yeS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3JlcG9zaXRvcnkvc2hhcmVkL3JlcG9zaXRvcnkubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFOLElBQVksY0FJWDtBQUpELFdBQVksY0FBYztJQUN4QiwyQ0FBeUIsQ0FBQTtJQUN6QiwyQ0FBeUIsQ0FBQTtJQUN6Qix5REFBdUMsQ0FBQTtBQUN6QyxDQUFDLEVBSlcsY0FBYyxLQUFkLGNBQWMsUUFJekI7QUFFRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRztJQUNyQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxvQkFBb0I7SUFDL0MsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsb0JBQW9CO0lBQy9DLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxFQUFFLDZCQUE2QjtDQUM5RCxDQUFDO0FBd0dGLE1BQU0sQ0FBTixJQUFZLDRCQUtYO0FBTEQsV0FBWSw0QkFBNEI7SUFDdEMsc0VBQXNDLENBQUE7SUFDdEMsMEVBQTBDLENBQUE7SUFDMUMsNERBQTRCLENBQUE7SUFDNUIscUVBQXFDLENBQUE7QUFDdkMsQ0FBQyxFQUxXLDRCQUE0QixLQUE1Qiw0QkFBNEIsUUFLdkM7QUFNRCxNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FBRztJQUNsRCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUU7WUFDTixVQUFVLEVBQUUsb0JBQW9CO1lBQ2hDLFVBQVUsRUFBRSxnQkFBZ0I7U0FDN0I7UUFDRCxVQUFVLEVBQUU7WUFDVixrQkFBa0IsRUFBRSxvQkFBb0I7WUFDeEMsdUJBQXVCLEVBQUUseUJBQXlCO1lBQ2xELG9CQUFvQixFQUFFLHNCQUFzQjtTQUM3QztRQUNELE9BQU8sRUFBRTtZQUNQLHNCQUFzQixFQUFFLHNCQUFzQjtZQUM5QyxzQkFBc0IsRUFBRSxzQkFBc0I7WUFDOUMscUJBQXFCLEVBQUUsMEJBQTBCO1lBQ2pELG9CQUFvQixFQUFFLHlCQUF5QjtZQUMvQyxlQUFlLEVBQUUsZ0JBQWdCO1NBQ2xDO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsWUFBWSxFQUFFLGFBQWE7WUFDM0Isb0JBQW9CLEVBQUUsb0JBQW9CO1lBQzFDLGFBQWEsRUFBRSxjQUFjO1NBQzlCO0tBQ0Y7SUFDRCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUU7WUFDTixVQUFVLEVBQUUsb0JBQW9CO1lBQ2hDLFVBQVUsRUFBRSxnQkFBZ0I7U0FDN0I7UUFDRCxVQUFVLEVBQUU7WUFDVixrQkFBa0IsRUFBRSxvQkFBb0I7WUFDeEMsdUJBQXVCLEVBQUUsMEJBQTBCO1lBQ25ELG1CQUFtQixFQUFFLHFCQUFxQjtZQUMxQyxvQkFBb0IsRUFBRSxzQkFBc0I7U0FDN0M7UUFDRCxPQUFPLEVBQUU7WUFDUCw0QkFBNEIsRUFBRSwyQkFBMkI7WUFDekQsNEJBQTRCLEVBQUUsMkJBQTJCO1lBQ3pELGtDQUFrQyxFQUFFLGdDQUFnQztTQUNyRTtRQUNELE9BQU8sRUFBRTtZQUNQLFlBQVksRUFBRSxhQUFhO1lBQzNCLG9CQUFvQixFQUFFLG9CQUFvQjtZQUMxQyxrQkFBa0IsRUFBRSxrQkFBa0I7WUFDdEMsYUFBYSxFQUFFLGNBQWM7WUFDN0IsZ0NBQWdDLEVBQUUsK0JBQStCO1NBQ2xFO0tBQ0Y7SUFDRCxNQUFNLEVBQUU7UUFDTixVQUFVLEVBQUU7WUFDVix1QkFBdUIsRUFBRSx5QkFBeUI7WUFDbEQsMEJBQTBCLEVBQUUsNEJBQTRCO1NBQ3pEO0tBQ0Y7Q0FDTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5cbmV4cG9ydCBlbnVtIFJlcG9zaXRvcnlUeXBlIHtcbiAgRklSTVdBUkUgPSAnYzh5X0Zpcm13YXJlJyxcbiAgU09GVFdBUkUgPSAnYzh5X1NvZnR3YXJlJyxcbiAgQ09ORklHVVJBVElPTiA9ICdjOHlfQ29uZmlndXJhdGlvbkR1bXAnXG59XG5cbmV4cG9ydCBjb25zdCBSRVBPU0lUT1JZX0JJTkFSWV9UWVBFUyA9IHtcbiAgW1JlcG9zaXRvcnlUeXBlLlNPRlRXQVJFXTogJ2M4eV9Tb2Z0d2FyZUJpbmFyeScsXG4gIFtSZXBvc2l0b3J5VHlwZS5GSVJNV0FSRV06ICdjOHlfRmlybXdhcmVCaW5hcnknLFxuICBbUmVwb3NpdG9yeVR5cGUuQ09ORklHVVJBVElPTl06ICdjOHlfQ29uZmlndXJhdGlvbkR1bXBCaW5hcnknXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGFsTW9kZWwge1xuICBzZWxlY3RlZD86IHsgaWQ/OiBzdHJpbmc7IG5hbWU/OiBzdHJpbmc7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuICB2ZXJzaW9uPzogc3RyaW5nO1xuICBkZXBlbmRlbmN5PzogeyBjOHlfRmlybXdhcmU6IHsgdmVyc2lvbjogc3RyaW5nIH0gfTtcbiAgcGF0Y2hWZXJzaW9uPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgZGV2aWNlVHlwZT86IHN0cmluZztcbiAgc29mdHdhcmVUeXBlPztcbiAgY29uZmlndXJhdGlvblR5cGU/OiBzdHJpbmc7XG4gIGJpbmFyeT86IHtcbiAgICBmaWxlPzogRmlsZTtcbiAgICB1cmw/OiBzdHJpbmc7XG4gIH07XG4gIGM4eV9HbG9iYWw/O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9zaXRvcnlDYXRlZ29yeSBleHRlbmRzIFBhcnRpYWw8SU1hbmFnZWRPYmplY3Q+IHtcbiAgdHlwZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgYzh5X0ZpbHRlcj86IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gIH07XG4gIHNvZnR3YXJlVHlwZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaXJtd2FyZUJpbmFyeSBleHRlbmRzIFBhcnRpYWw8SU1hbmFnZWRPYmplY3Q+IHtcbiAgdHlwZTogJ2M4eV9GaXJtd2FyZUJpbmFyeSc7XG4gIGM4eV9GaXJtd2FyZToge1xuICAgIHZlcnNpb246IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaXJtd2FyZVBhdGNoQmluYXJ5IGV4dGVuZHMgRmlybXdhcmVCaW5hcnkge1xuICBjOHlfUGF0Y2g6IHtcbiAgICBkZXBlbmRlbmN5OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29mdHdhcmVCaW5hcnkgZXh0ZW5kcyBQYXJ0aWFsPElNYW5hZ2VkT2JqZWN0PiB7XG4gIHR5cGU6IHN0cmluZztcbiAgYzh5X1NvZnR3YXJlOiB7XG4gICAgdmVyc2lvbjogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgdHlwZSBSZXBvc2l0b3J5QmluYXJ5ID0gRmlybXdhcmVCaW5hcnkgfCBTb2Z0d2FyZUJpbmFyeSB8IEZpcm13YXJlUGF0Y2hCaW5hcnk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0ZWRSZXBvc2l0b3J5QmluYXJ5IHtcbiAgaWQ/OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdmVyc2lvbjogc3RyaW5nO1xuICB1cmw6IHN0cmluZztcbiAgZGVwZW5kZW5jeT86IHN0cmluZztcbiAgYzh5X1BhdGNoPzogYm9vbGVhbjtcbiAgaXNQYXRjaD86IGJvb2xlYW47XG4gIHBhdGNoRGVwZW5kZW5jeT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXZpY2VGaXJtd2FyZSB7XG4gIHZlcnNpb246IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXZpY2VTb2Z0d2FyZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmVyc2lvbj86IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG4gIHNvZnR3YXJlVHlwZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXZpY2VTb2Z0d2FyZUNoYW5nZSBleHRlbmRzIERldmljZVNvZnR3YXJlIHtcbiAgYWN0aW9uOiAnaW5zdGFsbCcgfCAnZGVsZXRlJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWd1cmF0aW9uU25hcHNob3Qge1xuICBpZD86IHN0cmluZztcbiAgdGltZTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGJpbmFyeVVybD86IHN0cmluZztcbiAgYmluYXJ5PzogYW55O1xuICBiaW5hcnlUeXBlPzogYW55O1xuICBkZXZpY2VUeXBlPzogc3RyaW5nO1xuICBjb25maWd1cmF0aW9uVHlwZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VwcG9ydGVkQ29uZmlndXJhdGlvbkl0ZW0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGRldmljZVR5cGU/OiBzdHJpbmc7XG4gIGNvbmZpZ3VyYXRpb25UeXBlPzogc3RyaW5nO1xuICBpc0xlZ2FjeT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGV2aWNlQ29uZmlndXJhdGlvbkxpc3RFbXB0eVN0YXRlIHtcbiAgaWNvbj86IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHRleHQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIERldmljZUNvbmZpZ3VyYXRpb25PcGVyYXRpb24ge1xuICBVUExPQURfQ09ORklHID0gJ2M4eV9VcGxvYWRDb25maWdGaWxlJyxcbiAgRE9XTkxPQURfQ09ORklHID0gJ2M4eV9Eb3dubG9hZENvbmZpZ0ZpbGUnLFxuICBDT05GSUcgPSAnYzh5X0NvbmZpZ3VyYXRpb24nLFxuICBTRU5EX0NPTkZJRyA9ICdjOHlfU2VuZENvbmZpZ3VyYXRpb24nXG59XG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckNyaXRlcmlhIHtcbiAgbmFtZT86IHN0cmluZztcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgY29uc3QgUFJPRFVDVF9FWFBFUklFTkNFX1JFUE9TSVRPUllfU0hBUkVEID0ge1xuICBTT0ZUV0FSRToge1xuICAgIEVWRU5UUzoge1xuICAgICAgUkVQT1NJVE9SWTogJ3NvZnR3YXJlUmVwb3NpdG9yeScsXG4gICAgICBERVZJQ0VfVEFCOiAnZGV2aWNlU29mdHdhcmUnXG4gICAgfSxcbiAgICBDT01QT05FTlRTOiB7XG4gICAgICBBRERfU09GVFdBUkVfTU9EQUw6ICdhZGQtc29mdHdhcmUtbW9kYWwnLFxuICAgICAgREVWSUNFX1NPRlRXQVJFX0NIQU5HRVM6ICdkZXZpY2Utc29mdHdhcmUtY2hhbmdlcycsXG4gICAgICBERVZJQ0VfU09GVFdBUkVfTElTVDogJ2RldmljZS1zb2Z0d2FyZS1saXN0J1xuICAgIH0sXG4gICAgQUNUSU9OUzoge1xuICAgICAgQVBQTFlfU09GVFdBUkVfQ0hBTkdFUzogJ2FwcGx5U29mdHdhcmVDaGFuZ2VzJyxcbiAgICAgIENMRUFSX1NPRlRXQVJFX0NIQU5HRVM6ICdjbGVhclNvZnR3YXJlQ2hhbmdlcycsXG4gICAgICBPUEVOX0lOU1RBTExfU09GVFdBUkU6ICdvcGVuSW5zdGFsbFNvZnR3YXJlTW9kYWwnLFxuICAgICAgT1BFTl9VUERBVEVfU09GVFdBUkU6ICdvcGVuVXBkYXRlU29mdHdhcmVNb2RhbCcsXG4gICAgICBERUxFVEVfU09GVFdBUkU6ICdkZWxldGVTb2Z0d2FyZSdcbiAgICB9LFxuICAgIFJFU1VMVFM6IHtcbiAgICAgIEFERF9TT0ZUV0FSRTogJ2FkZFNvZnR3YXJlJyxcbiAgICAgIEFERF9TT0ZUV0FSRV9WRVJTSU9OOiAnYWRkU29mdHdhcmVWZXJzaW9uJyxcbiAgICAgIEVESVRfU09GVFdBUkU6ICdlZGl0U29mdHdhcmUnXG4gICAgfVxuICB9LFxuICBGSVJNV0FSRToge1xuICAgIEVWRU5UUzoge1xuICAgICAgUkVQT1NJVE9SWTogJ2Zpcm13YXJlUmVwb3NpdG9yeScsXG4gICAgICBERVZJQ0VfVEFCOiAnZGV2aWNlRmlybXdhcmUnXG4gICAgfSxcbiAgICBDT01QT05FTlRTOiB7XG4gICAgICBBRERfRklSTVdBUkVfTU9EQUw6ICdhZGQtZmlybXdhcmUtbW9kYWwnLFxuICAgICAgQUREX0ZJUk1XQVJfUEFUQ0hfTU9EQUw6ICdhZGQtZmlybXdhcmUtcGF0Y2gtbW9kYWwnLFxuICAgICAgRklSTVdBUkVfREVWSUNFX1RBQjogJ2Zpcm13YXJlLWRldmljZS10YWInLFxuICAgICAgREVWSUNFX0ZJUk1XQVJFX0xJU1Q6ICdkZXZpY2UtZmlybXdhcmUtbGlzdCdcbiAgICB9LFxuICAgIEFDVElPTlM6IHtcbiAgICAgIE9QRU5fSU5TVEFMTF9GSVJNV0FSRV9ESUFMT0c6ICdvcGVuSW5zdGFsbEZpcm13YXJlRGlhbG9nJyxcbiAgICAgIE9QRU5fUkVQTEFDRV9GSVJNV0FSRV9ESUFMT0c6ICdvcGVuUmVwbGFjZUZpcm13YXJlRGlhbG9nJyxcbiAgICAgIE9QRU5fSU5TVEFMTF9GSVJNV0FSRV9QQVRDSF9ESUFMT0c6ICdvcGVuSW5zdGFsbEZpcm13YXJlUGF0Y2hEaWFsb2cnXG4gICAgfSxcbiAgICBSRVNVTFRTOiB7XG4gICAgICBBRERfRklSTVdBUkU6ICdhZGRGaXJtd2FyZScsXG4gICAgICBBRERfRklSTVdBUkVfVkVSU0lPTjogJ2FkZEZpcm13YXJlVmVyc2lvbicsXG4gICAgICBBRERfRklSTVdBUkVfUEFUQ0g6ICdhZGRGaXJtd2FyZVBhdGNoJyxcbiAgICAgIEVESVRfRklSTVdBUkU6ICdlZGl0RmlybXdhcmUnLFxuICAgICAgQ1JFQVRFX0ZJUk1XQVJFX1VQREFURV9PUEVSQVRJT046ICdjcmVhdGVGaXJtd2FyZVVwZGF0ZU9wZXJhdGlvbidcbiAgICB9XG4gIH0sXG4gIFNIQVJFRDoge1xuICAgIENPTVBPTkVOVFM6IHtcbiAgICAgIFJFUE9TSVRPUllfU0VMRUNUX01PREFMOiAncmVwb3NpdG9yeS1zZWxlY3QtbW9kYWwnLFxuICAgICAgU0VMRUNUX0NPTkZJR1VSQVRJT05fTU9EQUw6ICdzZWxlY3QtY29uZmlndXJhdGlvbi1tb2RhbCdcbiAgICB9XG4gIH1cbn0gYXMgY29uc3Q7XG4iXX0=
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3NpdG9yeS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3JlcG9zaXRvcnkvc2hhcmVkL3JlcG9zaXRvcnkubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFOLElBQVksY0FLWDtBQUxELFdBQVksY0FBYztJQUN4QiwyQ0FBeUIsQ0FBQTtJQUN6QiwyQ0FBeUIsQ0FBQTtJQUN6Qix5REFBdUMsQ0FBQTtJQUN2Qyx5Q0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBTFcsY0FBYyxLQUFkLGNBQWMsUUFLekI7QUFFRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRztJQUNyQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxvQkFBb0I7SUFDL0MsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsb0JBQW9CO0lBQy9DLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxFQUFFLDZCQUE2QjtDQUM5RCxDQUFDO0FBd0dGLE1BQU0sQ0FBTixJQUFZLDRCQUtYO0FBTEQsV0FBWSw0QkFBNEI7SUFDdEMsc0VBQXNDLENBQUE7SUFDdEMsMEVBQTBDLENBQUE7SUFDMUMsNERBQTRCLENBQUE7SUFDNUIscUVBQXFDLENBQUE7QUFDdkMsQ0FBQyxFQUxXLDRCQUE0QixLQUE1Qiw0QkFBNEIsUUFLdkM7QUFNRCxNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FBRztJQUNsRCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUU7WUFDTixVQUFVLEVBQUUsb0JBQW9CO1lBQ2hDLFVBQVUsRUFBRSxnQkFBZ0I7U0FDN0I7UUFDRCxVQUFVLEVBQUU7WUFDVixrQkFBa0IsRUFBRSxvQkFBb0I7WUFDeEMsdUJBQXVCLEVBQUUseUJBQXlCO1lBQ2xELG9CQUFvQixFQUFFLHNCQUFzQjtTQUM3QztRQUNELE9BQU8sRUFBRTtZQUNQLHNCQUFzQixFQUFFLHNCQUFzQjtZQUM5QyxzQkFBc0IsRUFBRSxzQkFBc0I7WUFDOUMscUJBQXFCLEVBQUUsMEJBQTBCO1lBQ2pELG9CQUFvQixFQUFFLHlCQUF5QjtZQUMvQyxlQUFlLEVBQUUsZ0JBQWdCO1NBQ2xDO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsWUFBWSxFQUFFLGFBQWE7WUFDM0Isb0JBQW9CLEVBQUUsb0JBQW9CO1lBQzFDLGFBQWEsRUFBRSxjQUFjO1NBQzlCO0tBQ0Y7SUFDRCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUU7WUFDTixVQUFVLEVBQUUsb0JBQW9CO1lBQ2hDLFVBQVUsRUFBRSxnQkFBZ0I7U0FDN0I7UUFDRCxVQUFVLEVBQUU7WUFDVixrQkFBa0IsRUFBRSxvQkFBb0I7WUFDeEMsdUJBQXVCLEVBQUUsMEJBQTBCO1lBQ25ELG1CQUFtQixFQUFFLHFCQUFxQjtZQUMxQyxvQkFBb0IsRUFBRSxzQkFBc0I7U0FDN0M7UUFDRCxPQUFPLEVBQUU7WUFDUCw0QkFBNEIsRUFBRSwyQkFBMkI7WUFDekQsNEJBQTRCLEVBQUUsMkJBQTJCO1lBQ3pELGtDQUFrQyxFQUFFLGdDQUFnQztTQUNyRTtRQUNELE9BQU8sRUFBRTtZQUNQLFlBQVksRUFBRSxhQUFhO1lBQzNCLG9CQUFvQixFQUFFLG9CQUFvQjtZQUMxQyxrQkFBa0IsRUFBRSxrQkFBa0I7WUFDdEMsYUFBYSxFQUFFLGNBQWM7WUFDN0IsZ0NBQWdDLEVBQUUsK0JBQStCO1NBQ2xFO0tBQ0Y7SUFDRCxNQUFNLEVBQUU7UUFDTixVQUFVLEVBQUU7WUFDVix1QkFBdUIsRUFBRSx5QkFBeUI7WUFDbEQsMEJBQTBCLEVBQUUsNEJBQTRCO1NBQ3pEO0tBQ0Y7Q0FDTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5cbmV4cG9ydCBlbnVtIFJlcG9zaXRvcnlUeXBlIHtcbiAgRklSTVdBUkUgPSAnYzh5X0Zpcm13YXJlJyxcbiAgU09GVFdBUkUgPSAnYzh5X1NvZnR3YXJlJyxcbiAgQ09ORklHVVJBVElPTiA9ICdjOHlfQ29uZmlndXJhdGlvbkR1bXAnLFxuICBQUk9GSUxFID0gJ2M4eV9Qcm9maWxlJ1xufVxuXG5leHBvcnQgY29uc3QgUkVQT1NJVE9SWV9CSU5BUllfVFlQRVMgPSB7XG4gIFtSZXBvc2l0b3J5VHlwZS5TT0ZUV0FSRV06ICdjOHlfU29mdHdhcmVCaW5hcnknLFxuICBbUmVwb3NpdG9yeVR5cGUuRklSTVdBUkVdOiAnYzh5X0Zpcm13YXJlQmluYXJ5JyxcbiAgW1JlcG9zaXRvcnlUeXBlLkNPTkZJR1VSQVRJT05dOiAnYzh5X0NvbmZpZ3VyYXRpb25EdW1wQmluYXJ5J1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBNb2RhbE1vZGVsIHtcbiAgc2VsZWN0ZWQ/OiB7IGlkPzogc3RyaW5nOyBuYW1lPzogc3RyaW5nOyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgdmVyc2lvbj86IHN0cmluZztcbiAgZGVwZW5kZW5jeT86IHsgYzh5X0Zpcm13YXJlOiB7IHZlcnNpb246IHN0cmluZyB9IH07XG4gIHBhdGNoVmVyc2lvbj86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGRldmljZVR5cGU/OiBzdHJpbmc7XG4gIHNvZnR3YXJlVHlwZT87XG4gIGNvbmZpZ3VyYXRpb25UeXBlPzogc3RyaW5nO1xuICBiaW5hcnk/OiB7XG4gICAgZmlsZT86IEZpbGU7XG4gICAgdXJsPzogc3RyaW5nO1xuICB9O1xuICBjOHlfR2xvYmFsPztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXBvc2l0b3J5Q2F0ZWdvcnkgZXh0ZW5kcyBQYXJ0aWFsPElNYW5hZ2VkT2JqZWN0PiB7XG4gIHR5cGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGM4eV9GaWx0ZXI/OiB7XG4gICAgdHlwZTogc3RyaW5nO1xuICB9O1xuICBzb2Z0d2FyZVR5cGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlybXdhcmVCaW5hcnkgZXh0ZW5kcyBQYXJ0aWFsPElNYW5hZ2VkT2JqZWN0PiB7XG4gIHR5cGU6ICdjOHlfRmlybXdhcmVCaW5hcnknO1xuICBjOHlfRmlybXdhcmU6IHtcbiAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlybXdhcmVQYXRjaEJpbmFyeSBleHRlbmRzIEZpcm13YXJlQmluYXJ5IHtcbiAgYzh5X1BhdGNoOiB7XG4gICAgZGVwZW5kZW5jeTogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvZnR3YXJlQmluYXJ5IGV4dGVuZHMgUGFydGlhbDxJTWFuYWdlZE9iamVjdD4ge1xuICB0eXBlOiBzdHJpbmc7XG4gIGM4eV9Tb2Z0d2FyZToge1xuICAgIHZlcnNpb246IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgUmVwb3NpdG9yeUJpbmFyeSA9IEZpcm13YXJlQmluYXJ5IHwgU29mdHdhcmVCaW5hcnkgfCBGaXJtd2FyZVBhdGNoQmluYXJ5O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdGVkUmVwb3NpdG9yeUJpbmFyeSB7XG4gIGlkPzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG4gIGRlcGVuZGVuY3k/OiBzdHJpbmc7XG4gIGM4eV9QYXRjaD86IGJvb2xlYW47XG4gIGlzUGF0Y2g/OiBib29sZWFuO1xuICBwYXRjaERlcGVuZGVuY3k/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGV2aWNlRmlybXdhcmUge1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIHVybDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGV2aWNlU29mdHdhcmUge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIHVybDogc3RyaW5nO1xuICBzb2Z0d2FyZVR5cGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGV2aWNlU29mdHdhcmVDaGFuZ2UgZXh0ZW5kcyBEZXZpY2VTb2Z0d2FyZSB7XG4gIGFjdGlvbjogJ2luc3RhbGwnIHwgJ2RlbGV0ZSc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlndXJhdGlvblNuYXBzaG90IHtcbiAgaWQ/OiBzdHJpbmc7XG4gIHRpbWU6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBiaW5hcnlVcmw/OiBzdHJpbmc7XG4gIGJpbmFyeT86IGFueTtcbiAgYmluYXJ5VHlwZT86IGFueTtcbiAgZGV2aWNlVHlwZT86IHN0cmluZztcbiAgY29uZmlndXJhdGlvblR5cGU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1cHBvcnRlZENvbmZpZ3VyYXRpb25JdGVtIHtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXZpY2VUeXBlPzogc3RyaW5nO1xuICBjb25maWd1cmF0aW9uVHlwZT86IHN0cmluZztcbiAgaXNMZWdhY3k/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERldmljZUNvbmZpZ3VyYXRpb25MaXN0RW1wdHlTdGF0ZSB7XG4gIGljb24/OiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICB0ZXh0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBEZXZpY2VDb25maWd1cmF0aW9uT3BlcmF0aW9uIHtcbiAgVVBMT0FEX0NPTkZJRyA9ICdjOHlfVXBsb2FkQ29uZmlnRmlsZScsXG4gIERPV05MT0FEX0NPTkZJRyA9ICdjOHlfRG93bmxvYWRDb25maWdGaWxlJyxcbiAgQ09ORklHID0gJ2M4eV9Db25maWd1cmF0aW9uJyxcbiAgU0VORF9DT05GSUcgPSAnYzh5X1NlbmRDb25maWd1cmF0aW9uJ1xufVxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJDcml0ZXJpYSB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGNvbnN0IFBST0RVQ1RfRVhQRVJJRU5DRV9SRVBPU0lUT1JZX1NIQVJFRCA9IHtcbiAgU09GVFdBUkU6IHtcbiAgICBFVkVOVFM6IHtcbiAgICAgIFJFUE9TSVRPUlk6ICdzb2Z0d2FyZVJlcG9zaXRvcnknLFxuICAgICAgREVWSUNFX1RBQjogJ2RldmljZVNvZnR3YXJlJ1xuICAgIH0sXG4gICAgQ09NUE9ORU5UUzoge1xuICAgICAgQUREX1NPRlRXQVJFX01PREFMOiAnYWRkLXNvZnR3YXJlLW1vZGFsJyxcbiAgICAgIERFVklDRV9TT0ZUV0FSRV9DSEFOR0VTOiAnZGV2aWNlLXNvZnR3YXJlLWNoYW5nZXMnLFxuICAgICAgREVWSUNFX1NPRlRXQVJFX0xJU1Q6ICdkZXZpY2Utc29mdHdhcmUtbGlzdCdcbiAgICB9LFxuICAgIEFDVElPTlM6IHtcbiAgICAgIEFQUExZX1NPRlRXQVJFX0NIQU5HRVM6ICdhcHBseVNvZnR3YXJlQ2hhbmdlcycsXG4gICAgICBDTEVBUl9TT0ZUV0FSRV9DSEFOR0VTOiAnY2xlYXJTb2Z0d2FyZUNoYW5nZXMnLFxuICAgICAgT1BFTl9JTlNUQUxMX1NPRlRXQVJFOiAnb3Blbkluc3RhbGxTb2Z0d2FyZU1vZGFsJyxcbiAgICAgIE9QRU5fVVBEQVRFX1NPRlRXQVJFOiAnb3BlblVwZGF0ZVNvZnR3YXJlTW9kYWwnLFxuICAgICAgREVMRVRFX1NPRlRXQVJFOiAnZGVsZXRlU29mdHdhcmUnXG4gICAgfSxcbiAgICBSRVNVTFRTOiB7XG4gICAgICBBRERfU09GVFdBUkU6ICdhZGRTb2Z0d2FyZScsXG4gICAgICBBRERfU09GVFdBUkVfVkVSU0lPTjogJ2FkZFNvZnR3YXJlVmVyc2lvbicsXG4gICAgICBFRElUX1NPRlRXQVJFOiAnZWRpdFNvZnR3YXJlJ1xuICAgIH1cbiAgfSxcbiAgRklSTVdBUkU6IHtcbiAgICBFVkVOVFM6IHtcbiAgICAgIFJFUE9TSVRPUlk6ICdmaXJtd2FyZVJlcG9zaXRvcnknLFxuICAgICAgREVWSUNFX1RBQjogJ2RldmljZUZpcm13YXJlJ1xuICAgIH0sXG4gICAgQ09NUE9ORU5UUzoge1xuICAgICAgQUREX0ZJUk1XQVJFX01PREFMOiAnYWRkLWZpcm13YXJlLW1vZGFsJyxcbiAgICAgIEFERF9GSVJNV0FSX1BBVENIX01PREFMOiAnYWRkLWZpcm13YXJlLXBhdGNoLW1vZGFsJyxcbiAgICAgIEZJUk1XQVJFX0RFVklDRV9UQUI6ICdmaXJtd2FyZS1kZXZpY2UtdGFiJyxcbiAgICAgIERFVklDRV9GSVJNV0FSRV9MSVNUOiAnZGV2aWNlLWZpcm13YXJlLWxpc3QnXG4gICAgfSxcbiAgICBBQ1RJT05TOiB7XG4gICAgICBPUEVOX0lOU1RBTExfRklSTVdBUkVfRElBTE9HOiAnb3Blbkluc3RhbGxGaXJtd2FyZURpYWxvZycsXG4gICAgICBPUEVOX1JFUExBQ0VfRklSTVdBUkVfRElBTE9HOiAnb3BlblJlcGxhY2VGaXJtd2FyZURpYWxvZycsXG4gICAgICBPUEVOX0lOU1RBTExfRklSTVdBUkVfUEFUQ0hfRElBTE9HOiAnb3Blbkluc3RhbGxGaXJtd2FyZVBhdGNoRGlhbG9nJ1xuICAgIH0sXG4gICAgUkVTVUxUUzoge1xuICAgICAgQUREX0ZJUk1XQVJFOiAnYWRkRmlybXdhcmUnLFxuICAgICAgQUREX0ZJUk1XQVJFX1ZFUlNJT046ICdhZGRGaXJtd2FyZVZlcnNpb24nLFxuICAgICAgQUREX0ZJUk1XQVJFX1BBVENIOiAnYWRkRmlybXdhcmVQYXRjaCcsXG4gICAgICBFRElUX0ZJUk1XQVJFOiAnZWRpdEZpcm13YXJlJyxcbiAgICAgIENSRUFURV9GSVJNV0FSRV9VUERBVEVfT1BFUkFUSU9OOiAnY3JlYXRlRmlybXdhcmVVcGRhdGVPcGVyYXRpb24nXG4gICAgfVxuICB9LFxuICBTSEFSRUQ6IHtcbiAgICBDT01QT05FTlRTOiB7XG4gICAgICBSRVBPU0lUT1JZX1NFTEVDVF9NT0RBTDogJ3JlcG9zaXRvcnktc2VsZWN0LW1vZGFsJyxcbiAgICAgIFNFTEVDVF9DT05GSUdVUkFUSU9OX01PREFMOiAnc2VsZWN0LWNvbmZpZ3VyYXRpb24tbW9kYWwnXG4gICAgfVxuICB9XG59IGFzIGNvbnN0O1xuIl19