@mediusinc/mng-commons 5.0.0-rc.2 → 5.0.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/core/data-providers/base-data-provider.factory.d.ts +13 -0
  2. package/core/data-providers/base.data-provider.d.ts +2 -14
  3. package/core/descriptors/editor.descriptor.d.ts +1 -1
  4. package/core/descriptors/tableview.descriptor.d.ts +5 -5
  5. package/core/directives/component.directive.d.ts +2 -2
  6. package/core/index.d.ts +1 -0
  7. package/core/security/permission.service.d.ts +1 -0
  8. package/core/services/commons-router.service.d.ts +3 -3
  9. package/core/services/commons.service.d.ts +31 -42
  10. package/core/services/tokens/module-config.token.d.ts +2 -2
  11. package/esm2022/core/components/notification/notification-wrapper.component.mjs +3 -3
  12. package/esm2022/core/components/pages/error/error.page.component.mjs +3 -3
  13. package/esm2022/core/components/pages/not-found/not-found.page.component.mjs +3 -3
  14. package/esm2022/core/data-providers/base-data-provider.factory.mjs +28 -0
  15. package/esm2022/core/data-providers/base.data-provider.mjs +1 -31
  16. package/esm2022/core/descriptors/editor.descriptor.mjs +1 -1
  17. package/esm2022/core/descriptors/tableview.descriptor.mjs +1 -1
  18. package/esm2022/core/directives/component.directive.mjs +10 -7
  19. package/esm2022/core/index.mjs +2 -1
  20. package/esm2022/core/security/permission.service.mjs +4 -2
  21. package/esm2022/core/services/commons-init.service.mjs +2 -2
  22. package/esm2022/core/services/commons-router.service.mjs +16 -15
  23. package/esm2022/core/services/commons.service.mjs +109 -166
  24. package/esm2022/core/services/tokens/module-config.token.mjs +1 -1
  25. package/esm2022/filter/descriptors/filter-lookup.descriptor.mjs +4 -4
  26. package/esm2022/form/api/data-providers/lookup-data-provider.factory.mjs +31 -0
  27. package/esm2022/form/api/data-providers/lookup.data-provider.mjs +1 -31
  28. package/esm2022/form/api/index.mjs +2 -1
  29. package/esm2022/form/components/autocomplete/autocomplete.component.mjs +92 -83
  30. package/esm2022/form/components/dropdown/dropdown.component.mjs +145 -87
  31. package/esm2022/model/data-providers/base-from-type-data-provider.factory.mjs +8 -0
  32. package/esm2022/model/descriptors/enum.descriptor.mjs +3 -6
  33. package/esm2022/model/descriptors/model.descriptor.mjs +22 -9
  34. package/esm2022/model/descriptors/type.descriptor.mjs +3 -9
  35. package/esm2022/model/index.mjs +3 -1
  36. package/esm2022/table/api/data-providers/table-data-provider.factory.mjs +33 -0
  37. package/esm2022/table/api/data-providers/table.data-provider.mjs +1 -31
  38. package/esm2022/table/api/descriptors/sort.descriptor.mjs +2 -2
  39. package/esm2022/table/api/descriptors/table-descriptor.factory.mjs +89 -0
  40. package/esm2022/table/api/descriptors/table.descriptor.mjs +4 -139
  41. package/esm2022/table/api/helpers/table-descriptor-helpers.mjs +97 -0
  42. package/esm2022/table/api/index.mjs +4 -1
  43. package/esm2022/table/components/column-filter-full/column-filter-full.component.mjs +6 -7
  44. package/esm2022/table/components/column-value/column-value.component.mjs +2 -2
  45. package/esm2022/table/components/table/table.component.mjs +5 -5
  46. package/esm2022/table/pipes/locale-default-row-class.pipe.mjs +2 -2
  47. package/esm2022/table/services/data-list.service.mjs +1 -1
  48. package/esm2022/tableview/action/components/action/action.component.mjs +140 -188
  49. package/esm2022/tableview/action/components/editor/action-editor.component.mjs +56 -66
  50. package/esm2022/tableview/action/components/editor/injector-context/action-editor-injector-context.component.mjs +119 -141
  51. package/esm2022/tableview/action/components/localization/data-language-dropdown.component.mjs +21 -39
  52. package/esm2022/tableview/action/components/route/action-route.component.mjs +17 -23
  53. package/esm2022/tableview/action/components/table/action-table.component.mjs +1 -1
  54. package/esm2022/tableview/action/services/action-executor.service.mjs +9 -9
  55. package/esm2022/tableview/action/services/navigation.service.mjs +3 -2
  56. package/esm2022/tableview/action/services/view-container.service.mjs +5 -21
  57. package/esm2022/tableview/api/action/descriptors/action-descriptor.factory.mjs +119 -0
  58. package/esm2022/tableview/api/action/descriptors/action-editor-descriptor.factory.mjs +77 -0
  59. package/esm2022/tableview/api/action/descriptors/action-editor.descriptor.mjs +20 -80
  60. package/esm2022/tableview/api/action/descriptors/action-link-descriptor.factory.mjs +45 -0
  61. package/esm2022/tableview/api/action/descriptors/action-link.descriptor.mjs +1 -32
  62. package/esm2022/tableview/api/action/descriptors/action.descriptor.mjs +3 -69
  63. package/esm2022/tableview/api/action/models/action-component.model.mjs +1 -1
  64. package/esm2022/tableview/api/action/models/execution/view-container.model.mjs +1 -1
  65. package/esm2022/tableview/api/editor/data-providers/editor-data-provider.factory.mjs +33 -0
  66. package/esm2022/tableview/api/editor/data-providers/editor.data-provider.mjs +1 -31
  67. package/esm2022/tableview/api/editor/descriptors/editor-descriptor.factory.mjs +81 -0
  68. package/esm2022/tableview/api/editor/descriptors/editor.descriptor.mjs +7 -133
  69. package/esm2022/tableview/api/editor/descriptors/field-action.descriptor.mjs +1 -1
  70. package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +13 -5
  71. package/esm2022/tableview/api/editor/descriptors/field-group.descriptor.mjs +1 -1
  72. package/esm2022/tableview/api/editor/descriptors/field-lookup.descriptor.mjs +4 -4
  73. package/esm2022/tableview/api/editor/descriptors/field-many.descriptor.mjs +3 -3
  74. package/esm2022/tableview/api/editor/descriptors/field-validation.descriptor.mjs +1 -1
  75. package/esm2022/tableview/api/editor/descriptors/field.descriptor.mjs +1 -1
  76. package/esm2022/tableview/api/editor/helpers/editor-descriptor-helpers.mjs +95 -0
  77. package/esm2022/tableview/api/editor/helpers/field-validators.mjs +7 -7
  78. package/esm2022/tableview/api/editor/models/editor-fields.model.mjs +1 -1
  79. package/esm2022/tableview/api/editor/models/field-action-context.model.mjs +1 -1
  80. package/esm2022/tableview/api/editor/models/field-validation.model.mjs +2 -0
  81. package/esm2022/tableview/api/editor/models/field.model.mjs +1 -1
  82. package/esm2022/tableview/api/editor/models/form-editor.event.mjs +1 -1
  83. package/esm2022/tableview/api/editor/models/form-editor.interface.mjs +1 -1
  84. package/esm2022/tableview/api/editor/models/formly-field.model.mjs +1 -1
  85. package/esm2022/tableview/api/index.mjs +11 -1
  86. package/esm2022/tableview/api/tableview/data-providers/tableview-data-provider.factory.mjs +47 -0
  87. package/esm2022/tableview/api/tableview/data-providers/tableview.data-provider.mjs +5 -46
  88. package/esm2022/tableview/api/tableview/descriptors/tableview-descriptor.factory.mjs +111 -0
  89. package/esm2022/tableview/api/tableview/descriptors/tableview.descriptor.mjs +15 -168
  90. package/esm2022/tableview/api/tableview/helpers/files-export.mjs +2 -2
  91. package/esm2022/tableview/api/tableview/helpers/tableview-create.mjs +5 -5
  92. package/esm2022/tableview/api/tableview/helpers/tableview-default-actions.mjs +53 -18
  93. package/esm2022/tableview/api/tableview/helpers/tableview-descriptor-helpers.mjs +110 -0
  94. package/esm2022/tableview/api/tableview/helpers/tableview-input-builder.mjs +2 -2
  95. package/esm2022/tableview/editor/components/editor/form-editor.component.mjs +16 -11
  96. package/esm2022/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.mjs +6 -2
  97. package/esm2022/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +10 -11
  98. package/esm2022/tableview/editor/components/formly/fields/formly-field-custom/formly-field-custom.component.mjs +1 -1
  99. package/esm2022/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.mjs +4 -4
  100. package/esm2022/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +9 -11
  101. package/esm2022/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.mjs +4 -4
  102. package/esm2022/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +16 -18
  103. package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +20 -22
  104. package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +18 -20
  105. package/esm2022/tableview/editor/helpers/editor-formly.mjs +27 -6
  106. package/esm2022/tableview/editor/services/form-editor.service.mjs +96 -0
  107. package/esm2022/tableview/index.mjs +2 -1
  108. package/esm2022/tableview/tableview/components/tableview/tableview.component.mjs +3 -3
  109. package/fesm2022/mediusinc-mng-commons-core.mjs +155 -210
  110. package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
  111. package/fesm2022/mediusinc-mng-commons-filter.mjs +3 -3
  112. package/fesm2022/mediusinc-mng-commons-filter.mjs.map +1 -1
  113. package/fesm2022/mediusinc-mng-commons-form-api.mjs +18 -18
  114. package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
  115. package/fesm2022/mediusinc-mng-commons-form.mjs +236 -169
  116. package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
  117. package/fesm2022/mediusinc-mng-commons-model.mjs +43 -33
  118. package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
  119. package/fesm2022/mediusinc-mng-commons-table-api.mjs +192 -146
  120. package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
  121. package/fesm2022/mediusinc-mng-commons-table.mjs +11 -12
  122. package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
  123. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +822 -590
  124. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
  125. package/fesm2022/mediusinc-mng-commons-tableview.mjs +564 -571
  126. package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
  127. package/form/api/data-providers/lookup-data-provider.factory.d.ts +18 -0
  128. package/form/api/data-providers/lookup.data-provider.d.ts +2 -14
  129. package/form/api/index.d.ts +1 -0
  130. package/form/components/autocomplete/autocomplete.component.d.ts +31 -23
  131. package/form/components/dropdown/dropdown.component.d.ts +38 -25
  132. package/model/data-providers/base-from-type-data-provider.factory.d.ts +8 -0
  133. package/model/descriptors/enum.descriptor.d.ts +1 -2
  134. package/model/descriptors/model.descriptor.d.ts +11 -4
  135. package/model/descriptors/type.descriptor.d.ts +2 -4
  136. package/model/index.d.ts +1 -0
  137. package/package.json +1 -1
  138. package/table/api/data-providers/table-data-provider.factory.d.ts +18 -0
  139. package/table/api/data-providers/table.data-provider.d.ts +2 -14
  140. package/table/api/descriptors/table-descriptor.factory.d.ts +44 -0
  141. package/table/api/descriptors/table.descriptor.d.ts +4 -65
  142. package/table/api/helpers/table-descriptor-helpers.d.ts +44 -0
  143. package/table/api/index.d.ts +3 -0
  144. package/table/components/column-filter-full/column-filter-full.component.d.ts +5 -4
  145. package/table/components/table/table.component.d.ts +11 -11
  146. package/table/services/data-list.service.d.ts +9 -10
  147. package/tableview/action/components/action/action.component.d.ts +37 -44
  148. package/tableview/action/components/editor/action-editor.component.d.ts +20 -18
  149. package/tableview/action/components/editor/injector-context/action-editor-injector-context.component.d.ts +23 -23
  150. package/tableview/action/components/localization/data-language-dropdown.component.d.ts +11 -14
  151. package/tableview/action/components/route/action-route.component.d.ts +6 -11
  152. package/tableview/action/components/table/action-table.component.d.ts +3 -3
  153. package/tableview/action/services/view-container.service.d.ts +3 -9
  154. package/tableview/api/action/descriptors/action-descriptor.factory.d.ts +36 -0
  155. package/tableview/api/action/descriptors/action-editor-descriptor.factory.d.ts +31 -0
  156. package/tableview/api/action/descriptors/action-editor.descriptor.d.ts +17 -37
  157. package/tableview/api/action/descriptors/action-link-descriptor.factory.d.ts +15 -0
  158. package/tableview/api/action/descriptors/action-link.descriptor.d.ts +1 -9
  159. package/tableview/api/action/descriptors/action.descriptor.d.ts +4 -27
  160. package/tableview/api/action/models/action-component.model.d.ts +8 -8
  161. package/tableview/api/action/models/execution/view-container.model.d.ts +4 -3
  162. package/tableview/api/editor/data-providers/editor-data-provider.factory.d.ts +18 -0
  163. package/tableview/api/editor/data-providers/editor.data-provider.d.ts +2 -14
  164. package/tableview/api/editor/descriptors/editor-descriptor.factory.d.ts +44 -0
  165. package/tableview/api/editor/descriptors/editor.descriptor.d.ts +34 -90
  166. package/tableview/api/editor/descriptors/field-action.descriptor.d.ts +3 -3
  167. package/tableview/api/editor/descriptors/field-base.descriptor.d.ts +15 -13
  168. package/tableview/api/editor/descriptors/field-group.descriptor.d.ts +7 -6
  169. package/tableview/api/editor/descriptors/field-lookup.descriptor.d.ts +2 -2
  170. package/tableview/api/editor/descriptors/field-many.descriptor.d.ts +8 -8
  171. package/tableview/api/editor/descriptors/field-validation.descriptor.d.ts +6 -6
  172. package/tableview/api/editor/descriptors/field.descriptor.d.ts +1 -1
  173. package/tableview/api/editor/helpers/editor-descriptor-helpers.d.ts +43 -0
  174. package/tableview/api/editor/helpers/field-validators.d.ts +1 -1
  175. package/tableview/api/editor/models/editor-fields.model.d.ts +24 -22
  176. package/tableview/api/editor/models/field-action-context.model.d.ts +10 -8
  177. package/tableview/api/editor/models/field-validation.model.d.ts +26 -0
  178. package/tableview/api/editor/models/field.model.d.ts +0 -19
  179. package/tableview/api/editor/models/form-editor.event.d.ts +24 -16
  180. package/tableview/api/editor/models/form-editor.interface.d.ts +2 -1
  181. package/tableview/api/editor/models/formly-custom-field.model.d.ts +1 -1
  182. package/tableview/api/editor/models/formly-field.model.d.ts +4 -4
  183. package/tableview/api/index.d.ts +10 -0
  184. package/tableview/api/tableview/data-providers/tableview-data-provider.factory.d.ts +25 -0
  185. package/tableview/api/tableview/data-providers/tableview.data-provider.d.ts +3 -20
  186. package/tableview/api/tableview/descriptors/tableview-descriptor.factory.d.ts +49 -0
  187. package/tableview/api/tableview/descriptors/tableview.descriptor.d.ts +40 -100
  188. package/tableview/api/tableview/helpers/tableview-create.d.ts +2 -2
  189. package/tableview/api/tableview/helpers/tableview-default-actions.d.ts +4 -2
  190. package/tableview/api/tableview/helpers/tableview-descriptor-helpers.d.ts +42 -0
  191. package/tableview/api/tableview/helpers/tableview-input-builder.d.ts +1 -1
  192. package/tableview/editor/components/editor/form-editor.component.d.ts +6 -4
  193. package/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.d.ts +5 -3
  194. package/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +1 -0
  195. package/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +1 -1
  196. package/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +1 -1
  197. package/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +3 -4
  198. package/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +3 -4
  199. package/tableview/editor/helpers/editor-formly.d.ts +1 -1
  200. package/tableview/editor/services/form-editor.service.d.ts +39 -0
  201. package/tableview/index.d.ts +1 -0
  202. package/tableview/tableview/components/route/tableview-route.component.d.ts +1 -1
  203. package/tableview/tableview/components/tableview/tableview.component.d.ts +1 -1
  204. package/version-info.json +4 -4
@@ -1,4 +1,4 @@
1
- import { ApplicationRef, Directive, ElementRef, EventEmitter, InjectionToken, Injector, Input, Output, Type, ViewContainerRef, createComponent, inject } from '@angular/core';
1
+ import { ApplicationRef, Directive, ElementRef, EnvironmentInjector, EventEmitter, InjectionToken, Injector, Input, Output, Type, ViewContainerRef, createComponent, inject } from '@angular/core';
2
2
  import { CommonsInternalError } from '../error/error.model';
3
3
  import * as i0 from "@angular/core";
4
4
  export class ComponentDirective {
@@ -21,17 +21,20 @@ export class ComponentDirective {
21
21
  if (!component) {
22
22
  throw new CommonsInternalError(`Component cannot be created, no component (${this.component}) or no or invalid injection token provided (${this.componentIt}).`);
23
23
  }
24
+ const elementInjector = this.parentInjector ?? this.injector;
25
+ const environmentInjector = elementInjector.get(EnvironmentInjector, null, { optional: true }) ?? this.applicationRef.injector;
24
26
  if (this.attachToHost) {
25
27
  this.componentRef = createComponent(component, {
26
28
  hostElement: this.elementRef.nativeElement,
27
- environmentInjector: this.applicationRef.injector,
28
- elementInjector: this.nodeInjector ?? this.injector
29
+ environmentInjector: environmentInjector,
30
+ elementInjector: elementInjector
29
31
  });
30
32
  }
31
33
  else {
32
34
  this.viewContainerRef.clear();
33
35
  this.componentRef = this.viewContainerRef.createComponent(component, {
34
- injector: this.nodeInjector ?? undefined
36
+ environmentInjector: environmentInjector,
37
+ injector: elementInjector
35
38
  });
36
39
  }
37
40
  if (this.inputs) {
@@ -45,7 +48,7 @@ export class ComponentDirective {
45
48
  this.componentInstanceEventEmitter.next(this.componentRef.instance);
46
49
  }
47
50
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ComponentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
48
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.4", type: ComponentDirective, isStandalone: true, selector: "[mngComponent]", inputs: { component: ["mngComponent", "component"], componentIt: ["injectionToken", "componentIt"], inputs: "inputs", attachToHost: "attachToHost", nodeInjector: "nodeInjector" }, outputs: { componentInstanceEventEmitter: "instanceCreated" }, ngImport: i0 }); }
51
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.4", type: ComponentDirective, isStandalone: true, selector: "[mngComponent]", inputs: { component: ["mngComponent", "component"], componentIt: ["injectionToken", "componentIt"], inputs: "inputs", attachToHost: "attachToHost", parentInjector: "parentInjector" }, outputs: { componentInstanceEventEmitter: "instanceCreated" }, ngImport: i0 }); }
49
52
  }
50
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ComponentDirective, decorators: [{
51
54
  type: Directive,
@@ -63,10 +66,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
63
66
  type: Input
64
67
  }], attachToHost: [{
65
68
  type: Input
66
- }], nodeInjector: [{
69
+ }], parentInjector: [{
67
70
  type: Input
68
71
  }], componentInstanceEventEmitter: [{
69
72
  type: Output,
70
73
  args: ['instanceCreated']
71
74
  }] } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc3JjL2RpcmVjdGl2ZXMvY29tcG9uZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsY0FBYyxFQUVkLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLGNBQWMsRUFDZCxRQUFRLEVBQ1IsS0FBSyxFQUVMLE1BQU0sRUFDTixJQUFJLEVBQ0osZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7O0FBTTFELE1BQU0sT0FBTyxrQkFBa0I7SUFKL0I7UUFLcUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBS3BELGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRUssa0NBQTZCLEdBQUcsSUFBSSxZQUFZLEVBQUssQ0FBQztLQXlDNUY7SUFyQ0csUUFBUTtRQUNKLElBQUksU0FBUyxHQUFtQixJQUFJLENBQUM7UUFDckMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDL0IsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzFCLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksb0JBQW9CLENBQUMsOENBQThDLElBQUksQ0FBQyxTQUFTLGdEQUFnRCxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQztRQUNySyxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxlQUFlLENBQUMsU0FBUyxFQUFFO2dCQUMzQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhO2dCQUMxQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVE7Z0JBQ2pELGVBQWUsRUFBRSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxRQUFRO2FBQ3RELENBQUMsQ0FBQztRQUNQLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBTSxTQUFTLEVBQUU7Z0JBQ3RFLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxJQUFJLFNBQVM7YUFDM0MsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2QsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDMUQsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFFRCxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEUsQ0FBQzs4R0FuRFEsa0JBQWtCO2tHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBSjlCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzdCOzhCQU9tQyxTQUFTO3NCQUF4QyxLQUFLO3VCQUFDLEVBQUMsS0FBSyxFQUFFLGNBQWMsRUFBQztnQkFDSSxXQUFXO3NCQUE1QyxLQUFLO3VCQUFDLEVBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFDO2dCQUN2QixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUM2Qiw2QkFBNkI7c0JBQS9ELE1BQU07dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBcHBsaWNhdGlvblJlZixcbiAgICBDb21wb25lbnRSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVHlwZSxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIGNyZWF0ZUNvbXBvbmVudCxcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7Q29tbW9uc0ludGVybmFsRXJyb3J9IGZyb20gJy4uL2Vycm9yL2Vycm9yLm1vZGVsJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1ttbmdDb21wb25lbnRdJ1xufSlcbmV4cG9ydCBjbGFzcyBDb21wb25lbnREaXJlY3RpdmU8Qz4gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcGxpY2F0aW9uUmVmID0gaW5qZWN0KEFwcGxpY2F0aW9uUmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cbiAgICBASW5wdXQoe2FsaWFzOiAnbW5nQ29tcG9uZW50J30pIGNvbXBvbmVudD86IFR5cGU8Qz47XG4gICAgQElucHV0KHthbGlhczogJ2luamVjdGlvblRva2VuJ30pIGNvbXBvbmVudEl0PzogSW5qZWN0aW9uVG9rZW48VHlwZTxDPj47XG4gICAgQElucHV0KCkgaW5wdXRzPzoge1trZXk6IHN0cmluZ106IGFueX07XG4gICAgQElucHV0KCkgYXR0YWNoVG9Ib3N0ID0gZmFsc2U7XG4gICAgQElucHV0KCkgbm9kZUluamVjdG9yPzogSW5qZWN0b3I7XG4gICAgQE91dHB1dCgnaW5zdGFuY2VDcmVhdGVkJykgcHJpdmF0ZSBjb21wb25lbnRJbnN0YW5jZUV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8Qz4oKTtcblxuICAgIHB1YmxpYyBjb21wb25lbnRSZWYhOiBDb21wb25lbnRSZWY8Qz47XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgbGV0IGNvbXBvbmVudDogVHlwZTxDPiB8IG51bGwgPSBudWxsO1xuICAgICAgICBpZiAodGhpcy5jb21wb25lbnQpIHtcbiAgICAgICAgICAgIGNvbXBvbmVudCA9IHRoaXMuY29tcG9uZW50O1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY29tcG9uZW50SXQpIHtcbiAgICAgICAgICAgIGNvbXBvbmVudCA9IHRoaXMuaW5qZWN0b3IuZ2V0KHRoaXMuY29tcG9uZW50SXQsIG51bGwsIHtvcHRpb25hbDogdHJ1ZX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcihgQ29tcG9uZW50IGNhbm5vdCBiZSBjcmVhdGVkLCBubyBjb21wb25lbnQgKCR7dGhpcy5jb21wb25lbnR9KSBvciBubyBvciBpbnZhbGlkIGluamVjdGlvbiB0b2tlbiBwcm92aWRlZCAoJHt0aGlzLmNvbXBvbmVudEl0fSkuYCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hdHRhY2hUb0hvc3QpIHtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgIGhvc3RFbGVtZW50OiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICBlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLmFwcGxpY2F0aW9uUmVmLmluamVjdG9yLFxuICAgICAgICAgICAgICAgIGVsZW1lbnRJbmplY3RvcjogdGhpcy5ub2RlSW5qZWN0b3IgPz8gdGhpcy5pbmplY3RvclxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudDxhbnk+KGNvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgIGluamVjdG9yOiB0aGlzLm5vZGVJbmplY3RvciA/PyB1bmRlZmluZWRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaW5wdXRzKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGlucHV0IGluIHRoaXMuaW5wdXRzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuc2V0SW5wdXQoaW5wdXQsIHRoaXMuaW5wdXRzW2lucHV0XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hdHRhY2hUb0hvc3QpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbGljYXRpb25SZWYuYXR0YWNoVmlldyh0aGlzLmNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbXBvbmVudEluc3RhbmNlRXZlbnRFbWl0dGVyLm5leHQodGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpO1xuICAgIH1cbn1cbiJdfQ==
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc3JjL2RpcmVjdGl2ZXMvY29tcG9uZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsY0FBYyxFQUVkLFNBQVMsRUFDVCxVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLFlBQVksRUFDWixjQUFjLEVBQ2QsUUFBUSxFQUNSLEtBQUssRUFFTCxNQUFNLEVBQ04sSUFBSSxFQUNKLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDOztBQU0xRCxNQUFNLE9BQU8sa0JBQWtCO0lBSi9CO1FBS3FCLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4QyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUtwRCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVLLGtDQUE2QixHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7S0E2QzVGO0lBekNHLFFBQVE7UUFDSixJQUFJLFNBQVMsR0FBbUIsSUFBSSxDQUFDO1FBQ3JDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQy9CLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMxQixTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUM1RSxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLG9CQUFvQixDQUFDLDhDQUE4QyxJQUFJLENBQUMsU0FBUyxnREFBZ0QsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUM7UUFDckssQ0FBQztRQUVELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM3RCxNQUFNLG1CQUFtQixHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7UUFFN0gsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxlQUFlLENBQUMsU0FBUyxFQUFFO2dCQUMzQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhO2dCQUMxQyxtQkFBbUIsRUFBRSxtQkFBbUI7Z0JBQ3hDLGVBQWUsRUFBRSxlQUFlO2FBQ25DLENBQUMsQ0FBQztRQUNQLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBTSxTQUFTLEVBQUU7Z0JBQ3RFLG1CQUFtQixFQUFFLG1CQUFtQjtnQkFDeEMsUUFBUSxFQUFFLGVBQWU7YUFDNUIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2QsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDMUQsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFFRCxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEUsQ0FBQzs4R0F2RFEsa0JBQWtCO2tHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBSjlCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzdCOzhCQU9tQyxTQUFTO3NCQUF4QyxLQUFLO3VCQUFDLEVBQUMsS0FBSyxFQUFFLGNBQWMsRUFBQztnQkFDSSxXQUFXO3NCQUE1QyxLQUFLO3VCQUFDLEVBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFDO2dCQUN2QixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUM2Qiw2QkFBNkI7c0JBQS9ELE1BQU07dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBcHBsaWNhdGlvblJlZixcbiAgICBDb21wb25lbnRSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBUeXBlLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgY3JlYXRlQ29tcG9uZW50LFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtDb21tb25zSW50ZXJuYWxFcnJvcn0gZnJvbSAnLi4vZXJyb3IvZXJyb3IubW9kZWwnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW21uZ0NvbXBvbmVudF0nXG59KVxuZXhwb3J0IGNsYXNzIENvbXBvbmVudERpcmVjdGl2ZTxDPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwbGljYXRpb25SZWYgPSBpbmplY3QoQXBwbGljYXRpb25SZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcblxuICAgIEBJbnB1dCh7YWxpYXM6ICdtbmdDb21wb25lbnQnfSkgY29tcG9uZW50PzogVHlwZTxDPjtcbiAgICBASW5wdXQoe2FsaWFzOiAnaW5qZWN0aW9uVG9rZW4nfSkgY29tcG9uZW50SXQ/OiBJbmplY3Rpb25Ub2tlbjxUeXBlPEM+PjtcbiAgICBASW5wdXQoKSBpbnB1dHM/OiB7W2tleTogc3RyaW5nXTogYW55fTtcbiAgICBASW5wdXQoKSBhdHRhY2hUb0hvc3QgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBwYXJlbnRJbmplY3Rvcj86IEluamVjdG9yO1xuICAgIEBPdXRwdXQoJ2luc3RhbmNlQ3JlYXRlZCcpIHByaXZhdGUgY29tcG9uZW50SW5zdGFuY2VFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEM+KCk7XG5cbiAgICBwdWJsaWMgY29tcG9uZW50UmVmITogQ29tcG9uZW50UmVmPEM+O1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGxldCBjb21wb25lbnQ6IFR5cGU8Qz4gfCBudWxsID0gbnVsbDtcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50KSB7XG4gICAgICAgICAgICBjb21wb25lbnQgPSB0aGlzLmNvbXBvbmVudDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbXBvbmVudEl0KSB7XG4gICAgICAgICAgICBjb21wb25lbnQgPSB0aGlzLmluamVjdG9yLmdldCh0aGlzLmNvbXBvbmVudEl0LCBudWxsLCB7b3B0aW9uYWw6IHRydWV9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY29tcG9uZW50KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYENvbXBvbmVudCBjYW5ub3QgYmUgY3JlYXRlZCwgbm8gY29tcG9uZW50ICgke3RoaXMuY29tcG9uZW50fSkgb3Igbm8gb3IgaW52YWxpZCBpbmplY3Rpb24gdG9rZW4gcHJvdmlkZWQgKCR7dGhpcy5jb21wb25lbnRJdH0pLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZWxlbWVudEluamVjdG9yID0gdGhpcy5wYXJlbnRJbmplY3RvciA/PyB0aGlzLmluamVjdG9yO1xuICAgICAgICBjb25zdCBlbnZpcm9ubWVudEluamVjdG9yID0gZWxlbWVudEluamVjdG9yLmdldChFbnZpcm9ubWVudEluamVjdG9yLCBudWxsLCB7b3B0aW9uYWw6IHRydWV9KSA/PyB0aGlzLmFwcGxpY2F0aW9uUmVmLmluamVjdG9yO1xuXG4gICAgICAgIGlmICh0aGlzLmF0dGFjaFRvSG9zdCkge1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSBjcmVhdGVDb21wb25lbnQoY29tcG9uZW50LCB7XG4gICAgICAgICAgICAgICAgaG9zdEVsZW1lbnQ6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IGVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgICAgICAgICAgICAgZWxlbWVudEluamVjdG9yOiBlbGVtZW50SW5qZWN0b3JcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQ8YW55Pihjb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgICBlbnZpcm9ubWVudEluamVjdG9yOiBlbnZpcm9ubWVudEluamVjdG9yLFxuICAgICAgICAgICAgICAgIGluamVjdG9yOiBlbGVtZW50SW5qZWN0b3JcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaW5wdXRzKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGlucHV0IGluIHRoaXMuaW5wdXRzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuc2V0SW5wdXQoaW5wdXQsIHRoaXMuaW5wdXRzW2lucHV0XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hdHRhY2hUb0hvc3QpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbGljYXRpb25SZWYuYXR0YWNoVmlldyh0aGlzLmNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbXBvbmVudEluc3RhbmNlRXZlbnRFbWl0dGVyLm5leHQodGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpO1xuICAgIH1cbn1cbiJdfQ==
@@ -11,6 +11,7 @@ export * from './data-list/data-list-params-helpers';
11
11
  export * from './data-list/filter-match.model';
12
12
  // data-providers
13
13
  export * from './data-providers/base.data-provider';
14
+ export * from './data-providers/base-data-provider.factory';
14
15
  export * from './data-providers/lookup.data-provider';
15
16
  // descriptors
16
17
  export * from './descriptors/action.descriptor';
@@ -102,4 +103,4 @@ export * from './styles/style.model';
102
103
  export * from './styles/style-constants';
103
104
  // provide
104
105
  export * from './provide';
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb3JlL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFTO0FBQ1QsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGtDQUFrQyxDQUFDO0FBRWpELGFBQWE7QUFDYixjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyx1REFBdUQsQ0FBQztBQUV0RSxZQUFZO0FBQ1osY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsZ0NBQWdDLENBQUM7QUFFL0MsaUJBQWlCO0FBQ2pCLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUV0RCxjQUFjO0FBQ2QsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsb0NBQW9DLENBQUM7QUFFbkQsYUFBYTtBQUNiLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGlDQUFpQyxDQUFDO0FBRWhELFFBQVE7QUFDUixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMscUJBQXFCLENBQUM7QUFFcEMsUUFBUTtBQUNSLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDO0FBRXRDLFVBQVU7QUFDVixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMscUJBQXFCLENBQUM7QUFFcEMsT0FBTztBQUNQLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGtCQUFrQixDQUFDO0FBRWpDLE1BQU07QUFDTixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxTQUFTO0FBQ1QsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxRQUFRO0FBQ1IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx1QkFBdUIsQ0FBQztBQUV0QyxVQUFVO0FBQ1YsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDhCQUE4QixDQUFDO0FBRTdDLFdBQVc7QUFDWCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMEJBQTBCLENBQUM7QUFFekMsU0FBUztBQUNULGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHlCQUF5QixDQUFDO0FBRXhDLE9BQU87QUFDUCxjQUFjLHNDQUFzQyxDQUFDO0FBRXJELFdBQVc7QUFDWCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDhCQUE4QixDQUFDO0FBRTdDLFdBQVc7QUFDWCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHlDQUF5QyxDQUFDO0FBRXhELFNBQVM7QUFDVCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsMEJBQTBCLENBQUM7QUFFekMsVUFBVTtBQUNWLGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gYWN0aW9uXG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbi9hY3Rpb24tZGF0YS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbi9hY3Rpb24tcGFyYW1ldGVycy5tb2RlbCc7XG5cbi8vIGNvbXBvbmVudHNcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLXdyYXBwZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9wYWdlcy9lcnJvci9lcnJvci5wYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvcGFnZXMvbm90LWZvdW5kL25vdC1mb3VuZC5wYWdlLmNvbXBvbmVudCc7XG5cbi8vIGRhdGEtbGlzdFxuZXhwb3J0ICogZnJvbSAnLi9kYXRhLWxpc3QvZGF0YS1saXN0Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1saXN0L2RhdGEtbGlzdC1wYXJhbXMtaGVscGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGEtbGlzdC9maWx0ZXItbWF0Y2gubW9kZWwnO1xuXG4vLyBkYXRhLXByb3ZpZGVyc1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLXByb3ZpZGVycy9iYXNlLmRhdGEtcHJvdmlkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLXByb3ZpZGVycy9sb29rdXAuZGF0YS1wcm92aWRlcic7XG5cbi8vIGRlc2NyaXB0b3JzXG5leHBvcnQgKiBmcm9tICcuL2Rlc2NyaXB0b3JzL2FjdGlvbi5kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZGVzY3JpcHRvcnMvY29sdW1uLmRlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9kZXNjcmlwdG9ycy9lZGl0b3IuZGVzY3JpcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL2Rlc2NyaXB0b3JzL2VudW0uZGVzY3JpcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL2Rlc2NyaXB0b3JzL2ZpbHRlci5kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZGVzY3JpcHRvcnMvbG9va3VwLmRlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9kZXNjcmlwdG9ycy9tb2RlbC5kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZGVzY3JpcHRvcnMvdGFibGUuZGVzY3JpcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL2Rlc2NyaXB0b3JzL3RhYmxldmlldy5kZXNjcmlwdG9yJztcblxuLy8gZGlyZWN0aXZlc1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2NvbXBvbmVudC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2RpYWxvZy1rZXlkb3duLWhhbmRsZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy90ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuXG4vLyBlbnVtc1xuZXhwb3J0ICogZnJvbSAnLi9lbnVtL2VudW0ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9lbnVtL2VudW0taGVscGVycyc7XG5cbi8vIGVycm9yXG5leHBvcnQgKiBmcm9tICcuL2Vycm9yL2Vycm9yLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3IvZXJyb3ItaGFuZGxlcic7XG5leHBvcnQgKiBmcm9tICcuL2Vycm9yL2Vycm9yLWhlbHBlcnMnO1xuXG4vLyBoZWxwZXJzXG5leHBvcnQgKiBmcm9tICcuL2hlbHBlcnMvY29lcmNpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzL2RhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzL25vdGlmaWNhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2hlbHBlcnMvb2JqZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vaGVscGVycy9yb3V0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2hlbHBlcnMvc3RyaW5nJztcbmV4cG9ydCAqIGZyb20gJy4vaGVscGVycy90eXBlLWhlbHBlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzL3RlbXBsYXRlcyc7XG5cbi8vIGkxOG5cbmV4cG9ydCAqIGZyb20gJy4vaTE4bi9pMThuLWNvbW1vbic7XG5leHBvcnQgKiBmcm9tICcuL2kxOG4vaTE4bi1lcnJvcic7XG5leHBvcnQgKiBmcm9tICcuL2kxOG4vaTE4bi10eXBlJztcblxuLy8gbG9nXG5leHBvcnQgKiBmcm9tICcuL2xvZy9sb2cubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2cvbG9nLXB1Ymxpc2hlci1jb25zb2xlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2cvbG9nZ2VyLnNlcnZpY2UnO1xuXG4vLyBtb2RlbHNcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL2NsYXNzLWF0dHJpYnV0ZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9jbGFzcy1zZXJ2aWNlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL2dldHRlci5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9pMThuLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL21lbnUubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvdXNlci5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscy92ZXJzaW9uLm1vZGVsJztcblxuLy8gcGlwZXNcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvYm9vbGVhbi5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvY2xhc3MtbWFwLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9lbnVtLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9lbnVtZXJhdGUucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2VudW1lcmF0ZS1hc3luYy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvZ2V0dGVyLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9pMThuLXByb3BlcnR5LnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9qc29uLXBhdGgucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3BhcmFtZXRyaXplLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy90ZW1wbGF0ZS5waXBlJztcblxuLy8gcmVmbGVjdFxuZXhwb3J0ICogZnJvbSAnLi9yZWZsZWN0L3R5cGUtZW51bS1kZWNvcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9yZWZsZWN0L3R5cGUtZW51bS1tZXRhZGF0YSc7XG5cbi8vIHJlZ2lzdHJ5XG5leHBvcnQgKiBmcm9tICcuL3JlZ2lzdHJ5L3JlZ2lzdHJ5Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vcmVnaXN0cnkvdHlwZS1yZWdpc3RyeSc7XG5cbi8vIHJvdXRlclxuZXhwb3J0ICogZnJvbSAnLi9yb3V0ZXIvcm91dGUtYnVpbGRlcic7XG5leHBvcnQgKiBmcm9tICcuL3JvdXRlci9yb3V0ZXIubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9yb3V0ZXIvcm91dGVzLWJ1aWxkZXInO1xuXG4vLyByeGpzXG5leHBvcnQgKiBmcm9tICcuL3J4anMvbWFwLWRhdGEtbGlzdC1yZXN1bHQtb3BlcmF0b3InO1xuXG4vLyBzZWN1cml0eVxuZXhwb3J0ICogZnJvbSAnLi9zZWN1cml0eS9wZXJtaXNzaW9uLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vc2VjdXJpdHkvcGVybWlzc2lvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VjdXJpdHkvcGVybWlzc2lvbi1oZWxwZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vc2VjdXJpdHkvcGVybWlzc2lvbnMubW9kZWwnO1xuXG4vLyBzZXJ2aWNlc1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9wcm92aWRlcnMvY29tbW9ucy1pbml0LnByb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvdG9rZW5zL2Jyb3dzZXItc3RvcmFnZS50b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3Rva2Vucy9jb21tb25zLWluaXQudG9rZW4nO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy90b2tlbnMvbG9nLXB1Ymxpc2hlci50b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3Rva2Vucy9tb2R1bGUtY29uZmlnLnRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvY29tbW9ucy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvY29tbW9ucy1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9jb21tb25zLWluaXQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2NvbW1vbnMtcm91dGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9sb2NhbC1zdG9yYWdlLWNvbmZpZy5zZXJ2aWNlJztcblxuLy8gc3R5bGVzXG5leHBvcnQgKiBmcm9tICcuL3N0eWxlcy9zdHlsZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3N0eWxlcy9zdHlsZS1jb25zdGFudHMnO1xuXG4vLyBwcm92aWRlXG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGUnO1xuIl19
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb3JlL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFTO0FBQ1QsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGtDQUFrQyxDQUFDO0FBRWpELGFBQWE7QUFDYixjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyx1REFBdUQsQ0FBQztBQUV0RSxZQUFZO0FBQ1osY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsZ0NBQWdDLENBQUM7QUFFL0MsaUJBQWlCO0FBQ2pCLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHVDQUF1QyxDQUFDO0FBRXRELGNBQWM7QUFDZCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxvQ0FBb0MsQ0FBQztBQUVuRCxhQUFhO0FBQ2IsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsaUNBQWlDLENBQUM7QUFFaEQsUUFBUTtBQUNSLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxRQUFRO0FBQ1IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUJBQXVCLENBQUM7QUFFdEMsVUFBVTtBQUNWLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxPQUFPO0FBQ1AsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsa0JBQWtCLENBQUM7QUFFakMsTUFBTTtBQUNOLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHNCQUFzQixDQUFDO0FBRXJDLFNBQVM7QUFDVCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHdCQUF3QixDQUFDO0FBRXZDLFFBQVE7QUFDUixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHVCQUF1QixDQUFDO0FBRXRDLFVBQVU7QUFDVixjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsV0FBVztBQUNYLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxTQUFTO0FBQ1QsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsT0FBTztBQUNQLGNBQWMsc0NBQXNDLENBQUM7QUFFckQsV0FBVztBQUNYLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsV0FBVztBQUNYLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMseUNBQXlDLENBQUM7QUFFeEQsU0FBUztBQUNULGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxVQUFVO0FBQ1YsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBhY3Rpb25cbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uL2FjdGlvbi1kYXRhLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uL2FjdGlvbi1wYXJhbWV0ZXJzLm1vZGVsJztcblxuLy8gY29tcG9uZW50c1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24td3JhcHBlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3BhZ2VzL2Vycm9yL2Vycm9yLnBhZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9wYWdlcy9ub3QtZm91bmQvbm90LWZvdW5kLnBhZ2UuY29tcG9uZW50JztcblxuLy8gZGF0YS1saXN0XG5leHBvcnQgKiBmcm9tICcuL2RhdGEtbGlzdC9kYXRhLWxpc3QubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLWxpc3QvZGF0YS1saXN0LXBhcmFtcy1oZWxwZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1saXN0L2ZpbHRlci1tYXRjaC5tb2RlbCc7XG5cbi8vIGRhdGEtcHJvdmlkZXJzXG5leHBvcnQgKiBmcm9tICcuL2RhdGEtcHJvdmlkZXJzL2Jhc2UuZGF0YS1wcm92aWRlcic7XG5leHBvcnQgKiBmcm9tICcuL2RhdGEtcHJvdmlkZXJzL2Jhc2UtZGF0YS1wcm92aWRlci5mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1wcm92aWRlcnMvbG9va3VwLmRhdGEtcHJvdmlkZXInO1xuXG4vLyBkZXNjcmlwdG9yc1xuZXhwb3J0ICogZnJvbSAnLi9kZXNjcmlwdG9ycy9hY3Rpb24uZGVzY3JpcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL2Rlc2NyaXB0b3JzL2NvbHVtbi5kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZGVzY3JpcHRvcnMvZWRpdG9yLmRlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9kZXNjcmlwdG9ycy9lbnVtLmRlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9kZXNjcmlwdG9ycy9maWx0ZXIuZGVzY3JpcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL2Rlc2NyaXB0b3JzL2xvb2t1cC5kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZGVzY3JpcHRvcnMvbW9kZWwuZGVzY3JpcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL2Rlc2NyaXB0b3JzL3RhYmxlLmRlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9kZXNjcmlwdG9ycy90YWJsZXZpZXcuZGVzY3JpcHRvcic7XG5cbi8vIGRpcmVjdGl2ZXNcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9jb21wb25lbnQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9kaWFsb2cta2V5ZG93bi1oYW5kbGVyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvdGVtcGxhdGUuZGlyZWN0aXZlJztcblxuLy8gZW51bXNcbmV4cG9ydCAqIGZyb20gJy4vZW51bS9lbnVtLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vZW51bS9lbnVtLWhlbHBlcnMnO1xuXG4vLyBlcnJvclxuZXhwb3J0ICogZnJvbSAnLi9lcnJvci9lcnJvci5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2Vycm9yL2Vycm9yLWhhbmRsZXInO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvci9lcnJvci1oZWxwZXJzJztcblxuLy8gaGVscGVyc1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzL2NvZXJjaW9uJztcbmV4cG9ydCAqIGZyb20gJy4vaGVscGVycy9kYXRlJztcbmV4cG9ydCAqIGZyb20gJy4vaGVscGVycy9ub3RpZmljYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzL29iamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2hlbHBlcnMvcm91dGUnO1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzL3N0cmluZyc7XG5leHBvcnQgKiBmcm9tICcuL2hlbHBlcnMvdHlwZS1oZWxwZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vaGVscGVycy90ZW1wbGF0ZXMnO1xuXG4vLyBpMThuXG5leHBvcnQgKiBmcm9tICcuL2kxOG4vaTE4bi1jb21tb24nO1xuZXhwb3J0ICogZnJvbSAnLi9pMThuL2kxOG4tZXJyb3InO1xuZXhwb3J0ICogZnJvbSAnLi9pMThuL2kxOG4tdHlwZSc7XG5cbi8vIGxvZ1xuZXhwb3J0ICogZnJvbSAnLi9sb2cvbG9nLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbG9nL2xvZy1wdWJsaXNoZXItY29uc29sZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9nL2xvZ2dlci5zZXJ2aWNlJztcblxuLy8gbW9kZWxzXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9jbGFzcy1hdHRyaWJ1dGUubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvY2xhc3Mtc2VydmljZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9nZXR0ZXIubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvaTE4bi5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9tZW51Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3VzZXIubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvdmVyc2lvbi5tb2RlbCc7XG5cbi8vIHBpcGVzXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2Jvb2xlYW4ucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2NsYXNzLW1hcC5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvZW51bS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvZW51bWVyYXRlLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9lbnVtZXJhdGUtYXN5bmMucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2dldHRlci5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvaTE4bi1wcm9wZXJ0eS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvanNvbi1wYXRoLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9wYXJhbWV0cml6ZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvdGVtcGxhdGUucGlwZSc7XG5cbi8vIHJlZmxlY3RcbmV4cG9ydCAqIGZyb20gJy4vcmVmbGVjdC90eXBlLWVudW0tZGVjb3JhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vcmVmbGVjdC90eXBlLWVudW0tbWV0YWRhdGEnO1xuXG4vLyByZWdpc3RyeVxuZXhwb3J0ICogZnJvbSAnLi9yZWdpc3RyeS9yZWdpc3RyeS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3JlZ2lzdHJ5L3R5cGUtcmVnaXN0cnknO1xuXG4vLyByb3V0ZXJcbmV4cG9ydCAqIGZyb20gJy4vcm91dGVyL3JvdXRlLWJ1aWxkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9yb3V0ZXIvcm91dGVyLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vcm91dGVyL3JvdXRlcy1idWlsZGVyJztcblxuLy8gcnhqc1xuZXhwb3J0ICogZnJvbSAnLi9yeGpzL21hcC1kYXRhLWxpc3QtcmVzdWx0LW9wZXJhdG9yJztcblxuLy8gc2VjdXJpdHlcbmV4cG9ydCAqIGZyb20gJy4vc2VjdXJpdHkvcGVybWlzc2lvbi5ndWFyZCc7XG5leHBvcnQgKiBmcm9tICcuL3NlY3VyaXR5L3Blcm1pc3Npb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlY3VyaXR5L3Blcm1pc3Npb24taGVscGVycyc7XG5leHBvcnQgKiBmcm9tICcuL3NlY3VyaXR5L3Blcm1pc3Npb25zLm1vZGVsJztcblxuLy8gc2VydmljZXNcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvcHJvdmlkZXJzL2NvbW1vbnMtaW5pdC5wcm92aWRlcic7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3Rva2Vucy9icm93c2VyLXN0b3JhZ2UudG9rZW4nO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy90b2tlbnMvY29tbW9ucy1pbml0LnRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvdG9rZW5zL2xvZy1wdWJsaXNoZXIudG9rZW4nO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy90b2tlbnMvbW9kdWxlLWNvbmZpZy50b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2NvbW1vbnMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2NvbW1vbnMtY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvY29tbW9ucy1pbml0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9jb21tb25zLXJvdXRlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvbG9jYWwtc3RvcmFnZS1jb25maWcuc2VydmljZSc7XG5cbi8vIHN0eWxlc1xuZXhwb3J0ICogZnJvbSAnLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zdHlsZXMvc3R5bGUtY29uc3RhbnRzJztcblxuLy8gcHJvdmlkZVxuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlJztcbiJdfQ==
@@ -2,6 +2,7 @@ import { Injectable, Injector, inject } from '@angular/core';
2
2
  import { Router } from '@angular/router';
3
3
  import { combineLatest, of } from 'rxjs';
4
4
  import { map } from 'rxjs/operators';
5
+ import { toObservable } from '../helpers/coercion';
5
6
  import { LoggerService } from '../log/logger.service';
6
7
  import { CommonsService } from '../services/commons.service';
7
8
  import { isPermitted } from './permission-helpers';
@@ -13,6 +14,7 @@ export class PermissionService {
13
14
  this.injector = inject(Injector);
14
15
  this.commons = inject(CommonsService);
15
16
  this.logger = inject(LoggerService).create('AuthorizationService');
17
+ this.userRoles$ = toObservable(this.commons.userRoles());
16
18
  }
17
19
  isPermitted(permissions, route, actionCtx) {
18
20
  switch (permissions.authorizationType) {
@@ -23,7 +25,7 @@ export class PermissionService {
23
25
  case PermissionTypeEnum.Service:
24
26
  return this.isPermittedService(permissions, route, actionCtx);
25
27
  default:
26
- return this.commons.userRoles$.pipe(map(ur => isPermitted(permissions, ur)));
28
+ return this.userRoles$.pipe(map(ur => isPermitted(permissions, ur)));
27
29
  }
28
30
  }
29
31
  isPermittedAll(permission, route, actionCtx) {
@@ -46,4 +48,4 @@ export class PermissionService {
46
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: PermissionService, decorators: [{
47
49
  type: Injectable
48
50
  }] });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9zcmMvc2VjdXJpdHkvcGVybWlzc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQXlCLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRS9ELE9BQU8sRUFBYSxhQUFhLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQXlDLGtCQUFrQixFQUFjLE1BQU0scUJBQXFCLENBQUM7O0FBRzVHLE1BQU0sT0FBTyxpQkFBaUI7SUFEOUI7UUFFcUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLFlBQU8sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztLQStCbEY7SUE3QlUsV0FBVyxDQUFDLFdBQXlCLEVBQUUsS0FBOEIsRUFBRSxTQUFzRDtRQUNoSSxRQUFRLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BDLEtBQUssa0JBQWtCLENBQUMsR0FBRztnQkFDdkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQThCLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2pGLEtBQUssa0JBQWtCLENBQUMsR0FBRztnQkFDdkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQThCLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2pGLEtBQUssa0JBQWtCLENBQUMsT0FBTztnQkFDM0IsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBa0MsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDekY7Z0JBQ0ksT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckYsQ0FBQztJQUNMLENBQUM7SUFFTyxjQUFjLENBQUMsVUFBMkIsRUFBRSxLQUE4QixFQUFFLFNBQXNEO1FBQ3RJLE9BQU8sYUFBYSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEosQ0FBQztJQUVPLGNBQWMsQ0FBQyxVQUEyQixFQUFFLEtBQThCLEVBQUUsU0FBc0Q7UUFDdEksT0FBTyxhQUFhLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvSSxDQUFDO0lBRU8sa0JBQWtCLENBQUMsVUFBK0IsRUFBRSxLQUE4QixFQUFFLFNBQXNEO1FBQzlJLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsNkRBQTZELFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ3JHLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxPQUFPLGVBQWUsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMzRixDQUFDOzhHQWxDUSxpQkFBaUI7a0hBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgSW5qZWN0b3IsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uL2xvZy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge0NvbW1vbnNTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy9jb21tb25zLnNlcnZpY2UnO1xuaW1wb3J0IHtpc1Blcm1pdHRlZH0gZnJvbSAnLi9wZXJtaXNzaW9uLWhlbHBlcnMnO1xuaW1wb3J0IHtBUGVybWlzc2lvbnMsIElBY3Rpb25Db250ZXh0VmFsaWRhdGlvbiwgUGVybWlzc2lvblR5cGVFbnVtLCBQZXJtaXNzaW9uc30gZnJvbSAnLi9wZXJtaXNzaW9ucy5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1vbnMgPSBpbmplY3QoQ29tbW9uc1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gaW5qZWN0KExvZ2dlclNlcnZpY2UpLmNyZWF0ZSgnQXV0aG9yaXphdGlvblNlcnZpY2UnKTtcblxuICAgIHB1YmxpYyBpc1Blcm1pdHRlZChwZXJtaXNzaW9uczogQVBlcm1pc3Npb25zLCByb3V0ZT86IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGFjdGlvbkN0eD86IElBY3Rpb25Db250ZXh0VmFsaWRhdGlvbjx1bmtub3duLCB1bmtub3duPik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICBzd2l0Y2ggKHBlcm1pc3Npb25zLmF1dGhvcml6YXRpb25UeXBlKSB7XG4gICAgICAgICAgICBjYXNlIFBlcm1pc3Npb25UeXBlRW51bS5BbGw6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNQZXJtaXR0ZWRBbGwocGVybWlzc2lvbnMgYXMgUGVybWlzc2lvbnMuQWxsLCByb3V0ZSwgYWN0aW9uQ3R4KTtcbiAgICAgICAgICAgIGNhc2UgUGVybWlzc2lvblR5cGVFbnVtLkFueTpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pc1Blcm1pdHRlZEFueShwZXJtaXNzaW9ucyBhcyBQZXJtaXNzaW9ucy5BbnksIHJvdXRlLCBhY3Rpb25DdHgpO1xuICAgICAgICAgICAgY2FzZSBQZXJtaXNzaW9uVHlwZUVudW0uU2VydmljZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pc1Blcm1pdHRlZFNlcnZpY2UocGVybWlzc2lvbnMgYXMgUGVybWlzc2lvbnMuU2VydmljZSwgcm91dGUsIGFjdGlvbkN0eCk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbW1vbnMudXNlclJvbGVzJC5waXBlKG1hcCh1ciA9PiBpc1Blcm1pdHRlZChwZXJtaXNzaW9ucywgdXIpKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUGVybWl0dGVkQWxsKHBlcm1pc3Npb246IFBlcm1pc3Npb25zLkFsbCwgcm91dGU/OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBhY3Rpb25DdHg/OiBJQWN0aW9uQ29udGV4dFZhbGlkYXRpb248dW5rbm93biwgdW5rbm93bj4pIHtcbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QocGVybWlzc2lvbi5wZXJtaXNzaW9ucy5tYXAocCA9PiB0aGlzLmlzUGVybWl0dGVkKHAsIHJvdXRlLCBhY3Rpb25DdHgpKSkucGlwZShtYXAocmVzID0+IHJlcy5ldmVyeShpcCA9PiBpcCA9PT0gdHJ1ZSkpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUGVybWl0dGVkQW55KHBlcm1pc3Npb246IFBlcm1pc3Npb25zLkFueSwgcm91dGU/OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBhY3Rpb25DdHg/OiBJQWN0aW9uQ29udGV4dFZhbGlkYXRpb248dW5rbm93biwgdW5rbm93bj4pIHtcbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QocGVybWlzc2lvbi5wZXJtaXNzaW9ucy5tYXAocCA9PiB0aGlzLmlzUGVybWl0dGVkKHAsIHJvdXRlLCBhY3Rpb25DdHgpKSkucGlwZShtYXAocmVzID0+IHJlcy5zb21lKGlwID0+IGlwID09PSB0cnVlKSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNQZXJtaXR0ZWRTZXJ2aWNlKHBlcm1pc3Npb246IFBlcm1pc3Npb25zLlNlcnZpY2UsIHJvdXRlPzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgYWN0aW9uQ3R4PzogSUFjdGlvbkNvbnRleHRWYWxpZGF0aW9uPHVua25vd24sIHVua25vd24+KSB7XG4gICAgICAgIGNvbnN0IHNlcnZpY2VJbnN0YW5jZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KHBlcm1pc3Npb24uc2VydmljZSk7XG4gICAgICAgIGlmICghc2VydmljZUluc3RhbmNlKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgV0FSTklORzogU2VydmljZSBpbnN0YW5jZSBjb3VsZCBub3QgYmUgcmV0cmVpdmVkIGZvciB0eXBlICR7cGVybWlzc2lvbi5zZXJ2aWNlfWApO1xuICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2VydmljZUluc3RhbmNlLmlzUGVybWl0dGVkKHJvdXRlLCB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdCwgYWN0aW9uQ3R4KTtcbiAgICB9XG59XG4iXX0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9zcmMvc2VjdXJpdHkvcGVybWlzc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQXlCLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRS9ELE9BQU8sRUFBYSxhQUFhLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUF5QyxrQkFBa0IsRUFBYyxNQUFNLHFCQUFxQixDQUFDOztBQUc1RyxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBRXFCLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixZQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pDLFdBQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFdkUsZUFBVSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7S0ErQi9EO0lBN0JVLFdBQVcsQ0FBQyxXQUF5QixFQUFFLEtBQThCLEVBQUUsU0FBc0Q7UUFDaEksUUFBUSxXQUFXLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNwQyxLQUFLLGtCQUFrQixDQUFDLEdBQUc7Z0JBQ3ZCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUE4QixFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztZQUNqRixLQUFLLGtCQUFrQixDQUFDLEdBQUc7Z0JBQ3ZCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUE4QixFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztZQUNqRixLQUFLLGtCQUFrQixDQUFDLE9BQU87Z0JBQzNCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQWtDLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3pGO2dCQUNJLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0UsQ0FBQztJQUNMLENBQUM7SUFFTyxjQUFjLENBQUMsVUFBMkIsRUFBRSxLQUE4QixFQUFFLFNBQXNEO1FBQ3RJLE9BQU8sYUFBYSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEosQ0FBQztJQUVPLGNBQWMsQ0FBQyxVQUEyQixFQUFFLEtBQThCLEVBQUUsU0FBc0Q7UUFDdEksT0FBTyxhQUFhLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvSSxDQUFDO0lBRU8sa0JBQWtCLENBQUMsVUFBK0IsRUFBRSxLQUE4QixFQUFFLFNBQXNEO1FBQzlJLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsNkRBQTZELFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ3JHLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxPQUFPLGVBQWUsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMzRixDQUFDOzhHQXBDUSxpQkFBaUI7a0hBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgSW5qZWN0b3IsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge3RvT2JzZXJ2YWJsZX0gZnJvbSAnLi4vaGVscGVycy9jb2VyY2lvbic7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uL2xvZy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge0NvbW1vbnNTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy9jb21tb25zLnNlcnZpY2UnO1xuaW1wb3J0IHtpc1Blcm1pdHRlZH0gZnJvbSAnLi9wZXJtaXNzaW9uLWhlbHBlcnMnO1xuaW1wb3J0IHtBUGVybWlzc2lvbnMsIElBY3Rpb25Db250ZXh0VmFsaWRhdGlvbiwgUGVybWlzc2lvblR5cGVFbnVtLCBQZXJtaXNzaW9uc30gZnJvbSAnLi9wZXJtaXNzaW9ucy5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1vbnMgPSBpbmplY3QoQ29tbW9uc1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gaW5qZWN0KExvZ2dlclNlcnZpY2UpLmNyZWF0ZSgnQXV0aG9yaXphdGlvblNlcnZpY2UnKTtcblxuICAgIHByaXZhdGUgdXNlclJvbGVzJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmNvbW1vbnMudXNlclJvbGVzKCkpO1xuXG4gICAgcHVibGljIGlzUGVybWl0dGVkKHBlcm1pc3Npb25zOiBBUGVybWlzc2lvbnMsIHJvdXRlPzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgYWN0aW9uQ3R4PzogSUFjdGlvbkNvbnRleHRWYWxpZGF0aW9uPHVua25vd24sIHVua25vd24+KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHN3aXRjaCAocGVybWlzc2lvbnMuYXV0aG9yaXphdGlvblR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgUGVybWlzc2lvblR5cGVFbnVtLkFsbDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pc1Blcm1pdHRlZEFsbChwZXJtaXNzaW9ucyBhcyBQZXJtaXNzaW9ucy5BbGwsIHJvdXRlLCBhY3Rpb25DdHgpO1xuICAgICAgICAgICAgY2FzZSBQZXJtaXNzaW9uVHlwZUVudW0uQW55OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmlzUGVybWl0dGVkQW55KHBlcm1pc3Npb25zIGFzIFBlcm1pc3Npb25zLkFueSwgcm91dGUsIGFjdGlvbkN0eCk7XG4gICAgICAgICAgICBjYXNlIFBlcm1pc3Npb25UeXBlRW51bS5TZXJ2aWNlOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmlzUGVybWl0dGVkU2VydmljZShwZXJtaXNzaW9ucyBhcyBQZXJtaXNzaW9ucy5TZXJ2aWNlLCByb3V0ZSwgYWN0aW9uQ3R4KTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudXNlclJvbGVzJC5waXBlKG1hcCh1ciA9PiBpc1Blcm1pdHRlZChwZXJtaXNzaW9ucywgdXIpKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUGVybWl0dGVkQWxsKHBlcm1pc3Npb246IFBlcm1pc3Npb25zLkFsbCwgcm91dGU/OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBhY3Rpb25DdHg/OiBJQWN0aW9uQ29udGV4dFZhbGlkYXRpb248dW5rbm93biwgdW5rbm93bj4pIHtcbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QocGVybWlzc2lvbi5wZXJtaXNzaW9ucy5tYXAocCA9PiB0aGlzLmlzUGVybWl0dGVkKHAsIHJvdXRlLCBhY3Rpb25DdHgpKSkucGlwZShtYXAocmVzID0+IHJlcy5ldmVyeShpcCA9PiBpcCA9PT0gdHJ1ZSkpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUGVybWl0dGVkQW55KHBlcm1pc3Npb246IFBlcm1pc3Npb25zLkFueSwgcm91dGU/OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBhY3Rpb25DdHg/OiBJQWN0aW9uQ29udGV4dFZhbGlkYXRpb248dW5rbm93biwgdW5rbm93bj4pIHtcbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QocGVybWlzc2lvbi5wZXJtaXNzaW9ucy5tYXAocCA9PiB0aGlzLmlzUGVybWl0dGVkKHAsIHJvdXRlLCBhY3Rpb25DdHgpKSkucGlwZShtYXAocmVzID0+IHJlcy5zb21lKGlwID0+IGlwID09PSB0cnVlKSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNQZXJtaXR0ZWRTZXJ2aWNlKHBlcm1pc3Npb246IFBlcm1pc3Npb25zLlNlcnZpY2UsIHJvdXRlPzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgYWN0aW9uQ3R4PzogSUFjdGlvbkNvbnRleHRWYWxpZGF0aW9uPHVua25vd24sIHVua25vd24+KSB7XG4gICAgICAgIGNvbnN0IHNlcnZpY2VJbnN0YW5jZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KHBlcm1pc3Npb24uc2VydmljZSk7XG4gICAgICAgIGlmICghc2VydmljZUluc3RhbmNlKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgV0FSTklORzogU2VydmljZSBpbnN0YW5jZSBjb3VsZCBub3QgYmUgcmV0cmVpdmVkIGZvciB0eXBlICR7cGVybWlzc2lvbi5zZXJ2aWNlfWApO1xuICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2VydmljZUluc3RhbmNlLmlzUGVybWl0dGVkKHJvdXRlLCB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdCwgYWN0aW9uQ3R4KTtcbiAgICB9XG59XG4iXX0=
@@ -93,7 +93,7 @@ export class CommonsInitService {
93
93
  this.commonsInitServiceEvents.next(CommonsInitEventEnum.CommonsInitEnd);
94
94
  this.commonsInitServiceEvents.complete();
95
95
  this.isInitializedSubject.next(true);
96
- return this.commons.reset();
96
+ return this.commons.initialize();
97
97
  }), catchError(err => {
98
98
  ctxLogger.warn('Commons initialization failed with error', err);
99
99
  this.commonsInitServiceEvents.next(CommonsInitEventEnum.CommonsInitError);
@@ -108,4 +108,4 @@ export class CommonsInitService {
108
108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CommonsInitService, decorators: [{
109
109
  type: Injectable
110
110
  }] });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9ucy1pbml0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3NyYy9zZXJ2aWNlcy9jb21tb25zLWluaXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFhLGFBQWEsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN2RyxPQUFPLEVBQUMsVUFBVSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDOztBQUV0RSxNQUFNLENBQU4sSUFBWSxvQkFRWDtBQVJELFdBQVksb0JBQW9CO0lBQzVCLHVGQUFnQixDQUFBO0lBQ2hCLHVHQUF3QixDQUFBO0lBQ3hCLCtHQUE0QixDQUFBO0lBQzVCLGlHQUFxQixDQUFBO0lBQ3JCLG1HQUFzQixDQUFBO0lBQ3RCLG1GQUFjLENBQUE7SUFDZCx1RkFBZ0IsQ0FBQTtBQUNwQixDQUFDLEVBUlcsb0JBQW9C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WUFDekMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QyxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQzs4R0EvRlEsa0JBQWtCO2tIQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBCYWNrZW5kLCBIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0luamVjdGFibGUsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWVyZ2VNYXAsIG9mLCB0YWtlLCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vbG9nL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7Q29tbW9uc0NvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuL2NvbW1vbnMtY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7Q29tbW9uc1JvdXRlclNlcnZpY2V9IGZyb20gJy4vY29tbW9ucy1yb3V0ZXIuc2VydmljZSc7XG5pbXBvcnQge0NvbW1vbnNTZXJ2aWNlfSBmcm9tICcuL2NvbW1vbnMuc2VydmljZSc7XG5pbXBvcnQge0NPTU1PTlNfSU5JVElBTElaRVJfSVR9IGZyb20gJy4vdG9rZW5zL2NvbW1vbnMtaW5pdC50b2tlbic7XG5pbXBvcnQge0xPR19QVUJMSVNIRVJTfSBmcm9tICcuL3Rva2Vucy9sb2ctcHVibGlzaGVyLnRva2VuJztcbmltcG9ydCB7Q09NTU9OU19NT0RVTEVfQ09ORklHX0lUfSBmcm9tICcuL3Rva2Vucy9tb2R1bGUtY29uZmlnLnRva2VuJztcblxuZXhwb3J0IGVudW0gQ29tbW9uc0luaXRFdmVudEVudW0ge1xuICAgIENvbW1vbnNJbml0U3RhcnQsXG4gICAgQ29uZmlnU291cmNlTW9kdWxlTG9hZGVkLFxuICAgIENvbmZpZ1NvdXJjZVByb2plY3RFbnZMb2FkZWQsXG4gICAgQ29uZmlnU291cmNlSnNvbkFkZGVkLFxuICAgIENvbmZpZ1NvdXJjZUpzb25Mb2FkZWQsXG4gICAgQ29tbW9uc0luaXRFbmQsXG4gICAgQ29tbW9uc0luaXRFcnJvclxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29tbW9uc0luaXRTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IGluamVjdChMb2dnZXJTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ1B1Ymxpc2hlcnMgPSBpbmplY3QoTE9HX1BVQkxJU0hFUlMsIHtvcHRpb25hbDogdHJ1ZX0pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0KENvbW1vbnNDb25maWd1cmF0aW9uU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tb25zID0gaW5qZWN0KENvbW1vbnNTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1vbnNSb3V0ZXIgPSBpbmplY3QoQ29tbW9uc1JvdXRlclNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbW9kdWxlQ29uZmlnID0gaW5qZWN0KENPTU1PTlNfTU9EVUxFX0NPTkZJR19JVCwge29wdGlvbmFsOiB0cnVlfSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tb25zSW5pdGlhbGl6ZXJzID0gaW5qZWN0KENPTU1PTlNfSU5JVElBTElaRVJfSVQsIHtvcHRpb25hbDogdHJ1ZX0pO1xuXG4gICAgcHJpdmF0ZSBpc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGh0dHBDbGllbnQhOiBIdHRwQ2xpZW50O1xuXG4gICAgcHJpdmF0ZSBpc0luaXRpYWxpemVkU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJpdmF0ZSBjb21tb25zSW5pdFNlcnZpY2VFdmVudHMgPSBuZXcgU3ViamVjdDxDb21tb25zSW5pdEV2ZW50RW51bT4oKTtcblxuICAgIHB1YmxpYyBnZXQgZXZlbnRzJCgpOiBPYnNlcnZhYmxlPENvbW1vbnNJbml0RXZlbnRFbnVtPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbW1vbnNJbml0U2VydmljZUV2ZW50cy5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzSW5pdGlhbGl6ZWQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0luaXRpYWxpemVkU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKHRha2UoMSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0aWFsaXplKGhhbmRsZXI6IEh0dHBCYWNrZW5kKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLmlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBvZih2b2lkIDApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNJbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICAgICAgTG9nZ2VyU2VydmljZS5jb25maWd1cmUoe3RpbWVzdGFtcEZvcm1hdDogdGhpcy5tb2R1bGVDb25maWc/LmxvZz8udGltZXN0YW1wRm9ybWF0fSk7XG5cbiAgICAgICAgY29uc3QgY3R4TG9nZ2VyID0gdGhpcy5sb2dnZXIuY3JlYXRlKCdDb21tb25zSW5pdFNlcnZpY2UnKTtcbiAgICAgICAgY3R4TG9nZ2VyLmRlYnVnKCdDb21tb25zIGluaXRpYWxpemF0aW9uIGlzIHN0YXJ0aW5nJyk7XG4gICAgICAgIHRoaXMuY29tbW9uc0luaXRTZXJ2aWNlRXZlbnRzLm5leHQoQ29tbW9uc0luaXRFdmVudEVudW0uQ29tbW9uc0luaXRTdGFydCk7XG5cbiAgICAgICAgLy8gaW5pdCBodHRwIGNsaWVudFxuICAgICAgICB0aGlzLmh0dHBDbGllbnQgPSBuZXcgSHR0cENsaWVudChoYW5kbGVyKTtcblxuICAgICAgICAvLyBpbml0IHJvdXRlclxuICAgICAgICB0aGlzLmNvbW1vbnNSb3V0ZXIuaW5pdGlhbGl6ZSgpO1xuXG4gICAgICAgIC8vIGluaXQgY29uZmlndXJhdGlvbnMgd2l0aCBzZXR0aW5ncyBmcm9tIG1vZHVsZSBjb25maWdcbiAgICAgICAgdGhpcy5jb25maWcuaW5pdCh0aGlzLmh0dHBDbGllbnQsIHRoaXMubG9nZ2VyKTtcbiAgICAgICAgdGhpcy5jb25maWcuYWRkTW9kdWxlQ29uZmlnU291cmNlKHRoaXMubW9kdWxlQ29uZmlnID8/IHVuZGVmaW5lZCk7XG4gICAgICAgIHRoaXMuY29tbW9uc0luaXRTZXJ2aWNlRXZlbnRzLm5leHQoQ29tbW9uc0luaXRFdmVudEVudW0uQ29uZmlnU291cmNlTW9kdWxlTG9hZGVkKTtcbiAgICAgICAgaWYgKHRoaXMubW9kdWxlQ29uZmlnPy5jb25maWd1cmF0aW9uPy5wcm9qZWN0RW52aXJvbm1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLmFkZEVudmlyb25tZW50U291cmNlKHRoaXMubW9kdWxlQ29uZmlnLmNvbmZpZ3VyYXRpb24ucHJvamVjdEVudmlyb25tZW50KTtcbiAgICAgICAgICAgIHRoaXMuY29tbW9uc0luaXRTZXJ2aWNlRXZlbnRzLm5leHQoQ29tbW9uc0luaXRFdmVudEVudW0uQ29uZmlnU291cmNlUHJvamVjdEVudkxvYWRlZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpbml0IGNvbmZpZ3VyYXRpb25zIHdpdGggc2V0dGluZ3MgZnJvbSBtb2R1bGUgY29uZmlnIGZvciBqc29uIHNvdXJjZVxuICAgICAgICBpZiAoISh0aGlzLm1vZHVsZUNvbmZpZz8uY29uZmlndXJhdGlvbj8uc2tpcEpzb25Tb3VyY2VJbml0ID8/IGZhbHNlKSkge1xuICAgICAgICAgICAgY29uc3QganNvblNvdXJjZUVuYWJsZUVudlByb2QgPSB0aGlzLm1vZHVsZUNvbmZpZz8uY29uZmlndXJhdGlvbj8uanNvblNvdXJjZUVuYWJsZUVudlByb2QgPz8gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBqc29uU291cmNlID0gdGhpcy5tb2R1bGVDb25maWc/LmNvbmZpZ3VyYXRpb24/Lmpzb25Tb3VyY2U7XG4gICAgICAgICAgICBpZiAoIWpzb25Tb3VyY2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5hZGRKc29uU291cmNlKHtlbmFibGVFbnZQcm9kOiBqc29uU291cmNlRW5hYmxlRW52UHJvZH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGpzb25Tb3VyY2UpKSB7XG4gICAgICAgICAgICAgICAganNvblNvdXJjZS5mb3JFYWNoKHNvdXJjZSA9PiB0aGlzLmNvbmZpZy5hZGRKc29uU291cmNlKHt1cmw6IHNvdXJjZSwgZW5hYmxlRW52UHJvZDoganNvblNvdXJjZUVuYWJsZUVudlByb2R9KSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmFkZEpzb25Tb3VyY2Uoe3VybDoganNvblNvdXJjZSwgZW5hYmxlRW52UHJvZDoganNvblNvdXJjZUVuYWJsZUVudlByb2R9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY29tbW9uc0luaXRTZXJ2aWNlRXZlbnRzLm5leHQoQ29tbW9uc0luaXRFdmVudEVudW0uQ29uZmlnU291cmNlSnNvbkFkZGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5sb2FkSnNvbkNvbmZpZ3VyYXRpb25zKCkucGlwZShcbiAgICAgICAgICAgIG1lcmdlTWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoISh0aGlzLm1vZHVsZUNvbmZpZz8uY29uZmlndXJhdGlvbj8uc2tpcEpzb25Tb3VyY2VJbml0ID8/IGZhbHNlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbW1vbnNJbml0U2VydmljZUV2ZW50cy5uZXh0KENvbW1vbnNJbml0RXZlbnRFbnVtLkNvbmZpZ1NvdXJjZUpzb25Mb2FkZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBpbml0IGxvZ2dlclxuICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2UuaW5pdCh0aGlzLmNvbmZpZywgdGhpcy5sb2dQdWJsaXNoZXJzID8/IFtdKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbW1vbnNJbml0aWFsaXplcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4TG9nZ2VyLmRlYnVnKCdQcm9qZWN0IGluaXRpYWxpemVycyBhcmUgYmVpbmcgaW5pdGlhbGl6ZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QodGhpcy5jb21tb25zSW5pdGlhbGl6ZXJzLm1hcChjaSA9PiBjaSgpKSkucGlwZShtYXAocmVzID0+IHJlcykpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY3R4TG9nZ2VyLmRlYnVnKCdDb21tb25zIGluaXRpYWxpemF0aW9uIGlzIGZpbmlzaGVkJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21tb25zSW5pdFNlcnZpY2VFdmVudHMubmV4dChDb21tb25zSW5pdEV2ZW50RW51bS5Db21tb25zSW5pdEVuZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21tb25zSW5pdFNlcnZpY2VFdmVudHMuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzSW5pdGlhbGl6ZWRTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29tbW9ucy5yZXNldCgpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgY3R4TG9nZ2VyLndhcm4oJ0NvbW1vbnMgaW5pdGlhbGl6YXRpb24gZmFpbGVkIHdpdGggZXJyb3InLCBlcnIpO1xuICAgICAgICAgICAgICAgIHRoaXMuY29tbW9uc0luaXRTZXJ2aWNlRXZlbnRzLm5leHQoQ29tbW9uc0luaXRFdmVudEVudW0uQ29tbW9uc0luaXRFcnJvcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21tb25zSW5pdFNlcnZpY2VFdmVudHMuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzSW5pdGlhbGl6ZWRTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycik7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9ucy1pbml0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3NyYy9zZXJ2aWNlcy9jb21tb25zLWluaXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFhLGFBQWEsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN2RyxPQUFPLEVBQUMsVUFBVSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDOztBQUV0RSxNQUFNLENBQU4sSUFBWSxvQkFRWDtBQVJELFdBQVksb0JBQW9CO0lBQzVCLHVGQUFnQixDQUFBO0lBQ2hCLHVHQUF3QixDQUFBO0lBQ3hCLCtHQUE0QixDQUFBO0lBQzVCLGlHQUFxQixDQUFBO0lBQ3JCLG1HQUFzQixDQUFBO0lBQ3RCLG1GQUFjLENBQUE7SUFDZCx1RkFBZ0IsQ0FBQTtBQUNwQixDQUFDLEVBUlcsb0JBQW9C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WUFDekMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QyxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQzs4R0EvRlEsa0JBQWtCO2tIQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBCYWNrZW5kLCBIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0luamVjdGFibGUsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWVyZ2VNYXAsIG9mLCB0YWtlLCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vbG9nL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7Q29tbW9uc0NvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuL2NvbW1vbnMtY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7Q29tbW9uc1JvdXRlclNlcnZpY2V9IGZyb20gJy4vY29tbW9ucy1yb3V0ZXIuc2VydmljZSc7XG5pbXBvcnQge0NvbW1vbnNTZXJ2aWNlfSBmcm9tICcuL2NvbW1vbnMuc2VydmljZSc7XG5pbXBvcnQge0NPTU1PTlNfSU5JVElBTElaRVJfSVR9IGZyb20gJy4vdG9rZW5zL2NvbW1vbnMtaW5pdC50b2tlbic7XG5pbXBvcnQge0xPR19QVUJMSVNIRVJTfSBmcm9tICcuL3Rva2Vucy9sb2ctcHVibGlzaGVyLnRva2VuJztcbmltcG9ydCB7Q09NTU9OU19NT0RVTEVfQ09ORklHX0lUfSBmcm9tICcuL3Rva2Vucy9tb2R1bGUtY29uZmlnLnRva2VuJztcblxuZXhwb3J0IGVudW0gQ29tbW9uc0luaXRFdmVudEVudW0ge1xuICAgIENvbW1vbnNJbml0U3RhcnQsXG4gICAgQ29uZmlnU291cmNlTW9kdWxlTG9hZGVkLFxuICAgIENvbmZpZ1NvdXJjZVByb2plY3RFbnZMb2FkZWQsXG4gICAgQ29uZmlnU291cmNlSnNvbkFkZGVkLFxuICAgIENvbmZpZ1NvdXJjZUpzb25Mb2FkZWQsXG4gICAgQ29tbW9uc0luaXRFbmQsXG4gICAgQ29tbW9uc0luaXRFcnJvclxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29tbW9uc0luaXRTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IGluamVjdChMb2dnZXJTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ1B1Ymxpc2hlcnMgPSBpbmplY3QoTE9HX1BVQkxJU0hFUlMsIHtvcHRpb25hbDogdHJ1ZX0pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0KENvbW1vbnNDb25maWd1cmF0aW9uU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tb25zID0gaW5qZWN0KENvbW1vbnNTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1vbnNSb3V0ZXIgPSBpbmplY3QoQ29tbW9uc1JvdXRlclNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbW9kdWxlQ29uZmlnID0gaW5qZWN0KENPTU1PTlNfTU9EVUxFX0NPTkZJR19JVCwge29wdGlvbmFsOiB0cnVlfSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tb25zSW5pdGlhbGl6ZXJzID0gaW5qZWN0KENPTU1PTlNfSU5JVElBTElaRVJfSVQsIHtvcHRpb25hbDogdHJ1ZX0pO1xuXG4gICAgcHJpdmF0ZSBpc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGh0dHBDbGllbnQhOiBIdHRwQ2xpZW50O1xuXG4gICAgcHJpdmF0ZSBpc0luaXRpYWxpemVkU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJpdmF0ZSBjb21tb25zSW5pdFNlcnZpY2VFdmVudHMgPSBuZXcgU3ViamVjdDxDb21tb25zSW5pdEV2ZW50RW51bT4oKTtcblxuICAgIHB1YmxpYyBnZXQgZXZlbnRzJCgpOiBPYnNlcnZhYmxlPENvbW1vbnNJbml0RXZlbnRFbnVtPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbW1vbnNJbml0U2VydmljZUV2ZW50cy5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzSW5pdGlhbGl6ZWQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0luaXRpYWxpemVkU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKHRha2UoMSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0aWFsaXplKGhhbmRsZXI6IEh0dHBCYWNrZW5kKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLmlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBvZih2b2lkIDApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNJbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICAgICAgTG9nZ2VyU2VydmljZS5jb25maWd1cmUoe3RpbWVzdGFtcEZvcm1hdDogdGhpcy5tb2R1bGVDb25maWc/LmxvZz8udGltZXN0YW1wRm9ybWF0fSk7XG5cbiAgICAgICAgY29uc3QgY3R4TG9nZ2VyID0gdGhpcy5sb2dnZXIuY3JlYXRlKCdDb21tb25zSW5pdFNlcnZpY2UnKTtcbiAgICAgICAgY3R4TG9nZ2VyLmRlYnVnKCdDb21tb25zIGluaXRpYWxpemF0aW9uIGlzIHN0YXJ0aW5nJyk7XG4gICAgICAgIHRoaXMuY29tbW9uc0luaXRTZXJ2aWNlRXZlbnRzLm5leHQoQ29tbW9uc0luaXRFdmVudEVudW0uQ29tbW9uc0luaXRTdGFydCk7XG5cbiAgICAgICAgLy8gaW5pdCBodHRwIGNsaWVudFxuICAgICAgICB0aGlzLmh0dHBDbGllbnQgPSBuZXcgSHR0cENsaWVudChoYW5kbGVyKTtcblxuICAgICAgICAvLyBpbml0IHJvdXRlclxuICAgICAgICB0aGlzLmNvbW1vbnNSb3V0ZXIuaW5pdGlhbGl6ZSgpO1xuXG4gICAgICAgIC8vIGluaXQgY29uZmlndXJhdGlvbnMgd2l0aCBzZXR0aW5ncyBmcm9tIG1vZHVsZSBjb25maWdcbiAgICAgICAgdGhpcy5jb25maWcuaW5pdCh0aGlzLmh0dHBDbGllbnQsIHRoaXMubG9nZ2VyKTtcbiAgICAgICAgdGhpcy5jb25maWcuYWRkTW9kdWxlQ29uZmlnU291cmNlKHRoaXMubW9kdWxlQ29uZmlnID8/IHVuZGVmaW5lZCk7XG4gICAgICAgIHRoaXMuY29tbW9uc0luaXRTZXJ2aWNlRXZlbnRzLm5leHQoQ29tbW9uc0luaXRFdmVudEVudW0uQ29uZmlnU291cmNlTW9kdWxlTG9hZGVkKTtcbiAgICAgICAgaWYgKHRoaXMubW9kdWxlQ29uZmlnPy5jb25maWd1cmF0aW9uPy5wcm9qZWN0RW52aXJvbm1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLmFkZEVudmlyb25tZW50U291cmNlKHRoaXMubW9kdWxlQ29uZmlnLmNvbmZpZ3VyYXRpb24ucHJvamVjdEVudmlyb25tZW50KTtcbiAgICAgICAgICAgIHRoaXMuY29tbW9uc0luaXRTZXJ2aWNlRXZlbnRzLm5leHQoQ29tbW9uc0luaXRFdmVudEVudW0uQ29uZmlnU291cmNlUHJvamVjdEVudkxvYWRlZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpbml0IGNvbmZpZ3VyYXRpb25zIHdpdGggc2V0dGluZ3MgZnJvbSBtb2R1bGUgY29uZmlnIGZvciBqc29uIHNvdXJjZVxuICAgICAgICBpZiAoISh0aGlzLm1vZHVsZUNvbmZpZz8uY29uZmlndXJhdGlvbj8uc2tpcEpzb25Tb3VyY2VJbml0ID8/IGZhbHNlKSkge1xuICAgICAgICAgICAgY29uc3QganNvblNvdXJjZUVuYWJsZUVudlByb2QgPSB0aGlzLm1vZHVsZUNvbmZpZz8uY29uZmlndXJhdGlvbj8uanNvblNvdXJjZUVuYWJsZUVudlByb2QgPz8gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBqc29uU291cmNlID0gdGhpcy5tb2R1bGVDb25maWc/LmNvbmZpZ3VyYXRpb24/Lmpzb25Tb3VyY2U7XG4gICAgICAgICAgICBpZiAoIWpzb25Tb3VyY2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5hZGRKc29uU291cmNlKHtlbmFibGVFbnZQcm9kOiBqc29uU291cmNlRW5hYmxlRW52UHJvZH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGpzb25Tb3VyY2UpKSB7XG4gICAgICAgICAgICAgICAganNvblNvdXJjZS5mb3JFYWNoKHNvdXJjZSA9PiB0aGlzLmNvbmZpZy5hZGRKc29uU291cmNlKHt1cmw6IHNvdXJjZSwgZW5hYmxlRW52UHJvZDoganNvblNvdXJjZUVuYWJsZUVudlByb2R9KSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmFkZEpzb25Tb3VyY2Uoe3VybDoganNvblNvdXJjZSwgZW5hYmxlRW52UHJvZDoganNvblNvdXJjZUVuYWJsZUVudlByb2R9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY29tbW9uc0luaXRTZXJ2aWNlRXZlbnRzLm5leHQoQ29tbW9uc0luaXRFdmVudEVudW0uQ29uZmlnU291cmNlSnNvbkFkZGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5sb2FkSnNvbkNvbmZpZ3VyYXRpb25zKCkucGlwZShcbiAgICAgICAgICAgIG1lcmdlTWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoISh0aGlzLm1vZHVsZUNvbmZpZz8uY29uZmlndXJhdGlvbj8uc2tpcEpzb25Tb3VyY2VJbml0ID8/IGZhbHNlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbW1vbnNJbml0U2VydmljZUV2ZW50cy5uZXh0KENvbW1vbnNJbml0RXZlbnRFbnVtLkNvbmZpZ1NvdXJjZUpzb25Mb2FkZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBpbml0IGxvZ2dlclxuICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2UuaW5pdCh0aGlzLmNvbmZpZywgdGhpcy5sb2dQdWJsaXNoZXJzID8/IFtdKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbW1vbnNJbml0aWFsaXplcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4TG9nZ2VyLmRlYnVnKCdQcm9qZWN0IGluaXRpYWxpemVycyBhcmUgYmVpbmcgaW5pdGlhbGl6ZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QodGhpcy5jb21tb25zSW5pdGlhbGl6ZXJzLm1hcChjaSA9PiBjaSgpKSkucGlwZShtYXAocmVzID0+IHJlcykpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY3R4TG9nZ2VyLmRlYnVnKCdDb21tb25zIGluaXRpYWxpemF0aW9uIGlzIGZpbmlzaGVkJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21tb25zSW5pdFNlcnZpY2VFdmVudHMubmV4dChDb21tb25zSW5pdEV2ZW50RW51bS5Db21tb25zSW5pdEVuZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21tb25zSW5pdFNlcnZpY2VFdmVudHMuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzSW5pdGlhbGl6ZWRTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29tbW9ucy5pbml0aWFsaXplKCk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICAgICAgICBjdHhMb2dnZXIud2FybignQ29tbW9ucyBpbml0aWFsaXphdGlvbiBmYWlsZWQgd2l0aCBlcnJvcicsIGVycik7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21tb25zSW5pdFNlcnZpY2VFdmVudHMubmV4dChDb21tb25zSW5pdEV2ZW50RW51bS5Db21tb25zSW5pdEVycm9yKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbW1vbnNJbml0U2VydmljZUV2ZW50cy5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNJbml0aWFsaXplZFN1YmplY3QubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
@@ -1,26 +1,18 @@
1
1
  import { Injectable, inject } from '@angular/core';
2
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
2
3
  import { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, RouteConfigLoadEnd, RouteConfigLoadStart, Router } from '@angular/router';
3
4
  import { ReplaySubject } from 'rxjs';
4
5
  import { first } from 'rxjs/operators';
5
6
  import { LoggerService } from '../log/logger.service';
6
7
  import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/router";
8
8
  export class CommonsRouterService {
9
- constructor(router) {
10
- this.router = router;
9
+ constructor() {
10
+ this.router = inject(Router);
11
11
  this.logger = inject(LoggerService).create('CommonsRouterService');
12
12
  this.routesLoadedPropKey = '_loadedRoutes';
13
13
  this.currentNavigationModuleKeys = [];
14
14
  this.lazyLoadedRoutesConfig = {};
15
- }
16
- getRouteLoadedChildren(path) {
17
- return this.getOrCreateRouteForModule(this.getModulePathFromRouterLink(path)).loadedRoutes;
18
- }
19
- getRouteLoadedChildren$(path) {
20
- return this.getOrCreateRouteForModule(this.getModulePathFromRouterLink(path)).loadedRoutesSubject.asObservable().pipe(first());
21
- }
22
- initialize() {
23
- this.router.events.subscribe(event => {
15
+ this.router.events.pipe(takeUntilDestroyed()).subscribe(event => {
24
16
  if (event instanceof NavigationStart) {
25
17
  this.startNavigation(event.url);
26
18
  }
@@ -35,6 +27,15 @@ export class CommonsRouterService {
35
27
  }
36
28
  });
37
29
  }
30
+ getRouteLoadedChildren(path) {
31
+ return this.getOrCreateRouteForModule(this.getModulePathFromRouterLink(path)).loadedRoutes;
32
+ }
33
+ getRouteLoadedChildren$(path) {
34
+ return this.getOrCreateRouteForModule(this.getModulePathFromRouterLink(path)).loadedRoutesSubject.asObservable().pipe(first());
35
+ }
36
+ initialize() {
37
+ this.logger.debug('Initialized.');
38
+ }
38
39
  startNavigation(url) {
39
40
  this.currentNavigationPath = url.split('?')[0].split('#')[0];
40
41
  this.currentNavigationModuleKeys = [];
@@ -171,10 +172,10 @@ export class CommonsRouterService {
171
172
  getModulePathFromRouterLink(path) {
172
173
  return ('/' + (Array.isArray(path) ? path.join('/') : path)).replace(/\/\//g, '/');
173
174
  }
174
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CommonsRouterService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
175
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CommonsRouterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
175
176
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CommonsRouterService }); }
176
177
  }
177
178
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CommonsRouterService, decorators: [{
178
179
  type: Injectable
179
- }], ctorParameters: () => [{ type: i1.Router }] });
180
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9ucy1yb3V0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc3JjL3NlcnZpY2VzL2NvbW1vbnMtcm91dGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFTLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBUyxNQUFNLGlCQUFpQixDQUFDO0FBRW5LLE9BQU8sRUFBYSxhQUFhLEVBQVUsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBR3BELE1BQU0sT0FBTyxvQkFBb0I7SUFnQjdCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBZmpCLFdBQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDOUQsd0JBQW1CLEdBQUcsZUFBZSxDQUFDO1FBRy9DLGdDQUEyQixHQUFhLEVBQUUsQ0FBQztRQUUzQywyQkFBc0IsR0FPMUIsRUFBRSxDQUFDO0lBRThCLENBQUM7SUFFL0Isc0JBQXNCLENBQUMsSUFBNEI7UUFDdEQsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQy9GLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxJQUE0QjtRQUN2RCxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIs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QTRCO1FBQzVELE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdkYsQ0FBQzs4R0FwTVEsb0JBQW9CO2tIQUFwQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05hdmlnYXRpb25DYW5jZWwsIE5hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25FcnJvciwgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZSwgUm91dGVDb25maWdMb2FkRW5kLCBSb3V0ZUNvbmZpZ0xvYWRTdGFydCwgUm91dGVyLCBSb3V0ZXN9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpcnN0fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vbG9nL2xvZ2dlci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbW1vbnNSb3V0ZXJTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IGluamVjdChMb2dnZXJTZXJ2aWNlKS5jcmVhdGUoJ0NvbW1vbnNSb3V0ZXJTZXJ2aWNlJyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXNMb2FkZWRQcm9wS2V5ID0gJ19sb2FkZWRSb3V0ZXMnO1xuXG4gICAgcHJpdmF0ZSBjdXJyZW50TmF2aWdhdGlvblBhdGg/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBjdXJyZW50TmF2aWdhdGlvbk1vZHVsZUtleXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBwcml2YXRlIGxhenlMb2FkZWRSb3V0ZXNDb25maWc6IHtcbiAgICAgICAgW3BhdGg6IHN0cmluZ106IHtcbiAgICAgICAgICAgIHJvdXRlPzogUm91dGU7XG4gICAgICAgICAgICBpc0xvYWRFbmQ6IGJvb2xlYW47XG4gICAgICAgICAgICBsb2FkZWRSb3V0ZXM/OiBSb3V0ZXM7XG4gICAgICAgICAgICBsb2FkZWRSb3V0ZXNTdWJqZWN0OiBTdWJqZWN0PFJvdXRlcz47XG4gICAgICAgIH07XG4gICAgfSA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge31cblxuICAgIHB1YmxpYyBnZXRSb3V0ZUxvYWRlZENoaWxkcmVuKHBhdGg6IHN0cmluZyB8IEFycmF5PHN0cmluZz4pOiBSb3V0ZXMgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRPckNyZWF0ZVJvdXRlRm9yTW9kdWxlKHRoaXMuZ2V0TW9kdWxlUGF0aEZyb21Sb3V0ZXJMaW5rKHBhdGgpKS5sb2FkZWRSb3V0ZXM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJvdXRlTG9hZGVkQ2hpbGRyZW4kKHBhdGg6IHN0cmluZyB8IEFycmF5PHN0cmluZz4pOiBPYnNlcnZhYmxlPFJvdXRlcz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRPckNyZWF0ZVJvdXRlRm9yTW9kdWxlKHRoaXMuZ2V0TW9kdWxlUGF0aEZyb21Sb3V0ZXJMaW5rKHBhdGgpKS5sb2FkZWRSb3V0ZXNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoZmlyc3QoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXRpYWxpemUoKSB7XG4gICAgICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydE5hdmlnYXRpb24oZXZlbnQudXJsKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBSb3V0ZUNvbmZpZ0xvYWRTdGFydCkge1xuICAgICAgICAgICAgICAgIHRoaXMubWFya05hdmlnYXRpb25Db25maWdMb2FkKGV2ZW50LnJvdXRlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBSb3V0ZUNvbmZpZ0xvYWRFbmQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1hcmtOYXZpZ2F0aW9uQ29uZmlnTG9hZChldmVudC5yb3V0ZSwgdHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCB8fCBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25DYW5jZWwgfHwgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbmlzaE5hdmlnYXRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGFydE5hdmlnYXRpb24odXJsOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50TmF2aWdhdGlvblBhdGggPSB1cmwuc3BsaXQoJz8nKVswXS5zcGxpdCgnIycpWzBdO1xuICAgICAgICB0aGlzLmN1cnJlbnROYXZpZ2F0aW9uTW9kdWxlS2V5cyA9IFtdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluaXNoTmF2aWdhdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE5hdmlnYXRpb25Nb2R1bGVLZXlzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TmF2aWdhdGlvbk1vZHVsZUtleXMuZm9yRWFjaChrID0+IHRoaXMuZ2V0TG9hZGVkUm91dGVzRnJvbVJvdXRlKGssIHRydWUpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnROYXZpZ2F0aW9uUGF0aCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hcmtOYXZpZ2F0aW9uQ29uZmlnTG9hZChyb3V0ZTogUm91dGUsIGlzRW5kID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3Qgcm91dGVQYXRoID0gcm91dGUucGF0aCA/PyAnJztcblxuICAgICAgICBsZXQgbW9kdWxlS2V5ID0gcm91dGVQYXRoO1xuICAgICAgICBjb25zdCBjdXJyZW50TmF2aWdhdGlvblBhdGhSb3V0ZVBhdGhJZHggPSB0aGlzLmN1cnJlbnROYXZpZ2F0aW9uUGF0aD8uaW5kZXhPZihyb3V0ZVBhdGgpID8/IC0xO1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50TmF2aWdhdGlvblBhdGggJiYgY3VycmVudE5hdmlnYXRpb25QYXRoUm91dGVQYXRoSWR4ID49IDApIHtcbiAgICAgICAgICAgIG1vZHVsZUtleSA9IHRoaXMuY3VycmVudE5hdmlnYXRpb25QYXRoLnN1YnN0cmluZygwLCBjdXJyZW50TmF2aWdhdGlvblBhdGhSb3V0ZVBhdGhJZHggKyByb3V0ZVBhdGgubGVuZ3RoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnROYXZpZ2F0aW9uUGF0aCAmJiByb3V0ZVBhdGggIT09IHRoaXMuY3VycmVudE5hdmlnYXRpb25QYXRoICYmICFyb3V0ZVBhdGguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAvLyB1c3VhbGx5IG1lYW5zIHRoYXQgcmVkaXJlY3QgdG8gY3VycmVudE5hdmlnYXRpb25QYXRoIHdhcyBkb25lLCBhZGRpdGlvbmFsbHksIHJvdXRlIHBhdGggd2FzIGFsc28gdHJpZ2dlcmVkIG9uIGxhenkgcm91dGVzIGxvYWRcbiAgICAgICAgICAgIG1vZHVsZUtleSA9IGAke3RoaXMuY3VycmVudE5hdmlnYXRpb25QYXRofS8ke3JvdXRlUGF0aH1gO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpc0VuZCAmJiB0aGlzLmN1cnJlbnROYXZpZ2F0aW9uTW9kdWxlS2V5cy5pbmRleE9mKG1vZHVsZUtleSkgPCAwKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnROYXZpZ2F0aW9uTW9kdWxlS2V5cy5wdXNoKG1vZHVsZUtleSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxvZ2dlci50cmFjZShgQ29uZmlnIGxvYWQgJHtpc0VuZCA/ICdlbmQnIDogJ3N0YXJ0J30gZm9yICR7bW9kdWxlS2V5fSAocm91dGVQYXRoOiAke3JvdXRlUGF0aH07IG5hdmlnYXRpb25Vcmw6ICR7dGhpcy5jdXJyZW50TmF2aWdhdGlvblBhdGh9KWApO1xuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuZ2V0T3JDcmVhdGVSb3V0ZUZvck1vZHVsZShtb2R1bGVLZXkpO1xuICAgICAgICBjb25maWcucm91dGUgPSByb3V0ZTtcbiAgICAgICAgY29uZmlnLmlzTG9hZEVuZCA9IGlzRW5kO1xuXG4gICAgICAgIGlmIChpc0VuZCkge1xuICAgICAgICAgICAgdGhpcy5nZXRMb2FkZWRSb3V0ZXNGcm9tUm91dGUobW9kdWxlS2V5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TG9hZGVkUm91dGVzRnJvbVJvdXRlKG1vZHVsZUtleTogc3RyaW5nLCBpc0ZpbmlzaCA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IG1vZHVsZUNvbmZpZyA9IHRoaXMubGF6eUxvYWRlZFJvdXRlc0NvbmZpZ1ttb2R1bGVLZXldO1xuICAgICAgICBpZiAoIW1vZHVsZUNvbmZpZz8ucm91dGUgfHwgQXJyYXkuaXNBcnJheShtb2R1bGVDb25maWcubG9hZGVkUm91dGVzKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbW9kdWxlQ29uZmlnLmxvYWRlZFJvdXRlcyA9IG1vZHVsZUNvbmZpZy5yb3V0ZSFbdGhpcy5yb3V0ZXNMb2FkZWRQcm9wS2V5IGFzIGtleW9mIG9iamVjdF07XG5cbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KG1vZHVsZUNvbmZpZy5sb2FkZWRSb3V0ZXMpICYmIGlzRmluaXNoKSB7XG4gICAgICAgICAgICAvLyBpZiBpcyBjYWxsZWQgZnJvbSBmaW5pc2ggYW5kIG5vIGxhenkgbG9hZGVkIHJvdXRlcyBhcmUgbWF0Y2hlZCBmcm9tIHJvdXRlciBldmVudHMsIHRyeSBmaW5kaW5nIGluIHJvdXRlIGNvbmZpZywgaXQgc2hvdWxkIGJlIHRoZXJlIVxuICAgICAgICAgICAgdGhpcy5sb2dnZXIudHJhY2UoYFJvdXRlIGxvYWRlZFJvdXRlcyBmb3IgJHttb2R1bGVLZXl9IG5vdCBmb3VuZCwgc2VhcmNoaW5nIGluIHJvdXRlciBjb25maWcgbm93YCk7XG4gICAgICAgICAgICBjb25zdCByb3V0ZSA9IHRoaXMuZmluZFJvdXRlSW5Sb3V0ZUNvbmZpZyhtb2R1bGVLZXkpO1xuICAgICAgICAgICAgaWYgKHJvdXRlKSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlQ29uZmlnLnJvdXRlID0gcm91dGU7XG4gICAgICAgICAgICAgICAgbW9kdWxlQ29uZmlnLmxvYWRlZFJvdXRlcyA9IG1vZHVsZUNvbmZpZy5yb3V0ZSFbdGhpcy5yb3V0ZXNMb2FkZWRQcm9wS2V5IGFzIGtleW9mIG9iamVjdF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oYFJvdXRlIGxvYWRlZFJvdXRlcyBmb3IgJHttb2R1bGVLZXl9IHdlcmUgbm90IGZvdW5kIGluIHJvdXRlciBjb25maWdgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgbW9kdWxlQ29uZmlnLmxvYWRlZFJvdXRlcyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIG1vZHVsZUNvbmZpZy5sb2FkZWRSb3V0ZXNTdWJqZWN0Lm5leHQobW9kdWxlQ29uZmlnLmxvYWRlZFJvdXRlcyEpO1xuICAgICAgICAgICAgbW9kdWxlQ29uZmlnLmxvYWRlZFJvdXRlc1N1YmplY3QuY29tcGxldGUoKTtcblxuICAgICAgICAgICAgdGhpcy5sb2dnZXIudHJhY2UoYENvbmZpZyBsb2FkIGZvciAke21vZHVsZUtleX0gaXMgY29tcGxldGVgLCBtb2R1bGVDb25maWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VhcmNoIGZvciByb3V0ZSBjb25maWcgYnkgbW9kdWxlIHBhdGggYnkgcmVjdXJzaXZlIHNjYW5uaW5nIG9mIHJvdXRlciBjb25maWcgdHJlZS5cbiAgICAgKiBAcGFyYW0gbW9kdWxlUGF0aCBQYXRoIG9mIG1vZHVsZSB0aGF0IGlzIHNlYXJjaGVkLlxuICAgICAqIEBwYXJhbSByb3V0ZXMgUm91dGVzIHRvIGJlIHNjYW5uZWQuIElmIG5vdCBwcm92aWRlZCwgaXQgc3RhcnRzIG9uIHJvb3Qgcm91dGVyIGNvbmZpZy5cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgZmluZFJvdXRlSW5Sb3V0ZUNvbmZpZyhtb2R1bGVQYXRoOiBzdHJpbmcsIHJvdXRlczogUm91dGVzID0gdGhpcy5yb3V0ZXIuY29uZmlnKTogUm91dGUgfCBudWxsIHtcbiAgICAgICAgaWYgKG1vZHVsZVBhdGguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICBtb2R1bGVQYXRoID0gbW9kdWxlUGF0aC5zdWJzdHJpbmcoMSk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IHJvdXRlIG9mIHJvdXRlcykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiByb3V0ZS5wYXRoID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHJvdXRlUGF0aCA9IHJvdXRlLnBhdGg7XG4gICAgICAgICAgICBpZiAocm91dGVQYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgICAgIHJvdXRlUGF0aCA9IHJvdXRlUGF0aC5zdWJzdHJpbmcoMSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGxvbmdlc3RQYXRoTWF0Y2ggPSB0aGlzLmZpbmRMb25nZXN0UGF0aE1hdGNoKG1vZHVsZVBhdGgsIHJvdXRlUGF0aCk7XG4gICAgICAgICAgICBpZiAobG9uZ2VzdFBhdGhNYXRjaCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyB0aGVyZSBpcyBhIHBhcnRpYWwgb3IgZnVsbCBtYXRjaFxuICAgICAgICAgICAgaWYgKHJvdXRlLmxvYWRDaGlsZHJlbiAmJiBtb2R1bGVQYXRoID09PSBsb25nZXN0UGF0aE1hdGNoKSB7XG4gICAgICAgICAgICAgICAgLy8gaXQncyBhIGhpdCFcbiAgICAgICAgICAgICAgICByZXR1cm4gcm91dGU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJvdXRlLmxvYWRDaGlsZHJlbiAmJiBBcnJheS5pc0FycmF5KHJvdXRlW3RoaXMucm91dGVzTG9hZGVkUHJvcEtleSBhcyBrZXlvZiBvYmplY3RdKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZmluZFJvdXRlSW5Sb3V0ZUNvbmZpZyhtb2R1bGVQYXRoLnN1YnN0cmluZyhsb25nZXN0UGF0aE1hdGNoLmxlbmd0aCwgbW9kdWxlUGF0aC5sZW5ndGgpLCByb3V0ZVt0aGlzLnJvdXRlc0xvYWRlZFByb3BLZXkgYXMga2V5b2Ygb2JqZWN0XSk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAocm91dGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmZpbmRSb3V0ZUluUm91dGVDb25maWcobW9kdWxlUGF0aC5zdWJzdHJpbmcobG9uZ2VzdFBhdGhNYXRjaC5sZW5ndGgsIG1vZHVsZVBhdGgubGVuZ3RoKSwgcm91dGUuY2hpbGRyZW4pO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGaW5kcyBsb25nZXN0IHBhdGggbWF0Y2ggb2Ygc291cmNlIHRvIG1hdGNoIHN0cmluZy4gSWYgbWF0Y2ggaXMgJycsIGl0IGlzIGNvbnNpZGVyZWQgYXMgYSBtYXRjaCBpbiBBbmd1bGFyIHJvdXRpbmcuXG4gICAgICogQHBhcmFtIHNvdXJjZSBTb3VyY2Ugc3RyaW5nIGZyb20gb24gd2hpY2ggY29tcGFyaXNvbiBpcyBiYXNlZC5cbiAgICAgKiBAcGFyYW0gbWF0Y2ggTWF0Y2ggc3RyaW5nIHRvIHdoaWNoIHRoZSBzb3VyY2UgaXMgbWF0Y2hlZCB0by5cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgZmluZExvbmdlc3RQYXRoTWF0Y2goc291cmNlOiBzdHJpbmcsIG1hdGNoOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgY29uc3Qgc291cmNlU2VnbWVudHMgPSBzb3VyY2Uuc3BsaXQoJy8nKTtcbiAgICAgICAgY29uc3QgbWF0Y2hTZWdtZW50cyA9IG1hdGNoLnNwbGl0KCcvJyk7XG5cbiAgICAgICAgaWYgKG1hdGNoU2VnbWVudHMubGVuZ3RoID09PSAxICYmIG1hdGNoU2VnbWVudHNbMF0gPT09ICcnKSB7XG4gICAgICAgICAgICAvLyBpdCdzIGEgaGl0LCBiZWNhdXNlIGVtcHR5IHJvdXRlIG11c3QgYWx3YXlzIGJlIHByb2Nlc3NlZCAoa2luZCBvZiBhIFwiYWJzdHJhY3RcIiByb3V0ZSlcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzb3VyY2VTZWdtZW50c1swXSA9PT0gbWF0Y2hTZWdtZW50c1swXSkge1xuICAgICAgICAgICAgLy8gdGhlcmUgaXMgYSBtYXRjaCwgZmluZCBob3cgbG9uZyBpdCBpc1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBzb3VyY2VTZWdtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChzb3VyY2VTZWdtZW50c1tpXSAhPT0gbWF0Y2hTZWdtZW50c1tpXSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBlbmQgb2YgbWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNvdXJjZVNlZ21lbnRzLnNsaWNlKDAsIGkpLmpvaW4oJy8nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIHRoZXJlIGlzIGZ1bGwgbWF0Y2hcbiAgICAgICAgICAgIHJldHVybiBzb3VyY2VTZWdtZW50cy5qb2luKCcvJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9yQ3JlYXRlUm91dGVGb3JNb2R1bGUobW9kdWxlS2V5OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLmxhenlMb2FkZWRSb3V0ZXNDb25maWdbbW9kdWxlS2V5XSkge1xuICAgICAgICAgICAgdGhpcy5sYXp5TG9hZGVkUm91dGVzQ29uZmlnW21vZHVsZUtleV0gPSB7XG4gICAgICAgICAgICAgICAgbG9hZGVkUm91dGVzU3ViamVjdDogbmV3IFJlcGxheVN1YmplY3Q8Um91dGVzPigxKSxcbiAgICAgICAgICAgICAgICBpc0xvYWRFbmQ6IGZhbHNlXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubGF6eUxvYWRlZFJvdXRlc0NvbmZpZ1ttb2R1bGVLZXldO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TW9kdWxlUGF0aEZyb21Sb3V0ZXJMaW5rKHBhdGg6IHN0cmluZyB8IEFycmF5PHN0cmluZz4pIHtcbiAgICAgICAgcmV0dXJuICgnLycgKyAoQXJyYXkuaXNBcnJheShwYXRoKSA/IHBhdGguam9pbignLycpIDogcGF0aCkpLnJlcGxhY2UoL1xcL1xcLy9nLCAnLycpO1xuICAgIH1cbn1cbiJdfQ==
180
+ }], ctorParameters: () => [] });
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9ucy1yb3V0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc3JjL3NlcnZpY2VzL2NvbW1vbnMtcm91dGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFTLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBUyxNQUFNLGlCQUFpQixDQUFDO0FBRW5LLE9BQU8sRUFBYSxhQUFhLEVBQVUsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7QUFHcEQsTUFBTSxPQUFPLG9CQUFvQjtJQWlCN0I7UUFoQmlCLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUM5RCx3QkFBbUIsR0FBRyxlQUFlLENBQUM7UUFHL0MsZ0NBQTJCLEdBQWEsRUFBRSxDQUFDO1FBRTNDLDJCQUFzQixHQU8xQixFQUFFLENBQUM7UUFHSCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM1RCxJQUFJLEtBQUssWUFBWSxlQUFlLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEMs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LENBQUMsQ0FBQztnQkFDakQsU0FBUyxFQUFFLEtBQUs7YUFDbkIsQ0FBQztRQUNOLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU8sMkJBQTJCLENBQUMsSUFBNEI7UUFDNUQsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN2RixDQUFDOzhHQXZNUSxvQkFBb0I7a0hBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge05hdmlnYXRpb25DYW5jZWwsIE5hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25FcnJvciwgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZSwgUm91dGVDb25maWdMb2FkRW5kLCBSb3V0ZUNvbmZpZ0xvYWRTdGFydCwgUm91dGVyLCBSb3V0ZXN9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpcnN0fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vbG9nL2xvZ2dlci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbW1vbnNSb3V0ZXJTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gaW5qZWN0KExvZ2dlclNlcnZpY2UpLmNyZWF0ZSgnQ29tbW9uc1JvdXRlclNlcnZpY2UnKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlc0xvYWRlZFByb3BLZXkgPSAnX2xvYWRlZFJvdXRlcyc7XG5cbiAgICBwcml2YXRlIGN1cnJlbnROYXZpZ2F0aW9uUGF0aD86IHN0cmluZztcbiAgICBwcml2YXRlIGN1cnJlbnROYXZpZ2F0aW9uTW9kdWxlS2V5czogc3RyaW5nW10gPSBbXTtcblxuICAgIHByaXZhdGUgbGF6eUxvYWRlZFJvdXRlc0NvbmZpZzoge1xuICAgICAgICBbcGF0aDogc3RyaW5nXToge1xuICAgICAgICAgICAgcm91dGU/OiBSb3V0ZTtcbiAgICAgICAgICAgIGlzTG9hZEVuZDogYm9vbGVhbjtcbiAgICAgICAgICAgIGxvYWRlZFJvdXRlcz86IFJvdXRlcztcbiAgICAgICAgICAgIGxvYWRlZFJvdXRlc1N1YmplY3Q6IFN1YmplY3Q8Um91dGVzPjtcbiAgICAgICAgfTtcbiAgICB9ID0ge307XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0TmF2aWdhdGlvbihldmVudC51cmwpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIFJvdXRlQ29uZmlnTG9hZFN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXJrTmF2aWdhdGlvbkNvbmZpZ0xvYWQoZXZlbnQucm91dGUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIFJvdXRlQ29uZmlnTG9hZEVuZCkge1xuICAgICAgICAgICAgICAgIHRoaXMubWFya05hdmlnYXRpb25Db25maWdMb2FkKGV2ZW50LnJvdXRlLCB0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kIHx8IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkNhbmNlbCB8fCBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgIHRoaXMuZmluaXNoTmF2aWdhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Um91dGVMb2FkZWRDaGlsZHJlbihwYXRoOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+KTogUm91dGVzIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0T3JDcmVhdGVSb3V0ZUZvck1vZHVsZSh0aGlzLmdldE1vZHVsZVBhdGhGcm9tUm91dGVyTGluayhwYXRoKSkubG9hZGVkUm91dGVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRSb3V0ZUxvYWRlZENoaWxkcmVuJChwYXRoOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxSb3V0ZXM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0T3JDcmVhdGVSb3V0ZUZvck1vZHVsZSh0aGlzLmdldE1vZHVsZVBhdGhGcm9tUm91dGVyTGluayhwYXRoKSkubG9hZGVkUm91dGVzU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKGZpcnN0KCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0aWFsaXplKCkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnSW5pdGlhbGl6ZWQuJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGFydE5hdmlnYXRpb24odXJsOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50TmF2aWdhdGlvblBhdGggPSB1cmwuc3BsaXQoJz8nKVswXS5zcGxpdCgnIycpWzBdO1xuICAgICAgICB0aGlzLmN1cnJlbnROYXZpZ2F0aW9uTW9kdWxlS2V5cyA9IFtdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluaXNoTmF2aWdhdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE5hdmlnYXRpb25Nb2R1bGVLZXlzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TmF2aWdhdGlvbk1vZHVsZUtleXMuZm9yRWFjaChrID0+IHRoaXMuZ2V0TG9hZGVkUm91dGVzRnJvbVJvdXRlKGssIHRydWUpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnROYXZpZ2F0aW9uUGF0aCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hcmtOYXZpZ2F0aW9uQ29uZmlnTG9hZChyb3V0ZTogUm91dGUsIGlzRW5kID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3Qgcm91dGVQYXRoID0gcm91dGUucGF0aCA/PyAnJztcblxuICAgICAgICBsZXQgbW9kdWxlS2V5ID0gcm91dGVQYXRoO1xuICAgICAgICBjb25zdCBjdXJyZW50TmF2aWdhdGlvblBhdGhSb3V0ZVBhdGhJZHggPSB0aGlzLmN1cnJlbnROYXZpZ2F0aW9uUGF0aD8uaW5kZXhPZihyb3V0ZVBhdGgpID8/IC0xO1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50TmF2aWdhdGlvblBhdGggJiYgY3VycmVudE5hdmlnYXRpb25QYXRoUm91dGVQYXRoSWR4ID49IDApIHtcbiAgICAgICAgICAgIG1vZHVsZUtleSA9IHRoaXMuY3VycmVudE5hdmlnYXRpb25QYXRoLnN1YnN0cmluZygwLCBjdXJyZW50TmF2aWdhdGlvblBhdGhSb3V0ZVBhdGhJZHggKyByb3V0ZVBhdGgubGVuZ3RoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnROYXZpZ2F0aW9uUGF0aCAmJiByb3V0ZVBhdGggIT09IHRoaXMuY3VycmVudE5hdmlnYXRpb25QYXRoICYmICFyb3V0ZVBhdGguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAvLyB1c3VhbGx5IG1lYW5zIHRoYXQgcmVkaXJlY3QgdG8gY3VycmVudE5hdmlnYXRpb25QYXRoIHdhcyBkb25lLCBhZGRpdGlvbmFsbHksIHJvdXRlIHBhdGggd2FzIGFsc28gdHJpZ2dlcmVkIG9uIGxhenkgcm91dGVzIGxvYWRcbiAgICAgICAgICAgIG1vZHVsZUtleSA9IGAke3RoaXMuY3VycmVudE5hdmlnYXRpb25QYXRofS8ke3JvdXRlUGF0aH1gO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpc0VuZCAmJiB0aGlzLmN1cnJlbnROYXZpZ2F0aW9uTW9kdWxlS2V5cy5pbmRleE9mKG1vZHVsZUtleSkgPCAwKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnROYXZpZ2F0aW9uTW9kdWxlS2V5cy5wdXNoKG1vZHVsZUtleSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxvZ2dlci50cmFjZShgQ29uZmlnIGxvYWQgJHtpc0VuZCA/ICdlbmQnIDogJ3N0YXJ0J30gZm9yICR7bW9kdWxlS2V5fSAocm91dGVQYXRoOiAke3JvdXRlUGF0aH07IG5hdmlnYXRpb25Vcmw6ICR7dGhpcy5jdXJyZW50TmF2aWdhdGlvblBhdGh9KWApO1xuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuZ2V0T3JDcmVhdGVSb3V0ZUZvck1vZHVsZShtb2R1bGVLZXkpO1xuICAgICAgICBjb25maWcucm91dGUgPSByb3V0ZTtcbiAgICAgICAgY29uZmlnLmlzTG9hZEVuZCA9IGlzRW5kO1xuXG4gICAgICAgIGlmIChpc0VuZCkge1xuICAgICAgICAgICAgdGhpcy5nZXRMb2FkZWRSb3V0ZXNGcm9tUm91dGUobW9kdWxlS2V5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TG9hZGVkUm91dGVzRnJvbVJvdXRlKG1vZHVsZUtleTogc3RyaW5nLCBpc0ZpbmlzaCA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IG1vZHVsZUNvbmZpZyA9IHRoaXMubGF6eUxvYWRlZFJvdXRlc0NvbmZpZ1ttb2R1bGVLZXldO1xuICAgICAgICBpZiAoIW1vZHVsZUNvbmZpZz8ucm91dGUgfHwgQXJyYXkuaXNBcnJheShtb2R1bGVDb25maWcubG9hZGVkUm91dGVzKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbW9kdWxlQ29uZmlnLmxvYWRlZFJvdXRlcyA9IG1vZHVsZUNvbmZpZy5yb3V0ZSFbdGhpcy5yb3V0ZXNMb2FkZWRQcm9wS2V5IGFzIGtleW9mIG9iamVjdF07XG5cbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KG1vZHVsZUNvbmZpZy5sb2FkZWRSb3V0ZXMpICYmIGlzRmluaXNoKSB7XG4gICAgICAgICAgICAvLyBpZiBpcyBjYWxsZWQgZnJvbSBmaW5pc2ggYW5kIG5vIGxhenkgbG9hZGVkIHJvdXRlcyBhcmUgbWF0Y2hlZCBmcm9tIHJvdXRlciBldmVudHMsIHRyeSBmaW5kaW5nIGluIHJvdXRlIGNvbmZpZywgaXQgc2hvdWxkIGJlIHRoZXJlIVxuICAgICAgICAgICAgdGhpcy5sb2dnZXIudHJhY2UoYFJvdXRlIGxvYWRlZFJvdXRlcyBmb3IgJHttb2R1bGVLZXl9IG5vdCBmb3VuZCwgc2VhcmNoaW5nIGluIHJvdXRlciBjb25maWcgbm93YCk7XG4gICAgICAgICAgICBjb25zdCByb3V0ZSA9IHRoaXMuZmluZFJvdXRlSW5Sb3V0ZUNvbmZpZyhtb2R1bGVLZXkpO1xuICAgICAgICAgICAgaWYgKHJvdXRlKSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlQ29uZmlnLnJvdXRlID0gcm91dGU7XG4gICAgICAgICAgICAgICAgbW9kdWxlQ29uZmlnLmxvYWRlZFJvdXRlcyA9IG1vZHVsZUNvbmZpZy5yb3V0ZSFbdGhpcy5yb3V0ZXNMb2FkZWRQcm9wS2V5IGFzIGtleW9mIG9iamVjdF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oYFJvdXRlIGxvYWRlZFJvdXRlcyBmb3IgJHttb2R1bGVLZXl9IHdlcmUgbm90IGZvdW5kIGluIHJvdXRlciBjb25maWdgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgbW9kdWxlQ29uZmlnLmxvYWRlZFJvdXRlcyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIG1vZHVsZUNvbmZpZy5sb2FkZWRSb3V0ZXNTdWJqZWN0Lm5leHQobW9kdWxlQ29uZmlnLmxvYWRlZFJvdXRlcyEpO1xuICAgICAgICAgICAgbW9kdWxlQ29uZmlnLmxvYWRlZFJvdXRlc1N1YmplY3QuY29tcGxldGUoKTtcblxuICAgICAgICAgICAgdGhpcy5sb2dnZXIudHJhY2UoYENvbmZpZyBsb2FkIGZvciAke21vZHVsZUtleX0gaXMgY29tcGxldGVgLCBtb2R1bGVDb25maWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VhcmNoIGZvciByb3V0ZSBjb25maWcgYnkgbW9kdWxlIHBhdGggYnkgcmVjdXJzaXZlIHNjYW5uaW5nIG9mIHJvdXRlciBjb25maWcgdHJlZS5cbiAgICAgKiBAcGFyYW0gbW9kdWxlUGF0aCBQYXRoIG9mIG1vZHVsZSB0aGF0IGlzIHNlYXJjaGVkLlxuICAgICAqIEBwYXJhbSByb3V0ZXMgUm91dGVzIHRvIGJlIHNjYW5uZWQuIElmIG5vdCBwcm92aWRlZCwgaXQgc3RhcnRzIG9uIHJvb3Qgcm91dGVyIGNvbmZpZy5cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgZmluZFJvdXRlSW5Sb3V0ZUNvbmZpZyhtb2R1bGVQYXRoOiBzdHJpbmcsIHJvdXRlczogUm91dGVzID0gdGhpcy5yb3V0ZXIuY29uZmlnKTogUm91dGUgfCBudWxsIHtcbiAgICAgICAgaWYgKG1vZHVsZVBhdGguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICBtb2R1bGVQYXRoID0gbW9kdWxlUGF0aC5zdWJzdHJpbmcoMSk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IHJvdXRlIG9mIHJvdXRlcykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiByb3V0ZS5wYXRoID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHJvdXRlUGF0aCA9IHJvdXRlLnBhdGg7XG4gICAgICAgICAgICBpZiAocm91dGVQYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgICAgIHJvdXRlUGF0aCA9IHJvdXRlUGF0aC5zdWJzdHJpbmcoMSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGxvbmdlc3RQYXRoTWF0Y2ggPSB0aGlzLmZpbmRMb25nZXN0UGF0aE1hdGNoKG1vZHVsZVBhdGgsIHJvdXRlUGF0aCk7XG4gICAgICAgICAgICBpZiAobG9uZ2VzdFBhdGhNYXRjaCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyB0aGVyZSBpcyBhIHBhcnRpYWwgb3IgZnVsbCBtYXRjaFxuICAgICAgICAgICAgaWYgKHJvdXRlLmxvYWRDaGlsZHJlbiAmJiBtb2R1bGVQYXRoID09PSBsb25nZXN0UGF0aE1hdGNoKSB7XG4gICAgICAgICAgICAgICAgLy8gaXQncyBhIGhpdCFcbiAgICAgICAgICAgICAgICByZXR1cm4gcm91dGU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJvdXRlLmxvYWRDaGlsZHJlbiAmJiBBcnJheS5pc0FycmF5KHJvdXRlW3RoaXMucm91dGVzTG9hZGVkUHJvcEtleSBhcyBrZXlvZiBvYmplY3RdKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZmluZFJvdXRlSW5Sb3V0ZUNvbmZpZyhtb2R1bGVQYXRoLnN1YnN0cmluZyhsb25nZXN0UGF0aE1hdGNoLmxlbmd0aCwgbW9kdWxlUGF0aC5sZW5ndGgpLCByb3V0ZVt0aGlzLnJvdXRlc0xvYWRlZFByb3BLZXkgYXMga2V5b2Ygb2JqZWN0XSk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAocm91dGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmZpbmRSb3V0ZUluUm91dGVDb25maWcobW9kdWxlUGF0aC5zdWJzdHJpbmcobG9uZ2VzdFBhdGhNYXRjaC5sZW5ndGgsIG1vZHVsZVBhdGgubGVuZ3RoKSwgcm91dGUuY2hpbGRyZW4pO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGaW5kcyBsb25nZXN0IHBhdGggbWF0Y2ggb2Ygc291cmNlIHRvIG1hdGNoIHN0cmluZy4gSWYgbWF0Y2ggaXMgJycsIGl0IGlzIGNvbnNpZGVyZWQgYXMgYSBtYXRjaCBpbiBBbmd1bGFyIHJvdXRpbmcuXG4gICAgICogQHBhcmFtIHNvdXJjZSBTb3VyY2Ugc3RyaW5nIGZyb20gb24gd2hpY2ggY29tcGFyaXNvbiBpcyBiYXNlZC5cbiAgICAgKiBAcGFyYW0gbWF0Y2ggTWF0Y2ggc3RyaW5nIHRvIHdoaWNoIHRoZSBzb3VyY2UgaXMgbWF0Y2hlZCB0by5cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgZmluZExvbmdlc3RQYXRoTWF0Y2goc291cmNlOiBzdHJpbmcsIG1hdGNoOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgY29uc3Qgc291cmNlU2VnbWVudHMgPSBzb3VyY2Uuc3BsaXQoJy8nKTtcbiAgICAgICAgY29uc3QgbWF0Y2hTZWdtZW50cyA9IG1hdGNoLnNwbGl0KCcvJyk7XG5cbiAgICAgICAgaWYgKG1hdGNoU2VnbWVudHMubGVuZ3RoID09PSAxICYmIG1hdGNoU2VnbWVudHNbMF0gPT09ICcnKSB7XG4gICAgICAgICAgICAvLyBpdCdzIGEgaGl0LCBiZWNhdXNlIGVtcHR5IHJvdXRlIG11c3QgYWx3YXlzIGJlIHByb2Nlc3NlZCAoa2luZCBvZiBhIFwiYWJzdHJhY3RcIiByb3V0ZSlcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzb3VyY2VTZWdtZW50c1swXSA9PT0gbWF0Y2hTZWdtZW50c1swXSkge1xuICAgICAgICAgICAgLy8gdGhlcmUgaXMgYSBtYXRjaCwgZmluZCBob3cgbG9uZyBpdCBpc1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBzb3VyY2VTZWdtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChzb3VyY2VTZWdtZW50c1tpXSAhPT0gbWF0Y2hTZWdtZW50c1tpXSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBlbmQgb2YgbWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNvdXJjZVNlZ21lbnRzLnNsaWNlKDAsIGkpLmpvaW4oJy8nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIHRoZXJlIGlzIGZ1bGwgbWF0Y2hcbiAgICAgICAgICAgIHJldHVybiBzb3VyY2VTZWdtZW50cy5qb2luKCcvJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9yQ3JlYXRlUm91dGVGb3JNb2R1bGUobW9kdWxlS2V5OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLmxhenlMb2FkZWRSb3V0ZXNDb25maWdbbW9kdWxlS2V5XSkge1xuICAgICAgICAgICAgdGhpcy5sYXp5TG9hZGVkUm91dGVzQ29uZmlnW21vZHVsZUtleV0gPSB7XG4gICAgICAgICAgICAgICAgbG9hZGVkUm91dGVzU3ViamVjdDogbmV3IFJlcGxheVN1YmplY3Q8Um91dGVzPigxKSxcbiAgICAgICAgICAgICAgICBpc0xvYWRFbmQ6IGZhbHNlXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubGF6eUxvYWRlZFJvdXRlc0NvbmZpZ1ttb2R1bGVLZXldO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TW9kdWxlUGF0aEZyb21Sb3V0ZXJMaW5rKHBhdGg6IHN0cmluZyB8IEFycmF5PHN0cmluZz4pIHtcbiAgICAgICAgcmV0dXJuICgnLycgKyAoQXJyYXkuaXNBcnJheShwYXRoKSA/IHBhdGguam9pbignLycpIDogcGF0aCkpLnJlcGxhY2UoL1xcL1xcLy9nLCAnLycpO1xuICAgIH1cbn1cbiJdfQ==