@c8y/ngx-components 1021.7.0 → 1021.13.3

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 (139) hide show
  1. package/alarms/alarms-date-filter.component.d.ts +34 -0
  2. package/alarms/alarms-date-filter.component.d.ts.map +1 -0
  3. package/alarms/alarms-filter.component.d.ts +2 -1
  4. package/alarms/alarms-filter.component.d.ts.map +1 -1
  5. package/alarms/alarms-view.service.d.ts +4 -2
  6. package/alarms/alarms-view.service.d.ts.map +1 -1
  7. package/alarms/alarms.component.d.ts +3 -1
  8. package/alarms/alarms.component.d.ts.map +1 -1
  9. package/alarms/alarms.model.d.ts +17 -1
  10. package/alarms/alarms.model.d.ts.map +1 -1
  11. package/alarms/alarms.module.d.ts +15 -13
  12. package/alarms/alarms.module.d.ts.map +1 -1
  13. package/branding/shared/data/store-branding.service.d.ts +5 -0
  14. package/branding/shared/data/store-branding.service.d.ts.map +1 -1
  15. package/branding/shared/lazy/branding/branding.component.d.ts.map +1 -1
  16. package/cockpit-config/cockpit-config.model.d.ts +1 -0
  17. package/cockpit-config/cockpit-config.model.d.ts.map +1 -1
  18. package/context-dashboard/dashboard-manager/dashboard-manager.module.d.ts.map +1 -1
  19. package/core/common/options.service.d.ts +1 -1
  20. package/core/common/options.service.d.ts.map +1 -1
  21. package/core/dashboard/dashboard.module.d.ts +19 -19
  22. package/core/dashboard/widget-change-event.model.d.ts +1 -1
  23. package/core/dashboard/widget-change-event.model.d.ts.map +1 -1
  24. package/core/dashboard/wiget-time-context/widget-time-context-helper.service.d.ts +2 -1
  25. package/core/dashboard/wiget-time-context/widget-time-context-helper.service.d.ts.map +1 -1
  26. package/core/dashboard/wiget-time-context/widget-time-context-query.service.d.ts.map +1 -1
  27. package/core/dashboard/wiget-time-context/widget-time-context.component.d.ts +2 -1
  28. package/core/dashboard/wiget-time-context/widget-time-context.component.d.ts.map +1 -1
  29. package/core/dashboard/wiget-time-context/widget-time-context.model.d.ts +1 -14
  30. package/core/dashboard/wiget-time-context/widget-time-context.model.d.ts.map +1 -1
  31. package/core/date-time-picker/date-time-picker.component.d.ts.map +1 -1
  32. package/core/forms/validation-pattern.d.ts +4 -0
  33. package/core/forms/validation-pattern.d.ts.map +1 -1
  34. package/core/plugins/plugins.service.d.ts +1 -1
  35. package/core/plugins/plugins.service.d.ts.map +1 -1
  36. package/esm2022/alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.mjs +4 -4
  37. package/esm2022/alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.mjs +3 -3
  38. package/esm2022/alarms/alarms-date-filter.component.mjs +139 -0
  39. package/esm2022/alarms/alarms-filter.component.mjs +11 -5
  40. package/esm2022/alarms/alarms-type-filter.component.mjs +3 -3
  41. package/esm2022/alarms/alarms-view.service.mjs +15 -2
  42. package/esm2022/alarms/alarms.component.mjs +12 -6
  43. package/esm2022/alarms/alarms.model.mjs +17 -1
  44. package/esm2022/alarms/alarms.module.mjs +11 -4
  45. package/esm2022/assets-navigator/asset-selector/asset-selector-node.component.mjs +3 -3
  46. package/esm2022/branding/shared/data/store-branding.service.mjs +24 -1
  47. package/esm2022/branding/shared/lazy/branding/branding.component.mjs +3 -1
  48. package/esm2022/cockpit-config/cockpit-config.model.mjs +3 -2
  49. package/esm2022/cockpit-config/feature-config.component.mjs +3 -3
  50. package/esm2022/context-dashboard/dashboard-manager/dashboard-manager.module.mjs +5 -3
  51. package/esm2022/core/action-bar/action-bar.component.mjs +3 -3
  52. package/esm2022/core/common/options.service.mjs +3 -3
  53. package/esm2022/core/dashboard/dashboard.module.mjs +5 -4
  54. package/esm2022/core/dashboard/widget-change-event.model.mjs +1 -1
  55. package/esm2022/core/dashboard/wiget-time-context/widget-time-context-helper.service.mjs +3 -2
  56. package/esm2022/core/dashboard/wiget-time-context/widget-time-context-query.service.mjs +1 -1
  57. package/esm2022/core/dashboard/wiget-time-context/widget-time-context.component.mjs +6 -5
  58. package/esm2022/core/dashboard/wiget-time-context/widget-time-context.model.mjs +3 -47
  59. package/esm2022/core/date-time-picker/date-time-picker.component.mjs +7 -1
  60. package/esm2022/core/docs/defaults.items.mjs +2 -2
  61. package/esm2022/core/forms/validation-pattern.mjs +5 -1
  62. package/esm2022/core/list-display-switch/list-display-switch.component.mjs +3 -3
  63. package/esm2022/core/plugins/plugins.service.mjs +3 -3
  64. package/esm2022/core/router/context-route.guard.mjs +2 -2
  65. package/esm2022/core/search/search-input.component.mjs +3 -3
  66. package/esm2022/interval-picker/c8y-ngx-components-interval-picker.mjs +5 -0
  67. package/esm2022/interval-picker/index.mjs +3 -0
  68. package/esm2022/interval-picker/interval-picker.component.mjs +68 -0
  69. package/esm2022/interval-picker/interval-picker.model.mjs +47 -0
  70. package/esm2022/operations/bulk-operation-scheduler/operation-scheduler.component.mjs +7 -5
  71. package/esm2022/search/search-action.component.mjs +3 -3
  72. package/esm2022/tenants/custom-properties/custom-properties.component.mjs +90 -0
  73. package/esm2022/tenants/custom-properties/custom-properties.service.mjs +76 -0
  74. package/esm2022/tenants/custom-properties/custom-property-field/custom-property-field.component.mjs +29 -0
  75. package/esm2022/tenants/index.mjs +2 -1
  76. package/esm2022/tenants/tenant-limits/tenant-limits-definitions.mjs +92 -0
  77. package/esm2022/tenants/tenant-limits/tenant-limits.component.mjs +124 -0
  78. package/esm2022/tenants/tenants.module.mjs +42 -4
  79. package/esm2022/widgets/implementations/help-and-service-widget/help-and-service-view/help-and-service-view.component.mjs +2 -2
  80. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +5 -5
  81. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs.map +1 -1
  82. package/fesm2022/c8y-ngx-components-alarms.mjs +184 -16
  83. package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
  84. package/fesm2022/c8y-ngx-components-assets-navigator.mjs +2 -2
  85. package/fesm2022/c8y-ngx-components-assets-navigator.mjs.map +1 -1
  86. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs +23 -0
  87. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs.map +1 -1
  88. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +2 -0
  89. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
  90. package/fesm2022/c8y-ngx-components-cockpit-config.mjs +4 -3
  91. package/fesm2022/c8y-ngx-components-cockpit-config.mjs.map +1 -1
  92. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +4 -2
  93. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  94. package/fesm2022/c8y-ngx-components-interval-picker.mjs +120 -0
  95. package/fesm2022/c8y-ngx-components-interval-picker.mjs.map +1 -0
  96. package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs +6 -4
  97. package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs.map +1 -1
  98. package/fesm2022/c8y-ngx-components-search.mjs +2 -2
  99. package/fesm2022/c8y-ngx-components-search.mjs.map +1 -1
  100. package/fesm2022/c8y-ngx-components-tenants.mjs +416 -11
  101. package/fesm2022/c8y-ngx-components-tenants.mjs.map +1 -1
  102. package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs +1 -1
  103. package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs.map +1 -1
  104. package/fesm2022/c8y-ngx-components.mjs +292 -372
  105. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  106. package/interval-picker/c8y-ngx-components-interval-picker.d.ts.map +1 -0
  107. package/interval-picker/index.d.ts +3 -0
  108. package/interval-picker/index.d.ts.map +1 -0
  109. package/{core/dashboard/wiget-time-context/interval-picker → interval-picker}/interval-picker.component.d.ts +10 -2
  110. package/interval-picker/interval-picker.component.d.ts.map +1 -0
  111. package/interval-picker/interval-picker.model.d.ts +15 -0
  112. package/interval-picker/interval-picker.model.d.ts.map +1 -0
  113. package/locales/de.po +4 -1
  114. package/locales/en.po +3 -0
  115. package/locales/en_US.po +3 -0
  116. package/locales/es.po +3 -0
  117. package/locales/fr.po +3 -0
  118. package/locales/ja_JP.po +3 -0
  119. package/locales/locales.pot +47 -3
  120. package/locales/nl.po +3 -0
  121. package/locales/pl.po +3 -0
  122. package/locales/pt_BR.po +3 -0
  123. package/operations/bulk-operation-scheduler/operation-scheduler.component.d.ts.map +1 -1
  124. package/package.json +1 -1
  125. package/tenants/custom-properties/custom-properties.component.d.ts +26 -0
  126. package/tenants/custom-properties/custom-properties.component.d.ts.map +1 -0
  127. package/tenants/custom-properties/custom-properties.service.d.ts +26 -0
  128. package/tenants/custom-properties/custom-properties.service.d.ts.map +1 -0
  129. package/tenants/custom-properties/custom-property-field/custom-property-field.component.d.ts +10 -0
  130. package/tenants/custom-properties/custom-property-field/custom-property-field.component.d.ts.map +1 -0
  131. package/tenants/index.d.ts +1 -0
  132. package/tenants/index.d.ts.map +1 -1
  133. package/tenants/tenant-limits/tenant-limits-definitions.d.ts +117 -0
  134. package/tenants/tenant-limits/tenant-limits-definitions.d.ts.map +1 -0
  135. package/tenants/tenant-limits/tenant-limits.component.d.ts +39 -0
  136. package/tenants/tenant-limits/tenant-limits.component.d.ts.map +1 -0
  137. package/tenants/tenants.module.d.ts.map +1 -1
  138. package/core/dashboard/wiget-time-context/interval-picker/interval-picker.component.d.ts.map +0 -1
  139. package/esm2022/core/dashboard/wiget-time-context/interval-picker/interval-picker.component.mjs +0 -55
@@ -219,6 +219,7 @@ export class BrandingComponent {
219
219
  }
220
220
  try {
221
221
  await this.brandings.addBranding(this.brandingVersionService.createInitialBrandingVersion(versionDetails.brandingName), fallBackBranding, [versionDetails.brandingName]);
222
+ await this.brandings.waitForBrandingToBePresent(versionDetails.brandingName);
222
223
  this.editBranding(versionDetails.brandingName);
223
224
  }
224
225
  catch (e) {
@@ -233,6 +234,7 @@ export class BrandingComponent {
233
234
  }
234
235
  try {
235
236
  await this.brandings.addBranding(this.brandingVersionService.createInitialBrandingVersion(versionDetails.brandingName), options, [versionDetails.brandingName]);
237
+ await this.brandings.waitForBrandingToBePresent(versionDetails.brandingName);
236
238
  this.editBranding(versionDetails.brandingName);
237
239
  }
238
240
  catch (e) {
@@ -318,4 +320,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
318
320
  type: Component,
319
321
  args: [{ selector: 'c8y-branding', standalone: true, imports: [CoreModule, DataGridModule], template: "<c8y-title translate>Branding</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'palette'\"\n [label]=\"'Branding' | translate\"\n [path]=\"'/branding-editor'\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<ng-container *ngIf=\"availableBrandingVariants$ | async as brandingVariant; else loading\">\n <c8y-action-bar-item\n *ngIf=\"brandingVariant.publicOptions\"\n [placement]=\"'right'\"\n [priority]=\"30\"\n >\n <button\n class=\"btn btn-link\"\n (click)=\"addNewVersion()\"\n data-cy=\"branding-add-branding-variant\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n <span translate>Add variant</span>\n </button>\n </c8y-action-bar-item>\n <c8y-action-bar-item\n [placement]=\"'right'\"\n [priority]=\"20\"\n >\n <button\n class=\"btn btn-link\"\n data-cy=\"branding-import-branding\"\n (click)=\"importBranding()\"\n >\n <i [c8yIcon]=\"'data-import'\"></i>\n <span translate>Import variant</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item\n *ngIf=\"brandingVariant.publicOptions\"\n [placement]=\"'right'\"\n [priority]=\"10\"\n >\n <button\n class=\"btn btn-link\"\n (click)=\"deleteAllBrandings(brandingVariant.publicOptions)\"\n data-cy=\"branding-remove-all-brandings\"\n >\n <i [c8yIcon]=\"'trash-o'\"></i>\n <span translate>Delete all variants</span>\n </button>\n </c8y-action-bar-item>\n\n <div class=\"content-fullpage d-flex d-col border-top\">\n <c8y-data-grid\n [title]=\"'Branding variants' | translate\"\n [columns]=\"columns\"\n [actionControls]=\"actionControls\"\n [pagination]=\"pagination\"\n [displayOptions]=\"displayOptions\"\n (onReload)=\"refresh()\"\n [rows]=\"brandingVariant.variants\"\n >\n <c8y-ui-empty-state\n [icon]=\"'palette'\"\n [title]=\"'No branding variants' | translate\"\n [subtitle]=\"\n 'Personalize your experience with a theme-able interface. Create a unique look that aligns\n with your brand identity.'\n | translate\n \"\n *ngIf=\"!brandingVariant.publicOptions\"\n [horizontal]=\"false\"\n >\n <button\n class=\"btn btn-default\"\n data-cy=\"branding-get-started-using-branding\"\n (click)=\"getStartedUsingBranding()\"\n translate\n >\n Add branding variant\n </button>\n </c8y-ui-empty-state>\n </c8y-data-grid>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <c8y-loading></c8y-loading>\n</ng-template>\n" }]
320
322
  }], ctorParameters: () => [{ type: i1.StoreBrandingService }, { type: i2.ActivatedRoute }, { type: i3.AppStateService }, { type: i4.ApplicationService }, { type: i3.ZipService }, { type: i5.StaticAssetsService }, { type: i2.Router }, { type: i6.BsModalService }, { type: i3.ModalService }, { type: i1.BrandingVersionService }, { type: i7.AddBrandingModalService }, { type: i3.AlertService }, { type: i8.BrandingImportModalService }] });
321
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmRpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vYnJhbmRpbmcvc2hhcmVkL2xhenkvYnJhbmRpbmcvYnJhbmRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vYnJhbmRpbmcvc2hhcmVkL2xhenkvYnJhbmRpbmcvYnJhbmRpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBRUwsb0JBQW9CLEVBQ3BCLHNCQUFzQixFQUN2QixNQUFNLDBDQUEwQyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQWMsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUVMLFlBQVksRUFDWixlQUFlLEVBQ2YsaUJBQWlCLEVBR2pCLFlBQVksRUFFWixNQUFNLEVBQ04sVUFBVSxFQUNWLE9BQU8sRUFDUCxVQUFVLEVBQ1YsY0FBYyxFQUNmLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGtCQUFrQixFQUFnQixNQUFNLGFBQWEsQ0FBQztBQUMvRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUN4SCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUN0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QU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDNUUsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQy9DLFNBQVM7WUFDWCxDQUFDO1lBQ0QsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQ2hELGdCQUFnQixFQUNoQixPQUFPLENBQUMsT0FBTyxFQUNmLFdBQVcsQ0FDWixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7OEdBeFdVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHdFQ3pDOUIsc2xGQTJGQSwyQ0RwRFksVUFBVSx3N0RBQUUsY0FBYzs7MkZBRXpCLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDRSxjQUFjLGNBRVosSUFBSSxXQUNQLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQnJhbmRWZXJzaW9uLFxuICBTdG9yZUJyYW5kaW5nU2VydmljZSxcbiAgQnJhbmRpbmdWZXJzaW9uU2VydmljZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2JyYW5kaW5nL3NoYXJlZC9kYXRhJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQWN0aW9uQ29udHJvbCxcbiAgQWxlcnRTZXJ2aWNlLFxuICBBcHBTdGF0ZVNlcnZpY2UsXG4gIEJ1aWx0SW5BY3Rpb25UeXBlLFxuICBDb2x1bW4sXG4gIERpc3BsYXlPcHRpb25zLFxuICBNb2RhbFNlcnZpY2UsXG4gIFBhZ2luYXRpb24sXG4gIFN0YXR1cyxcbiAgWmlwU2VydmljZSxcbiAgZ2V0dGV4dCxcbiAgQ29yZU1vZHVsZSxcbiAgRGF0YUdyaWRNb2R1bGVcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblNlcnZpY2UsIElBcHBsaWNhdGlvbiB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IHNhdmVBcyB9IGZyb20gJ2ZpbGUtc2F2ZXInO1xuaW1wb3J0IHsgU3RhdGljQXNzZXRzU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvc3RhdGljLWFzc2V0cy9kYXRhJztcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBBcHBseUJyYW5kaW5nVG9BcHBNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2FwcGx5LWJyYW5kaW5nLXRvLWFwcC1tb2RhbC9hcHBseS1icmFuZGluZy10by1hcHAtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IEFkZEJyYW5kaW5nTW9kYWxTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9icmFuZGluZy9zaGFyZWQvbGF6eS9hZGQtYnJhbmRpbmctbW9kYWwnO1xuaW1wb3J0IHsgQnJhbmRpbmdUYWdzQ2VsbFJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYnJhbmRpbmctdGFncy1jZWxsLXJlbmRlcmVyL2JyYW5kaW5nLXRhZ3MtY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnJhbmRpbmdJbXBvcnRNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi9icmFuZGluZy1pbXBvcnQtbW9kYWwvYnJhbmRpbmctaW1wb3J0LW1vZGFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQnJhbmRpbmdOYW1lQ2VsbFJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYnJhbmRpbmctbmFtZS1jZWxsLXJlbmRlcmVyL2JyYW5kaW5nLW5hbWUtY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnJhbmRpbmdUYWdzSGVhZGVyQ2VsbFJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYnJhbmRpbmctdGFncy1oZWFkZXItY2VsbC1yZW5kZXJlci9icmFuZGluZy10YWdzLWhlYWRlci1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1icmFuZGluZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9icmFuZGluZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBEYXRhR3JpZE1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgQnJhbmRpbmdDb21wb25lbnQge1xuICBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uID0ge1xuICAgIHBhZ2VTaXplOiAxMCxcbiAgICBjdXJyZW50UGFnZTogMVxuICB9O1xuICBkaXNwbGF5T3B0aW9uczogRGlzcGxheU9wdGlvbnMgPSB7XG4gICAgYm9yZGVyZWQ6IGZhbHNlLFxuICAgIHN0cmlwZWQ6IHRydWUsXG4gICAgZmlsdGVyOiB0cnVlLFxuICAgIGdyaWRIZWFkZXI6IHRydWUsXG4gICAgaG92ZXI6IHRydWVcbiAgfTtcbiAgYWN0aW9uQ29udHJvbHM6IEFjdGlvbkNvbnRyb2xbXSA9IFtcbiAgICB7XG4gICAgICB0eXBlOiBCdWlsdEluQWN0aW9uVHlwZS5FZGl0LFxuICAgICAgY2FsbGJhY2s6IChlbnRyeTogQnJhbmRWZXJzaW9uLCBfcmVsb2FkKSA9PiB7XG4gICAgICAgIHRoaXMuZWRpdEJyYW5kaW5nKGVudHJ5Lm5hbWUpO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogQnVpbHRJbkFjdGlvblR5cGUuRXhwb3J0LFxuICAgICAgY2FsbGJhY2s6IGFzeW5jIChlbnRyeTogQnJhbmRWZXJzaW9uLCBfcmVsb2FkKSA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMuZXhwb3J0QnJhbmRpbmcoZW50cnkpO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogJ3ByZXZpZXcnLFxuICAgICAgaWNvbjogJ2V4dGVybmFsLWxpbmsnLFxuICAgICAgdGV4dDogZ2V0dGV4dCgnT3BlbiBwcmV2aWV3JyksXG4gICAgICBjYWxsYmFjazogYXN5bmMgKGVudHJ5OiBCcmFuZFZlcnNpb24sIF9yZWxvYWQpID0+IHtcbiAgICAgICAgd2luZG93Lm9wZW4oXG4gICAgICAgICAgYC9hcHBzLyR7XG4gICAgICAgICAgICB0aGlzLmFwcFN0YXRlLmN1cnJlbnRBcHBsaWNhdGlvbi52YWx1ZT8uY29udGV4dFBhdGggfHwgJ2NvY2twaXQnXG4gICAgICAgICAgfS9pbmRleC5odG1sP2JyYW5kaW5nUHJldmlldz10cnVlJmR5bmFtaWNPcHRpb25zVXJsPS9hcHBzL3B1YmxpYy9wdWJsaWMtb3B0aW9uc0Ake2VudHJ5Lm5hbWV9L29wdGlvbnMuanNvbmAsXG4gICAgICAgICAgJ19ibGFuaycsXG4gICAgICAgICAgJ25vb3BlbmVyLG5vcmVmZXJyZXInXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiAnZHVwbGljYXRlJyxcbiAgICAgIGljb246ICdjb3B5JyxcbiAgICAgIHRleHQ6IGdldHRleHQoJ0R1cGxpY2F0ZScpLFxuICAgICAgY2FsbGJhY2s6IGFzeW5jIChlbnRyeTogQnJhbmRWZXJzaW9uLCBfcmVsb2FkKSA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMuZHVwbGljYXRlVmVyc2lvbihlbnRyeSk7XG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogJ2FwcGx5LXRvLWFwcCcsXG4gICAgICBpY29uOiAnZm9ybScsXG4gICAgICB0ZXh0OiBnZXR0ZXh0KCdBcHBseSB0byBzcGVjaWZpYyBhcHBzJyksXG4gICAgICBjYWxsYmFjazogYXN5bmMgKGVudHJ5OiBCcmFuZFZlcnNpb24sIF9yZWxvYWQpID0+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5hcHBseVRvQXBwcyhlbnRyeSk7XG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogJ3NldC1hcy1kZWZhdWx0JyxcbiAgICAgIGljb246ICdnbG9iZTEnLFxuICAgICAgdGV4dDogZ2V0dGV4dCgnU2V0IGFzIGdsb2JhbCcpLFxuICAgICAgc2hvd0lmOiAoZW50cnk6IEJyYW5kVmVyc2lvbikgPT4ge1xuICAgICAgICBpZiAoZW50cnkudGFncz8uaW5jbHVkZXMoJ2xhdGVzdCcpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSxcbiAgICAgIGNhbGxiYWNrOiBhc3luYyAoZW50cnk6IEJyYW5kVmVyc2lvbiwgX3JlbG9hZCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuY29uZmlybU1vZGFsLmNvbmZpcm0oXG4gICAgICAgICAgICBnZXR0ZXh0KCdTZXQgYXMgZ2xvYmFsIGJyYW5kaW5nJyksXG4gICAgICAgICAgICBnZXR0ZXh0KFxuICAgICAgICAgICAgICAnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdhbnQgdG8gc2V0IHRoaXMgdmFyaWFudCBhcyB0aGUgZ2xvYmFsIGJyYW5kaW5nPyBCeSBkb2luZyBzbywgdGhpcyB2YXJpYW50IHdpbGwgYmUgYXBwbGllZCB0byBhbGwgYXBwcyB0aGF0IGRvIG5vdCBoYXZlIGEgc3BlY2lmaWMgYnJhbmRpbmcgYXBwbGllZC4gRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgU3RhdHVzLklORk9cbiAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvLyBkaWQgbm90IGNvbmZpcm1cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdGhpcy5icmFuZGluZ3MubWFya0FzQWN0aXZlKGVudHJ5KTtcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiBCdWlsdEluQWN0aW9uVHlwZS5EZWxldGUsXG4gICAgICBzaG93SWY6IChlbnRyeTogQnJhbmRWZXJzaW9uKSA9PiB7XG4gICAgICAgIGlmIChlbnRyeS50YWdzPy5pbmNsdWRlcygnbGF0ZXN0JykpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9LFxuICAgICAgY2FsbGJhY2s6IGFzeW5jIChlbnRyeTogQnJhbmRWZXJzaW9uLCBfcmVsb2FkKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5jb25maXJtTW9kYWwuY29uZmlybShcbiAgICAgICAgICAgIGdldHRleHQoJ0RlbGV0ZSBicmFuZGluZyB2YXJpYW50JyksXG4gICAgICAgICAgICBnZXR0ZXh0KFxuICAgICAgICAgICAgICAnWW91IGFyZSBhYm91dCB0byBkZWxldGUgdGhpcyBicmFuZGluZyB2YXJpYW50LiBUaGlzIGFjdGlvbiBjYW5ub3QgYmUgdW5kb25lLiBEbyB5b3Ugd2FudCB0byBwcm9jZWVkPydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBTdGF0dXMuREFOR0VSXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gZGlkIG5vdCBjb25maXJtXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuYXBwbGljYXRpb25TZXJ2aWNlLmRlbGV0ZVZlcnNpb25QYWNrYWdlKGVudHJ5LnB1YmxpY09wdGlvbnNBcHAsIHtcbiAgICAgICAgICB2ZXJzaW9uOiBlbnRyeS52ZXJzaW9uXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICAgIH1cbiAgICB9XG4gIF07XG4gIGNvbHVtbnM6IENvbHVtbltdID0gW1xuICAgIHtcbiAgICAgIG5hbWU6ICduYW1lJyxcbiAgICAgIGhlYWRlcjogZ2V0dGV4dCgnTmFtZScpLFxuICAgICAgcGF0aDogJ25hbWUnLFxuICAgICAgZmlsdGVyYWJsZTogdHJ1ZSxcbiAgICAgIGNlbGxSZW5kZXJlckNvbXBvbmVudDogQnJhbmRpbmdOYW1lQ2VsbFJlbmRlcmVyQ29tcG9uZW50XG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBnZXR0ZXh0KCdBcHBsaWVkIHRvYEFwcGxpY2F0aW9ucyBhIGJyYW5kaW5nIGFwcGxpZXMgdG8gKHRhYmxlIGNvbHVtbiBoZWFkZXIpYCcpLFxuICAgICAgcGF0aDogJ3RhZ3MnLFxuICAgICAgZmlsdGVyYWJsZTogZmFsc2UsXG4gICAgICBjZWxsQ1NTQ2xhc3NOYW1lOiAnc21hbGwnLFxuICAgICAgY2VsbFJlbmRlcmVyQ29tcG9uZW50OiBCcmFuZGluZ1RhZ3NDZWxsUmVuZGVyZXJDb21wb25lbnQsXG4gICAgICBoZWFkZXJDZWxsUmVuZGVyZXJDb21wb25lbnQ6IEJyYW5kaW5nVGFnc0hlYWRlckNlbGxSZW5kZXJlckNvbXBvbmVudFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ293bmVyJyxcbiAgICAgIGhlYWRlcjogZ2V0dGV4dCgnT3duZXInKSxcbiAgICAgIHBhdGg6ICdvd25lcicsXG4gICAgICBmaWx0ZXJhYmxlOiBmYWxzZVxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2xhc3RVcGRhdGVkJyxcbiAgICAgIGhlYWRlcjogZ2V0dGV4dCgnTGFzdCB1cGRhdGVkJyksXG4gICAgICBwYXRoOiAnbGFzdFVwZGF0ZWQnLFxuICAgICAgZmlsdGVyYWJsZTogZmFsc2VcbiAgICB9XG4gIF07XG4gIGN1cnJlbnRBcHBDb250ZXh0UGF0aCA9ICdhZG1pbmlzdHJhdGlvbic7XG4gIGF2YWlsYWJsZUJyYW5kaW5nVmFyaWFudHMkOiBPYnNlcnZhYmxlPHtcbiAgICBwdWJsaWNPcHRpb25zOiBJQXBwbGljYXRpb247XG4gICAgdmFyaWFudHM6IEJyYW5kVmVyc2lvbltdO1xuICB9PjtcblxuICBwcml2YXRlIHJlbG9hZFRyaWdnZXIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHZvaWQ+KHVuZGVmaW5lZCk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYnJhbmRpbmdzOiBTdG9yZUJyYW5kaW5nU2VydmljZSxcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGFwcFN0YXRlOiBBcHBTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBsaWNhdGlvblNlcnZpY2U6IEFwcGxpY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHppcDogWmlwU2VydmljZSxcbiAgICBwcml2YXRlIHN0YXRpY0Fzc2V0czogU3RhdGljQXNzZXRzU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgbW9kYWw6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlybU1vZGFsOiBNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBicmFuZGluZ1ZlcnNpb25TZXJ2aWNlOiBCcmFuZGluZ1ZlcnNpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgYWRkQnJhbmRpbmdNb2RhbFNlcnZpY2U6IEFkZEJyYW5kaW5nTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnQ6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIGJyYW5kaW5nSW1wb3J0TW9kYWxTZXJ2aWNlOiBCcmFuZGluZ0ltcG9ydE1vZGFsU2VydmljZVxuICApIHtcbiAgICB0aGlzLmN1cnJlbnRBcHBDb250ZXh0UGF0aCA9IHRoaXMuYXBwU3RhdGUuc3RhdGUuYXBwPy5jb250ZXh0UGF0aCB8fCB0aGlzLmN1cnJlbnRBcHBDb250ZXh0UGF0aDtcbiAgICB0aGlzLmF2YWlsYWJsZUJyYW5kaW5nVmFyaWFudHMkID0gdGhpcy5yZWxvYWRUcmlnZ2VyLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5icmFuZGluZ3MubG9hZEJyYW5kaW5nVmFyaWFudHMoKSksXG4gICAgICAvLyBoaWRlIHRoZSBmYWxsYmFjayBmcm9tIHVzZXJzXG4gICAgICBtYXAodmFyaWFudHMgPT4ge1xuICAgICAgICB2YXJpYW50cy52YXJpYW50cyA9IHZhcmlhbnRzLnZhcmlhbnRzLmZpbHRlcih2ID0+ICF2LnRhZ3M/LmluY2x1ZGVzKCdmYWxsYmFjaycpKTtcbiAgICAgICAgcmV0dXJuIHZhcmlhbnRzO1xuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUFsbEJyYW5kaW5ncyhwdWJsaWNPcHRpb25zPzogSUFwcGxpY2F0aW9uKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jb25maXJtTW9kYWwuY29uZmlybShcbiAgICAgIGdldHRleHQoJ0RlbGV0ZSBhbGwgYnJhbmRpbmcgdmFyaWFudHMnKSxcbiAgICAgIGdldHRleHQoXG4gICAgICAgIGA8cCBjbGFzcz1cIm0tYi04XCI+XG4gICAgICAgICAgVGhpcyBhY3Rpb24gd2lsbCBwZXJtYW5lbnRseSByZW1vdmUgYWxsIGN1c3RvbSBicmFuZGluZyB2YXJpYW50cy4gWW91ciB0ZW5hbnQgd2lsbCByZXZlcnRcbiAgICAgICAgICB0byB0aGUgZGVmYXVsdCBicmFuZGluZy5cbiAgICAgICAgPC9wPlxuICAgICAgICA8cCBjbGFzcz1cIm0tYi04XCI+XG4gICAgICAgICAgQ29uc2lkZXIgZXhwb3J0aW5nIHlvdXIgY3VzdG9tIGJyYW5kaW5nIHZhcmlhbnRzIGJlZm9yZSBwcm9jZWVkaW5nLCBhcyB0aGlzIGFjdGlvbiBjYW5ub3RcbiAgICAgICAgICBiZSB1bmRvbmUuXG4gICAgICAgIDwvcD5cbiAgICAgICAgPHA+XG4gICAgICAgICAgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNvbnRpbnVlP1xuICAgICAgICA8L3A+YFxuICAgICAgKSxcbiAgICAgIFN0YXR1cy5EQU5HRVIsXG4gICAgICB7IGNhbmNlbDogZ2V0dGV4dCgnQ2FuY2VsJyksIG9rOiBnZXR0ZXh0KCdEZWxldGUgYWxsJykgfVxuICAgICk7XG4gICAgaWYgKHJlc3VsdCA9PT0gZmFsc2UgfHwgKHR5cGVvZiByZXN1bHQgPT09ICdvYmplY3QnICYmICFyZXN1bHQuY29uZmlybWVkKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuYnJhbmRpbmdzLmRlbGV0ZUFsbEJyYW5kaW5ncyhwdWJsaWNPcHRpb25zKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIGFzeW5jIGV4cG9ydEJyYW5kaW5nKHZhcmlhbnQ6IEJyYW5kVmVyc2lvbikge1xuICAgIGNvbnN0IGJyYW5kaW5nID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5icmFuZGluZ3MuZ2V0WmlwRm9yQmluYXJ5KHZhcmlhbnQuaWQpKTtcbiAgICBjb25zdCBzdGF0aWNBc3NldHNBcHAgPSBhd2FpdCB0aGlzLnN0YXRpY0Fzc2V0cy5nZXRBcHBGb3JUZW5hbnQoJ2JyYW5kaW5nJyk7XG4gICAgY29uc3Qgc3RhdGljQXNzZXRzWmlwID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmJyYW5kaW5ncy5nZXRaaXBGb3JCaW5hcnkoXG4gICAgICAgIHN0YXRpY0Fzc2V0c0FwcC5hY3RpdmVWZXJzaW9uSWQsXG4gICAgICAgIHRoaXMuc3RhdGljQXNzZXRzLmZpbGVOYW1lcy5leHBvcnRaaXBOYW1lXG4gICAgICApXG4gICAgKTtcbiAgICBjb25zdCBibG9iID0gYXdhaXQgdGhpcy56aXAuY3JlYXRlWmlwKFtcbiAgICAgIHsgZmlsZU5hbWU6IHRoaXMuYnJhbmRpbmdzLmZpbGVOYW1lcy5leHBvcnRaaXBOYW1lLCBibG9iOiBicmFuZGluZyB9LFxuICAgICAgeyBmaWxlTmFtZTogdGhpcy5zdGF0aWNBc3NldHMuZmlsZU5hbWVzLmV4cG9ydFppcE5hbWUsIGJsb2I6IHN0YXRpY0Fzc2V0c1ppcCB9XG4gICAgXSk7XG4gICAgc2F2ZUFzKGJsb2IsIGBicmFuZGluZy1leHBvcnQtJHt2YXJpYW50Lm5hbWV9LSR7dmFyaWFudC5yZXZpc2lvbn0tJHtuZXcgRGF0ZSgpLmdldFRpbWUoKX0uemlwYCk7XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMucmVsb2FkVHJpZ2dlci5uZXh0KCk7XG4gIH1cblxuICBhc3luYyBhZGROZXdWZXJzaW9uKCkge1xuICAgIGNvbnN0IHZlcnNpb25EZXRhaWxzID0gYXdhaXQgdGhpcy5hZGRCcmFuZGluZ01vZGFsU2VydmljZS5vcGVuQWRkQnJhbmRpbmdNb2RhbCgpO1xuICAgIGlmICghdmVyc2lvbkRldGFpbHMpIHtcbiAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgZmFsbEJhY2tCcmFuZGluZyA9IHt9O1xuICAgIHRyeSB7XG4gICAgICBmYWxsQmFja0JyYW5kaW5nID0gYXdhaXQgdGhpcy5icmFuZGluZ3MuZ2V0QnJhbmRpbmdPcHRpb25zRm9yVmVyc2lvbignbGF0ZXN0Jyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS53YXJuKGBGYWlsZWQgdG8gbG9hZCBsYXRlc3QgYnJhbmRpbmdgKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5icmFuZGluZ3MuYWRkQnJhbmRpbmcoXG4gICAgICAgIHRoaXMuYnJhbmRpbmdWZXJzaW9uU2VydmljZS5jcmVhdGVJbml0aWFsQnJhbmRpbmdWZXJzaW9uKHZlcnNpb25EZXRhaWxzLmJyYW5kaW5nTmFtZSksXG4gICAgICAgIGZhbGxCYWNrQnJhbmRpbmcsXG4gICAgICAgIFt2ZXJzaW9uRGV0YWlscy5icmFuZGluZ05hbWVdXG4gICAgICApO1xuICAgICAgdGhpcy5lZGl0QnJhbmRpbmcodmVyc2lvbkRldGFpbHMuYnJhbmRpbmdOYW1lKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZSwgJ2RhbmdlcicpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGR1cGxpY2F0ZVZlcnNpb24odmVyc2lvbjogQnJhbmRWZXJzaW9uKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGF3YWl0IHRoaXMuYnJhbmRpbmdzLmdldEJyYW5kaW5nT3B0aW9uc0ZvclZlcnNpb24odmVyc2lvbi52ZXJzaW9uKTtcbiAgICBjb25zdCB2ZXJzaW9uRGV0YWlscyA9IGF3YWl0IHRoaXMuYWRkQnJhbmRpbmdNb2RhbFNlcnZpY2Uub3BlbkR1cGxpY2F0ZUJyYW5kaW5nTW9kYWwoKTtcbiAgICBpZiAoIXZlcnNpb25EZXRhaWxzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuYnJhbmRpbmdzLmFkZEJyYW5kaW5nKFxuICAgICAgICB0aGlzLmJyYW5kaW5nVmVyc2lvblNlcnZpY2UuY3JlYXRlSW5pdGlhbEJyYW5kaW5nVmVyc2lvbih2ZXJzaW9uRGV0YWlscy5icmFuZGluZ05hbWUpLFxuICAgICAgICBvcHRpb25zLFxuICAgICAgICBbdmVyc2lvbkRldGFpbHMuYnJhbmRpbmdOYW1lXVxuICAgICAgKTtcbiAgICAgIHRoaXMuZWRpdEJyYW5kaW5nKHZlcnNpb25EZXRhaWxzLmJyYW5kaW5nTmFtZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5hbGVydC5hZGRTZXJ2ZXJGYWlsdXJlKGUsICdkYW5nZXInKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBlZGl0QnJhbmRpbmcoYnJhbmRpbmdOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2JyYW5kaW5nTmFtZSwgJ2VkaXQnXSwgeyByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlIH0pO1xuICB9XG5cbiAgYXN5bmMgZ2V0U3RhcnRlZFVzaW5nQnJhbmRpbmcoKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jb25maXJtTW9kYWwuY29uZmlybShcbiAgICAgIGdldHRleHQoYEdldCBzdGFydGVkIHVzaW5nIGJyYW5kaW5nIHZhcmlhbnRzYCksXG4gICAgICBnZXR0ZXh0KFxuICAgICAgICBgPHAgY2xhc3M9XCJtLWItOFwiPkNvbmZpcm1pbmcgdGhpcyBhY3Rpb24gY3JlYXRlcyB0d28gYnJhbmRpbmcgdmFyaWFudHM6PC9wPlxuICAgICAgICA8dWwgY2xhc3M9XCJtLWItOCBwLWwtMTZcIj5cbiAgICAgICAgICA8bGk+QSBkZWZhdWx0IGNvcHkgb2YgeW91ciBjdXJyZW50IGdsb2JhbCBicmFuZGluZzwvbGk+XG4gICAgICAgICAgPGxpPllvdXIgbmV3IGN1c3RvbWl6YWJsZSB2YXJpYW50LjwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICAgIDxwIGNsYXNzPVwibS1iLThcIj5cbiAgICAgICAgICBBZnRlciBjdXN0b21pemF0aW9uLCB5b3UgY2FuIHNldCB5b3VyIG5ldyB2YXJpYW50IGFzIGdsb2JhbCBvciBhcHBseSBpdCB0byBzcGVjaWZpYyBhcHBzLlxuICAgICAgICA8L3A+XG4gICAgICAgIDxwPlxuICAgICAgICAgIFRvIHJldmVydCBjaGFuZ2VzLCBzaW1wbHkgc2V0IHRoZSBkZWZhdWx0IGJyYW5kaW5nIGFzIGdsb2JhbCBvciB1c2UgdGhlIFwiRGVsZXRlIGFsbFxuICAgICAgICAgIGJyYW5kaW5nc1wiIGJ1dHRvbiBhdCBhbnkgdGltZS5cbiAgICAgICAgPC9wPmBcbiAgICAgIClcbiAgICApO1xuICAgIGlmIChyZXN1bHQgPT09IGZhbHNlIHx8ICh0eXBlb2YgcmVzdWx0ID09PSAnb2JqZWN0JyAmJiAhcmVzdWx0LmNvbmZpcm1lZCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmJyYW5kaW5ncy5nZXRTdGFydGVkVXNpbmdCcmFuZGluZygpO1xuICAgIGF3YWl0IHRoaXMuYWRkTmV3VmVyc2lvbigpO1xuICB9XG5cbiAgYXN5bmMgYXBwbHlUb0FwcHModmVyc2lvbjogQnJhbmRWZXJzaW9uKSB7XG4gICAgY29uc3QgcHJlZml4ID0gJ2FwcC0nO1xuICAgIGNvbnN0IGN1cnJlbnRUYWdzID0gdmVyc2lvbi50YWdzXG4gICAgICAuZmlsdGVyKHRhZyA9PiB0YWcuc3RhcnRzV2l0aChwcmVmaXgpKVxuICAgICAgLm1hcCh0YWcgPT4gdGFnLnJlcGxhY2UocHJlZml4LCAnJykpO1xuICAgIGNvbnN0IG90aGVyVGFncyA9IHZlcnNpb24udGFncy5maWx0ZXIodGFnID0+ICF0YWcuc3RhcnRzV2l0aChwcmVmaXgpKTtcbiAgICBsZXQgc2VsZWN0ZWRUYWdzOiBBd2FpdGVkPEFwcGx5QnJhbmRpbmdUb0FwcE1vZGFsQ29tcG9uZW50WydyZXN1bHQnXT47XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbC5zaG93KEFwcGx5QnJhbmRpbmdUb0FwcE1vZGFsQ29tcG9uZW50LCB7XG4gICAgICAgIGluaXRpYWxTdGF0ZTogeyBjdXJyZW50VGFncyB9LFxuICAgICAgICBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlLFxuICAgICAgICBrZXlib2FyZDogZmFsc2VcbiAgICAgIH0pO1xuICAgICAgc2VsZWN0ZWRUYWdzID0gYXdhaXQgbW9kYWxSZWYuY29udGVudC5yZXN1bHQ7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gbW9kYWwgY2xvc2VkXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGFnc1RvU2V0ID0gW1xuICAgICAgLi4ub3RoZXJUYWdzLFxuICAgICAgLi4uT2JqZWN0LmtleXMoc2VsZWN0ZWRUYWdzKVxuICAgICAgICAuZmlsdGVyKGtleSA9PiBzZWxlY3RlZFRhZ3Nba2V5XSlcbiAgICAgICAgLm1hcCh0YWcgPT4gYCR7cHJlZml4fSR7dGFnfWApXG4gICAgXTtcblxuICAgIGF3YWl0IHRoaXMucmVtb3ZlVGFnc0Zyb21PdGhlclZlcnNpb25zKHZlcnNpb24ucHVibGljT3B0aW9uc0FwcCwgdGFnc1RvU2V0LCB2ZXJzaW9uLnZlcnNpb24pO1xuICAgIGF3YWl0IHRoaXMuYXBwbGljYXRpb25TZXJ2aWNlLnNldFBhY2thZ2VWZXJzaW9uVGFnKFxuICAgICAgdmVyc2lvbi5wdWJsaWNPcHRpb25zQXBwLFxuICAgICAgdmVyc2lvbi52ZXJzaW9uLFxuICAgICAgdGFnc1RvU2V0XG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGltcG9ydEJyYW5kaW5nKCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmJyYW5kaW5nSW1wb3J0TW9kYWxTZXJ2aWNlLm9wZW5CcmFuZGluZ0ltcG9ydE1vZGFsKCk7XG5cbiAgICAgIHRoaXMuYnJhbmRpbmdzLnJlZnJlc2hUcmlnZ2VyQnJhbmRpbmdWYXJpYW50cy5uZXh0KCk7XG4gICAgICB0aGlzLnJlbG9hZFRyaWdnZXIubmV4dCgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIG1vZGFsIGNsb3NlZFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVtb3ZlVGFnc0Zyb21PdGhlclZlcnNpb25zKFxuICAgIHB1YmxpY09wdGlvbnNBcHA6IElBcHBsaWNhdGlvbixcbiAgICB0YWdzVG9SZW1vdmU6IHN0cmluZ1tdLFxuICAgIHZlcnNpb25Ub0lnbm9yZT86IHN0cmluZ1xuICApIHtcbiAgICBmb3IgKGNvbnN0IHZlcnNpb24gb2YgcHVibGljT3B0aW9uc0FwcC5hcHBsaWNhdGlvblZlcnNpb25zKSB7XG4gICAgICBpZiAodmVyc2lvbi52ZXJzaW9uID09PSB2ZXJzaW9uVG9JZ25vcmUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCByZW1vdmVkVGFncyA9IHZlcnNpb24udGFncy5maWx0ZXIodGFnID0+ICF0YWdzVG9SZW1vdmUuaW5jbHVkZXModGFnKSk7XG4gICAgICBpZiAocmVtb3ZlZFRhZ3MubGVuZ3RoID09PSB2ZXJzaW9uLnRhZ3MubGVuZ3RoKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgYXdhaXQgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2Uuc2V0UGFja2FnZVZlcnNpb25UYWcoXG4gICAgICAgIHB1YmxpY09wdGlvbnNBcHAsXG4gICAgICAgIHZlcnNpb24udmVyc2lvbixcbiAgICAgICAgcmVtb3ZlZFRhZ3NcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iLCI8Yzh5LXRpdGxlIHRyYW5zbGF0ZT5CcmFuZGluZzwvYzh5LXRpdGxlPlxuXG48Yzh5LWJyZWFkY3J1bWI+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgW2ljb25dPVwiJ3BhbGV0dGUnXCJcbiAgICBbbGFiZWxdPVwiJ0JyYW5kaW5nJyB8IHRyYW5zbGF0ZVwiXG4gICAgW3BhdGhdPVwiJy9icmFuZGluZy1lZGl0b3InXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbjwvYzh5LWJyZWFkY3J1bWI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJhdmFpbGFibGVCcmFuZGluZ1ZhcmlhbnRzJCB8IGFzeW5jIGFzIGJyYW5kaW5nVmFyaWFudDsgZWxzZSBsb2FkaW5nXCI+XG4gIDxjOHktYWN0aW9uLWJhci1pdGVtXG4gICAgKm5nSWY9XCJicmFuZGluZ1ZhcmlhbnQucHVibGljT3B0aW9uc1wiXG4gICAgW3BsYWNlbWVudF09XCIncmlnaHQnXCJcbiAgICBbcHJpb3JpdHldPVwiMzBcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgICAgKGNsaWNrKT1cImFkZE5ld1ZlcnNpb24oKVwiXG4gICAgICBkYXRhLWN5PVwiYnJhbmRpbmctYWRkLWJyYW5kaW5nLXZhcmlhbnRcIlxuICAgID5cbiAgICAgIDxpIGM4eUljb249XCJwbHVzLWNpcmNsZVwiPjwvaT5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5BZGQgdmFyaWFudDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuICA8Yzh5LWFjdGlvbi1iYXItaXRlbVxuICAgIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiXG4gICAgW3ByaW9yaXR5XT1cIjIwXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICAgIGRhdGEtY3k9XCJicmFuZGluZy1pbXBvcnQtYnJhbmRpbmdcIlxuICAgICAgKGNsaWNrKT1cImltcG9ydEJyYW5kaW5nKClcIlxuICAgID5cbiAgICAgIDxpIFtjOHlJY29uXT1cIidkYXRhLWltcG9ydCdcIj48L2k+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+SW1wb3J0IHZhcmlhbnQ8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuICA8Yzh5LWFjdGlvbi1iYXItaXRlbVxuICAgICpuZ0lmPVwiYnJhbmRpbmdWYXJpYW50LnB1YmxpY09wdGlvbnNcIlxuICAgIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiXG4gICAgW3ByaW9yaXR5XT1cIjEwXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICAgIChjbGljayk9XCJkZWxldGVBbGxCcmFuZGluZ3MoYnJhbmRpbmdWYXJpYW50LnB1YmxpY09wdGlvbnMpXCJcbiAgICAgIGRhdGEtY3k9XCJicmFuZGluZy1yZW1vdmUtYWxsLWJyYW5kaW5nc1wiXG4gICAgPlxuICAgICAgPGkgW2M4eUljb25dPVwiJ3RyYXNoLW8nXCI+PC9pPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPkRlbGV0ZSBhbGwgdmFyaWFudHM8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuICA8ZGl2IGNsYXNzPVwiY29udGVudC1mdWxscGFnZSBkLWZsZXggZC1jb2wgYm9yZGVyLXRvcFwiPlxuICAgIDxjOHktZGF0YS1ncmlkXG4gICAgICBbdGl0bGVdPVwiJ0JyYW5kaW5nIHZhcmlhbnRzJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgIFthY3Rpb25Db250cm9sc109XCJhY3Rpb25Db250cm9sc1wiXG4gICAgICBbcGFnaW5hdGlvbl09XCJwYWdpbmF0aW9uXCJcbiAgICAgIFtkaXNwbGF5T3B0aW9uc109XCJkaXNwbGF5T3B0aW9uc1wiXG4gICAgICAob25SZWxvYWQpPVwicmVmcmVzaCgpXCJcbiAgICAgIFtyb3dzXT1cImJyYW5kaW5nVmFyaWFudC52YXJpYW50c1wiXG4gICAgPlxuICAgICAgPGM4eS11aS1lbXB0eS1zdGF0ZVxuICAgICAgICBbaWNvbl09XCIncGFsZXR0ZSdcIlxuICAgICAgICBbdGl0bGVdPVwiJ05vIGJyYW5kaW5nIHZhcmlhbnRzJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtzdWJ0aXRsZV09XCJcbiAgICAgICAgICAnUGVyc29uYWxpemUgeW91ciBleHBlcmllbmNlIHdpdGggYSB0aGVtZS1hYmxlIGludGVyZmFjZS4gQ3JlYXRlIGEgdW5pcXVlIGxvb2sgdGhhdCBhbGlnbnNcbiAgICAgICAgICAgd2l0aCB5b3VyIGJyYW5kIGlkZW50aXR5LidcbiAgICAgICAgICAgIHwgdHJhbnNsYXRlXG4gICAgICAgIFwiXG4gICAgICAgICpuZ0lmPVwiIWJyYW5kaW5nVmFyaWFudC5wdWJsaWNPcHRpb25zXCJcbiAgICAgICAgW2hvcml6b250YWxdPVwiZmFsc2VcIlxuICAgICAgPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgICAgICAgIGRhdGEtY3k9XCJicmFuZGluZy1nZXQtc3RhcnRlZC11c2luZy1icmFuZGluZ1wiXG4gICAgICAgICAgKGNsaWNrKT1cImdldFN0YXJ0ZWRVc2luZ0JyYW5kaW5nKClcIlxuICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICA+XG4gICAgICAgICAgQWRkIGJyYW5kaW5nIHZhcmlhbnRcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2M4eS11aS1lbXB0eS1zdGF0ZT5cbiAgICA8L2M4eS1kYXRhLWdyaWQ+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZz5cbiAgPGM4eS1sb2FkaW5nPjwvYzh5LWxvYWRpbmc+XG48L25nLXRlbXBsYXRlPlxuIl19
323
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmRpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vYnJhbmRpbmcvc2hhcmVkL2xhenkvYnJhbmRpbmcvYnJhbmRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vYnJhbmRpbmcvc2hhcmVkL2xhenkvYnJhbmRpbmcvYnJhbmRpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBRUwsb0JBQW9CLEVBQ3BCLHNCQUFzQixFQUN2QixNQUFNLDBDQUEwQyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQWMsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUVMLFlBQVksRUFDWixlQUFlLEVBQ2YsaUJBQWlCLEVBR2pCLFlBQVksRUFFWixNQUFNLEVBQ04sVUFBVSxFQUNWLE9BQU8sRUFDUCxVQUFVLEVBQ1YsY0FBYyxFQUNmLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGtCQUFrQixFQUFnQixNQUFNLGFBQWEsQ0FBQztBQUMvRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUN4SCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUN0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SyxNQUFNLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNELElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxlQUFlLEVBQUUsQ0FBQztnQkFDeEMsU0FBUztZQUNYLENBQUM7WUFDRCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzVFLElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUMvQyxTQUFTO1lBQ1gsQ0FBQztZQUNELE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUNoRCxnQkFBZ0IsRUFDaEIsT0FBTyxDQUFDLE9BQU8sRUFDZixXQUFXLENBQ1osQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDOzhHQTFXVSxpQkFBaUI7a0dBQWpCLGlCQUFpQix3RUN6QzlCLHNsRkEyRkEsMkNEcERZLFVBQVUsdzdEQUFFLGNBQWM7OzJGQUV6QixpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0UsY0FBYyxjQUVaLElBQUksV0FDUCxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJyYW5kVmVyc2lvbixcbiAgU3RvcmVCcmFuZGluZ1NlcnZpY2UsXG4gIEJyYW5kaW5nVmVyc2lvblNlcnZpY2Vcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9icmFuZGluZy9zaGFyZWQvZGF0YSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEFjdGlvbkNvbnRyb2wsXG4gIEFsZXJ0U2VydmljZSxcbiAgQXBwU3RhdGVTZXJ2aWNlLFxuICBCdWlsdEluQWN0aW9uVHlwZSxcbiAgQ29sdW1uLFxuICBEaXNwbGF5T3B0aW9ucyxcbiAgTW9kYWxTZXJ2aWNlLFxuICBQYWdpbmF0aW9uLFxuICBTdGF0dXMsXG4gIFppcFNlcnZpY2UsXG4gIGdldHRleHQsXG4gIENvcmVNb2R1bGUsXG4gIERhdGFHcmlkTW9kdWxlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25TZXJ2aWNlLCBJQXBwbGljYXRpb24gfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBzYXZlQXMgfSBmcm9tICdmaWxlLXNhdmVyJztcbmltcG9ydCB7IFN0YXRpY0Fzc2V0c1NlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3N0YXRpYy1hc3NldHMvZGF0YSc7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgQXBwbHlCcmFuZGluZ1RvQXBwTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9hcHBseS1icmFuZGluZy10by1hcHAtbW9kYWwvYXBwbHktYnJhbmRpbmctdG8tYXBwLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZGRCcmFuZGluZ01vZGFsU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvYnJhbmRpbmcvc2hhcmVkL2xhenkvYWRkLWJyYW5kaW5nLW1vZGFsJztcbmltcG9ydCB7IEJyYW5kaW5nVGFnc0NlbGxSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4uL2JyYW5kaW5nLXRhZ3MtY2VsbC1yZW5kZXJlci9icmFuZGluZy10YWdzLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEJyYW5kaW5nSW1wb3J0TW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vYnJhbmRpbmctaW1wb3J0LW1vZGFsL2JyYW5kaW5nLWltcG9ydC1tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IEJyYW5kaW5nTmFtZUNlbGxSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4uL2JyYW5kaW5nLW5hbWUtY2VsbC1yZW5kZXJlci9icmFuZGluZy1uYW1lLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEJyYW5kaW5nVGFnc0hlYWRlckNlbGxSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4uL2JyYW5kaW5nLXRhZ3MtaGVhZGVyLWNlbGwtcmVuZGVyZXIvYnJhbmRpbmctdGFncy1oZWFkZXItY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYnJhbmRpbmcnLFxuICB0ZW1wbGF0ZVVybDogJy4vYnJhbmRpbmcuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgRGF0YUdyaWRNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEJyYW5kaW5nQ29tcG9uZW50IHtcbiAgcGFnaW5hdGlvbjogUGFnaW5hdGlvbiA9IHtcbiAgICBwYWdlU2l6ZTogMTAsXG4gICAgY3VycmVudFBhZ2U6IDFcbiAgfTtcbiAgZGlzcGxheU9wdGlvbnM6IERpc3BsYXlPcHRpb25zID0ge1xuICAgIGJvcmRlcmVkOiBmYWxzZSxcbiAgICBzdHJpcGVkOiB0cnVlLFxuICAgIGZpbHRlcjogdHJ1ZSxcbiAgICBncmlkSGVhZGVyOiB0cnVlLFxuICAgIGhvdmVyOiB0cnVlXG4gIH07XG4gIGFjdGlvbkNvbnRyb2xzOiBBY3Rpb25Db250cm9sW10gPSBbXG4gICAge1xuICAgICAgdHlwZTogQnVpbHRJbkFjdGlvblR5cGUuRWRpdCxcbiAgICAgIGNhbGxiYWNrOiAoZW50cnk6IEJyYW5kVmVyc2lvbiwgX3JlbG9hZCkgPT4ge1xuICAgICAgICB0aGlzLmVkaXRCcmFuZGluZyhlbnRyeS5uYW1lKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIHR5cGU6IEJ1aWx0SW5BY3Rpb25UeXBlLkV4cG9ydCxcbiAgICAgIGNhbGxiYWNrOiBhc3luYyAoZW50cnk6IEJyYW5kVmVyc2lvbiwgX3JlbG9hZCkgPT4ge1xuICAgICAgICBhd2FpdCB0aGlzLmV4cG9ydEJyYW5kaW5nKGVudHJ5KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIHR5cGU6ICdwcmV2aWV3JyxcbiAgICAgIGljb246ICdleHRlcm5hbC1saW5rJyxcbiAgICAgIHRleHQ6IGdldHRleHQoJ09wZW4gcHJldmlldycpLFxuICAgICAgY2FsbGJhY2s6IGFzeW5jIChlbnRyeTogQnJhbmRWZXJzaW9uLCBfcmVsb2FkKSA9PiB7XG4gICAgICAgIHdpbmRvdy5vcGVuKFxuICAgICAgICAgIGAvYXBwcy8ke1xuICAgICAgICAgICAgdGhpcy5hcHBTdGF0ZS5jdXJyZW50QXBwbGljYXRpb24udmFsdWU/LmNvbnRleHRQYXRoIHx8ICdjb2NrcGl0J1xuICAgICAgICAgIH0vaW5kZXguaHRtbD9icmFuZGluZ1ByZXZpZXc9dHJ1ZSZkeW5hbWljT3B0aW9uc1VybD0vYXBwcy9wdWJsaWMvcHVibGljLW9wdGlvbnNAJHtlbnRyeS5uYW1lfS9vcHRpb25zLmpzb25gLFxuICAgICAgICAgICdfYmxhbmsnLFxuICAgICAgICAgICdub29wZW5lcixub3JlZmVycmVyJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogJ2R1cGxpY2F0ZScsXG4gICAgICBpY29uOiAnY29weScsXG4gICAgICB0ZXh0OiBnZXR0ZXh0KCdEdXBsaWNhdGUnKSxcbiAgICAgIGNhbGxiYWNrOiBhc3luYyAoZW50cnk6IEJyYW5kVmVyc2lvbiwgX3JlbG9hZCkgPT4ge1xuICAgICAgICBhd2FpdCB0aGlzLmR1cGxpY2F0ZVZlcnNpb24oZW50cnkpO1xuICAgICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIHR5cGU6ICdhcHBseS10by1hcHAnLFxuICAgICAgaWNvbjogJ2Zvcm0nLFxuICAgICAgdGV4dDogZ2V0dGV4dCgnQXBwbHkgdG8gc3BlY2lmaWMgYXBwcycpLFxuICAgICAgY2FsbGJhY2s6IGFzeW5jIChlbnRyeTogQnJhbmRWZXJzaW9uLCBfcmVsb2FkKSA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMuYXBwbHlUb0FwcHMoZW50cnkpO1xuICAgICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIHR5cGU6ICdzZXQtYXMtZGVmYXVsdCcsXG4gICAgICBpY29uOiAnZ2xvYmUxJyxcbiAgICAgIHRleHQ6IGdldHRleHQoJ1NldCBhcyBnbG9iYWwnKSxcbiAgICAgIHNob3dJZjogKGVudHJ5OiBCcmFuZFZlcnNpb24pID0+IHtcbiAgICAgICAgaWYgKGVudHJ5LnRhZ3M/LmluY2x1ZGVzKCdsYXRlc3QnKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0sXG4gICAgICBjYWxsYmFjazogYXN5bmMgKGVudHJ5OiBCcmFuZFZlcnNpb24sIF9yZWxvYWQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmNvbmZpcm1Nb2RhbC5jb25maXJtKFxuICAgICAgICAgICAgZ2V0dGV4dCgnU2V0IGFzIGdsb2JhbCBicmFuZGluZycpLFxuICAgICAgICAgICAgZ2V0dGV4dChcbiAgICAgICAgICAgICAgJ0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3YW50IHRvIHNldCB0aGlzIHZhcmlhbnQgYXMgdGhlIGdsb2JhbCBicmFuZGluZz8gQnkgZG9pbmcgc28sIHRoaXMgdmFyaWFudCB3aWxsIGJlIGFwcGxpZWQgdG8gYWxsIGFwcHMgdGhhdCBkbyBub3QgaGF2ZSBhIHNwZWNpZmljIGJyYW5kaW5nIGFwcGxpZWQuIERvIHlvdSB3YW50IHRvIHByb2NlZWQ/J1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIFN0YXR1cy5JTkZPXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gZGlkIG5vdCBjb25maXJtXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuYnJhbmRpbmdzLm1hcmtBc0FjdGl2ZShlbnRyeSk7XG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogQnVpbHRJbkFjdGlvblR5cGUuRGVsZXRlLFxuICAgICAgc2hvd0lmOiAoZW50cnk6IEJyYW5kVmVyc2lvbikgPT4ge1xuICAgICAgICBpZiAoZW50cnkudGFncz8uaW5jbHVkZXMoJ2xhdGVzdCcpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSxcbiAgICAgIGNhbGxiYWNrOiBhc3luYyAoZW50cnk6IEJyYW5kVmVyc2lvbiwgX3JlbG9hZCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuY29uZmlybU1vZGFsLmNvbmZpcm0oXG4gICAgICAgICAgICBnZXR0ZXh0KCdEZWxldGUgYnJhbmRpbmcgdmFyaWFudCcpLFxuICAgICAgICAgICAgZ2V0dGV4dChcbiAgICAgICAgICAgICAgJ1lvdSBhcmUgYWJvdXQgdG8gZGVsZXRlIHRoaXMgYnJhbmRpbmcgdmFyaWFudC4gVGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZS4gRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgU3RhdHVzLkRBTkdFUlxuICAgICAgICAgICk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIGRpZCBub3QgY29uZmlybVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCB0aGlzLmFwcGxpY2F0aW9uU2VydmljZS5kZWxldGVWZXJzaW9uUGFja2FnZShlbnRyeS5wdWJsaWNPcHRpb25zQXBwLCB7XG4gICAgICAgICAgdmVyc2lvbjogZW50cnkudmVyc2lvblxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgICB9XG4gICAgfVxuICBdO1xuICBjb2x1bW5zOiBDb2x1bW5bXSA9IFtcbiAgICB7XG4gICAgICBuYW1lOiAnbmFtZScsXG4gICAgICBoZWFkZXI6IGdldHRleHQoJ05hbWUnKSxcbiAgICAgIHBhdGg6ICduYW1lJyxcbiAgICAgIGZpbHRlcmFibGU6IHRydWUsXG4gICAgICBjZWxsUmVuZGVyZXJDb21wb25lbnQ6IEJyYW5kaW5nTmFtZUNlbGxSZW5kZXJlckNvbXBvbmVudFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogZ2V0dGV4dCgnQXBwbGllZCB0b2BBcHBsaWNhdGlvbnMgYSBicmFuZGluZyBhcHBsaWVzIHRvICh0YWJsZSBjb2x1bW4gaGVhZGVyKWAnKSxcbiAgICAgIHBhdGg6ICd0YWdzJyxcbiAgICAgIGZpbHRlcmFibGU6IGZhbHNlLFxuICAgICAgY2VsbENTU0NsYXNzTmFtZTogJ3NtYWxsJyxcbiAgICAgIGNlbGxSZW5kZXJlckNvbXBvbmVudDogQnJhbmRpbmdUYWdzQ2VsbFJlbmRlcmVyQ29tcG9uZW50LFxuICAgICAgaGVhZGVyQ2VsbFJlbmRlcmVyQ29tcG9uZW50OiBCcmFuZGluZ1RhZ3NIZWFkZXJDZWxsUmVuZGVyZXJDb21wb25lbnRcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdvd25lcicsXG4gICAgICBoZWFkZXI6IGdldHRleHQoJ093bmVyJyksXG4gICAgICBwYXRoOiAnb3duZXInLFxuICAgICAgZmlsdGVyYWJsZTogZmFsc2VcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdsYXN0VXBkYXRlZCcsXG4gICAgICBoZWFkZXI6IGdldHRleHQoJ0xhc3QgdXBkYXRlZCcpLFxuICAgICAgcGF0aDogJ2xhc3RVcGRhdGVkJyxcbiAgICAgIGZpbHRlcmFibGU6IGZhbHNlXG4gICAgfVxuICBdO1xuICBjdXJyZW50QXBwQ29udGV4dFBhdGggPSAnYWRtaW5pc3RyYXRpb24nO1xuICBhdmFpbGFibGVCcmFuZGluZ1ZhcmlhbnRzJDogT2JzZXJ2YWJsZTx7XG4gICAgcHVibGljT3B0aW9uczogSUFwcGxpY2F0aW9uO1xuICAgIHZhcmlhbnRzOiBCcmFuZFZlcnNpb25bXTtcbiAgfT47XG5cbiAgcHJpdmF0ZSByZWxvYWRUcmlnZ2VyID0gbmV3IEJlaGF2aW9yU3ViamVjdDx2b2lkPih1bmRlZmluZWQpO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGJyYW5kaW5nczogU3RvcmVCcmFuZGluZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBhcHBTdGF0ZTogQXBwU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwbGljYXRpb25TZXJ2aWNlOiBBcHBsaWNhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB6aXA6IFppcFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdGF0aWNBc3NldHM6IFN0YXRpY0Fzc2V0c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIG1vZGFsOiBCc01vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpcm1Nb2RhbDogTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnJhbmRpbmdWZXJzaW9uU2VydmljZTogQnJhbmRpbmdWZXJzaW9uU2VydmljZSxcbiAgICBwcml2YXRlIGFkZEJyYW5kaW5nTW9kYWxTZXJ2aWNlOiBBZGRCcmFuZGluZ01vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0OiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBicmFuZGluZ0ltcG9ydE1vZGFsU2VydmljZTogQnJhbmRpbmdJbXBvcnRNb2RhbFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jdXJyZW50QXBwQ29udGV4dFBhdGggPSB0aGlzLmFwcFN0YXRlLnN0YXRlLmFwcD8uY29udGV4dFBhdGggfHwgdGhpcy5jdXJyZW50QXBwQ29udGV4dFBhdGg7XG4gICAgdGhpcy5hdmFpbGFibGVCcmFuZGluZ1ZhcmlhbnRzJCA9IHRoaXMucmVsb2FkVHJpZ2dlci5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuYnJhbmRpbmdzLmxvYWRCcmFuZGluZ1ZhcmlhbnRzKCkpLFxuICAgICAgLy8gaGlkZSB0aGUgZmFsbGJhY2sgZnJvbSB1c2Vyc1xuICAgICAgbWFwKHZhcmlhbnRzID0+IHtcbiAgICAgICAgdmFyaWFudHMudmFyaWFudHMgPSB2YXJpYW50cy52YXJpYW50cy5maWx0ZXIodiA9PiAhdi50YWdzPy5pbmNsdWRlcygnZmFsbGJhY2snKSk7XG4gICAgICAgIHJldHVybiB2YXJpYW50cztcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSwgYnVmZmVyU2l6ZTogMSB9KVxuICAgICk7XG4gIH1cblxuICBhc3luYyBkZWxldGVBbGxCcmFuZGluZ3MocHVibGljT3B0aW9ucz86IElBcHBsaWNhdGlvbikge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY29uZmlybU1vZGFsLmNvbmZpcm0oXG4gICAgICBnZXR0ZXh0KCdEZWxldGUgYWxsIGJyYW5kaW5nIHZhcmlhbnRzJyksXG4gICAgICBnZXR0ZXh0KFxuICAgICAgICBgPHAgY2xhc3M9XCJtLWItOFwiPlxuICAgICAgICAgIFRoaXMgYWN0aW9uIHdpbGwgcGVybWFuZW50bHkgcmVtb3ZlIGFsbCBjdXN0b20gYnJhbmRpbmcgdmFyaWFudHMuIFlvdXIgdGVuYW50IHdpbGwgcmV2ZXJ0XG4gICAgICAgICAgdG8gdGhlIGRlZmF1bHQgYnJhbmRpbmcuXG4gICAgICAgIDwvcD5cbiAgICAgICAgPHAgY2xhc3M9XCJtLWItOFwiPlxuICAgICAgICAgIENvbnNpZGVyIGV4cG9ydGluZyB5b3VyIGN1c3RvbSBicmFuZGluZyB2YXJpYW50cyBiZWZvcmUgcHJvY2VlZGluZywgYXMgdGhpcyBhY3Rpb24gY2Fubm90XG4gICAgICAgICAgYmUgdW5kb25lLlxuICAgICAgICA8L3A+XG4gICAgICAgIDxwPlxuICAgICAgICAgIEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjb250aW51ZT9cbiAgICAgICAgPC9wPmBcbiAgICAgICksXG4gICAgICBTdGF0dXMuREFOR0VSLFxuICAgICAgeyBjYW5jZWw6IGdldHRleHQoJ0NhbmNlbCcpLCBvazogZ2V0dGV4dCgnRGVsZXRlIGFsbCcpIH1cbiAgICApO1xuICAgIGlmIChyZXN1bHQgPT09IGZhbHNlIHx8ICh0eXBlb2YgcmVzdWx0ID09PSAnb2JqZWN0JyAmJiAhcmVzdWx0LmNvbmZpcm1lZCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmJyYW5kaW5ncy5kZWxldGVBbGxCcmFuZGluZ3MocHVibGljT3B0aW9ucyk7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cblxuICBhc3luYyBleHBvcnRCcmFuZGluZyh2YXJpYW50OiBCcmFuZFZlcnNpb24pIHtcbiAgICBjb25zdCBicmFuZGluZyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuYnJhbmRpbmdzLmdldFppcEZvckJpbmFyeSh2YXJpYW50LmlkKSk7XG4gICAgY29uc3Qgc3RhdGljQXNzZXRzQXBwID0gYXdhaXQgdGhpcy5zdGF0aWNBc3NldHMuZ2V0QXBwRm9yVGVuYW50KCdicmFuZGluZycpO1xuICAgIGNvbnN0IHN0YXRpY0Fzc2V0c1ppcCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5icmFuZGluZ3MuZ2V0WmlwRm9yQmluYXJ5KFxuICAgICAgICBzdGF0aWNBc3NldHNBcHAuYWN0aXZlVmVyc2lvbklkLFxuICAgICAgICB0aGlzLnN0YXRpY0Fzc2V0cy5maWxlTmFtZXMuZXhwb3J0WmlwTmFtZVxuICAgICAgKVxuICAgICk7XG4gICAgY29uc3QgYmxvYiA9IGF3YWl0IHRoaXMuemlwLmNyZWF0ZVppcChbXG4gICAgICB7IGZpbGVOYW1lOiB0aGlzLmJyYW5kaW5ncy5maWxlTmFtZXMuZXhwb3J0WmlwTmFtZSwgYmxvYjogYnJhbmRpbmcgfSxcbiAgICAgIHsgZmlsZU5hbWU6IHRoaXMuc3RhdGljQXNzZXRzLmZpbGVOYW1lcy5leHBvcnRaaXBOYW1lLCBibG9iOiBzdGF0aWNBc3NldHNaaXAgfVxuICAgIF0pO1xuICAgIHNhdmVBcyhibG9iLCBgYnJhbmRpbmctZXhwb3J0LSR7dmFyaWFudC5uYW1lfS0ke3ZhcmlhbnQucmV2aXNpb259LSR7bmV3IERhdGUoKS5nZXRUaW1lKCl9LnppcGApO1xuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLnJlbG9hZFRyaWdnZXIubmV4dCgpO1xuICB9XG5cbiAgYXN5bmMgYWRkTmV3VmVyc2lvbigpIHtcbiAgICBjb25zdCB2ZXJzaW9uRGV0YWlscyA9IGF3YWl0IHRoaXMuYWRkQnJhbmRpbmdNb2RhbFNlcnZpY2Uub3BlbkFkZEJyYW5kaW5nTW9kYWwoKTtcbiAgICBpZiAoIXZlcnNpb25EZXRhaWxzKSB7XG4gICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGZhbGxCYWNrQnJhbmRpbmcgPSB7fTtcbiAgICB0cnkge1xuICAgICAgZmFsbEJhY2tCcmFuZGluZyA9IGF3YWl0IHRoaXMuYnJhbmRpbmdzLmdldEJyYW5kaW5nT3B0aW9uc0ZvclZlcnNpb24oJ2xhdGVzdCcpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybihgRmFpbGVkIHRvIGxvYWQgbGF0ZXN0IGJyYW5kaW5nYCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuYnJhbmRpbmdzLmFkZEJyYW5kaW5nKFxuICAgICAgICB0aGlzLmJyYW5kaW5nVmVyc2lvblNlcnZpY2UuY3JlYXRlSW5pdGlhbEJyYW5kaW5nVmVyc2lvbih2ZXJzaW9uRGV0YWlscy5icmFuZGluZ05hbWUpLFxuICAgICAgICBmYWxsQmFja0JyYW5kaW5nLFxuICAgICAgICBbdmVyc2lvbkRldGFpbHMuYnJhbmRpbmdOYW1lXVxuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMuYnJhbmRpbmdzLndhaXRGb3JCcmFuZGluZ1RvQmVQcmVzZW50KHZlcnNpb25EZXRhaWxzLmJyYW5kaW5nTmFtZSk7XG4gICAgICB0aGlzLmVkaXRCcmFuZGluZyh2ZXJzaW9uRGV0YWlscy5icmFuZGluZ05hbWUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMuYWxlcnQuYWRkU2VydmVyRmFpbHVyZShlLCAnZGFuZ2VyJyk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZHVwbGljYXRlVmVyc2lvbih2ZXJzaW9uOiBCcmFuZFZlcnNpb24pIHtcbiAgICBjb25zdCBvcHRpb25zID0gYXdhaXQgdGhpcy5icmFuZGluZ3MuZ2V0QnJhbmRpbmdPcHRpb25zRm9yVmVyc2lvbih2ZXJzaW9uLnZlcnNpb24pO1xuICAgIGNvbnN0IHZlcnNpb25EZXRhaWxzID0gYXdhaXQgdGhpcy5hZGRCcmFuZGluZ01vZGFsU2VydmljZS5vcGVuRHVwbGljYXRlQnJhbmRpbmdNb2RhbCgpO1xuICAgIGlmICghdmVyc2lvbkRldGFpbHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5icmFuZGluZ3MuYWRkQnJhbmRpbmcoXG4gICAgICAgIHRoaXMuYnJhbmRpbmdWZXJzaW9uU2VydmljZS5jcmVhdGVJbml0aWFsQnJhbmRpbmdWZXJzaW9uKHZlcnNpb25EZXRhaWxzLmJyYW5kaW5nTmFtZSksXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICAgIFt2ZXJzaW9uRGV0YWlscy5icmFuZGluZ05hbWVdXG4gICAgICApO1xuICAgICAgYXdhaXQgdGhpcy5icmFuZGluZ3Mud2FpdEZvckJyYW5kaW5nVG9CZVByZXNlbnQodmVyc2lvbkRldGFpbHMuYnJhbmRpbmdOYW1lKTtcbiAgICAgIHRoaXMuZWRpdEJyYW5kaW5nKHZlcnNpb25EZXRhaWxzLmJyYW5kaW5nTmFtZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5hbGVydC5hZGRTZXJ2ZXJGYWlsdXJlKGUsICdkYW5nZXInKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBlZGl0QnJhbmRpbmcoYnJhbmRpbmdOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2JyYW5kaW5nTmFtZSwgJ2VkaXQnXSwgeyByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlIH0pO1xuICB9XG5cbiAgYXN5bmMgZ2V0U3RhcnRlZFVzaW5nQnJhbmRpbmcoKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jb25maXJtTW9kYWwuY29uZmlybShcbiAgICAgIGdldHRleHQoYEdldCBzdGFydGVkIHVzaW5nIGJyYW5kaW5nIHZhcmlhbnRzYCksXG4gICAgICBnZXR0ZXh0KFxuICAgICAgICBgPHAgY2xhc3M9XCJtLWItOFwiPkNvbmZpcm1pbmcgdGhpcyBhY3Rpb24gY3JlYXRlcyB0d28gYnJhbmRpbmcgdmFyaWFudHM6PC9wPlxuICAgICAgICA8dWwgY2xhc3M9XCJtLWItOCBwLWwtMTZcIj5cbiAgICAgICAgICA8bGk+QSBkZWZhdWx0IGNvcHkgb2YgeW91ciBjdXJyZW50IGdsb2JhbCBicmFuZGluZzwvbGk+XG4gICAgICAgICAgPGxpPllvdXIgbmV3IGN1c3RvbWl6YWJsZSB2YXJpYW50LjwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICAgIDxwIGNsYXNzPVwibS1iLThcIj5cbiAgICAgICAgICBBZnRlciBjdXN0b21pemF0aW9uLCB5b3UgY2FuIHNldCB5b3VyIG5ldyB2YXJpYW50IGFzIGdsb2JhbCBvciBhcHBseSBpdCB0byBzcGVjaWZpYyBhcHBzLlxuICAgICAgICA8L3A+XG4gICAgICAgIDxwPlxuICAgICAgICAgIFRvIHJldmVydCBjaGFuZ2VzLCBzaW1wbHkgc2V0IHRoZSBkZWZhdWx0IGJyYW5kaW5nIGFzIGdsb2JhbCBvciB1c2UgdGhlIFwiRGVsZXRlIGFsbFxuICAgICAgICAgIGJyYW5kaW5nc1wiIGJ1dHRvbiBhdCBhbnkgdGltZS5cbiAgICAgICAgPC9wPmBcbiAgICAgIClcbiAgICApO1xuICAgIGlmIChyZXN1bHQgPT09IGZhbHNlIHx8ICh0eXBlb2YgcmVzdWx0ID09PSAnb2JqZWN0JyAmJiAhcmVzdWx0LmNvbmZpcm1lZCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmJyYW5kaW5ncy5nZXRTdGFydGVkVXNpbmdCcmFuZGluZygpO1xuICAgIGF3YWl0IHRoaXMuYWRkTmV3VmVyc2lvbigpO1xuICB9XG5cbiAgYXN5bmMgYXBwbHlUb0FwcHModmVyc2lvbjogQnJhbmRWZXJzaW9uKSB7XG4gICAgY29uc3QgcHJlZml4ID0gJ2FwcC0nO1xuICAgIGNvbnN0IGN1cnJlbnRUYWdzID0gdmVyc2lvbi50YWdzXG4gICAgICAuZmlsdGVyKHRhZyA9PiB0YWcuc3RhcnRzV2l0aChwcmVmaXgpKVxuICAgICAgLm1hcCh0YWcgPT4gdGFnLnJlcGxhY2UocHJlZml4LCAnJykpO1xuICAgIGNvbnN0IG90aGVyVGFncyA9IHZlcnNpb24udGFncy5maWx0ZXIodGFnID0+ICF0YWcuc3RhcnRzV2l0aChwcmVmaXgpKTtcbiAgICBsZXQgc2VsZWN0ZWRUYWdzOiBBd2FpdGVkPEFwcGx5QnJhbmRpbmdUb0FwcE1vZGFsQ29tcG9uZW50WydyZXN1bHQnXT47XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbC5zaG93KEFwcGx5QnJhbmRpbmdUb0FwcE1vZGFsQ29tcG9uZW50LCB7XG4gICAgICAgIGluaXRpYWxTdGF0ZTogeyBjdXJyZW50VGFncyB9LFxuICAgICAgICBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlLFxuICAgICAgICBrZXlib2FyZDogZmFsc2VcbiAgICAgIH0pO1xuICAgICAgc2VsZWN0ZWRUYWdzID0gYXdhaXQgbW9kYWxSZWYuY29udGVudC5yZXN1bHQ7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gbW9kYWwgY2xvc2VkXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGFnc1RvU2V0ID0gW1xuICAgICAgLi4ub3RoZXJUYWdzLFxuICAgICAgLi4uT2JqZWN0LmtleXMoc2VsZWN0ZWRUYWdzKVxuICAgICAgICAuZmlsdGVyKGtleSA9PiBzZWxlY3RlZFRhZ3Nba2V5XSlcbiAgICAgICAgLm1hcCh0YWcgPT4gYCR7cHJlZml4fSR7dGFnfWApXG4gICAgXTtcblxuICAgIGF3YWl0IHRoaXMucmVtb3ZlVGFnc0Zyb21PdGhlclZlcnNpb25zKHZlcnNpb24ucHVibGljT3B0aW9uc0FwcCwgdGFnc1RvU2V0LCB2ZXJzaW9uLnZlcnNpb24pO1xuICAgIGF3YWl0IHRoaXMuYXBwbGljYXRpb25TZXJ2aWNlLnNldFBhY2thZ2VWZXJzaW9uVGFnKFxuICAgICAgdmVyc2lvbi5wdWJsaWNPcHRpb25zQXBwLFxuICAgICAgdmVyc2lvbi52ZXJzaW9uLFxuICAgICAgdGFnc1RvU2V0XG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGltcG9ydEJyYW5kaW5nKCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmJyYW5kaW5nSW1wb3J0TW9kYWxTZXJ2aWNlLm9wZW5CcmFuZGluZ0ltcG9ydE1vZGFsKCk7XG5cbiAgICAgIHRoaXMuYnJhbmRpbmdzLnJlZnJlc2hUcmlnZ2VyQnJhbmRpbmdWYXJpYW50cy5uZXh0KCk7XG4gICAgICB0aGlzLnJlbG9hZFRyaWdnZXIubmV4dCgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIG1vZGFsIGNsb3NlZFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVtb3ZlVGFnc0Zyb21PdGhlclZlcnNpb25zKFxuICAgIHB1YmxpY09wdGlvbnNBcHA6IElBcHBsaWNhdGlvbixcbiAgICB0YWdzVG9SZW1vdmU6IHN0cmluZ1tdLFxuICAgIHZlcnNpb25Ub0lnbm9yZT86IHN0cmluZ1xuICApIHtcbiAgICBmb3IgKGNvbnN0IHZlcnNpb24gb2YgcHVibGljT3B0aW9uc0FwcC5hcHBsaWNhdGlvblZlcnNpb25zKSB7XG4gICAgICBpZiAodmVyc2lvbi52ZXJzaW9uID09PSB2ZXJzaW9uVG9JZ25vcmUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCByZW1vdmVkVGFncyA9IHZlcnNpb24udGFncy5maWx0ZXIodGFnID0+ICF0YWdzVG9SZW1vdmUuaW5jbHVkZXModGFnKSk7XG4gICAgICBpZiAocmVtb3ZlZFRhZ3MubGVuZ3RoID09PSB2ZXJzaW9uLnRhZ3MubGVuZ3RoKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgYXdhaXQgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2Uuc2V0UGFja2FnZVZlcnNpb25UYWcoXG4gICAgICAgIHB1YmxpY09wdGlvbnNBcHAsXG4gICAgICAgIHZlcnNpb24udmVyc2lvbixcbiAgICAgICAgcmVtb3ZlZFRhZ3NcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iLCI8Yzh5LXRpdGxlIHRyYW5zbGF0ZT5CcmFuZGluZzwvYzh5LXRpdGxlPlxuXG48Yzh5LWJyZWFkY3J1bWI+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgW2ljb25dPVwiJ3BhbGV0dGUnXCJcbiAgICBbbGFiZWxdPVwiJ0JyYW5kaW5nJyB8IHRyYW5zbGF0ZVwiXG4gICAgW3BhdGhdPVwiJy9icmFuZGluZy1lZGl0b3InXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbjwvYzh5LWJyZWFkY3J1bWI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJhdmFpbGFibGVCcmFuZGluZ1ZhcmlhbnRzJCB8IGFzeW5jIGFzIGJyYW5kaW5nVmFyaWFudDsgZWxzZSBsb2FkaW5nXCI+XG4gIDxjOHktYWN0aW9uLWJhci1pdGVtXG4gICAgKm5nSWY9XCJicmFuZGluZ1ZhcmlhbnQucHVibGljT3B0aW9uc1wiXG4gICAgW3BsYWNlbWVudF09XCIncmlnaHQnXCJcbiAgICBbcHJpb3JpdHldPVwiMzBcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgICAgKGNsaWNrKT1cImFkZE5ld1ZlcnNpb24oKVwiXG4gICAgICBkYXRhLWN5PVwiYnJhbmRpbmctYWRkLWJyYW5kaW5nLXZhcmlhbnRcIlxuICAgID5cbiAgICAgIDxpIGM4eUljb249XCJwbHVzLWNpcmNsZVwiPjwvaT5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5BZGQgdmFyaWFudDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuICA8Yzh5LWFjdGlvbi1iYXItaXRlbVxuICAgIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiXG4gICAgW3ByaW9yaXR5XT1cIjIwXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICAgIGRhdGEtY3k9XCJicmFuZGluZy1pbXBvcnQtYnJhbmRpbmdcIlxuICAgICAgKGNsaWNrKT1cImltcG9ydEJyYW5kaW5nKClcIlxuICAgID5cbiAgICAgIDxpIFtjOHlJY29uXT1cIidkYXRhLWltcG9ydCdcIj48L2k+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+SW1wb3J0IHZhcmlhbnQ8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuICA8Yzh5LWFjdGlvbi1iYXItaXRlbVxuICAgICpuZ0lmPVwiYnJhbmRpbmdWYXJpYW50LnB1YmxpY09wdGlvbnNcIlxuICAgIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiXG4gICAgW3ByaW9yaXR5XT1cIjEwXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICAgIChjbGljayk9XCJkZWxldGVBbGxCcmFuZGluZ3MoYnJhbmRpbmdWYXJpYW50LnB1YmxpY09wdGlvbnMpXCJcbiAgICAgIGRhdGEtY3k9XCJicmFuZGluZy1yZW1vdmUtYWxsLWJyYW5kaW5nc1wiXG4gICAgPlxuICAgICAgPGkgW2M4eUljb25dPVwiJ3RyYXNoLW8nXCI+PC9pPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPkRlbGV0ZSBhbGwgdmFyaWFudHM8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuICA8ZGl2IGNsYXNzPVwiY29udGVudC1mdWxscGFnZSBkLWZsZXggZC1jb2wgYm9yZGVyLXRvcFwiPlxuICAgIDxjOHktZGF0YS1ncmlkXG4gICAgICBbdGl0bGVdPVwiJ0JyYW5kaW5nIHZhcmlhbnRzJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgIFthY3Rpb25Db250cm9sc109XCJhY3Rpb25Db250cm9sc1wiXG4gICAgICBbcGFnaW5hdGlvbl09XCJwYWdpbmF0aW9uXCJcbiAgICAgIFtkaXNwbGF5T3B0aW9uc109XCJkaXNwbGF5T3B0aW9uc1wiXG4gICAgICAob25SZWxvYWQpPVwicmVmcmVzaCgpXCJcbiAgICAgIFtyb3dzXT1cImJyYW5kaW5nVmFyaWFudC52YXJpYW50c1wiXG4gICAgPlxuICAgICAgPGM4eS11aS1lbXB0eS1zdGF0ZVxuICAgICAgICBbaWNvbl09XCIncGFsZXR0ZSdcIlxuICAgICAgICBbdGl0bGVdPVwiJ05vIGJyYW5kaW5nIHZhcmlhbnRzJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtzdWJ0aXRsZV09XCJcbiAgICAgICAgICAnUGVyc29uYWxpemUgeW91ciBleHBlcmllbmNlIHdpdGggYSB0aGVtZS1hYmxlIGludGVyZmFjZS4gQ3JlYXRlIGEgdW5pcXVlIGxvb2sgdGhhdCBhbGlnbnNcbiAgICAgICAgICAgd2l0aCB5b3VyIGJyYW5kIGlkZW50aXR5LidcbiAgICAgICAgICAgIHwgdHJhbnNsYXRlXG4gICAgICAgIFwiXG4gICAgICAgICpuZ0lmPVwiIWJyYW5kaW5nVmFyaWFudC5wdWJsaWNPcHRpb25zXCJcbiAgICAgICAgW2hvcml6b250YWxdPVwiZmFsc2VcIlxuICAgICAgPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgICAgICAgIGRhdGEtY3k9XCJicmFuZGluZy1nZXQtc3RhcnRlZC11c2luZy1icmFuZGluZ1wiXG4gICAgICAgICAgKGNsaWNrKT1cImdldFN0YXJ0ZWRVc2luZ0JyYW5kaW5nKClcIlxuICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICA+XG4gICAgICAgICAgQWRkIGJyYW5kaW5nIHZhcmlhbnRcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2M4eS11aS1lbXB0eS1zdGF0ZT5cbiAgICA8L2M4eS1kYXRhLWdyaWQ+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZz5cbiAgPGM4eS1sb2FkaW5nPjwvYzh5LWxvYWRpbmc+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -12,7 +12,8 @@ export const DEFAULT_CONFIG = {
12
12
  globalSmartRules: true,
13
13
  smartRules: true,
14
14
  subassets: true,
15
- search: true
15
+ search: true,
16
+ dashboardManager: true
16
17
  },
17
18
  hideNavigator: false,
18
19
  homeDashboardName: DEFAULT_HOME_DASHBOARD_NAME,
@@ -37,4 +38,4 @@ export var HomeDashboardType;
37
38
  HomeDashboardType[HomeDashboardType["USER"] = 2] = "USER";
38
39
  })(HomeDashboardType || (HomeDashboardType = {}));
39
40
  export const COCKPIT_CONFIG_PATH = 'cockpit-application-configuration';
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ja3BpdC1jb25maWcubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb2NrcGl0LWNvbmZpZy9jb2NrcGl0LWNvbmZpZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxlQUFlLENBQUM7QUFDM0QsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsbUJBQW1CLENBQUM7QUEwQjVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBa0I7SUFDM0MsU0FBUyxFQUFFLEVBQUU7SUFDYixRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUUsSUFBSTtRQUNaLFlBQVksRUFBRSxJQUFJO1FBQ2xCLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLElBQUk7UUFDYixPQUFPLEVBQUUsSUFBSTtRQUNiLGdCQUFnQixFQUFFLElBQUk7UUFDdEIsZ0JBQWdCLEVBQUUsSUFBSTtRQUN0QixVQUFVLEVBQUUsSUFBSTtRQUNoQixTQUFTLEVBQUUsSUFBSTtRQUNmLE1BQU0sRUFBRSxJQUFJO0tBQ2I7SUFDRCxhQUFhLEVBQUUsS0FBSztJQUNwQixpQkFBaUIsRUFBRSwyQkFBMkI7SUFDOUMseUJBQXlCLEVBQUUsS0FBSztJQUNoQyxJQUFJLEVBQUU7UUFDSixLQUFLLEVBQUUsYUFBYTtLQUNyQjtDQUNGLENBQUM7QUFRRixNQUFNLENBQU4sSUFBWSxpQkFhWDtBQWJELFdBQVksaUJBQWlCO0lBQzNCOztPQUVHO0lBQ0gsK0RBQU8sQ0FBQTtJQUNQOztPQUVHO0lBQ0gsdURBQUcsQ0FBQTtJQUNIOztPQUVHO0lBQ0gseURBQUksQ0FBQTtBQUNOLENBQUMsRUFiVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBYTVCO0FBRUQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgREVGQVVMVF9IT01FX0RBU0hCT0FSRF9OQU1FID0gJ2hvbWUtY29ja3BpdDEnO1xuZXhwb3J0IGNvbnN0IFVTRVJfSE9NRV9EQVNIQk9BUkRfTkFNRSA9ICdob21lLWNvY2twaXQtdXNlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29ja3BpdENvbmZpZyB7XG4gIHJvb3ROb2RlczogQ29ja3BpdENvbmZpZ1Jvb3ROb2RlW107XG4gIGZlYXR1cmVzOiB7XG4gICAgYWxhcm1zOiBib29sZWFuO1xuICAgIGRhdGFFeHBsb3JlcjogYm9vbGVhbjtcbiAgICBncm91cHM6IGJvb2xlYW47XG4gICAgcmVwb3J0czogYm9vbGVhbjtcbiAgICBleHBvcnRzOiBib29sZWFuO1xuICAgIGRhdGFQb2ludExpYnJhcnk6IGJvb2xlYW47XG4gICAgZ2xvYmFsU21hcnRSdWxlczogYm9vbGVhbjtcbiAgICBzbWFydFJ1bGVzOiBib29sZWFuO1xuICAgIHN1YmFzc2V0czogYm9vbGVhbjtcbiAgICBzZWFyY2g6IGJvb2xlYW47XG4gICAgW2tleTogc3RyaW5nXTogYm9vbGVhbjtcbiAgfTtcbiAgaGlkZU5hdmlnYXRvcjogYm9vbGVhbjtcbiAgaG9tZURhc2hib2FyZE5hbWU6IHN0cmluZztcbiAgdXNlclNwZWNpZmljSG9tZURhc2hib2FyZDogYm9vbGVhbjtcbiAgaWNvbjoge1xuICAgIGNsYXNzOiBzdHJpbmc7XG4gIH07XG4gIGFwcFRpdGxlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9DT05GSUc6IENvY2twaXRDb25maWcgPSB7XG4gIHJvb3ROb2RlczogW10sXG4gIGZlYXR1cmVzOiB7XG4gICAgYWxhcm1zOiB0cnVlLFxuICAgIGRhdGFFeHBsb3JlcjogdHJ1ZSxcbiAgICBncm91cHM6IHRydWUsXG4gICAgcmVwb3J0czogdHJ1ZSxcbiAgICBleHBvcnRzOiB0cnVlLFxuICAgIGRhdGFQb2ludExpYnJhcnk6IHRydWUsXG4gICAgZ2xvYmFsU21hcnRSdWxlczogdHJ1ZSxcbiAgICBzbWFydFJ1bGVzOiB0cnVlLFxuICAgIHN1YmFzc2V0czogdHJ1ZSxcbiAgICBzZWFyY2g6IHRydWVcbiAgfSxcbiAgaGlkZU5hdmlnYXRvcjogZmFsc2UsXG4gIGhvbWVEYXNoYm9hcmROYW1lOiBERUZBVUxUX0hPTUVfREFTSEJPQVJEX05BTUUsXG4gIHVzZXJTcGVjaWZpY0hvbWVEYXNoYm9hcmQ6IGZhbHNlLFxuICBpY29uOiB7XG4gICAgY2xhc3M6ICdjOHktY29ja3BpdCdcbiAgfVxufTtcblxuZXhwb3J0IGludGVyZmFjZSBDb2NrcGl0Q29uZmlnUm9vdE5vZGUge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGhpZGVEZXZpY2VzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGVudW0gSG9tZURhc2hib2FyZFR5cGUge1xuICAvKipcbiAgICogU2hhcmVkIGJ5IGFsbCBDb2NrcGl0IGFwcHNcbiAgICovXG4gIERFRkFVTFQsXG4gIC8qKlxuICAgKiBPbmx5IGZvciB0aGUgY3VycmVudCBDb2NrcGl0LlxuICAgKi9cbiAgQVBQLFxuICAvKipcbiAgICogT25seSBmb3IgdGhlIGN1cnJlbnQgdXNlci5cbiAgICovXG4gIFVTRVJcbn1cblxuZXhwb3J0IGNvbnN0IENPQ0tQSVRfQ09ORklHX1BBVEggPSAnY29ja3BpdC1hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9uJztcbiJdfQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ja3BpdC1jb25maWcubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb2NrcGl0LWNvbmZpZy9jb2NrcGl0LWNvbmZpZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxlQUFlLENBQUM7QUFDM0QsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsbUJBQW1CLENBQUM7QUEyQjVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBa0I7SUFDM0MsU0FBUyxFQUFFLEVBQUU7SUFDYixRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUUsSUFBSTtRQUNaLFlBQVksRUFBRSxJQUFJO1FBQ2xCLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLElBQUk7UUFDYixPQUFPLEVBQUUsSUFBSTtRQUNiLGdCQUFnQixFQUFFLElBQUk7UUFDdEIsZ0JBQWdCLEVBQUUsSUFBSTtRQUN0QixVQUFVLEVBQUUsSUFBSTtRQUNoQixTQUFTLEVBQUUsSUFBSTtRQUNmLE1BQU0sRUFBRSxJQUFJO1FBQ1osZ0JBQWdCLEVBQUUsSUFBSTtLQUN2QjtJQUNELGFBQWEsRUFBRSxLQUFLO0lBQ3BCLGlCQUFpQixFQUFFLDJCQUEyQjtJQUM5Qyx5QkFBeUIsRUFBRSxLQUFLO0lBQ2hDLElBQUksRUFBRTtRQUNKLEtBQUssRUFBRSxhQUFhO0tBQ3JCO0NBQ0YsQ0FBQztBQVFGLE1BQU0sQ0FBTixJQUFZLGlCQWFYO0FBYkQsV0FBWSxpQkFBaUI7SUFDM0I7O09BRUc7SUFDSCwrREFBTyxDQUFBO0lBQ1A7O09BRUc7SUFDSCx1REFBRyxDQUFBO0lBQ0g7O09BRUc7SUFDSCx5REFBSSxDQUFBO0FBQ04sQ0FBQyxFQWJXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFhNUI7QUFFRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxtQ0FBbUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBERUZBVUxUX0hPTUVfREFTSEJPQVJEX05BTUUgPSAnaG9tZS1jb2NrcGl0MSc7XG5leHBvcnQgY29uc3QgVVNFUl9IT01FX0RBU0hCT0FSRF9OQU1FID0gJ2hvbWUtY29ja3BpdC11c2VyJztcblxuZXhwb3J0IGludGVyZmFjZSBDb2NrcGl0Q29uZmlnIHtcbiAgcm9vdE5vZGVzOiBDb2NrcGl0Q29uZmlnUm9vdE5vZGVbXTtcbiAgZmVhdHVyZXM6IHtcbiAgICBhbGFybXM6IGJvb2xlYW47XG4gICAgZGF0YUV4cGxvcmVyOiBib29sZWFuO1xuICAgIGdyb3VwczogYm9vbGVhbjtcbiAgICByZXBvcnRzOiBib29sZWFuO1xuICAgIGV4cG9ydHM6IGJvb2xlYW47XG4gICAgZGF0YVBvaW50TGlicmFyeTogYm9vbGVhbjtcbiAgICBnbG9iYWxTbWFydFJ1bGVzOiBib29sZWFuO1xuICAgIHNtYXJ0UnVsZXM6IGJvb2xlYW47XG4gICAgc3ViYXNzZXRzOiBib29sZWFuO1xuICAgIHNlYXJjaDogYm9vbGVhbjtcbiAgICBkYXNoYm9hcmRNYW5hZ2VyOiBib29sZWFuO1xuICAgIFtrZXk6IHN0cmluZ106IGJvb2xlYW47XG4gIH07XG4gIGhpZGVOYXZpZ2F0b3I6IGJvb2xlYW47XG4gIGhvbWVEYXNoYm9hcmROYW1lOiBzdHJpbmc7XG4gIHVzZXJTcGVjaWZpY0hvbWVEYXNoYm9hcmQ6IGJvb2xlYW47XG4gIGljb246IHtcbiAgICBjbGFzczogc3RyaW5nO1xuICB9O1xuICBhcHBUaXRsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ09ORklHOiBDb2NrcGl0Q29uZmlnID0ge1xuICByb290Tm9kZXM6IFtdLFxuICBmZWF0dXJlczoge1xuICAgIGFsYXJtczogdHJ1ZSxcbiAgICBkYXRhRXhwbG9yZXI6IHRydWUsXG4gICAgZ3JvdXBzOiB0cnVlLFxuICAgIHJlcG9ydHM6IHRydWUsXG4gICAgZXhwb3J0czogdHJ1ZSxcbiAgICBkYXRhUG9pbnRMaWJyYXJ5OiB0cnVlLFxuICAgIGdsb2JhbFNtYXJ0UnVsZXM6IHRydWUsXG4gICAgc21hcnRSdWxlczogdHJ1ZSxcbiAgICBzdWJhc3NldHM6IHRydWUsXG4gICAgc2VhcmNoOiB0cnVlLFxuICAgIGRhc2hib2FyZE1hbmFnZXI6IHRydWVcbiAgfSxcbiAgaGlkZU5hdmlnYXRvcjogZmFsc2UsXG4gIGhvbWVEYXNoYm9hcmROYW1lOiBERUZBVUxUX0hPTUVfREFTSEJPQVJEX05BTUUsXG4gIHVzZXJTcGVjaWZpY0hvbWVEYXNoYm9hcmQ6IGZhbHNlLFxuICBpY29uOiB7XG4gICAgY2xhc3M6ICdjOHktY29ja3BpdCdcbiAgfVxufTtcblxuZXhwb3J0IGludGVyZmFjZSBDb2NrcGl0Q29uZmlnUm9vdE5vZGUge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGhpZGVEZXZpY2VzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGVudW0gSG9tZURhc2hib2FyZFR5cGUge1xuICAvKipcbiAgICogU2hhcmVkIGJ5IGFsbCBDb2NrcGl0IGFwcHNcbiAgICovXG4gIERFRkFVTFQsXG4gIC8qKlxuICAgKiBPbmx5IGZvciB0aGUgY3VycmVudCBDb2NrcGl0LlxuICAgKi9cbiAgQVBQLFxuICAvKipcbiAgICogT25seSBmb3IgdGhlIGN1cnJlbnQgdXNlci5cbiAgICovXG4gIFVTRVJcbn1cblxuZXhwb3J0IGNvbnN0IENPQ0tQSVRfQ09ORklHX1BBVEggPSAnY29ja3BpdC1hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9uJztcbiJdfQ==
@@ -10,14 +10,14 @@ export class FeatureConfigComponent {
10
10
  this.onUpdate.emit();
11
11
  }
12
12
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FeatureConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: FeatureConfigComponent, selector: "c8y-feature-config", inputs: { config: "config" }, outputs: { onUpdate: "onUpdate" }, ngImport: i0, template: "<c8y-list-group>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"search\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Global search' | translate }}</p>\n <p>\n <small translate>Display the global search in the main header.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global search' | translate }}\"\n >\n <input\n name=\"search\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.search\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-group\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Groups' | translate }}</p>\n <p>\n <small translate>Display top level groups under the Groups navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Groups' | translate }}\"\n >\n <input\n name=\"groups\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.groups\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"bell\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Alarms' | translate }}</p>\n <p>\n <small translate>Display a link to the global alarms list in the navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global Alarms view' | translate }}\"\n >\n <input\n name=\"alarms\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.alarms\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-data-explorer\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Data explorer' | translate }}</p>\n <p>\n <small translate>\n Display the data explorer in the navigator menu and on the group tabs.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Data explorer' | translate }}\"\n >\n <input\n name=\"dataExplorer\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dataExplorer\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-reports\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Reports' | translate }}</p>\n <p>\n <small translate>Display a link to the Reports list in the navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Reports' | translate }}\"\n >\n <input\n name=\"reports\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.reports\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"graph-report\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Exports' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Exports list under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Exports' | translate }}\"\n >\n <input\n name=\"exports\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.exports\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-data-points\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Data point library' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Data point library under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Data point library' | translate }}\"\n >\n <input\n name=\"dataPointLibrary\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dataPointLibrary\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-smart-rules\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Global smart rules' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Global smart rules under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global smart rules' | translate }}\"\n >\n <input\n name=\"globalSmartRules\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.globalSmartRules\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-group-open\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Subassets view' | translate }}</p>\n <p><small translate>Display the \"Subassets\" tab on groups.</small></p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Subassets view' | translate }}\"\n >\n <input\n name=\"subassets\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.subassets\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-smart-rules\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Smart rules for devices and groups' | translate }}</p>\n <p>\n <small translate>Display the smart rules tab on groups and devices.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Smart rules for devices and groups' | translate }}\"\n >\n <input\n name=\"smartRules\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.smartRules\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n</c8y-list-group>\n", dependencies: [{ kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i1.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i1.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: FeatureConfigComponent, selector: "c8y-feature-config", inputs: { config: "config" }, outputs: { onUpdate: "onUpdate" }, ngImport: i0, template: "<c8y-list-group>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"search\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Global search' | translate }}</p>\n <p>\n <small translate>Display the global search in the main header.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global search' | translate }}\"\n >\n <input\n name=\"search\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.search\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-group\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Groups' | translate }}</p>\n <p>\n <small translate>Display top level groups under the Groups navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Groups' | translate }}\"\n >\n <input\n name=\"groups\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.groups\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"bell\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Alarms' | translate }}</p>\n <p>\n <small translate>Display a link to the global alarms list in the navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global Alarms view' | translate }}\"\n >\n <input\n name=\"alarms\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.alarms\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-data-explorer\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Data explorer' | translate }}</p>\n <p>\n <small translate>\n Display the data explorer in the navigator menu and on the group tabs.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Data explorer' | translate }}\"\n >\n <input\n name=\"dataExplorer\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dataExplorer\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-reports\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Reports' | translate }}</p>\n <p>\n <small translate>Display a link to the Reports list in the navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Reports' | translate }}\"\n >\n <input\n name=\"reports\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.reports\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"graph-report\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Exports' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Exports list under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Exports' | translate }}\"\n >\n <input\n name=\"exports\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.exports\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-data-points\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Data point library' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Data point library under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Data point library' | translate }}\"\n >\n <input\n name=\"dataPointLibrary\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dataPointLibrary\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-smart-rules\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Global smart rules' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Global smart rules under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global smart rules' | translate }}\"\n >\n <input\n name=\"globalSmartRules\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.globalSmartRules\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-group-open\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Subassets view' | translate }}</p>\n <p><small translate>Display the \"Subassets\" tab on groups.</small></p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Subassets view' | translate }}\"\n >\n <input\n name=\"subassets\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.subassets\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-smart-rules\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Smart rules for devices and groups' | translate }}</p>\n <p>\n <small translate>Display the smart rules tab on groups and devices.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Smart rules for devices and groups' | translate }}\"\n >\n <input\n name=\"smartRules\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.smartRules\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"management1\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Dashboard manager' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Dashboard manager under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Dashboard manager' | translate }}\"\n >\n <input\n name=\"dashboardManager\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dashboardManager\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n</c8y-list-group>\n", dependencies: [{ kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i1.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i1.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
14
14
  }
15
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FeatureConfigComponent, decorators: [{
16
16
  type: Component,
17
- args: [{ selector: 'c8y-feature-config', template: "<c8y-list-group>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"search\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Global search' | translate }}</p>\n <p>\n <small translate>Display the global search in the main header.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global search' | translate }}\"\n >\n <input\n name=\"search\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.search\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-group\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Groups' | translate }}</p>\n <p>\n <small translate>Display top level groups under the Groups navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Groups' | translate }}\"\n >\n <input\n name=\"groups\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.groups\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"bell\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Alarms' | translate }}</p>\n <p>\n <small translate>Display a link to the global alarms list in the navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global Alarms view' | translate }}\"\n >\n <input\n name=\"alarms\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.alarms\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-data-explorer\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Data explorer' | translate }}</p>\n <p>\n <small translate>\n Display the data explorer in the navigator menu and on the group tabs.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Data explorer' | translate }}\"\n >\n <input\n name=\"dataExplorer\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dataExplorer\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-reports\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Reports' | translate }}</p>\n <p>\n <small translate>Display a link to the Reports list in the navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Reports' | translate }}\"\n >\n <input\n name=\"reports\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.reports\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"graph-report\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Exports' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Exports list under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Exports' | translate }}\"\n >\n <input\n name=\"exports\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.exports\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-data-points\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Data point library' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Data point library under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Data point library' | translate }}\"\n >\n <input\n name=\"dataPointLibrary\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dataPointLibrary\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-smart-rules\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Global smart rules' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Global smart rules under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global smart rules' | translate }}\"\n >\n <input\n name=\"globalSmartRules\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.globalSmartRules\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-group-open\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Subassets view' | translate }}</p>\n <p><small translate>Display the \"Subassets\" tab on groups.</small></p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Subassets view' | translate }}\"\n >\n <input\n name=\"subassets\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.subassets\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-smart-rules\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Smart rules for devices and groups' | translate }}</p>\n <p>\n <small translate>Display the smart rules tab on groups and devices.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Smart rules for devices and groups' | translate }}\"\n >\n <input\n name=\"smartRules\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.smartRules\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n</c8y-list-group>\n" }]
17
+ args: [{ selector: 'c8y-feature-config', template: "<c8y-list-group>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"search\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Global search' | translate }}</p>\n <p>\n <small translate>Display the global search in the main header.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global search' | translate }}\"\n >\n <input\n name=\"search\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.search\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-group\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Groups' | translate }}</p>\n <p>\n <small translate>Display top level groups under the Groups navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Groups' | translate }}\"\n >\n <input\n name=\"groups\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.groups\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"bell\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Alarms' | translate }}</p>\n <p>\n <small translate>Display a link to the global alarms list in the navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global Alarms view' | translate }}\"\n >\n <input\n name=\"alarms\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.alarms\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-data-explorer\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Data explorer' | translate }}</p>\n <p>\n <small translate>\n Display the data explorer in the navigator menu and on the group tabs.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Data explorer' | translate }}\"\n >\n <input\n name=\"dataExplorer\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dataExplorer\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-reports\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Reports' | translate }}</p>\n <p>\n <small translate>Display a link to the Reports list in the navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Reports' | translate }}\"\n >\n <input\n name=\"reports\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.reports\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"graph-report\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Exports' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Exports list under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Exports' | translate }}\"\n >\n <input\n name=\"exports\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.exports\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-data-points\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Data point library' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Data point library under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Data point library' | translate }}\"\n >\n <input\n name=\"dataPointLibrary\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dataPointLibrary\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-smart-rules\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Global smart rules' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Global smart rules under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global smart rules' | translate }}\"\n >\n <input\n name=\"globalSmartRules\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.globalSmartRules\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-group-open\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Subassets view' | translate }}</p>\n <p><small translate>Display the \"Subassets\" tab on groups.</small></p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Subassets view' | translate }}\"\n >\n <input\n name=\"subassets\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.subassets\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-smart-rules\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Smart rules for devices and groups' | translate }}</p>\n <p>\n <small translate>Display the smart rules tab on groups and devices.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Smart rules for devices and groups' | translate }}\"\n >\n <input\n name=\"smartRules\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.smartRules\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"management1\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Dashboard manager' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Dashboard manager under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Dashboard manager' | translate }}\"\n >\n <input\n name=\"dashboardManager\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dashboardManager\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n</c8y-list-group>\n" }]
18
18
  }], propDecorators: { config: [{
19
19
  type: Input
20
20
  }], onUpdate: [{
21
21
  type: Output
22
22
  }] } });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1jb25maWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29ja3BpdC1jb25maWcvZmVhdHVyZS1jb25maWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vY29ja3BpdC1jb25maWcvZmVhdHVyZS1jb25maWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU92RSxNQUFNLE9BQU8sc0JBQXNCO0lBSm5DO1FBU0UsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FLckM7SUFIQyxjQUFjO1FBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDOzhHQVRVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDJIQ1BuQywrd09BOE9BOzsyRkR2T2Esc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNFLG9CQUFvQjs4QkFLOUIsTUFBTTtzQkFETCxLQUFLO2dCQUlOLFFBQVE7c0JBRFAsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2NrcGl0Q29uZmlnIH0gZnJvbSAnLi9jb2NrcGl0LWNvbmZpZy5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1mZWF0dXJlLWNvbmZpZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWF0dXJlLWNvbmZpZy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRmVhdHVyZUNvbmZpZ0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIGNvbmZpZzogQ29ja3BpdENvbmZpZztcblxuICBAT3V0cHV0KClcbiAgb25VcGRhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgdXBkYXRlRmVhdHVyZXMoKSB7XG4gICAgdGhpcy5vblVwZGF0ZS5lbWl0KCk7XG4gIH1cbn1cbiIsIjxjOHktbGlzdC1ncm91cD5cbiAgPGM4eS1saSBkYXRhLWN5PVwiZmVhdHVyZS1jb25maWctLWZlYXR1cmUtbGlzdFwiPlxuICAgIDxjOHktbGktaWNvbiBpY29uPVwic2VhcmNoXCI+PC9jOHktbGktaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXJcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxwPnt7ICdHbG9iYWwgc2VhcmNoJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPHNtYWxsIHRyYW5zbGF0ZT5EaXNwbGF5IHRoZSBnbG9iYWwgc2VhcmNoIGluIHRoZSBtYWluIGhlYWRlci48L3NtYWxsPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cImM4eS1zd2l0Y2ggYzh5LXN3aXRjaC0taW5saW5lIG0tbC1hdXRvXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnR2xvYmFsIHNlYXJjaCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBuYW1lPVwic2VhcmNoXCJcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnLmZlYXR1cmVzLnNlYXJjaFwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVGZWF0dXJlcygpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgPC9jOHktbGk+XG4gIDxjOHktbGkgZGF0YS1jeT1cImZlYXR1cmUtY29uZmlnLS1mZWF0dXJlLWxpc3RcIj5cbiAgICA8Yzh5LWxpLWljb24gaWNvbj1cImM4eS1ncm91cFwiPjwvYzh5LWxpLWljb24+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8cD57eyAnR3JvdXBzJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPHNtYWxsIHRyYW5zbGF0ZT5EaXNwbGF5IHRvcCBsZXZlbCBncm91cHMgdW5kZXIgdGhlIEdyb3VwcyBuYXZpZ2F0b3IgbWVudS48L3NtYWxsPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cImM4eS1zd2l0Y2ggYzh5LXN3aXRjaC0taW5saW5lIG0tbC1hdXRvXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnR3JvdXBzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJncm91cHNcIlxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWcuZmVhdHVyZXMuZ3JvdXBzXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUZlYXR1cmVzKClcIlxuICAgICAgICAvPlxuICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2M4eS1saT5cbiAgPGM4eS1saSBkYXRhLWN5PVwiZmVhdHVyZS1jb25maWctLWZlYXR1cmUtbGlzdFwiPlxuICAgIDxjOHktbGktaWNvbiBpY29uPVwiYmVsbFwiPjwvYzh5LWxpLWljb24+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8cD57eyAnQWxhcm1zJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPHNtYWxsIHRyYW5zbGF0ZT5EaXNwbGF5IGEgbGluayB0byB0aGUgZ2xvYmFsIGFsYXJtcyBsaXN0IGluIHRoZSBuYXZpZ2F0b3IgbWVudS48L3NtYWxsPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cImM4eS1zd2l0Y2ggYzh5LXN3aXRjaC0taW5saW5lIG0tbC1hdXRvXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnR2xvYmFsIEFsYXJtcyB2aWV3JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJhbGFybXNcIlxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWcuZmVhdHVyZXMuYWxhcm1zXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUZlYXR1cmVzKClcIlxuICAgICAgICAvPlxuICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2M4eS1saT5cbiAgPGM4eS1saSBkYXRhLWN5PVwiZmVhdHVyZS1jb25maWctLWZlYXR1cmUtbGlzdFwiPlxuICAgIDxjOHktbGktaWNvbiBpY29uPVwiYzh5LWRhdGEtZXhwbG9yZXJcIj48L2M4eS1saS1pY29uPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYS1pLWNlbnRlclwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPHA+e3sgJ0RhdGEgZXhwbG9yZXInIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8cD5cbiAgICAgICAgICA8c21hbGwgdHJhbnNsYXRlPlxuICAgICAgICAgICAgRGlzcGxheSB0aGUgZGF0YSBleHBsb3JlciBpbiB0aGUgbmF2aWdhdG9yIG1lbnUgYW5kIG9uIHRoZSBncm91cCB0YWJzLlxuICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiYzh5LXN3aXRjaCBjOHktc3dpdGNoLS1pbmxpbmUgbS1sLWF1dG9cIlxuICAgICAgICB0aXRsZT1cInt7ICdEYXRhIGV4cGxvcmVyJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJkYXRhRXhwbG9yZXJcIlxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWcuZmVhdHVyZXMuZGF0YUV4cGxvcmVyXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUZlYXR1cmVzKClcIlxuICAgICAgICAvPlxuICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2M4eS1saT5cbiAgPGM4eS1saSBkYXRhLWN5PVwiZmVhdHVyZS1jb25maWctLWZlYXR1cmUtbGlzdFwiPlxuICAgIDxjOHktbGktaWNvbiBpY29uPVwiYzh5LXJlcG9ydHNcIj48L2M4eS1saS1pY29uPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYS1pLWNlbnRlclwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPHA+e3sgJ1JlcG9ydHMnIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8cD5cbiAgICAgICAgICA8c21hbGwgdHJhbnNsYXRlPkRpc3BsYXkgYSBsaW5rIHRvIHRoZSBSZXBvcnRzIGxpc3QgaW4gdGhlIG5hdmlnYXRvciBtZW51Ljwvc21hbGw+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiYzh5LXN3aXRjaCBjOHktc3dpdGNoLS1pbmxpbmUgbS1sLWF1dG9cIlxuICAgICAgICB0aXRsZT1cInt7ICdSZXBvcnRzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJyZXBvcnRzXCJcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnLmZlYXR1cmVzLnJlcG9ydHNcIlxuICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlRmVhdHVyZXMoKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIDwvYzh5LWxpPlxuICA8Yzh5LWxpIGRhdGEtY3k9XCJmZWF0dXJlLWNvbmZpZy0tZmVhdHVyZS1saXN0XCI+XG4gICAgPGM4eS1saS1pY29uIGljb249XCJncmFwaC1yZXBvcnRcIj48L2M4eS1saS1pY29uPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYS1pLWNlbnRlclwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPHA+e3sgJ0V4cG9ydHMnIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8cD5cbiAgICAgICAgICA8c21hbGwgdHJhbnNsYXRlPlxuICAgICAgICAgICAgRGlzcGxheSBhIGxpbmsgdG8gdGhlIEV4cG9ydHMgbGlzdCB1bmRlciB0aGUgQ29uZmlndXJhdGlvbiBuYXZpZ2F0b3IgbWVudS5cbiAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cImM4eS1zd2l0Y2ggYzh5LXN3aXRjaC0taW5saW5lIG0tbC1hdXRvXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnRXhwb3J0cycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBuYW1lPVwiZXhwb3J0c1wiXG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZy5mZWF0dXJlcy5leHBvcnRzXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUZlYXR1cmVzKClcIlxuICAgICAgICAvPlxuICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2M4eS1saT5cbiAgPGM4eS1saSBkYXRhLWN5PVwiZmVhdHVyZS1jb25maWctLWZlYXR1cmUtbGlzdFwiPlxuICAgIDxjOHktbGktaWNvbiBpY29uPVwiYzh5LWRhdGEtcG9pbnRzXCI+PC9jOHktbGktaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXJcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxwPnt7ICdEYXRhIHBvaW50IGxpYnJhcnknIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8cD5cbiAgICAgICAgICA8c21hbGwgdHJhbnNsYXRlPlxuICAgICAgICAgICAgRGlzcGxheSBhIGxpbmsgdG8gdGhlIERhdGEgcG9pbnQgbGlicmFyeSB1bmRlciB0aGUgQ29uZmlndXJhdGlvbiBuYXZpZ2F0b3IgbWVudS5cbiAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cImM4eS1zd2l0Y2ggYzh5LXN3aXRjaC0taW5saW5lIG0tbC1hdXRvXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnRGF0YSBwb2ludCBsaWJyYXJ5JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJkYXRhUG9pbnRMaWJyYXJ5XCJcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnLmZlYXR1cmVzLmRhdGFQb2ludExpYnJhcnlcIlxuICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlRmVhdHVyZXMoKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIDwvYzh5LWxpPlxuICA8Yzh5LWxpIGRhdGEtY3k9XCJmZWF0dXJlLWNvbmZpZy0tZmVhdHVyZS1saXN0XCI+XG4gICAgPGM4eS1saS1pY29uIGljb249XCJjOHktc21hcnQtcnVsZXNcIj48L2M4eS1saS1pY29uPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYS1pLWNlbnRlclwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPHA+e3sgJ0dsb2JhbCBzbWFydCBydWxlcycgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgIDxwPlxuICAgICAgICAgIDxzbWFsbCB0cmFuc2xhdGU+XG4gICAgICAgICAgICBEaXNwbGF5IGEgbGluayB0byB0aGUgR2xvYmFsIHNtYXJ0IHJ1bGVzIHVuZGVyIHRoZSBDb25maWd1cmF0aW9uIG5hdmlnYXRvciBtZW51LlxuICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiYzh5LXN3aXRjaCBjOHktc3dpdGNoLS1pbmxpbmUgbS1sLWF1dG9cIlxuICAgICAgICB0aXRsZT1cInt7ICdHbG9iYWwgc21hcnQgcnVsZXMnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgID5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgbmFtZT1cImdsb2JhbFNtYXJ0UnVsZXNcIlxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWcuZmVhdHVyZXMuZ2xvYmFsU21hcnRSdWxlc1wiXG4gICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVGZWF0dXJlcygpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgPC9jOHktbGk+XG4gIDxjOHktbGkgZGF0YS1jeT1cImZlYXR1cmUtY29uZmlnLS1mZWF0dXJlLWxpc3RcIj5cbiAgICA8Yzh5LWxpLWljb24gaWNvbj1cImM4eS1ncm91cC1vcGVuXCI+PC9jOHktbGktaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXJcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxwPnt7ICdTdWJhc3NldHMgdmlldycgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgIDxwPjxzbWFsbCB0cmFuc2xhdGU+RGlzcGxheSB0aGUgXCJTdWJhc3NldHNcIiB0YWIgb24gZ3JvdXBzLjwvc21hbGw+PC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8bGFiZWxcbiAgICAgICAgY2xhc3M9XCJjOHktc3dpdGNoIGM4eS1zd2l0Y2gtLWlubGluZSBtLWwtYXV0b1wiXG4gICAgICAgIHRpdGxlPVwie3sgJ1N1YmFzc2V0cyB2aWV3JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJzdWJhc3NldHNcIlxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWcuZmVhdHVyZXMuc3ViYXNzZXRzXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUZlYXR1cmVzKClcIlxuICAgICAgICAvPlxuICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2M4eS1saT5cbiAgPGM4eS1saSBkYXRhLWN5PVwiZmVhdHVyZS1jb25maWctLWZlYXR1cmUtbGlzdFwiPlxuICAgIDxjOHktbGktaWNvbiBpY29uPVwiYzh5LXNtYXJ0LXJ1bGVzXCI+PC9jOHktbGktaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXJcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxwPnt7ICdTbWFydCBydWxlcyBmb3IgZGV2aWNlcyBhbmQgZ3JvdXBzJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPHNtYWxsIHRyYW5zbGF0ZT5EaXNwbGF5IHRoZSBzbWFydCBydWxlcyB0YWIgb24gZ3JvdXBzIGFuZCBkZXZpY2VzLjwvc21hbGw+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiYzh5LXN3aXRjaCBjOHktc3dpdGNoLS1pbmxpbmUgbS1sLWF1dG9cIlxuICAgICAgICB0aXRsZT1cInt7ICdTbWFydCBydWxlcyBmb3IgZGV2aWNlcyBhbmQgZ3JvdXBzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJzbWFydFJ1bGVzXCJcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnLmZlYXR1cmVzLnNtYXJ0UnVsZXNcIlxuICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlRmVhdHVyZXMoKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIDwvYzh5LWxpPlxuPC9jOHktbGlzdC1ncm91cD5cbiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1jb25maWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29ja3BpdC1jb25maWcvZmVhdHVyZS1jb25maWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vY29ja3BpdC1jb25maWcvZmVhdHVyZS1jb25maWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU92RSxNQUFNLE9BQU8sc0JBQXNCO0lBSm5DO1FBU0UsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FLckM7SUFIQyxjQUFjO1FBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDOzhHQVRVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDJIQ1BuQyx3aVFBdVFBOzsyRkRoUWEsc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNFLG9CQUFvQjs4QkFLOUIsTUFBTTtzQkFETCxLQUFLO2dCQUlOLFFBQVE7c0JBRFAsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2NrcGl0Q29uZmlnIH0gZnJvbSAnLi9jb2NrcGl0LWNvbmZpZy5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1mZWF0dXJlLWNvbmZpZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWF0dXJlLWNvbmZpZy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRmVhdHVyZUNvbmZpZ0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIGNvbmZpZzogQ29ja3BpdENvbmZpZztcblxuICBAT3V0cHV0KClcbiAgb25VcGRhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgdXBkYXRlRmVhdHVyZXMoKSB7XG4gICAgdGhpcy5vblVwZGF0ZS5lbWl0KCk7XG4gIH1cbn1cbiIsIjxjOHktbGlzdC1ncm91cD5cbiAgPGM4eS1saSBkYXRhLWN5PVwiZmVhdHVyZS1jb25maWctLWZlYXR1cmUtbGlzdFwiPlxuICAgIDxjOHktbGktaWNvbiBpY29uPVwic2VhcmNoXCI+PC9jOHktbGktaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXJcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxwPnt7ICdHbG9iYWwgc2VhcmNoJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPHNtYWxsIHRyYW5zbGF0ZT5EaXNwbGF5IHRoZSBnbG9iYWwgc2VhcmNoIGluIHRoZSBtYWluIGhlYWRlci48L3NtYWxsPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cImM4eS1zd2l0Y2ggYzh5LXN3aXRjaC0taW5saW5lIG0tbC1hdXRvXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnR2xvYmFsIHNlYXJjaCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBuYW1lPVwic2VhcmNoXCJcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnLmZlYXR1cmVzLnNlYXJjaFwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVGZWF0dXJlcygpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgPC9jOHktbGk+XG4gIDxjOHktbGkgZGF0YS1jeT1cImZlYXR1cmUtY29uZmlnLS1mZWF0dXJlLWxpc3RcIj5cbiAgICA8Yzh5LWxpLWljb24gaWNvbj1cImM4eS1ncm91cFwiPjwvYzh5LWxpLWljb24+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8cD57eyAnR3JvdXBzJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPHNtYWxsIHRyYW5zbGF0ZT5EaXNwbGF5IHRvcCBsZXZlbCBncm91cHMgdW5kZXIgdGhlIEdyb3VwcyBuYXZpZ2F0b3IgbWVudS48L3NtYWxsPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cImM4eS1zd2l0Y2ggYzh5LXN3aXRjaC0taW5saW5lIG0tbC1hdXRvXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnR3JvdXBzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJncm91cHNcIlxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWcuZmVhdHVyZXMuZ3JvdXBzXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUZlYXR1cmVzKClcIlxuICAgICAgICAvPlxuICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2M4eS1saT5cbiAgPGM4eS1saSBkYXRhLWN5PVwiZmVhdHVyZS1jb25maWctLWZlYXR1cmUtbGlzdFwiPlxuICAgIDxjOHktbGktaWNvbiBpY29uPVwiYmVsbFwiPjwvYzh5LWxpLWljb24+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8cD57eyAnQWxhcm1zJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPHNtYWxsIHRyYW5zbGF0ZT5EaXNwbGF5IGEgbGluayB0byB0aGUgZ2xvYmFsIGFsYXJtcyBsaXN0IGluIHRoZSBuYXZpZ2F0b3IgbWVudS48L3NtYWxsPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cImM4eS1zd2l0Y2ggYzh5LXN3aXRjaC0taW5saW5lIG0tbC1hdXRvXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnR2xvYmFsIEFsYXJtcyB2aWV3JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJhbGFybXNcIlxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWcuZmVhdHVyZXMuYWxhcm1zXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUZlYXR1cmVzKClcIlxuICAgICAgICAvPlxuICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2M4eS1saT5cbiAgPGM4eS1saSBkYXRhLWN5PVwiZmVhdHVyZS1jb25maWctLWZlYXR1cmUtbGlzdFwiPlxuICAgIDxjOHktbGktaWNvbiBpY29uPVwiYzh5LWRhdGEtZXhwbG9yZXJcIj48L2M4eS1saS1pY29uPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYS1pLWNlbnRlclwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPHA+e3sgJ0RhdGEgZXhwbG9yZXInIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8cD5cbiAgICAgICAgICA8c21hbGwgdHJhbnNsYXRlPlxuICAgICAgICAgICAgRGlzcGxheSB0aGUgZGF0YSBleHBsb3JlciBpbiB0aGUgbmF2aWdhdG9yIG1lbnUgYW5kIG9uIHRoZSBncm91cCB0YWJzLlxuICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiYzh5LXN3aXRjaCBjOHktc3dpdGNoLS1pbmxpbmUgbS1sLWF1dG9cIlxuICAgICAgICB0aXRsZT1cInt7ICdEYXRhIGV4cGxvcmVyJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJkYXRhRXhwbG9yZXJcIlxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWcuZmVhdHVyZXMuZGF0YUV4cGxvcmVyXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUZlYXR1cmVzKClcIlxuICAgICAgICAvPlxuICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2M4eS1saT5cbiAgPGM4eS1saSBkYXRhLWN5PVwiZmVhdHVyZS1jb25maWctLWZlYXR1cmUtbGlzdFwiPlxuICAgIDxjOHktbGktaWNvbiBpY29uPVwiYzh5LXJlcG9ydHNcIj48L2M4eS1saS1pY29uPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYS1pLWNlbnRlclwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPHA+e3sgJ1JlcG9ydHMnIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8cD5cbiAgICAgICAgICA8c21hbGwgdHJhbnNsYXRlPkRpc3BsYXkgYSBsaW5rIHRvIHRoZSBSZXBvcnRzIGxpc3QgaW4gdGhlIG5hdmlnYXRvciBtZW51Ljwvc21hbGw+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiYzh5LXN3aXRjaCBjOHktc3dpdGNoLS1pbmxpbmUgbS1sLWF1dG9cIlxuICAgICAgICB0aXRsZT1cInt7ICdSZXBvcnRzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJyZXBvcnRzXCJcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnLmZlYXR1cmVzLnJlcG9ydHNcIlxuICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlRmVhdHVyZXMoKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIDwvYzh5LWxpPlxuICA8Yzh5LWxpIGRhdGEtY3k9XCJmZWF0dXJlLWNvbmZpZy0tZmVhdHVyZS1saXN0XCI+XG4gICAgPGM4eS1saS1pY29uIGljb249XCJncmFwaC1yZXBvcnRcIj48L2M4eS1saS1pY29uPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYS1pLWNlbnRlclwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPHA+e3sgJ0V4cG9ydHMnIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8cD5cbiAgICAgICAgICA8c21hbGwgdHJhbnNsYXRlPlxuICAgICAgICAgICAgRGlzcGxheSBhIGxpbmsgdG8gdGhlIEV4cG9ydHMgbGlzdCB1bmRlciB0aGUgQ29uZmlndXJhdGlvbiBuYXZpZ2F0b3IgbWVudS5cbiAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cImM4eS1zd2l0Y2ggYzh5LXN3aXRjaC0taW5saW5lIG0tbC1hdXRvXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnRXhwb3J0cycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBuYW1lPVwiZXhwb3J0c1wiXG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZy5mZWF0dXJlcy5leHBvcnRzXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUZlYXR1cmVzKClcIlxuICAgICAgICAvPlxuICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2M4eS1saT5cbiAgPGM4eS1saSBkYXRhLWN5PVwiZmVhdHVyZS1jb25maWctLWZlYXR1cmUtbGlzdFwiPlxuICAgIDxjOHktbGktaWNvbiBpY29uPVwiYzh5LWRhdGEtcG9pbnRzXCI+PC9jOHktbGktaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXJcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxwPnt7ICdEYXRhIHBvaW50IGxpYnJhcnknIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8cD5cbiAgICAgICAgICA8c21hbGwgdHJhbnNsYXRlPlxuICAgICAgICAgICAgRGlzcGxheSBhIGxpbmsgdG8gdGhlIERhdGEgcG9pbnQgbGlicmFyeSB1bmRlciB0aGUgQ29uZmlndXJhdGlvbiBuYXZpZ2F0b3IgbWVudS5cbiAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cImM4eS1zd2l0Y2ggYzh5LXN3aXRjaC0taW5saW5lIG0tbC1hdXRvXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnRGF0YSBwb2ludCBsaWJyYXJ5JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJkYXRhUG9pbnRMaWJyYXJ5XCJcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnLmZlYXR1cmVzLmRhdGFQb2ludExpYnJhcnlcIlxuICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlRmVhdHVyZXMoKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIDwvYzh5LWxpPlxuICA8Yzh5LWxpIGRhdGEtY3k9XCJmZWF0dXJlLWNvbmZpZy0tZmVhdHVyZS1saXN0XCI+XG4gICAgPGM4eS1saS1pY29uIGljb249XCJjOHktc21hcnQtcnVsZXNcIj48L2M4eS1saS1pY29uPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYS1pLWNlbnRlclwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPHA+e3sgJ0dsb2JhbCBzbWFydCBydWxlcycgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgIDxwPlxuICAgICAgICAgIDxzbWFsbCB0cmFuc2xhdGU+XG4gICAgICAgICAgICBEaXNwbGF5IGEgbGluayB0byB0aGUgR2xvYmFsIHNtYXJ0IHJ1bGVzIHVuZGVyIHRoZSBDb25maWd1cmF0aW9uIG5hdmlnYXRvciBtZW51LlxuICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiYzh5LXN3aXRjaCBjOHktc3dpdGNoLS1pbmxpbmUgbS1sLWF1dG9cIlxuICAgICAgICB0aXRsZT1cInt7ICdHbG9iYWwgc21hcnQgcnVsZXMnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgID5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgbmFtZT1cImdsb2JhbFNtYXJ0UnVsZXNcIlxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWcuZmVhdHVyZXMuZ2xvYmFsU21hcnRSdWxlc1wiXG4gICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVGZWF0dXJlcygpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgPC9jOHktbGk+XG4gIDxjOHktbGkgZGF0YS1jeT1cImZlYXR1cmUtY29uZmlnLS1mZWF0dXJlLWxpc3RcIj5cbiAgICA8Yzh5LWxpLWljb24gaWNvbj1cImM4eS1ncm91cC1vcGVuXCI+PC9jOHktbGktaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXJcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxwPnt7ICdTdWJhc3NldHMgdmlldycgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgIDxwPjxzbWFsbCB0cmFuc2xhdGU+RGlzcGxheSB0aGUgXCJTdWJhc3NldHNcIiB0YWIgb24gZ3JvdXBzLjwvc21hbGw+PC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8bGFiZWxcbiAgICAgICAgY2xhc3M9XCJjOHktc3dpdGNoIGM4eS1zd2l0Y2gtLWlubGluZSBtLWwtYXV0b1wiXG4gICAgICAgIHRpdGxlPVwie3sgJ1N1YmFzc2V0cyB2aWV3JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJzdWJhc3NldHNcIlxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWcuZmVhdHVyZXMuc3ViYXNzZXRzXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUZlYXR1cmVzKClcIlxuICAgICAgICAvPlxuICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2M4eS1saT5cbiAgPGM4eS1saSBkYXRhLWN5PVwiZmVhdHVyZS1jb25maWctLWZlYXR1cmUtbGlzdFwiPlxuICAgIDxjOHktbGktaWNvbiBpY29uPVwiYzh5LXNtYXJ0LXJ1bGVzXCI+PC9jOHktbGktaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXJcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxwPnt7ICdTbWFydCBydWxlcyBmb3IgZGV2aWNlcyBhbmQgZ3JvdXBzJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPHNtYWxsIHRyYW5zbGF0ZT5EaXNwbGF5IHRoZSBzbWFydCBydWxlcyB0YWIgb24gZ3JvdXBzIGFuZCBkZXZpY2VzLjwvc21hbGw+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiYzh5LXN3aXRjaCBjOHktc3dpdGNoLS1pbmxpbmUgbS1sLWF1dG9cIlxuICAgICAgICB0aXRsZT1cInt7ICdTbWFydCBydWxlcyBmb3IgZGV2aWNlcyBhbmQgZ3JvdXBzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG5hbWU9XCJzbWFydFJ1bGVzXCJcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnLmZlYXR1cmVzLnNtYXJ0UnVsZXNcIlxuICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlRmVhdHVyZXMoKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIDwvYzh5LWxpPlxuICA8Yzh5LWxpIGRhdGEtY3k9XCJmZWF0dXJlLWNvbmZpZy0tZmVhdHVyZS1saXN0XCI+XG4gICAgPGM4eS1saS1pY29uIGljb249XCJtYW5hZ2VtZW50MVwiPjwvYzh5LWxpLWljb24+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8cD57eyAnRGFzaGJvYXJkIG1hbmFnZXInIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8cD5cbiAgICAgICAgICA8c21hbGwgdHJhbnNsYXRlPlxuICAgICAgICAgICAgRGlzcGxheSBhIGxpbmsgdG8gdGhlIERhc2hib2FyZCBtYW5hZ2VyIHVuZGVyIHRoZSBDb25maWd1cmF0aW9uIG5hdmlnYXRvciBtZW51LlxuICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiYzh5LXN3aXRjaCBjOHktc3dpdGNoLS1pbmxpbmUgbS1sLWF1dG9cIlxuICAgICAgICB0aXRsZT1cInt7ICdEYXNoYm9hcmQgbWFuYWdlcicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBuYW1lPVwiZGFzaGJvYXJkTWFuYWdlclwiXG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZy5mZWF0dXJlcy5kYXNoYm9hcmRNYW5hZ2VyXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUZlYXR1cmVzKClcIlxuICAgICAgICAvPlxuICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2M4eS1saT5cbjwvYzh5LWxpc3QtZ3JvdXA+XG4iXX0=
@@ -32,7 +32,8 @@ export class DashboardManagerModule {
32
32
  path: DASHBOARD_MANAGER_PATH,
33
33
  label: gettext('Dashboard manager'),
34
34
  icon: 'management1',
35
- routerLinkExact: false
35
+ routerLinkExact: false,
36
+ featureId: 'dashboardManager'
36
37
  }))
37
38
  ], imports: [CoreModule, TooltipModule, DeviceGridModule, ContextDashboardModule, ModalModule] }); }
38
39
  }
@@ -63,9 +64,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
63
64
  path: DASHBOARD_MANAGER_PATH,
64
65
  label: gettext('Dashboard manager'),
65
66
  icon: 'management1',
66
- routerLinkExact: false
67
+ routerLinkExact: false,
68
+ featureId: 'dashboardManager'
67
69
  }))
68
70
  ]
69
71
  }]
70
72
  }] });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLW1hbmFnZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29udGV4dC1kYXNoYm9hcmQvZGFzaGJvYXJkLW1hbmFnZXIvZGFzaGJvYXJkLW1hbmFnZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNMLFVBQVUsRUFDVixPQUFPLEVBQ1AsYUFBYSxFQUNiLFNBQVMsRUFDVCxPQUFPLEVBQ1AsV0FBVyxFQUNYLGFBQWEsRUFDZCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSxtRkFBbUYsQ0FBQztBQUM1SSxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxpRkFBaUYsQ0FBQzs7QUFFekksTUFBTSxzQkFBc0IsR0FBRyxtQkFBbUIsQ0FBQztBQWlDbkQsTUFBTSxPQUFPLHNCQUFzQjs4R0FBdEIsc0JBQXNCOytHQUF0QixzQkFBc0IsaUJBN0IvQiwyQkFBMkI7WUFDM0IsdUNBQXVDO1lBQ3ZDLHNDQUFzQyxhQUU5QixVQUFVLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLFdBQVc7K0dBeUIvRSxzQkFBc0IsYUF4QnRCO1lBQ1QsT0FBTyxDQUFDLDJCQUEyQixDQUFDO1lBQ3BDLFNBQVMsQ0FBQztnQkFDUjtvQkFDRSxJQUFJLEVBQUUsc0JBQXNCO29CQUM1QixVQUFVLEVBQUUsR0FBRyxzQkFBc0Isa0JBQWtCO29CQUN2RCxTQUFTLEVBQUUsTUFBTTtpQkFDbEI7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLEdBQUcsc0JBQXNCLGtCQUFrQjtvQkFDakQsU0FBUyxFQUFFLDJCQUEyQjtpQkFDdkM7YUFDRixDQUFDO1lBQ0YsYUFBYSxDQUNYLElBQUksYUFBYSxDQUFDO2dCQUNoQixNQUFNLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQztnQkFDaEMsSUFBSSxFQUFFLHNCQUFzQjtnQkFDNUIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztnQkFDbkMsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLGVBQWUsRUFBRSxLQUFLO2FBQ3ZCLENBQUMsQ0FDSDtTQUNGLFlBdkJTLFVBQVUsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsV0FBVzs7MkZBeUIvRSxzQkFBc0I7a0JBL0JsQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWiwyQkFBMkI7d0JBQzNCLHVDQUF1Qzt3QkFDdkMsc0NBQXNDO3FCQUN2QztvQkFDRCxPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLFdBQVcsQ0FBQztvQkFDM0YsU0FBUyxFQUFFO3dCQUNULE9BQU8sQ0FBQywyQkFBMkIsQ0FBQzt3QkFDcEMsU0FBUyxDQUFDOzRCQUNSO2dDQUNFLElBQUksRUFBRSxzQkFBc0I7Z0NBQzVCLFVBQVUsRUFBRSxHQUFHLHNCQUFzQixrQkFBa0I7Z0NBQ3ZELFNBQVMsRUFBRSxNQUFNOzZCQUNsQjs0QkFDRDtnQ0FDRSxJQUFJLEVBQUUsR0FBRyxzQkFBc0Isa0JBQWtCO2dDQUNqRCxTQUFTLEVBQUUsMkJBQTJCOzZCQUN2Qzt5QkFDRixDQUFDO3dCQUNGLGFBQWEsQ0FDWCxJQUFJLGFBQWEsQ0FBQzs0QkFDaEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUM7NEJBQ2hDLElBQUksRUFBRSxzQkFBc0I7NEJBQzVCLEtBQUssRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUM7NEJBQ25DLElBQUksRUFBRSxhQUFhOzRCQUNuQixlQUFlLEVBQUUsS0FBSzt5QkFDdkIsQ0FBQyxDQUNIO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvcmVNb2R1bGUsXG4gIGdldHRleHQsXG4gIGhvb2tOYXZpZ2F0b3IsXG4gIGhvb2tSb3V0ZSxcbiAgaG9va1RhYixcbiAgTW9kYWxNb2R1bGUsXG4gIE5hdmlnYXRvck5vZGVcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC90b29sdGlwJztcbmltcG9ydCB7IERldmljZUdyaWRNb2R1bGUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2RldmljZS1ncmlkJztcbmltcG9ydCB7IERhc2hib2FyZE1hbmFnZXJUYWJzRmFjdG9yeSB9IGZyb20gJy4vZGFzaGJvYXJkLW1hbmFnZXItdGFicy5mYWN0b3J5JztcbmltcG9ydCB7IFR5cGVEYXNoYm9hcmRzTGlzdENvbXBvbmVudCB9IGZyb20gJy4vdHlwZS1kYXNoYm9hcmRzLWxpc3QvdHlwZS1kYXNoYm9hcmRzLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IENvbnRleHREYXNoYm9hcmRNb2R1bGUgfSBmcm9tICcuLi9jb250ZXh0LWRhc2hib2FyZC5tb2R1bGUnO1xuaW1wb3J0IHsgVHlwZURhc2hib2FyZFRhcmdldEFzc2V0c01vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi90eXBlLWRhc2hib2FyZC10YXJnZXQtYXNzZXRzLW1vZGFsL3R5cGUtZGFzaGJvYXJkLXRhcmdldC1hc3NldHMtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IFR5cGVEYXNoYm9hcmRUYXJnZXRBc3NldHNHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi90eXBlLWRhc2hib2FyZC10YXJnZXQtYXNzZXRzLWdyaWQvdHlwZS1kYXNoYm9hcmQtdGFyZ2V0LWFzc2V0cy1ncmlkLmNvbXBvbmVudCc7XG5cbmNvbnN0IERBU0hCT0FSRF9NQU5BR0VSX1BBVEggPSAnZGFzaGJvYXJkLW1hbmFnZXInO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBUeXBlRGFzaGJvYXJkc0xpc3RDb21wb25lbnQsXG4gICAgVHlwZURhc2hib2FyZFRhcmdldEFzc2V0c01vZGFsQ29tcG9uZW50LFxuICAgIFR5cGVEYXNoYm9hcmRUYXJnZXRBc3NldHNHcmlkQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBUb29sdGlwTW9kdWxlLCBEZXZpY2VHcmlkTW9kdWxlLCBDb250ZXh0RGFzaGJvYXJkTW9kdWxlLCBNb2RhbE1vZHVsZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIGhvb2tUYWIoRGFzaGJvYXJkTWFuYWdlclRhYnNGYWN0b3J5KSxcbiAgICBob29rUm91dGUoW1xuICAgICAge1xuICAgICAgICBwYXRoOiBEQVNIQk9BUkRfTUFOQUdFUl9QQVRILFxuICAgICAgICByZWRpcmVjdFRvOiBgJHtEQVNIQk9BUkRfTUFOQUdFUl9QQVRIfS90eXBlLWRhc2hib2FyZHNgLFxuICAgICAgICBwYXRoTWF0Y2g6ICdmdWxsJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogYCR7REFTSEJPQVJEX01BTkFHRVJfUEFUSH0vdHlwZS1kYXNoYm9hcmRzYCxcbiAgICAgICAgY29tcG9uZW50OiBUeXBlRGFzaGJvYXJkc0xpc3RDb21wb25lbnRcbiAgICAgIH1cbiAgICBdKSxcbiAgICBob29rTmF2aWdhdG9yKFxuICAgICAgbmV3IE5hdmlnYXRvck5vZGUoe1xuICAgICAgICBwYXJlbnQ6IGdldHRleHQoJ0NvbmZpZ3VyYXRpb24nKSxcbiAgICAgICAgcGF0aDogREFTSEJPQVJEX01BTkFHRVJfUEFUSCxcbiAgICAgICAgbGFiZWw6IGdldHRleHQoJ0Rhc2hib2FyZCBtYW5hZ2VyJyksXG4gICAgICAgIGljb246ICdtYW5hZ2VtZW50MScsXG4gICAgICAgIHJvdXRlckxpbmtFeGFjdDogZmFsc2VcbiAgICAgIH0pXG4gICAgKVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhc2hib2FyZE1hbmFnZXJNb2R1bGUge31cbiJdfQ==
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLW1hbmFnZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29udGV4dC1kYXNoYm9hcmQvZGFzaGJvYXJkLW1hbmFnZXIvZGFzaGJvYXJkLW1hbmFnZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNMLFVBQVUsRUFDVixPQUFPLEVBQ1AsYUFBYSxFQUNiLFNBQVMsRUFDVCxPQUFPLEVBQ1AsV0FBVyxFQUNYLGFBQWEsRUFDZCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSxtRkFBbUYsQ0FBQztBQUM1SSxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxpRkFBaUYsQ0FBQzs7QUFFekksTUFBTSxzQkFBc0IsR0FBRyxtQkFBbUIsQ0FBQztBQWtDbkQsTUFBTSxPQUFPLHNCQUFzQjs4R0FBdEIsc0JBQXNCOytHQUF0QixzQkFBc0IsaUJBOUIvQiwyQkFBMkI7WUFDM0IsdUNBQXVDO1lBQ3ZDLHNDQUFzQyxhQUU5QixVQUFVLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLFdBQVc7K0dBMEIvRSxzQkFBc0IsYUF6QnRCO1lBQ1QsT0FBTyxDQUFDLDJCQUEyQixDQUFDO1lBQ3BDLFNBQVMsQ0FBQztnQkFDUjtvQkFDRSxJQUFJLEVBQUUsc0JBQXNCO29CQUM1QixVQUFVLEVBQUUsR0FBRyxzQkFBc0Isa0JBQWtCO29CQUN2RCxTQUFTLEVBQUUsTUFBTTtpQkFDbEI7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLEdBQUcsc0JBQXNCLGtCQUFrQjtvQkFDakQsU0FBUyxFQUFFLDJCQUEyQjtpQkFDdkM7YUFDRixDQUFDO1lBQ0YsYUFBYSxDQUNYLElBQUksYUFBYSxDQUFDO2dCQUNoQixNQUFNLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQztnQkFDaEMsSUFBSSxFQUFFLHNCQUFzQjtnQkFDNUIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztnQkFDbkMsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLGVBQWUsRUFBRSxLQUFLO2dCQUN0QixTQUFTLEVBQUUsa0JBQWtCO2FBQzlCLENBQUMsQ0FDSDtTQUNGLFlBeEJTLFVBQVUsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsV0FBVzs7MkZBMEIvRSxzQkFBc0I7a0JBaENsQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWiwyQkFBMkI7d0JBQzNCLHVDQUF1Qzt3QkFDdkMsc0NBQXNDO3FCQUN2QztvQkFDRCxPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLFdBQVcsQ0FBQztvQkFDM0YsU0FBUyxFQUFFO3dCQUNULE9BQU8sQ0FBQywyQkFBMkIsQ0FBQzt3QkFDcEMsU0FBUyxDQUFDOzRCQUNSO2dDQUNFLElBQUksRUFBRSxzQkFBc0I7Z0NBQzVCLFVBQVUsRUFBRSxHQUFHLHNCQUFzQixrQkFBa0I7Z0NBQ3ZELFNBQVMsRUFBRSxNQUFNOzZCQUNsQjs0QkFDRDtnQ0FDRSxJQUFJLEVBQUUsR0FBRyxzQkFBc0Isa0JBQWtCO2dDQUNqRCxTQUFTLEVBQUUsMkJBQTJCOzZCQUN2Qzt5QkFDRixDQUFDO3dCQUNGLGFBQWEsQ0FDWCxJQUFJLGFBQWEsQ0FBQzs0QkFDaEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUM7NEJBQ2hDLElBQUksRUFBRSxzQkFBc0I7NEJBQzVCLEtBQUssRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUM7NEJBQ25DLElBQUksRUFBRSxhQUFhOzRCQUNuQixlQUFlLEVBQUUsS0FBSzs0QkFDdEIsU0FBUyxFQUFFLGtCQUFrQjt5QkFDOUIsQ0FBQyxDQUNIO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvcmVNb2R1bGUsXG4gIGdldHRleHQsXG4gIGhvb2tOYXZpZ2F0b3IsXG4gIGhvb2tSb3V0ZSxcbiAgaG9va1RhYixcbiAgTW9kYWxNb2R1bGUsXG4gIE5hdmlnYXRvck5vZGVcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC90b29sdGlwJztcbmltcG9ydCB7IERldmljZUdyaWRNb2R1bGUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2RldmljZS1ncmlkJztcbmltcG9ydCB7IERhc2hib2FyZE1hbmFnZXJUYWJzRmFjdG9yeSB9IGZyb20gJy4vZGFzaGJvYXJkLW1hbmFnZXItdGFicy5mYWN0b3J5JztcbmltcG9ydCB7IFR5cGVEYXNoYm9hcmRzTGlzdENvbXBvbmVudCB9IGZyb20gJy4vdHlwZS1kYXNoYm9hcmRzLWxpc3QvdHlwZS1kYXNoYm9hcmRzLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IENvbnRleHREYXNoYm9hcmRNb2R1bGUgfSBmcm9tICcuLi9jb250ZXh0LWRhc2hib2FyZC5tb2R1bGUnO1xuaW1wb3J0IHsgVHlwZURhc2hib2FyZFRhcmdldEFzc2V0c01vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi90eXBlLWRhc2hib2FyZC10YXJnZXQtYXNzZXRzLW1vZGFsL3R5cGUtZGFzaGJvYXJkLXRhcmdldC1hc3NldHMtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IFR5cGVEYXNoYm9hcmRUYXJnZXRBc3NldHNHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi90eXBlLWRhc2hib2FyZC10YXJnZXQtYXNzZXRzLWdyaWQvdHlwZS1kYXNoYm9hcmQtdGFyZ2V0LWFzc2V0cy1ncmlkLmNvbXBvbmVudCc7XG5cbmNvbnN0IERBU0hCT0FSRF9NQU5BR0VSX1BBVEggPSAnZGFzaGJvYXJkLW1hbmFnZXInO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBUeXBlRGFzaGJvYXJkc0xpc3RDb21wb25lbnQsXG4gICAgVHlwZURhc2hib2FyZFRhcmdldEFzc2V0c01vZGFsQ29tcG9uZW50LFxuICAgIFR5cGVEYXNoYm9hcmRUYXJnZXRBc3NldHNHcmlkQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBUb29sdGlwTW9kdWxlLCBEZXZpY2VHcmlkTW9kdWxlLCBDb250ZXh0RGFzaGJvYXJkTW9kdWxlLCBNb2RhbE1vZHVsZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIGhvb2tUYWIoRGFzaGJvYXJkTWFuYWdlclRhYnNGYWN0b3J5KSxcbiAgICBob29rUm91dGUoW1xuICAgICAge1xuICAgICAgICBwYXRoOiBEQVNIQk9BUkRfTUFOQUdFUl9QQVRILFxuICAgICAgICByZWRpcmVjdFRvOiBgJHtEQVNIQk9BUkRfTUFOQUdFUl9QQVRIfS90eXBlLWRhc2hib2FyZHNgLFxuICAgICAgICBwYXRoTWF0Y2g6ICdmdWxsJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogYCR7REFTSEJPQVJEX01BTkFHRVJfUEFUSH0vdHlwZS1kYXNoYm9hcmRzYCxcbiAgICAgICAgY29tcG9uZW50OiBUeXBlRGFzaGJvYXJkc0xpc3RDb21wb25lbnRcbiAgICAgIH1cbiAgICBdKSxcbiAgICBob29rTmF2aWdhdG9yKFxuICAgICAgbmV3IE5hdmlnYXRvck5vZGUoe1xuICAgICAgICBwYXJlbnQ6IGdldHRleHQoJ0NvbmZpZ3VyYXRpb24nKSxcbiAgICAgICAgcGF0aDogREFTSEJPQVJEX01BTkFHRVJfUEFUSCxcbiAgICAgICAgbGFiZWw6IGdldHRleHQoJ0Rhc2hib2FyZCBtYW5hZ2VyJyksXG4gICAgICAgIGljb246ICdtYW5hZ2VtZW50MScsXG4gICAgICAgIHJvdXRlckxpbmtFeGFjdDogZmFsc2UsXG4gICAgICAgIGZlYXR1cmVJZDogJ2Rhc2hib2FyZE1hbmFnZXInXG4gICAgICB9KVxuICAgIClcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRNYW5hZ2VyTW9kdWxlIHt9XG4iXX0=
@@ -110,11 +110,11 @@ export class ActionBarComponent {
110
110
  return -item.priority;
111
111
  }
112
112
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ActionBarComponent, deps: [{ token: i1.GainsightService }], target: i0.ɵɵFactoryTarget.Component }); }
113
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ActionBarComponent, selector: "c8y-action-bar", inputs: { navigatorOpen: "navigatorOpen", hasTabs: "hasTabs", hasHeader: "hasHeader", isTabsHorizontal: "isTabsHorizontal", items$: "items$" }, host: { listeners: { "mousedown": "mouseDown($event.target)" }, properties: { "class.navigator-open": "this.navigatorOpen", "class.has-tabs": "this.hasTabs", "class.has-header": "this.hasHeader", "class.horizontal-tabs": "this.isTabsHorizontal", "class.c8y-ui-action-bar": "this.uiActionBar", "hidden": "this.hidden" }, classAttribute: "c8y-ui-action-bar" }, ngImport: i0, template: "<div\n class=\"navbar-header\"\n role=\"presentation\"\n>\n <p class=\"text-label-small p-l-16 p-t-8 p-b-8 visible-xs\">\n <span class=\"text-primary\">{{ 'Action bar' | translate }}</span>\n </p>\n</div>\n\n<div\n class=\"navbar-collapse\"\n id=\"page-toolbar\"\n role=\"complementary\"\n>\n <ul class=\"nav navbar-nav navbar-left gap-sm-8 p-l-sm-16\">\n <ng-container *ngFor=\"let item of left$ | async\">\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: item.injector\"\n ></ng-container>\n </ng-container>\n </ul>\n <ul class=\"nav navbar-nav navbar-right gap-sm-8\">\n <ng-container *ngFor=\"let item of right$ | async\">\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: item.injector\"\n ></ng-container>\n </ng-container>\n <li *ngIf=\"(more$ | async).length === 1; else moreWithMultipleOptions\">\n <ng-container *ngFor=\"let item of more$ | async\">\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: item.injector\"\n ></ng-container>\n </ng-container>\n </li>\n <ng-template #moreWithMultipleOptions>\n <li\n class=\"no-remove more-wrapper\"\n *ngIf=\"(more$ | async).length > 1\"\n >\n <div\n class=\"dropdown\"\n dropdown\n >\n <c8y-action-bar-item\n [placement]=\"'right'\"\n >\n <button\n class=\"dropdown-toggle c8y-dropdown d-flex\"\n title=\"{{ 'More\u2026' | translate }}\"\n aria-haspopup=\"true\"\n type=\"button\"\n dropdownToggle\n data-cy=\"action-bar--button-more\"\n >\n <span\n class=\"text-truncate\"\n translate\n >\n More\u2026\n </span>\n <i [c8yIcon]=\"'caret-down'\"></i>\n </button>\n <ul class=\"dropdown-menu visible-xs\">\n <ng-container *ngFor=\"let item of more$ | async\">\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: item.injector\"\n ></ng-container>\n </ng-container>\n </ul>\n <ul\n class=\"dropdown-menu dropdown-menu-right hidden-xs\"\n *dropdownMenu\n >\n <ng-container *ngFor=\"let item of more$ | async\">\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: item.injector\"\n ></ng-container>\n </ng-container>\n </ul>\n </c8y-action-bar-item>\n </div>\n </li>\n </ng-template>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i2.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i2.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i2.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.OutletDirective, selector: "[c8yOutlet]", inputs: ["c8yOutlet", "c8yOutletProperties", "c8yOutletInjector"] }, { kind: "directive", type: i5.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "pipe", type: i8.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] }); }
113
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ActionBarComponent, selector: "c8y-action-bar", inputs: { navigatorOpen: "navigatorOpen", hasTabs: "hasTabs", hasHeader: "hasHeader", isTabsHorizontal: "isTabsHorizontal", items$: "items$" }, host: { listeners: { "mousedown": "mouseDown($event.target)" }, properties: { "class.navigator-open": "this.navigatorOpen", "class.has-tabs": "this.hasTabs", "class.has-header": "this.hasHeader", "class.horizontal-tabs": "this.isTabsHorizontal", "class.c8y-ui-action-bar": "this.uiActionBar", "hidden": "this.hidden" }, classAttribute: "c8y-ui-action-bar" }, ngImport: i0, template: "<div\n class=\"navbar-header\"\n role=\"presentation\"\n>\n <p class=\"text-label-small p-l-16 p-t-8 p-b-8 visible-xs\">\n <span class=\"text-primary\">{{ 'Action bar' | translate }}</span>\n </p>\n</div>\n\n<div\n class=\"navbar-collapse\"\n id=\"page-toolbar\"\n role=\"complementary\"\n>\n <ul class=\"nav navbar-nav navbar-left gap-sm-8 p-l-sm-16 p-l-lg-0\">\n <ng-container *ngFor=\"let item of left$ | async\">\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: item.injector\"\n ></ng-container>\n </ng-container>\n </ul>\n <ul class=\"nav navbar-nav navbar-right gap-sm-8\">\n <ng-container *ngFor=\"let item of right$ | async\">\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: item.injector\"\n ></ng-container>\n </ng-container>\n <li *ngIf=\"(more$ | async).length === 1; else moreWithMultipleOptions\">\n <ng-container *ngFor=\"let item of more$ | async\">\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: item.injector\"\n ></ng-container>\n </ng-container>\n </li>\n <ng-template #moreWithMultipleOptions>\n <li\n class=\"no-remove more-wrapper\"\n *ngIf=\"(more$ | async).length > 1\"\n >\n <div\n class=\"dropdown\"\n dropdown\n >\n <c8y-action-bar-item\n [placement]=\"'right'\"\n >\n <button\n class=\"dropdown-toggle c8y-dropdown d-flex\"\n title=\"{{ 'More\u2026' | translate }}\"\n aria-haspopup=\"true\"\n type=\"button\"\n dropdownToggle\n data-cy=\"action-bar--button-more\"\n >\n <span\n class=\"text-truncate\"\n translate\n >\n More\u2026\n </span>\n <i [c8yIcon]=\"'caret-down'\"></i>\n </button>\n <ul class=\"dropdown-menu visible-xs\">\n <ng-container *ngFor=\"let item of more$ | async\">\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: item.injector\"\n ></ng-container>\n </ng-container>\n </ul>\n <ul\n class=\"dropdown-menu dropdown-menu-right hidden-xs\"\n *dropdownMenu\n >\n <ng-container *ngFor=\"let item of more$ | async\">\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: item.injector\"\n ></ng-container>\n </ng-container>\n </ul>\n </c8y-action-bar-item>\n </div>\n </li>\n </ng-template>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i2.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i2.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i2.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.OutletDirective, selector: "[c8yOutlet]", inputs: ["c8yOutlet", "c8yOutletProperties", "c8yOutletInjector"] }, { kind: "directive", type: i5.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "pipe", type: i8.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] }); }
114
114
  }
115
115
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ActionBarComponent, decorators: [{
116
116
  type: Component,
117
- args: [{ selector: 'c8y-action-bar', host: { class: 'c8y-ui-action-bar' }, template: "<div\n class=\"navbar-header\"\n role=\"presentation\"\n>\n <p class=\"text-label-small p-l-16 p-t-8 p-b-8 visible-xs\">\n <span class=\"text-primary\">{{ 'Action bar' | translate }}</span>\n </p>\n</div>\n\n<div\n class=\"navbar-collapse\"\n id=\"page-toolbar\"\n role=\"complementary\"\n>\n <ul class=\"nav navbar-nav navbar-left gap-sm-8 p-l-sm-16\">\n <ng-container *ngFor=\"let item of left$ | async\">\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: item.injector\"\n ></ng-container>\n </ng-container>\n </ul>\n <ul class=\"nav navbar-nav navbar-right gap-sm-8\">\n <ng-container *ngFor=\"let item of right$ | async\">\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: item.injector\"\n ></ng-container>\n </ng-container>\n <li *ngIf=\"(more$ | async).length === 1; else moreWithMultipleOptions\">\n <ng-container *ngFor=\"let item of more$ | async\">\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: item.injector\"\n ></ng-container>\n </ng-container>\n </li>\n <ng-template #moreWithMultipleOptions>\n <li\n class=\"no-remove more-wrapper\"\n *ngIf=\"(more$ | async).length > 1\"\n >\n <div\n class=\"dropdown\"\n dropdown\n >\n <c8y-action-bar-item\n [placement]=\"'right'\"\n >\n <button\n class=\"dropdown-toggle c8y-dropdown d-flex\"\n title=\"{{ 'More\u2026' | translate }}\"\n aria-haspopup=\"true\"\n type=\"button\"\n dropdownToggle\n data-cy=\"action-bar--button-more\"\n >\n <span\n class=\"text-truncate\"\n translate\n >\n More\u2026\n </span>\n <i [c8yIcon]=\"'caret-down'\"></i>\n </button>\n <ul class=\"dropdown-menu visible-xs\">\n <ng-container *ngFor=\"let item of more$ | async\">\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: item.injector\"\n ></ng-container>\n </ng-container>\n </ul>\n <ul\n class=\"dropdown-menu dropdown-menu-right hidden-xs\"\n *dropdownMenu\n >\n <ng-container *ngFor=\"let item of more$ | async\">\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: item.injector\"\n ></ng-container>\n </ng-container>\n </ul>\n </c8y-action-bar-item>\n </div>\n </li>\n </ng-template>\n </ul>\n</div>\n" }]
117
+ args: [{ selector: 'c8y-action-bar', host: { class: 'c8y-ui-action-bar' }, template: "<div\n class=\"navbar-header\"\n role=\"presentation\"\n>\n <p class=\"text-label-small p-l-16 p-t-8 p-b-8 visible-xs\">\n <span class=\"text-primary\">{{ 'Action bar' | translate }}</span>\n </p>\n</div>\n\n<div\n class=\"navbar-collapse\"\n id=\"page-toolbar\"\n role=\"complementary\"\n>\n <ul class=\"nav navbar-nav navbar-left gap-sm-8 p-l-sm-16 p-l-lg-0\">\n <ng-container *ngFor=\"let item of left$ | async\">\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: item.injector\"\n ></ng-container>\n </ng-container>\n </ul>\n <ul class=\"nav navbar-nav navbar-right gap-sm-8\">\n <ng-container *ngFor=\"let item of right$ | async\">\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: item.injector\"\n ></ng-container>\n </ng-container>\n <li *ngIf=\"(more$ | async).length === 1; else moreWithMultipleOptions\">\n <ng-container *ngFor=\"let item of more$ | async\">\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: item.injector\"\n ></ng-container>\n </ng-container>\n </li>\n <ng-template #moreWithMultipleOptions>\n <li\n class=\"no-remove more-wrapper\"\n *ngIf=\"(more$ | async).length > 1\"\n >\n <div\n class=\"dropdown\"\n dropdown\n >\n <c8y-action-bar-item\n [placement]=\"'right'\"\n >\n <button\n class=\"dropdown-toggle c8y-dropdown d-flex\"\n title=\"{{ 'More\u2026' | translate }}\"\n aria-haspopup=\"true\"\n type=\"button\"\n dropdownToggle\n data-cy=\"action-bar--button-more\"\n >\n <span\n class=\"text-truncate\"\n translate\n >\n More\u2026\n </span>\n <i [c8yIcon]=\"'caret-down'\"></i>\n </button>\n <ul class=\"dropdown-menu visible-xs\">\n <ng-container *ngFor=\"let item of more$ | async\">\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: item.injector\"\n ></ng-container>\n </ng-container>\n </ul>\n <ul\n class=\"dropdown-menu dropdown-menu-right hidden-xs\"\n *dropdownMenu\n >\n <ng-container *ngFor=\"let item of more$ | async\">\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: item.injector\"\n ></ng-container>\n </ng-container>\n </ul>\n </c8y-action-bar-item>\n </div>\n </li>\n </ng-template>\n </ul>\n</div>\n" }]
118
118
  }], ctorParameters: () => [{ type: i1.GainsightService }], propDecorators: { navigatorOpen: [{
119
119
  type: Input
120
120
  }, {
@@ -146,4 +146,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
146
146
  type: HostListener,
147
147
  args: ['mousedown', ['$event.target']]
148
148
  }] } });
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2FjdGlvbi1iYXIvYWN0aW9uLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2FjdGlvbi1iYXIvYWN0aW9uLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7OztBQUczRTs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sa0JBQWtCO0lBbUU3QixZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQWxFdEQ7OztXQUdHO1FBQzJDLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRXBFOzs7V0FHRztRQUNxQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXhEOztXQUVHO1FBQ3VDLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFNUQ7OztXQUdHO1FBQzRDLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUV4RTs7V0FFRztRQUNILDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUU5Qjs7V0FFRztRQUNxQyxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUUzRDs7V0FFRztRQUNNLFdBQU0sR0FBZ0MsRUFBRSxD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QUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQUk9EVUNUX0VYUEVSSUVOQ0VfQ09SRV9TSEFSRUQgfSBmcm9tICcuLi9zaGFyZWQvY29yZS5tb2RlbCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyLCBzb3J0QnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgR2FpbnNpZ2h0U2VydmljZSB9IGZyb20gJy4uL3Byb2R1Y3QtZXhwZXJpZW5jZS9nYWluc2lnaHQuc2VydmljZSc7XG5pbXBvcnQgeyBBY3Rpb25CYXJJdGVtIH0gZnJvbSAnLi9hY3Rpb24tYmFyLm1vZGVsJztcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyB1c2VkIGFzIHRoZSBvdXRsZXQgdG8gc2hvdyB0aGUgYWN0aW9uIGJhcnMuXG4gKiBJbiBhIGM4eWNsaSBhcHAgaXQgaXMgYnkgZGVmYXVsdCBwbGFjZWQgb24gdGhlIGJvb3RzdHJhcCBjb21wb25lbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1hY3Rpb24tYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7IGNsYXNzOiAnYzh5LXVpLWFjdGlvbi1iYXInIH1cbn0pXG5leHBvcnQgY2xhc3MgQWN0aW9uQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogSWRlbnRpZmllcyBpZiB0aGUgbmF2aWdhdG9yIGlzIG9wZW5lZC4gSWYgeWVzLCB0aGUgYWN0aW9uLWJhclxuICAgKiBuZWVkcyB0byBtb3ZlIHRvIHRoZSByaWdodC5cbiAgICovXG4gIEBJbnB1dCgpIEBIb3N0QmluZGluZygnY2xhc3MubmF2aWdhdG9yLW9wZW4nKSBuYXZpZ2F0b3JPcGVuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIElkZW50aWZpZXMgaWYgdGhlIGN1cnJlbnQgdmlldyBoYXMgdGFicy4gSWYgeWVzLCB0aGUgYWN0aW9uIGJhciBuZWVkc1xuICAgKiB0byBtb3ZlIGRvd24uXG4gICAqL1xuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2NsYXNzLmhhcy10YWJzJykgaGFzVGFicyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIGlmIHRoZSBjdXJyZW50IHZpZXcgaGFzIGEgaGVhZGVyIGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2NsYXNzLmhhcy1oZWFkZXInKSBoYXNIZWFkZXIgPSBmYWxzZTtcblxuICAvKipcbiAgICogSWRlbnRpZmllcyBpZiB0aGUgdGFicyBhcmUgYWxpZ25lZCBob3Jpem9udGFsbHkuIElmIHllcywgdGhlIHRhYnMgZG9uJ3RcbiAgICogbmVlZCB0byBtb3ZlIHRvIHRoZSBsZWZ0LlxuICAgKi9cbiAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdjbGFzcy5ob3Jpem9udGFsLXRhYnMnKSBpc1RhYnNIb3Jpem9udGFsID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIElkZW50aWZpZXMgaWYgaW4gYSBtb2JpbGUgdmlldyB0aGUgdG9vbGJhciBpcyBleHBhbmRlZCBvciBub3QuXG4gICAqL1xuICBpc1BhZ2VUb29sYmFyRXhwYW5kZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogQWRkcyB0aGUgZGVmYXVsdCBgYzh5LXVpLWFjdGlvbi1iYXJgIGNsYXNzLlxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jOHktdWktYWN0aW9uLWJhcicpIHVpQWN0aW9uQmFyID0gdHJ1ZTtcblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgaXRlbXMgdG8gZGlzcGxheSBpbiB0aGUgQWN0aW9uQmFyLlxuICAgKi9cbiAgQElucHV0KCkgaXRlbXMkOiBPYnNlcnZhYmxlPEFjdGlvbkJhckl0ZW1bXT4gPSBvZihbXSk7XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIG9ic2VydmFibGUgZm9yIHJpZ2h0IGFjdGlvbiBpdGVtcy5cbiAgICovXG4gIHJpZ2h0JDogT2JzZXJ2YWJsZTxBY3Rpb25CYXJJdGVtW10+ID0gb2YoW10pO1xuXG4gIC8qKlxuICAgKiBQcm92aWRlcyBvYnNlcnZhYmxlIGZvciBsZWZ0IGFjdGlvbiBpdGVtcy5cbiAgICovXG4gIGxlZnQkOiBPYnNlcnZhYmxlPEFjdGlvbkJhckl0ZW1bXT4gPSBvZihbXSk7XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIG9ic2VydmFibGUgZm9yIG1vcmUgYWN0aW9uIGl0ZW1zLlxuICAgKi9cbiAgbW9yZSQ6IE9ic2VydmFibGU8QWN0aW9uQmFySXRlbVtdPiA9IG9mKFtdKTtcblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIG5vIGl0ZW1zIGFyZSBwcmVzZW50IGFuZCBoaWRlcyB0aGUgYWN0aW9uIGJhci5cbiAgICovXG4gIGhpZGRlbiQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSBvZih0cnVlKTtcblxuICAvKipcbiAgICogQmluZHMgaGlkZGVuIHByb3BlcnR5IHRvIHRoaXMgY29tcG9uZW50J3MgbmF0aXZlIGVsZW1lbnRcbiAgICovXG4gIEBIb3N0QmluZGluZygpXG4gIGhpZGRlbiA9IHRydWU7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBnYWluc2lnaHRTZXJ2aWNlOiBHYWluc2lnaHRTZXJ2aWNlKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50LnRhcmdldCddKVxuICBtb3VzZURvd24oZXZlbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKGV2ZW50LmdldEF0dHJpYnV0ZSgnaWQnKSA9PT0gJ3BhZ2UtdG9vbGJhcicpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZWxlbWVudCA9XG4gICAgICBldmVudC5jbG9zZXN0KCdbcHgtZXZlbnRdJykgfHwgZXZlbnQuY2xvc2VzdCgnW3RpdGxlXScpIHx8IGV2ZW50LmNsb3Nlc3QoJ1t1aWItdG9vbHRpcF0nKTtcbiAgICBpZiAoIWVsZW1lbnQgfHwgZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtTmFtZSA9XG4gICAgICBlbGVtZW50LmdldEF0dHJpYnV0ZSgncHgtZXZlbnQnKSB8fFxuICAgICAgZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3RpdGxlJykgfHxcbiAgICAgIGVsZW1lbnQuZ2V0QXR0cmlidXRlKCd1aWItdG9vbHRpcCcpO1xuICAgIGNvbnN0IHRyYW5zbGF0ZWRJdGVtTmFtZSA9IHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmFuc2xhdGVUb0VuZ2xpc2goaXRlbU5hbWUpO1xuXG4gICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChcbiAgICAgIFBST0RVQ1RfRVhQRVJJRU5DRV9DT1JFX1NIQVJFRC5BQ1RJT05fQkFSLkVWRU5UUy5BQ1RJT05fQkFSX0lURU0sXG4gICAgICB7XG4gICAgICAgIGNvbXBvbmVudDogUFJPRFVDVF9FWFBFUklFTkNFX0NPUkVfU0hBUkVELkFDVElPTl9CQVIuQ09NUE9ORU5UUy5BQ1RJT05fQkFSX0NPTVBPTkVOVCxcbiAgICAgICAgYWN0aW9uOiBgJHt0cmFuc2xhdGVkSXRlbU5hbWV9YCxcbiAgICAgICAgdXJsOiBsb2NhdGlvbi5ocmVmXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmlnaHQkID0gdGhpcy5pdGVtcyQucGlwZShcbiAgICAgIG1hcChpdGVtcyA9PiBmaWx0ZXIoaXRlbXMsIHsgcGxhY2VtZW50OiAncmlnaHQnIH0pKSxcbiAgICAgIG1hcChpdGVtcyA9PiBzb3J0QnkoaXRlbXMsIHRoaXMuYnlQcmlvcml0eSkpXG4gICAgKTtcblxuICAgIHRoaXMubGVmdCQgPSB0aGlzLml0ZW1zJC5waXBlKFxuICAgICAgbWFwKGl0ZW1zID0+IGZpbHRlcihpdGVtcywgeyBwbGFjZW1lbnQ6ICdsZWZ0JyB9KSksXG4gICAgICBtYXAoaXRlbXMgPT4gc29ydEJ5KGl0ZW1zLCB0aGlzLmJ5UHJpb3JpdHkpKVxuICAgICk7XG5cbiAgICB0aGlzLm1vcmUkID0gdGhpcy5pdGVtcyQucGlwZShcbiAgICAgIG1hcChpdGVtcyA9PiBmaWx0ZXIoaXRlbXMsIHsgcGxhY2VtZW50OiAnbW9yZScgfSkpLFxuICAgICAgbWFwKGl0ZW1zID0+IHNvcnRCeShpdGVtcywgdGhpcy5ieVByaW9yaXR5KSlcbiAgICApO1xuXG4gICAgdGhpcy5oaWRkZW4kID0gdGhpcy5pdGVtcyQucGlwZShcbiAgICAgIG1hcChpdGVtcyA9PiB7XG4gICAgICAgIHJldHVybiAhKGl0ZW1zICYmIGl0ZW1zLmxlbmd0aCk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLmhpZGRlbiQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZShoaWRkZW4gPT4ge1xuICAgICAgdGhpcy5oaWRkZW4gPSBoaWRkZW47XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGJ5UHJpb3JpdHkoaXRlbSkge1xuICAgIHJldHVybiAtaXRlbS5wcmlvcml0eTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cIm5hdmJhci1oZWFkZXJcIlxuICByb2xlPVwicHJlc2VudGF0aW9uXCJcbj5cbiAgPHAgY2xhc3M9XCJ0ZXh0LWxhYmVsLXNtYWxsIHAtbC0xNiBwLXQtOCBwLWItOCB2aXNpYmxlLXhzXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXByaW1hcnlcIj57eyAnQWN0aW9uIGJhcicgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gIDwvcD5cbjwvZGl2PlxuXG48ZGl2XG4gIGNsYXNzPVwibmF2YmFyLWNvbGxhcHNlXCJcbiAgaWQ9XCJwYWdlLXRvb2xiYXJcIlxuICByb2xlPVwiY29tcGxlbWVudGFyeVwiXG4+XG4gIDx1bCBjbGFzcz1cIm5hdiBuYXZiYXItbmF2IG5hdmJhci1sZWZ0IGdhcC1zbS04IHAtbC1zbS0xNlwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGVmdCQgfCBhc3luY1wiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqYzh5T3V0bGV0PVwiaXRlbS5jb21wb25lbnQgfHwgaXRlbS50ZW1wbGF0ZTsgaW5qZWN0b3I6IGl0ZW0uaW5qZWN0b3JcIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3VsPlxuICA8dWwgY2xhc3M9XCJuYXYgbmF2YmFyLW5hdiBuYXZiYXItcmlnaHQgZ2FwLXNtLThcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJpZ2h0JCB8IGFzeW5jXCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpjOHlPdXRsZXQ9XCJpdGVtLmNvbXBvbmVudCB8fCBpdGVtLnRlbXBsYXRlOyBpbmplY3RvcjogaXRlbS5pbmplY3RvclwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGxpICpuZ0lmPVwiKG1vcmUkIHwgYXN5bmMpLmxlbmd0aCA9PT0gMTsgZWxzZSBtb3JlV2l0aE11bHRpcGxlT3B0aW9uc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtb3JlJCB8IGFzeW5jXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqYzh5T3V0bGV0PVwiaXRlbS5jb21wb25lbnQgfHwgaXRlbS50ZW1wbGF0ZTsgaW5qZWN0b3I6IGl0ZW0uaW5qZWN0b3JcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2xpPlxuICAgIDxuZy10ZW1wbGF0ZSAjbW9yZVdpdGhNdWx0aXBsZU9wdGlvbnM+XG4gICAgICA8bGlcbiAgICAgICAgY2xhc3M9XCJuby1yZW1vdmUgbW9yZS13cmFwcGVyXCJcbiAgICAgICAgKm5nSWY9XCIobW9yZSQgfCBhc3luYykubGVuZ3RoID4gMVwiXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duXCJcbiAgICAgICAgICBkcm9wZG93blxuICAgICAgICA+XG4gICAgICAgICAgPGM4eS1hY3Rpb24tYmFyLWl0ZW1cbiAgICAgICAgICAgIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLXRvZ2dsZSBjOHktZHJvcGRvd24gZC1mbGV4XCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnTW9yZeKApicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBkcm9wZG93blRvZ2dsZVxuICAgICAgICAgICAgICBkYXRhLWN5PVwiYWN0aW9uLWJhci0tYnV0dG9uLW1vcmVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBNb3Jl4oCmXG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPGkgW2M4eUljb25dPVwiJ2NhcmV0LWRvd24nXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJkcm9wZG93bi1tZW51IHZpc2libGUteHNcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtb3JlJCB8IGFzeW5jXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgKmM4eU91dGxldD1cIml0ZW0uY29tcG9uZW50IHx8IGl0ZW0udGVtcGxhdGU7IGluamVjdG9yOiBpdGVtLmluamVjdG9yXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDx1bFxuICAgICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1yaWdodCBoaWRkZW4teHNcIlxuICAgICAgICAgICAgICAqZHJvcGRvd25NZW51XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbW9yZSQgfCBhc3luY1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICpjOHlPdXRsZXQ9XCJpdGVtLmNvbXBvbmVudCB8fCBpdGVtLnRlbXBsYXRlOyBpbmplY3RvcjogaXRlbS5pbmplY3RvclwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbGk+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC91bD5cbjwvZGl2PlxuIl19
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2FjdGlvbi1iYXIvYWN0aW9uLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2FjdGlvbi1iYXIvYWN0aW9uLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7OztBQUczRTs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sa0JBQWtCO0lBbUU3QixZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQWxFdEQ7OztXQUdHO1FBQzJDLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRXBFOzs7V0FHRztRQUNxQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXhEOztXQUVHO1FBQ3VDLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFNUQ7OztXQUdHO1FBQzRDLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUV4RTs7V0FFRztRQUNILDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUU5Qjs7V0FFRztRQUNxQyxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUUzRDs7V0FFRztRQUNNLFdBQU0sR0FBZ0MsRUFBRSxD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QUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQUk9EVUNUX0VYUEVSSUVOQ0VfQ09SRV9TSEFSRUQgfSBmcm9tICcuLi9zaGFyZWQvY29yZS5tb2RlbCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyLCBzb3J0QnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgR2FpbnNpZ2h0U2VydmljZSB9IGZyb20gJy4uL3Byb2R1Y3QtZXhwZXJpZW5jZS9nYWluc2lnaHQuc2VydmljZSc7XG5pbXBvcnQgeyBBY3Rpb25CYXJJdGVtIH0gZnJvbSAnLi9hY3Rpb24tYmFyLm1vZGVsJztcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyB1c2VkIGFzIHRoZSBvdXRsZXQgdG8gc2hvdyB0aGUgYWN0aW9uIGJhcnMuXG4gKiBJbiBhIGM4eWNsaSBhcHAgaXQgaXMgYnkgZGVmYXVsdCBwbGFjZWQgb24gdGhlIGJvb3RzdHJhcCBjb21wb25lbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1hY3Rpb24tYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7IGNsYXNzOiAnYzh5LXVpLWFjdGlvbi1iYXInIH1cbn0pXG5leHBvcnQgY2xhc3MgQWN0aW9uQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogSWRlbnRpZmllcyBpZiB0aGUgbmF2aWdhdG9yIGlzIG9wZW5lZC4gSWYgeWVzLCB0aGUgYWN0aW9uLWJhclxuICAgKiBuZWVkcyB0byBtb3ZlIHRvIHRoZSByaWdodC5cbiAgICovXG4gIEBJbnB1dCgpIEBIb3N0QmluZGluZygnY2xhc3MubmF2aWdhdG9yLW9wZW4nKSBuYXZpZ2F0b3JPcGVuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIElkZW50aWZpZXMgaWYgdGhlIGN1cnJlbnQgdmlldyBoYXMgdGFicy4gSWYgeWVzLCB0aGUgYWN0aW9uIGJhciBuZWVkc1xuICAgKiB0byBtb3ZlIGRvd24uXG4gICAqL1xuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2NsYXNzLmhhcy10YWJzJykgaGFzVGFicyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIGlmIHRoZSBjdXJyZW50IHZpZXcgaGFzIGEgaGVhZGVyIGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2NsYXNzLmhhcy1oZWFkZXInKSBoYXNIZWFkZXIgPSBmYWxzZTtcblxuICAvKipcbiAgICogSWRlbnRpZmllcyBpZiB0aGUgdGFicyBhcmUgYWxpZ25lZCBob3Jpem9udGFsbHkuIElmIHllcywgdGhlIHRhYnMgZG9uJ3RcbiAgICogbmVlZCB0byBtb3ZlIHRvIHRoZSBsZWZ0LlxuICAgKi9cbiAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdjbGFzcy5ob3Jpem9udGFsLXRhYnMnKSBpc1RhYnNIb3Jpem9udGFsID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIElkZW50aWZpZXMgaWYgaW4gYSBtb2JpbGUgdmlldyB0aGUgdG9vbGJhciBpcyBleHBhbmRlZCBvciBub3QuXG4gICAqL1xuICBpc1BhZ2VUb29sYmFyRXhwYW5kZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogQWRkcyB0aGUgZGVmYXVsdCBgYzh5LXVpLWFjdGlvbi1iYXJgIGNsYXNzLlxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jOHktdWktYWN0aW9uLWJhcicpIHVpQWN0aW9uQmFyID0gdHJ1ZTtcblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgaXRlbXMgdG8gZGlzcGxheSBpbiB0aGUgQWN0aW9uQmFyLlxuICAgKi9cbiAgQElucHV0KCkgaXRlbXMkOiBPYnNlcnZhYmxlPEFjdGlvbkJhckl0ZW1bXT4gPSBvZihbXSk7XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIG9ic2VydmFibGUgZm9yIHJpZ2h0IGFjdGlvbiBpdGVtcy5cbiAgICovXG4gIHJpZ2h0JDogT2JzZXJ2YWJsZTxBY3Rpb25CYXJJdGVtW10+ID0gb2YoW10pO1xuXG4gIC8qKlxuICAgKiBQcm92aWRlcyBvYnNlcnZhYmxlIGZvciBsZWZ0IGFjdGlvbiBpdGVtcy5cbiAgICovXG4gIGxlZnQkOiBPYnNlcnZhYmxlPEFjdGlvbkJhckl0ZW1bXT4gPSBvZihbXSk7XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIG9ic2VydmFibGUgZm9yIG1vcmUgYWN0aW9uIGl0ZW1zLlxuICAgKi9cbiAgbW9yZSQ6IE9ic2VydmFibGU8QWN0aW9uQmFySXRlbVtdPiA9IG9mKFtdKTtcblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIG5vIGl0ZW1zIGFyZSBwcmVzZW50IGFuZCBoaWRlcyB0aGUgYWN0aW9uIGJhci5cbiAgICovXG4gIGhpZGRlbiQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSBvZih0cnVlKTtcblxuICAvKipcbiAgICogQmluZHMgaGlkZGVuIHByb3BlcnR5IHRvIHRoaXMgY29tcG9uZW50J3MgbmF0aXZlIGVsZW1lbnRcbiAgICovXG4gIEBIb3N0QmluZGluZygpXG4gIGhpZGRlbiA9IHRydWU7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBnYWluc2lnaHRTZXJ2aWNlOiBHYWluc2lnaHRTZXJ2aWNlKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50LnRhcmdldCddKVxuICBtb3VzZURvd24oZXZlbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKGV2ZW50LmdldEF0dHJpYnV0ZSgnaWQnKSA9PT0gJ3BhZ2UtdG9vbGJhcicpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZWxlbWVudCA9XG4gICAgICBldmVudC5jbG9zZXN0KCdbcHgtZXZlbnRdJykgfHwgZXZlbnQuY2xvc2VzdCgnW3RpdGxlXScpIHx8IGV2ZW50LmNsb3Nlc3QoJ1t1aWItdG9vbHRpcF0nKTtcbiAgICBpZiAoIWVsZW1lbnQgfHwgZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtTmFtZSA9XG4gICAgICBlbGVtZW50LmdldEF0dHJpYnV0ZSgncHgtZXZlbnQnKSB8fFxuICAgICAgZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3RpdGxlJykgfHxcbiAgICAgIGVsZW1lbnQuZ2V0QXR0cmlidXRlKCd1aWItdG9vbHRpcCcpO1xuICAgIGNvbnN0IHRyYW5zbGF0ZWRJdGVtTmFtZSA9IHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmFuc2xhdGVUb0VuZ2xpc2goaXRlbU5hbWUpO1xuXG4gICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChcbiAgICAgIFBST0RVQ1RfRVhQRVJJRU5DRV9DT1JFX1NIQVJFRC5BQ1RJT05fQkFSLkVWRU5UUy5BQ1RJT05fQkFSX0lURU0sXG4gICAgICB7XG4gICAgICAgIGNvbXBvbmVudDogUFJPRFVDVF9FWFBFUklFTkNFX0NPUkVfU0hBUkVELkFDVElPTl9CQVIuQ09NUE9ORU5UUy5BQ1RJT05fQkFSX0NPTVBPTkVOVCxcbiAgICAgICAgYWN0aW9uOiBgJHt0cmFuc2xhdGVkSXRlbU5hbWV9YCxcbiAgICAgICAgdXJsOiBsb2NhdGlvbi5ocmVmXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmlnaHQkID0gdGhpcy5pdGVtcyQucGlwZShcbiAgICAgIG1hcChpdGVtcyA9PiBmaWx0ZXIoaXRlbXMsIHsgcGxhY2VtZW50OiAncmlnaHQnIH0pKSxcbiAgICAgIG1hcChpdGVtcyA9PiBzb3J0QnkoaXRlbXMsIHRoaXMuYnlQcmlvcml0eSkpXG4gICAgKTtcblxuICAgIHRoaXMubGVmdCQgPSB0aGlzLml0ZW1zJC5waXBlKFxuICAgICAgbWFwKGl0ZW1zID0+IGZpbHRlcihpdGVtcywgeyBwbGFjZW1lbnQ6ICdsZWZ0JyB9KSksXG4gICAgICBtYXAoaXRlbXMgPT4gc29ydEJ5KGl0ZW1zLCB0aGlzLmJ5UHJpb3JpdHkpKVxuICAgICk7XG5cbiAgICB0aGlzLm1vcmUkID0gdGhpcy5pdGVtcyQucGlwZShcbiAgICAgIG1hcChpdGVtcyA9PiBmaWx0ZXIoaXRlbXMsIHsgcGxhY2VtZW50OiAnbW9yZScgfSkpLFxuICAgICAgbWFwKGl0ZW1zID0+IHNvcnRCeShpdGVtcywgdGhpcy5ieVByaW9yaXR5KSlcbiAgICApO1xuXG4gICAgdGhpcy5oaWRkZW4kID0gdGhpcy5pdGVtcyQucGlwZShcbiAgICAgIG1hcChpdGVtcyA9PiB7XG4gICAgICAgIHJldHVybiAhKGl0ZW1zICYmIGl0ZW1zLmxlbmd0aCk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLmhpZGRlbiQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZShoaWRkZW4gPT4ge1xuICAgICAgdGhpcy5oaWRkZW4gPSBoaWRkZW47XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGJ5UHJpb3JpdHkoaXRlbSkge1xuICAgIHJldHVybiAtaXRlbS5wcmlvcml0eTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cIm5hdmJhci1oZWFkZXJcIlxuICByb2xlPVwicHJlc2VudGF0aW9uXCJcbj5cbiAgPHAgY2xhc3M9XCJ0ZXh0LWxhYmVsLXNtYWxsIHAtbC0xNiBwLXQtOCBwLWItOCB2aXNpYmxlLXhzXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXByaW1hcnlcIj57eyAnQWN0aW9uIGJhcicgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gIDwvcD5cbjwvZGl2PlxuXG48ZGl2XG4gIGNsYXNzPVwibmF2YmFyLWNvbGxhcHNlXCJcbiAgaWQ9XCJwYWdlLXRvb2xiYXJcIlxuICByb2xlPVwiY29tcGxlbWVudGFyeVwiXG4+XG4gIDx1bCBjbGFzcz1cIm5hdiBuYXZiYXItbmF2IG5hdmJhci1sZWZ0IGdhcC1zbS04IHAtbC1zbS0xNiBwLWwtbGctMFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGVmdCQgfCBhc3luY1wiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqYzh5T3V0bGV0PVwiaXRlbS5jb21wb25lbnQgfHwgaXRlbS50ZW1wbGF0ZTsgaW5qZWN0b3I6IGl0ZW0uaW5qZWN0b3JcIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3VsPlxuICA8dWwgY2xhc3M9XCJuYXYgbmF2YmFyLW5hdiBuYXZiYXItcmlnaHQgZ2FwLXNtLThcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJpZ2h0JCB8IGFzeW5jXCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpjOHlPdXRsZXQ9XCJpdGVtLmNvbXBvbmVudCB8fCBpdGVtLnRlbXBsYXRlOyBpbmplY3RvcjogaXRlbS5pbmplY3RvclwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGxpICpuZ0lmPVwiKG1vcmUkIHwgYXN5bmMpLmxlbmd0aCA9PT0gMTsgZWxzZSBtb3JlV2l0aE11bHRpcGxlT3B0aW9uc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtb3JlJCB8IGFzeW5jXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqYzh5T3V0bGV0PVwiaXRlbS5jb21wb25lbnQgfHwgaXRlbS50ZW1wbGF0ZTsgaW5qZWN0b3I6IGl0ZW0uaW5qZWN0b3JcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2xpPlxuICAgIDxuZy10ZW1wbGF0ZSAjbW9yZVdpdGhNdWx0aXBsZU9wdGlvbnM+XG4gICAgICA8bGlcbiAgICAgICAgY2xhc3M9XCJuby1yZW1vdmUgbW9yZS13cmFwcGVyXCJcbiAgICAgICAgKm5nSWY9XCIobW9yZSQgfCBhc3luYykubGVuZ3RoID4gMVwiXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duXCJcbiAgICAgICAgICBkcm9wZG93blxuICAgICAgICA+XG4gICAgICAgICAgPGM4eS1hY3Rpb24tYmFyLWl0ZW1cbiAgICAgICAgICAgIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLXRvZ2dsZSBjOHktZHJvcGRvd24gZC1mbGV4XCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnTW9yZeKApicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBkcm9wZG93blRvZ2dsZVxuICAgICAgICAgICAgICBkYXRhLWN5PVwiYWN0aW9uLWJhci0tYnV0dG9uLW1vcmVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBNb3Jl4oCmXG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPGkgW2M4eUljb25dPVwiJ2NhcmV0LWRvd24nXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJkcm9wZG93bi1tZW51IHZpc2libGUteHNcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtb3JlJCB8IGFzeW5jXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgKmM4eU91dGxldD1cIml0ZW0uY29tcG9uZW50IHx8IGl0ZW0udGVtcGxhdGU7IGluamVjdG9yOiBpdGVtLmluamVjdG9yXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDx1bFxuICAgICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1yaWdodCBoaWRkZW4teHNcIlxuICAgICAgICAgICAgICAqZHJvcGRvd25NZW51XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbW9yZSQgfCBhc3luY1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICpjOHlPdXRsZXQ9XCJpdGVtLmNvbXBvbmVudCB8fCBpdGVtLnRlbXBsYXRlOyBpbmplY3RvcjogaXRlbS5pbmplY3RvclwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbGk+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC91bD5cbjwvZGl2PlxuIl19