@c8y/ngx-components 1021.21.0 → 1021.22.26

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 (185) hide show
  1. package/alarms/alarm-details.component.d.ts +1 -3
  2. package/alarms/alarm-details.component.d.ts.map +1 -1
  3. package/alarms/alarm-info.component.d.ts +9 -14
  4. package/alarms/alarm-info.component.d.ts.map +1 -1
  5. package/alarms/alarms-date-filter.component.d.ts +23 -10
  6. package/alarms/alarms-date-filter.component.d.ts.map +1 -1
  7. package/alarms/alarms-type-filter.component.d.ts +21 -14
  8. package/alarms/alarms-type-filter.component.d.ts.map +1 -1
  9. package/alarms/alarms-view.service.d.ts +7 -0
  10. package/alarms/alarms-view.service.d.ts.map +1 -1
  11. package/alarms/alarms.component.d.ts.map +1 -1
  12. package/alarms/alarms.helper.d.ts +5 -0
  13. package/alarms/alarms.helper.d.ts.map +1 -0
  14. package/alarms/alarms.model.d.ts +1 -6
  15. package/alarms/alarms.model.d.ts.map +1 -1
  16. package/alarms/alarms.module.d.ts +1 -1
  17. package/alarms/alarms.module.d.ts.map +1 -1
  18. package/alarms/cockpit/index.d.ts.map +1 -1
  19. package/alarms/devicemanagement/index.d.ts.map +1 -1
  20. package/alarms/index.d.ts +6 -4
  21. package/alarms/index.d.ts.map +1 -1
  22. package/branding/shared/data/branding-tracking.service.d.ts +20 -0
  23. package/branding/shared/data/branding-tracking.service.d.ts.map +1 -0
  24. package/branding/shared/data/branding-version.service.d.ts.map +1 -1
  25. package/branding/shared/data/index.d.ts +1 -0
  26. package/branding/shared/data/index.d.ts.map +1 -1
  27. package/branding/shared/data/store-branding.service.d.ts +8 -1
  28. package/branding/shared/data/store-branding.service.d.ts.map +1 -1
  29. package/branding/shared/lazy/branding/branding.component.d.ts +3 -2
  30. package/branding/shared/lazy/branding/branding.component.d.ts.map +1 -1
  31. package/branding/shared/lazy/branding-theme-form/branding-theme-form.component.d.ts.map +1 -1
  32. package/branding/shared/lazy/edit-branding-router-outlet/edit-branding-router-outlet.component.d.ts.map +1 -1
  33. package/cockpit-config/cockpit-config.module.d.ts +1 -1
  34. package/cockpit-config/cockpit-config.module.d.ts.map +1 -1
  35. package/context-dashboard/context-dashboard.service.d.ts +1 -1
  36. package/context-dashboard/context-dashboard.service.d.ts.map +1 -1
  37. package/core/bootstrap/bootstrap.component.d.ts.map +1 -1
  38. package/core/common/service-registry.model.d.ts +2 -1
  39. package/core/common/service-registry.model.d.ts.map +1 -1
  40. package/core/common/ui-state.service.d.ts +0 -1
  41. package/core/common/ui-state.service.d.ts.map +1 -1
  42. package/core/i18n/missing-translation-custom.handler.d.ts +1 -0
  43. package/core/i18n/missing-translation-custom.handler.d.ts.map +1 -1
  44. package/core/plugins/index.d.ts +1 -0
  45. package/core/plugins/index.d.ts.map +1 -1
  46. package/core/plugins/plugin-loaded.pipe.d.ts +12 -0
  47. package/core/plugins/plugin-loaded.pipe.d.ts.map +1 -0
  48. package/core/plugins/plugins-resolve.service.d.ts +4 -2
  49. package/core/plugins/plugins-resolve.service.d.ts.map +1 -1
  50. package/core/plugins/plugins.model.d.ts +3 -1
  51. package/core/plugins/plugins.model.d.ts.map +1 -1
  52. package/core/plugins/plugins.service.d.ts +3 -0
  53. package/core/plugins/plugins.service.d.ts.map +1 -1
  54. package/core/router/context-route.component.d.ts +8 -3
  55. package/core/router/context-route.component.d.ts.map +1 -1
  56. package/core/router/context-route.service.d.ts +29 -3
  57. package/core/router/context-route.service.d.ts.map +1 -1
  58. package/core/router/router-tabs.resolver.d.ts +6 -3
  59. package/core/router/router-tabs.resolver.d.ts.map +1 -1
  60. package/core/router/router.model.d.ts +40 -3
  61. package/core/router/router.model.d.ts.map +1 -1
  62. package/core/router/router.module.d.ts +2 -1
  63. package/core/router/router.module.d.ts.map +1 -1
  64. package/core/router/router.service.d.ts +5 -4
  65. package/core/router/router.service.d.ts.map +1 -1
  66. package/core/router/scoped-context-route.service.d.ts +57 -0
  67. package/core/router/scoped-context-route.service.d.ts.map +1 -0
  68. package/core/router/view-context.service.d.ts +8 -18
  69. package/core/router/view-context.service.d.ts.map +1 -1
  70. package/ecosystem/application-plugins/application-plugins.component.d.ts.map +1 -1
  71. package/ecosystem/application-plugins/application-plugins.guard.d.ts.map +1 -1
  72. package/ecosystem/application-plugins/orphaned-status-cell-renderer.component.d.ts.map +1 -1
  73. package/esm2022/alarms/alarm-details.component.mjs +7 -9
  74. package/esm2022/alarms/alarm-info.component.mjs +23 -33
  75. package/esm2022/alarms/alarm-severity-to-label.pipe.mjs +2 -2
  76. package/esm2022/alarms/alarms-date-filter.component.mjs +94 -42
  77. package/esm2022/alarms/alarms-type-filter.component.mjs +102 -72
  78. package/esm2022/alarms/alarms-view.service.mjs +17 -3
  79. package/esm2022/alarms/alarms.component.mjs +12 -5
  80. package/esm2022/alarms/alarms.helper.mjs +32 -0
  81. package/esm2022/alarms/alarms.model.mjs +1 -1
  82. package/esm2022/alarms/alarms.module.mjs +7 -7
  83. package/esm2022/alarms/cockpit/index.mjs +13 -17
  84. package/esm2022/alarms/devicemanagement/index.mjs +15 -18
  85. package/esm2022/alarms/index.mjs +7 -5
  86. package/esm2022/branding/shared/data/branding-tracking.service.mjs +58 -0
  87. package/esm2022/branding/shared/data/branding-version.service.mjs +9 -5
  88. package/esm2022/branding/shared/data/index.mjs +2 -1
  89. package/esm2022/branding/shared/data/store-branding.service.mjs +15 -4
  90. package/esm2022/branding/shared/lazy/branding/branding.component.mjs +16 -12
  91. package/esm2022/branding/shared/lazy/branding-theme-form/branding-theme-form.component.mjs +5 -2
  92. package/esm2022/branding/shared/lazy/edit-branding-router-outlet/edit-branding-router-outlet.component.mjs +2 -2
  93. package/esm2022/cockpit-config/cockpit-config.module.mjs +6 -3
  94. package/esm2022/cockpit-config/feature-config.component.mjs +5 -4
  95. package/esm2022/context-dashboard/context-dashboard.service.mjs +47 -13
  96. package/esm2022/core/bootstrap/bootstrap.component.mjs +4 -3
  97. package/esm2022/core/common/service-registry.model.mjs +1 -1
  98. package/esm2022/core/common/ui-state.service.mjs +1 -19
  99. package/esm2022/core/i18n/missing-translation-custom.handler.mjs +5 -1
  100. package/esm2022/core/i18n/translation-loader.service.mjs +2 -2
  101. package/esm2022/core/plugins/index.mjs +2 -1
  102. package/esm2022/core/plugins/plugin-loaded.pipe.mjs +26 -0
  103. package/esm2022/core/plugins/plugins-resolve.service.mjs +5 -1
  104. package/esm2022/core/plugins/plugins.model.mjs +2 -1
  105. package/esm2022/core/plugins/plugins.service.mjs +13 -5
  106. package/esm2022/core/router/context-route.component.mjs +23 -13
  107. package/esm2022/core/router/context-route.service.mjs +37 -5
  108. package/esm2022/core/router/router-tabs.resolver.mjs +66 -21
  109. package/esm2022/core/router/router.model.mjs +6 -1
  110. package/esm2022/core/router/router.module.mjs +20 -13
  111. package/esm2022/core/router/router.service.mjs +24 -10
  112. package/esm2022/core/router/scoped-context-route.service.mjs +157 -0
  113. package/esm2022/core/router/view-context.service.mjs +59 -16
  114. package/esm2022/core/tabs/tabs-outlet.component.mjs +3 -3
  115. package/esm2022/core/version/websdk-plugin-version.factory.mjs +2 -2
  116. package/esm2022/datapoint-selector/datapoint-selection-list/datapoint-selection-list.component.mjs +3 -3
  117. package/esm2022/ecosystem/activity-log/activity-log.component.mjs +3 -3
  118. package/esm2022/ecosystem/application-plugins/application-plugins.component.mjs +67 -23
  119. package/esm2022/ecosystem/application-plugins/application-plugins.guard.mjs +8 -2
  120. package/esm2022/ecosystem/application-plugins/orphaned-status-cell-renderer.component.mjs +7 -1
  121. package/esm2022/interval-picker/interval-picker.component.mjs +1 -1
  122. package/esm2022/interval-picker/interval-picker.model.mjs +1 -1
  123. package/esm2022/protocol-lwm2m/ng1/plugin-checker.service.mjs +5 -1
  124. package/esm2022/widgets/definitions/alarms/alarm-list/index.mjs +2 -1
  125. package/esm2022/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.mjs +73 -4
  126. package/esm2022/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.mjs +29 -5
  127. package/esm2022/widgets/implementations/alarms/alarm-list-widget.model.mjs +7 -1
  128. package/esm2022/widgets/implementations/alarms/alarm-widget.service.mjs +12 -2
  129. package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs +12 -16
  130. package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs.map +1 -1
  131. package/fesm2022/c8y-ngx-components-alarms-devicemanagement.mjs +14 -17
  132. package/fesm2022/c8y-ngx-components-alarms-devicemanagement.mjs.map +1 -1
  133. package/fesm2022/c8y-ngx-components-alarms.mjs +389 -268
  134. package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
  135. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs +76 -9
  136. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs.map +1 -1
  137. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +19 -12
  138. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
  139. package/fesm2022/c8y-ngx-components-cockpit-config.mjs +7 -5
  140. package/fesm2022/c8y-ngx-components-cockpit-config.mjs.map +1 -1
  141. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +46 -12
  142. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  143. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +2 -2
  144. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
  145. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +79 -23
  146. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
  147. package/fesm2022/c8y-ngx-components-ecosystem.mjs +81 -25
  148. package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
  149. package/fesm2022/c8y-ngx-components-interval-picker.mjs.map +1 -1
  150. package/fesm2022/c8y-ngx-components-protocol-lwm2m.mjs +4 -0
  151. package/fesm2022/c8y-ngx-components-protocol-lwm2m.mjs.map +1 -1
  152. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs +1 -0
  153. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs.map +1 -1
  154. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +124 -15
  155. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
  156. package/fesm2022/c8y-ngx-components.mjs +489 -176
  157. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  158. package/interval-picker/interval-picker.component.d.ts +2 -2
  159. package/interval-picker/interval-picker.component.d.ts.map +1 -1
  160. package/interval-picker/interval-picker.model.d.ts +5 -0
  161. package/interval-picker/interval-picker.model.d.ts.map +1 -1
  162. package/locales/de.po +431 -538
  163. package/locales/en.po +2 -889
  164. package/locales/en_US.po +2 -880
  165. package/locales/es.po +462 -540
  166. package/locales/fr.po +470 -549
  167. package/locales/ja_JP.po +405 -598
  168. package/locales/ko.po +649 -502
  169. package/locales/locales.pot +27 -12
  170. package/locales/nl.po +463 -541
  171. package/locales/pl.po +504 -554
  172. package/locales/pt_BR.po +466 -543
  173. package/locales/zh_CN.po +650 -498
  174. package/locales/zh_TW.po +650 -498
  175. package/package.json +1 -1
  176. package/protocol-lwm2m/ng1/plugin-checker.service.d.ts +4 -0
  177. package/protocol-lwm2m/ng1/plugin-checker.service.d.ts.map +1 -1
  178. package/widgets/definitions/alarms/alarm-list/index.d.ts.map +1 -1
  179. package/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.d.ts +12 -1
  180. package/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.d.ts.map +1 -1
  181. package/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.d.ts +12 -1
  182. package/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.d.ts.map +1 -1
  183. package/widgets/implementations/alarms/alarm-list-widget.model.d.ts +11 -1
  184. package/widgets/implementations/alarms/alarm-list-widget.model.d.ts.map +1 -1
  185. package/widgets/implementations/alarms/alarm-widget.service.d.ts.map +1 -1
@@ -34,8 +34,25 @@ export class ApplicationPluginsComponent {
34
34
  this.allAvailablePlugins$
35
35
  ]).pipe(map(([remotePlugins, allPlugins]) => this.getInstalledPlugins(allPlugins, remotePlugins)), shareReplay(1));
36
36
  this.orphanedPlugins$ = this.installedPlugins$.pipe(map(plugins => plugins.filter(p => p.status === ApplicationPluginStatus.ORPHANED)));
37
- this.isStandard$ = combineLatest([this.installedPlugins$, this.selfPlugins$]).pipe(map(([installedPlugins, selfPlugins]) => installedPlugins.filter(p => selfPlugins.some(selfPlugin => selfPlugin.id === p.id))
38
- .length === selfPlugins.length && installedPlugins.length === selfPlugins.length));
37
+ this.isStandard$ = combineLatest([this.installedPlugins$, this.selfPlugins$]).pipe(map(([installedPlugins, selfPlugins]) => {
38
+ const manifestRemotes = this.app?.manifest?.remotes || {};
39
+ // ensure that every installed plugin is a self plugin or a plugin from the manifest
40
+ const allInstalledPluginsAreSelf = installedPlugins.every(p => selfPlugins.some(selfPlugin => selfPlugin.id === p.id) ||
41
+ (Array.isArray(manifestRemotes[p.contextPath]) &&
42
+ manifestRemotes[p.contextPath].includes(p.module)));
43
+ // ensure that every self plugin is installed
44
+ const allSelfPluginsAreInstalled = selfPlugins.every(selfPlugin => installedPlugins.some(p => p.id === selfPlugin.id));
45
+ const configRemotes = this.app?.config?.remotes || {};
46
+ // ensure that every remote from the manifest is in the config
47
+ // if no config exists we are also all good
48
+ const everyRemoteFromManifestIsInConfig = !this.app?.config?.remotes ||
49
+ Object.keys(manifestRemotes).every(contextPath => Array.isArray(configRemotes[contextPath]) &&
50
+ Array.isArray(manifestRemotes[contextPath]) &&
51
+ manifestRemotes[contextPath].every(module => configRemotes[contextPath].includes(module)));
52
+ return (allInstalledPluginsAreSelf &&
53
+ allSelfPluginsAreInstalled &&
54
+ everyRemoteFromManifestIsInConfig);
55
+ }));
39
56
  this.title = gettext('Installed plugins');
40
57
  this.loadMoreItemsLabel = gettext('Load more packages');
41
58
  this.loadingItemsLabel = gettext('Loading packages…');
@@ -67,9 +84,16 @@ export class ApplicationPluginsComponent {
67
84
  {
68
85
  name: 'Version',
69
86
  header: gettext('Version'),
70
- path: 'displayVersion',
87
+ path: 'version',
71
88
  filterable: false
72
89
  },
90
+ {
91
+ name: 'Tag',
92
+ header: gettext('Tag`noun`'),
93
+ path: 'installedViaTag',
94
+ filterable: false,
95
+ cellRendererComponent: LabelCellRendererComponent
96
+ },
73
97
  {
74
98
  name: 'description',
75
99
  header: gettext('Description'),
@@ -116,7 +140,7 @@ export class ApplicationPluginsComponent {
116
140
  }
117
141
  async resetToDefault() {
118
142
  this.isLoading = true;
119
- await this.pluginsService.setInitialRemotes(this.app);
143
+ await this.pluginsService.resetRemotes(this.app);
120
144
  await this.loadData();
121
145
  this.alertService.success(gettext('The application was reset to its default plugins.'));
122
146
  }
@@ -341,29 +365,46 @@ export class ApplicationPluginsComponent {
341
365
  }
342
366
  getInstallModalInitState() {
343
367
  return {
344
- plugins$: combineLatest([
345
- this.allAvailablePlugins$,
346
- this.installedPlugins$.pipe(map(plugins => plugins.map(p => p.id)))
347
- ]).pipe(map(([allPlugins, installedPlugins]) => {
348
- const plugins = [];
349
- allPlugins.map(p => plugins.push({
350
- ...p,
351
- installed: !!installedPlugins.includes(p.id)
352
- }));
353
- return plugins;
368
+ plugins$: combineLatest([this.allAvailablePlugins$, this.installedPlugins$]).pipe(map(([allPlugins, installedPlugins]) => {
369
+ // to not mutate the original array and objects contained in it
370
+ const allPluginsAsNewObjects = allPlugins.map(p => ({ ...p }));
371
+ for (const plugin of installedPlugins) {
372
+ let installedPlugin = allPluginsAsNewObjects.find(p => p.id === plugin.id);
373
+ if (!installedPlugin && plugin.installedViaTag) {
374
+ installedPlugin = allPluginsAsNewObjects.find(p => p.contextPath === plugin.contextPath &&
375
+ p.module === plugin.module &&
376
+ p.tags?.includes(plugin.installedViaTag));
377
+ }
378
+ if (installedPlugin) {
379
+ installedPlugin.installed = true;
380
+ continue;
381
+ }
382
+ }
383
+ return allPluginsAsNewObjects.map(p => ({ ...p, installed: !!p.installed }));
354
384
  }), shareReplay(1))
355
385
  };
356
386
  }
357
387
  getOrphanedPlugins(orphanedPluginIds, allPlugins) {
358
388
  const orphanedPlugins = orphanedPluginIds.map(p => this.extractDetails(p));
359
389
  const orphanedPluginsUpdated = orphanedPlugins.map(p => {
390
+ const pluginWithMatchingTag = allPlugins.find(tmp => tmp.contextPath === p.contextPath &&
391
+ tmp.module === p.module &&
392
+ tmp.tags?.includes(p.version || 'latest'));
393
+ if (pluginWithMatchingTag) {
394
+ return {
395
+ ...pluginWithMatchingTag,
396
+ id: p.id,
397
+ status: ApplicationPluginStatus.AUTO,
398
+ installedViaTag: p.version || 'latest'
399
+ };
400
+ }
360
401
  const pluginInDifferentVersion = allPlugins.find(tmp => tmp.contextPath === p.contextPath && tmp.module === p.module);
361
402
  if (pluginInDifferentVersion) {
362
403
  return {
363
404
  ...pluginInDifferentVersion,
364
- version: p.version || pluginInDifferentVersion.version,
405
+ version: p.version,
365
406
  id: p.id,
366
- status: p.version ? ApplicationPluginStatus.OUTDATED : ApplicationPluginStatus.LATEST
407
+ status: ApplicationPluginStatus.OUTDATED
367
408
  };
368
409
  }
369
410
  return p;
@@ -396,12 +437,15 @@ export class ApplicationPluginsComponent {
396
437
  }));
397
438
  const orphanedPluginIds = remotePlugins.filter(r => !availablePlugins.find(plugin => plugin.id === r));
398
439
  const orphanedPlugins = this.getOrphanedPlugins(orphanedPluginIds, allPlugins);
399
- const { actuallyOrphanedPlugins, revokedPlugins } = this.splitOrphanedPluginsIntoOrphanedAndRevokedPlugins(allPlugins, orphanedPlugins);
400
- return [...availablePlugins, ...revokedPlugins, ...actuallyOrphanedPlugins].map(plugin => ({
401
- ...plugin,
402
- // adding 'v' prefix so version string is not treated as date in data grid
403
- displayVersion: 'v' + plugin.version
404
- }));
440
+ const notActuallyOrphanedPlugins = orphanedPlugins.filter(p => p.status === ApplicationPluginStatus.AUTO);
441
+ const orphanedOrRevokedPlugins = orphanedPlugins.filter(p => p.status !== ApplicationPluginStatus.AUTO);
442
+ const { actuallyOrphanedPlugins, revokedPlugins } = this.splitOrphanedPluginsIntoOrphanedAndRevokedPlugins(allPlugins, orphanedOrRevokedPlugins);
443
+ return [
444
+ ...availablePlugins,
445
+ ...notActuallyOrphanedPlugins,
446
+ ...revokedPlugins,
447
+ ...actuallyOrphanedPlugins
448
+ ];
405
449
  }
406
450
  extractDetails(pluginId) {
407
451
  const contextPath = this.getStringMatchingRegex(pluginId, /^[^@]*(@|\/)/);
@@ -437,4 +481,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
437
481
  type: ViewChild,
438
482
  args: [DataGridComponent, { static: false }]
439
483
  }] } });
440
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tcGx1Z2lucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9lY29zeXN0ZW0vYXBwbGljYXRpb24tcGx1Z2lucy9hcHBsaWNhdGlvbi1wbHVnaW5zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9hcHBsaWNhdGlvbi1wbHVnaW5zL2FwcGxpY2F0aW9uLXBsdWdpbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsT0FBTyxFQUVMLFlBQVksRUFFWix1QkFBdUIsRUFHdkIsaUJBQWlCLEVBRWpCLGdCQUFnQixFQUNoQixPQUFPLEVBSVAsY0FBYyxFQUNkLG1CQUFtQixFQUNwQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsNEJBQTRCLEVBQzdCLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRixPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSww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bnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnMsIElBcHBsaWNhdGlvbiB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7XG4gIEFjdGlvbkNvbnRyb2wsXG4gIEFsZXJ0U2VydmljZSxcbiAgQXBwbGljYXRpb25QbHVnaW4sXG4gIEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzLFxuICBCdWxrQWN0aW9uQ29udHJvbCxcbiAgQ29sdW1uLFxuICBEYXRhR3JpZENvbXBvbmVudCxcbiAgRGlzcGxheU9wdGlvbnMsXG4gIEdhaW5zaWdodFNlcnZpY2UsXG4gIGdldHRleHQsXG4gIEhlYWRlckFjdGlvbkNvbnRyb2wsXG4gIFBhZ2luYXRpb24sXG4gIFBsdWdpbnNDb25maWcsXG4gIFBsdWdpbnNTZXJ2aWNlLFxuICBQbHVnaW5zRXhwb3J0U2NvcGVzXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgRWNvc3lzdGVtU2VydmljZSxcbiAgUFJPRFVDVF9FWFBFUklFTkNFX0VDT1NZU1RFTVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2Vjb3N5c3RlbS9zaGFyZWQnO1xuaW1wb3J0IHsgcGljayB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEluc3RhbGxQbHVnaW5Db21wb25lbnQgfSBmcm9tICcuL2luc3RhbGwtcGx1Z2luLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYWJlbENlbGxSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vbGFiZWwtY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3JwaGFuZWRTdGF0dXNDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL29ycGhhbmVkLXN0YXR1cy1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVcGRhdGVQbHVnaW5PZkFwcENvbXBvbmVudCB9IGZyb20gJy4vdXBkYXRlLXBsdWdpbi1vZi1hcHAvdXBkYXRlLXBsdWdpbi1vZi1hcHAuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWFwcC1wbHVnaW5zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcGxpY2F0aW9uLXBsdWdpbnMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uUGx1Z2luc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgUFJPRFVDVF9FWFBFUklFTkNFID0gUFJPRFVDVF9FWFBFUklFTkNFX0VDT1NZU1RFTTtcbiAgQ1VSUkVOVF9MT0NBVElPTiA9IGxvY2F0aW9uLmhyZWY7XG5cbiAgQElucHV0KCkgYXBwSWQ6IHN0cmluZyB8IG51bWJlcjtcbiAgQFZpZXdDaGlsZChEYXRhR3JpZENvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGRhdGFHcmlkOiBEYXRhR3JpZENvbXBvbmVudDtcblxuICByZW1vdGVQbHVnaW5zJDogQmVoYXZpb3JTdWJqZWN0PEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHt9KTtcbiAgYWxsQXZhaWxhYmxlUGx1Z2lucyQ6IEJlaGF2aW9yU3ViamVjdDxBcHBsaWNhdGlvblBsdWdpbltdPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoW10pO1xuICBzZWxmUGx1Z2lucyQ6IEJlaGF2aW9yU3ViamVjdDxBcHBsaWNhdGlvblBsdWdpbltdPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoW10pO1xuXG4gIGluc3RhbGxlZFBsdWdpbnMkOiBPYnNlcnZhYmxlPEFwcGxpY2F0aW9uUGx1Z2luW10+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5yZW1vdGVQbHVnaW5zJC5waXBlKG1hcChyZW1vdGVzID0+IFBsdWdpbnNTZXJ2aWNlLmNvbnZlcnRJbnN0YWxsZWRSZW1vdGVzVG9JZHMocmVtb3RlcykpKSxcbiAgICB0aGlzLmFsbEF2YWlsYWJsZVBsdWdpbnMkXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbcmVtb3RlUGx1Z2lucywgYWxsUGx1Z2luc10pID0+IHRoaXMuZ2V0SW5zdGFsbGVkUGx1Z2lucyhhbGxQbHVnaW5zLCByZW1vdGVQbHVnaW5zKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcbiAgb3JwaGFuZWRQbHVnaW5zJCA9IHRoaXMuaW5zdGFsbGVkUGx1Z2lucyQucGlwZShcbiAgICBtYXAocGx1Z2lucyA9PiBwbHVnaW5zLmZpbHRlcihwID0+IHAuc3RhdHVzID09PSBBcHBsaWNhdGlvblBsdWdpblN0YXR1cy5PUlBIQU5FRCkpXG4gICk7XG4gIGlzU3RhbmRhcmQkID0gY29tYmluZUxhdGVzdChbdGhpcy5pbnN0YWxsZWRQbHVnaW5zJCwgdGhpcy5zZWxmUGx1Z2lucyRdKS5waXBlKFxuICAgIG1hcChcbiAgICAgIChbaW5zdGFsbGVkUGx1Z2lucywgc2VsZlBsdWdpbnNdKSA9PlxuICAgICAgICBpbnN0YWxsZWRQbHVnaW5zLmZpbHRlcihwID0+IHNlbGZQbHVnaW5zLnNvbWUoc2VsZlBsdWdpbiA9PiBzZWxmUGx1Z2luLmlkID09PSBwLmlkKSlcbiAgICAgICAgICAubGVuZ3RoID09PSBzZWxmUGx1Z2lucy5sZW5ndGggJiYgaW5zdGFsbGVkUGx1Z2lucy5sZW5ndGggPT09IHNlbGZQbHVnaW5zLmxlbmd0aFxuICAgIClcbiAgKTtcbiAgYXBwOiBJQXBwbGljYXRpb247XG4gIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgdGl0bGU6IHN0cmluZyA9IGdldHRleHQoJ0luc3RhbGxlZCBwbHVnaW5zJyk7XG4gIGxvYWRNb3JlSXRlbXNMYWJlbDogc3RyaW5nID0gZ2V0dGV4dCgnTG9hZCBtb3JlIHBhY2thZ2VzJyk7XG4gIGxvYWRpbmdJdGVtc0xhYmVsOiBzdHJpbmcgPSBnZXR0ZXh0KCdMb2FkaW5nIHBhY2thZ2Vz4oCmJyk7XG4gIGFjdGlvbkNvbnRyb2xzOiBBY3Rpb25Db250cm9sW10gPSB0aGlzLmdldEFjdGlvbkNvbnRyb2xzKCk7XG4gIGJ1bGtBY3Rpb25Db250cm9sczogQnVsa0FjdGlvbkNvbnRyb2xbXSA9IHRoaXMuZ2V0QnVsa0FjdGlvbkNvbnRyb2xzKCk7XG4gIGhlYWRlckFjdGlvbkNvbnRyb2xzOiBIZWFkZXJBY3Rpb25Db250cm9sW10gPSBbXTtcbiAgbm9SZXN1bHRzTWVzc2FnZSA9IGdldHRleHQoJ05vIHBsdWdpbnMgdG8gZGlzcGxheS4nKTtcbiAgbm9EYXRhTWVzc2FnZSA9IGdldHRleHQoJ05vIHBsdWdpbnMgaW5zdGFsbGVkLicpO1xuICBub1Jlc3VsdHNTdWJ0aXRsZSA9IGdldHRleHQoJ1JlZmluZSB5b3VyIHNlYXJjaCB0ZXJtcyBvciBjaGVjayB5b3VyIHNwZWxsaW5nLicpO1xuICBub0RhdGFTdWJ0aXRsZSA9IGdldHRleHQoXCJUaGlzIGFwcGxpY2F0aW9uIGRvZXNuJ3QgaGF2ZSBhbnkgcGx1Z2luLiBDbGljayBiZWxvdyB0byBpbnN0YWxsLlwiKTtcbiAgcGFnaW5hdGlvbjogUGFnaW5hdGlvbiA9IHtcbiAgICBwYWdlU2l6ZTogMTAsXG4gICAgY3VycmVudFBhZ2U6IDFcbiAgfTtcbiAgZGlzcGxheU9wdGlvbnM6IERpc3BsYXlPcHRpb25zID0ge1xuICAgIGJvcmRlcmVkOiBmYWxzZSxcbiAgICBzdHJpcGVkOiB0cnVlLFxuICAgIGZpbHRlcjogdHJ1ZSxcbiAgICBncmlkSGVhZGVyOiB0cnVlLFxuICAgIGhvdmVyOiB0cnVlXG4gIH07XG4gIGNvbHVtbnM6IENvbHVtbltdID0gW1xuICAgIHtcbiAgICAgIG5hbWU6ICduYW1lJyxcbiAgICAgIGhlYWRlcjogZ2V0dGV4dCgnUGx1Z2luIG5hbWUnKSxcbiAgICAgIHBhdGg6ICduYW1lJyxcbiAgICAgIGZpbHRlcmFibGU6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdWZXJzaW9uJyxcbiAgICAgIGhlYWRlcjogZ2V0dGV4dCgnVmVyc2lvbicpLFxuICAgICAgcGF0aDogJ2Rpc3BsYXlWZXJzaW9uJyxcbiAgICAgIGZpbHRlcmFibGU6IGZhbHNlXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnZGVzY3JpcHRpb24nLFxuICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdEZXNjcmlwdGlvbicpLFxuICAgICAgcGF0aDogJ2Rlc2NyaXB0aW9uJyxcbiAgICAgIGZpbHRlcmFibGU6IGZhbHNlLFxuICAgICAgY2VsbENTU0NsYXNzTmFtZTogJ3NtYWxsJ1xuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2NvbnRleHRQYXRoJyxcbiAgICAgIGhlYWRlcjogZ2V0dGV4dCgnU291cmNlJyksXG4gICAgICBwYXRoOiAnY29udGV4dFBhdGgnLFxuICAgICAgZmlsdGVyYWJsZTogZmFsc2UsXG4gICAgICBjZWxsUmVuZGVyZXJDb21wb25lbnQ6IExhYmVsQ2VsbFJlbmRlcmVyQ29tcG9uZW50XG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnc2NvcGUnLFxuICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdTY29wZScpLFxuICAgICAgcGF0aDogJ3Njb3BlJyxcbiAgICAgIGZpbHRlcmFibGU6IGZhbHNlLFxuICAgICAgdmlzaWJsZTogZmFsc2UsXG4gICAgICBjZWxsUmVuZGVyZXJDb21wb25lbnQ6IExhYmVsQ2VsbFJlbmRlcmVyQ29tcG9uZW50XG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnc3RhdHVzJyxcbiAgICAgIGhlYWRlcjogZ2V0dGV4dCgnU3RhdHVzJyksXG4gICAgICBwYXRoOiAnc3RhdHVzJyxcbiAgICAgIGZpbHRlcmFibGU6IGZhbHNlLFxuICAgICAgY2VsbFJlbmRlcmVyQ29tcG9uZW50OiBPcnBoYW5lZFN0YXR1c0NlbGxSZW5kZXJlckNvbXBvbmVudFxuICAgIH1cbiAgXTtcbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBlY29zeXN0ZW1TZXJ2aWNlOiBFY29zeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGx1Z2luc1NlcnZpY2U6IFBsdWdpbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBnYWluc2lnaHRTZXJ2aWNlOiBHYWluc2lnaHRTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmFkZEluc3RhbGxCdXR0b25Ub0hlYWRlckFjdGlvbkNvbnRyb2xzKCk7XG4gICAgdGhpcy5sb2FkRGF0YSgpO1xuICB9XG5cbiAgYXN5bmMgbG9hZERhdGEoKSB7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIGF3YWl0IHRoaXMuZ2V0QXBwbGljYXRpb25NTygpO1xuICAgIGF3YWl0IHRoaXMuZ2V0QXBwbGljYXRpb25NRlJlbW90ZXModGhpcy5hcHApO1xuICAgIGF3YWl0IHRoaXMuZ2V0QWxsQXBwbGljYXRpb25zTUZFeHBvcnRzKHRoaXMuYXBwKTtcbiAgICBhd2FpdCB0aGlzLmdldEFsbFNlbGZNRkV4cG9ydHModGhpcy5hcHApO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gIH1cblxuICBhc3luYyByZXNldFRvRGVmYXVsdCgpIHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgYXdhaXQgdGhpcy5wbHVnaW5zU2VydmljZS5zZXRJbml0aWFsUmVtb3Rlcyh0aGlzLmFwcCk7XG4gICAgYXdhaXQgdGhpcy5sb2FkRGF0YSgpO1xuICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoZ2V0dGV4dCgnVGhlIGFwcGxpY2F0aW9uIHdhcyByZXNldCB0byBpdHMgZGVmYXVsdCBwbHVnaW5zLicpKTtcbiAgfVxuXG4gIGFzeW5jIGluc3RhbGxQbHVnaW5zKCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwbHVnaW5zVG9BZGQ6IEFwcGxpY2F0aW9uUGx1Z2luW10gPVxuICAgICAgICBhd2FpdCB0aGlzLmJzTW9kYWxTZXJ2aWNlLnNob3c8SW5zdGFsbFBsdWdpbkNvbXBvbmVudD4oSW5zdGFsbFBsdWdpbkNvbXBvbmVudCwge1xuICAgICAgICAgIGNsYXNzOiAnbW9kYWwtc20nLFxuICAgICAgICAgIGFyaWFEZXNjcmliZWRieTogJ21vZGFsLWJvZHknLFxuICAgICAgICAgIGFyaWFMYWJlbGxlZEJ5OiAnbW9kYWwtdGl0bGUnLFxuICAgICAgICAgIGluaXRpYWxTdGF0ZTogdGhpcy5nZXRJbnN0YWxsTW9kYWxJbml0U3RhdGUoKSxcbiAgICAgICAgICBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlXG4gICAgICAgIH0pLmNvbnRlbnQucmVzdWx0O1xuXG4gICAgICBjb25zdCBsaWNlbnNlc1ZlcmlmaWVkQnlVc2VyID0gYXdhaXQgdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLnZlcmlmeUxpY2Vuc2VzKHBsdWdpbnNUb0FkZCk7XG4gICAgICBpZiAoIWxpY2Vuc2VzVmVyaWZpZWRCeVVzZXIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgdmVyaWZ5VmVyc2lvbkNvbXBhdGliaWxpdHkgPVxuICAgICAgICBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UudmVyaWZ5UGx1Z2luVmVyc2lvbnNDb21wYXRpYmlsaXR5KHBsdWdpbnNUb0FkZCwgdGhpcy5hcHApO1xuXG4gICAgICBpZiAoIXZlcmlmeVZlcnNpb25Db21wYXRpYmlsaXR5KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgYXdhaXQgdGhpcy5oYW5kbGVSZW1vdGVzSW5zdGFsbGF0aW9uKHBsdWdpbnNUb0FkZCk7XG5cbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoZ2V0dGV4dCgnUGx1Z2lucyBpbnN0YWxsZWQuJykpO1xuICAgICAgcGx1Z2luc1RvQWRkLmZvckVhY2gocGx1Z2luID0+IHtcbiAgICAgICAgY29uc3QgcGx1Z2luQ3VzdG9tRXZlbnRJbmZvID0gcGljayhwbHVnaW4sIFtcbiAgICAgICAgICAnbmFtZScsXG4gICAgICAgICAgJ2NvbnRleHRQYXRoJyxcbiAgICAgICAgICAnbW9kdWxlJyxcbiAgICAgICAgICAndmVyc2lvbicsXG4gICAgICAgICAgJ3R5cGUnLFxuICAgICAgICAgICdpZCdcbiAgICAgICAgXSBzYXRpc2ZpZXMgKGtleW9mIEFwcGxpY2F0aW9uUGx1Z2luKVtdKTtcblxuICAgICAgICB0aGlzLmdhaW5zaWdodFNlcnZpY2UudHJpZ2dlckV2ZW50KFxuICAgICAgICAgIFBST0RVQ1RfRVhQRVJJRU5DRV9FQ09TWVNURU0uQVBQTElDQVRJT05TLkVWRU5UUy5JTlNUQUxMRURfUExVR0lOUyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRV9FQ09TWVNURU0uQVBQTElDQVRJT05TLkNPTVBPTkVOVFMuQVBQTElDQVRJT05fUExVR0lOUyxcbiAgICAgICAgICAgIHJlc3VsdDogUFJPRFVDVF9FWFBFUklFTkNFX0VDT1NZU1RFTS5BUFBMSUNBVElPTlMuUkVTVUxUUy5QTFVHSU5fSU5TVEFMTEVELFxuICAgICAgICAgICAgdXJsOiB0aGlzLkNVUlJFTlRfTE9DQVRJT04sXG4gICAgICAgICAgICAuLi5wbHVnaW5DdXN0b21FdmVudEluZm8sXG4gICAgICAgICAgICB0YXJnZXRBcHBsaWNhdGlvbk5hbWU6IHRoaXMuYXBwLm5hbWUsXG4gICAgICAgICAgICB0YXJnZXRBcHBsaWNhdGlvbkNvbnRleHRQYXRoOiB0aGlzLmFwcC5jb250ZXh0UGF0aFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICBpZiAoZXgpIHtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShleCk7XG4gICAgICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoXG4gICAgICAgICAgUFJPRFVDVF9FWFBFUklFTkNFX0VDT1NZU1RFTS5BUFBMSUNBVElPTlMuRVZFTlRTLklOU1RBTExFRF9QTFVHSU5TLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogUFJPRFVDVF9FWFBFUklFTkNFX0VDT1NZU1RFTS5BUFBMSUNBVElPTlMuQ09NUE9ORU5UUy5BUFBMSUNBVElPTl9QTFVHSU5TLFxuICAgICAgICAgICAgcmVzdWx0OiBQUk9EVUNUX0VYUEVSSUVOQ0VfRUNPU1lTVEVNLkFQUExJQ0FUSU9OUy5SRVNVTFRTLlNFUlZFUl9GQUlMVVJFLFxuICAgICAgICAgICAgdXJsOiB0aGlzLkNVUlJFTlRfTE9DQVRJT04sXG4gICAgICAgICAgICBlcnJvcjogZXhcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmVtb3ZlUGx1Z2lucyhwbHVnaW5zOiBzdHJpbmdbXSkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICBjb25zdCBpbnN0YWxsZWRQbHVnaW5zID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5pbnN0YWxsZWRQbHVnaW5zJCk7XG4gICAgICBjb25zdCB1cGRhdGVkUmVtb3RlcyA9IGF3YWl0IHRoaXMucGx1Z2luc1NlcnZpY2UucmVtb3ZlUmVtb3RlcyhcbiAgICAgICAgdGhpcy5hcHAsXG4gICAgICAgIHBsdWdpbnMubWFwKGlkID0+IGluc3RhbGxlZFBsdWdpbnMuZmluZChwID0+IHAuaWQgPT09IGlkKSlcbiAgICAgICk7XG4gICAgICB0aGlzLmVtaXRSZW1vdGVzKHVwZGF0ZWRSZW1vdGVzKTtcblxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuZGF0YUdyaWQuY2FuY2VsKCk7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKGdldHRleHQoJ1BsdWdpbnMgcmVtb3ZlZC4nKSk7XG4gICAgICBwbHVnaW5zLmZvckVhY2gocGx1Z2luID0+IHtcbiAgICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChcbiAgICAgICAgICBQUk9EVUNUX0VYUEVSSUVOQ0VfRUNPU1lTVEVNLkFQUExJQ0FUSU9OUy5FVkVOVFMuSU5TVEFMTEVEX1BMVUdJTlMsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0VfRUNPU1lTVEVNLkFQUExJQ0FUSU9OUy5DT01QT05FTlRTLkFQUExJQ0FUSU9OX1BMVUdJTlMsXG4gICAgICAgICAgICByZXN1bHQ6IFBST0RVQ1RfRVhQRVJJRU5DRV9FQ09TWVNURU0uQVBQTElDQVRJT05TLlJFU1VMVFMuUExVR0lOX1JFTU9WRUQsXG4gICAgICAgICAgICB1cmw6IHRoaXMuQ1VSUkVOVF9MT0NBVElPTixcbiAgICAgICAgICAgIGlkOiBwbHVnaW4sXG4gICAgICAgICAgICB0YXJnZXRBcHBsaWNhdGlvbk5hbWU6IHRoaXMuYXBwLm5hbWUsXG4gICAgICAgICAgICB0YXJnZXRBcHBsaWNhdGlvbkNvbnRleHRQYXRoOiB0aGlzLmFwcC5jb250ZXh0UGF0aFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICBpZiAoZXgpIHtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShleCk7XG4gICAgICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoXG4gICAgICAgICAgUFJPRFVDVF9FWFBFUklFTkNFX0VDT1NZU1RFTS5BUFBMSUNBVElPTlMuRVZFTlRTLklOU1RBTExFRF9QTFVHSU5TLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogUFJPRFVDVF9FWFBFUklFTkNFX0VDT1NZU1RFTS5BUFBMSUNBVElPTlMuQ09NUE9ORU5UUy5BUFBMSUNBVElPTl9QTFVHSU5TLFxuICAgICAgICAgICAgcmVzdWx0OiBQUk9EVUNUX0VYUEVSSUVOQ0VfRUNPU1lTVEVNLkFQUExJQ0FUSU9OUy5SRVNVTFRTLlNFUlZFUl9GQUlMVVJFLFxuICAgICAgICAgICAgdXJsOiB0aGlzLkNVUlJFTlRfTE9DQVRJT04sXG4gICAgICAgICAgICBlcnJvcjogZXhcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY2xlYW51cE9ycGhhbmVkUGx1Z2lucyhwbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbltdKSB7XG4gICAgY29uc3QgcGx1Z2luSWRzID0gcGx1Z2lucy5tYXAocCA9PiBwLmlkKTtcbiAgICBhd2FpdCB0aGlzLnJlbW92ZVBsdWdpbnMocGx1Z2luSWRzKTtcbiAgfVxuXG4gIGdldEFjdGlvbkNvbnRyb2xzKCk6IEFjdGlvbkNvbnRyb2xbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2N1c3RvbVVwZGF0ZScsXG4gICAgICAgIHRleHQ6IGdldHRleHQoJ1VwZGF0ZScpLFxuICAgICAgICBpY29uOiAnY2FyZXQtc3F1YXJlLW8tdXAnLFxuICAgICAgICBzaG93SWY6IHBsdWdpbiA9PiB7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHBsdWdpbi5zdGF0dXMgPT09IEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzLk9VVERBVEVEIHx8XG4gICAgICAgICAgICBwbHVnaW4uc3RhdHVzID09PSBBcHBsaWNhdGlvblBsdWdpblN0YXR1cy5SRVZPS0VEXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgY2FsbGJhY2s6IHBsdWdpbiA9PiB0aGlzLnVwZGF0ZVBsdWdpbih0aGlzLmFwcCwgcGx1Z2luIGFzIEFwcGxpY2F0aW9uUGx1Z2luKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2N1c3RvbURvd25ncmFkZScsXG4gICAgICAgIHRleHQ6IGdldHRleHQoJ0Rvd25ncmFkZScpLFxuICAgICAgICBpY29uOiAnY2FyZXQtc3F1YXJlLW8tZG93bicsXG4gICAgICAgIHNob3dJZjogKHBsdWdpbjogQXBwbGljYXRpb25QbHVnaW4pID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBwbHVnaW4uc2NvcGUgPT09IFBsdWdpbnNFeHBvcnRTY29wZXMuU0VMRiB8fFxuICAgICAgICAgICAgcGx1Z2luLnNjb3BlID09PSBQbHVnaW5zRXhwb3J0U2NvcGVzLlNFTEZfT1BUSU9OQUxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHBsdWdpbi5zdGF0dXMgPT09IEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzLkxBVEVTVDtcbiAgICAgICAgfSxcbiAgICAgICAgY2FsbGJhY2s6IHBsdWdpbiA9PiB0aGlzLnVwZGF0ZVBsdWdpbih0aGlzLmFwcCwgcGx1Z2luIGFzIEFwcGxpY2F0aW9uUGx1Z2luLCB0cnVlKVxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICBnZXRCdWxrQWN0aW9uQ29udHJvbHMoKTogQnVsa0FjdGlvbkNvbnRyb2xbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2N1c3RvbURlbGV0ZScsXG4gICAgICAgIHRleHQ6IGdldHRleHQoJ1JlbW92ZScpLFxuICAgICAgICBpY29uOiAndHJhc2gnLFxuICAgICAgICBjYWxsYmFjazogcGx1Z2lucyA9PiB0aGlzLnJlbW92ZVBsdWdpbnMocGx1Z2lucylcbiAgICAgIH1cbiAgICBdO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlUGx1Z2luKGFwcDogSUFwcGxpY2F0aW9uLCBwbHVnaW46IEFwcGxpY2F0aW9uUGx1Z2luLCBkb3duZ3JhZGUgPSBmYWxzZSkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCAoXG4gICAgICAgIHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2hvdyhVcGRhdGVQbHVnaW5PZkFwcENvbXBvbmVudCwge1xuICAgICAgICAgIGNsYXNzOiAnbW9kYWwtc20nLFxuICAgICAgICAgIGFyaWFEZXNjcmliZWRieTogJ21vZGFsLWJvZHknLFxuICAgICAgICAgIGFyaWFMYWJlbGxlZEJ5OiAnbW9kYWwtdGl0bGUnLFxuICAgICAgICAgIGluaXRpYWxTdGF0ZToge1xuICAgICAgICAgICAgYXBwLFxuICAgICAgICAgICAgcGx1Z2luLFxuICAgICAgICAgICAgZG93bmdyYWRlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlXG4gICAgICAgIH0pLmNvbnRlbnQgYXMgVXBkYXRlUGx1Z2luT2ZBcHBDb21wb25lbnRcbiAgICAgICkucmVzdWx0O1xuICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgfSBjYXRjaCAoZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMubG9hZERhdGEoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkSW5zdGFsbEJ1dHRvblRvSGVhZGVyQWN0aW9uQ29udHJvbHMoKSB7XG4gICAgaWYgKHRoaXMuYXBwSWQpIHtcbiAgICAgIHRoaXMuaGVhZGVyQWN0aW9uQ29udHJvbHMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiBnZXR0ZXh0KCdJbnN0YWxsIHBsdWdpbnMnKSxcbiAgICAgICAgICBjYWxsYmFjazogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pbnN0YWxsUGx1Z2lucygpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgaWNvbjogJ3BsdXMtY2lyY2xlJyxcbiAgICAgICAgICB0eXBlOiAnY3VzdG9tJ1xuICAgICAgICB9XG4gICAgICBdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlUmVtb3Rlc0luc3RhbGxhdGlvbihwbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbltdKSB7XG4gICAgY29uc3QgdXBkYXRlZFJlbW90ZXMgPSBhd2FpdCB0aGlzLnBsdWdpbnNTZXJ2aWNlLmFkZFJlbW90ZXModGhpcy5hcHAsIHBsdWdpbnMpO1xuICAgIHJldHVybiB0aGlzLmVtaXRSZW1vdGVzKHVwZGF0ZWRSZW1vdGVzKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdFJlbW90ZXMocGx1Z2luc0NvbmZpZzogUGx1Z2luc0NvbmZpZykge1xuICAgIGNvbnN0IHsgcmVtb3RlcywgZXhjbHVkZWRSZW1vdGVzIH0gPSBwbHVnaW5zQ29uZmlnO1xuXG4gICAgLy8gbmVlZGVkIGZvciBmaXJzdCB0aW1lIGFkZGluZy9yZW1vdmluZyBhIHBsdWdpblxuICAgIGlmICghdGhpcy5hcHAuY29uZmlnKSB7XG4gICAgICB0aGlzLmFwcC5jb25maWcgPSB7fTtcbiAgICB9XG5cbiAgICB0aGlzLmFwcC5jb25maWcucmVtb3RlcyA9IHJlbW90ZXM7XG4gICAgdGhpcy5hcHAuY29uZmlnLmV4Y2x1ZGVkUmVtb3RlcyA9IGV4Y2x1ZGVkUmVtb3RlcztcbiAgICBjb25zdCBhY3R1YWxSZW1vdGVzID0gdGhpcy5wbHVnaW5zU2VydmljZS5nZXRNRlJlbW90ZXModGhpcy5hcHApO1xuICAgIHRoaXMucmVtb3RlUGx1Z2lucyQubmV4dChhY3R1YWxSZW1vdGVzKTtcbiAgICByZXR1cm4geyAuLi50aGlzLnJlbW90ZVBsdWdpbnMkLnZhbHVlIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldEFwcGxpY2F0aW9uTU8oKTogUHJvbWlzZTxJQXBwbGljYXRpb24+IHtcbiAgICBsZXQgaWQgPSB0aGlzLmFwcElkO1xuICAgIGlmICghaWQpIHtcbiAgICAgIGNvbnN0IHsgaWQ6IHJvdXRlSWQgfSA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucGFyZW50LmRhdGEuY29udGV4dERhdGE7XG4gICAgICBpZCA9IHJvdXRlSWQ7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuYXBwID0gYXdhaXQgdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmdldEFwcGxpY2F0aW9uKGlkKTtcbiAgICB9IGNhdGNoIChlcikge1xuICAgICAgaWYgKGVyKSB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXIpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hcHA7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldEFwcGxpY2F0aW9uTUZFeHBvcnRzKGFwcDogSUFwcGxpY2F0aW9uKSB7XG4gICAgY29uc3QgZXhwb3J0cyA9IHRoaXMucGx1Z2luc1NlcnZpY2UuZ2V0TUZFeHBvcnRzKGFwcCwgW10sIHRydWUpO1xuICAgIHJldHVybiBleHBvcnRzO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRBcHBsaWNhdGlvbk1GUmVtb3RlcyhhcHA6IElBcHBsaWNhdGlvbikge1xuICAgIGNvbnN0IGFwcENvbmZpZ1JlbW90ZXMgPSB0aGlzLnBsdWdpbnNTZXJ2aWNlLmdldE1GUmVtb3RlcyhhcHApO1xuICAgIHRoaXMucmVtb3RlUGx1Z2lucyQubmV4dChhcHBDb25maWdSZW1vdGVzIHx8IHt9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QWxsQXBwbGljYXRpb25zTUZFeHBvcnRzKGFwcDogSUFwcGxpY2F0aW9uKSB7XG4gICAgY29uc3QgZXhwb3J0ZWRCeUN1cnJlbnRBcHAgPSBhd2FpdCB0aGlzLmdldEFwcGxpY2F0aW9uTUZFeHBvcnRzKGFwcCk7XG4gICAgY29uc3QgYWxsQXBwc01GRXhwb3J0cyA9IGF3YWl0IHRoaXMucGx1Z2luc1NlcnZpY2UuZ2V0QWxsTUZFeHBvcnRzKHRydWUpO1xuICAgIHRoaXMuYWxsQXZhaWxhYmxlUGx1Z2lucyQubmV4dChbLi4uYWxsQXBwc01GRXhwb3J0cywgLi4uZXhwb3J0ZWRCeUN1cnJlbnRBcHBdKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QWxsU2VsZk1GRXhwb3J0cyhhcHA6IElBcHBsaWNhdGlvbikge1xuICAgIGNvbnN0IGV4cG9ydGVkQnlDdXJyZW50QXBwID0gYXdhaXQgdGhpcy5nZXRBcHBsaWNhdGlvbk1GRXhwb3J0cyhhcHApO1xuICAgIHRoaXMuc2VsZlBsdWdpbnMkLm5leHQoZXhwb3J0ZWRCeUN1cnJlbnRBcHAuZmlsdGVyKCh7IHNjb3BlIH0pID0+IHNjb3BlID09PSAnc2VsZicpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5zdGFsbE1vZGFsSW5pdFN0YXRlKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBsdWdpbnMkOiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5hbGxBdmFpbGFibGVQbHVnaW5zJCxcbiAgICAgICAgdGhpcy5pbnN0YWxsZWRQbHVnaW5zJC5waXBlKG1hcChwbHVnaW5zID0+IHBsdWdpbnMubWFwKHAgPT4gcC5pZCkpKVxuICAgICAgXSkucGlwZShcbiAgICAgICAgbWFwKChbYWxsUGx1Z2lucywgaW5zdGFsbGVkUGx1Z2luc10pID0+IHtcbiAgICAgICAgICBjb25zdCBwbHVnaW5zID0gW107XG4gICAgICAgICAgYWxsUGx1Z2lucy5tYXAocCA9PlxuICAgICAgICAgICAgcGx1Z2lucy5wdXNoKHtcbiAgICAgICAgICAgICAgLi4ucCxcbiAgICAgICAgICAgICAgaW5zdGFsbGVkOiAhIWluc3RhbGxlZFBsdWdpbnMuaW5jbHVkZXMocC5pZClcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gcGx1Z2lucztcbiAgICAgICAgfSksXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICApXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3JwaGFuZWRQbHVnaW5zKFxuICAgIG9ycGhhbmVkUGx1Z2luSWRzOiBzdHJpbmdbXSxcbiAgICBhbGxQbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbltdXG4gICk6IEFwcGxpY2F0aW9uUGx1Z2luW10ge1xuICAgIGNvbnN0IG9ycGhhbmVkUGx1Z2luczogQXBwbGljYXRpb25QbHVnaW5bXSA9IG9ycGhhbmVkUGx1Z2luSWRzLm1hcChwID0+IHRoaXMuZXh0cmFjdERldGFpbHMocCkpO1xuICAgIGNvbnN0IG9ycGhhbmVkUGx1Z2luc1VwZGF0ZWQgPSBvcnBoYW5lZFBsdWdpbnMubWFwKHAgPT4ge1xuICAgICAgY29uc3QgcGx1Z2luSW5EaWZmZXJlbnRWZXJzaW9uID0gYWxsUGx1Z2lucy5maW5kKFxuICAgICAgICB0bXAgPT4gdG1wLmNvbnRleHRQYXRoID09PSBwLmNvbnRleHRQYXRoICYmIHRtcC5tb2R1bGUgPT09IHAubW9kdWxlXG4gICAgICApO1xuICAgICAgaWYgKHBsdWdpbkluRGlmZmVyZW50VmVyc2lvbikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnBsdWdpbkluRGlmZmVyZW50VmVyc2lvbixcbiAgICAgICAgICB2ZXJzaW9uOiBwLnZlcnNpb24gfHwgcGx1Z2luSW5EaWZmZXJlbnRWZXJzaW9uLnZlcnNpb24sXG4gICAgICAgICAgaWQ6IHAuaWQsXG4gICAgICAgICAgc3RhdHVzOiBwLnZlcnNpb24gPyBBcHBsaWNhdGlvblBsdWdpblN0YXR1cy5PVVREQVRFRCA6IEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzLkxBVEVTVFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHA7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gb3JwaGFuZWRQbHVnaW5zVXBkYXRlZDtcbiAgfVxuXG4gIHByaXZhdGUgc3BsaXRPcnBoYW5lZFBsdWdpbnNJbnRvT3JwaGFuZWRBbmRSZXZva2VkUGx1Z2lucyhcbiAgICBhbGxQbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbltdLFxuICAgIG9ycGhhbmVkUGx1Z2luczogQXBwbGljYXRpb25QbHVnaW5bXVxuICApIHtcbiAgICBjb25zdCByZXZva2VkUGx1Z2lucyA9IG5ldyBBcnJheTxBcHBsaWNhdGlvblBsdWdpbj4oKTtcbiAgICBjb25zdCBhY3R1YWxseU9ycGhhbmVkUGx1Z2lucyA9IG5ldyBBcnJheTxBcHBsaWNhdGlvblBsdWdpbj4oKTtcblxuICAgIGZvciAoY29uc3QgcGx1Z2luIG9mIG9ycGhhbmVkUGx1Z2lucykge1xuICAgICAgY29uc3QgZm91bmRGYW1pbGlhclBsdWdpbiA9IGFsbFBsdWdpbnMuZmluZChcbiAgICAgICAgcGx1Z2luMSA9PiBwbHVnaW4uY29udGV4dFBhdGggPT09IHBsdWdpbjEuY29udGV4dFBhdGggJiYgcGx1Z2luLm1vZHVsZSA9PT0gcGx1Z2luMS5tb2R1bGVcbiAgICAgICk7XG4gICAgICBpZiAoZm91bmRGYW1pbGlhclBsdWdpbikge1xuICAgICAgICByZXZva2VkUGx1Z2lucy5wdXNoKFxuICAgICAgICAgIE9iamVjdC5hc3NpZ24oe30sIGZvdW5kRmFtaWxpYXJQbHVnaW4sIHBsdWdpbiwge1xuICAgICAgICAgICAgc3RhdHVzOiBBcHBsaWNhdGlvblBsdWdpblN0YXR1cy5SRVZPS0VEXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFjdHVhbGx5T3JwaGFuZWRQbHVnaW5zLnB1c2gocGx1Z2luKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyByZXZva2VkUGx1Z2lucywgYWN0dWFsbHlPcnBoYW5lZFBsdWdpbnMgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5zdGFsbGVkUGx1Z2lucyhcbiAgICBhbGxQbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbltdLFxuICAgIHJlbW90ZVBsdWdpbnM6IHN0cmluZ1tdXG4gICk6IEFwcGxpY2F0aW9uUGx1Z2luW10ge1xuICAgIGNvbnN0IGF2YWlsYWJsZVBsdWdpbnMgPSBhbGxQbHVnaW5zXG4gICAgICAuZmlsdGVyKHBsdWdpbiA9PiByZW1vdGVQbHVnaW5zLmluY2x1ZGVzKHBsdWdpbi5pZCkpXG4gICAgICAubWFwKHBsdWdpbiA9PlxuICAgICAgICBPYmplY3QuYXNzaWduKHBsdWdpbiwge1xuICAgICAgICAgIHN0YXR1czogcGx1Z2luLnRhZ3M/LmluY2x1ZGVzKCdsYXRlc3QnKVxuICAgICAgICAgICAgPyBBcHBsaWNhdGlvblBsdWdpblN0YXR1cy5MQVRFU1RcbiAgICAgICAgICAgIDogQXBwbGljYXRpb25QbHVnaW5TdGF0dXMuT1VUREFURURcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgY29uc3Qgb3JwaGFuZWRQbHVnaW5JZHMgPSByZW1vdGVQbHVnaW5zLmZpbHRlcihcbiAgICAgIHIgPT4gIWF2YWlsYWJsZVBsdWdpbnMuZmluZChwbHVnaW4gPT4gcGx1Z2luLmlkID09PSByKVxuICAgICk7XG4gICAgY29uc3Qgb3JwaGFuZWRQbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbltdID0gdGhpcy5nZXRPcnBoYW5lZFBsdWdpbnMoXG4gICAgICBvcnBoYW5lZFBsdWdpbklkcyxcbiAgICAgIGFsbFBsdWdpbnNcbiAgICApO1xuXG4gICAgY29uc3QgeyBhY3R1YWxseU9ycGhhbmVkUGx1Z2lucywgcmV2b2tlZFBsdWdpbnMgfSA9XG4gICAgICB0aGlzLnNwbGl0T3JwaGFuZWRQbHVnaW5zSW50b09ycGhhbmVkQW5kUmV2b2tlZFBsdWdpbnMoYWxsUGx1Z2lucywgb3JwaGFuZWRQbHVnaW5zKTtcblxuICAgIHJldHVybiBbLi4uYXZhaWxhYmxlUGx1Z2lucywgLi4ucmV2b2tlZFBsdWdpbnMsIC4uLmFjdHVhbGx5T3JwaGFuZWRQbHVnaW5zXS5tYXAocGx1Z2luID0+ICh7XG4gICAgICAuLi5wbHVnaW4sXG4gICAgICAvLyBhZGRpbmcgJ3YnIHByZWZpeCBzbyB2ZXJzaW9uIHN0cmluZyBpcyBub3QgdHJlYXRlZCBhcyBkYXRlIGluIGRhdGEgZ3JpZFxuICAgICAgZGlzcGxheVZlcnNpb246ICd2JyArIHBsdWdpbi52ZXJzaW9uXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0RGV0YWlscyhwbHVnaW5JZDogc3RyaW5nKTogQXBwbGljYXRpb25QbHVnaW4ge1xuICAgIGNvbnN0IGNvbnRleHRQYXRoID0gdGhpcy5nZXRTdHJpbmdNYXRjaGluZ1JlZ2V4KHBsdWdpbklkLCAvXlteQF0qKEB8XFwvKS8pO1xuICAgIGNvbnN0IHZlcnNpb24gPSB0aGlzLmdldFN0cmluZ01hdGNoaW5nUmVnZXgocGx1Z2luSWQsIC9ALipcXC8vKTtcbiAgICBjb25zdCBtb2R1bGUgPSB0aGlzLmdldFN0cmluZ01hdGNoaW5nUmVnZXgocGx1Z2luSWQsIC9cXC8uKiQvKTtcbiAgICBjb25zdCB1bmF2YWlsYWJsZSA9IGdldHRleHQoJ3VuYXZhaWxhYmxlYHBsdWdpbmAnKTtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHBsdWdpbklkLFxuICAgICAgaWRMYXRlc3Q6IGAke2NvbnRleHRQYXRofS8ke21vZHVsZX1gLFxuICAgICAgcGF0aDogJycsXG4gICAgICBtb2R1bGUsXG4gICAgICBuYW1lOiBtb2R1bGUsXG4gICAgICBzdGF0dXM6IEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzLk9SUEhBTkVELFxuICAgICAgY29udGV4dFBhdGg6IGNvbnRleHRQYXRoLFxuICAgICAgZGVzY3JpcHRpb246IHVuYXZhaWxhYmxlLFxuICAgICAgdmVyc2lvbjogdmVyc2lvblxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFN0cmluZ01hdGNoaW5nUmVnZXgoXG4gICAgc3RyOiBzdHJpbmcsXG4gICAgcmVnZXg6IHsgW1N5bWJvbC5tYXRjaF0oc3RyaW5nOiBzdHJpbmcpOiBSZWdFeHBNYXRjaEFycmF5IHwgbnVsbCB9XG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgbWF0Y2hlcyA9IHN0ci5tYXRjaChyZWdleCk7XG4gICAgY29uc3QgdmFsdWUgPSBtYXRjaGVzID8gbWF0Y2hlc1swXSA6ICcnO1xuXG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoLyhAfFxcLykvZywgJycpO1xuICB9XG59XG4iLCI8Yzh5LXRpdGxlPnt7IGFwcCB8IGh1bWFuaXplQXBwTmFtZSB8IGFzeW5jIH19PC9jOHktdGl0bGU+XG5cbjxjOHktYnJlYWRjcnVtYj5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBbaWNvbl09XCInYzh5LWF0b20nXCJcbiAgICBbbGFiZWxdPVwiJ0Vjb3N5c3RlbScgfCB0cmFuc2xhdGVcIlxuICA+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbVxuICAgIFtpY29uXT1cIidjOHktbW9kdWxlcydcIlxuICAgIFtsYWJlbF09XCInQXBwbGljYXRpb25zJyB8IHRyYW5zbGF0ZVwiXG4gICAgW3BhdGhdPVwiJ2Vjb3N5c3RlbS9hcHBsaWNhdGlvbi9hcHBsaWNhdGlvbnMnXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW0gW2xhYmVsXT1cImFwcCB8IGh1bWFuaXplQXBwTmFtZSB8IGFzeW5jXCI+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbSBbbGFiZWxdPVwiJ1BsdWdpbnMnIHwgdHJhbnNsYXRlXCI+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuPC9jOHktYnJlYWRjcnVtYj5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW1cbiAgW3BsYWNlbWVudF09XCIncmlnaHQnXCJcbiAgKm5nSWY9XCIhKGlzU3RhbmRhcmQkIHwgYXN5bmMpXCJcbj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICB0aXRsZT1cInt7ICdSZXNldCB0byBkZWZhdWx0IHBsdWdpbnMnIHwgdHJhbnNsYXRlIH19XCJcbiAgICBbbmdDbGFzc109XCJ7ICdidG4tcGVuZGluZyc6IGlzTG9hZGluZyB9XCJcbiAgICAoY2xpY2spPVwicmVzZXRUb0RlZmF1bHQoKVwiXG4gID5cbiAgICA8aSBjOHlJY29uPVwidW5kb1wiPjwvaT5cbiAgICB7eyAnUmVzZXQgdG8gZGVmYXVsdCcgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgIHRpdGxlPVwie3sgJ0luc3RhbGwgcGx1Z2lucycgfCB0cmFuc2xhdGUgfX1cIlxuICAgIChjbGljayk9XCJpbnN0YWxsUGx1Z2lucygpXCJcbiAgICBbbmdDbGFzc109XCJ7ICdidG4tcGVuZGluZyc6IGlzTG9hZGluZyB9XCJcbiAgPlxuICAgIDxpIGM4eUljb249XCJwbHVzLWNpcmNsZVwiPjwvaT5cbiAgICB7eyAnSW5zdGFsbCBwbHVnaW5zJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9ycGhhbmVkUGx1Z2lucyQgfCBhc3luYyBhcyBvcnBoYW5lZFBsdWdpbnNcIj5cbiAgPGM4eS1hY3Rpb24tYmFyLWl0ZW1cbiAgICAqbmdJZj1cIm9ycGhhbmVkUGx1Z2lucz8ubGVuZ3RoXCJcbiAgICBbcGxhY2VtZW50XT1cIidyaWdodCdcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgICAgdGl0bGU9XCJ7eyAnQ2xlYW4gdXAgb3JwaGFuZWQgcGx1Z2lucycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgKGNsaWNrKT1cImNsZWFudXBPcnBoYW5lZFBsdWdpbnMob3JwaGFuZWRQbHVnaW5zKVwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdidG4tcGVuZGluZyc6IGlzTG9hZGluZyB9XCJcbiAgICA+XG4gICAgICA8aSBjOHlJY29uPVwiZXJhc2VcIj48L2k+XG4gICAgICB7eyAnQ2xlYW4gdXAgb3JwaGFuZWQgcGx1Z2lucycgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuPC9uZy1jb250YWluZXI+XG5cbjxkaXYgY2xhc3M9XCJjb250ZW50LWZ1bGxwYWdlIGQtZmxleCBkLWNvbCBib3JkZXItdG9wXCI+XG4gIDxjOHktZGF0YS1ncmlkXG4gICAgY2xhc3M9XCJkLWNvbnRlbnRzXCJcbiAgICBbdGl0bGVdPVwidGl0bGVcIlxuICAgIFtsb2FkTW9yZUl0ZW1zTGFiZWxdPVwibG9hZE1vcmVJdGVtc0xhYmVsXCJcbiAgICBbbG9hZGluZ0l0ZW1zTGFiZWxdPVwibG9hZGluZ0l0ZW1zTGFiZWxcIlxuICAgIFtkaXNwbGF5T3B0aW9uc109XCJkaXNwbGF5T3B0aW9uc1wiXG4gICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgW3Jvd3NdPVwiaW5zdGFsbGVkUGx1Z2lucyQgfCBhc3luY1wiXG4gICAgW3BhZ2luYXRpb25dPVwicGFnaW5hdGlvblwiXG4gICAgW3NlbGVjdGFibGVdPVwidHJ1ZVwiXG4gICAgW2FjdGlvbkNvbnRyb2xzXT1cImFjdGlvbkNvbnRyb2xzXCJcbiAgICBbYnVsa0FjdGlvbkNvbnRyb2xzXT1cImJ1bGtBY3Rpb25Db250cm9sc1wiXG4gICAgW2hlYWRlckFjdGlvbkNvbnRyb2xzXT1cImhlYWRlckFjdGlvbkNvbnRyb2xzXCJcbiAgICAob25SZWxvYWQpPVwicmVmcmVzaCgpXCJcbiAgPlxuICAgIDxjOHktdWktZW1wdHktc3RhdGVcbiAgICAgIFtpY29uXT1cInN0YXRzPy5zaXplID4gMCA/ICdzZWFyY2gnIDogJ3BsdWdpbidcIlxuICAgICAgW3RpdGxlXT1cInN0YXRzPy5zaXplID4gMCA/IChub1Jlc3VsdHNNZXNzYWdlIHwgdHJhbnNsYXRlKSA6IChub0RhdGFNZXNzYWdlIHwgdHJhbnNsYXRlKVwiXG4gICAgICBbc3VidGl0bGVdPVwic3RhdHM/LnNpemUgPiAwID8gKG5vUmVzdWx0c1N1YnRpdGxlIHwgdHJhbnNsYXRlKSA6IChub0RhdGFTdWJ0aXRsZSB8IHRyYW5zbGF0ZSlcIlxuICAgICAgKmVtcHR5U3RhdGVDb250ZXh0PVwibGV0IHN0YXRzXCJcbiAgICAgIFtob3Jpem9udGFsXT1cInN0YXRzPy5zaXplID4gMFwiXG4gICAgPlxuICAgICAgPHAgKm5nSWY9XCJzdGF0cz8uc2l6ZSA9PT0gMFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCJcbiAgICAgICAgICB0aXRsZT1cInt7ICdJbnN0YWxsIHBsdWdpbnMnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAoY2xpY2spPVwiaW5zdGFsbFBsdWdpbnMoKVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAnYnRuLXBlbmRpbmcnOiBpc0xvYWRpbmcgfVwiXG4gICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgID5cbiAgICAgICAgICBJbnN0YWxsIHBsdWdpbnNcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L3A+XG4gICAgPC9jOHktdWktZW1wdHktc3RhdGU+XG4gIDwvYzh5LWRhdGEtZ3JpZD5cbjwvZGl2PlxuIl19
484
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tcGx1Z2lucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9lY29zeXN0ZW0vYXBwbGljYXRpb24tcGx1Z2lucy9hcHBsaWNhdGlvbi1wbHVnaW5zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9hcHBsaWNhdGlvbi1wbHVnaW5zL2FwcGxpY2F0aW9uLXBsdWdpbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsT0FBTyxFQUVMLFlBQVksRUFFWix1QkFBdUIsRUFHdkIsaUJBQWlCLEVBRWpCLGdCQUFnQixFQUNoQixPQUFPLEVBSVAsY0FBYyxFQUNkLG1CQUFtQixFQUNwQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsNEJBQTRCLEVBQzdCLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRixPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSww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QUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucywgSUFwcGxpY2F0aW9uIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQWN0aW9uQ29udHJvbCxcbiAgQWxlcnRTZXJ2aWNlLFxuICBBcHBsaWNhdGlvblBsdWdpbixcbiAgQXBwbGljYXRpb25QbHVnaW5TdGF0dXMsXG4gIEJ1bGtBY3Rpb25Db250cm9sLFxuICBDb2x1bW4sXG4gIERhdGFHcmlkQ29tcG9uZW50LFxuICBEaXNwbGF5T3B0aW9ucyxcbiAgR2FpbnNpZ2h0U2VydmljZSxcbiAgZ2V0dGV4dCxcbiAgSGVhZGVyQWN0aW9uQ29udHJvbCxcbiAgUGFnaW5hdGlvbixcbiAgUGx1Z2luc0NvbmZpZyxcbiAgUGx1Z2luc1NlcnZpY2UsXG4gIFBsdWdpbnNFeHBvcnRTY29wZXNcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBFY29zeXN0ZW1TZXJ2aWNlLFxuICBQUk9EVUNUX0VYUEVSSUVOQ0VfRUNPU1lTVEVNXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZWNvc3lzdGVtL3NoYXJlZCc7XG5pbXBvcnQgeyBwaWNrIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZpcnN0VmFsdWVGcm9tLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSW5zdGFsbFBsdWdpbkNvbXBvbmVudCB9IGZyb20gJy4vaW5zdGFsbC1wbHVnaW4uY29tcG9uZW50JztcbmltcG9ydCB7IExhYmVsQ2VsbFJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi9sYWJlbC1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPcnBoYW5lZFN0YXR1c0NlbGxSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vb3JwaGFuZWQtc3RhdHVzLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFVwZGF0ZVBsdWdpbk9mQXBwQ29tcG9uZW50IH0gZnJvbSAnLi91cGRhdGUtcGx1Z2luLW9mLWFwcC91cGRhdGUtcGx1Z2luLW9mLWFwcC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYXBwLXBsdWdpbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwbGljYXRpb24tcGx1Z2lucy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25QbHVnaW5zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBQUk9EVUNUX0VYUEVSSUVOQ0UgPSBQUk9EVUNUX0VYUEVSSUVOQ0VfRUNPU1lTVEVNO1xuICBDVVJSRU5UX0xPQ0FUSU9OID0gbG9jYXRpb24uaHJlZjtcblxuICBASW5wdXQoKSBhcHBJZDogc3RyaW5nIHwgbnVtYmVyO1xuICBAVmlld0NoaWxkKERhdGFHcmlkQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgZGF0YUdyaWQ6IERhdGFHcmlkQ29tcG9uZW50O1xuXG4gIHJlbW90ZVBsdWdpbnMkOiBCZWhhdmlvclN1YmplY3Q8QXBwbGljYXRpb25SZW1vdGVQbHVnaW5zPiA9IG5ldyBCZWhhdmlvclN1YmplY3Qoe30pO1xuICBhbGxBdmFpbGFibGVQbHVnaW5zJDogQmVoYXZpb3JTdWJqZWN0PEFwcGxpY2F0aW9uUGx1Z2luW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChbXSk7XG4gIHNlbGZQbHVnaW5zJDogQmVoYXZpb3JTdWJqZWN0PEFwcGxpY2F0aW9uUGx1Z2luW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChbXSk7XG5cbiAgaW5zdGFsbGVkUGx1Z2lucyQ6IE9ic2VydmFibGU8QXBwbGljYXRpb25QbHVnaW5bXT4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLnJlbW90ZVBsdWdpbnMkLnBpcGUobWFwKHJlbW90ZXMgPT4gUGx1Z2luc1NlcnZpY2UuY29udmVydEluc3RhbGxlZFJlbW90ZXNUb0lkcyhyZW1vdGVzKSkpLFxuICAgIHRoaXMuYWxsQXZhaWxhYmxlUGx1Z2lucyRcbiAgXSkucGlwZShcbiAgICBtYXAoKFtyZW1vdGVQbHVnaW5zLCBhbGxQbHVnaW5zXSkgPT4gdGhpcy5nZXRJbnN0YWxsZWRQbHVnaW5zKGFsbFBsdWdpbnMsIHJlbW90ZVBsdWdpbnMpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuICBvcnBoYW5lZFBsdWdpbnMkID0gdGhpcy5pbnN0YWxsZWRQbHVnaW5zJC5waXBlKFxuICAgIG1hcChwbHVnaW5zID0+IHBsdWdpbnMuZmlsdGVyKHAgPT4gcC5zdGF0dXMgPT09IEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzLk9SUEhBTkVEKSlcbiAgKTtcbiAgaXNTdGFuZGFyZCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmluc3RhbGxlZFBsdWdpbnMkLCB0aGlzLnNlbGZQbHVnaW5zJF0pLnBpcGUoXG4gICAgbWFwKChbaW5zdGFsbGVkUGx1Z2lucywgc2VsZlBsdWdpbnNdKSA9PiB7XG4gICAgICBjb25zdCBtYW5pZmVzdFJlbW90ZXMgPSB0aGlzLmFwcD8ubWFuaWZlc3Q/LnJlbW90ZXMgfHwge307XG4gICAgICAvLyBlbnN1cmUgdGhhdCBldmVyeSBpbnN0YWxsZWQgcGx1Z2luIGlzIGEgc2VsZiBwbHVnaW4gb3IgYSBwbHVnaW4gZnJvbSB0aGUgbWFuaWZlc3RcbiAgICAgIGNvbnN0IGFsbEluc3RhbGxlZFBsdWdpbnNBcmVTZWxmID0gaW5zdGFsbGVkUGx1Z2lucy5ldmVyeShcbiAgICAgICAgcCA9PlxuICAgICAgICAgIHNlbGZQbHVnaW5zLnNvbWUoc2VsZlBsdWdpbiA9PiBzZWxmUGx1Z2luLmlkID09PSBwLmlkKSB8fFxuICAgICAgICAgIChBcnJheS5pc0FycmF5KG1hbmlmZXN0UmVtb3Rlc1twLmNvbnRleHRQYXRoXSkgJiZcbiAgICAgICAgICAgIG1hbmlmZXN0UmVtb3Rlc1twLmNvbnRleHRQYXRoXS5pbmNsdWRlcyhwLm1vZHVsZSkpXG4gICAgICApO1xuXG4gICAgICAvLyBlbnN1cmUgdGhhdCBldmVyeSBzZWxmIHBsdWdpbiBpcyBpbnN0YWxsZWRcbiAgICAgIGNvbnN0IGFsbFNlbGZQbHVnaW5zQXJlSW5zdGFsbGVkID0gc2VsZlBsdWdpbnMuZXZlcnkoc2VsZlBsdWdpbiA9PlxuICAgICAgICBpbnN0YWxsZWRQbHVnaW5zLnNvbWUocCA9PiBwLmlkID09PSBzZWxmUGx1Z2luLmlkKVxuICAgICAgKTtcbiAgICAgIGNvbnN0IGNvbmZpZ1JlbW90ZXMgPSB0aGlzLmFwcD8uY29uZmlnPy5yZW1vdGVzIHx8IHt9O1xuXG4gICAgICAvLyBlbnN1cmUgdGhhdCBldmVyeSByZW1vdGUgZnJvbSB0aGUgbWFuaWZlc3QgaXMgaW4gdGhlIGNvbmZpZ1xuICAgICAgLy8gaWYgbm8gY29uZmlnIGV4aXN0cyB3ZSBhcmUgYWxzbyBhbGwgZ29vZFxuICAgICAgY29uc3QgZXZlcnlSZW1vdGVGcm9tTWFuaWZlc3RJc0luQ29uZmlnID1cbiAgICAgICAgIXRoaXMuYXBwPy5jb25maWc/LnJlbW90ZXMgfHxcbiAgICAgICAgT2JqZWN0LmtleXMobWFuaWZlc3RSZW1vdGVzKS5ldmVyeShcbiAgICAgICAgICBjb250ZXh0UGF0aCA9PlxuICAgICAgICAgICAgQXJyYXkuaXNBcnJheShjb25maWdSZW1vdGVzW2NvbnRleHRQYXRoXSkgJiZcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkobWFuaWZlc3RSZW1vdGVzW2NvbnRleHRQYXRoXSkgJiZcbiAgICAgICAgICAgIG1hbmlmZXN0UmVtb3Rlc1tjb250ZXh0UGF0aF0uZXZlcnkobW9kdWxlID0+XG4gICAgICAgICAgICAgIGNvbmZpZ1JlbW90ZXNbY29udGV4dFBhdGhdLmluY2x1ZGVzKG1vZHVsZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgYWxsSW5zdGFsbGVkUGx1Z2luc0FyZVNlbGYgJiZcbiAgICAgICAgYWxsU2VsZlBsdWdpbnNBcmVJbnN0YWxsZWQgJiZcbiAgICAgICAgZXZlcnlSZW1vdGVGcm9tTWFuaWZlc3RJc0luQ29uZmlnXG4gICAgICApO1xuICAgIH0pXG4gICk7XG4gIGFwcDogSUFwcGxpY2F0aW9uO1xuICBpc0xvYWRpbmc6IGJvb2xlYW47XG4gIHRpdGxlOiBzdHJpbmcgPSBnZXR0ZXh0KCdJbnN0YWxsZWQgcGx1Z2lucycpO1xuICBsb2FkTW9yZUl0ZW1zTGFiZWw6IHN0cmluZyA9IGdldHRleHQoJ0xvYWQgbW9yZSBwYWNrYWdlcycpO1xuICBsb2FkaW5nSXRlbXNMYWJlbDogc3RyaW5nID0gZ2V0dGV4dCgnTG9hZGluZyBwYWNrYWdlc+KApicpO1xuICBhY3Rpb25Db250cm9sczogQWN0aW9uQ29udHJvbFtdID0gdGhpcy5nZXRBY3Rpb25Db250cm9scygpO1xuICBidWxrQWN0aW9uQ29udHJvbHM6IEJ1bGtBY3Rpb25Db250cm9sW10gPSB0aGlzLmdldEJ1bGtBY3Rpb25Db250cm9scygpO1xuICBoZWFkZXJBY3Rpb25Db250cm9sczogSGVhZGVyQWN0aW9uQ29udHJvbFtdID0gW107XG4gIG5vUmVzdWx0c01lc3NhZ2UgPSBnZXR0ZXh0KCdObyBwbHVnaW5zIHRvIGRpc3BsYXkuJyk7XG4gIG5vRGF0YU1lc3NhZ2UgPSBnZXR0ZXh0KCdObyBwbHVnaW5zIGluc3RhbGxlZC4nKTtcbiAgbm9SZXN1bHRzU3VidGl0bGUgPSBnZXR0ZXh0KCdSZWZpbmUgeW91ciBzZWFyY2ggdGVybXMgb3IgY2hlY2sgeW91ciBzcGVsbGluZy4nKTtcbiAgbm9EYXRhU3VidGl0bGUgPSBnZXR0ZXh0KFwiVGhpcyBhcHBsaWNhdGlvbiBkb2Vzbid0IGhhdmUgYW55IHBsdWdpbi4gQ2xpY2sgYmVsb3cgdG8gaW5zdGFsbC5cIik7XG4gIHBhZ2luYXRpb246IFBhZ2luYXRpb24gPSB7XG4gICAgcGFnZVNpemU6IDEwLFxuICAgIGN1cnJlbnRQYWdlOiAxXG4gIH07XG4gIGRpc3BsYXlPcHRpb25zOiBEaXNwbGF5T3B0aW9ucyA9IHtcbiAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgc3RyaXBlZDogdHJ1ZSxcbiAgICBmaWx0ZXI6IHRydWUsXG4gICAgZ3JpZEhlYWRlcjogdHJ1ZSxcbiAgICBob3ZlcjogdHJ1ZVxuICB9O1xuICBjb2x1bW5zOiBDb2x1bW5bXSA9IFtcbiAgICB7XG4gICAgICBuYW1lOiAnbmFtZScsXG4gICAgICBoZWFkZXI6IGdldHRleHQoJ1BsdWdpbiBuYW1lJyksXG4gICAgICBwYXRoOiAnbmFtZScsXG4gICAgICBmaWx0ZXJhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnVmVyc2lvbicsXG4gICAgICBoZWFkZXI6IGdldHRleHQoJ1ZlcnNpb24nKSxcbiAgICAgIHBhdGg6ICd2ZXJzaW9uJyxcbiAgICAgIGZpbHRlcmFibGU6IGZhbHNlXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnVGFnJyxcbiAgICAgIGhlYWRlcjogZ2V0dGV4dCgnVGFnYG5vdW5gJyksXG4gICAgICBwYXRoOiAnaW5zdGFsbGVkVmlhVGFnJyxcbiAgICAgIGZpbHRlcmFibGU6IGZhbHNlLFxuICAgICAgY2VsbFJlbmRlcmVyQ29tcG9uZW50OiBMYWJlbENlbGxSZW5kZXJlckNvbXBvbmVudFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2Rlc2NyaXB0aW9uJyxcbiAgICAgIGhlYWRlcjogZ2V0dGV4dCgnRGVzY3JpcHRpb24nKSxcbiAgICAgIHBhdGg6ICdkZXNjcmlwdGlvbicsXG4gICAgICBmaWx0ZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNlbGxDU1NDbGFzc05hbWU6ICdzbWFsbCdcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdjb250ZXh0UGF0aCcsXG4gICAgICBoZWFkZXI6IGdldHRleHQoJ1NvdXJjZScpLFxuICAgICAgcGF0aDogJ2NvbnRleHRQYXRoJyxcbiAgICAgIGZpbHRlcmFibGU6IGZhbHNlLFxuICAgICAgY2VsbFJlbmRlcmVyQ29tcG9uZW50OiBMYWJlbENlbGxSZW5kZXJlckNvbXBvbmVudFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ3Njb3BlJyxcbiAgICAgIGhlYWRlcjogZ2V0dGV4dCgnU2NvcGUnKSxcbiAgICAgIHBhdGg6ICdzY29wZScsXG4gICAgICBmaWx0ZXJhYmxlOiBmYWxzZSxcbiAgICAgIHZpc2libGU6IGZhbHNlLFxuICAgICAgY2VsbFJlbmRlcmVyQ29tcG9uZW50OiBMYWJlbENlbGxSZW5kZXJlckNvbXBvbmVudFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ3N0YXR1cycsXG4gICAgICBoZWFkZXI6IGdldHRleHQoJ1N0YXR1cycpLFxuICAgICAgcGF0aDogJ3N0YXR1cycsXG4gICAgICBmaWx0ZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNlbGxSZW5kZXJlckNvbXBvbmVudDogT3JwaGFuZWRTdGF0dXNDZWxsUmVuZGVyZXJDb21wb25lbnRcbiAgICB9XG4gIF07XG4gIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgZWNvc3lzdGVtU2VydmljZTogRWNvc3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIGJzTW9kYWxTZXJ2aWNlOiBCc01vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIHBsdWdpbnNTZXJ2aWNlOiBQbHVnaW5zU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ2FpbnNpZ2h0U2VydmljZTogR2FpbnNpZ2h0U2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5hZGRJbnN0YWxsQnV0dG9uVG9IZWFkZXJBY3Rpb25Db250cm9scygpO1xuICAgIHRoaXMubG9hZERhdGEoKTtcbiAgfVxuXG4gIGFzeW5jIGxvYWREYXRhKCkge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICBhd2FpdCB0aGlzLmdldEFwcGxpY2F0aW9uTU8oKTtcbiAgICBhd2FpdCB0aGlzLmdldEFwcGxpY2F0aW9uTUZSZW1vdGVzKHRoaXMuYXBwKTtcbiAgICBhd2FpdCB0aGlzLmdldEFsbEFwcGxpY2F0aW9uc01GRXhwb3J0cyh0aGlzLmFwcCk7XG4gICAgYXdhaXQgdGhpcy5nZXRBbGxTZWxmTUZFeHBvcnRzKHRoaXMuYXBwKTtcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgcmVzZXRUb0RlZmF1bHQoKSB7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIGF3YWl0IHRoaXMucGx1Z2luc1NlcnZpY2UucmVzZXRSZW1vdGVzKHRoaXMuYXBwKTtcbiAgICBhd2FpdCB0aGlzLmxvYWREYXRhKCk7XG4gICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2VzcyhnZXR0ZXh0KCdUaGUgYXBwbGljYXRpb24gd2FzIHJlc2V0IHRvIGl0cyBkZWZhdWx0IHBsdWdpbnMuJykpO1xuICB9XG5cbiAgYXN5bmMgaW5zdGFsbFBsdWdpbnMoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBsdWdpbnNUb0FkZDogQXBwbGljYXRpb25QbHVnaW5bXSA9XG4gICAgICAgIGF3YWl0IHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2hvdzxJbnN0YWxsUGx1Z2luQ29tcG9uZW50PihJbnN0YWxsUGx1Z2luQ29tcG9uZW50LCB7XG4gICAgICAgICAgY2xhc3M6ICdtb2RhbC1zbScsXG4gICAgICAgICAgYXJpYURlc2NyaWJlZGJ5OiAnbW9kYWwtYm9keScsXG4gICAgICAgICAgYXJpYUxhYmVsbGVkQnk6ICdtb2RhbC10aXRsZScsXG4gICAgICAgICAgaW5pdGlhbFN0YXRlOiB0aGlzLmdldEluc3RhbGxNb2RhbEluaXRTdGF0ZSgpLFxuICAgICAgICAgIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWVcbiAgICAgICAgfSkuY29udGVudC5yZXN1bHQ7XG5cbiAgICAgIGNvbnN0IGxpY2Vuc2VzVmVyaWZpZWRCeVVzZXIgPSBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UudmVyaWZ5TGljZW5zZXMocGx1Z2luc1RvQWRkKTtcbiAgICAgIGlmICghbGljZW5zZXNWZXJpZmllZEJ5VXNlcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCB2ZXJpZnlWZXJzaW9uQ29tcGF0aWJpbGl0eSA9XG4gICAgICAgIGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS52ZXJpZnlQbHVnaW5WZXJzaW9uc0NvbXBhdGliaWxpdHkocGx1Z2luc1RvQWRkLCB0aGlzLmFwcCk7XG5cbiAgICAgIGlmICghdmVyaWZ5VmVyc2lvbkNvbXBhdGliaWxpdHkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICBhd2FpdCB0aGlzLmhhbmRsZVJlbW90ZXNJbnN0YWxsYXRpb24ocGx1Z2luc1RvQWRkKTtcblxuICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2VzcyhnZXR0ZXh0KCdQbHVnaW5zIGluc3RhbGxlZC4nKSk7XG4gICAgICBwbHVnaW5zVG9BZGQuZm9yRWFjaChwbHVnaW4gPT4ge1xuICAgICAgICBjb25zdCBwbHVnaW5DdXN0b21FdmVudEluZm8gPSBwaWNrKHBsdWdpbiwgW1xuICAgICAgICAgICduYW1lJyxcbiAgICAgICAgICAnY29udGV4dFBhdGgnLFxuICAgICAgICAgICdtb2R1bGUnLFxuICAgICAgICAgICd2ZXJzaW9uJyxcbiAgICAgICAgICAndHlwZScsXG4gICAgICAgICAgJ2lkJ1xuICAgICAgICBdIHNhdGlzZmllcyAoa2V5b2YgQXBwbGljYXRpb25QbHVnaW4pW10pO1xuXG4gICAgICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoXG4gICAgICAgICAgUFJPRFVDVF9FWFBFUklFTkNFX0VDT1NZU1RFTS5BUFBMSUNBVElPTlMuRVZFTlRTLklOU1RBTExFRF9QTFVHSU5TLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogUFJPRFVDVF9FWFBFUklFTkNFX0VDT1NZU1RFTS5BUFBMSUNBVElPTlMuQ09NUE9ORU5UUy5BUFBMSUNBVElPTl9QTFVHSU5TLFxuICAgICAgICAgICAgcmVzdWx0OiBQUk9EVUNUX0VYUEVSSUVOQ0VfRUNPU1lTVEVNLkFQUExJQ0FUSU9OUy5SRVNVTFRTLlBMVUdJTl9JTlNUQUxMRUQsXG4gICAgICAgICAgICB1cmw6IHRoaXMuQ1VSUkVOVF9MT0NBVElPTixcbiAgICAgICAgICAgIC4uLnBsdWdpbkN1c3RvbUV2ZW50SW5mbyxcbiAgICAgICAgICAgIHRhcmdldEFwcGxpY2F0aW9uTmFtZTogdGhpcy5hcHAubmFtZSxcbiAgICAgICAgICAgIHRhcmdldEFwcGxpY2F0aW9uQ29udGV4dFBhdGg6IHRoaXMuYXBwLmNvbnRleHRQYXRoXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIGlmIChleCkge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGV4KTtcbiAgICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChcbiAgICAgICAgICBQUk9EVUNUX0VYUEVSSUVOQ0VfRUNPU1lTVEVNLkFQUExJQ0FUSU9OUy5FVkVOVFMuSU5TVEFMTEVEX1BMVUdJTlMsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0VfRUNPU1lTVEVNLkFQUExJQ0FUSU9OUy5DT01QT05FTlRTLkFQUExJQ0FUSU9OX1BMVUdJTlMsXG4gICAgICAgICAgICByZXN1bHQ6IFBST0RVQ1RfRVhQRVJJRU5DRV9FQ09TWVNURU0uQVBQTElDQVRJT05TLlJFU1VMVFMuU0VSVkVSX0ZBSUxVUkUsXG4gICAgICAgICAgICB1cmw6IHRoaXMuQ1VSUkVOVF9MT0NBVElPTixcbiAgICAgICAgICAgIGVycm9yOiBleFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBhc3luYyByZW1vdmVQbHVnaW5zKHBsdWdpbnM6IHN0cmluZ1tdKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICAgIGNvbnN0IGluc3RhbGxlZFBsdWdpbnMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmluc3RhbGxlZFBsdWdpbnMkKTtcbiAgICAgIGNvbnN0IHVwZGF0ZWRSZW1vdGVzID0gYXdhaXQgdGhpcy5wbHVnaW5zU2VydmljZS5yZW1vdmVSZW1vdGVzKFxuICAgICAgICB0aGlzLmFwcCxcbiAgICAgICAgcGx1Z2lucy5tYXAoaWQgPT4gaW5zdGFsbGVkUGx1Z2lucy5maW5kKHAgPT4gcC5pZCA9PT0gaWQpKVxuICAgICAgKTtcbiAgICAgIHRoaXMuZW1pdFJlbW90ZXModXBkYXRlZFJlbW90ZXMpO1xuXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5kYXRhR3JpZC5jYW5jZWwoKTtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoZ2V0dGV4dCgnUGx1Z2lucyByZW1vdmVkLicpKTtcbiAgICAgIHBsdWdpbnMuZm9yRWFjaChwbHVnaW4gPT4ge1xuICAgICAgICB0aGlzLmdhaW5zaWdodFNlcnZpY2UudHJpZ2dlckV2ZW50KFxuICAgICAgICAgIFBST0RVQ1RfRVhQRVJJRU5DRV9FQ09TWVNURU0uQVBQTElDQVRJT05TLkVWRU5UUy5JTlNUQUxMRURfUExVR0lOUyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRV9FQ09TWVNURU0uQVBQTElDQVRJT05TLkNPTVBPTkVOVFMuQVBQTElDQVRJT05fUExVR0lOUyxcbiAgICAgICAgICAgIHJlc3VsdDogUFJPRFVDVF9FWFBFUklFTkNFX0VDT1NZU1RFTS5BUFBMSUNBVElPTlMuUkVTVUxUUy5QTFVHSU5fUkVNT1ZFRCxcbiAgICAgICAgICAgIHVybDogdGhpcy5DVVJSRU5UX0xPQ0FUSU9OLFxuICAgICAgICAgICAgaWQ6IHBsdWdpbixcbiAgICAgICAgICAgIHRhcmdldEFwcGxpY2F0aW9uTmFtZTogdGhpcy5hcHAubmFtZSxcbiAgICAgICAgICAgIHRhcmdldEFwcGxpY2F0aW9uQ29udGV4dFBhdGg6IHRoaXMuYXBwLmNvbnRleHRQYXRoXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIGlmIChleCkge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGV4KTtcbiAgICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChcbiAgICAgICAgICBQUk9EVUNUX0VYUEVSSUVOQ0VfRUNPU1lTVEVNLkFQUExJQ0FUSU9OUy5FVkVOVFMuSU5TVEFMTEVEX1BMVUdJTlMsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0VfRUNPU1lTVEVNLkFQUExJQ0FUSU9OUy5DT01QT05FTlRTLkFQUExJQ0FUSU9OX1BMVUdJTlMsXG4gICAgICAgICAgICByZXN1bHQ6IFBST0RVQ1RfRVhQRVJJRU5DRV9FQ09TWVNURU0uQVBQTElDQVRJT05TLlJFU1VMVFMuU0VSVkVSX0ZBSUxVUkUsXG4gICAgICAgICAgICB1cmw6IHRoaXMuQ1VSUkVOVF9MT0NBVElPTixcbiAgICAgICAgICAgIGVycm9yOiBleFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBjbGVhbnVwT3JwaGFuZWRQbHVnaW5zKHBsdWdpbnM6IEFwcGxpY2F0aW9uUGx1Z2luW10pIHtcbiAgICBjb25zdCBwbHVnaW5JZHMgPSBwbHVnaW5zLm1hcChwID0+IHAuaWQpO1xuICAgIGF3YWl0IHRoaXMucmVtb3ZlUGx1Z2lucyhwbHVnaW5JZHMpO1xuICB9XG5cbiAgZ2V0QWN0aW9uQ29udHJvbHMoKTogQWN0aW9uQ29udHJvbFtdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnY3VzdG9tVXBkYXRlJyxcbiAgICAgICAgdGV4dDogZ2V0dGV4dCgnVXBkYXRlJyksXG4gICAgICAgIGljb246ICdjYXJldC1zcXVhcmUtby11cCcsXG4gICAgICAgIHNob3dJZjogcGx1Z2luID0+IHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgcGx1Z2luLnN0YXR1cyA9PT0gQXBwbGljYXRpb25QbHVnaW5TdGF0dXMuT1VUREFURUQgfHxcbiAgICAgICAgICAgIHBsdWdpbi5zdGF0dXMgPT09IEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzLlJFVk9LRURcbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICBjYWxsYmFjazogcGx1Z2luID0+IHRoaXMudXBkYXRlUGx1Z2luKHRoaXMuYXBwLCBwbHVnaW4gYXMgQXBwbGljYXRpb25QbHVnaW4pXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnY3VzdG9tRG93bmdyYWRlJyxcbiAgICAgICAgdGV4dDogZ2V0dGV4dCgnRG93bmdyYWRlJyksXG4gICAgICAgIGljb246ICdjYXJldC1zcXVhcmUtby1kb3duJyxcbiAgICAgICAgc2hvd0lmOiAocGx1Z2luOiBBcHBsaWNhdGlvblBsdWdpbikgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHBsdWdpbi5zY29wZSA9PT0gUGx1Z2luc0V4cG9ydFNjb3Blcy5TRUxGIHx8XG4gICAgICAgICAgICBwbHVnaW4uc2NvcGUgPT09IFBsdWdpbnNFeHBvcnRTY29wZXMuU0VMRl9PUFRJT05BTFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcGx1Z2luLnN0YXR1cyA9PT0gQXBwbGljYXRpb25QbHVnaW5TdGF0dXMuTEFURVNUO1xuICAgICAgICB9LFxuICAgICAgICBjYWxsYmFjazogcGx1Z2luID0+IHRoaXMudXBkYXRlUGx1Z2luKHRoaXMuYXBwLCBwbHVnaW4gYXMgQXBwbGljYXRpb25QbHVnaW4sIHRydWUpXG4gICAgICB9XG4gICAgXTtcbiAgfVxuXG4gIGdldEJ1bGtBY3Rpb25Db250cm9scygpOiBCdWxrQWN0aW9uQ29udHJvbFtdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnY3VzdG9tRGVsZXRlJyxcbiAgICAgICAgdGV4dDogZ2V0dGV4dCgnUmVtb3ZlJyksXG4gICAgICAgIGljb246ICd0cmFzaCcsXG4gICAgICAgIGNhbGxiYWNrOiBwbHVnaW5zID0+IHRoaXMucmVtb3ZlUGx1Z2lucyhwbHVnaW5zKVxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICBhc3luYyB1cGRhdGVQbHVnaW4oYXBwOiBJQXBwbGljYXRpb24sIHBsdWdpbjogQXBwbGljYXRpb25QbHVnaW4sIGRvd25ncmFkZSA9IGZhbHNlKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IChcbiAgICAgICAgdGhpcy5ic01vZGFsU2VydmljZS5zaG93KFVwZGF0ZVBsdWdpbk9mQXBwQ29tcG9uZW50LCB7XG4gICAgICAgICAgY2xhc3M6ICdtb2RhbC1zbScsXG4gICAgICAgICAgYXJpYURlc2NyaWJlZGJ5OiAnbW9kYWwtYm9keScsXG4gICAgICAgICAgYXJpYUxhYmVsbGVkQnk6ICdtb2RhbC10aXRsZScsXG4gICAgICAgICAgaW5pdGlhbFN0YXRlOiB7XG4gICAgICAgICAgICBhcHAsXG4gICAgICAgICAgICBwbHVnaW4sXG4gICAgICAgICAgICBkb3duZ3JhZGVcbiAgICAgICAgICB9LFxuICAgICAgICAgIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWVcbiAgICAgICAgfSkuY29udGVudCBhcyBVcGRhdGVQbHVnaW5PZkFwcENvbXBvbmVudFxuICAgICAgKS5yZXN1bHQ7XG4gICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICB9IGNhdGNoIChlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIHJlZnJlc2goKSB7XG4gICAgdGhpcy5sb2FkRGF0YSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRJbnN0YWxsQnV0dG9uVG9IZWFkZXJBY3Rpb25Db250cm9scygpIHtcbiAgICBpZiAodGhpcy5hcHBJZCkge1xuICAgICAgdGhpcy5oZWFkZXJBY3Rpb25Db250cm9scyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6IGdldHRleHQoJ0luc3RhbGwgcGx1Z2lucycpLFxuICAgICAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmluc3RhbGxQbHVnaW5zKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBpY29uOiAncGx1cy1jaXJjbGUnLFxuICAgICAgICAgIHR5cGU6ICdjdXN0b20nXG4gICAgICAgIH1cbiAgICAgIF07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVSZW1vdGVzSW5zdGFsbGF0aW9uKHBsdWdpbnM6IEFwcGxpY2F0aW9uUGx1Z2luW10pIHtcbiAgICBjb25zdCB1cGRhdGVkUmVtb3RlcyA9IGF3YWl0IHRoaXMucGx1Z2luc1NlcnZpY2UuYWRkUmVtb3Rlcyh0aGlzLmFwcCwgcGx1Z2lucyk7XG4gICAgcmV0dXJuIHRoaXMuZW1pdFJlbW90ZXModXBkYXRlZFJlbW90ZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0UmVtb3RlcyhwbHVnaW5zQ29uZmlnOiBQbHVnaW5zQ29uZmlnKSB7XG4gICAgY29uc3QgeyByZW1vdGVzLCBleGNsdWRlZFJlbW90ZXMgfSA9IHBsdWdpbnNDb25maWc7XG5cbiAgICAvLyBuZWVkZWQgZm9yIGZpcnN0IHRpbWUgYWRkaW5nL3JlbW92aW5nIGEgcGx1Z2luXG4gICAgaWYgKCF0aGlzLmFwcC5jb25maWcpIHtcbiAgICAgIHRoaXMuYXBwLmNvbmZpZyA9IHt9O1xuICAgIH1cblxuICAgIHRoaXMuYXBwLmNvbmZpZy5yZW1vdGVzID0gcmVtb3RlcztcbiAgICB0aGlzLmFwcC5jb25maWcuZXhjbHVkZWRSZW1vdGVzID0gZXhjbHVkZWRSZW1vdGVzO1xuICAgIGNvbnN0IGFjdHVhbFJlbW90ZXMgPSB0aGlzLnBsdWdpbnNTZXJ2aWNlLmdldE1GUmVtb3Rlcyh0aGlzLmFwcCk7XG4gICAgdGhpcy5yZW1vdGVQbHVnaW5zJC5uZXh0KGFjdHVhbFJlbW90ZXMpO1xuICAgIHJldHVybiB7IC4uLnRoaXMucmVtb3RlUGx1Z2lucyQudmFsdWUgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QXBwbGljYXRpb25NTygpOiBQcm9taXNlPElBcHBsaWNhdGlvbj4ge1xuICAgIGxldCBpZCA9IHRoaXMuYXBwSWQ7XG4gICAgaWYgKCFpZCkge1xuICAgICAgY29uc3QgeyBpZDogcm91dGVJZCB9ID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJlbnQuZGF0YS5jb250ZXh0RGF0YTtcbiAgICAgIGlkID0gcm91dGVJZDtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5hcHAgPSBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuZ2V0QXBwbGljYXRpb24oaWQpO1xuICAgIH0gY2F0Y2ggKGVyKSB7XG4gICAgICBpZiAoZXIpIHtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShlcik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFwcDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QXBwbGljYXRpb25NRkV4cG9ydHMoYXBwOiBJQXBwbGljYXRpb24pIHtcbiAgICBjb25zdCBleHBvcnRzID0gdGhpcy5wbHVnaW5zU2VydmljZS5nZXRNRkV4cG9ydHMoYXBwLCBbXSwgdHJ1ZSk7XG4gICAgcmV0dXJuIGV4cG9ydHM7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldEFwcGxpY2F0aW9uTUZSZW1vdGVzKGFwcDogSUFwcGxpY2F0aW9uKSB7XG4gICAgY29uc3QgYXBwQ29uZmlnUmVtb3RlcyA9IHRoaXMucGx1Z2luc1NlcnZpY2UuZ2V0TUZSZW1vdGVzKGFwcCk7XG4gICAgdGhpcy5yZW1vdGVQbHVnaW5zJC5uZXh0KGFwcENvbmZpZ1JlbW90ZXMgfHwge30pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRBbGxBcHBsaWNhdGlvbnNNRkV4cG9ydHMoYXBwOiBJQXBwbGljYXRpb24pIHtcbiAgICBjb25zdCBleHBvcnRlZEJ5Q3VycmVudEFwcCA9IGF3YWl0IHRoaXMuZ2V0QXBwbGljYXRpb25NRkV4cG9ydHMoYXBwKTtcbiAgICBjb25zdCBhbGxBcHBzTUZFeHBvcnRzID0gYXdhaXQgdGhpcy5wbHVnaW5zU2VydmljZS5nZXRBbGxNRkV4cG9ydHModHJ1ZSk7XG4gICAgdGhpcy5hbGxBdmFpbGFibGVQbHVnaW5zJC5uZXh0KFsuLi5hbGxBcHBzTUZFeHBvcnRzLCAuLi5leHBvcnRlZEJ5Q3VycmVudEFwcF0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRBbGxTZWxmTUZFeHBvcnRzKGFwcDogSUFwcGxpY2F0aW9uKSB7XG4gICAgY29uc3QgZXhwb3J0ZWRCeUN1cnJlbnRBcHAgPSBhd2FpdCB0aGlzLmdldEFwcGxpY2F0aW9uTUZFeHBvcnRzKGFwcCk7XG4gICAgdGhpcy5zZWxmUGx1Z2lucyQubmV4dChleHBvcnRlZEJ5Q3VycmVudEFwcC5maWx0ZXIoKHsgc2NvcGUgfSkgPT4gc2NvcGUgPT09ICdzZWxmJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnN0YWxsTW9kYWxJbml0U3RhdGUoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgcGx1Z2lucyQ6IGNvbWJpbmVMYXRlc3QoW3RoaXMuYWxsQXZhaWxhYmxlUGx1Z2lucyQsIHRoaXMuaW5zdGFsbGVkUGx1Z2lucyRdKS5waXBlKFxuICAgICAgICBtYXAoKFthbGxQbHVnaW5zLCBpbnN0YWxsZWRQbHVnaW5zXSkgPT4ge1xuICAgICAgICAgIC8vIHRvIG5vdCBtdXRhdGUgdGhlIG9yaWdpbmFsIGFycmF5IGFuZCBvYmplY3RzIGNvbnRhaW5lZCBpbiBpdFxuICAgICAgICAgIGNvbnN0IGFsbFBsdWdpbnNBc05ld09iamVjdHMgPSBhbGxQbHVnaW5zLm1hcChwID0+ICh7IC4uLnAgfSkpO1xuXG4gICAgICAgICAgZm9yIChjb25zdCBwbHVnaW4gb2YgaW5zdGFsbGVkUGx1Z2lucykge1xuICAgICAgICAgICAgbGV0IGluc3RhbGxlZFBsdWdpbiA9IGFsbFBsdWdpbnNBc05ld09iamVjdHMuZmluZChwID0+IHAuaWQgPT09IHBsdWdpbi5pZCk7XG5cbiAgICAgICAgICAgIGlmICghaW5zdGFsbGVkUGx1Z2luICYmIHBsdWdpbi5pbnN0YWxsZWRWaWFUYWcpIHtcbiAgICAgICAgICAgICAgaW5zdGFsbGVkUGx1Z2luID0gYWxsUGx1Z2luc0FzTmV3T2JqZWN0cy5maW5kKFxuICAgICAgICAgICAgICAgIHAgPT5cbiAgICAgICAgICAgICAgICAgIHAuY29udGV4dFBhdGggPT09IHBsdWdpbi5jb250ZXh0UGF0aCAmJlxuICAgICAgICAgICAgICAgICAgcC5tb2R1bGUgPT09IHBsdWdpbi5tb2R1bGUgJiZcbiAgICAgICAgICAgICAgICAgIHAudGFncz8uaW5jbHVkZXMocGx1Z2luLmluc3RhbGxlZFZpYVRhZyBhcyBzdHJpbmcpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpbnN0YWxsZWRQbHVnaW4pIHtcbiAgICAgICAgICAgICAgaW5zdGFsbGVkUGx1Z2luLmluc3RhbGxlZCA9IHRydWU7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBhbGxQbHVnaW5zQXNOZXdPYmplY3RzLm1hcChwID0+ICh7IC4uLnAsIGluc3RhbGxlZDogISFwLmluc3RhbGxlZCB9KSk7XG4gICAgICAgIH0pLFxuICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICAgKVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldE9ycGhhbmVkUGx1Z2lucyhcbiAgICBvcnBoYW5lZFBsdWdpbklkczogc3RyaW5nW10sXG4gICAgYWxsUGx1Z2luczogQXBwbGljYXRpb25QbHVnaW5bXVxuICApOiBBcHBsaWNhdGlvblBsdWdpbltdIHtcbiAgICBjb25zdCBvcnBoYW5lZFBsdWdpbnM6IEFwcGxpY2F0aW9uUGx1Z2luW10gPSBvcnBoYW5lZFBsdWdpbklkcy5tYXAocCA9PiB0aGlzLmV4dHJhY3REZXRhaWxzKHApKTtcbiAgICBjb25zdCBvcnBoYW5lZFBsdWdpbnNVcGRhdGVkID0gb3JwaGFuZWRQbHVnaW5zLm1hcChwID0+IHtcbiAgICAgIGNvbnN0IHBsdWdpbldpdGhNYXRjaGluZ1RhZyA9IGFsbFBsdWdpbnMuZmluZChcbiAgICAgICAgdG1wID0+XG4gICAgICAgICAgdG1wLmNvbnRleHRQYXRoID09PSBwLmNvbnRleHRQYXRoICYmXG4gICAgICAgICAgdG1wLm1vZHVsZSA9PT0gcC5tb2R1bGUgJiZcbiAgICAgICAgICB0bXAudGFncz8uaW5jbHVkZXMocC52ZXJzaW9uIHx8ICdsYXRlc3QnKVxuICAgICAgKTtcbiAgICAgIGlmIChwbHVnaW5XaXRoTWF0Y2hpbmdUYWcpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5wbHVnaW5XaXRoTWF0Y2hpbmdUYWcsXG4gICAgICAgICAgaWQ6IHAuaWQsXG4gICAgICAgICAgc3RhdHVzOiBBcHBsaWNhdGlvblBsdWdpblN0YXR1cy5BVVRPLFxuICAgICAgICAgIGluc3RhbGxlZFZpYVRhZzogcC52ZXJzaW9uIHx8ICdsYXRlc3QnXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBjb25zdCBwbHVnaW5JbkRpZmZlcmVudFZlcnNpb24gPSBhbGxQbHVnaW5zLmZpbmQoXG4gICAgICAgIHRtcCA9PiB0bXAuY29udGV4dFBhdGggPT09IHAuY29udGV4dFBhdGggJiYgdG1wLm1vZHVsZSA9PT0gcC5tb2R1bGVcbiAgICAgICk7XG4gICAgICBpZiAocGx1Z2luSW5EaWZmZXJlbnRWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucGx1Z2luSW5EaWZmZXJlbnRWZXJzaW9uLFxuICAgICAgICAgIHZlcnNpb246IHAudmVyc2lvbixcbiAgICAgICAgICBpZDogcC5pZCxcbiAgICAgICAgICBzdGF0dXM6IEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzLk9VVERBVEVEXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gcDtcbiAgICB9KTtcblxuICAgIHJldHVybiBvcnBoYW5lZFBsdWdpbnNVcGRhdGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBzcGxpdE9ycGhhbmVkUGx1Z2luc0ludG9PcnBoYW5lZEFuZFJldm9rZWRQbHVnaW5zKFxuICAgIGFsbFBsdWdpbnM6IEFwcGxpY2F0aW9uUGx1Z2luW10sXG4gICAgb3JwaGFuZWRQbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbltdXG4gICkge1xuICAgIGNvbnN0IHJldm9rZWRQbHVnaW5zID0gbmV3IEFycmF5PEFwcGxpY2F0aW9uUGx1Z2luPigpO1xuICAgIGNvbnN0IGFjdHVhbGx5T3JwaGFuZWRQbHVnaW5zID0gbmV3IEFycmF5PEFwcGxpY2F0aW9uUGx1Z2luPigpO1xuXG4gICAgZm9yIChjb25zdCBwbHVnaW4gb2Ygb3JwaGFuZWRQbHVnaW5zKSB7XG4gICAgICBjb25zdCBmb3VuZEZhbWlsaWFyUGx1Z2luID0gYWxsUGx1Z2lucy5maW5kKFxuICAgICAgICBwbHVnaW4xID0+IHBsdWdpbi5jb250ZXh0UGF0aCA9PT0gcGx1Z2luMS5jb250ZXh0UGF0aCAmJiBwbHVnaW4ubW9kdWxlID09PSBwbHVnaW4xLm1vZHVsZVxuICAgICAgKTtcbiAgICAgIGlmIChmb3VuZEZhbWlsaWFyUGx1Z2luKSB7XG4gICAgICAgIHJldm9rZWRQbHVnaW5zLnB1c2goXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgZm91bmRGYW1pbGlhclBsdWdpbiwgcGx1Z2luLCB7XG4gICAgICAgICAgICBzdGF0dXM6IEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzLlJFVk9LRURcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWN0dWFsbHlPcnBoYW5lZFBsdWdpbnMucHVzaChwbHVnaW4pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IHJldm9rZWRQbHVnaW5zLCBhY3R1YWxseU9ycGhhbmVkUGx1Z2lucyB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnN0YWxsZWRQbHVnaW5zKFxuICAgIGFsbFBsdWdpbnM6IEFwcGxpY2F0aW9uUGx1Z2luW10sXG4gICAgcmVtb3RlUGx1Z2luczogc3RyaW5nW11cbiAgKTogQXBwbGljYXRpb25QbHVnaW5bXSB7XG4gICAgY29uc3QgYXZhaWxhYmxlUGx1Z2lucyA9IGFsbFBsdWdpbnNcbiAgICAgIC5maWx0ZXIocGx1Z2luID0+IHJlbW90ZVBsdWdpbnMuaW5jbHVkZXMocGx1Z2luLmlkKSlcbiAgICAgIC5tYXAocGx1Z2luID0+XG4gICAgICAgIE9iamVjdC5hc3NpZ24ocGx1Z2luLCB7XG4gICAgICAgICAgc3RhdHVzOiBwbHVnaW4udGFncz8uaW5jbHVkZXMoJ2xhdGVzdCcpXG4gICAgICAgICAgICA/IEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzLkxBVEVTVFxuICAgICAgICAgICAgOiBBcHBsaWNhdGlvblBsdWdpblN0YXR1cy5PVVREQVRFRFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICBjb25zdCBvcnBoYW5lZFBsdWdpbklkcyA9IHJlbW90ZVBsdWdpbnMuZmlsdGVyKFxuICAgICAgciA9PiAhYXZhaWxhYmxlUGx1Z2lucy5maW5kKHBsdWdpbiA9PiBwbHVnaW4uaWQgPT09IHIpXG4gICAgKTtcbiAgICBjb25zdCBvcnBoYW5lZFBsdWdpbnM6IEFwcGxpY2F0aW9uUGx1Z2luW10gPSB0aGlzLmdldE9ycGhhbmVkUGx1Z2lucyhcbiAgICAgIG9ycGhhbmVkUGx1Z2luSWRzLFxuICAgICAgYWxsUGx1Z2luc1xuICAgICk7XG5cbiAgICBjb25zdCBub3RBY3R1YWxseU9ycGhhbmVkUGx1Z2lucyA9IG9ycGhhbmVkUGx1Z2lucy5maWx0ZXIoXG4gICAgICBwID0+IHAuc3RhdHVzID09PSBBcHBsaWNhdGlvblBsdWdpblN0YXR1cy5BVVRPXG4gICAgKTtcblxuICAgIGNvbnN0IG9ycGhhbmVkT3JSZXZva2VkUGx1Z2lucyA9IG9ycGhhbmVkUGx1Z2lucy5maWx0ZXIoXG4gICAgICBwID0+IHAuc3RhdHVzICE9PSBBcHBsaWNhdGlvblBsdWdpblN0YXR1cy5BVVRPXG4gICAgKTtcblxuICAgIGNvbnN0IHsgYWN0dWFsbHlPcnBoYW5lZFBsdWdpbnMsIHJldm9rZWRQbHVnaW5zIH0gPVxuICAgICAgdGhpcy5zcGxpdE9ycGhhbmVkUGx1Z2luc0ludG9PcnBoYW5lZEFuZFJldm9rZWRQbHVnaW5zKGFsbFBsdWdpbnMsIG9ycGhhbmVkT3JSZXZva2VkUGx1Z2lucyk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgLi4uYXZhaWxhYmxlUGx1Z2lucyxcbiAgICAgIC4uLm5vdEFjdHVhbGx5T3JwaGFuZWRQbHVnaW5zLFxuICAgICAgLi4ucmV2b2tlZFBsdWdpbnMsXG4gICAgICAuLi5hY3R1YWxseU9ycGhhbmVkUGx1Z2luc1xuICAgIF07XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3REZXRhaWxzKHBsdWdpbklkOiBzdHJpbmcpOiBBcHBsaWNhdGlvblBsdWdpbiB7XG4gICAgY29uc3QgY29udGV4dFBhdGggPSB0aGlzLmdldFN0cmluZ01hdGNoaW5nUmVnZXgocGx1Z2luSWQsIC9eW15AXSooQHxcXC8pLyk7XG4gICAgY29uc3QgdmVyc2lvbiA9IHRoaXMuZ2V0U3RyaW5nTWF0Y2hpbmdSZWdleChwbHVnaW5JZCwgL0AuKlxcLy8pO1xuICAgIGNvbnN0IG1vZHVsZSA9IHRoaXMuZ2V0U3RyaW5nTWF0Y2hpbmdSZWdleChwbHVnaW5JZCwgL1xcLy4qJC8pO1xuICAgIGNvbnN0IHVuYXZhaWxhYmxlID0gZ2V0dGV4dCgndW5hdmFpbGFibGVgcGx1Z2luYCcpO1xuICAgIHJldHVybiB7XG4gICAgICBpZDogcGx1Z2luSWQsXG4gICAgICBpZExhdGVzdDogYCR7Y29udGV4dFBhdGh9LyR7bW9kdWxlfWAsXG4gICAgICBwYXRoOiAnJyxcbiAgICAgIG1vZHVsZSxcbiAgICAgIG5hbWU6IG1vZHVsZSxcbiAgICAgIHN0YXR1czogQXBwbGljYXRpb25QbHVnaW5TdGF0dXMuT1JQSEFORUQsXG4gICAgICBjb250ZXh0UGF0aDogY29udGV4dFBhdGgsXG4gICAgICBkZXNjcmlwdGlvbjogdW5hdmFpbGFibGUsXG4gICAgICB2ZXJzaW9uOiB2ZXJzaW9uXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3RyaW5nTWF0Y2hpbmdSZWdleChcbiAgICBzdHI6IHN0cmluZyxcbiAgICByZWdleDogeyBbU3ltYm9sLm1hdGNoXShzdHJpbmc6IHN0cmluZyk6IFJlZ0V4cE1hdGNoQXJyYXkgfCBudWxsIH1cbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCBtYXRjaGVzID0gc3RyLm1hdGNoKHJlZ2V4KTtcbiAgICBjb25zdCB2YWx1ZSA9IG1hdGNoZXMgPyBtYXRjaGVzWzBdIDogJyc7XG5cbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvKEB8XFwvKS9nLCAnJyk7XG4gIH1cbn1cbiIsIjxjOHktdGl0bGU+e3sgYXBwIHwgaHVtYW5pemVBcHBOYW1lIHwgYXN5bmMgfX08L2M4eS10aXRsZT5cblxuPGM4eS1icmVhZGNydW1iPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbVxuICAgIFtpY29uXT1cIidjOHktYXRvbSdcIlxuICAgIFtsYWJlbF09XCInRWNvc3lzdGVtJyB8IHRyYW5zbGF0ZVwiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgW2ljb25dPVwiJ2M4eS1tb2R1bGVzJ1wiXG4gICAgW2xhYmVsXT1cIidBcHBsaWNhdGlvbnMnIHwgdHJhbnNsYXRlXCJcbiAgICBbcGF0aF09XCInZWNvc3lzdGVtL2FwcGxpY2F0aW9uL2FwcGxpY2F0aW9ucydcIlxuICA+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbSBbbGFiZWxdPVwiYXBwIHwgaHVtYW5pemVBcHBOYW1lIHwgYXN5bmNcIj48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtIFtsYWJlbF09XCInUGx1Z2lucycgfCB0cmFuc2xhdGVcIj48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG48L2M4eS1icmVhZGNydW1iPlxuXG48Yzh5LWFjdGlvbi1iYXItaXRlbVxuICBbcGxhY2VtZW50XT1cIidyaWdodCdcIlxuICAqbmdJZj1cIiEoaXNTdGFuZGFyZCQgfCBhc3luYylcIlxuPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgIHRpdGxlPVwie3sgJ1Jlc2V0IHRvIGRlZmF1bHQgcGx1Z2lucycgfCB0cmFuc2xhdGUgfX1cIlxuICAgIFtuZ0NsYXNzXT1cInsgJ2J0bi1wZW5kaW5nJzogaXNMb2FkaW5nIH1cIlxuICAgIChjbGljayk9XCJyZXNldFRvRGVmYXVsdCgpXCJcbiAgPlxuICAgIDxpIGM4eUljb249XCJ1bmRvXCI+PC9pPlxuICAgIHt7ICdSZXNldCB0byBkZWZhdWx0JyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCIncmlnaHQnXCI+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgdGl0bGU9XCJ7eyAnSW5zdGFsbCBwbHVnaW5zJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgKGNsaWNrKT1cImluc3RhbGxQbHVnaW5zKClcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ2J0bi1wZW5kaW5nJzogaXNMb2FkaW5nIH1cIlxuICA+XG4gICAgPGkgYzh5SWNvbj1cInBsdXMtY2lyY2xlXCI+PC9pPlxuICAgIHt7ICdJbnN0YWxsIHBsdWdpbnMnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwib3JwaGFuZWRQbHVnaW5zJCB8IGFzeW5jIGFzIG9ycGhhbmVkUGx1Z2luc1wiPlxuICA8Yzh5LWFjdGlvbi1iYXItaXRlbVxuICAgICpuZ0lmPVwib3JwaGFuZWRQbHVnaW5zPy5sZW5ndGhcIlxuICAgIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgICB0aXRsZT1cInt7ICdDbGVhbiB1cCBvcnBoYW5lZCBwbHVnaW5zJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAoY2xpY2spPVwiY2xlYW51cE9ycGhhbmVkUGx1Z2lucyhvcnBoYW5lZFBsdWdpbnMpXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ2J0bi1wZW5kaW5nJzogaXNMb2FkaW5nIH1cIlxuICAgID5cbiAgICAgIDxpIGM4eUljb249XCJlcmFzZVwiPjwvaT5cbiAgICAgIHt7ICdDbGVhbiB1cCBvcnBoYW5lZCBwbHVnaW5zJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG48L25nLWNvbnRhaW5lcj5cblxuPGRpdiBjbGFzcz1cImNvbnRlbnQtZnVsbHBhZ2UgZC1mbGV4IGQtY29sIGJvcmRlci10b3BcIj5cbiAgPGM4eS1kYXRhLWdyaWRcbiAgICBjbGFzcz1cImQtY29udGVudHNcIlxuICAgIFt0aXRsZV09XCJ0aXRsZVwiXG4gICAgW2xvYWRNb3JlSXRlbXNMYWJlbF09XCJsb2FkTW9yZUl0ZW1zTGFiZWxcIlxuICAgIFtsb2FkaW5nSXRlbXNMYWJlbF09XCJsb2FkaW5nSXRlbXNMYWJlbFwiXG4gICAgW2Rpc3BsYXlPcHRpb25zXT1cImRpc3BsYXlPcHRpb25zXCJcbiAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICBbcm93c109XCJpbnN0YWxsZWRQbHVnaW5zJCB8IGFzeW5jXCJcbiAgICBbcGFnaW5hdGlvbl09XCJwYWdpbmF0aW9uXCJcbiAgICBbc2VsZWN0YWJsZV09XCJ0cnVlXCJcbiAgICBbYWN0aW9uQ29udHJvbHNdPVwiYWN0aW9uQ29udHJvbHNcIlxuICAgIFtidWxrQWN0aW9uQ29udHJvbHNdPVwiYnVsa0FjdGlvbkNvbnRyb2xzXCJcbiAgICBbaGVhZGVyQWN0aW9uQ29udHJvbHNdPVwiaGVhZGVyQWN0aW9uQ29udHJvbHNcIlxuICAgIChvblJlbG9hZCk9XCJyZWZyZXNoKClcIlxuICA+XG4gICAgPGM4eS11aS1lbXB0eS1zdGF0ZVxuICAgICAgW2ljb25dPVwic3RhdHM/LnNpemUgPiAwID8gJ3NlYXJjaCcgOiAncGx1Z2luJ1wiXG4gICAgICBbdGl0bGVdPVwic3RhdHM/LnNpemUgPiAwID8gKG5vUmVzdWx0c01lc3NhZ2UgfCB0cmFuc2xhdGUpIDogKG5vRGF0YU1lc3NhZ2UgfCB0cmFuc2xhdGUpXCJcbiAgICAgIFtzdWJ0aXRsZV09XCJzdGF0cz8uc2l6ZSA+IDAgPyAobm9SZXN1bHRzU3VidGl0bGUgfCB0cmFuc2xhdGUpIDogKG5vRGF0YVN1YnRpdGxlIHwgdHJhbnNsYXRlKVwiXG4gICAgICAqZW1wdHlTdGF0ZUNvbnRleHQ9XCJsZXQgc3RhdHNcIlxuICAgICAgW2hvcml6b250YWxdPVwic3RhdHM/LnNpemUgPiAwXCJcbiAgICA+XG4gICAgICA8cCAqbmdJZj1cInN0YXRzPy5zaXplID09PSAwXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIlxuICAgICAgICAgIHRpdGxlPVwie3sgJ0luc3RhbGwgcGx1Z2lucycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgIChjbGljayk9XCJpbnN0YWxsUGx1Z2lucygpXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7ICdidG4tcGVuZGluZyc6IGlzTG9hZGluZyB9XCJcbiAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgPlxuICAgICAgICAgIEluc3RhbGwgcGx1Z2luc1xuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvcD5cbiAgICA8L2M4eS11aS1lbXB0eS1zdGF0ZT5cbiAgPC9jOHktZGF0YS1ncmlkPlxuPC9kaXY+XG4iXX0=
@@ -12,9 +12,15 @@ export class ApplicationPluginsGuard {
12
12
  if (!app) {
13
13
  return false;
14
14
  }
15
+ const manifest = app.manifest;
16
+ if (!manifest) {
17
+ return false;
18
+ }
15
19
  return (app.type === ApplicationType.HOSTED &&
16
20
  this.ecosystemService.isOwner(app) &&
17
- !this.ecosystemService.isPackage(app));
21
+ !this.ecosystemService.isPackage(app) &&
22
+ // apps like e.g. the public-options should not have the plugins tab
23
+ !manifest.noAppSwitcher);
18
24
  }
19
25
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ApplicationPluginsGuard, deps: [{ token: i1.EcosystemService }], target: i0.ɵɵFactoryTarget.Injectable }); }
20
26
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ApplicationPluginsGuard }); }
@@ -22,4 +28,4 @@ export class ApplicationPluginsGuard {
22
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ApplicationPluginsGuard, decorators: [{
23
29
  type: Injectable
24
30
  }], ctorParameters: () => [{ type: i1.EcosystemService }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tcGx1Z2lucy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9hcHBsaWNhdGlvbi1wbHVnaW5zL2FwcGxpY2F0aW9uLXBsdWdpbnMuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7QUFHeEUsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUFHLENBQUM7SUFFMUQsV0FBVyxDQUFDLEtBQTZCO1FBQ3ZDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNwRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDVCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxPQUFPLENBQ0wsR0FBRyxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsTUFBTTtZQUNuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUNsQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQ3RDLENBQUM7SUFDSixDQUFDOzhHQWJVLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblR5cGUgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBFY29zeXN0ZW1TZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9lY29zeXN0ZW0vc2hhcmVkJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uUGx1Z2luc0d1YXJkIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlY29zeXN0ZW1TZXJ2aWNlOiBFY29zeXN0ZW1TZXJ2aWNlKSB7fVxuXG4gIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KSB7XG4gICAgY29uc3QgYXBwID0gcm91dGUuZGF0YS5jb250ZXh0RGF0YSB8fCByb3V0ZS5wYXJlbnQuZGF0YS5jb250ZXh0RGF0YTtcbiAgICBpZiAoIWFwcCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgYXBwLnR5cGUgPT09IEFwcGxpY2F0aW9uVHlwZS5IT1NURUQgJiZcbiAgICAgIHRoaXMuZWNvc3lzdGVtU2VydmljZS5pc093bmVyKGFwcCkgJiZcbiAgICAgICF0aGlzLmVjb3N5c3RlbVNlcnZpY2UuaXNQYWNrYWdlKGFwcClcbiAgICApO1xuICB9XG59XG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tcGx1Z2lucy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9hcHBsaWNhdGlvbi1wbHVnaW5zL2FwcGxpY2F0aW9uLXBsdWdpbnMuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLGFBQWEsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7O0FBR3hFLE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFBRyxDQUFDO0lBRTFELFdBQVcsQ0FBQyxLQUE2QjtRQUN2QyxNQUFNLEdBQUcsR0FBaUIsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNULE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDOUIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxDQUNMLEdBQUcsQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLE1BQU07WUFDbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDbEMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztZQUNyQyxvRUFBb0U7WUFDcEUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUN4QixDQUFDO0lBQ0osQ0FBQzs4R0FuQlUsdUJBQXVCO2tIQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uVHlwZSwgSUFwcGxpY2F0aW9uIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgRWNvc3lzdGVtU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZWNvc3lzdGVtL3NoYXJlZCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvblBsdWdpbnNHdWFyZCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWNvc3lzdGVtU2VydmljZTogRWNvc3lzdGVtU2VydmljZSkge31cblxuICBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCkge1xuICAgIGNvbnN0IGFwcDogSUFwcGxpY2F0aW9uID0gcm91dGUuZGF0YS5jb250ZXh0RGF0YSB8fCByb3V0ZS5wYXJlbnQuZGF0YS5jb250ZXh0RGF0YTtcbiAgICBpZiAoIWFwcCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBtYW5pZmVzdCA9IGFwcC5tYW5pZmVzdDtcbiAgICBpZiAoIW1hbmlmZXN0KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICBhcHAudHlwZSA9PT0gQXBwbGljYXRpb25UeXBlLkhPU1RFRCAmJlxuICAgICAgdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzT3duZXIoYXBwKSAmJlxuICAgICAgIXRoaXMuZWNvc3lzdGVtU2VydmljZS5pc1BhY2thZ2UoYXBwKSAmJlxuICAgICAgLy8gYXBwcyBsaWtlIGUuZy4gdGhlIHB1YmxpYy1vcHRpb25zIHNob3VsZCBub3QgaGF2ZSB0aGUgcGx1Z2lucyB0YWJcbiAgICAgICFtYW5pZmVzdC5ub0FwcFN3aXRjaGVyXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -34,6 +34,12 @@ export class OrphanedStatusCellRendererComponent {
34
34
  text: gettext('LATEST`plugin status`'),
35
35
  class: 'label-success'
36
36
  };
37
+ case ApplicationPluginStatus.AUTO:
38
+ return {
39
+ value: statusValue,
40
+ text: gettext('AUTO`plugin status`'),
41
+ class: 'label-success'
42
+ };
37
43
  default:
38
44
  return null;
39
45
  }
@@ -45,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
45
51
  type: Component,
46
52
  args: [{ selector: 'c8y-orphaned-status-cell-renderer', template: "<span\n *ngIf=\"label\"\n class=\"label\"\n [ngClass]=\"label.class\"\n [title]=\"label.text | translate\"\n>\n {{ label.text | translate }}\n</span>\n" }]
47
53
  }], ctorParameters: () => [{ type: i1.CellRendererContext }] });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JwaGFuZWQtc3RhdHVzLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZWNvc3lzdGVtL2FwcGxpY2F0aW9uLXBsdWdpbnMvb3JwaGFuZWQtc3RhdHVzLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vZWNvc3lzdGVtL2FwcGxpY2F0aW9uLXBsdWdpbnMvb3JwaGFuZWQtc3RhdHVzLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFNNUYsTUFBTSxPQUFPLG1DQUFtQztJQUU5QyxZQUFtQixPQUE0QjtRQUE1QixZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUM3QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTyxRQUFRLENBQUMsV0FBb0M7UUFLbkQsUUFBUSxXQUFXLEVBQUUsQ0FBQztZQUNwQixLQUFLLHVCQUF1QixDQUFDLFFBQVE7Z0JBQ25DLE9BQU87b0JBQ0wsS0FBSyxFQUFFLFdBQVc7b0JBQ2xCLElBQUksRUFBRSxPQUFPLENBQUMseUJBQXlCLENBQUM7b0JBQ3hDLEtBQUssRUFBRSxlQUFlO2lCQUN2QixDQUFDO1lBQ0osS0FBSyx1QkFBdUIsQ0FBQyxRQUFRO2dCQUNuQyxPQUFPO29CQUNMLEtBQUssRUFBRSxXQUFXO29CQUNsQixJQUFJLEVBQUUsT0FBTyxDQUFDLHlCQUF5QixDQUFDO29CQUN4QyxLQUFLLEVBQUUsY0FBYztpQkFDdEIsQ0FBQztZQUNKLEtBQUssdUJBQXVCLENBQUMsT0FBTztnQkFDbEMsT0FBTztvQkFDTCxLQUFLLEVBQUUsV0FBVztvQkFDbEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQztvQkFDdkMsS0FBSyxFQUFFLGNBQWM7aUJBQ3RCLENBQUM7WUFDSixLQUFLLHVCQUF1QixDQUFDLE1BQU07Z0JBQ2pDLE9BQU87b0JBQ0wsS0FBSyxFQUFFLFdBQVc7b0JBQ2xCLElBQUksRUFBRSxPQUFPLENBQUMsdUJBQXVCLENBQUM7b0JBQ3RDLEtBQUssRUFBRSxlQUFlO2lCQUN2QixDQUFDO1lBQ0o7Z0JBQ0UsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7OEdBdkNVLG1DQUFtQztrR0FBbkMsbUNBQW1DLHlFQ1BoRCw4SkFRQTs7MkZERGEsbUNBQW1DO2tCQUovQyxTQUFTOytCQUNFLG1DQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25QbHVnaW5TdGF0dXMsIENlbGxSZW5kZXJlckNvbnRleHQsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LW9ycGhhbmVkLXN0YXR1cy1jZWxsLXJlbmRlcmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29ycGhhbmVkLXN0YXR1cy1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBPcnBoYW5lZFN0YXR1c0NlbGxSZW5kZXJlckNvbXBvbmVudCB7XG4gIGxhYmVsOiB7IHZhbHVlOiBzdHJpbmc7IGNsYXNzOiBzdHJpbmc7IHRleHQ6IHN0cmluZyB9IHwgbnVsbDtcbiAgY29uc3RydWN0b3IocHVibGljIGNvbnRleHQ6IENlbGxSZW5kZXJlckNvbnRleHQpIHtcbiAgICB0aGlzLmxhYmVsID0gdGhpcy5nZXRMYWJlbChjb250ZXh0LnZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGFiZWwoc3RhdHVzVmFsdWU6IEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzKToge1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgY2xhc3M6IHN0cmluZztcbiAgICB0ZXh0OiBzdHJpbmc7XG4gIH0gfCBudWxsIHtcbiAgICBzd2l0Y2ggKHN0YXR1c1ZhbHVlKSB7XG4gICAgICBjYXNlIEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzLk9VVERBVEVEOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHZhbHVlOiBzdGF0dXNWYWx1ZSxcbiAgICAgICAgICB0ZXh0OiBnZXR0ZXh0KCdPVVREQVRFRGBwbHVnaW4gc3RhdHVzYCcpLFxuICAgICAgICAgIGNsYXNzOiAnbGFiZWwtd2FybmluZydcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgQXBwbGljYXRpb25QbHVnaW5TdGF0dXMuT1JQSEFORUQ6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsdWU6IHN0YXR1c1ZhbHVlLFxuICAgICAgICAgIHRleHQ6IGdldHRleHQoJ09SUEhBTkVEYHBsdWdpbiBzdGF0dXNgJyksXG4gICAgICAgICAgY2xhc3M6ICdsYWJlbC1kYW5nZXInXG4gICAgICAgIH07XG4gICAgICBjYXNlIEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzLlJFVk9LRUQ6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsdWU6IHN0YXR1c1ZhbHVlLFxuICAgICAgICAgIHRleHQ6IGdldHRleHQoJ1JFVk9LRURgcGx1Z2luIHN0YXR1c2AnKSxcbiAgICAgICAgICBjbGFzczogJ2xhYmVsLWRhbmdlcidcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgQXBwbGljYXRpb25QbHVnaW5TdGF0dXMuTEFURVNUOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHZhbHVlOiBzdGF0dXNWYWx1ZSxcbiAgICAgICAgICB0ZXh0OiBnZXR0ZXh0KCdMQVRFU1RgcGx1Z2luIHN0YXR1c2AnKSxcbiAgICAgICAgICBjbGFzczogJ2xhYmVsLXN1Y2Nlc3MnXG4gICAgICAgIH07XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiIsIjxzcGFuXG4gICpuZ0lmPVwibGFiZWxcIlxuICBjbGFzcz1cImxhYmVsXCJcbiAgW25nQ2xhc3NdPVwibGFiZWwuY2xhc3NcIlxuICBbdGl0bGVdPVwibGFiZWwudGV4dCB8IHRyYW5zbGF0ZVwiXG4+XG4gIHt7IGxhYmVsLnRleHQgfCB0cmFuc2xhdGUgfX1cbjwvc3Bhbj5cbiJdfQ==
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JwaGFuZWQtc3RhdHVzLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZWNvc3lzdGVtL2FwcGxpY2F0aW9uLXBsdWdpbnMvb3JwaGFuZWQtc3RhdHVzLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vZWNvc3lzdGVtL2FwcGxpY2F0aW9uLXBsdWdpbnMvb3JwaGFuZWQtc3RhdHVzLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFNNUYsTUFBTSxPQUFPLG1DQUFtQztJQUU5QyxZQUFtQixPQUE0QjtRQUE1QixZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUM3QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTyxRQUFRLENBQUMsV0FBb0M7UUFLbkQsUUFBUSxXQUFXLEVBQUUsQ0FBQztZQUNwQixLQUFLLHVCQUF1QixDQUFDLFFBQVE7Z0JBQ25DLE9BQU87b0JBQ0wsS0FBSyxFQUFFLFdBQVc7b0JBQ2xCLElBQUksRUFBRSxPQUFPLENBQUMseUJBQXlCLENBQUM7b0JBQ3hDLEtBQUssRUFBRSxlQUFlO2lCQUN2QixDQUFDO1lBQ0osS0FBSyx1QkFBdUIsQ0FBQyxRQUFRO2dCQUNuQyxPQUFPO29CQUNMLEtBQUssRUFBRSxXQUFXO29CQUNsQixJQUFJLEVBQUUsT0FBTyxDQUFDLHlCQUF5QixDQUFDO29CQUN4QyxLQUFLLEVBQUUsY0FBYztpQkFDdEIsQ0FBQztZQUNKLEtBQUssdUJBQXVCLENBQUMsT0FBTztnQkFDbEMsT0FBTztvQkFDTCxLQUFLLEVBQUUsV0FBVztvQkFDbEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQztvQkFDdkMsS0FBSyxFQUFFLGNBQWM7aUJBQ3RCLENBQUM7WUFDSixLQUFLLHVCQUF1QixDQUFDLE1BQU07Z0JBQ2pDLE9BQU87b0JBQ0wsS0FBSyxFQUFFLFdBQVc7b0JBQ2xCLElBQUksRUFBRSxPQUFPLENBQUMsdUJBQXVCLENBQUM7b0JBQ3RDLEtBQUssRUFBRSxlQUFlO2lCQUN2QixDQUFDO1lBQ0osS0FBSyx1QkFBdUIsQ0FBQyxJQUFJO2dCQUMvQixPQUFPO29CQUNMLEtBQUssRUFBRSxXQUFXO29CQUNsQixJQUFJLEVBQUUsT0FBTyxDQUFDLHFCQUFxQixDQUFDO29CQUNwQyxLQUFLLEVBQUUsZUFBZTtpQkFDdkIsQ0FBQztZQUNKO2dCQUNFLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7SUFDSCxDQUFDOzhHQTdDVSxtQ0FBbUM7a0dBQW5DLG1DQUFtQyx5RUNQaEQsOEpBUUE7OzJGRERhLG1DQUFtQztrQkFKL0MsU0FBUzsrQkFDRSxtQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzLCBDZWxsUmVuZGVyZXJDb250ZXh0LCBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1vcnBoYW5lZC1zdGF0dXMtY2VsbC1yZW5kZXJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9vcnBoYW5lZC1zdGF0dXMtY2VsbC1yZW5kZXJlci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgT3JwaGFuZWRTdGF0dXNDZWxsUmVuZGVyZXJDb21wb25lbnQge1xuICBsYWJlbDogeyB2YWx1ZTogc3RyaW5nOyBjbGFzczogc3RyaW5nOyB0ZXh0OiBzdHJpbmcgfSB8IG51bGw7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb250ZXh0OiBDZWxsUmVuZGVyZXJDb250ZXh0KSB7XG4gICAgdGhpcy5sYWJlbCA9IHRoaXMuZ2V0TGFiZWwoY29udGV4dC52YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGdldExhYmVsKHN0YXR1c1ZhbHVlOiBBcHBsaWNhdGlvblBsdWdpblN0YXR1cyk6IHtcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGNsYXNzOiBzdHJpbmc7XG4gICAgdGV4dDogc3RyaW5nO1xuICB9IHwgbnVsbCB7XG4gICAgc3dpdGNoIChzdGF0dXNWYWx1ZSkge1xuICAgICAgY2FzZSBBcHBsaWNhdGlvblBsdWdpblN0YXR1cy5PVVREQVRFRDpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogc3RhdHVzVmFsdWUsXG4gICAgICAgICAgdGV4dDogZ2V0dGV4dCgnT1VUREFURURgcGx1Z2luIHN0YXR1c2AnKSxcbiAgICAgICAgICBjbGFzczogJ2xhYmVsLXdhcm5pbmcnXG4gICAgICAgIH07XG4gICAgICBjYXNlIEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzLk9SUEhBTkVEOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHZhbHVlOiBzdGF0dXNWYWx1ZSxcbiAgICAgICAgICB0ZXh0OiBnZXR0ZXh0KCdPUlBIQU5FRGBwbHVnaW4gc3RhdHVzYCcpLFxuICAgICAgICAgIGNsYXNzOiAnbGFiZWwtZGFuZ2VyJ1xuICAgICAgICB9O1xuICAgICAgY2FzZSBBcHBsaWNhdGlvblBsdWdpblN0YXR1cy5SRVZPS0VEOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHZhbHVlOiBzdGF0dXNWYWx1ZSxcbiAgICAgICAgICB0ZXh0OiBnZXR0ZXh0KCdSRVZPS0VEYHBsdWdpbiBzdGF0dXNgJyksXG4gICAgICAgICAgY2xhc3M6ICdsYWJlbC1kYW5nZXInXG4gICAgICAgIH07XG4gICAgICBjYXNlIEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzLkxBVEVTVDpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogc3RhdHVzVmFsdWUsXG4gICAgICAgICAgdGV4dDogZ2V0dGV4dCgnTEFURVNUYHBsdWdpbiBzdGF0dXNgJyksXG4gICAgICAgICAgY2xhc3M6ICdsYWJlbC1zdWNjZXNzJ1xuICAgICAgICB9O1xuICAgICAgY2FzZSBBcHBsaWNhdGlvblBsdWdpblN0YXR1cy5BVVRPOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHZhbHVlOiBzdGF0dXNWYWx1ZSxcbiAgICAgICAgICB0ZXh0OiBnZXR0ZXh0KCdBVVRPYHBsdWdpbiBzdGF0dXNgJyksXG4gICAgICAgICAgY2xhc3M6ICdsYWJlbC1zdWNjZXNzJ1xuICAgICAgICB9O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG59XG4iLCI8c3BhblxuICAqbmdJZj1cImxhYmVsXCJcbiAgY2xhc3M9XCJsYWJlbFwiXG4gIFtuZ0NsYXNzXT1cImxhYmVsLmNsYXNzXCJcbiAgW3RpdGxlXT1cImxhYmVsLnRleHQgfCB0cmFuc2xhdGVcIlxuPlxuICB7eyBsYWJlbC50ZXh0IHwgdHJhbnNsYXRlIH19XG48L3NwYW4+XG4iXX0=
@@ -65,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
65
65
  }], ctorParameters: () => [{ type: i1.TranslateService }], propDecorators: { INTERVALS: [{
66
66
  type: Input
67
67
  }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2ludGVydmFsLXBpY2tlci9pbnRlcnZhbC1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vaW50ZXJ2YWwtcGlja2VyL2ludGVydmFsLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsbUJBQW1CLEVBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQVksU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFldkQsTUFBTSxPQUFPLHVCQUF1QjtJQVFsQyxZQUFvQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQVB0QyxjQUFTLEdBQUcsU0FBUyxDQUFDO1FBRy9CLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQix3QkFBbUIsR0FBb0MsRUFBRSxDQUFDO1FBVzFELGdFQUFnRTtRQUNoRSxhQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDbkIsZ0VBQWdFO1FBQ2hFLGNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFaNkIsQ0FBQztJQUVuRCxRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN6RCxHQUFHLFFBQVE7WUFDWCxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztTQUM5QyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFPRCxVQUFVLENBQUMsS0FBcUI7UUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLFNBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLFFBQWlCO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7OEdBM0NVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLHNHQVZ2QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7Z0JBQ3RELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkN0QkgsNmVBdUJBLDJDRENZLFlBQVksOFVBQUUsV0FBVyw4QkFBRSxVQUFVLDhCQUFFLG1CQUFtQiw4QkFBRSxnQkFBZ0I7OzJGQUUzRSx1QkFBdUI7a0JBYm5DLFNBQVM7K0JBQ0UscUJBQXFCLGFBRXBCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHdCQUF3QixDQUFDOzRCQUN0RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixjQUNXLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixDQUFDO3FGQUc5RSxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBGb3Jtc01vZHVsZSxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZVxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQnNEcm9wZG93bk1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvZHJvcGRvd24nO1xuaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEludGVydmFsLCBJTlRFUlZBTFMgfSBmcm9tICcuL2ludGVydmFsLXBpY2tlci5tb2RlbCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1pbnRlcnZhbC1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaW50ZXJ2YWwtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnRlcnZhbFBpY2tlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIEExMXlNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEJzRHJvcGRvd25Nb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEludGVydmFsUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASW5wdXQoKSBJTlRFUlZBTFMgPSBJTlRFUlZBTFM7XG5cbiAgdmFsdWU6IEludGVydmFsWydpZCddO1xuICB0b3VjaGVkID0gZmFsc2U7XG4gIGRpc2FibGVkID0gZmFsc2U7XG4gIHRyYW5zbGF0ZWRJbnRlcnZhbHM6IHsgaWQ6IHN0cmluZzsgdGl0bGU6IHN0cmluZyB9W10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnRyYW5zbGF0ZWRJbnRlcnZhbHMgPSB0aGlzLklOVEVSVkFMUy5tYXAoaW50ZXJ2YWwgPT4gKHtcbiAgICAgIC4uLmludGVydmFsLFxuICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoaW50ZXJ2YWwudGl0bGUpXG4gICAgfSkpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBvbkNoYW5nZSA9IF8gPT4ge307XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogSW50ZXJ2YWxbJ2lkJ10pIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6IGFueSkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xuICB9XG5cbiAgbWFya0FzVG91Y2hlZCgpIHtcbiAgICBpZiAoIXRoaXMudG91Y2hlZCkge1xuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgfVxufVxuIiwiPGxpXG4gICpuZ0Zvcj1cImxldCBpbnRlcnZhbCBvZiB0cmFuc2xhdGVkSW50ZXJ2YWxzXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgIGFjdGl2ZTogaW50ZXJ2YWwuaWQgPT09IHZhbHVlXG4gIH1cIlxuPlxuICA8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgKGNsaWNrKT1cIm9uQ2hhbmdlKGludGVydmFsLmlkKVwiXG4gID5cbiAgICA8c3BhblxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAndGV4dC1wcmltYXJ5JzogaW50ZXJ2YWwuaWQgPT09IHZhbHVlXG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBjOHlJY29uPVwiY2hlY2tcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7IHZpc2liaWxpdHk6IGludGVydmFsLmlkID09PSB2YWx1ZSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nIH1cIlxuICAgICAgPjwvc3Bhbj5cbiAgICAgIHt7IGludGVydmFsLnRpdGxlIH19XG4gICAgPC9zcGFuPlxuICA8L2J1dHRvbj5cbjwvbGk+XG4iXX0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2ludGVydmFsLXBpY2tlci9pbnRlcnZhbC1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vaW50ZXJ2YWwtcGlja2VyL2ludGVydmFsLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsbUJBQW1CLEVBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQWlDLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBZXZELE1BQU0sT0FBTyx1QkFBdUI7SUFRbEMsWUFBb0IsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFQdEMsY0FBUyxHQUF1QyxTQUFTLENBQUM7UUFHbkUsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLHdCQUFtQixHQUFvQyxFQUFFLENBQUM7UUFXMUQsZ0VBQWdFO1FBQ2hFLGFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUNuQixnRUFBZ0U7UUFDaEUsY0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQVo2QixDQUFDO0lBRW5ELFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pELEdBQUcsUUFBUTtZQUNYLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1NBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQU9ELFVBQVUsQ0FBQyxLQUFxQjtRQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsU0FBYztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBaUI7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQzs4R0EzQ1UsdUJBQXVCO2tHQUF2Qix1QkFBdUIsc0dBVnZCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDdEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQ3RCSCw2ZUF1QkEsMkNEQ1ksWUFBWSw4VUFBRSxXQUFXLDhCQUFFLFVBQVUsOEJBQUUsbUJBQW1CLDhCQUFFLGdCQUFnQjs7MkZBRTNFLHVCQUF1QjtrQkFibkMsU0FBUzsrQkFDRSxxQkFBcUIsYUFFcEI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUM7NEJBQ3RELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLGNBQ1csSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLENBQUM7cUZBRzlFLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIEZvcm1zTW9kdWxlLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCc0Ryb3Bkb3duTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9kcm9wZG93bic7XG5pbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQWxhcm1GaWx0ZXJJbnRlcnZhbCwgSW50ZXJ2YWwsIElOVEVSVkFMUyB9IGZyb20gJy4vaW50ZXJ2YWwtcGlja2VyLm1vZGVsJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWludGVydmFsLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnRlcnZhbC1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEludGVydmFsUGlja2VyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgQTExeU1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgQnNEcm9wZG93bk1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgSW50ZXJ2YWxQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIElOVEVSVkFMUzogSW50ZXJ2YWxbXSB8IEFsYXJtRmlsdGVySW50ZXJ2YWxbXSA9IElOVEVSVkFMUztcblxuICB2YWx1ZTogSW50ZXJ2YWxbJ2lkJ107XG4gIHRvdWNoZWQgPSBmYWxzZTtcbiAgZGlzYWJsZWQgPSBmYWxzZTtcbiAgdHJhbnNsYXRlZEludGVydmFsczogeyBpZDogc3RyaW5nOyB0aXRsZTogc3RyaW5nIH1bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudHJhbnNsYXRlZEludGVydmFscyA9IHRoaXMuSU5URVJWQUxTLm1hcChpbnRlcnZhbCA9PiAoe1xuICAgICAgLi4uaW50ZXJ2YWwsXG4gICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChpbnRlcnZhbC50aXRsZSlcbiAgICB9KSk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIG9uQ2hhbmdlID0gXyA9PiB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICB3cml0ZVZhbHVlKHZhbHVlOiBJbnRlcnZhbFsnaWQnXSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gIH1cblxuICBtYXJrQXNUb3VjaGVkKCkge1xuICAgIGlmICghdGhpcy50b3VjaGVkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgdGhpcy50b3VjaGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICB9XG59XG4iLCI8bGlcbiAgKm5nRm9yPVwibGV0IGludGVydmFsIG9mIHRyYW5zbGF0ZWRJbnRlcnZhbHNcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgYWN0aXZlOiBpbnRlcnZhbC5pZCA9PT0gdmFsdWVcbiAgfVwiXG4+XG4gIDxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAoY2xpY2spPVwib25DaGFuZ2UoaW50ZXJ2YWwuaWQpXCJcbiAgPlxuICAgIDxzcGFuXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICd0ZXh0LXByaW1hcnknOiBpbnRlcnZhbC5pZCA9PT0gdmFsdWVcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxzcGFuXG4gICAgICAgIGM4eUljb249XCJjaGVja1wiXG4gICAgICAgIFtuZ1N0eWxlXT1cInsgdmlzaWJpbGl0eTogaW50ZXJ2YWwuaWQgPT09IHZhbHVlID8gJ3Zpc2libGUnIDogJ2hpZGRlbicgfVwiXG4gICAgICA+PC9zcGFuPlxuICAgICAge3sgaW50ZXJ2YWwudGl0bGUgfX1cbiAgICA8L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9saT5cbiJdfQ==
@@ -44,4 +44,4 @@ export const INTERVAL_TITLES = {
44
44
  months: gettext('Last month'),
45
45
  custom: gettext('Custom')
46
46
  };
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwtcGlja2VyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vaW50ZXJ2YWwtcGlja2VyL2ludGVydmFsLXBpY2tlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztBQUM3QixNQUFNLENBQU4sSUFBWSxZQU1YO0FBTkQsV0FBWSxZQUFZO0lBQ3RCLHVEQUFvQixDQUFBO0lBQ3BCLHFEQUF1QixDQUFBO0lBQ3ZCLG9EQUEyQixDQUFBO0lBQzNCLHVEQUFnQyxDQUFBO0lBQ2hDLHFDQUFVLFNBQVMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxXQUFBLENBQUE7QUFDbEcsQ0FBQyxFQU5XLFlBQVksS0FBWixZQUFZLFFBTXZCO0FBUUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFlO0lBQ25DO1FBQ0UsRUFBRSxFQUFFLFNBQVM7UUFDYixLQUFLLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUM3QixZQUFZLEVBQUUsWUFBWSxDQUFDLE1BQU07S0FDbEM7SUFDRDtRQUNFLEVBQUUsRUFBRSxPQUFPO1FBQ1gsS0FBSyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDM0IsWUFBWSxFQUFFLFlBQVksQ0FBQyxJQUFJO0tBQ2hDO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsTUFBTTtRQUNWLEtBQUssRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQzFCLFlBQVksRUFBRSxZQUFZLENBQUMsR0FBRztLQUMvQjtJQUNEO1FBQ0UsRUFBRSxFQUFFLE9BQU87UUFDWCxLQUFLLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUMzQixZQUFZLEVBQUUsWUFBWSxDQUFDLElBQUk7S0FDaEM7SUFDRDtRQUNFLEVBQUUsRUFBRSxRQUFRO1FBQ1osS0FBSyxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDNUIsWUFBWSxFQUFFLFlBQVksQ0FBQyxLQUFLO0tBQ2pDO0lBQ0QsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7Q0FDM0MsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBbUM7SUFDN0QsT0FBTyxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUM7SUFDL0IsS0FBSyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDM0IsSUFBSSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFDekIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDM0IsTUFBTSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUM7SUFDN0IsTUFBTSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUM7Q0FDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2dldHRleHQnO1xuXG5jb25zdCB0b2RheURhdGUgPSBuZXcgRGF0ZSgpO1xuZXhwb3J0IGVudW0gVGltZVNwYW5Jbk1zIHtcbiAgJ01JTlVURScgPSAxMDAwICogNjAsXG4gICdIT1VSJyA9IDEwMDAgKiA2MCAqIDYwLFxuICAnREFZJyA9IDEwMDAgKiA2MCAqIDYwICogMjQsXG4gICdXRUVLJyA9IDEwMDAgKiA2MCAqIDYwICogMjQgKiA3LFxuICAnTU9OVEgnID0gdG9kYXlEYXRlLnZhbHVlT2YoKSAtIG5ldyBEYXRlKHRvZGF5RGF0ZS5zZXRNb250aCh0b2RheURhdGUuZ2V0TW9udGgoKSAtIDEpKS52YWx1ZU9mKClcbn1cblxuZXhwb3J0IHR5cGUgSW50ZXJ2YWwgPSB7XG4gIGlkOiAnbWludXRlcycgfCAnaG91cnMnIHwgJ2RheXMnIHwgJ3dlZWtzJyB8ICdtb250aHMnIHwgJ2N1c3RvbSc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHRpbWVzcGFuSW5Ncz86IG51bWJlcjtcbn07XG5cbmV4cG9ydCBjb25zdCBJTlRFUlZBTFM6IEludGVydmFsW10gPSBbXG4gIHtcbiAgICBpZDogJ21pbnV0ZXMnLFxuICAgIHRpdGxlOiBnZXR0ZXh0KCdMYXN0IG1pbnV0ZScpLFxuICAgIHRpbWVzcGFuSW5NczogVGltZVNwYW5Jbk1zLk1JTlVURVxuICB9LFxuICB7XG4gICAgaWQ6ICdob3VycycsXG4gICAgdGl0bGU6IGdldHRleHQoJ0xhc3QgaG91cicpLFxuICAgIHRpbWVzcGFuSW5NczogVGltZVNwYW5Jbk1zLkhPVVJcbiAgfSxcbiAge1xuICAgIGlkOiAnZGF5cycsXG4gICAgdGl0bGU6IGdldHRleHQoJ0xhc3QgZGF5JyksXG4gICAgdGltZXNwYW5Jbk1zOiBUaW1lU3BhbkluTXMuREFZXG4gIH0sXG4gIHtcbiAgICBpZDogJ3dlZWtzJyxcbiAgICB0aXRsZTogZ2V0dGV4dCgnTGFzdCB3ZWVrJyksXG4gICAgdGltZXNwYW5Jbk1zOiBUaW1lU3BhbkluTXMuV0VFS1xuICB9LFxuICB7XG4gICAgaWQ6ICdtb250aHMnLFxuICAgIHRpdGxlOiBnZXR0ZXh0KCdMYXN0IG1vbnRoJyksXG4gICAgdGltZXNwYW5Jbk1zOiBUaW1lU3BhbkluTXMuTU9OVEhcbiAgfSxcbiAgeyBpZDogJ2N1c3RvbScsIHRpdGxlOiBnZXR0ZXh0KCdDdXN0b20nKSB9XG5dO1xuXG5leHBvcnQgY29uc3QgSU5URVJWQUxfVElUTEVTOiBSZWNvcmQ8SW50ZXJ2YWxbJ2lkJ10sIHN0cmluZz4gPSB7XG4gIG1pbnV0ZXM6IGdldHRleHQoJ0xhc3QgbWludXRlJyksXG4gIGhvdXJzOiBnZXR0ZXh0KCdMYXN0IGhvdXInKSxcbiAgZGF5czogZ2V0dGV4dCgnTGFzdCBkYXknKSxcbiAgd2Vla3M6IGdldHRleHQoJ0xhc3Qgd2VlaycpLFxuICBtb250aHM6IGdldHRleHQoJ0xhc3QgbW9udGgnKSxcbiAgY3VzdG9tOiBnZXR0ZXh0KCdDdXN0b20nKVxufTtcbiJdfQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwtcGlja2VyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vaW50ZXJ2YWwtcGlja2VyL2ludGVydmFsLXBpY2tlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztBQUM3QixNQUFNLENBQU4sSUFBWSxZQU1YO0FBTkQsV0FBWSxZQUFZO0lBQ3RCLHVEQUFvQixDQUFBO0lBQ3BCLHFEQUF1QixDQUFBO0lBQ3ZCLG9EQUEyQixDQUFBO0lBQzNCLHVEQUFnQyxDQUFBO0lBQ2hDLHFDQUFVLFNBQVMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxXQUFBLENBQUE7QUFDbEcsQ0FBQyxFQU5XLFlBQVksS0FBWixZQUFZLFFBTXZCO0FBZ0JELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBZTtJQUNuQztRQUNFLEVBQUUsRUFBRSxTQUFTO1FBQ2IsS0FBSyxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDN0IsWUFBWSxFQUFFLFlBQVksQ0FBQyxNQUFNO0tBQ2xDO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsT0FBTztRQUNYLEtBQUssRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQzNCLFlBQVksRUFBRSxZQUFZLENBQUMsSUFBSTtLQUNoQztJQUNEO1FBQ0UsRUFBRSxFQUFFLE1BQU07UUFDVixLQUFLLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUMxQixZQUFZLEVBQUUsWUFBWSxDQUFDLEdBQUc7S0FDL0I7SUFDRDtRQUNFLEVBQUUsRUFBRSxPQUFPO1FBQ1gsS0FBSyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDM0IsWUFBWSxFQUFFLFlBQVksQ0FBQyxJQUFJO0tBQ2hDO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsUUFBUTtRQUNaLEtBQUssRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQzVCLFlBQVksRUFBRSxZQUFZLENBQUMsS0FBSztLQUNqQztJQUNELEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO0NBQzNDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQW1DO0lBQzdELE9BQU8sRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDO0lBQy9CLEtBQUssRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDO0lBQzNCLElBQUksRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDO0lBQ3pCLEtBQUssRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDO0lBQzNCLE1BQU0sRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDO0lBQzdCLE1BQU0sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDO0NBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9nZXR0ZXh0JztcblxuY29uc3QgdG9kYXlEYXRlID0gbmV3IERhdGUoKTtcbmV4cG9ydCBlbnVtIFRpbWVTcGFuSW5NcyB7XG4gICdNSU5VVEUnID0gMTAwMCAqIDYwLFxuICAnSE9VUicgPSAxMDAwICogNjAgKiA2MCxcbiAgJ0RBWScgPSAxMDAwICogNjAgKiA2MCAqIDI0LFxuICAnV0VFSycgPSAxMDAwICogNjAgKiA2MCAqIDI0ICogNyxcbiAgJ01PTlRIJyA9IHRvZGF5RGF0ZS52YWx1ZU9mKCkgLSBuZXcgRGF0ZSh0b2RheURhdGUuc2V0TW9udGgodG9kYXlEYXRlLmdldE1vbnRoKCkgLSAxKSkudmFsdWVPZigpXG59XG5cbmV4cG9ydCB0eXBlIEludGVydmFsID0ge1xuICBpZDogJ21pbnV0ZXMnIHwgJ2hvdXJzJyB8ICdkYXlzJyB8ICd3ZWVrcycgfCAnbW9udGhzJyB8ICdjdXN0b20nO1xuICB0aXRsZTogc3RyaW5nO1xuICB0aW1lc3BhbkluTXM/OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBBbGFybUZpbHRlckludGVydmFsID1cbiAgfCBJbnRlcnZhbFxuICB8IHtcbiAgICAgIGlkOiAnbm9uZSc7XG4gICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgdGltZXNwYW5Jbk1zPzogbnVtYmVyO1xuICAgIH07XG5cbmV4cG9ydCBjb25zdCBJTlRFUlZBTFM6IEludGVydmFsW10gPSBbXG4gIHtcbiAgICBpZDogJ21pbnV0ZXMnLFxuICAgIHRpdGxlOiBnZXR0ZXh0KCdMYXN0IG1pbnV0ZScpLFxuICAgIHRpbWVzcGFuSW5NczogVGltZVNwYW5Jbk1zLk1JTlVURVxuICB9LFxuICB7XG4gICAgaWQ6ICdob3VycycsXG4gICAgdGl0bGU6IGdldHRleHQoJ0xhc3QgaG91cicpLFxuICAgIHRpbWVzcGFuSW5NczogVGltZVNwYW5Jbk1zLkhPVVJcbiAgfSxcbiAge1xuICAgIGlkOiAnZGF5cycsXG4gICAgdGl0bGU6IGdldHRleHQoJ0xhc3QgZGF5JyksXG4gICAgdGltZXNwYW5Jbk1zOiBUaW1lU3BhbkluTXMuREFZXG4gIH0sXG4gIHtcbiAgICBpZDogJ3dlZWtzJyxcbiAgICB0aXRsZTogZ2V0dGV4dCgnTGFzdCB3ZWVrJyksXG4gICAgdGltZXNwYW5Jbk1zOiBUaW1lU3BhbkluTXMuV0VFS1xuICB9LFxuICB7XG4gICAgaWQ6ICdtb250aHMnLFxuICAgIHRpdGxlOiBnZXR0ZXh0KCdMYXN0IG1vbnRoJyksXG4gICAgdGltZXNwYW5Jbk1zOiBUaW1lU3BhbkluTXMuTU9OVEhcbiAgfSxcbiAgeyBpZDogJ2N1c3RvbScsIHRpdGxlOiBnZXR0ZXh0KCdDdXN0b20nKSB9XG5dO1xuXG5leHBvcnQgY29uc3QgSU5URVJWQUxfVElUTEVTOiBSZWNvcmQ8SW50ZXJ2YWxbJ2lkJ10sIHN0cmluZz4gPSB7XG4gIG1pbnV0ZXM6IGdldHRleHQoJ0xhc3QgbWludXRlJyksXG4gIGhvdXJzOiBnZXR0ZXh0KCdMYXN0IGhvdXInKSxcbiAgZGF5czogZ2V0dGV4dCgnTGFzdCBkYXknKSxcbiAgd2Vla3M6IGdldHRleHQoJ0xhc3Qgd2VlaycpLFxuICBtb250aHM6IGdldHRleHQoJ0xhc3QgbW9udGgnKSxcbiAgY3VzdG9tOiBnZXR0ZXh0KCdDdXN0b20nKVxufTtcbiJdfQ==
@@ -3,6 +3,10 @@ import { downgradeInjectable } from '@angular/upgrade/static';
3
3
  import { ApplicationService } from '@c8y/client';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@c8y/client";
6
+ /**
7
+ * @deprecated This service is deprecated and will be removed in a future version.
8
+ * Use the PluginsResolveService instead.
9
+ */
6
10
  export class Lwm2mPluginCheckerService {
7
11
  constructor(applicationService) {
8
12
  this.applicationService = applicationService;
@@ -21,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
21
25
  }]
22
26
  }], ctorParameters: () => [{ type: i1.ApplicationService }] });
23
27
  export const lwm2mPluginCheckerServiceDowngradedInjectable = downgradeInjectable(Lwm2mPluginCheckerService);
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWNoZWNrZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb3RvY29sLWx3bTJtL25nMS9wbHVnaW4tY2hlY2tlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7QUFLakQsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxZQUFvQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtJQUFHLENBQUM7SUFFOUQsS0FBSyxDQUFDLHNCQUFzQjtRQUMxQixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDN0UsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEtBQUssb0JBQW9CLENBQUMsQ0FBQztJQUM1RixDQUFDOzhHQU5VLHlCQUF5QjtrSEFBekIseUJBQXlCLGNBRnhCLE1BQU07OzJGQUVQLHlCQUF5QjtrQkFIckMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7O0FBVUQsTUFBTSxDQUFDLE1BQU0sNkNBQTZDLEdBQ3hELG1CQUFtQixDQUFDLHlCQUF5QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkb3duZ3JhZGVJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvdXBncmFkZS9zdGF0aWMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMd20ybVBsdWdpbkNoZWNrZXJTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcHBsaWNhdGlvblNlcnZpY2U6IEFwcGxpY2F0aW9uU2VydmljZSkge31cblxuICBhc3luYyBpc0x3bTJtUGx1Z2luSW5zdGFsbGVkKCkge1xuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UubGlzdEJ5TmFtZSgnbHdtMm0tdWktcGx1Z2luJyk7XG4gICAgcmV0dXJuIGRhdGEuc29tZSgoeyBtYW5pZmVzdCB9KSA9PiBtYW5pZmVzdD8uZXhwb3J0c1swXT8ubW9kdWxlID09PSAnTHdtMm1Nb2R1bGVXcmFwcGVyJyk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGx3bTJtUGx1Z2luQ2hlY2tlclNlcnZpY2VEb3duZ3JhZGVkSW5qZWN0YWJsZSA9XG4gIGRvd25ncmFkZUluamVjdGFibGUoTHdtMm1QbHVnaW5DaGVja2VyU2VydmljZSk7XG4iXX0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWNoZWNrZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb3RvY29sLWx3bTJtL25nMS9wbHVnaW4tY2hlY2tlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7QUFFakQ7OztHQUdHO0FBSUgsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxZQUFvQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtJQUFHLENBQUM7SUFFOUQsS0FBSyxDQUFDLHNCQUFzQjtRQUMxQixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDN0UsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEtBQUssb0JBQW9CLENBQUMsQ0FBQztJQUM1RixDQUFDOzhHQU5VLHlCQUF5QjtrSEFBekIseUJBQXlCLGNBRnhCLE1BQU07OzJGQUVQLHlCQUF5QjtrQkFIckMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7O0FBVUQsTUFBTSxDQUFDLE1BQU0sNkNBQTZDLEdBQ3hELG1CQUFtQixDQUFDLHlCQUF5QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkb3duZ3JhZGVJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvdXBncmFkZS9zdGF0aWMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFRoaXMgc2VydmljZSBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi5cbiAqIFVzZSB0aGUgUGx1Z2luc1Jlc29sdmVTZXJ2aWNlIGluc3RlYWQuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEx3bTJtUGx1Z2luQ2hlY2tlclNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwcGxpY2F0aW9uU2VydmljZTogQXBwbGljYXRpb25TZXJ2aWNlKSB7fVxuXG4gIGFzeW5jIGlzTHdtMm1QbHVnaW5JbnN0YWxsZWQoKSB7XG4gICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLmFwcGxpY2F0aW9uU2VydmljZS5saXN0QnlOYW1lKCdsd20ybS11aS1wbHVnaW4nKTtcbiAgICByZXR1cm4gZGF0YS5zb21lKCh7IG1hbmlmZXN0IH0pID0+IG1hbmlmZXN0Py5leHBvcnRzWzBdPy5tb2R1bGUgPT09ICdMd20ybU1vZHVsZVdyYXBwZXInKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgbHdtMm1QbHVnaW5DaGVja2VyU2VydmljZURvd25ncmFkZWRJbmplY3RhYmxlID1cbiAgZG93bmdyYWRlSW5qZWN0YWJsZShMd20ybVBsdWdpbkNoZWNrZXJTZXJ2aWNlKTtcbiJdfQ==
@@ -25,9 +25,10 @@ export const alarmListWidgetDefinition = {
25
25
  }
26
26
  },
27
27
  displaySettings: {
28
+ globalTimeContext: true,
28
29
  globalAutoRefreshContext: true
29
30
  }
30
31
  }
31
32
  };
32
33
  export const alarmListWidgetProviders = [hookWidget(alarmListWidgetDefinition)];
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi93aWRnZXRzL2RlZmluaXRpb25zL2FsYXJtcy9hbGFybS1saXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFekYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFM0UsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUc7SUFDdkMsRUFBRSxFQUFFLGdCQUFnQixDQUFDLFVBQVU7SUFDL0IsS0FBSyxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUM7SUFDNUIsV0FBVyxFQUFFLE9BQU8sQ0FBQyx5RUFBeUUsQ0FBQztJQUMvRixhQUFhLEVBQUUsR0FBRyxFQUFFLENBQ2xCLE1BQU0sQ0FBQyxvREFBb0QsQ0FBQyxDQUFDLElBQUksQ0FDL0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQ2hDO0lBQ0gsbUJBQW1CLEVBQUUsR0FBRyxFQUFFLENBQ3hCLE1BQU0sQ0FBQyxvREFBb0QsQ0FBQyxDQUFDLElBQUksQ0FDL0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsOEJBQThCLENBQ3RDO0lBQ0gsWUFBWSxFQUFFLCtDQUErQztJQUM3RCxhQUFhLEVBQUUsNkJBQTZCLENBQUMsYUFBYTtJQUMxRCxJQUFJLEVBQUU7UUFDSixRQUFRLEVBQUU7WUFDUixlQUFlLEVBQUUsSUFBSTtZQUNyQixZQUFZLEVBQUUsS0FBSztZQUNuQixjQUFjLEVBQUU7Z0JBQ2QsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsT0FBTyxFQUFFLENBQUM7YUFDWDtZQUNELEdBQUcsRUFBRTtnQkFDSCxPQUFPLEVBQUU7b0JBQ1AsY0FBYyxFQUFFLEtBQUs7b0JBQ3JCLGdCQUFnQixFQUFFLElBQUk7b0JBQ3RCLHVCQUF1QixFQUFFLElBQUk7aUJBQzlCO2FBQ0Y7U0FDRjtRQUNELGVBQWUsRUFBRTtZQUNmLHdCQUF3QixFQUFFLElBQUk7U0FDL0I7S0FDcUI7Q0FDUyxDQUFDO0FBRXBDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsVUFBVSxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRHluYW1pY1dpZGdldERlZmluaXRpb24gfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IGdldHRleHQsIGhvb2tXaWRnZXQsIER5bmFtaWNDb21wb25lbnRFcnJvclN0cmF0ZWd5IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRXaWRnZXRDb25maWcgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2NvbnRleHQtZGFzaGJvYXJkJztcbmltcG9ydCB7IGRlZmF1bHRXaWRnZXRJZHMgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3dpZGdldHMvZGVmaW5pdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgYWxhcm1MaXN0V2lkZ2V0RGVmaW5pdGlvbiA9IHtcbiAgaWQ6IGRlZmF1bHRXaWRnZXRJZHMuQUxBUk1fTElTVCxcbiAgbGFiZWw6IGdldHRleHQoJ0FsYXJtIGxpc3QnKSxcbiAgZGVzY3JpcHRpb246IGdldHRleHQoYERpc3BsYXlzIGEgbGlzdCBvZiBhbGFybXMgZmlsdGVyZWQgYnkgb2JqZWN0LCBzZXZlcml0eSwgc3RhdHVzIGFuZCBkYXRlYCksXG4gIGxvYWRDb21wb25lbnQ6ICgpID0+XG4gICAgaW1wb3J0KCdAYzh5L25neC1jb21wb25lbnRzL3dpZGdldHMvaW1wbGVtZW50YXRpb25zL2FsYXJtcycpLnRoZW4oXG4gICAgICBtID0+IG0uQWxhcm1MaXN0V2lkZ2V0Q29tcG9uZW50XG4gICAgKSxcbiAgbG9hZENvbmZpZ0NvbXBvbmVudDogKCkgPT5cbiAgICBpbXBvcnQoJ0BjOHkvbmd4LWNvbXBvbmVudHMvd2lkZ2V0cy9pbXBsZW1lbnRhdGlvbnMvYWxhcm1zJykudGhlbihcbiAgICAgIG0gPT4gbS5BbGFybUxpc3RXaWRnZXRDb25maWdDb21wb25lbnRcbiAgICApLFxuICBwcmV2aWV3SW1hZ2U6ICdjOHktc3R5bGUtYXNzZXRzL2FsYXJtcy9hbGFybS1saXN0LXdpZGdldC5wbmcnLFxuICBlcnJvclN0cmF0ZWd5OiBEeW5hbWljQ29tcG9uZW50RXJyb3JTdHJhdGVneS5PVkVSTEFZX0VSUk9SLFxuICBkYXRhOiB7XG4gICAgc2V0dGluZ3M6IHtcbiAgICAgIGFsYXJtTGlzdFdpZGdldDogdHJ1ZSxcbiAgICAgIG5vTmV3V2lkZ2V0czogZmFsc2UsXG4gICAgICB3aWRnZXREZWZhdWx0czoge1xuICAgICAgICBfd2lkdGg6IDgsXG4gICAgICAgIF9oZWlnaHQ6IDRcbiAgICAgIH0sXG4gICAgICBuZzE6IHtcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIG5vRGV2aWNlVGFyZ2V0OiBmYWxzZSxcbiAgICAgICAgICBncm91cHNTZWxlY3RhYmxlOiB0cnVlLFxuICAgICAgICAgIGRldmljZVRhcmdldE5vdFJlcXVpcmVkOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIGRpc3BsYXlTZXR0aW5nczoge1xuICAgICAgZ2xvYmFsQXV0b1JlZnJlc2hDb250ZXh0OiB0cnVlXG4gICAgfVxuICB9IGFzIENvbnRleHRXaWRnZXRDb25maWdcbn0gc2F0aXNmaWVzIER5bmFtaWNXaWRnZXREZWZpbml0aW9uO1xuXG5leHBvcnQgY29uc3QgYWxhcm1MaXN0V2lkZ2V0UHJvdmlkZXJzID0gW2hvb2tXaWRnZXQoYWxhcm1MaXN0V2lkZ2V0RGVmaW5pdGlvbildO1xuIl19
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi93aWRnZXRzL2RlZmluaXRpb25zL2FsYXJtcy9hbGFybS1saXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFekYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFM0UsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUc7SUFDdkMsRUFBRSxFQUFFLGdCQUFnQixDQUFDLFVBQVU7SUFDL0IsS0FBSyxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUM7SUFDNUIsV0FBVyxFQUFFLE9BQU8sQ0FBQyx5RUFBeUUsQ0FBQztJQUMvRixhQUFhLEVBQUUsR0FBRyxFQUFFLENBQ2xCLE1BQU0sQ0FBQyxvREFBb0QsQ0FBQyxDQUFDLElBQUksQ0FDL0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQ2hDO0lBQ0gsbUJBQW1CLEVBQUUsR0FBRyxFQUFFLENBQ3hCLE1BQU0sQ0FBQyxvREFBb0QsQ0FBQyxDQUFDLElBQUksQ0FDL0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsOEJBQThCLENBQ3RDO0lBQ0gsWUFBWSxFQUFFLCtDQUErQztJQUM3RCxhQUFhLEVBQUUsNkJBQTZCLENBQUMsYUFBYTtJQUMxRCxJQUFJLEVBQUU7UUFDSixRQUFRLEVBQUU7WUFDUixlQUFlLEVBQUUsSUFBSTtZQUNyQixZQUFZLEVBQUUsS0FBSztZQUNuQixjQUFjLEVBQUU7Z0JBQ2QsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsT0FBTyxFQUFFLENBQUM7YUFDWDtZQUNELEdBQUcsRUFBRTtnQkFDSCxPQUFPLEVBQUU7b0JBQ1AsY0FBYyxFQUFFLEtBQUs7b0JBQ3JCLGdCQUFnQixFQUFFLElBQUk7b0JBQ3RCLHVCQUF1QixFQUFFLElBQUk7aUJBQzlCO2FBQ0Y7U0FDRjtRQUNELGVBQWUsRUFBRTtZQUNmLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsd0JBQXdCLEVBQUUsSUFBSTtTQUMvQjtLQUNxQjtDQUNTLENBQUM7QUFFcEMsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxVQUFVLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEeW5hbWljV2lkZ2V0RGVmaW5pdGlvbiB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgZ2V0dGV4dCwgaG9va1dpZGdldCwgRHluYW1pY0NvbXBvbmVudEVycm9yU3RyYXRlZ3kgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgQ29udGV4dFdpZGdldENvbmZpZyB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvY29udGV4dC1kYXNoYm9hcmQnO1xuaW1wb3J0IHsgZGVmYXVsdFdpZGdldElkcyB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvd2lkZ2V0cy9kZWZpbml0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBhbGFybUxpc3RXaWRnZXREZWZpbml0aW9uID0ge1xuICBpZDogZGVmYXVsdFdpZGdldElkcy5BTEFSTV9MSVNULFxuICBsYWJlbDogZ2V0dGV4dCgnQWxhcm0gbGlzdCcpLFxuICBkZXNjcmlwdGlvbjogZ2V0dGV4dChgRGlzcGxheXMgYSBsaXN0IG9mIGFsYXJtcyBmaWx0ZXJlZCBieSBvYmplY3QsIHNldmVyaXR5LCBzdGF0dXMgYW5kIGRhdGVgKSxcbiAgbG9hZENvbXBvbmVudDogKCkgPT5cbiAgICBpbXBvcnQoJ0BjOHkvbmd4LWNvbXBvbmVudHMvd2lkZ2V0cy9pbXBsZW1lbnRhdGlvbnMvYWxhcm1zJykudGhlbihcbiAgICAgIG0gPT4gbS5BbGFybUxpc3RXaWRnZXRDb21wb25lbnRcbiAgICApLFxuICBsb2FkQ29uZmlnQ29tcG9uZW50OiAoKSA9PlxuICAgIGltcG9ydCgnQGM4eS9uZ3gtY29tcG9uZW50cy93aWRnZXRzL2ltcGxlbWVudGF0aW9ucy9hbGFybXMnKS50aGVuKFxuICAgICAgbSA9PiBtLkFsYXJtTGlzdFdpZGdldENvbmZpZ0NvbXBvbmVudFxuICAgICksXG4gIHByZXZpZXdJbWFnZTogJ2M4eS1zdHlsZS1hc3NldHMvYWxhcm1zL2FsYXJtLWxpc3Qtd2lkZ2V0LnBuZycsXG4gIGVycm9yU3RyYXRlZ3k6IER5bmFtaWNDb21wb25lbnRFcnJvclN0cmF0ZWd5Lk9WRVJMQVlfRVJST1IsXG4gIGRhdGE6IHtcbiAgICBzZXR0aW5nczoge1xuICAgICAgYWxhcm1MaXN0V2lkZ2V0OiB0cnVlLFxuICAgICAgbm9OZXdXaWRnZXRzOiBmYWxzZSxcbiAgICAgIHdpZGdldERlZmF1bHRzOiB7XG4gICAgICAgIF93aWR0aDogOCxcbiAgICAgICAgX2hlaWdodDogNFxuICAgICAgfSxcbiAgICAgIG5nMToge1xuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgbm9EZXZpY2VUYXJnZXQ6IGZhbHNlLFxuICAgICAgICAgIGdyb3Vwc1NlbGVjdGFibGU6IHRydWUsXG4gICAgICAgICAgZGV2aWNlVGFyZ2V0Tm90UmVxdWlyZWQ6IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgZGlzcGxheVNldHRpbmdzOiB7XG4gICAgICBnbG9iYWxUaW1lQ29udGV4dDogdHJ1ZSxcbiAgICAgIGdsb2JhbEF1dG9SZWZyZXNoQ29udGV4dDogdHJ1ZVxuICAgIH1cbiAgfSBhcyBDb250ZXh0V2lkZ2V0Q29uZmlnXG59IHNhdGlzZmllcyBEeW5hbWljV2lkZ2V0RGVmaW5pdGlvbjtcblxuZXhwb3J0IGNvbnN0IGFsYXJtTGlzdFdpZGdldFByb3ZpZGVycyA9IFtob29rV2lkZ2V0KGFsYXJtTGlzdFdpZGdldERlZmluaXRpb24pXTtcbiJdfQ==