@energycap/components 0.39.5-ECAP-23220-bc-file-upload-dialog.20240111-1135 → 0.39.6-standalone-components.20240111-1648

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 (137) hide show
  1. package/esm2020/lib/components.module.mjs +73 -20
  2. package/esm2020/lib/controls/banner/banner.component.mjs +5 -5
  3. package/esm2020/lib/controls/button/button.component.mjs +6 -5
  4. package/esm2020/lib/controls/button/copy-button.directive.mjs +4 -3
  5. package/esm2020/lib/controls/button/copy-table-button.directive.mjs +4 -3
  6. package/esm2020/lib/controls/checkbox/checkbox.component.mjs +10 -8
  7. package/esm2020/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +4 -4
  8. package/esm2020/lib/controls/combobox/combobox.component.mjs +9 -9
  9. package/esm2020/lib/controls/dropdown/dropdown.component.mjs +6 -8
  10. package/esm2020/lib/controls/file-upload/file-upload.component.mjs +11 -10
  11. package/esm2020/lib/controls/form-control/form-control.component.mjs +4 -4
  12. package/esm2020/lib/controls/form-control-label/form-control-label.component.mjs +5 -4
  13. package/esm2020/lib/controls/form-group/form-group.component.mjs +5 -4
  14. package/esm2020/lib/controls/help-popover/help-popover.component.mjs +7 -6
  15. package/esm2020/lib/controls/item-picker/item-picker.component.mjs +11 -12
  16. package/esm2020/lib/controls/link-button/link-button.component.mjs +3 -3
  17. package/esm2020/lib/controls/menu/menu.component.mjs +9 -8
  18. package/esm2020/lib/controls/navigation/nav-item-active.directive.mjs +4 -3
  19. package/esm2020/lib/controls/numericbox/numericbox.component.mjs +6 -6
  20. package/esm2020/lib/controls/popover/popover.component.mjs +5 -5
  21. package/esm2020/lib/controls/radio-button/radio-button.component.mjs +8 -6
  22. package/esm2020/lib/controls/select/select.component.mjs +8 -6
  23. package/esm2020/lib/controls/tabs/tabs.component.mjs +7 -6
  24. package/esm2020/lib/controls/textbox/textbox.component.mjs +8 -10
  25. package/esm2020/lib/display/app-bar/app-bar.component.mjs +6 -6
  26. package/esm2020/lib/display/avatar/avatar.component.mjs +3 -3
  27. package/esm2020/lib/display/confirm/confirm.component.mjs +12 -12
  28. package/esm2020/lib/display/dialog/dialog-group/dialog-group.component.mjs +5 -5
  29. package/esm2020/lib/display/dialog/dialog.component.mjs +4 -3
  30. package/esm2020/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +7 -7
  31. package/esm2020/lib/display/item-display/item-display.component.mjs +8 -7
  32. package/esm2020/lib/display/json-display/json-display.component.mjs +6 -6
  33. package/esm2020/lib/display/resizable/resizable.component.mjs +3 -3
  34. package/esm2020/lib/display/spinner/spinner.component.mjs +3 -3
  35. package/esm2020/lib/display/splash/splash.component.mjs +3 -3
  36. package/esm2020/lib/display/table/resizable-column.component.mjs +3 -3
  37. package/esm2020/lib/display/table/resizable-table.directive.mjs +4 -3
  38. package/esm2020/lib/display/table/searchable-table.component.mjs +7 -9
  39. package/esm2020/lib/display/table/table-detail-row.component.mjs +3 -3
  40. package/esm2020/lib/display/table/table-locked-column.component.mjs +3 -3
  41. package/esm2020/lib/display/table/table-master-header-row.component.mjs +4 -4
  42. package/esm2020/lib/display/table/table-master-row.component.mjs +6 -6
  43. package/esm2020/lib/display/table/table-pagination.component.mjs +6 -6
  44. package/esm2020/lib/display/table/table-selectable-row.component.mjs +6 -6
  45. package/esm2020/lib/display/table/table.component.mjs +5 -5
  46. package/esm2020/lib/display/tags/tags.component.mjs +6 -5
  47. package/esm2020/lib/display/toast/toast/toast.component.mjs +8 -7
  48. package/esm2020/lib/display/toast/toaster/toaster.component.mjs +4 -4
  49. package/esm2020/lib/display/tooltip/tooltip.component.mjs +5 -5
  50. package/esm2020/lib/display/tooltip-directive/tooltip.directive.mjs +4 -3
  51. package/esm2020/lib/display/tour/tour.component.mjs +6 -6
  52. package/esm2020/lib/display/tree/tree.component.mjs +8 -10
  53. package/esm2020/lib/display/view-overlay/view-overlay.component.mjs +8 -7
  54. package/esm2020/lib/shared/directives/click-area-for/click-area-for.directive.mjs +4 -3
  55. package/esm2020/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +4 -3
  56. package/esm2020/lib/shared/directives/popup/popup-container.directive.mjs +6 -3
  57. package/esm2020/lib/shared/display/pipes/date-display.pipe.mjs +6 -3
  58. package/esm2020/lib/shared/display/pipes/highlight-text.pipe.mjs +4 -3
  59. package/esm2020/lib/shared/display/pipes/relative-date.pipe.mjs +4 -3
  60. package/esm2020/lib/shared/display/pipes/row-count.pipe.mjs +4 -3
  61. package/esm2020/lib/shared/display/pipes/time-display.pipe.mjs +6 -3
  62. package/esm2020/lib/shared/page/page-title/page-title.component.mjs +5 -5
  63. package/esm2020/lib/shared/page/page-view/page-view.component.mjs +10 -11
  64. package/esm2020/lib/shared/testing/public-mocks.spec.mjs +6 -3
  65. package/esm2020/lib/shared/wizard/wizard-buttons/wizard-buttons.component.mjs +5 -5
  66. package/esm2020/lib/shared/wizard/wizard-progress/wizard-progress.component.mjs +6 -5
  67. package/fesm2015/energycap-components.mjs +1052 -981
  68. package/fesm2015/energycap-components.mjs.map +1 -1
  69. package/fesm2020/energycap-components.mjs +1049 -978
  70. package/fesm2020/energycap-components.mjs.map +1 -1
  71. package/lib/components.module.d.ts +72 -72
  72. package/lib/controls/banner/banner.component.d.ts +1 -1
  73. package/lib/controls/button/button.component.d.ts +1 -1
  74. package/lib/controls/button/copy-button.directive.d.ts +1 -1
  75. package/lib/controls/button/copy-table-button.directive.d.ts +1 -1
  76. package/lib/controls/checkbox/checkbox.component.d.ts +3 -3
  77. package/lib/controls/collapsible-toggle/collapsible-toggle.component.d.ts +1 -1
  78. package/lib/controls/combobox/combobox.component.d.ts +1 -1
  79. package/lib/controls/dropdown/dropdown.component.d.ts +1 -1
  80. package/lib/controls/file-upload/file-upload.component.d.ts +1 -1
  81. package/lib/controls/form-control/form-control.component.d.ts +1 -1
  82. package/lib/controls/form-control-label/form-control-label.component.d.ts +1 -1
  83. package/lib/controls/form-group/form-group.component.d.ts +1 -1
  84. package/lib/controls/help-popover/help-popover.component.d.ts +1 -1
  85. package/lib/controls/item-picker/item-picker.component.d.ts +1 -1
  86. package/lib/controls/link-button/link-button.component.d.ts +1 -1
  87. package/lib/controls/menu/menu.component.d.ts +1 -1
  88. package/lib/controls/navigation/nav-item-active.directive.d.ts +1 -1
  89. package/lib/controls/numericbox/numericbox.component.d.ts +1 -1
  90. package/lib/controls/popover/popover.component.d.ts +1 -1
  91. package/lib/controls/radio-button/radio-button.component.d.ts +1 -1
  92. package/lib/controls/select/select.component.d.ts +1 -1
  93. package/lib/controls/tabs/tabs.component.d.ts +1 -1
  94. package/lib/controls/textbox/textbox.component.d.ts +1 -1
  95. package/lib/display/app-bar/app-bar.component.d.ts +1 -1
  96. package/lib/display/avatar/avatar.component.d.ts +1 -1
  97. package/lib/display/confirm/confirm.component.d.ts +1 -1
  98. package/lib/display/dialog/dialog-group/dialog-group.component.d.ts +1 -1
  99. package/lib/display/dialog/dialog.component.d.ts +1 -1
  100. package/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.d.ts +1 -1
  101. package/lib/display/item-display/item-display.component.d.ts +1 -1
  102. package/lib/display/json-display/json-display.component.d.ts +1 -1
  103. package/lib/display/resizable/resizable.component.d.ts +1 -1
  104. package/lib/display/spinner/spinner.component.d.ts +1 -1
  105. package/lib/display/splash/splash.component.d.ts +1 -1
  106. package/lib/display/table/resizable-column.component.d.ts +1 -1
  107. package/lib/display/table/resizable-table.directive.d.ts +1 -1
  108. package/lib/display/table/searchable-table.component.d.ts +1 -1
  109. package/lib/display/table/table-detail-row.component.d.ts +1 -1
  110. package/lib/display/table/table-locked-column.component.d.ts +1 -1
  111. package/lib/display/table/table-master-header-row.component.d.ts +1 -1
  112. package/lib/display/table/table-master-row.component.d.ts +1 -1
  113. package/lib/display/table/table-pagination.component.d.ts +1 -1
  114. package/lib/display/table/table-selectable-row.component.d.ts +1 -1
  115. package/lib/display/table/table.component.d.ts +1 -1
  116. package/lib/display/tags/tags.component.d.ts +1 -1
  117. package/lib/display/toast/toast/toast.component.d.ts +1 -1
  118. package/lib/display/toast/toaster/toaster.component.d.ts +1 -1
  119. package/lib/display/tooltip/tooltip.component.d.ts +1 -1
  120. package/lib/display/tooltip-directive/tooltip.directive.d.ts +1 -1
  121. package/lib/display/tour/tour.component.d.ts +1 -1
  122. package/lib/display/tree/tree.component.d.ts +1 -1
  123. package/lib/display/view-overlay/view-overlay.component.d.ts +1 -1
  124. package/lib/shared/directives/click-area-for/click-area-for.directive.d.ts +1 -1
  125. package/lib/shared/directives/if-viewport-width/if-viewport-width.directive.d.ts +1 -1
  126. package/lib/shared/directives/popup/popup-container.directive.d.ts +1 -1
  127. package/lib/shared/display/pipes/date-display.pipe.d.ts +1 -1
  128. package/lib/shared/display/pipes/highlight-text.pipe.d.ts +1 -1
  129. package/lib/shared/display/pipes/relative-date.pipe.d.ts +1 -1
  130. package/lib/shared/display/pipes/row-count.pipe.d.ts +1 -1
  131. package/lib/shared/display/pipes/time-display.pipe.d.ts +1 -1
  132. package/lib/shared/page/page-title/page-title.component.d.ts +1 -1
  133. package/lib/shared/page/page-view/page-view.component.d.ts +1 -1
  134. package/lib/shared/testing/public-mocks.spec.d.ts +1 -1
  135. package/lib/shared/wizard/wizard-buttons/wizard-buttons.component.d.ts +1 -1
  136. package/lib/shared/wizard/wizard-progress/wizard-progress.component.d.ts +1 -1
  137. package/package.json +1 -1
@@ -40,7 +40,7 @@ export class ResizableComponent extends ResizableBase {
40
40
  }
41
41
  }
42
42
  ResizableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResizableComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.CacheService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
43
- ResizableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ResizableComponent, selector: "ec-resizable", usesInheritance: true, ngImport: i0, template: `<div class="content">
43
+ ResizableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ResizableComponent, isStandalone: true, selector: "ec-resizable", usesInheritance: true, ngImport: i0, template: `<div class="content">
44
44
  <ng-content></ng-content>
45
45
  </div>
46
46
  <div class="handle" (mousedown)="startDrag($event)"></div>`, isInline: true, styles: [":host{width:240px;max-width:480px;min-width:100px;position:relative;border-right:1px solid var(--ec-border-color);display:flex}:host.is-active{-webkit-user-select:none;user-select:none}:host.is-active .handle:after{background-color:var(--ec-color-interactive)}.handle{position:absolute;right:-7px;width:13px;height:100%;top:0;padding:0 5px;z-index:var(--ec-z-index-splitter)}.handle:after{content:\"\";display:block;transition:background-color .3s ease;height:100%;position:relative}.handle:hover{cursor:col-resize}.handle:hover:after{background-color:var(--ec-color-interactive)}.content{overflow:hidden;display:flex;flex:1 1;min-height:0;min-width:0}.content ::ng-deep>*{flex:1 1;min-height:0;min-width:0}\n"] });
@@ -49,9 +49,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
49
49
  args: [{ selector: 'ec-resizable', template: `<div class="content">
50
50
  <ng-content></ng-content>
51
51
  </div>
52
- <div class="handle" (mousedown)="startDrag($event)"></div>`, styles: [":host{width:240px;max-width:480px;min-width:100px;position:relative;border-right:1px solid var(--ec-border-color);display:flex}:host.is-active{-webkit-user-select:none;user-select:none}:host.is-active .handle:after{background-color:var(--ec-color-interactive)}.handle{position:absolute;right:-7px;width:13px;height:100%;top:0;padding:0 5px;z-index:var(--ec-z-index-splitter)}.handle:after{content:\"\";display:block;transition:background-color .3s ease;height:100%;position:relative}.handle:hover{cursor:col-resize}.handle:hover:after{background-color:var(--ec-color-interactive)}.content{overflow:hidden;display:flex;flex:1 1;min-height:0;min-width:0}.content ::ng-deep>*{flex:1 1;min-height:0;min-width:0}\n"] }]
52
+ <div class="handle" (mousedown)="startDrag($event)"></div>`, standalone: true, styles: [":host{width:240px;max-width:480px;min-width:100px;position:relative;border-right:1px solid var(--ec-border-color);display:flex}:host.is-active{-webkit-user-select:none;user-select:none}:host.is-active .handle:after{background-color:var(--ec-color-interactive)}.handle{position:absolute;right:-7px;width:13px;height:100%;top:0;padding:0 5px;z-index:var(--ec-z-index-splitter)}.handle:after{content:\"\";display:block;transition:background-color .3s ease;height:100%;position:relative}.handle:hover{cursor:col-resize}.handle:hover:after{background-color:var(--ec-color-interactive)}.content{overflow:hidden;display:flex;flex:1 1;min-height:0;min-width:0}.content ::ng-deep>*{flex:1 1;min-height:0;min-width:0}\n"] }]
53
53
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.CacheService }, { type: Document, decorators: [{
54
54
  type: Inject,
55
55
  args: [DOCUMENT]
56
56
  }] }]; } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L3Jlc2l6YWJsZS9yZXNpemFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFHakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFHakQ7Ozs7Ozs7Ozs7R0FVRztBQVNILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxhQUFhO0lBQ25ELFlBQ1UsRUFBYyxFQUN0QixRQUFtQixFQUNuQixZQUEwQixFQUNSLFFBQWtCO1FBRXBDLEtBQUssQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBTGhDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFPdEIseUZBQXlGO1FBQ3pGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxnREFBZ0Q7SUFDekMsUUFBUTtRQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDekMsQ0FBQztJQUVEOztPQUVHO0lBQ08sUUFBUSxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNPLGFBQWEsQ0FBQyxNQUFnQjtRQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7OytHQS9CVSxrQkFBa0IsaUdBS25CLFFBQVE7bUdBTFAsa0JBQWtCLDJFQU5uQjs7O3VFQUcyRDsyRkFHMUQsa0JBQWtCO2tCQVI5QixTQUFTOytCQUNFLGNBQWMsWUFDZDs7O3VFQUcyRDs7MEJBUWxFLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBDYWNoZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2NhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZXNpemFibGVCYXNlIH0gZnJvbSAnLi9yZXNpemFibGUtYmFzZSc7XHJcblxyXG5cclxuLyoqXHJcbiAqIE1ha2UgYW4gZWxlbWVudCByZXNpemFibGUgaG9yaXpvbnRhbGx5IGJ5IHdyYXBwaW5nIGl0IGluIHRoZSBSZXNpemFibGVDb21wb25lbnQuXHJcbiAqIERlZmF1bHQgd2lkdGhzIC8gbGltaXRzIGFyZSBhcHBsaWVkIGJ1dCB5b3UgY2FuIG9wdGlvbmFsbHkgb3ZlcnJpZGUgdGhlbVxyXG4gKiB3aXRoIG1pbi13aWR0aCBhbmQgbWF4LXdpZHRoIHdpdGggc3R5bGUgYXR0cmlidXRlc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiA8ZWMtcmVzaXphYmxlIFtzdHlsZS53aWR0aC5weF09XCIyMDBcIlxyXG4gKiAgICAgICAgICAgICAgIFtzdHlsZS5taW4td2lkdGgucHhdPVwiNzVcIlxyXG4gKiAgICAgICAgICAgICAgIFtzdHlsZS5tYXgtd2lkdGgucHhdPVwiMzAwXCI+XHJcbiAqICAgIDxkaXY+IC4uLiA8L2Rpdj5cclxuICogPC9lYy1yZXNpemFibGU+XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLXJlc2l6YWJsZScsXHJcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYW5kbGVcIiAobW91c2Vkb3duKT1cInN0YXJ0RHJhZygkZXZlbnQpXCI+PC9kaXY+YCxcclxuICBzdHlsZVVybHM6IFsnLi9yZXNpemFibGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzaXphYmxlQ29tcG9uZW50IGV4dGVuZHMgUmVzaXphYmxlQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIGNhY2hlU2VydmljZTogQ2FjaGVTZXJ2aWNlLFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQ6IERvY3VtZW50KVxyXG4gIHtcclxuICAgIHN1cGVyKHJlbmRlcmVyLCBjYWNoZVNlcnZpY2UsIGRvY3VtZW50KTtcclxuXHJcbiAgICAvL2RlZmF1bHQgcmVtZW1iZXJXaWR0aCB0byB0cnVlIGZvciBzdGFuZGFyZCByZXNpemFibGUsIHJlc2l6YWJsZSB0YWJsZXMgZGVmYXVsdCB0byBmYWxzZVxyXG4gICAgdGhpcy5yZW1lbWJlcldpZHRoID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKiBTdG9yZSB0aGUgaG9zdCBlbGVtZW50IHRvIHJlZmVyZW5jZSBsYXRlciAqL1xyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudEVsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHRoZSBuZXcgd2lkdGggb2YgdGhlIGVsZW1lbnQgYW5kIGVtaXQgdGhlIG5ldyB3aWR0aCB0byBzdWJzY3JpYmVyc1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBzZXRXaWR0aCh3aWR0aDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY3VycmVudEVsLCAnd2lkdGgnLCB3aWR0aCArICdweCcpO1xyXG4gICAgdGhpcy5zYXZlV2lkdGhzKFt3aWR0aF0pO1xyXG4gIH1cclxuXHJcbiAgLyoqQ2FsbGVkIGZyb20gdGhlIGJhc2UgY2xhc3Mgd2hlbiBjYWNoZWQgd2lkdGhzIGFyZSBhdmFpbGFibGUgYW5kIHJlc3RvcmluZ1xyXG4gICAqIHdpZHRoIGlzIGVuYWJsZWQuIFdlIG9ubHkgY2FyZSBhYm91dCB0aGUgZmlyc3Qgb25lIGJlY2F1c2Ugd2Ugb25seSBoYXZlIG9uZSB3aWR0aFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCByZXN0b3JlV2lkdGhzKHdpZHRoczogbnVtYmVyW10pe1xyXG4gICAgdGhpcy5zZXRXaWR0aCh3aWR0aHNbMF0pO1xyXG4gIH1cclxufVxyXG4iXX0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L3Jlc2l6YWJsZS9yZXNpemFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFHakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFHakQ7Ozs7Ozs7Ozs7R0FVRztBQVVILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxhQUFhO0lBQ25ELFlBQ1UsRUFBYyxFQUN0QixRQUFtQixFQUNuQixZQUEwQixFQUNSLFFBQWtCO1FBRXBDLEtBQUssQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBTGhDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFPdEIseUZBQXlGO1FBQ3pGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxnREFBZ0Q7SUFDekMsUUFBUTtRQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDekMsQ0FBQztJQUVEOztPQUVHO0lBQ08sUUFBUSxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNPLGFBQWEsQ0FBQyxNQUFnQjtRQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7OytHQS9CVSxrQkFBa0IsaUdBS25CLFFBQVE7bUdBTFAsa0JBQWtCLCtGQVBqQjs7O3VFQUd5RDsyRkFJMUQsa0JBQWtCO2tCQVQ5QixTQUFTOytCQUNJLGNBQWMsWUFDZDs7O3VFQUd5RCxjQUV2RCxJQUFJOzswQkFPZixNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVzaXphYmxlQmFzZSB9IGZyb20gJy4vcmVzaXphYmxlLWJhc2UnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBNYWtlIGFuIGVsZW1lbnQgcmVzaXphYmxlIGhvcml6b250YWxseSBieSB3cmFwcGluZyBpdCBpbiB0aGUgUmVzaXphYmxlQ29tcG9uZW50LlxyXG4gKiBEZWZhdWx0IHdpZHRocyAvIGxpbWl0cyBhcmUgYXBwbGllZCBidXQgeW91IGNhbiBvcHRpb25hbGx5IG92ZXJyaWRlIHRoZW1cclxuICogd2l0aCBtaW4td2lkdGggYW5kIG1heC13aWR0aCB3aXRoIHN0eWxlIGF0dHJpYnV0ZXNcclxuICogQGV4YW1wbGVcclxuICogPGVjLXJlc2l6YWJsZSBbc3R5bGUud2lkdGgucHhdPVwiMjAwXCJcclxuICogICAgICAgICAgICAgICBbc3R5bGUubWluLXdpZHRoLnB4XT1cIjc1XCJcclxuICogICAgICAgICAgICAgICBbc3R5bGUubWF4LXdpZHRoLnB4XT1cIjMwMFwiPlxyXG4gKiAgICA8ZGl2PiAuLi4gPC9kaXY+XHJcbiAqIDwvZWMtcmVzaXphYmxlPlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2VjLXJlc2l6YWJsZScsXHJcbiAgICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhhbmRsZVwiIChtb3VzZWRvd24pPVwic3RhcnREcmFnKCRldmVudClcIj48L2Rpdj5gLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vcmVzaXphYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZXNpemFibGVDb21wb25lbnQgZXh0ZW5kcyBSZXNpemFibGVCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXHJcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgY2FjaGVTZXJ2aWNlOiBDYWNoZVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudDogRG9jdW1lbnQpXHJcbiAge1xyXG4gICAgc3VwZXIocmVuZGVyZXIsIGNhY2hlU2VydmljZSwgZG9jdW1lbnQpO1xyXG5cclxuICAgIC8vZGVmYXVsdCByZW1lbWJlcldpZHRoIHRvIHRydWUgZm9yIHN0YW5kYXJkIHJlc2l6YWJsZSwgcmVzaXphYmxlIHRhYmxlcyBkZWZhdWx0IHRvIGZhbHNlXHJcbiAgICB0aGlzLnJlbWVtYmVyV2lkdGggPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqIFN0b3JlIHRoZSBob3N0IGVsZW1lbnQgdG8gcmVmZXJlbmNlIGxhdGVyICovXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW50RWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgdGhlIG5ldyB3aWR0aCBvZiB0aGUgZWxlbWVudCBhbmQgZW1pdCB0aGUgbmV3IHdpZHRoIHRvIHN1YnNjcmliZXJzXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHNldFdpZHRoKHdpZHRoOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jdXJyZW50RWwsICd3aWR0aCcsIHdpZHRoICsgJ3B4Jyk7XHJcbiAgICB0aGlzLnNhdmVXaWR0aHMoW3dpZHRoXSk7XHJcbiAgfVxyXG5cclxuICAvKipDYWxsZWQgZnJvbSB0aGUgYmFzZSBjbGFzcyB3aGVuIGNhY2hlZCB3aWR0aHMgYXJlIGF2YWlsYWJsZSBhbmQgcmVzdG9yaW5nXHJcbiAgICogd2lkdGggaXMgZW5hYmxlZC4gV2Ugb25seSBjYXJlIGFib3V0IHRoZSBmaXJzdCBvbmUgYmVjYXVzZSB3ZSBvbmx5IGhhdmUgb25lIHdpZHRoXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHJlc3RvcmVXaWR0aHMod2lkdGhzOiBudW1iZXJbXSl7XHJcbiAgICB0aGlzLnNldFdpZHRoKHdpZHRoc1swXSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -4,9 +4,9 @@ import * as i0 from "@angular/core";
4
4
  export class SpinnerComponent {
5
5
  }
6
6
  SpinnerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
- SpinnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SpinnerComponent, selector: "ec-spinner", ngImport: i0, template: "<div class=\"spinner\">\r\n <span class=\"spinner-dot\"></span>\r\n <span class=\"spinner-dot\"></span>\r\n <span class=\"spinner-dot\"></span>\r\n <span class=\"spinner-dot\"></span>\r\n</div>", styles: ["@keyframes sk-bouncedelay{0%,80%,to{opacity:0}40%{opacity:1}}.spinner{display:flex}.spinner-dot{width:.75rem;height:.75rem;background-color:var(--ec-color-interactive);animation:sk-bouncedelay 1.7s infinite ease-in-out both;margin-right:.25rem}.spinner-dot:nth-child(1){animation-delay:-.6s}.spinner-dot:nth-child(2){animation-delay:-.4s}.spinner-dot:nth-child(3){animation-delay:-.2s}:host(.spinner-small) .spinner-dot{width:.5rem;height:.5rem;background-color:var(--ec-color-interactive);animation:sk-bouncedelay 1.7s infinite ease-in-out both;margin-right:.1666666667rem}:host(.spinner-small) .spinner-dot:nth-child(1){animation-delay:-.6s}:host(.spinner-small) .spinner-dot:nth-child(2){animation-delay:-.4s}:host(.spinner-small) .spinner-dot:nth-child(3){animation-delay:-.2s}\n"] });
7
+ SpinnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SpinnerComponent, isStandalone: true, selector: "ec-spinner", ngImport: i0, template: "<div class=\"spinner\">\r\n <span class=\"spinner-dot\"></span>\r\n <span class=\"spinner-dot\"></span>\r\n <span class=\"spinner-dot\"></span>\r\n <span class=\"spinner-dot\"></span>\r\n</div>", styles: ["@keyframes sk-bouncedelay{0%,80%,to{opacity:0}40%{opacity:1}}.spinner{display:flex}.spinner-dot{width:.75rem;height:.75rem;background-color:var(--ec-color-interactive);animation:sk-bouncedelay 1.7s infinite ease-in-out both;margin-right:.25rem}.spinner-dot:nth-child(1){animation-delay:-.6s}.spinner-dot:nth-child(2){animation-delay:-.4s}.spinner-dot:nth-child(3){animation-delay:-.2s}:host(.spinner-small) .spinner-dot{width:.5rem;height:.5rem;background-color:var(--ec-color-interactive);animation:sk-bouncedelay 1.7s infinite ease-in-out both;margin-right:.1666666667rem}:host(.spinner-small) .spinner-dot:nth-child(1){animation-delay:-.6s}:host(.spinner-small) .spinner-dot:nth-child(2){animation-delay:-.4s}:host(.spinner-small) .spinner-dot:nth-child(3){animation-delay:-.2s}\n"] });
8
8
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SpinnerComponent, decorators: [{
9
9
  type: Component,
10
- args: [{ selector: 'ec-spinner', template: "<div class=\"spinner\">\r\n <span class=\"spinner-dot\"></span>\r\n <span class=\"spinner-dot\"></span>\r\n <span class=\"spinner-dot\"></span>\r\n <span class=\"spinner-dot\"></span>\r\n</div>", styles: ["@keyframes sk-bouncedelay{0%,80%,to{opacity:0}40%{opacity:1}}.spinner{display:flex}.spinner-dot{width:.75rem;height:.75rem;background-color:var(--ec-color-interactive);animation:sk-bouncedelay 1.7s infinite ease-in-out both;margin-right:.25rem}.spinner-dot:nth-child(1){animation-delay:-.6s}.spinner-dot:nth-child(2){animation-delay:-.4s}.spinner-dot:nth-child(3){animation-delay:-.2s}:host(.spinner-small) .spinner-dot{width:.5rem;height:.5rem;background-color:var(--ec-color-interactive);animation:sk-bouncedelay 1.7s infinite ease-in-out both;margin-right:.1666666667rem}:host(.spinner-small) .spinner-dot:nth-child(1){animation-delay:-.6s}:host(.spinner-small) .spinner-dot:nth-child(2){animation-delay:-.4s}:host(.spinner-small) .spinner-dot:nth-child(3){animation-delay:-.2s}\n"] }]
10
+ args: [{ selector: 'ec-spinner', standalone: true, template: "<div class=\"spinner\">\r\n <span class=\"spinner-dot\"></span>\r\n <span class=\"spinner-dot\"></span>\r\n <span class=\"spinner-dot\"></span>\r\n <span class=\"spinner-dot\"></span>\r\n</div>", styles: ["@keyframes sk-bouncedelay{0%,80%,to{opacity:0}40%{opacity:1}}.spinner{display:flex}.spinner-dot{width:.75rem;height:.75rem;background-color:var(--ec-color-interactive);animation:sk-bouncedelay 1.7s infinite ease-in-out both;margin-right:.25rem}.spinner-dot:nth-child(1){animation-delay:-.6s}.spinner-dot:nth-child(2){animation-delay:-.4s}.spinner-dot:nth-child(3){animation-delay:-.2s}:host(.spinner-small) .spinner-dot{width:.5rem;height:.5rem;background-color:var(--ec-color-interactive);animation:sk-bouncedelay 1.7s infinite ease-in-out both;margin-right:.1666666667rem}:host(.spinner-small) .spinner-dot:nth-child(1){animation-delay:-.6s}:host(.spinner-small) .spinner-dot:nth-child(2){animation-delay:-.4s}:host(.spinner-small) .spinner-dot:nth-child(3){animation-delay:-.2s}\n"] }]
11
11
  }] });
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUTFDLGtJQUFrSTtBQUNsSSxNQUFNLE9BQU8sZ0JBQWdCOzs2R0FBaEIsZ0JBQWdCO2lHQUFoQixnQkFBZ0Isa0RDVDdCLHVNQUtNOzJGRElPLGdCQUFnQjtrQkFQNUIsU0FBUzsrQkFDRSxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLXNwaW5uZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGlubmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zcGlubmVyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuXHJcbi8qKiBFeHBvc2VzIHRoZSBtYXJrdXAgYW5kIHN0eWxlcyB0aGF0IHJlcHJlc2VudCB0aGUgc3Bpbm5lci4gTm8gaW5wdXRzIG9yIG91dHB1dHMgZGVmaW5lZCBiZWNhdXNlIGl0IGlzIGp1c3QgYSB2aXN1YWwgY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIFNwaW5uZXJDb21wb25lbnQgeyB9XHJcbiIsIjxkaXYgY2xhc3M9XCJzcGlubmVyXCI+XHJcbiAgPHNwYW4gY2xhc3M9XCJzcGlubmVyLWRvdFwiPjwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cInNwaW5uZXItZG90XCI+PC9zcGFuPlxyXG4gIDxzcGFuIGNsYXNzPVwic3Bpbm5lci1kb3RcIj48L3NwYW4+XHJcbiAgPHNwYW4gY2xhc3M9XCJzcGlubmVyLWRvdFwiPjwvc3Bhbj5cclxuPC9kaXY+Il19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUzFDLGtJQUFrSTtBQUNsSSxNQUFNLE9BQU8sZ0JBQWdCOzs2R0FBaEIsZ0JBQWdCO2lHQUFoQixnQkFBZ0Isc0VDVjdCLHVNQUtNOzJGREtPLGdCQUFnQjtrQkFSNUIsU0FBUzsrQkFDSSxZQUFZLGNBR1YsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2VjLXNwaW5uZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NwaW5uZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vc3Bpbm5lci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5cclxuLyoqIEV4cG9zZXMgdGhlIG1hcmt1cCBhbmQgc3R5bGVzIHRoYXQgcmVwcmVzZW50IHRoZSBzcGlubmVyLiBObyBpbnB1dHMgb3Igb3V0cHV0cyBkZWZpbmVkIGJlY2F1c2UgaXQgaXMganVzdCBhIHZpc3VhbCBjb21wb25lbnQqL1xyXG5leHBvcnQgY2xhc3MgU3Bpbm5lckNvbXBvbmVudCB7IH1cclxuIiwiPGRpdiBjbGFzcz1cInNwaW5uZXJcIj5cclxuICA8c3BhbiBjbGFzcz1cInNwaW5uZXItZG90XCI+PC9zcGFuPlxyXG4gIDxzcGFuIGNsYXNzPVwic3Bpbm5lci1kb3RcIj48L3NwYW4+XHJcbiAgPHNwYW4gY2xhc3M9XCJzcGlubmVyLWRvdFwiPjwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cInNwaW5uZXItZG90XCI+PC9zcGFuPlxyXG48L2Rpdj4iXX0=
@@ -34,9 +34,9 @@ export class SplashComponent {
34
34
  }
35
35
  }
36
36
  SplashComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SplashComponent, deps: [{ token: i1.SplashService }], target: i0.ɵɵFactoryTarget.Component });
37
- SplashComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SplashComponent, selector: "ec-splash", ngImport: i0, template: "<div class=\"app-splash\" [class.app-loaded]=\"!isVisible\">\r\n <img src=\"/assets/images/splash.gif\">\r\n</div>" });
37
+ SplashComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SplashComponent, isStandalone: true, selector: "ec-splash", ngImport: i0, template: "<div class=\"app-splash\" [class.app-loaded]=\"!isVisible\">\r\n <img src=\"/assets/images/splash.gif\">\r\n</div>" });
38
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SplashComponent, decorators: [{
39
39
  type: Component,
40
- args: [{ selector: 'ec-splash', template: "<div class=\"app-splash\" [class.app-loaded]=\"!isVisible\">\r\n <img src=\"/assets/images/splash.gif\">\r\n</div>" }]
40
+ args: [{ selector: 'ec-splash', standalone: true, template: "<div class=\"app-splash\" [class.app-loaded]=\"!isVisible\">\r\n <img src=\"/assets/images/splash.gif\">\r\n</div>" }]
41
41
  }], ctorParameters: function () { return [{ type: i1.SplashService }]; } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsYXNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L3NwbGFzaC9zcGxhc2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvc3BsYXNoL3NwbGFzaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFNaEQsTUFBTSxPQUFPLGVBQWU7SUFRMUIsWUFBb0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFQaEQsZ0RBQWdEO1FBQ3pDLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFDMUIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFdEMsMENBQTBDO1FBQ2xDLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUVHLENBQUM7SUFFckQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUN0QyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUN6QixHQUFHLENBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxFQUFFO1lBQ2hCLElBQUksS0FBSyxFQUFFO2dCQUNULElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO2FBQzVCO2lCQUFNO2dCQUNMLGtFQUFrRTtnQkFDbEUsNkZBQTZGO2dCQUM3RixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRSxFQUFFO29CQUM3RSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztnQkFDNUIsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUNILENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDL0IsQ0FBQzs7NEdBaENVLGVBQWU7Z0dBQWYsZUFBZSxpRENUNUIsdUhBRU07MkZET08sZUFBZTtrQkFKM0IsU0FBUzsrQkFDRSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0aW1lciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTcGxhc2hTZXJ2aWNlIH0gZnJvbSAnLi9zcGxhc2guc2VydmljZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlYy1zcGxhc2gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGxhc2guY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGxhc2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgLyoqIFNldHMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIHNwbGFzaCBkaXNwbGF5ICovXHJcbiAgcHVibGljIGlzVmlzaWJsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIHN0b3BBbmltYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIEVtaXRzIHdoZW4gdGhlIHNlcnZpY2UgaXMgZGVzdHJveWVkICovXHJcbiAgcHJpdmF0ZSBkZXN0cm95ZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNwbGFzaFNlcnZpY2U6IFNwbGFzaFNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc3BsYXNoU2VydmljZS5zcGxhc2hWaXNpYmlsaXR5LnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCksXHJcbiAgICAgIHRhcChhc3luYyB2YWx1ZSA9PiB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLnN0b3BBbmltYXRpb24gPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy8gUHJldmVudCBhbmltYXRpb24gZnJvbSBjb250aW51aW5nIGFmdGVyIHNwbGFzaCBzY3JlZW4gaXMgaGlkZGVuXHJcbiAgICAgICAgICAvLyBidXQgaWYgd2UgaGlkZSBpdCB0aGVuIHNob3cgd2hpbGUgdGhlIHRpbWVyIGlzIHJ1bm5pbmcsIGRvbid0IHN0b3AgdGhlIGFuaW1hdGlvbiBhZnRlciBhbGxcclxuICAgICAgICAgIHRpbWVyKDEwMDApLnBpcGUodGFrZVVudGlsKHRoaXMuc3BsYXNoU2VydmljZS5zcGxhc2hWaXNpYmlsaXR5KSkuc3Vic2NyaWJlKCgpPT57XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcEFuaW1hdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApLnN1YnNjcmliZShzaG93U3BsYXNoID0+IHtcclxuICAgICAgdGhpcy5pc1Zpc2libGUgPSBzaG93U3BsYXNoO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuZGVzdHJveWVkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveWVkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJhcHAtc3BsYXNoXCIgW2NsYXNzLmFwcC1sb2FkZWRdPVwiIWlzVmlzaWJsZVwiPlxyXG4gICAgPGltZyBzcmM9XCIvYXNzZXRzL2ltYWdlcy9zcGxhc2guZ2lmXCI+XHJcbjwvZGl2PiJdfQ==
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsYXNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L3NwbGFzaC9zcGxhc2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvc3BsYXNoL3NwbGFzaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFPaEQsTUFBTSxPQUFPLGVBQWU7SUFRMUIsWUFBb0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFQaEQsZ0RBQWdEO1FBQ3pDLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFDMUIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFdEMsMENBQTBDO1FBQ2xDLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUVHLENBQUM7SUFFckQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUN0QyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUN6QixHQUFHLENBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxFQUFFO1lBQ2hCLElBQUksS0FBSyxFQUFFO2dCQUNULElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO2FBQzVCO2lCQUFNO2dCQUNMLGtFQUFrRTtnQkFDbEUsNkZBQTZGO2dCQUM3RixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRSxFQUFFO29CQUM3RSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztnQkFDNUIsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUNILENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDL0IsQ0FBQzs7NEdBaENVLGVBQWU7Z0dBQWYsZUFBZSxxRUNWNUIsdUhBRU07MkZEUU8sZUFBZTtrQkFMM0IsU0FBUzsrQkFDSSxXQUFXLGNBRVQsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGltZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU3BsYXNoU2VydmljZSB9IGZyb20gJy4vc3BsYXNoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdlYy1zcGxhc2gnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NwbGFzaC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGxhc2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgLyoqIFNldHMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIHNwbGFzaCBkaXNwbGF5ICovXHJcbiAgcHVibGljIGlzVmlzaWJsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIHN0b3BBbmltYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIEVtaXRzIHdoZW4gdGhlIHNlcnZpY2UgaXMgZGVzdHJveWVkICovXHJcbiAgcHJpdmF0ZSBkZXN0cm95ZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNwbGFzaFNlcnZpY2U6IFNwbGFzaFNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc3BsYXNoU2VydmljZS5zcGxhc2hWaXNpYmlsaXR5LnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCksXHJcbiAgICAgIHRhcChhc3luYyB2YWx1ZSA9PiB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLnN0b3BBbmltYXRpb24gPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy8gUHJldmVudCBhbmltYXRpb24gZnJvbSBjb250aW51aW5nIGFmdGVyIHNwbGFzaCBzY3JlZW4gaXMgaGlkZGVuXHJcbiAgICAgICAgICAvLyBidXQgaWYgd2UgaGlkZSBpdCB0aGVuIHNob3cgd2hpbGUgdGhlIHRpbWVyIGlzIHJ1bm5pbmcsIGRvbid0IHN0b3AgdGhlIGFuaW1hdGlvbiBhZnRlciBhbGxcclxuICAgICAgICAgIHRpbWVyKDEwMDApLnBpcGUodGFrZVVudGlsKHRoaXMuc3BsYXNoU2VydmljZS5zcGxhc2hWaXNpYmlsaXR5KSkuc3Vic2NyaWJlKCgpPT57XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcEFuaW1hdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApLnN1YnNjcmliZShzaG93U3BsYXNoID0+IHtcclxuICAgICAgdGhpcy5pc1Zpc2libGUgPSBzaG93U3BsYXNoO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuZGVzdHJveWVkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveWVkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJhcHAtc3BsYXNoXCIgW2NsYXNzLmFwcC1sb2FkZWRdPVwiIWlzVmlzaWJsZVwiPlxyXG4gICAgPGltZyBzcmM9XCIvYXNzZXRzL2ltYWdlcy9zcGxhc2guZ2lmXCI+XHJcbjwvZGl2PiJdfQ==
@@ -10,11 +10,11 @@ export class ResizableColumnComponent {
10
10
  }
11
11
  }
12
12
  ResizableColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResizableColumnComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
13
- ResizableColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ResizableColumnComponent, selector: "th.is-resizable", outputs: { onResize: "onResize" }, ngImport: i0, template: "<div class=\"content-wrapper\">\r\n <div class=\"content\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n<div class=\"handle\"></div>\r\n" });
13
+ ResizableColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ResizableColumnComponent, isStandalone: true, selector: "th.is-resizable", outputs: { onResize: "onResize" }, ngImport: i0, template: "<div class=\"content-wrapper\">\r\n <div class=\"content\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n<div class=\"handle\"></div>\r\n" });
14
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResizableColumnComponent, decorators: [{
15
15
  type: Component,
16
- args: [{ selector: 'th.is-resizable', template: "<div class=\"content-wrapper\">\r\n <div class=\"content\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n<div class=\"handle\"></div>\r\n" }]
16
+ args: [{ selector: 'th.is-resizable', standalone: true, template: "<div class=\"content-wrapper\">\r\n <div class=\"content\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n<div class=\"handle\"></div>\r\n" }]
17
17
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { onResize: [{
18
18
  type: Output
19
19
  }] } });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90YWJsZS9yZXNpemFibGUtY29sdW1uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L3RhYmxlL3Jlc2l6YWJsZS1jb2x1bW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU01RSxNQUFNLE9BQU8sd0JBQXdCO0lBSW5DLFlBQW1CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBRnZCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRVgsQ0FBQztJQUUvQixTQUFTLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDOztxSEFSVSx3QkFBd0I7eUdBQXhCLHdCQUF3QiwwRkNOckMseUpBTUE7MkZEQWEsd0JBQXdCO2tCQUpwQyxTQUFTOytCQUNFLGlCQUFpQjtpR0FLakIsUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGguaXMtcmVzaXphYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmVzaXphYmxlLWNvbHVtbi5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlc2l6YWJsZUNvbHVtbkNvbXBvbmVudCB7XHJcblxyXG4gIEBPdXRwdXQoKSBvblJlc2l6ZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYpIHsgfVxyXG5cclxuICBwdWJsaWMgZW1pdFdpZHRoKHdpZHRoOiBudW1iZXIpIHtcclxuICAgIHRoaXMub25SZXNpemUuZW1pdCh3aWR0aCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb250ZW50LXdyYXBwZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImhhbmRsZVwiPjwvZGl2PlxyXG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90YWJsZS9yZXNpemFibGUtY29sdW1uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L3RhYmxlL3Jlc2l6YWJsZS1jb2x1bW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU81RSxNQUFNLE9BQU8sd0JBQXdCO0lBSW5DLFlBQW1CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBRnZCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRVgsQ0FBQztJQUUvQixTQUFTLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDOztxSEFSVSx3QkFBd0I7eUdBQXhCLHdCQUF3Qiw4R0NQckMseUpBTUE7MkZEQ2Esd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNJLGlCQUFpQixjQUVmLElBQUk7aUdBSVIsUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd0aC5pcy1yZXNpemFibGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Jlc2l6YWJsZS1jb2x1bW4uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzaXphYmxlQ29sdW1uQ29tcG9uZW50IHtcclxuXHJcbiAgQE91dHB1dCgpIG9uUmVzaXplID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbDogRWxlbWVudFJlZikgeyB9XHJcblxyXG4gIHB1YmxpYyBlbWl0V2lkdGgod2lkdGg6IG51bWJlcikge1xyXG4gICAgdGhpcy5vblJlc2l6ZS5lbWl0KHdpZHRoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRlbnQtd3JhcHBlclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiaGFuZGxlXCI+PC9kaXY+XHJcbiJdfQ==
@@ -205,11 +205,12 @@ export class ResizableTableDirective extends ResizableBase {
205
205
  }
206
206
  }
207
207
  ResizableTableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResizableTableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.CacheService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
208
- ResizableTableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: ResizableTableDirective, selector: "[ecResizableTable]", inputs: { isResizable: ["ecResizableTable", "isResizable"], containerEl: "containerEl", sortableTable: "sortableTable", resizableColumns: "resizableColumns" }, usesInheritance: true, ngImport: i0 });
208
+ ResizableTableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: ResizableTableDirective, isStandalone: true, selector: "[ecResizableTable]", inputs: { isResizable: ["ecResizableTable", "isResizable"], containerEl: "containerEl", sortableTable: "sortableTable", resizableColumns: "resizableColumns" }, usesInheritance: true, ngImport: i0 });
209
209
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResizableTableDirective, decorators: [{
210
210
  type: Directive,
211
211
  args: [{
212
- selector: '[ecResizableTable]'
212
+ selector: '[ecResizableTable]',
213
+ standalone: true
213
214
  }]
214
215
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.CacheService }, { type: Document, decorators: [{
215
216
  type: Inject,
@@ -224,4 +225,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
224
225
  }], resizableColumns: [{
225
226
  type: Input
226
227
  }] } });
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLXRhYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L3RhYmxlL3Jlc2l6YWJsZS10YWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBaUMsTUFBTSxFQUFFLEtBQUssRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRzNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFJSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsYUFBYTtJQStDeEQsWUFDVSxFQUFjLEVBQ3RCLFFBQW1CLEVBQ25CLFlBQTBCLEVBQ1IsUUFBa0I7UUFFcEMsS0FBSyxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFMaEMsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQTdDZixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQVd4Qzs7O1dBR0c7UUFDSyxTQUFJLEdBQTBCLEVBQUUsQ0FBQztRQUV6Qzs7O1dBR0c7UUFDSyxjQUFTLEdBQWEsRUFBRSxDQUFDO1FBRWpDOztXQUVHO1FBQ0ssc0JBQWlCLEdBQVcsQ0FBQyxDQUFDO1FBRXRDOzs7O1dBSUc7UUFDSyxrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUVsQzs7V0FFRztRQUNLLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBSXpCLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQVNqRCxDQUFDO0lBRU0sUUFBUTtR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LENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxjQUFjLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN2RyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMzRCxDQUFDOztvSEFoT1UsdUJBQXVCLGlHQW1EeEIsUUFBUTt3R0FuRFAsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBSG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtpQkFDL0I7OzBCQW9ESSxNQUFNOzJCQUFDLFFBQVE7NENBbERTLFdBQVc7c0JBQXJDLEtBQUs7dUJBQUMsa0JBQWtCO2dCQUNoQixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBTUcsZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBPbkluaXQsIFJlbmRlcmVyMiwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBSZXNpemFibGVCYXNlIH0gZnJvbSAnLi4vcmVzaXphYmxlL3Jlc2l6YWJsZS1iYXNlJztcclxuaW1wb3J0IHsgQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFJlc2l6YWJsZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vcmVzaXphYmxlLWNvbHVtbi5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIEFkZCB0aGUgYWJpbGl0eSB0byByZXNpemUgY29sdW1ucyB0byBhIHN0YW5kYXJkIEhUTUwgdGFibGUuXHJcbiAqIFNwZWNpZnkgYSBjb2x1bW4gYXMgcmVzaXphYmxlIGJ5IGFkZGluZyB0aGUgLmlzLXJlc2l6YWJsZSBjbGFzcyB0byBhIDx0aD4uXHJcbiAqIFxyXG4gKiBVc2FnZTpcclxuICBgYGBodG1sXHJcbiAgPHRhYmxlIFtlY1Jlc2l6YWJsZVRhYmxlXT5cclxuICAgIDxjb2xncm91cD48Y29sPjxjb2w+PGNvbD48L2NvbGdyb3VwPlxyXG4gICAgPHRoZWFkPlxyXG4gICAgICA8dHI+XHJcbiAgICAgICAgPHRoIGNsYXNzPVwiaXMtcmVzaXphYmxlXCI+UmVzaXphYmxlPC90aD5cclxuICAgICAgICA8dGggY2xhc3M9XCJpcy1yZXNpemFibGVcIj5SZXNpemFibGU8L3RoPlxyXG4gICAgICAgIDx0aD5TdGF0aWM8L3RoPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC90aGVhZD5cclxuICAgIC4uLlxyXG4gIDwvdGFibGU+XHJcblxyXG4gIGBgYFxyXG4gICogTm90ZTogdGhpcyBkaXJlY3RpdmUgaXMgbWVhbnQgdG8gYmUgdXNlZCBpbnRlcm5hbGx5IHdpdGggdGhlIFRhYmxlQ29tcG9uZW50XHJcbiAgKiBhbmQgaXMgbm90IGV4cG9zZWQgaW4gdGhlIHB1YmxpYy1hcGkgb2YgdGhlIGxpYnJhcnlcclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2VjUmVzaXphYmxlVGFibGVdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzaXphYmxlVGFibGVEaXJlY3RpdmUgZXh0ZW5kcyBSZXNpemFibGVCYXNlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgnZWNSZXNpemFibGVUYWJsZScpIGlzUmVzaXphYmxlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGNvbnRhaW5lckVsITogRWxlbWVudFJlZjtcclxuICBASW5wdXQoKSBzb3J0YWJsZVRhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKiBcclxuICAgKiBVc2VkIHRvIG5vdGlmeSB0aGUgcmVzaXphYmxlIGRpcmVjdGl2ZSB0aGF0IHRoZSBjb2x1bW5zIGFyZSByZWFkeSB0byBiZSBjb25maWd1cmVkLlxyXG4gICAqIE11c3QgYmUgdXNlZCBpZiB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgY2FuIGNoYW5nZSBvdmVyIHRoZSB0YWJsZSdzIGxpZmVjeWNsZS5cclxuICAgKi9cclxuICBASW5wdXQoKSByZXNpemFibGVDb2x1bW5zITogUXVlcnlMaXN0PFJlc2l6YWJsZUNvbHVtbkNvbXBvbmVudD47XHJcblxyXG4gIC8qKiBUaGUgaG9zdCA8dGFibGU+IGVsZW1lbnQuIFdpbGwgdGhyb3cgaWYgaG9zdCBlbGVtZW50IGlzIG5vdCBhIDx0YWJsZT4gKi9cclxuICBwcml2YXRlIHRhYmxlRWwhOiBIVE1MVGFibGVFbGVtZW50O1xyXG5cclxuICAvKiogXHJcbiAgICogU3RvcmVkIHJlZmVyZW5jZSB0byB0aGUgPGNvbD4gZWxlbWVudCBjaGlsZHJlbi4gV2lsbCB0aHJvdyBpZiBub25lIGFyZSBmb3VuZC4gV2lsbFxyXG4gICAqIHdhcm4gaWYgdGhlIG51bWJlciBvZiA8Y29sPiBlbGVtZW50cyBkbyBub3QgbWF0Y2ggdGhlIG51bWJlciBvZiA8dGg+IGVsZW1lbnRzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjb2xzOiBIVE1MVGFibGVDb2xFbGVtZW50W10gPSBbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHdpZHRocyBvZiBlYWNoIHRhYmxlIGNvbHVtbi4gVGhlc2UgYXJlIHVwZGF0ZWQgYXMgY29sdW1ucyBhcmUgcmVzaXplZCBhbmRcclxuICAgKiBhcmUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIG5ldyB0YWJsZSB3aWR0aC5cclxuICAgKi9cclxuICBwcml2YXRlIGNvbFdpZHRoczogbnVtYmVyW10gPSBbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGN1cnJlbnQgdGFibGUgd2lkdGhcclxuICAgKi9cclxuICBwcml2YXRlIGN1cnJlbnRUYWJsZVdpZHRoOiBudW1iZXIgPSAwO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgd2lkdGggb2YgdGhlIHRhYmxlIHdoZW4gdGhlIGNvbXBvbmVudCB3YXMgaW5pdGlhbGl6ZWQuIFRoZSB0YWJsZSBjYW5ub3RcclxuICAgKiBiZSBzaHJ1bmsgYmVsb3cgdGhpcyB3aWR0aC4gSWYgYSBjb2x1bW4gcmVzaXplIHdvdWxkIGNhdXNlIHRoZSBjdXJyZW50IHRhYmxlXHJcbiAgICogd2lkdGggdG8gYmUgYmVsb3cgdGhpcyB2YWx1ZSwgdGhlIGxhc3QgY29sdW1uIGlzIHdpZGVuZWQgaW5zdGVhZC5cclxuICAgKi9cclxuICBwcml2YXRlIG1pblRhYmxlV2lkdGg6IG51bWJlciA9IDA7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSB3aWR0aCB0aGUgY29sdW1uIGNhbiBub3QgYmUgcmVzaXplZCBiZWxvdy5cclxuICAgKi9cclxuICBwcml2YXRlIG1pbkNvbFdpZHRoOiBudW1iZXIgPSAzMjtcclxuXHJcbiAgcHJpdmF0ZSBsYXN0Q29sSW5kZXghOiBudW1iZXI7XHJcblxyXG4gIHByaXZhdGUgZGVzdHJveWVkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIGNhY2hlU2VydmljZTogQ2FjaGVTZXJ2aWNlLFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQ6IERvY3VtZW50XHJcbiAgKSB7XHJcbiAgICBzdXBlcihyZW5kZXJlciwgY2FjaGVTZXJ2aWNlLCBkb2N1bWVudCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRSZXNpemFibGVDb2x1bW5zKCk7XHJcblxyXG4gICAgdGhpcy5yZXNpemFibGVDb2x1bW5zLmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5pbml0UmVzaXphYmxlQ29sdW1ucygpKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemVcclxuICAgKiAqIENoZWNrIHRoYXQgdGhlIGhvc3QgZWxlbWVudCBpcyBhIHRhYmxlIGFuZCB0aGF0IDxjb2w+IGVsZW1lbnRzIGFyZSBwcmVzZW50XHJcbiAgICogKiBTYXZlIHRoZSBpbml0aWFsIHdpZHRoIG9mIHRhYmxlIGFzIHRoZSBtaW5pbXVtIHRhYmxlIHdpZHRoXHJcbiAgICogKiBTdG9yZSBhIHJlZmVyZW5jZSB0byBhbGwgPGNvbD4gZWxlbWVudHNcclxuICAgKiAqIEFkZCBhIGhhbmRsZSB0byBlYWNoIHJlc2l6YWJsZSBjb2x1bW4gYW5kIHNldCB1cCBtb3VzZWRvd24gbGlzdGVuZXJzIHRvIHN0YXJ0IGRyYWdnaW5nXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpbml0UmVzaXphYmxlQ29sdW1ucygpIHtcclxuICAgIGlmICh0aGlzLmlzUmVzaXphYmxlICE9PSBmYWxzZSkge1xyXG5cclxuICAgICAgdGhpcy50YWJsZUVsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xyXG4gICAgICBpZiAodGhpcy50YWJsZUVsLnRhZ05hbWUgIT09ICdUQUJMRScpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSAnZWNSZXNpemFibGVUYWJsZScgZGlyZWN0aXZlIGNhbiBvbmx5IGJlIHBsYWNlZCBvbiBhIDx0YWJsZT4gZWxlbWVudC5gKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuc29ydGFibGVUYWJsZSkge1xyXG4gICAgICAgIHRoaXMubWluQ29sV2lkdGggPSA0ODtcclxuICAgICAgfVxyXG4gIFxyXG4gICAgICBjb25zdCBoZWFkZXJzID0gdGhpcy50YWJsZUVsLnF1ZXJ5U2VsZWN0b3JBbGwoJ3RoJyk7XHJcbiAgICAgIGNvbnN0IGNvbHMgPSB0aGlzLnRhYmxlRWwucXVlcnlTZWxlY3RvckFsbCgnY29sJyk7XHJcbiAgICAgIHRoaXMuY29scyA9IFtdO1xyXG4gICAgICB0aGlzLmNvbFdpZHRocyA9IFtdO1xyXG4gIFxyXG4gICAgICBpZiAoY29scy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICBjb25zdCBmcmFnbWVudCA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xyXG4gICAgICAgIGNvbnN0IGNvbGdyb3VwOiBIVE1MRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnY29sZ3JvdXAnKTtcclxuICAgICAgICBoZWFkZXJzLmZvckVhY2goKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgY29sID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdjb2wnKTtcclxuICAgICAgICAgIHRoaXMuY29scy5wdXNoKGNvbCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGZyYWdtZW50LCBjb2wpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoY29sZ3JvdXAsIGZyYWdtZW50KTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZSh0aGlzLnRhYmxlRWwsIGNvbGdyb3VwLCB0aGlzLnRhYmxlRWwuZmlyc3RFbGVtZW50Q2hpbGQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbHMuZm9yRWFjaChjb2xFbCA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNvbHMucHVzaChjb2xFbCk7XHJcbiAgICAgICAgfSk7XHJcbiAgXHJcbiAgICAgICAgaWYgKGhlYWRlcnMubGVuZ3RoICE9PSBjb2xzLmxlbmd0aCkge1xyXG4gICAgICAgICAgY29uc29sZS53YXJuKGBUaGVyZSBhcmUgJHtoZWFkZXJzLmxlbmd0aH0gPHRoPiBlbGVtZW50cyBhbmQgJHt0aGlzLmNvbHMubGVuZ3RofSA8Y29sPiBlbGVtZW50cyBpbiB0aGlzIHRoaXMgdGFibGUuIFRoZSBudW1iZXIgb2YgY29sdW1ucyBhbmQgdGFibGUgaGVhZGVycyBtdXN0IG1hdGNoLiA8dGg+IGVsZW1lbnRzIHdpdGggYSAnY29sc3BhbicgYXR0cmlidXRlIGFyZSBjdXJyZW50bHkgbm90IHN1cHBvcnRlZC5gKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGxhc3RSZXNpemFibGVJbmRleCA9IEFycmF5LmZyb20oaGVhZGVycykucmV2ZXJzZSgpLmZpbmRJbmRleChlbCA9PiBlbC5jbGFzc0xpc3QuY29udGFpbnMoJ2lzLXJlc2l6YWJsZScpKSArIDE7XHJcbiAgICAgIHRoaXMubGFzdENvbEluZGV4ID0gdGhpcy5jb2xzLmxlbmd0aCAtIGxhc3RSZXNpemFibGVJbmRleDtcclxuICBcclxuICAgICAgaGVhZGVycy5mb3JFYWNoKHRoID0+IHtcclxuICAgICAgICBpZiAodGguY2xhc3NMaXN0LmNvbnRhaW5zKCdpcy1yZXNpemFibGUnKSkge1xyXG4gICAgICAgICAgY29uc3QgaGFuZGxlID0gdGgucXVlcnlTZWxlY3RvcignLmhhbmRsZScpO1xyXG5cclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKGhhbmRsZSwgJ21vdXNlZG93bicsIChldmVudDogTW91c2VFdmVudCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRFbCA9IHRoO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0RHJhZyhldmVudCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIFxyXG4gICAgICAvLyBXZSBuZWVkIHRvIHdhaXQgYSB0aWNrIGZvciBhIHZpZXcgdGhhdCB3YXMgcHJldmlvdXNseSBsb2FkZWQgdG8gYmUgcmVtb3ZlZFxyXG4gICAgICAvLyBmcm9tIHRoZSBET00gYW5kIGFsbG93IHRoaXMgZGlyZWN0aXZlJ3MgcGFyZW50IHZpZXcgdG8gZnVsbHkgZXhwYW5kIGluIHRoZSBcclxuICAgICAgLy8gdmlld3BvcnQgYmVmb3JlIGdldHRpbmcgd2lkdGhzLlxyXG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRJbml0aWFsV2lkdGhzKGhlYWRlcnMpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSB0aGUgY29sdW1uIHdpdGggdGhlIGNhbGN1bGF0ZWQgd2lkdGggd2hpbGUgcmVzaXppbmcuXHJcbiAgICogSWYgdGhlIGNvbHVtbiBpcyBuYXJyb3dlZCBzbyB0aGF0IHRoZSB0YWJsZSB3b3VsZCBiZSBuYXJyb3dlciB0aGFuIHRoZSBtaW4td2lkdGgsXHJcbiAgICogZXhwYW5kIHRoZSBsYXN0IGNvbHVtbi4gSWYgdGhlIHRhYmxlIGlzIHRoZW4gd2lkZW5lZCwgcmV0dXJuIHRoZSBsYXN0IGNvbHVtblxyXG4gICAqIHRvIGl0cyBpbml0aWFsIHdpZHRoLlxyXG4gICAqIEBwYXJhbSB3aWR0aCBcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgc2V0V2lkdGgod2lkdGg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudEVsKSB7XHJcbiAgICAgIGNvbnN0IGNlbGxJbmRleDogbnVtYmVyID0gKDxIVE1MVGFibGVIZWFkZXJDZWxsRWxlbWVudD50aGlzLmN1cnJlbnRFbCkuY2VsbEluZGV4O1xyXG4gICAgICB3aWR0aCA9IE1hdGgubWF4KHdpZHRoLCB0aGlzLm1pbkNvbFdpZHRoKTtcclxuICAgICAgdGhpcy5jb2xXaWR0aHNbY2VsbEluZGV4XSA9IHdpZHRoO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY29sc1tjZWxsSW5kZXhdLCAnd2lkdGgnLCB3aWR0aCArICdweCcpO1xyXG5cclxuICAgICAgbGV0IHRvdGFsQ29sV2lkdGhzID0gMDtcclxuICAgICAgdGhpcy5jb2xXaWR0aHMuZm9yRWFjaCh3ID0+IHtcclxuICAgICAgICB0b3RhbENvbFdpZHRocyArPSB3O1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gKDxIVE1MRGl2RWxlbWVudD50aGlzLmNvbnRhaW5lckVsLm5hdGl2ZUVsZW1lbnQpLmNsaWVudFdpZHRoO1xyXG4gICAgICBpZiAodGhpcy5taW5UYWJsZVdpZHRoICE9PSBjb250YWluZXJXaWR0aCkge1xyXG4gICAgICAgIHRoaXMubWluVGFibGVXaWR0aCA9IGNvbnRhaW5lcldpZHRoO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBkaWZmID0gdG90YWxDb2xXaWR0aHMgLSB0aGlzLm1pblRhYmxlV2lkdGg7ICAgICAgXHJcbiAgICAgIGlmIChkaWZmIDwgMCkge1xyXG4gICAgICAgIGNvbnN0IGNvbEluZGV4ID0gY2VsbEluZGV4ID09PSB0aGlzLmxhc3RDb2xJbmRleCA/IHRoaXMubGFzdENvbEluZGV4IC0gMSA6IHRoaXMubGFzdENvbEluZGV4O1xyXG4gICAgICAgIGNvbnN0IGNvbFdpZHRoID0gTWF0aC5tYXgodGhpcy5jb2xXaWR0aHNbY29sSW5kZXhdICsgTWF0aC5hYnMoZGlmZiksIHRoaXMubWluQ29sV2lkdGgpO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jb2xzW2NvbEluZGV4XSwgJ3dpZHRoJywgY29sV2lkdGggKyAncHgnKTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudGFibGVFbCwgJ3dpZHRoJywgdGhpcy5taW5UYWJsZVdpZHRoICsgJ3B4Jyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRhYmxlRWwsICd3aWR0aCcsIHRvdGFsQ29sV2lkdGhzICsgJ3B4Jyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBzdG9wRHJhZyhldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgc3VwZXIuc3RvcERyYWcoZXZlbnQpO1xyXG4gICAgXHJcbiAgICBpZiAodGhpcy5jdXJyZW50RWwpIHtcclxuICAgICAgY29uc3QgY2VsbEluZGV4ID0gKDxIVE1MVGFibGVIZWFkZXJDZWxsRWxlbWVudD50aGlzLmN1cnJlbnRFbCkuY2VsbEluZGV4O1xyXG4gICAgICBjb25zdCBjdXJyZW50Q29sID0gdGhpcy5yZXNpemFibGVDb2x1bW5zLmZpbmQoY29sID0+ICg8SFRNTFRhYmxlSGVhZGVyQ2VsbEVsZW1lbnQ+Y29sLmVsLm5hdGl2ZUVsZW1lbnQpLmNlbGxJbmRleCA9PT0gY2VsbEluZGV4KTtcclxuICAgICAgaWYgKGN1cnJlbnRDb2wpIHtcclxuICAgICAgICBjdXJyZW50Q29sLmVtaXRXaWR0aChNYXRoLnJvdW5kKHRoaXMuY29sV2lkdGhzW2NlbGxJbmRleF0pKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FwdHVyZSB0aGUgaW5pdGlhbCB3aWR0aCBvZiB0aGUgdGFibGUgYW5kIHRoZSB0YWJsZSBoZWFkZXJzLlxyXG4gICAqIEBwYXJhbSBoZWFkZXJzIFxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0SW5pdGlhbFdpZHRocyhoZWFkZXJzOiBOb2RlTGlzdE9mPEhUTUxUYWJsZUhlYWRlckNlbGxFbGVtZW50Pik6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW50VGFibGVXaWR0aCA9IHRoaXMudGFibGVFbC5vZmZzZXRXaWR0aDtcclxuICAgIHRoaXMubWluVGFibGVXaWR0aCA9IHRoaXMuY29udGFpbmVyRWwubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcclxuXHJcbiAgICBoZWFkZXJzLmZvckVhY2godGggPT4ge1xyXG4gICAgICB0aGlzLmNvbFdpZHRoc1t0aC5jZWxsSW5kZXhdID0gdGgub2Zmc2V0V2lkdGg7XHJcbiAgICAgIGNvbnN0IHdpZHRoID0gdGguc3R5bGUud2lkdGg7XHJcbiAgICAgIGlmICh3aWR0aCkge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jb2xzW3RoLmNlbGxJbmRleF0sICd3aWR0aCcsIHdpZHRoKTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKHRoLCAnd2lkdGgnKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgbGV0IHRvdGFsQ29sV2lkdGhzID0gMDtcclxuICAgIHRoaXMuY29sV2lkdGhzLmZvckVhY2godyA9PiB7XHJcbiAgICAgIHRvdGFsQ29sV2lkdGhzICs9IHc7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBDaGVjayB0byBzZWUgaWYgb3VyIHRvdGFsIGNvbHVtbiB3aWR0aHMgaXMgZ3JlYXRlciB0aGFuIG91ciB0YWJsZSB3aWR0aFxyXG4gICAgbGV0IGNvbFdpZHRoRGlmZmVyZW5jZSA9IHRvdGFsQ29sV2lkdGhzIC0gdGhpcy5jdXJyZW50VGFibGVXaWR0aDtcclxuICAgXHJcbiAgICAvLyBJZiB0aGUgdG90YWwgY29sdW1uIHdpZHRocyBpcyBncmVhdGVyIHRoYW4gemVybyB0aGVuIGl0cyBsYXJnZXIgdGhhbiBvdXIgdGFibGUgY29udGFpbmVyXHJcbiAgICAvLyBUbyBwcmV2ZW50IGEgaG9yaXpvbnRhbCBzY3JvbGwgd2Ugd2lsbCBidW1wIGEgY29sdW1ucyB3aWR0aCBkb3duIHRvIG1hdGNoIHRoZSB0YWJsZSBzaXplXHJcbiAgICBpZiAoY29sV2lkdGhEaWZmZXJlbmNlID4gMCkge1xyXG4gICAgICAvLyBJZGVhbGx5IHdlIHdpbGwgY2hvb3NlIHRoZSBzZWNvbmQgdG8gdGhlIGxhc3QgY29sdW1uLCBidXQgaWYgdGhlcmUgaXMgb25seSBvbmUgdGhhdCdsbCBkb1xyXG4gICAgICBsZXQgY29sdW1uVG9SZWR1Y2UgPSBoZWFkZXJzLmxlbmd0aCA+IDEgPyBoZWFkZXJzLmxlbmd0aCAtIDIgOiAwO1xyXG5cclxuICAgICAgLy8gU2hyaW5rIHRoZSBjb2x1bW5cclxuICAgICAgbGV0IHRoID0gaGVhZGVyc1tjb2x1bW5Ub1JlZHVjZV07XHJcbiAgICAgIHRoaXMuY29sV2lkdGhzW3RoLmNlbGxJbmRleF0gPSB0aC5vZmZzZXRXaWR0aCAtIGNvbFdpZHRoRGlmZmVyZW5jZTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNvbHNbdGguY2VsbEluZGV4XSwgJ3dpZHRoJywgdGhpcy5jb2xXaWR0aHNbdGguY2VsbEluZGV4XSArICdweCcpO1xyXG4gICAgXHJcbiAgICAgIC8vIFJlZHVjZSBvdXIgdG90YWxDb2xXaWR0aHMgdG8gcmVmbGVjdFxyXG4gICAgICB0b3RhbENvbFdpZHRocyA9IHRvdGFsQ29sV2lkdGhzIC0gY29sV2lkdGhEaWZmZXJlbmNlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50YWJsZUVsLCAnd2lkdGgnLCBNYXRoLm1heCh0aGlzLmN1cnJlbnRUYWJsZVdpZHRoLCB0b3RhbENvbFdpZHRocykgKyAncHgnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50YWJsZUVsLCAnbWluV2lkdGgnLCAnMTAwJScpO1xyXG4gIH1cclxufVxyXG4iXX0=
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLXRhYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L3RhYmxlL3Jlc2l6YWJsZS10YWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBaUMsTUFBTSxFQUFFLEtBQUssRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRzNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFLSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsYUFBYTtJQStDeEQsWUFDVSxFQUFjLEVBQ3RCLFFBQW1CLEVBQ25CLFlBQTBCLEVBQ1IsUUFBa0I7UUFFcEMsS0FBSyxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFMaEMsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQTdDZixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQVd4Qzs7O1dBR0c7UUFDSyxTQUFJLEdBQTBCLEVBQUUsQ0FBQztRQUV6Qzs7O1dBR0c7UUFDSyxjQUFTLEdBQWEsRUFBRSxDQUFDO1FBRWpDOztXQUVHO1FBQ0ssc0JBQWlCLEdBQVcsQ0FBQyxDQUFDO1FBRXRDOzs7O1dBSUc7UUFDSyxrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUVsQzs7V0FFRztRQUNLLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBSXpCLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQVNqRCxDQUFDO0lBRU0sUUFBUTtR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LENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxjQUFjLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN2RyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMzRCxDQUFDOztvSEFoT1UsdUJBQXVCLGlHQW1EeEIsUUFBUTt3R0FuRFAsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7aUJBQ25COzswQkFvREksTUFBTTsyQkFBQyxRQUFROzRDQWxEUyxXQUFXO3NCQUFyQyxLQUFLO3VCQUFDLGtCQUFrQjtnQkFDaEIsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQU1HLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgT25Jbml0LCBSZW5kZXJlcjIsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUmVzaXphYmxlQmFzZSB9IGZyb20gJy4uL3Jlc2l6YWJsZS9yZXNpemFibGUtYmFzZSc7XHJcbmltcG9ydCB7IENhY2hlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBSZXNpemFibGVDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL3Jlc2l6YWJsZS1jb2x1bW4uY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBBZGQgdGhlIGFiaWxpdHkgdG8gcmVzaXplIGNvbHVtbnMgdG8gYSBzdGFuZGFyZCBIVE1MIHRhYmxlLlxyXG4gKiBTcGVjaWZ5IGEgY29sdW1uIGFzIHJlc2l6YWJsZSBieSBhZGRpbmcgdGhlIC5pcy1yZXNpemFibGUgY2xhc3MgdG8gYSA8dGg+LlxyXG4gKiBcclxuICogVXNhZ2U6XHJcbiAgYGBgaHRtbFxyXG4gIDx0YWJsZSBbZWNSZXNpemFibGVUYWJsZV0+XHJcbiAgICA8Y29sZ3JvdXA+PGNvbD48Y29sPjxjb2w+PC9jb2xncm91cD5cclxuICAgIDx0aGVhZD5cclxuICAgICAgPHRyPlxyXG4gICAgICAgIDx0aCBjbGFzcz1cImlzLXJlc2l6YWJsZVwiPlJlc2l6YWJsZTwvdGg+XHJcbiAgICAgICAgPHRoIGNsYXNzPVwiaXMtcmVzaXphYmxlXCI+UmVzaXphYmxlPC90aD5cclxuICAgICAgICA8dGg+U3RhdGljPC90aD5cclxuICAgICAgPC90cj5cclxuICAgIDwvdGhlYWQ+XHJcbiAgICAuLi5cclxuICA8L3RhYmxlPlxyXG5cclxuICBgYGBcclxuICAqIE5vdGU6IHRoaXMgZGlyZWN0aXZlIGlzIG1lYW50IHRvIGJlIHVzZWQgaW50ZXJuYWxseSB3aXRoIHRoZSBUYWJsZUNvbXBvbmVudFxyXG4gICogYW5kIGlzIG5vdCBleHBvc2VkIGluIHRoZSBwdWJsaWMtYXBpIG9mIHRoZSBsaWJyYXJ5XHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW2VjUmVzaXphYmxlVGFibGVdJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlc2l6YWJsZVRhYmxlRGlyZWN0aXZlIGV4dGVuZHMgUmVzaXphYmxlQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoJ2VjUmVzaXphYmxlVGFibGUnKSBpc1Jlc2l6YWJsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBjb250YWluZXJFbCE6IEVsZW1lbnRSZWY7XHJcbiAgQElucHV0KCkgc29ydGFibGVUYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogXHJcbiAgICogVXNlZCB0byBub3RpZnkgdGhlIHJlc2l6YWJsZSBkaXJlY3RpdmUgdGhhdCB0aGUgY29sdW1ucyBhcmUgcmVhZHkgdG8gYmUgY29uZmlndXJlZC5cclxuICAgKiBNdXN0IGJlIHVzZWQgaWYgdGhlIG51bWJlciBvZiBjb2x1bW5zIGNhbiBjaGFuZ2Ugb3ZlciB0aGUgdGFibGUncyBsaWZlY3ljbGUuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcmVzaXphYmxlQ29sdW1ucyE6IFF1ZXJ5TGlzdDxSZXNpemFibGVDb2x1bW5Db21wb25lbnQ+O1xyXG5cclxuICAvKiogVGhlIGhvc3QgPHRhYmxlPiBlbGVtZW50LiBXaWxsIHRocm93IGlmIGhvc3QgZWxlbWVudCBpcyBub3QgYSA8dGFibGU+ICovXHJcbiAgcHJpdmF0ZSB0YWJsZUVsITogSFRNTFRhYmxlRWxlbWVudDtcclxuXHJcbiAgLyoqIFxyXG4gICAqIFN0b3JlZCByZWZlcmVuY2UgdG8gdGhlIDxjb2w+IGVsZW1lbnQgY2hpbGRyZW4uIFdpbGwgdGhyb3cgaWYgbm9uZSBhcmUgZm91bmQuIFdpbGxcclxuICAgKiB3YXJuIGlmIHRoZSBudW1iZXIgb2YgPGNvbD4gZWxlbWVudHMgZG8gbm90IG1hdGNoIHRoZSBudW1iZXIgb2YgPHRoPiBlbGVtZW50c1xyXG4gICAqL1xyXG4gIHByaXZhdGUgY29sczogSFRNTFRhYmxlQ29sRWxlbWVudFtdID0gW107XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSB3aWR0aHMgb2YgZWFjaCB0YWJsZSBjb2x1bW4uIFRoZXNlIGFyZSB1cGRhdGVkIGFzIGNvbHVtbnMgYXJlIHJlc2l6ZWQgYW5kXHJcbiAgICogYXJlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSBuZXcgdGFibGUgd2lkdGguXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjb2xXaWR0aHM6IG51bWJlcltdID0gW107XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBjdXJyZW50IHRhYmxlIHdpZHRoXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjdXJyZW50VGFibGVXaWR0aDogbnVtYmVyID0gMDtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHdpZHRoIG9mIHRoZSB0YWJsZSB3aGVuIHRoZSBjb21wb25lbnQgd2FzIGluaXRpYWxpemVkLiBUaGUgdGFibGUgY2Fubm90XHJcbiAgICogYmUgc2hydW5rIGJlbG93IHRoaXMgd2lkdGguIElmIGEgY29sdW1uIHJlc2l6ZSB3b3VsZCBjYXVzZSB0aGUgY3VycmVudCB0YWJsZVxyXG4gICAqIHdpZHRoIHRvIGJlIGJlbG93IHRoaXMgdmFsdWUsIHRoZSBsYXN0IGNvbHVtbiBpcyB3aWRlbmVkIGluc3RlYWQuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBtaW5UYWJsZVdpZHRoOiBudW1iZXIgPSAwO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgd2lkdGggdGhlIGNvbHVtbiBjYW4gbm90IGJlIHJlc2l6ZWQgYmVsb3cuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBtaW5Db2xXaWR0aDogbnVtYmVyID0gMzI7XHJcblxyXG4gIHByaXZhdGUgbGFzdENvbEluZGV4ITogbnVtYmVyO1xyXG5cclxuICBwcml2YXRlIGRlc3Ryb3llZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcclxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBjYWNoZVNlcnZpY2U6IENhY2hlU2VydmljZSxcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50OiBEb2N1bWVudFxyXG4gICkge1xyXG4gICAgc3VwZXIocmVuZGVyZXIsIGNhY2hlU2VydmljZSwgZG9jdW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0UmVzaXphYmxlQ29sdW1ucygpO1xyXG5cclxuICAgIHRoaXMucmVzaXphYmxlQ29sdW1ucy5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuaW5pdFJlc2l6YWJsZUNvbHVtbnMoKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuZGVzdHJveWVkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveWVkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplXHJcbiAgICogKiBDaGVjayB0aGF0IHRoZSBob3N0IGVsZW1lbnQgaXMgYSB0YWJsZSBhbmQgdGhhdCA8Y29sPiBlbGVtZW50cyBhcmUgcHJlc2VudFxyXG4gICAqICogU2F2ZSB0aGUgaW5pdGlhbCB3aWR0aCBvZiB0YWJsZSBhcyB0aGUgbWluaW11bSB0YWJsZSB3aWR0aFxyXG4gICAqICogU3RvcmUgYSByZWZlcmVuY2UgdG8gYWxsIDxjb2w+IGVsZW1lbnRzXHJcbiAgICogKiBBZGQgYSBoYW5kbGUgdG8gZWFjaCByZXNpemFibGUgY29sdW1uIGFuZCBzZXQgdXAgbW91c2Vkb3duIGxpc3RlbmVycyB0byBzdGFydCBkcmFnZ2luZ1xyXG4gICAqL1xyXG4gIHByaXZhdGUgaW5pdFJlc2l6YWJsZUNvbHVtbnMoKSB7XHJcbiAgICBpZiAodGhpcy5pc1Jlc2l6YWJsZSAhPT0gZmFsc2UpIHtcclxuXHJcbiAgICAgIHRoaXMudGFibGVFbCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcclxuICAgICAgaWYgKHRoaXMudGFibGVFbC50YWdOYW1lICE9PSAnVEFCTEUnKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgJ2VjUmVzaXphYmxlVGFibGUnIGRpcmVjdGl2ZSBjYW4gb25seSBiZSBwbGFjZWQgb24gYSA8dGFibGU+IGVsZW1lbnQuYCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLnNvcnRhYmxlVGFibGUpIHtcclxuICAgICAgICB0aGlzLm1pbkNvbFdpZHRoID0gNDg7XHJcbiAgICAgIH1cclxuICBcclxuICAgICAgY29uc3QgaGVhZGVycyA9IHRoaXMudGFibGVFbC5xdWVyeVNlbGVjdG9yQWxsKCd0aCcpO1xyXG4gICAgICBjb25zdCBjb2xzID0gdGhpcy50YWJsZUVsLnF1ZXJ5U2VsZWN0b3JBbGwoJ2NvbCcpO1xyXG4gICAgICB0aGlzLmNvbHMgPSBbXTtcclxuICAgICAgdGhpcy5jb2xXaWR0aHMgPSBbXTtcclxuICBcclxuICAgICAgaWYgKGNvbHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgY29uc3QgZnJhZ21lbnQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcclxuICAgICAgICBjb25zdCBjb2xncm91cDogSFRNTEVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2NvbGdyb3VwJyk7XHJcbiAgICAgICAgaGVhZGVycy5mb3JFYWNoKCgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGNvbCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnY29sJyk7XHJcbiAgICAgICAgICB0aGlzLmNvbHMucHVzaChjb2wpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChmcmFnbWVudCwgY29sKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGNvbGdyb3VwLCBmcmFnbWVudCk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUodGhpcy50YWJsZUVsLCBjb2xncm91cCwgdGhpcy50YWJsZUVsLmZpcnN0RWxlbWVudENoaWxkKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb2xzLmZvckVhY2goY29sRWwgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jb2xzLnB1c2goY29sRWwpO1xyXG4gICAgICAgIH0pO1xyXG4gIFxyXG4gICAgICAgIGlmIChoZWFkZXJzLmxlbmd0aCAhPT0gY29scy5sZW5ndGgpIHtcclxuICAgICAgICAgIGNvbnNvbGUud2FybihgVGhlcmUgYXJlICR7aGVhZGVycy5sZW5ndGh9IDx0aD4gZWxlbWVudHMgYW5kICR7dGhpcy5jb2xzLmxlbmd0aH0gPGNvbD4gZWxlbWVudHMgaW4gdGhpcyB0aGlzIHRhYmxlLiBUaGUgbnVtYmVyIG9mIGNvbHVtbnMgYW5kIHRhYmxlIGhlYWRlcnMgbXVzdCBtYXRjaC4gPHRoPiBlbGVtZW50cyB3aXRoIGEgJ2NvbHNwYW4nIGF0dHJpYnV0ZSBhcmUgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQuYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBsYXN0UmVzaXphYmxlSW5kZXggPSBBcnJheS5mcm9tKGhlYWRlcnMpLnJldmVyc2UoKS5maW5kSW5kZXgoZWwgPT4gZWwuY2xhc3NMaXN0LmNvbnRhaW5zKCdpcy1yZXNpemFibGUnKSkgKyAxO1xyXG4gICAgICB0aGlzLmxhc3RDb2xJbmRleCA9IHRoaXMuY29scy5sZW5ndGggLSBsYXN0UmVzaXphYmxlSW5kZXg7XHJcbiAgXHJcbiAgICAgIGhlYWRlcnMuZm9yRWFjaCh0aCA9PiB7XHJcbiAgICAgICAgaWYgKHRoLmNsYXNzTGlzdC5jb250YWlucygnaXMtcmVzaXphYmxlJykpIHtcclxuICAgICAgICAgIGNvbnN0IGhhbmRsZSA9IHRoLnF1ZXJ5U2VsZWN0b3IoJy5oYW5kbGUnKTtcclxuXHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihoYW5kbGUsICdtb3VzZWRvd24nLCAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50RWwgPSB0aDtcclxuICAgICAgICAgICAgdGhpcy5zdGFydERyYWcoZXZlbnQpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICBcclxuICAgICAgLy8gV2UgbmVlZCB0byB3YWl0IGEgdGljayBmb3IgYSB2aWV3IHRoYXQgd2FzIHByZXZpb3VzbHkgbG9hZGVkIHRvIGJlIHJlbW92ZWRcclxuICAgICAgLy8gZnJvbSB0aGUgRE9NIGFuZCBhbGxvdyB0aGlzIGRpcmVjdGl2ZSdzIHBhcmVudCB2aWV3IHRvIGZ1bGx5IGV4cGFuZCBpbiB0aGUgXHJcbiAgICAgIC8vIHZpZXdwb3J0IGJlZm9yZSBnZXR0aW5nIHdpZHRocy5cclxuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0SW5pdGlhbFdpZHRocyhoZWFkZXJzKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgdGhlIGNvbHVtbiB3aXRoIHRoZSBjYWxjdWxhdGVkIHdpZHRoIHdoaWxlIHJlc2l6aW5nLlxyXG4gICAqIElmIHRoZSBjb2x1bW4gaXMgbmFycm93ZWQgc28gdGhhdCB0aGUgdGFibGUgd291bGQgYmUgbmFycm93ZXIgdGhhbiB0aGUgbWluLXdpZHRoLFxyXG4gICAqIGV4cGFuZCB0aGUgbGFzdCBjb2x1bW4uIElmIHRoZSB0YWJsZSBpcyB0aGVuIHdpZGVuZWQsIHJldHVybiB0aGUgbGFzdCBjb2x1bW5cclxuICAgKiB0byBpdHMgaW5pdGlhbCB3aWR0aC5cclxuICAgKiBAcGFyYW0gd2lkdGggXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHNldFdpZHRoKHdpZHRoOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRFbCkge1xyXG4gICAgICBjb25zdCBjZWxsSW5kZXg6IG51bWJlciA9ICg8SFRNTFRhYmxlSGVhZGVyQ2VsbEVsZW1lbnQ+dGhpcy5jdXJyZW50RWwpLmNlbGxJbmRleDtcclxuICAgICAgd2lkdGggPSBNYXRoLm1heCh3aWR0aCwgdGhpcy5taW5Db2xXaWR0aCk7XHJcbiAgICAgIHRoaXMuY29sV2lkdGhzW2NlbGxJbmRleF0gPSB3aWR0aDtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNvbHNbY2VsbEluZGV4XSwgJ3dpZHRoJywgd2lkdGggKyAncHgnKTtcclxuXHJcbiAgICAgIGxldCB0b3RhbENvbFdpZHRocyA9IDA7XHJcbiAgICAgIHRoaXMuY29sV2lkdGhzLmZvckVhY2godyA9PiB7XHJcbiAgICAgICAgdG90YWxDb2xXaWR0aHMgKz0gdztcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9ICg8SFRNTERpdkVsZW1lbnQ+dGhpcy5jb250YWluZXJFbC5uYXRpdmVFbGVtZW50KS5jbGllbnRXaWR0aDtcclxuICAgICAgaWYgKHRoaXMubWluVGFibGVXaWR0aCAhPT0gY29udGFpbmVyV2lkdGgpIHtcclxuICAgICAgICB0aGlzLm1pblRhYmxlV2lkdGggPSBjb250YWluZXJXaWR0aDtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgZGlmZiA9IHRvdGFsQ29sV2lkdGhzIC0gdGhpcy5taW5UYWJsZVdpZHRoOyAgICAgIFxyXG4gICAgICBpZiAoZGlmZiA8IDApIHtcclxuICAgICAgICBjb25zdCBjb2xJbmRleCA9IGNlbGxJbmRleCA9PT0gdGhpcy5sYXN0Q29sSW5kZXggPyB0aGlzLmxhc3RDb2xJbmRleCAtIDEgOiB0aGlzLmxhc3RDb2xJbmRleDtcclxuICAgICAgICBjb25zdCBjb2xXaWR0aCA9IE1hdGgubWF4KHRoaXMuY29sV2lkdGhzW2NvbEluZGV4XSArIE1hdGguYWJzKGRpZmYpLCB0aGlzLm1pbkNvbFdpZHRoKTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY29sc1tjb2xJbmRleF0sICd3aWR0aCcsIGNvbFdpZHRoICsgJ3B4Jyk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRhYmxlRWwsICd3aWR0aCcsIHRoaXMubWluVGFibGVXaWR0aCArICdweCcpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50YWJsZUVsLCAnd2lkdGgnLCB0b3RhbENvbFdpZHRocyArICdweCcpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgc3RvcERyYWcoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIHN1cGVyLnN0b3BEcmFnKGV2ZW50KTtcclxuICAgIFxyXG4gICAgaWYgKHRoaXMuY3VycmVudEVsKSB7XHJcbiAgICAgIGNvbnN0IGNlbGxJbmRleCA9ICg8SFRNTFRhYmxlSGVhZGVyQ2VsbEVsZW1lbnQ+dGhpcy5jdXJyZW50RWwpLmNlbGxJbmRleDtcclxuICAgICAgY29uc3QgY3VycmVudENvbCA9IHRoaXMucmVzaXphYmxlQ29sdW1ucy5maW5kKGNvbCA9PiAoPEhUTUxUYWJsZUhlYWRlckNlbGxFbGVtZW50PmNvbC5lbC5uYXRpdmVFbGVtZW50KS5jZWxsSW5kZXggPT09IGNlbGxJbmRleCk7XHJcbiAgICAgIGlmIChjdXJyZW50Q29sKSB7XHJcbiAgICAgICAgY3VycmVudENvbC5lbWl0V2lkdGgoTWF0aC5yb3VuZCh0aGlzLmNvbFdpZHRoc1tjZWxsSW5kZXhdKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhcHR1cmUgdGhlIGluaXRpYWwgd2lkdGggb2YgdGhlIHRhYmxlIGFuZCB0aGUgdGFibGUgaGVhZGVycy5cclxuICAgKiBAcGFyYW0gaGVhZGVycyBcclxuICAgKi9cclxuICBwcml2YXRlIHNldEluaXRpYWxXaWR0aHMoaGVhZGVyczogTm9kZUxpc3RPZjxIVE1MVGFibGVIZWFkZXJDZWxsRWxlbWVudD4pOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudFRhYmxlV2lkdGggPSB0aGlzLnRhYmxlRWwub2Zmc2V0V2lkdGg7XHJcbiAgICB0aGlzLm1pblRhYmxlV2lkdGggPSB0aGlzLmNvbnRhaW5lckVsLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XHJcblxyXG4gICAgaGVhZGVycy5mb3JFYWNoKHRoID0+IHtcclxuICAgICAgdGhpcy5jb2xXaWR0aHNbdGguY2VsbEluZGV4XSA9IHRoLm9mZnNldFdpZHRoO1xyXG4gICAgICBjb25zdCB3aWR0aCA9IHRoLnN0eWxlLndpZHRoO1xyXG4gICAgICBpZiAod2lkdGgpIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY29sc1t0aC5jZWxsSW5kZXhdLCAnd2lkdGgnLCB3aWR0aCk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aCwgJ3dpZHRoJyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGxldCB0b3RhbENvbFdpZHRocyA9IDA7XHJcbiAgICB0aGlzLmNvbFdpZHRocy5mb3JFYWNoKHcgPT4ge1xyXG4gICAgICB0b3RhbENvbFdpZHRocyArPSB3O1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gQ2hlY2sgdG8gc2VlIGlmIG91ciB0b3RhbCBjb2x1bW4gd2lkdGhzIGlzIGdyZWF0ZXIgdGhhbiBvdXIgdGFibGUgd2lkdGhcclxuICAgIGxldCBjb2xXaWR0aERpZmZlcmVuY2UgPSB0b3RhbENvbFdpZHRocyAtIHRoaXMuY3VycmVudFRhYmxlV2lkdGg7XHJcbiAgIFxyXG4gICAgLy8gSWYgdGhlIHRvdGFsIGNvbHVtbiB3aWR0aHMgaXMgZ3JlYXRlciB0aGFuIHplcm8gdGhlbiBpdHMgbGFyZ2VyIHRoYW4gb3VyIHRhYmxlIGNvbnRhaW5lclxyXG4gICAgLy8gVG8gcHJldmVudCBhIGhvcml6b250YWwgc2Nyb2xsIHdlIHdpbGwgYnVtcCBhIGNvbHVtbnMgd2lkdGggZG93biB0byBtYXRjaCB0aGUgdGFibGUgc2l6ZVxyXG4gICAgaWYgKGNvbFdpZHRoRGlmZmVyZW5jZSA+IDApIHtcclxuICAgICAgLy8gSWRlYWxseSB3ZSB3aWxsIGNob29zZSB0aGUgc2Vjb25kIHRvIHRoZSBsYXN0IGNvbHVtbiwgYnV0IGlmIHRoZXJlIGlzIG9ubHkgb25lIHRoYXQnbGwgZG9cclxuICAgICAgbGV0IGNvbHVtblRvUmVkdWNlID0gaGVhZGVycy5sZW5ndGggPiAxID8gaGVhZGVycy5sZW5ndGggLSAyIDogMDtcclxuXHJcbiAgICAgIC8vIFNocmluayB0aGUgY29sdW1uXHJcbiAgICAgIGxldCB0aCA9IGhlYWRlcnNbY29sdW1uVG9SZWR1Y2VdO1xyXG4gICAgICB0aGlzLmNvbFdpZHRoc1t0aC5jZWxsSW5kZXhdID0gdGgub2Zmc2V0V2lkdGggLSBjb2xXaWR0aERpZmZlcmVuY2U7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jb2xzW3RoLmNlbGxJbmRleF0sICd3aWR0aCcsIHRoaXMuY29sV2lkdGhzW3RoLmNlbGxJbmRleF0gKyAncHgnKTtcclxuICAgIFxyXG4gICAgICAvLyBSZWR1Y2Ugb3VyIHRvdGFsQ29sV2lkdGhzIHRvIHJlZmxlY3RcclxuICAgICAgdG90YWxDb2xXaWR0aHMgPSB0b3RhbENvbFdpZHRocyAtIGNvbFdpZHRoRGlmZmVyZW5jZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudGFibGVFbCwgJ3dpZHRoJywgTWF0aC5tYXgodGhpcy5jdXJyZW50VGFibGVXaWR0aCwgdG90YWxDb2xXaWR0aHMpICsgJ3B4Jyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudGFibGVFbCwgJ21pbldpZHRoJywgJzEwMCUnKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,18 +1,16 @@
1
1
  import { Component, ContentChildren, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { EMPTY, merge, Subject } from 'rxjs';
3
3
  import { catchError, debounceTime, map, pluck, skipUntil, switchMap, takeUntil, tap } from 'rxjs/operators';
4
- import { Overlay } from '../view-overlay/view-overlay.component';
4
+ import { Overlay, ViewOverlayComponent } from '../view-overlay/view-overlay.component';
5
5
  import { ResizableColumnComponent } from './resizable-column.component';
6
6
  import { TablePaginationComponent } from './table-pagination.component';
7
+ import { TableComponent } from './table.component';
8
+ import { TextboxComponent } from '../../controls/textbox/textbox.component';
9
+ import { NgIf, NgClass, NgTemplateOutlet } from '@angular/common';
7
10
  import * as i0 from "@angular/core";
8
11
  import * as i1 from "../../core/error.service";
9
12
  import * as i2 from "@ngx-translate/core";
10
13
  import * as i3 from "../../shared/display/pipes/row-count.pipe";
11
- import * as i4 from "@angular/common";
12
- import * as i5 from "../../controls/textbox/textbox.component";
13
- import * as i6 from "../view-overlay/view-overlay.component";
14
- import * as i7 from "./table.component";
15
- import * as i8 from "./table-pagination.component";
16
14
  export class SearchableTableComponent {
17
15
  /** Reference to the searchModel */
18
16
  get searchModel() {
@@ -254,10 +252,10 @@ export class SearchableTableComponent {
254
252
  }
255
253
  }
256
254
  SearchableTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SearchableTableComponent, deps: [{ token: i1.ErrorService }, { token: i2.TranslateService }, { token: i3.RowCountPipe }], target: i0.ɵɵFactoryTarget.Component });
257
- SearchableTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SearchableTableComponent, selector: "ec-searchable-table", inputs: { id: "id", resizable: "resizable", sortable: "sortable", sort: "sort", autofocus: "autofocus", tableClasses: "tableClasses", searchboxPlaceholder: "searchboxPlaceholder", formModel: "formModel", noDataMessage: "noDataMessage", noSearchResultsMessage: "noSearchResultsMessage", ready: "ready", getItems: "getItems", refresh: "refresh", status: "status", tableLayoutFixed: "tableLayoutFixed", searchboxTabIndex: "searchboxTabIndex", maxItemCount: "maxItemCount", hideSearchControl: "hideSearchControl", hideHeader: "hideHeader", objectType: "objectType", hideFooter: "hideFooter", pageable: "pageable", pageSize: "pageSize", maxTabs: "maxTabs", searchboxReadonly: "searchboxReadonly", selectionContext: "selectionContext", selectionToolbarTemplate: "selectionToolbarTemplate", additionalCountText: "additionalCountText", selectable: "selectable", customContentTemplate: "customContentTemplate", removeCard: "removeCard", overlayClasses: "overlayClasses", fillParentHeight: "fillParentHeight" }, outputs: { sortChange: "sortChange", pageChangeEmitter: "pageChange", itemsChange: "itemsChange" }, queries: [{ propertyName: "resizableColumns", predicate: ResizableColumnComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<header *ngIf=\"!hideHeader\"\r\n class=\"d-flex flex-shrink align-items-center mb-3\">\r\n <ec-textbox id=\"{{id}}_searchbox\"\r\n *ngIf=\"!hideSearchControl\"\r\n class=\"mb-0 flex-grow mr-2\"\r\n [autofocus]=\"autofocus\"\r\n [formModel]=\"searchModel\"\r\n [tabindex]=\"searchboxTabIndex\"\r\n [placeholder]=\"searchboxPlaceholder\"\r\n [readonly]=\"searchboxReadonly\"></ec-textbox>\r\n <div class=\"flex-grow\">\r\n <ng-content select=\".searchable-table-controls\"></ng-content>\r\n </div>\r\n</header>\r\n<section id=\"{{id}}_card\"\r\n class=\"d-flex flex-column {{overlayClasses}}\"\r\n [ngClass]=\"{'is-translucent': status.status !== 'error', 'has-mask': status.status !== 'hasData', 'card m-0 bg-content': !customContentTemplate && !removeCard}\"\r\n ecOverlay\r\n [status]=\"status.status\"\r\n [message]=\"status.message\"\r\n [displayAsMask]=\"true\">\r\n <ng-content select=\".card-header\"></ng-content>\r\n <ng-container *ngTemplateOutlet=\"customContentTemplate || defaultContentTemplate\">\r\n </ng-container>\r\n\r\n <!-- the default template is an ec-table with proxied-over searchable table inputs. \r\n If that doesn't work for you then you can specify a customContentTemplate to use instead\r\n and still retain all the event handling, header, footer pagination, etc support -->\r\n <ng-template #defaultContentTemplate>\r\n <ec-table id=\"{{id}}_table\"\r\n class=\"{{tableClasses}}\"\r\n [class.is-fixed]=\"tableLayoutFixed\"\r\n [sortable]=\"sortable\"\r\n [sort]=\"sort\"\r\n (sortChange)=\"onSortChange($event)\"\r\n [resizable]=\"resizable\"\r\n [scrollable]=\"true\"\r\n [selectable]=\"selectable\"\r\n [selectionContext]=\"selectionContext\"\r\n [selectionToolbarTemplate]=\"selectionToolbarTemplate\"\r\n [resizableColumns]=\"resizableColumns\">\r\n <ng-content></ng-content>\r\n </ec-table>\r\n </ng-template>\r\n\r\n <!-- pagination footer visible if table is page-able and there are more than one page of results -->\r\n <footer *ngIf=\"!hideFooter && pageable && searchResults.totalItemsBeforePaging! > pageSize!\"\r\n class=\"pagination-footer\"\r\n [class.border-top]=\"!customContentTemplate\">\r\n <ec-table-pagination id=\"{{id}}_pager\"\r\n class=\"font-color-primary\"\r\n [totalItems]=\"searchResults.totalItemsBeforePaging\"\r\n [pageSize]=\"pageSize\"\r\n [maxTabs]=\"maxTabs\"\r\n [pageNumber]=\"pageInfo?.pageNumber\"\r\n (pageChanged)=\"onPageChange($event)\">\r\n </ec-table-pagination>\r\n <div id=\"resultsCount\"\r\n *ngIf=\"searchResults?.items?.length\"\r\n class=\"ml-auto font-color-hint text-truncate\" \r\n title=\"{{resultsCount}} {{additionalCountText}}\">{{resultsCount}} {{additionalCountText}}</div>\r\n </footer>\r\n\r\n <!-- default footer: visible if hideFooter is false and table is not page-able or there are only one page of results (always shows if there is a caption to indicate no results) -->\r\n <footer *ngIf=\"(!hideFooter && (!pageable || searchResults.totalItemsBeforePaging! <= pageSize!)) || tableCaption\"\r\n class=\"caption-footer\"\r\n [ngClass]=\"{'has-results': searchResults?.items?.length, 'border-top': searchResults?.items?.length && !customContentTemplate}\">\r\n <ng-content *ngIf=\"!tableCaption\"\r\n select=\".searchable-table-footer\"></ng-content>\r\n <div id=\"tableCaption\"\r\n *ngIf=\"tableCaption\"\r\n [innerHTML]=\"tableCaption\"></div>\r\n <div id=\"resultsCount\"\r\n *ngIf=\"searchResults?.items?.length\"\r\n class=\"ml-auto text-truncate\"\r\n title=\"{{resultsCount}} {{additionalCountText}}\">{{resultsCount}} {{additionalCountText}}</div>\r\n </footer>\r\n</section>", styles: [":host{--ec-searchable-table-flex-properties: 0 1 auto;--ec-searchable-table-flex-overlay-section: var(--ec-searchable-table-flex-properties, 0 1 auto);--ec-searchable-table-flex-ec-table: var(--ec-searchable-table-flex-properties, 0 1 auto);display:flex;flex-direction:column;flex:1 1;min-height:0}:host ::ng-deep .card-header+ec-table.is-selectable th{height:2.5rem;padding-bottom:.9375rem}:host ::ng-deep .card-header+ec-table.is-selectable th.is-resizable .handle{padding-top:.5rem}:host ::ng-deep .card-header+ec-table.is-selectable th.is-resizable .handle:before{top:.5rem}:host ::ng-deep .card-header+ec-table.is-selectable .selectable-table-toolbar{height:2.5rem;padding-bottom:.5rem}section{flex:var(--ec-searchable-table-flex-overlay-section);min-height:0}ec-table{flex:var(--ec-searchable-table-flex-ec-table);min-height:0}footer{display:flex;align-items:center;flex:none;font-size:var(--ec-font-size-label);line-height:1rem}footer.has-results{color:var(--ec-color-hint-dark);text-align:right}.pagination-footer{padding:0 .5rem 0 0}.caption-footer{padding:.5rem;height:var(--ec-searchable-table-height-caption-footer)}.card.has-mask{min-height:15rem}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.TextboxComponent, selector: "ec-textbox", inputs: ["autocomplete", "type", "placeholder", "maxlength", "minlength", "rows", "selectOnAutofocus", "upperCase"] }, { kind: "component", type: i6.ViewOverlayComponent, selector: "[ecOverlay]", inputs: ["status", "message", "action", "noDataTemplate", "displayAsMask", "overlayClassList"] }, { kind: "component", type: i7.TableComponent, selector: "ec-table", inputs: ["id", "scrollable", "resizable", "condensed", "sortable", "selectionContext", "selectionToolbarTemplate", "selectable", "isForm", "sort", "resizableColumns"], outputs: ["sortChange"] }, { kind: "component", type: i8.TablePaginationComponent, selector: "ec-table-pagination", inputs: ["id", "totalItems", "pageSize", "pageNumber", "maxTabs"], outputs: ["pageChanged"] }] });
255
+ SearchableTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SearchableTableComponent, isStandalone: true, selector: "ec-searchable-table", inputs: { id: "id", resizable: "resizable", sortable: "sortable", sort: "sort", autofocus: "autofocus", tableClasses: "tableClasses", searchboxPlaceholder: "searchboxPlaceholder", formModel: "formModel", noDataMessage: "noDataMessage", noSearchResultsMessage: "noSearchResultsMessage", ready: "ready", getItems: "getItems", refresh: "refresh", status: "status", tableLayoutFixed: "tableLayoutFixed", searchboxTabIndex: "searchboxTabIndex", maxItemCount: "maxItemCount", hideSearchControl: "hideSearchControl", hideHeader: "hideHeader", objectType: "objectType", hideFooter: "hideFooter", pageable: "pageable", pageSize: "pageSize", maxTabs: "maxTabs", searchboxReadonly: "searchboxReadonly", selectionContext: "selectionContext", selectionToolbarTemplate: "selectionToolbarTemplate", additionalCountText: "additionalCountText", selectable: "selectable", customContentTemplate: "customContentTemplate", removeCard: "removeCard", overlayClasses: "overlayClasses", fillParentHeight: "fillParentHeight" }, outputs: { sortChange: "sortChange", pageChangeEmitter: "pageChange", itemsChange: "itemsChange" }, queries: [{ propertyName: "resizableColumns", predicate: ResizableColumnComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<header *ngIf=\"!hideHeader\"\r\n class=\"d-flex flex-shrink align-items-center mb-3\">\r\n <ec-textbox id=\"{{id}}_searchbox\"\r\n *ngIf=\"!hideSearchControl\"\r\n class=\"mb-0 flex-grow mr-2\"\r\n [autofocus]=\"autofocus\"\r\n [formModel]=\"searchModel\"\r\n [tabindex]=\"searchboxTabIndex\"\r\n [placeholder]=\"searchboxPlaceholder\"\r\n [readonly]=\"searchboxReadonly\"></ec-textbox>\r\n <div class=\"flex-grow\">\r\n <ng-content select=\".searchable-table-controls\"></ng-content>\r\n </div>\r\n</header>\r\n<section id=\"{{id}}_card\"\r\n class=\"d-flex flex-column {{overlayClasses}}\"\r\n [ngClass]=\"{'is-translucent': status.status !== 'error', 'has-mask': status.status !== 'hasData', 'card m-0 bg-content': !customContentTemplate && !removeCard}\"\r\n ecOverlay\r\n [status]=\"status.status\"\r\n [message]=\"status.message\"\r\n [displayAsMask]=\"true\">\r\n <ng-content select=\".card-header\"></ng-content>\r\n <ng-container *ngTemplateOutlet=\"customContentTemplate || defaultContentTemplate\">\r\n </ng-container>\r\n\r\n <!-- the default template is an ec-table with proxied-over searchable table inputs. \r\n If that doesn't work for you then you can specify a customContentTemplate to use instead\r\n and still retain all the event handling, header, footer pagination, etc support -->\r\n <ng-template #defaultContentTemplate>\r\n <ec-table id=\"{{id}}_table\"\r\n class=\"{{tableClasses}}\"\r\n [class.is-fixed]=\"tableLayoutFixed\"\r\n [sortable]=\"sortable\"\r\n [sort]=\"sort\"\r\n (sortChange)=\"onSortChange($event)\"\r\n [resizable]=\"resizable\"\r\n [scrollable]=\"true\"\r\n [selectable]=\"selectable\"\r\n [selectionContext]=\"selectionContext\"\r\n [selectionToolbarTemplate]=\"selectionToolbarTemplate\"\r\n [resizableColumns]=\"resizableColumns\">\r\n <ng-content></ng-content>\r\n </ec-table>\r\n </ng-template>\r\n\r\n <!-- pagination footer visible if table is page-able and there are more than one page of results -->\r\n <footer *ngIf=\"!hideFooter && pageable && searchResults.totalItemsBeforePaging! > pageSize!\"\r\n class=\"pagination-footer\"\r\n [class.border-top]=\"!customContentTemplate\">\r\n <ec-table-pagination id=\"{{id}}_pager\"\r\n class=\"font-color-primary\"\r\n [totalItems]=\"searchResults.totalItemsBeforePaging\"\r\n [pageSize]=\"pageSize\"\r\n [maxTabs]=\"maxTabs\"\r\n [pageNumber]=\"pageInfo?.pageNumber\"\r\n (pageChanged)=\"onPageChange($event)\">\r\n </ec-table-pagination>\r\n <div id=\"resultsCount\"\r\n *ngIf=\"searchResults?.items?.length\"\r\n class=\"ml-auto font-color-hint text-truncate\" \r\n title=\"{{resultsCount}} {{additionalCountText}}\">{{resultsCount}} {{additionalCountText}}</div>\r\n </footer>\r\n\r\n <!-- default footer: visible if hideFooter is false and table is not page-able or there are only one page of results (always shows if there is a caption to indicate no results) -->\r\n <footer *ngIf=\"(!hideFooter && (!pageable || searchResults.totalItemsBeforePaging! <= pageSize!)) || tableCaption\"\r\n class=\"caption-footer\"\r\n [ngClass]=\"{'has-results': searchResults?.items?.length, 'border-top': searchResults?.items?.length && !customContentTemplate}\">\r\n <ng-content *ngIf=\"!tableCaption\"\r\n select=\".searchable-table-footer\"></ng-content>\r\n <div id=\"tableCaption\"\r\n *ngIf=\"tableCaption\"\r\n [innerHTML]=\"tableCaption\"></div>\r\n <div id=\"resultsCount\"\r\n *ngIf=\"searchResults?.items?.length\"\r\n class=\"ml-auto text-truncate\"\r\n title=\"{{resultsCount}} {{additionalCountText}}\">{{resultsCount}} {{additionalCountText}}</div>\r\n </footer>\r\n</section>", styles: [":host{--ec-searchable-table-flex-properties: 0 1 auto;--ec-searchable-table-flex-overlay-section: var(--ec-searchable-table-flex-properties, 0 1 auto);--ec-searchable-table-flex-ec-table: var(--ec-searchable-table-flex-properties, 0 1 auto);display:flex;flex-direction:column;flex:1 1;min-height:0}:host ::ng-deep .card-header+ec-table.is-selectable th{height:2.5rem;padding-bottom:.9375rem}:host ::ng-deep .card-header+ec-table.is-selectable th.is-resizable .handle{padding-top:.5rem}:host ::ng-deep .card-header+ec-table.is-selectable th.is-resizable .handle:before{top:.5rem}:host ::ng-deep .card-header+ec-table.is-selectable .selectable-table-toolbar{height:2.5rem;padding-bottom:.5rem}section{flex:var(--ec-searchable-table-flex-overlay-section);min-height:0}ec-table{flex:var(--ec-searchable-table-flex-ec-table);min-height:0}footer{display:flex;align-items:center;flex:none;font-size:var(--ec-font-size-label);line-height:1rem}footer.has-results{color:var(--ec-color-hint-dark);text-align:right}.pagination-footer{padding:0 .5rem 0 0}.caption-footer{padding:.5rem;height:var(--ec-searchable-table-height-caption-footer)}.card.has-mask{min-height:15rem}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TextboxComponent, selector: "ec-textbox", inputs: ["autocomplete", "type", "placeholder", "maxlength", "minlength", "rows", "selectOnAutofocus", "upperCase"] }, { kind: "component", type: ViewOverlayComponent, selector: "[ecOverlay]", inputs: ["status", "message", "action", "noDataTemplate", "displayAsMask", "overlayClassList"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: TableComponent, selector: "ec-table", inputs: ["id", "scrollable", "resizable", "condensed", "sortable", "selectionContext", "selectionToolbarTemplate", "selectable", "isForm", "sort", "resizableColumns"], outputs: ["sortChange"] }, { kind: "component", type: TablePaginationComponent, selector: "ec-table-pagination", inputs: ["id", "totalItems", "pageSize", "pageNumber", "maxTabs"], outputs: ["pageChanged"] }] });
258
256
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SearchableTableComponent, decorators: [{
259
257
  type: Component,
260
- args: [{ selector: 'ec-searchable-table', template: "<header *ngIf=\"!hideHeader\"\r\n class=\"d-flex flex-shrink align-items-center mb-3\">\r\n <ec-textbox id=\"{{id}}_searchbox\"\r\n *ngIf=\"!hideSearchControl\"\r\n class=\"mb-0 flex-grow mr-2\"\r\n [autofocus]=\"autofocus\"\r\n [formModel]=\"searchModel\"\r\n [tabindex]=\"searchboxTabIndex\"\r\n [placeholder]=\"searchboxPlaceholder\"\r\n [readonly]=\"searchboxReadonly\"></ec-textbox>\r\n <div class=\"flex-grow\">\r\n <ng-content select=\".searchable-table-controls\"></ng-content>\r\n </div>\r\n</header>\r\n<section id=\"{{id}}_card\"\r\n class=\"d-flex flex-column {{overlayClasses}}\"\r\n [ngClass]=\"{'is-translucent': status.status !== 'error', 'has-mask': status.status !== 'hasData', 'card m-0 bg-content': !customContentTemplate && !removeCard}\"\r\n ecOverlay\r\n [status]=\"status.status\"\r\n [message]=\"status.message\"\r\n [displayAsMask]=\"true\">\r\n <ng-content select=\".card-header\"></ng-content>\r\n <ng-container *ngTemplateOutlet=\"customContentTemplate || defaultContentTemplate\">\r\n </ng-container>\r\n\r\n <!-- the default template is an ec-table with proxied-over searchable table inputs. \r\n If that doesn't work for you then you can specify a customContentTemplate to use instead\r\n and still retain all the event handling, header, footer pagination, etc support -->\r\n <ng-template #defaultContentTemplate>\r\n <ec-table id=\"{{id}}_table\"\r\n class=\"{{tableClasses}}\"\r\n [class.is-fixed]=\"tableLayoutFixed\"\r\n [sortable]=\"sortable\"\r\n [sort]=\"sort\"\r\n (sortChange)=\"onSortChange($event)\"\r\n [resizable]=\"resizable\"\r\n [scrollable]=\"true\"\r\n [selectable]=\"selectable\"\r\n [selectionContext]=\"selectionContext\"\r\n [selectionToolbarTemplate]=\"selectionToolbarTemplate\"\r\n [resizableColumns]=\"resizableColumns\">\r\n <ng-content></ng-content>\r\n </ec-table>\r\n </ng-template>\r\n\r\n <!-- pagination footer visible if table is page-able and there are more than one page of results -->\r\n <footer *ngIf=\"!hideFooter && pageable && searchResults.totalItemsBeforePaging! > pageSize!\"\r\n class=\"pagination-footer\"\r\n [class.border-top]=\"!customContentTemplate\">\r\n <ec-table-pagination id=\"{{id}}_pager\"\r\n class=\"font-color-primary\"\r\n [totalItems]=\"searchResults.totalItemsBeforePaging\"\r\n [pageSize]=\"pageSize\"\r\n [maxTabs]=\"maxTabs\"\r\n [pageNumber]=\"pageInfo?.pageNumber\"\r\n (pageChanged)=\"onPageChange($event)\">\r\n </ec-table-pagination>\r\n <div id=\"resultsCount\"\r\n *ngIf=\"searchResults?.items?.length\"\r\n class=\"ml-auto font-color-hint text-truncate\" \r\n title=\"{{resultsCount}} {{additionalCountText}}\">{{resultsCount}} {{additionalCountText}}</div>\r\n </footer>\r\n\r\n <!-- default footer: visible if hideFooter is false and table is not page-able or there are only one page of results (always shows if there is a caption to indicate no results) -->\r\n <footer *ngIf=\"(!hideFooter && (!pageable || searchResults.totalItemsBeforePaging! <= pageSize!)) || tableCaption\"\r\n class=\"caption-footer\"\r\n [ngClass]=\"{'has-results': searchResults?.items?.length, 'border-top': searchResults?.items?.length && !customContentTemplate}\">\r\n <ng-content *ngIf=\"!tableCaption\"\r\n select=\".searchable-table-footer\"></ng-content>\r\n <div id=\"tableCaption\"\r\n *ngIf=\"tableCaption\"\r\n [innerHTML]=\"tableCaption\"></div>\r\n <div id=\"resultsCount\"\r\n *ngIf=\"searchResults?.items?.length\"\r\n class=\"ml-auto text-truncate\"\r\n title=\"{{resultsCount}} {{additionalCountText}}\">{{resultsCount}} {{additionalCountText}}</div>\r\n </footer>\r\n</section>", styles: [":host{--ec-searchable-table-flex-properties: 0 1 auto;--ec-searchable-table-flex-overlay-section: var(--ec-searchable-table-flex-properties, 0 1 auto);--ec-searchable-table-flex-ec-table: var(--ec-searchable-table-flex-properties, 0 1 auto);display:flex;flex-direction:column;flex:1 1;min-height:0}:host ::ng-deep .card-header+ec-table.is-selectable th{height:2.5rem;padding-bottom:.9375rem}:host ::ng-deep .card-header+ec-table.is-selectable th.is-resizable .handle{padding-top:.5rem}:host ::ng-deep .card-header+ec-table.is-selectable th.is-resizable .handle:before{top:.5rem}:host ::ng-deep .card-header+ec-table.is-selectable .selectable-table-toolbar{height:2.5rem;padding-bottom:.5rem}section{flex:var(--ec-searchable-table-flex-overlay-section);min-height:0}ec-table{flex:var(--ec-searchable-table-flex-ec-table);min-height:0}footer{display:flex;align-items:center;flex:none;font-size:var(--ec-font-size-label);line-height:1rem}footer.has-results{color:var(--ec-color-hint-dark);text-align:right}.pagination-footer{padding:0 .5rem 0 0}.caption-footer{padding:.5rem;height:var(--ec-searchable-table-height-caption-footer)}.card.has-mask{min-height:15rem}\n"] }]
258
+ args: [{ selector: 'ec-searchable-table', standalone: true, imports: [NgIf, TextboxComponent, ViewOverlayComponent, NgClass, NgTemplateOutlet, TableComponent, TablePaginationComponent], template: "<header *ngIf=\"!hideHeader\"\r\n class=\"d-flex flex-shrink align-items-center mb-3\">\r\n <ec-textbox id=\"{{id}}_searchbox\"\r\n *ngIf=\"!hideSearchControl\"\r\n class=\"mb-0 flex-grow mr-2\"\r\n [autofocus]=\"autofocus\"\r\n [formModel]=\"searchModel\"\r\n [tabindex]=\"searchboxTabIndex\"\r\n [placeholder]=\"searchboxPlaceholder\"\r\n [readonly]=\"searchboxReadonly\"></ec-textbox>\r\n <div class=\"flex-grow\">\r\n <ng-content select=\".searchable-table-controls\"></ng-content>\r\n </div>\r\n</header>\r\n<section id=\"{{id}}_card\"\r\n class=\"d-flex flex-column {{overlayClasses}}\"\r\n [ngClass]=\"{'is-translucent': status.status !== 'error', 'has-mask': status.status !== 'hasData', 'card m-0 bg-content': !customContentTemplate && !removeCard}\"\r\n ecOverlay\r\n [status]=\"status.status\"\r\n [message]=\"status.message\"\r\n [displayAsMask]=\"true\">\r\n <ng-content select=\".card-header\"></ng-content>\r\n <ng-container *ngTemplateOutlet=\"customContentTemplate || defaultContentTemplate\">\r\n </ng-container>\r\n\r\n <!-- the default template is an ec-table with proxied-over searchable table inputs. \r\n If that doesn't work for you then you can specify a customContentTemplate to use instead\r\n and still retain all the event handling, header, footer pagination, etc support -->\r\n <ng-template #defaultContentTemplate>\r\n <ec-table id=\"{{id}}_table\"\r\n class=\"{{tableClasses}}\"\r\n [class.is-fixed]=\"tableLayoutFixed\"\r\n [sortable]=\"sortable\"\r\n [sort]=\"sort\"\r\n (sortChange)=\"onSortChange($event)\"\r\n [resizable]=\"resizable\"\r\n [scrollable]=\"true\"\r\n [selectable]=\"selectable\"\r\n [selectionContext]=\"selectionContext\"\r\n [selectionToolbarTemplate]=\"selectionToolbarTemplate\"\r\n [resizableColumns]=\"resizableColumns\">\r\n <ng-content></ng-content>\r\n </ec-table>\r\n </ng-template>\r\n\r\n <!-- pagination footer visible if table is page-able and there are more than one page of results -->\r\n <footer *ngIf=\"!hideFooter && pageable && searchResults.totalItemsBeforePaging! > pageSize!\"\r\n class=\"pagination-footer\"\r\n [class.border-top]=\"!customContentTemplate\">\r\n <ec-table-pagination id=\"{{id}}_pager\"\r\n class=\"font-color-primary\"\r\n [totalItems]=\"searchResults.totalItemsBeforePaging\"\r\n [pageSize]=\"pageSize\"\r\n [maxTabs]=\"maxTabs\"\r\n [pageNumber]=\"pageInfo?.pageNumber\"\r\n (pageChanged)=\"onPageChange($event)\">\r\n </ec-table-pagination>\r\n <div id=\"resultsCount\"\r\n *ngIf=\"searchResults?.items?.length\"\r\n class=\"ml-auto font-color-hint text-truncate\" \r\n title=\"{{resultsCount}} {{additionalCountText}}\">{{resultsCount}} {{additionalCountText}}</div>\r\n </footer>\r\n\r\n <!-- default footer: visible if hideFooter is false and table is not page-able or there are only one page of results (always shows if there is a caption to indicate no results) -->\r\n <footer *ngIf=\"(!hideFooter && (!pageable || searchResults.totalItemsBeforePaging! <= pageSize!)) || tableCaption\"\r\n class=\"caption-footer\"\r\n [ngClass]=\"{'has-results': searchResults?.items?.length, 'border-top': searchResults?.items?.length && !customContentTemplate}\">\r\n <ng-content *ngIf=\"!tableCaption\"\r\n select=\".searchable-table-footer\"></ng-content>\r\n <div id=\"tableCaption\"\r\n *ngIf=\"tableCaption\"\r\n [innerHTML]=\"tableCaption\"></div>\r\n <div id=\"resultsCount\"\r\n *ngIf=\"searchResults?.items?.length\"\r\n class=\"ml-auto text-truncate\"\r\n title=\"{{resultsCount}} {{additionalCountText}}\">{{resultsCount}} {{additionalCountText}}</div>\r\n </footer>\r\n</section>", styles: [":host{--ec-searchable-table-flex-properties: 0 1 auto;--ec-searchable-table-flex-overlay-section: var(--ec-searchable-table-flex-properties, 0 1 auto);--ec-searchable-table-flex-ec-table: var(--ec-searchable-table-flex-properties, 0 1 auto);display:flex;flex-direction:column;flex:1 1;min-height:0}:host ::ng-deep .card-header+ec-table.is-selectable th{height:2.5rem;padding-bottom:.9375rem}:host ::ng-deep .card-header+ec-table.is-selectable th.is-resizable .handle{padding-top:.5rem}:host ::ng-deep .card-header+ec-table.is-selectable th.is-resizable .handle:before{top:.5rem}:host ::ng-deep .card-header+ec-table.is-selectable .selectable-table-toolbar{height:2.5rem;padding-bottom:.5rem}section{flex:var(--ec-searchable-table-flex-overlay-section);min-height:0}ec-table{flex:var(--ec-searchable-table-flex-ec-table);min-height:0}footer{display:flex;align-items:center;flex:none;font-size:var(--ec-font-size-label);line-height:1rem}footer.has-results{color:var(--ec-color-hint-dark);text-align:right}.pagination-footer{padding:0 .5rem 0 0}.caption-footer{padding:.5rem;height:var(--ec-searchable-table-height-caption-footer)}.card.has-mask{min-height:15rem}\n"] }]
261
259
  }], ctorParameters: function () { return [{ type: i1.ErrorService }, { type: i2.TranslateService }, { type: i3.RowCountPipe }]; }, propDecorators: { id: [{
262
260
  type: Input
263
261
  }], resizable: [{
@@ -335,4 +333,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
335
333
  }], fillParentHeight: [{
336
334
  type: Input
337
335
  }] } });
338
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYWJsZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90YWJsZS9zZWFyY2hhYmxlLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L3RhYmxlL3NlYXJjaGFibGUtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUF5QyxNQUFNLGVBQWUsQ0FBQztBQUc3SixPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc1RyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFjLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7Ozs7QUFjcEYsTUFBTSxPQUFPLHdCQUF3QjtJQTBLbkMsbUNBQW1DO0lBQ25DLElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQWlDLENBQUM7SUFDbkUsQ0FBQztJQTBCRCxZQUNVLFlBQTBCLEVBQzFCLGdCQUFrQyxFQUNsQyxZQUEwQjtRQUYxQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENB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O3NCQUFsQixLQUFLO2dCQXNCRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csT0FBTztzQkFBZixLQUFLO2dCQUtHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBR0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUUwRCxnQkFBZ0I7c0JBQS9FLGVBQWU7dUJBQUMsd0JBQXdCLEVBQUUsRUFBQyxXQUFXLEVBQUUsSUFBSSxFQUFDO2dCQUdyRCxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBR0csVUFBVTtzQkFBbEIsS0FBSztnQkFJRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBR0csVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEVNUFRZLCBtZXJnZSwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIG1hcCwgcGx1Y2ssIHNraXBVbnRpbCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRXJyb3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9lcnJvci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm93Q291bnRQaXBlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Rpc3BsYXkvcGlwZXMvcm93LWNvdW50LnBpcGUnO1xyXG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnLi4vdmlldy1vdmVybGF5L3ZpZXctb3ZlcmxheS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXNpemFibGVDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL3Jlc2l6YWJsZS1jb2x1bW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFnaW5nSW5mbywgVGFibGVQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1wYWdpbmF0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlU2VsZWN0YWJsZVJvd0NvbnRleHQgfSBmcm9tICcuL3RhYmxlLXNlbGVjdGFibGUtcm93LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlU29ydCB9IGZyb20gJy4vdGFibGUuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCB0eXBlIFRhYmxlU2VhcmNoUmVzdWx0cyA9IHsgaXRlbXM6IHVua25vd25bXSwgdG90YWxJdGVtczogbnVtYmVyLCB0b3RhbEl0ZW1zQmVmb3JlUGFnaW5nPzogbnVtYmVyIH07XHJcbmV4cG9ydCB0eXBlIFNlYXJjaGFibGVUYWJsZVJlZnJlc2hPcHRpb25zID0geyBjbGVhclNlYXJjaD86IGJvb2xlYW4gfTtcclxuXHJcbnR5cGUgU2VhcmNoYWJsZVRhYmxlRm9ybU1vZGVsID0geyBzZWFyY2hNb2RlbD86IHN0cmluZyB9O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlYy1zZWFyY2hhYmxlLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoYWJsZS10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoYWJsZS10YWJsZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWFyY2hhYmxlVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcclxuXHJcbiAgQElucHV0KCkgaWQgPSAnJztcclxuICBASW5wdXQoKSByZXNpemFibGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzb3J0YWJsZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNvcnQ/OiBUYWJsZVNvcnQ7XHJcbiAgQElucHV0KCkgYXV0b2ZvY3VzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlNldCB0byBhIHNwYWNlLXNlcGFyYXRlZCBzZXQgb2Ygc3RyaW5ncyB0aGF0IHNob3VsZCBiZSBhZGRlZCB0byB0aGUgZWMtdGFibGUgY2xhc3MgYXR0cmlidXRlXHJcbiAgICogdGhpcyBhbGxvd3MgZmluZXIgY29udHJvbCBvdmVyIHN0eWxpbmcuXHJcbiAgICovXHJcbiAgQElucHV0KCkgdGFibGVDbGFzc2VzOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqIEVtaXRzIHdoZW4gdGFibGUgc29ydCBoYXMgY2hhbmdlZCAqL1xyXG4gIEBPdXRwdXQoKSBzb3J0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8VGFibGVTb3J0PiA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVTb3J0PigpO1xyXG5cclxuICAvKiogRW1pdHMgd2hlbiB0aGUgdGFibGUgcGFnZSBoYXMgY2hhbmdlZCAqL1xyXG4gIEBPdXRwdXQoJ3BhZ2VDaGFuZ2UnKSBwYWdlQ2hhbmdlRW1pdHRlcjogRXZlbnRFbWl0dGVyPFBhZ2luZ0luZm8+ID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdpbmdJbmZvPigpO1xyXG5cclxuICAvKiogUGxhY2Vob2xkZXIgdGV4dCBmb3IgdGhlIHNlYXJjaGJveCAqL1xyXG4gIEBJbnB1dCgpIHNlYXJjaGJveFBsYWNlaG9sZGVyID0gJyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEZvcm1Hcm91cCBmb3IgdGhlIHNlYXJjaGJveFxyXG4gICAqXHJcbiAgICogVGhlIHJlZmVyZW5jZWQgRm9ybUdyb3VwICoqbXVzdCoqIGNvbnRhaW4gYSBGb3JtQ29udHJvbCBjYWxsZWQgJ3NlYXJjaE1vZGVsJy5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgZm9ybU1vZGVsITogVW50eXBlZEZvcm1Hcm91cDtcclxuXHJcbiAgLyoqXHJcbiAgICogRGlzcGxheWVkIGluIG92ZXJsYXkgd2hlbiBubyBkYXRhIGlzIHJldHVybmVkICh3aXRob3V0IHNlYXJjaGluZykuXHJcbiAgICpcclxuICAgKiBEZWZhdWx0cyB0byBcIlNlYXJjaGFibGVUYWJsZV9EZWZhdWx0X05vRGF0YV9TQ1wiXHJcbiAgICovXHJcbiAgQElucHV0KCkgbm9EYXRhTWVzc2FnZTogc3RyaW5nID0gJ1NlYXJjaGFibGVUYWJsZV9EZWZhdWx0X05vRGF0YV9TQyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc3BsYXllZCBpbiBvdmVybGF5IHdoZW4gbm8gZGF0YSBpcyByZXR1cm5lZCAoYWZ0ZXIgc2VhcmNoaW5nKS5cclxuICAgKiBFbnN1cmUgdHJhbnNsYXRpb24gaGFzIGFuIGludGVycG9sYXRpb24gcGxhY2Vob2xkZXIgZm9yIFwic2VhcmNoVGV4dFwiLlxyXG4gICAqXHJcbiAgICogRGVmYXVsdHMgdG8gXCJTZWFyY2hhYmxlVGFibGVfRGVmYXVsdF9Ob01hdGNoZXNfU0NcIlxyXG4gICAqXHJcbiAgICogQGV4YW1wbGVcclxuICAgKiAvLyA3IHJlcXVpcmVzIHNpbmdsZSBjdXJseSBicmFjZXNcclxuICAgKiBObyBpdGVtcyBmb3VuZCBtYXRjaGluZyA8c3Ryb25nPnt7c2VhcmNoVGV4dH19PC9zdHJvbmc+XHJcbiAgICovXHJcbiAgQElucHV0KCkgbm9TZWFyY2hSZXN1bHRzTWVzc2FnZTogc3RyaW5nID0gJ1NlYXJjaGFibGVUYWJsZV9EZWZhdWx0X05vTWF0Y2hlc19TQyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYXRlcyBob3N0aW5nIHBhZ2UgaXMgcmVhZHkgZm9yIHRoZSB0YWJsZSB0byBsb2FkIGRhdGEuXHJcbiAgICpcclxuICAgKiBOZXh0IGFuZCBDb21wbGV0ZSB0aGlzIG9ic2VydmFibGUgYWZ0ZXIgaG9zdGluZyBwYWdlIGhhcyBtYWRlIGFueSBwcmVsaW1pbmFyeVxyXG4gICAqIEFQSSAob3Igb3RoZXIgYXN5bmNocm9ub3VzKSBjYWxscyB0byBsb2FkIHByZXJlcXVpc2l0ZSBkYXRhIHVwb24gd2hpY2ggdGhlIGNvZGVcclxuICAgKiBpbiB0aGUgYGdldEl0ZW1zYCBmdW5jdGlvbiBkZXBlbmRzLiAgVXNlIGEgYFJlcGxheVN1YmplY3RgIHRvIGVuc3VyZSBldmVyeSBjb21wb25lbnRcclxuICAgKiB0aGF0IHVzZXMgdGhpcyBvYnNlcnZhYmxlIGdldHMgdGhlIE5leHQgYW5kIENvbXBsZXRlIG5vdGlmaWNhdGlvbnMuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcmVhZHkhOiBPYnNlcnZhYmxlPHZvaWQ+O1xyXG5cclxuICAvKipcclxuICAgKiBGdW5jdGlvbiBjYWxsZWQgdG8gZ2V0IGl0ZW1zIHRvIGRpc3BsYXkgaW4gdGhlIHRhYmxlLlxyXG4gICAqIElmIHBhZ2VhYmxlIGlzIHRydWUsIHRoZSBUYWJsZVNlYXJjaFJlc3VsdHMgbmVlZCB0byBpbmNsdWRlIHRvdGFsSXRlbXNCZWZvcmVQYWdpbmcsIHdoaWNoIGlzIHRoZVxyXG4gICAqIGNvdW50IG9mIGl0ZW1zIGJlZm9yZSB5b3UndmUgYXBwbGllZCBhbnkgcGFnaW5hdGlvbiAoaS5lLiB0aGUgdG90YWwgbnVtYmVyIG9mIGl0ZW1zIHRoYXQgY2FtZSBiYWNrIGZyb20gdGhlIHNlYXJjaCkuXHJcbiAgICpcclxuICAgKiBNYWtlIHN1cmUgdG8gYmluZCB0aGUgc2NvcGUgaW4gdGhlIHRlbXBsYXRlXHJcbiAgICogQGV4YW1wbGVcclxuICAgKiBbZ2V0SXRlbXNdPVwieW91ckZ1bmN0aW9uLmJpbmQodGhpcylcIlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGdldEl0ZW1zITogKHNlYXJjaD86IHN0cmluZywgcGFnZUNoYW5nZUluZm8/OiBQYWdpbmdJbmZvKSA9PiBPYnNlcnZhYmxlPFRhYmxlU2VhcmNoUmVzdWx0cz47XHJcblxyXG4gIC8qKiBPYnNlcnZhYmxlIHRoYXQgd2lsbCBmb3JjZSB0aGUgZ2V0SXRlbXMgZnVuY3Rpb24gdG8gZ2V0IGNhbGxlZCBhZ2FpbiAqL1xyXG4gIEBJbnB1dCgpIHJlZnJlc2g/OiBPYnNlcnZhYmxlPFNlYXJjaGFibGVUYWJsZVJlZnJlc2hPcHRpb25zIHwgdW5kZWZpbmVkPjtcclxuXHJcbiAgLyoqIEFsbG93IHRoZSBob3N0IGNvbXBvbmVudCB0byBzdXBwbHkgYW4gb3ZlcmxheSB0byBjb250cm9sIHRoZSBwZW5kaW5nIHN0YXRlIG9mIHRoZSB0YWJsZSAqL1xyXG4gIEBJbnB1dCgpIHN0YXR1czogT3ZlcmxheSA9IG5ldyBPdmVybGF5KCdoYXNEYXRhJyk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHVuZGVybHlpbmcgdGFibGUncyBsYXlvdXQgdG8gZml4ZWQuXHJcbiAgICovXHJcbiAgQElucHV0KCkgdGFibGVMYXlvdXRGaXhlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogRW1pdHMgaXRlbXMgcmV0dXJuZWQgYnkgdGhlIGdldEl0ZW1zIGZ1bmN0aW9uLCBhbG9uZyB3aXRoIHRvdGFsIGNvdW50ICovXHJcbiAgQE91dHB1dCgpIGl0ZW1zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8VGFibGVTZWFyY2hSZXN1bHRzPiA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVTZWFyY2hSZXN1bHRzPigpO1xyXG5cclxuICAvKiogT3B0aW9uYWwgdGFiIGluZGV4IGZvciB0aGUgc2VhcmNoYm94ICovXHJcbiAgQElucHV0KCkgc2VhcmNoYm94VGFiSW5kZXg/OiBudW1iZXI7XHJcblxyXG4gIC8qKiBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0byBzaG93IGluIHRoZSB0YWJsZSAoZGVmYXVsdDogMTAwKSAqL1xyXG4gIEBJbnB1dCgpIG1heEl0ZW1Db3VudDogbnVtYmVyID0gMTAwO1xyXG5cclxuICAvKiogU2V0IHRvIHRydWUgdG8gaGlkZSBzZWFyY2ggYm94IChkb2VzIG5vdCBoaWRlIHRoZSBvdGhlciBzZWFyY2hhYmxlIHRhYmxlIGNvbnRyb2xzICovXHJcbiAgQElucHV0KCkgaGlkZVNlYXJjaENvbnRyb2w6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIFNldCB0byB0cnVlIHRvIGhpZGUgdGhlIGVudGlyZSBoZWFkZXIgKi9cclxuICBASW5wdXQoKSBoaWRlSGVhZGVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKiBUeXBlIG9mIG9iamVjdCBpbiB0aGUgdGFibGUuIERpc3BsYXllZCBpbiBmb290ZXIgKGRlZmF1bHQ6ICdyZXN1bHRzJykqL1xyXG4gIEBJbnB1dCgpIG9iamVjdFR5cGU6IHN0cmluZyA9ICdyZXN1bHRzJztcclxuXHJcbiAgLyoqIFNldCB0byB0cnVlIHRvIGhpZGUgdGhlIHRhYmxlIGZvb3RlciAqL1xyXG4gIEBJbnB1dCgpIGhpZGVGb290ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHRvIHRydWUgdG8gZW5hYmxlIHBhZ2luZy4gSWYgcGFnaW5nIGlzIGVuYWJsZWQsIHBhZ2VTaXplIG11c3QgYmUgcHJvdmlkZWQuXHJcbiAgICogZ2V0SXRlbXMgd2lsbCBiZSBwYXNzZWQgYm90aCBhIHNlYXJjaCBhbmQgYSBQYWdpbmdJbmZvIG9iamVjdCB3aGVuIGNhbGxlZC4gSXQgbXVzdCBpbmNsdWRlIHRvdGFsSXRlbXNCZWZvcmVQYWdpbmcgaW4gdGhlIFRhYmxlU2VhcmNoUmVzdWx0cyBvdXRwdXQuXHJcbiAgICogSGVyZSBpcyBhIHNpbXBsZSBpbXBsZW1lbnRhdGlvbjogXHJcbiAgICogQGV4YW1wbGVcclxuICAgKiBnZXRJdGVtcyhzZWFyY2g/OiBzdHJpbmcsIHBhZ2VDaGFuZ2VJbmZvPzogUGFnaW5nSW5mbyk6IE9ic2VydmFibGU8VGFibGVTZWFyY2hSZXN1bHRzPiB7XHJcbiAgICAgIGxldCByZXN1bHRzOiBTaW1wbGVJdGVtW10gPSBbLi4udGhpcy5wYWdpbmF0ZWRUYWJsZUl0ZW1zXTtcclxuICAgICAgLy9hcHBseSBzZWFyY2hcclxuICAgICAgaWYoc2VhcmNoKSB7XHJcbiAgICAgICAgcmVzdWx0cyA9IHRoaXMucGFnaW5hdGVkVGFibGVJdGVtcy5maWx0ZXIoaSA9PiBpLmEudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gudG9Mb3dlckNhc2UoKSkpO1xyXG4gICAgICB9XHJcbiAgICAgIC8vZ2V0IGNvdW50IGJlZm9yZSBhcHBseWluZyBwYWdpbmdcclxuICAgICAgbGV0IGNvdW50QmVmb3JlUGFnaW5nID0gcmVzdWx0cy5sZW5ndGg7XHJcbiAgICAgIC8vYXBwbHkgcGFnaW5nXHJcbiAgICAgIGlmKHBhZ2VDaGFuZ2VJbmZvKSB7XHJcbiAgICAgICAgcmVzdWx0cyA9IHJlc3VsdHMuc2xpY2UocGFnZUNoYW5nZUluZm8hLnNraXAsIHBhZ2VDaGFuZ2VJbmZvIS5za2lwICsgcGFnZUNoYW5nZUluZm8hLnBhZ2VTaXplKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gb2YoeyBpdGVtczogcmVzdWx0cywgdG90YWxJdGVtczogcmVzdWx0cy5sZW5ndGgsIHRvdGFsSXRlbXNCZWZvcmVQYWdpbmc6IGNvdW50QmVmb3JlUGFnaW5nIH0pO1xyXG4gICAgfVxyXG4gICovXHJcbiAgQElucHV0KCkgcGFnZWFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogTWF4IHNpemUgb2YgYSBwYWdlLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBhZ2VTaXplPzogbnVtYmVyO1xyXG5cclxuICAvKipcclxuICogTWF4aW11bSBudW1iZXIgb2YgcGFnZSB0YWJzIHRvIHNob3dcclxuICovXHJcbiAgQElucHV0KCkgbWF4VGFicz86IG51bWJlciA9IDEwO1xyXG5cclxuICAvKipcclxuICAgKiBNYWtlcyB0aGUgc2VhcmNoYm94IHJlYWRvbmx5IGlmIHRydWUuXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2VhcmNoYm94UmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIFBhc3NlZCB0byB0aGUgaW5uZXIgVGFibGVDb21wb25lbnQgdG8gZW5hYmxlIHJvdyBzZWxlY3Rpb24gKi9cclxuICBASW5wdXQoKSBzZWxlY3Rpb25Db250ZXh0PzogVGFibGVTZWxlY3RhYmxlUm93Q29udGV4dDtcclxuXHJcbiAgLyoqIFBhc3NlZCB0byB0aGUgaW5uZXIgVGFibGVDb21wb25lbnQgdG8gZGlzcGxheSBhIHRvb2xiYXIgd2hlbiAxIG9yIG1vcmUgcm93cyBhcmUgc2VsZWN0ZWQuIFJlcXVpcmVzIGBbc2VsZWN0aW9uQ29udGV4dF1gIHRvIGJlIGRlZmluZWQuICovXHJcbiAgQElucHV0KCkgc2VsZWN0aW9uVG9vbGJhclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuICBcclxuICBAQ29udGVudENoaWxkcmVuKFJlc2l6YWJsZUNvbHVtbkNvbXBvbmVudCwge2Rlc2NlbmRhbnRzOiB0cnVlfSkgcmVzaXphYmxlQ29sdW1ucyE6IFF1ZXJ5TGlzdDxSZXNpemFibGVDb2x1bW5Db21wb25lbnQ+O1xyXG5cclxuICAvKiogT3B0aW9uYWwgdGV4dCB0byBhZGQgdG8gdGhlIHJlc3VsdHMgY291bnQgaW4gdGhlIHRhYmxlIGZvb3Rlci4gVGhpcyB0ZXh0IHdpbGwgYmUgYWRkZWQgYWZ0ZXIgdGhlIGNvdW50IGFuZCBvYmplY3RUeXBlLiAqL1xyXG4gIEBJbnB1dCgpIGFkZGl0aW9uYWxDb3VudFRleHQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKiogRW5hYmxlcyB0YWJsZSByb3cgc2VsZWN0aW9uIGFuZCByb3cgaGlnaGxpZ2h0aW5nIHN0eWxlcyB3aGVuIHRydWUgKi9cclxuICBASW5wdXQoKSBzZWxlY3RhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKkRlZmF1bHRzIHRvIHVuZGVmaW5lZC4gU3BlY2lmeSB5b3VyIG93biB0ZW1wbGF0ZSBpZiBhbiBlYy10YWJsZSB3cmFwcGVkIGFyb3VuZCB5b3VyIHRyYW5zY2x1ZGVkIGNvbnRlbnQgd29uJ3QgbWVldCB5b3VyIG5lZWRzXHJcbiAgICovXHJcbiAgQElucHV0KCkgY3VzdG9tQ29udGVudFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgLyoqIFdoZW4gdHJ1ZSwgcmVtb3ZlcyB0aGUgY2FyZCBzdHlsZXMgZnJvbSB0aGUgdGFibGUgd3JhcHBlciAqL1xyXG4gIEBJbnB1dCgpIHJlbW92ZUNhcmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIENsYXNzZXMgdG8gYWRkIHRvIHRoZSBvdmVybGF5L2NhcmQgZWxlbWVudCAqL1xyXG4gIEBJbnB1dCgpIG92ZXJsYXlDbGFzc2VzOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqIFdoZW4gdHJ1ZSB0aGUgb3ZlcmxheSBhbmQgdGFibGUgd2lsbCBub3QgaGF2ZSBmbGV4LXNocmluay1tYXggYnV0IGluc3RlYWQgZmxleC1ncm93ICovXHJcbiAgQElucHV0KCkgZmlsbFBhcmVudEhlaWdodD86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogUGFnaW5nSW5mbyBmb3IgdGhlIGN1cnJlbnQgcGFnZS5cclxuICAgKi9cclxuICBwdWJsaWMgcGFnZUluZm8/OiBQYWdpbmdJbmZvO1xyXG5cclxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBzZWFyY2hNb2RlbCAqL1xyXG4gIHB1YmxpYyBnZXQgc2VhcmNoTW9kZWwoKTogVW50eXBlZEZvcm1Db250cm9sIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1Nb2RlbC5jb250cm9scy5zZWFyY2hNb2RlbCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUZXh0IGRpc3BsYXllZCBpbiB0aGUgZm9vdGVyLlxyXG4gICAqIFNvbWV0aW1lcyBgbm9EYXRhTWVzc2FnZWAsIHNvbWV0aW1lcyBgbm9TZWFyY2hSZXN1bHRzTWVzc2FnZWBcclxuICAgKi9cclxuICBwdWJsaWMgdGFibGVDYXB0aW9uOiBzdHJpbmcgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLm5vRGF0YU1lc3NhZ2UgfHwgJ1NlYXJjaGFibGVUYWJsZV9EZWZhdWx0X05vRGF0YV9TQycpO1xyXG5cclxuICAvKiogY291bnQgb2YgcmVzdWx0cyBkaXNwbGF5ZWQgaW4gdGhlIHRhYmxlICovXHJcbiAgcHVibGljIHJlc3VsdHNDb3VudDogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKiBJdGVtcyByZXR1cm5lZCBieSB0aGUgZ2V0SXRlbXMgZnVuY3Rpb24sIGFsb25nIHdpdGggdG90YWwgY291bnQgKi9cclxuICBwdWJsaWMgc2VhcmNoUmVzdWx0czogVGFibGVTZWFyY2hSZXN1bHRzID0geyBpdGVtczogW10sIHRvdGFsSXRlbXM6IDAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogSWYgcGFzc2VkIGFuIGlucHV0IGZvciByZWZyZXNoLCB0cmlnZ2VycyByZWxvYWRpbmcgaXRlbXMuXHJcbiAgICogT3RoZXJ3aXNlLCBjb21wbGV0ZXMgaW1tZWRpYXRlbHkgKHdpbGwgbmV2ZXIgdHJpZ2dlciByZWxvYWQpLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVmcmVzaFRyaWdnZXI6IE9ic2VydmFibGU8U2VhcmNoYWJsZVRhYmxlRm9ybU1vZGVsIHwgdW5kZWZpbmVkPiA9IEVNUFRZO1xyXG4gIHByaXZhdGUgZGVzdHJveWVkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgcHJpdmF0ZSBwYWdlQ2hhbmdlZDogU3ViamVjdDxTZWFyY2hhYmxlVGFibGVGb3JtTW9kZWw+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgLyoqIFRyaWdnZXJzIHRoZSBpbml0aWFsIGxvYWQgb2YgdGhlIHRhYmxlICovXHJcbiAgcHJpdmF0ZSBpbml0VGFibGUgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlcnJvclNlcnZpY2U6IEVycm9yU2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgcm93Q291bnRQaXBlOiBSb3dDb3VudFBpcGVcclxuICApIHsgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoY2hhbmdlcy5wYWdlU2l6ZSAmJiAhY2hhbmdlcy5wYWdlU2l6ZS5maXJzdENoYW5nZSAmJiB0aGlzLnBhZ2VhYmxlKSB7XHJcbiAgICAgIC8vIElmIHRoZSBwYWdlU2l6ZSBjaGFuZ2VzLCByZXNldCB0byB0aGUgZmlyc3QgcGFnZSBhbmQgcmVmcmVzaC5cclxuICAgICAgdGhpcy5wYWdlSW5mbyA9IFRhYmxlUGFnaW5hdGlvbkNvbXBvbmVudC5nZXRQYWdpbmdJbmZvKDEsIHRoaXMucGFnZVNpemUhKTtcclxuICAgICAgdGhpcy5vblBhZ2VDaGFuZ2UodGhpcy5wYWdlSW5mbyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RhdHVzLnNldFN0YXR1cygncGVuZGluZycsICdMb2FkaW5nJyk7XHJcbiAgICB0aGlzLnNldFVwUmVmcmVzaFRyaWdnZXIoKTtcclxuXHJcbiAgICAvLyBXYXRjaCBmb3Igc2VhcmNoYm94L290aGVyIGNvbnRyb2wgY2hhbmdlcyBvciByZWZyZXNoIHJlcXVlc3RzXHJcbiAgICBjb25zdCBzZWFyY2hPclJlZnJlc2ggPSBtZXJnZShcclxuICAgICAgdGhpcy5mb3JtTW9kZWwudmFsdWVDaGFuZ2VzLnBpcGUoXHJcbiAgICAgICAgc2tpcFVudGlsKHRoaXMucmVhZHkpLFxyXG4gICAgICAgIGRlYm91bmNlVGltZSgzMDApXHJcbiAgICAgICksXHJcbiAgICAgIHRoaXMucmVmcmVzaFRyaWdnZXIsXHJcbiAgICAgIHRoaXMuaW5pdFRhYmxlXHJcbiAgICApLnBpcGUodGFwKCgpPT4ge1xyXG4gICAgICAvL2EgY2hhbmdlIHRvIGFueSBmb3JtIGNvbnRyb2wgb3IgYSByZWZyZXNoIHNob3VsZCByZXNldCB0aGUgcGFnZUluZm8gdG8gdGhlIGZpcnN0IHBhZ2UgaWYgdGhlIHRhYmxlIGlzIHBhZ2VhYmxlLlxyXG4gICAgICAvLyhpZiB3ZSBkaWRudCByZXNldCB0aGUgcGFnZUluZm8sIHdlJ2QgaGF2ZSB0byBjYWxsIGdldEl0ZW1zIHdpdGggdGhlIHByZXZpb3VzIHBhZ2VJbmZvLCB3aGljaCBtYXkgbm90IGJlIHZhbGlkIGZvciB0aGUgbmV3IHJlc3VsdHMpXHJcbiAgICAgIGlmKHRoaXMucGFnZWFibGUpIHtcclxuICAgICAgICB0aGlzLnBhZ2VJbmZvID0gVGFibGVQYWdpbmF0aW9uQ29tcG9uZW50LmdldFBhZ2luZ0luZm8oMSwgdGhpcy5wYWdlU2l6ZSEpO1xyXG4gICAgICB9XHJcbiAgICB9KSk7XHJcblxyXG4gICAgY29uc3QgdXBkYXRlUmVzdWx0cyA9IG1lcmdlKFxyXG4gICAgICBzZWFyY2hPclJlZnJlc2gsXHJcbiAgICAgIHRoaXMucGFnZUNoYW5nZWQucGlwZShcclxuICAgICAgICAvLyBQcmV2ZW50IGEgY2FsbCB0byBnZXRJdGVtcyB3aGVuIHRoZSBwYWdlU2l6ZSBpcyBzZXQgZHVyaW5nIHBhZ2UgaW5pdCBhbmQgYmVmb3JlIHJlYWR5IGlzIGNvbXBsZXRlZFxyXG4gICAgICAgIHNraXBVbnRpbCh0aGlzLnJlYWR5KVxyXG4gICAgICApXHJcbiAgICApXHJcblxyXG4gICAgLy8gQ2FsbCBnZXRJdGVtcyBhbmQgd2F0Y2ggZm9yIGVycm9yc1xyXG4gICAgY29uc3QgZ2V0RGF0YSA9IHVwZGF0ZVJlc3VsdHMucGlwZShcclxuICAgICAgLy8gUGx1Y2sgdGhlIHNlYXJjaE1vZGVsIHZhbHVlIG91dCBvZiB0aGUgZm9ybU1vZGVsXHJcbiAgICAgIHBsdWNrKCdzZWFyY2hNb2RlbCcpLFxyXG5cclxuICAgICAgLy8gRW5zdXJlIHNlYXJjaCBzdHJpbmcgaXMgZGVmaW5lZFxyXG4gICAgICAvLyBUcmltIGFuZCBsb3dlcmNhc2UgaXQgdG8gYWlkIGNhc2UtaW5zZW5zaXRpdmUgc2VhcmNoaW5nXHJcbiAgICAgIG1hcCgoc2VhcmNoU3RyaW5nPzogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgbGV0IHNlYXJjaCA9IHNlYXJjaFN0cmluZyB8fCAnJztcclxuICAgICAgICByZXR1cm4gc2VhcmNoLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICB9KSxcclxuXHJcbiAgICAgIC8vIFNob3cgc3RhdHVzIG92ZXJsYXlcclxuICAgICAgdGFwKCgpID0+IHRoaXMuc3RhdHVzLnNldFN0YXR1cygncGVuZGluZycsICdMb2FkaW5nJykpLFxyXG5cclxuICAgICAgLy8gQ2FsbCBwYXNzZWQgZnVuY3Rpb25cclxuICAgICAgc3dpdGNoTWFwKChzZWFyY2hTdHJpbmc6IHN0cmluZykgPT4gXHJcbiAgICAgICAgLy9pZiB0aGUgdGFibGUgaXMgcGFnZWFibGUsIHBhZ2VJbmZvIHdpbGwgYmUgZGVmaW5lZC5cclxuICAgICAgICB0aGlzLmdldEl0ZW1zKHNlYXJjaFN0cmluZywgdGhpcy5wYWdlSW5mbylcclxuICAgICAgKSxcclxuXHJcbiAgICAgIC8vIElmIHBhc3NlZCBmdW5jdGlvbiBmYWlscywgc2hvdyBlcnJvciBzdGF0dXNcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyLCBjYXVnaHQpID0+IHtcclxuICAgICAgICB0aGlzLnN0YXR1cy5zZXRTdGF0dXMoJ2Vycm9yJywgdGhpcy5lcnJvclNlcnZpY2UucGFyc2VBcGlFcnJvcihlcnIpKTtcclxuICAgICAgICAvLyByZXR1cm4gdGhlIGNhdWdodCBvYnNlcnZhYmxlIHNvIHRoZSBzdWJzY3JpcHRpb24gZG9lc24ndCBjb21wbGV0ZVxyXG4gICAgICAgIHJldHVybiBjYXVnaHQ7XHJcbiAgICAgIH0pLFxyXG5cclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSxcclxuICAgICk7XHJcblxyXG4gICAgLy8gSGFuZGxlIHJldHVybmVkIGRhdGEgYW5kIG5vdGlmeSBwYXJlbnRcclxuICAgIGdldERhdGEuc3Vic2NyaWJlKChyZXN1bHRzOiBUYWJsZVNlYXJjaFJlc3VsdHMpID0+IHtcclxuICAgICAgLy8gTGltaXRpbmcgbnVtYmVyIG9mIHJlc3VsdHMgdG8gc2hvdyBpZiBub3QgcGFnZWFibGUgKGlmIHBhZ2VhYmxlIHRoZSBtYXggbnVtYmVyIG9mIGl0ZW1zIGluIHRoZSB0YWJsZVxyXG4gICAgICAvLyBjYW4gYmUgbW9kaWZpZWQgYnkgaW5jcmVhc2luZy9kZWNyZWFzaW5nIHRoZSBwYWdlU2l6ZS4pXHJcbiAgICAgIGlmKCF0aGlzLnBhZ2VhYmxlKSB7XHJcbiAgICAgICAgcmVzdWx0cy5pdGVtcyA9IHJlc3VsdHMuaXRlbXMuc2xpY2UoMCwgdGhpcy5tYXhJdGVtQ291bnQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBOZWVkIHRvIGtub3cgdGhpcyAoYWxvbmcgd2l0aCBpZiB0aGVyZSdzIGEgdmFsdWUgaW4gdGhlIGZvcm1Nb2RlbCkgdG8gZGV0ZXJtaW5lIHdoYXQgdG8gc2hvdyBpbiB0aGUgZm9vdGVyXHJcbiAgICAgIHRoaXMuc2VhcmNoUmVzdWx0cyA9IHJlc3VsdHM7XHJcbiAgICBcclxuICAgICAgdGhpcy50YWJsZUNhcHRpb24gPSB0aGlzLmdldENhcHRpb24ocmVzdWx0cyk7XHJcbiAgICAgIHRoaXMucmVzdWx0c0NvdW50ID0gdGhpcy5wYWdlYWJsZSA/IHRoaXMucm93Q291bnRQaXBlLnRyYW5zZm9ybShyZXN1bHRzLCB0aGlzLm9iamVjdFR5cGUsIHVuZGVmaW5lZCwgdGhpcy5wYWdlSW5mbyk6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucm93Q291bnRQaXBlLnRyYW5zZm9ybShyZXN1bHRzLCB0aGlzLm9iamVjdFR5cGUsIHRoaXMubWF4SXRlbUNvdW50KTtcclxuXHJcbiAgICAgIC8vIERpc2FibGUgc2VhcmNoYm94IHdoZW4gaW4gbm8tZGF0YSBzdGF0ZVxyXG4gICAgICBpZiAoIXJlc3VsdHMuaXRlbXMubGVuZ3RoICYmICF0aGlzLnNlYXJjaE1vZGVsLnZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hNb2RlbC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLnNlYXJjaE1vZGVsLmRpc2FibGVkKSB7XHJcbiAgICAgICAgLy8gcmUtZW5hYmxlIGlmIGl0IHdhcyBkaXNhYmxlZCwgYnV0IG5vdyBoYXMgaXRlbXNcclxuICAgICAgICB0aGlzLnNlYXJjaE1vZGVsLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuc3RhdHVzLnNldFN0YXR1cygnaGFzRGF0YScpO1xyXG4gICAgICAvLyBTZW5kIHRoZSByZXN1bHRzIHRvIHRoZSBwYXJlbnQgY29tcG9uZW50XHJcbiAgICAgIHRoaXMuaXRlbXNDaGFuZ2UuZW1pdChyZXN1bHRzKTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIFdoZW4gJ3JlYWR5JyBpcyBjb21wbGV0ZWQgYnkgdGhlIGhvc3QsIGluaXRpYWxpemUgdGhlIHRhYmxlIHdpdGggdGhlIGN1cnJlbnQgZm9ybSBtb2RlbCB2YWx1ZXNcclxuICAgIHRoaXMucmVhZHkuc3Vic2NyaWJlKHtcclxuICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICB0aGlzLmluaXRUYWJsZS5uZXh0KHRoaXMuZm9ybU1vZGVsLnZhbHVlKTtcclxuICAgICAgICB0aGlzLmluaXRUYWJsZS5jb21wbGV0ZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95ZWQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIC8qKiBQYXNzIGFsb25nIHNvcnQgdG8gcGFyZW50IGNvbXBvbmVudCAqL1xyXG4gIG9uU29ydENoYW5nZShzb3J0OiBUYWJsZVNvcnQpOiB2b2lkIHtcclxuICAgIHRoaXMuc29ydENoYW5nZS5lbWl0KHNvcnQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiBhIHBhZ2UgY2hhbmdlcywgc3RvcmUgdGhlIG5ldyBwYWdpbmdJbmZvIGFuZCBlbWl0IHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBmb3JtIHRvIHRyaWdnZXIgZ2V0RGF0YS5cclxuICAgKi9cclxuICBvblBhZ2VDaGFuZ2UocGFnaW5nSW5mbzogUGFnaW5nSW5mbykge1xyXG4gICAgdGhpcy5zdGF0dXMuc2V0U3RhdHVzKCdwZW5kaW5nJywgJ0xvYWRpbmcnKTtcclxuICAgIHRoaXMucGFnZUluZm8gPSBwYWdpbmdJbmZvO1xyXG4gICAgdGhpcy5wYWdlQ2hhbmdlRW1pdHRlci5lbWl0KHBhZ2luZ0luZm8pO1xyXG4gICAgdGhpcy5wYWdlQ2hhbmdlZC5uZXh0KHRoaXMuZm9ybU1vZGVsLnZhbHVlKTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBXaXJlIHVwIGEgaGFuZGxlciB0byB0aGUgYHJlZnJlc2hgIG9ic2VydmFibGUgc28gdGhhdCB3aGVuXHJcbiAgICogdGhlIGhvc3QgcGFnZSBjb250ZXh0IGNoYW5nZXMgaXQgY2FuIGZvcmNlIHRoZSB0YWJsZSB0byB1cGRhdGUgYXMgd2VsbC5cclxuICAgKlxyXG4gICAqIElmIHRoZSBgcmVmcmVzaGAgb2JzZXJ2YWJsZSBwYXNzZXMgb3B0aW9ucyBhbmQgdGhlIGBjbGVhclNlYXJjaGAgcHJvcGVydHlcclxuICAgKiBpcyBzZXQgdG8gdHJ1ZSwgcmVzZXQgdGhlIHNlYXJjaE1vZGVsIGFuZCBwYXNzIGFuIGVtcHR5IHN0cmluZy5cclxuICAgKlxyXG4gICAqIElmIGByZWZyZXNoYCBvYnNlcnZhYmxlIGRvZXMgbm90IHBhc3Mgb3B0aW9ucyBvciB0aGUgYGNsZWFyU2VhcmNoYCBwcm9wZXJ0eVxyXG4gICAqIGlzIHNldCB0byBmYWxzZSwgcGFzcyBhbG9uZyB0aGUgY3VycmVudCBzZWFyY2hNb2RlbCBWYWx1ZS5cclxuICAgKi9cclxuICBwcml2YXRlIHNldFVwUmVmcmVzaFRyaWdnZXIoKSB7XHJcbiAgICBpZiAodGhpcy5yZWZyZXNoKSB7XHJcbiAgICAgIHRoaXMucmVmcmVzaFRyaWdnZXIgPSB0aGlzLnJlZnJlc2gucGlwZShcclxuICAgICAgICBtYXAob3B0cyA9PiB7XHJcbiAgICAgICAgICBpZiAob3B0cyAmJiBvcHRzLmNsZWFyU2VhcmNoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoTW9kZWwucmVzZXQoJycsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIHsgLi4udGhpcy5mb3JtTW9kZWwsIHNlYXJjaE1vZGVsOiAnJyB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybU1vZGVsLnZhbHVlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZClcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBHZXQgdGV4dCB0byBkaXNwbGF5IGluIHRoZSBmb290ZXIuICovXHJcbiAgcHJpdmF0ZSBnZXRDYXB0aW9uKHJlc3VsdHM6IFRhYmxlU2VhcmNoUmVzdWx0cyk6IHN0cmluZyB7XHJcbiAgICBpZiAocmVzdWx0cy5pdGVtcy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNlYXJjaE1vZGVsLnZhbHVlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLm5vU2VhcmNoUmVzdWx0c01lc3NhZ2UgfHwgJ1NlYXJjaGFibGVUYWJsZV9EZWZhdWx0X05vTWF0Y2hlc19TQycsIHsgc2VhcmNoVGV4dDogdGhpcy5zZWFyY2hNb2RlbC52YWx1ZSB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy5ub0RhdGFNZXNzYWdlIHx8ICdTZWFyY2hhYmxlVGFibGVfRGVmYXVsdF9Ob0RhdGFfU0MnKTtcclxuICB9XHJcblxyXG59IiwiPGhlYWRlciAqbmdJZj1cIiFoaWRlSGVhZGVyXCJcclxuICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LXNocmluayBhbGlnbi1pdGVtcy1jZW50ZXIgbWItM1wiPlxyXG4gIDxlYy10ZXh0Ym94IGlkPVwie3tpZH19X3NlYXJjaGJveFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhaGlkZVNlYXJjaENvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwibWItMCBmbGV4LWdyb3cgbXItMlwiXHJcbiAgICAgICAgICAgICAgW2F1dG9mb2N1c109XCJhdXRvZm9jdXNcIlxyXG4gICAgICAgICAgICAgIFtmb3JtTW9kZWxdPVwic2VhcmNoTW9kZWxcIlxyXG4gICAgICAgICAgICAgIFt0YWJpbmRleF09XCJzZWFyY2hib3hUYWJJbmRleFwiXHJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaGJveFBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICBbcmVhZG9ubHldPVwic2VhcmNoYm94UmVhZG9ubHlcIj48L2VjLXRleHRib3g+XHJcbiAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvd1wiPlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLnNlYXJjaGFibGUtdGFibGUtY29udHJvbHNcIj48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcbjwvaGVhZGVyPlxyXG48c2VjdGlvbiBpZD1cInt7aWR9fV9jYXJkXCJcclxuICAgICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4ge3tvdmVybGF5Q2xhc3Nlc319XCJcclxuICAgICAgICAgW25nQ2xhc3NdPVwieydpcy10cmFuc2x1Y2VudCc6IHN0YXR1cy5zdGF0dXMgIT09ICdlcnJvcicsICdoYXMtbWFzayc6IHN0YXR1cy5zdGF0dXMgIT09ICdoYXNEYXRhJywgJ2NhcmQgbS0wIGJnLWNvbnRlbnQnOiAhY3VzdG9tQ29udGVudFRlbXBsYXRlICYmICFyZW1vdmVDYXJkfVwiXHJcbiAgICAgICAgIGVjT3ZlcmxheVxyXG4gICAgICAgICBbc3RhdHVzXT1cInN0YXR1cy5zdGF0dXNcIlxyXG4gICAgICAgICBbbWVzc2FnZV09XCJzdGF0dXMubWVzc2FnZVwiXHJcbiAgICAgICAgIFtkaXNwbGF5QXNNYXNrXT1cInRydWVcIj5cclxuICA8bmctY29udGVudCBzZWxlY3Q9XCIuY2FyZC1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbUNvbnRlbnRUZW1wbGF0ZSB8fCBkZWZhdWx0Q29udGVudFRlbXBsYXRlXCI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDwhLS0gdGhlIGRlZmF1bHQgdGVtcGxhdGUgaXMgYW4gZWMtdGFibGUgd2l0aCBwcm94aWVkLW92ZXIgc2VhcmNoYWJsZSB0YWJsZSBpbnB1dHMuIFxyXG4gICAgSWYgdGhhdCBkb2Vzbid0IHdvcmsgZm9yIHlvdSB0aGVuIHlvdSBjYW4gc3BlY2lmeSBhIGN1c3RvbUNvbnRlbnRUZW1wbGF0ZSB0byB1c2UgaW5zdGVhZFxyXG4gICAgYW5kIHN0aWxsIHJldGFpbiBhbGwgdGhlIGV2ZW50IGhhbmRsaW5nLCBoZWFkZXIsIGZvb3RlciBwYWdpbmF0aW9uLCBldGMgc3VwcG9ydCAtLT5cclxuICA8bmctdGVtcGxhdGUgI2RlZmF1bHRDb250ZW50VGVtcGxhdGU+XHJcbiAgICA8ZWMtdGFibGUgaWQ9XCJ7e2lkfX1fdGFibGVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwie3t0YWJsZUNsYXNzZXN9fVwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLmlzLWZpeGVkXT1cInRhYmxlTGF5b3V0Rml4ZWRcIlxyXG4gICAgICAgICAgICAgIFtzb3J0YWJsZV09XCJzb3J0YWJsZVwiXHJcbiAgICAgICAgICAgICAgW3NvcnRdPVwic29ydFwiXHJcbiAgICAgICAgICAgICAgKHNvcnRDaGFuZ2UpPVwib25Tb3J0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIFtyZXNpemFibGVdPVwicmVzaXphYmxlXCJcclxuICAgICAgICAgICAgICBbc2Nyb2xsYWJsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbc2VsZWN0YWJsZV09XCJzZWxlY3RhYmxlXCJcclxuICAgICAgICAgICAgICBbc2VsZWN0aW9uQ29udGV4dF09XCJzZWxlY3Rpb25Db250ZXh0XCJcclxuICAgICAgICAgICAgICBbc2VsZWN0aW9uVG9vbGJhclRlbXBsYXRlXT1cInNlbGVjdGlvblRvb2xiYXJUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgW3Jlc2l6YWJsZUNvbHVtbnNdPVwicmVzaXphYmxlQ29sdW1uc1wiPlxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2VjLXRhYmxlPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDwhLS0gcGFnaW5hdGlvbiBmb290ZXIgdmlzaWJsZSBpZiB0YWJsZSBpcyBwYWdlLWFibGUgYW5kIHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIHBhZ2Ugb2YgcmVzdWx0cyAtLT5cclxuICA8Zm9vdGVyICpuZ0lmPVwiIWhpZGVGb290ZXIgJiYgcGFnZWFibGUgJiYgc2VhcmNoUmVzdWx0cy50b3RhbEl0ZW1zQmVmb3JlUGFnaW5nISA+IHBhZ2VTaXplIVwiXHJcbiAgICAgICAgICBjbGFzcz1cInBhZ2luYXRpb24tZm9vdGVyXCJcclxuICAgICAgICAgIFtjbGFzcy5ib3JkZXItdG9wXT1cIiFjdXN0b21Db250ZW50VGVtcGxhdGVcIj5cclxuICAgIDxlYy10YWJsZS1wYWdpbmF0aW9uIGlkPVwie3tpZH19X3BhZ2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9udC1jb2xvci1wcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFt0b3RhbEl0ZW1zXT1cInNlYXJjaFJlc3VsdHMudG90YWxJdGVtc0JlZm9yZVBhZ2luZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW21heFRhYnNdPVwibWF4VGFic1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcGFnZU51bWJlcl09XCJwYWdlSW5mbz8ucGFnZU51bWJlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAocGFnZUNoYW5nZWQpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIj5cclxuICAgIDwvZWMtdGFibGUtcGFnaW5hdGlvbj5cclxuICAgIDxkaXYgaWQ9XCJyZXN1bHRzQ291bnRcIlxyXG4gICAgICAgICAqbmdJZj1cInNlYXJjaFJlc3VsdHM/Lml0ZW1zPy5sZW5ndGhcIlxyXG4gICAgICAgICBjbGFzcz1cIm1sLWF1dG8gZm9udC1jb2xvci1oaW50IHRleHQtdHJ1bmNhdGVcIiBcclxuICAgICAgICAgdGl0bGU9XCJ7e3Jlc3VsdHNDb3VudH19IHt7YWRkaXRpb25hbENvdW50VGV4dH19XCI+e3tyZXN1bHRzQ291bnR9fSB7e2FkZGl0aW9uYWxDb3VudFRleHR9fTwvZGl2PlxyXG4gIDwvZm9vdGVyPlxyXG5cclxuICA8IS0tIGRlZmF1bHQgZm9vdGVyOiB2aXNpYmxlIGlmIGhpZGVGb290ZXIgaXMgZmFsc2UgYW5kIHRhYmxlIGlzIG5vdCBwYWdlLWFibGUgb3IgdGhlcmUgYXJlIG9ubHkgb25lIHBhZ2Ugb2YgcmVzdWx0cyAoYWx3YXlzIHNob3dzIGlmIHRoZXJlIGlzIGEgY2FwdGlvbiB0byBpbmRpY2F0ZSBubyByZXN1bHRzKSAtLT5cclxuICA8Zm9vdGVyICpuZ0lmPVwiKCFoaWRlRm9vdGVyICYmICghcGFnZWFibGUgfHwgc2VhcmNoUmVzdWx0cy50b3RhbEl0ZW1zQmVmb3JlUGFnaW5nISA8PSBwYWdlU2l6ZSEpKSB8fCB0YWJsZUNhcHRpb25cIlxyXG4gICAgICAgICAgY2xhc3M9XCJjYXB0aW9uLWZvb3RlclwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J2hhcy1yZXN1bHRzJzogc2VhcmNoUmVzdWx0cz8uaXRlbXM/Lmxlbmd0aCwgJ2JvcmRlci10b3AnOiBzZWFyY2hSZXN1bHRzPy5pdGVtcz8ubGVuZ3RoICYmICFjdXN0b21Db250ZW50VGVtcGxhdGV9XCI+XHJcbiAgICA8bmctY29udGVudCAqbmdJZj1cIiF0YWJsZUNhcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgc2VsZWN0PVwiLnNlYXJjaGFibGUtdGFibGUtZm9vdGVyXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPGRpdiBpZD1cInRhYmxlQ2FwdGlvblwiXHJcbiAgICAgICAgICpuZ0lmPVwidGFibGVDYXB0aW9uXCJcclxuICAgICAgICAgW2lubmVySFRNTF09XCJ0YWJsZUNhcHRpb25cIj48L2Rpdj5cclxuICAgIDxkaXYgaWQ9XCJyZXN1bHRzQ291bnRcIlxyXG4gICAgICAgICAqbmdJZj1cInNlYXJjaFJlc3VsdHM/Lml0ZW1zPy5sZW5ndGhcIlxyXG4gICAgICAgICBjbGFzcz1cIm1sLWF1dG8gdGV4dC10cnVuY2F0ZVwiXHJcbiAgICAgICAgIHRpdGxlPVwie3tyZXN1bHRzQ291bnR9fSB7e2FkZGl0aW9uYWxDb3VudFRleHR9fVwiPnt7cmVzdWx0c0NvdW50fX0ge3thZGRpdGlvbmFsQ291bnRUZXh0fX08L2Rpdj5cclxuICA8L2Zvb3Rlcj5cclxuPC9zZWN0aW9uPiJdfQ==
336
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYWJsZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90YWJsZS9zZWFyY2hhYmxlLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L3RhYmxlL3NlYXJjaGFibGUtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUF5QyxNQUFNLGVBQWUsQ0FBQztBQUc3SixPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc1RyxPQUFPLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDdkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFjLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFcEYsT0FBTyxFQUFhLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBY2xFLE1BQU0sT0FBTyx3QkFBd0I7SUEwS25DLG1DQUFtQztJQUNuQyxJQUFXLFdBQVc7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QTVCLEtBQUs7Z0JBT1UsU0FBUztzQkFBeEIsS0FBSztnQkFPRyxhQUFhO3NCQUFyQixLQUFLO2dCQVlHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFVRyxLQUFLO3NCQUFiLEtBQUs7Z0JBV0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csTUFBTTtzQkFBZCxLQUFLO2dCQUtHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHSSxXQUFXO3NCQUFwQixNQUFNO2dCQUdFLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHRyxZQUFZO3NCQUFwQixLQUFLO2dCQUdHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csVUFBVTtzQkFBbEIsS0FBSztnQkFzQkcsUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLE9BQU87c0JBQWYsS0FBSztnQkFLRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUdHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFFMEQsZ0JBQWdCO3NCQUEvRSxlQUFlO3VCQUFDLHdCQUF3QixFQUFFLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQztnQkFHckQsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUdHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBSUcscUJBQXFCO3NCQUE3QixLQUFLO2dCQUdHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBFTVBUWSwgbWVyZ2UsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBtYXAsIHBsdWNrLCBza2lwVW50aWwsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEVycm9yU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvZXJyb3Iuc2VydmljZSc7XHJcbmltcG9ydCB7IFJvd0NvdW50UGlwZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9kaXNwbGF5L3BpcGVzL3Jvdy1jb3VudC5waXBlJztcclxuaW1wb3J0IHsgT3ZlcmxheSwgVmlld092ZXJsYXlDb21wb25lbnQgfSBmcm9tICcuLi92aWV3LW92ZXJsYXkvdmlldy1vdmVybGF5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlc2l6YWJsZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vcmVzaXphYmxlLWNvbHVtbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQYWdpbmdJbmZvLCBUYWJsZVBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3RhYmxlLXBhZ2luYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVTZWxlY3RhYmxlUm93Q29udGV4dCB9IGZyb20gJy4vdGFibGUtc2VsZWN0YWJsZS1yb3cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVTb3J0LCBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dGJveENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL3RleHRib3gvdGV4dGJveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ0lmLCBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmV4cG9ydCB0eXBlIFRhYmxlU2VhcmNoUmVzdWx0cyA9IHsgaXRlbXM6IHVua25vd25bXSwgdG90YWxJdGVtczogbnVtYmVyLCB0b3RhbEl0ZW1zQmVmb3JlUGFnaW5nPzogbnVtYmVyIH07XHJcbmV4cG9ydCB0eXBlIFNlYXJjaGFibGVUYWJsZVJlZnJlc2hPcHRpb25zID0geyBjbGVhclNlYXJjaD86IGJvb2xlYW4gfTtcclxuXHJcbnR5cGUgU2VhcmNoYWJsZVRhYmxlRm9ybU1vZGVsID0geyBzZWFyY2hNb2RlbD86IHN0cmluZyB9O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2VjLXNlYXJjaGFibGUtdGFibGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaGFibGUtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoYWJsZS10YWJsZS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtOZ0lmLCBUZXh0Ym94Q29tcG9uZW50LCBWaWV3T3ZlcmxheUNvbXBvbmVudCwgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCwgVGFibGVDb21wb25lbnQsIFRhYmxlUGFnaW5hdGlvbkNvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNlYXJjaGFibGVUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xyXG5cclxuICBASW5wdXQoKSBpZCA9ICcnO1xyXG4gIEBJbnB1dCgpIHJlc2l6YWJsZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNvcnRhYmxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc29ydD86IFRhYmxlU29ydDtcclxuICBASW5wdXQoKSBhdXRvZm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqU2V0IHRvIGEgc3BhY2Utc2VwYXJhdGVkIHNldCBvZiBzdHJpbmdzIHRoYXQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBlYy10YWJsZSBjbGFzcyBhdHRyaWJ1dGVcclxuICAgKiB0aGlzIGFsbG93cyBmaW5lciBjb250cm9sIG92ZXIgc3R5bGluZy5cclxuICAgKi9cclxuICBASW5wdXQoKSB0YWJsZUNsYXNzZXM6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKiogRW1pdHMgd2hlbiB0YWJsZSBzb3J0IGhhcyBjaGFuZ2VkICovXHJcbiAgQE91dHB1dCgpIHNvcnRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxUYWJsZVNvcnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUYWJsZVNvcnQ+KCk7XHJcblxyXG4gIC8qKiBFbWl0cyB3aGVuIHRoZSB0YWJsZSBwYWdlIGhhcyBjaGFuZ2VkICovXHJcbiAgQE91dHB1dCgncGFnZUNoYW5nZScpIHBhZ2VDaGFuZ2VFbWl0dGVyOiBFdmVudEVtaXR0ZXI8UGFnaW5nSW5mbz4gPSBuZXcgRXZlbnRFbWl0dGVyPFBhZ2luZ0luZm8+KCk7XHJcblxyXG4gIC8qKiBQbGFjZWhvbGRlciB0ZXh0IGZvciB0aGUgc2VhcmNoYm94ICovXHJcbiAgQElucHV0KCkgc2VhcmNoYm94UGxhY2Vob2xkZXIgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogRm9ybUdyb3VwIGZvciB0aGUgc2VhcmNoYm94XHJcbiAgICpcclxuICAgKiBUaGUgcmVmZXJlbmNlZCBGb3JtR3JvdXAgKiptdXN0KiogY29udGFpbiBhIEZvcm1Db250cm9sIGNhbGxlZCAnc2VhcmNoTW9kZWwnLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtTW9kZWwhOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG5cclxuICAvKipcclxuICAgKiBEaXNwbGF5ZWQgaW4gb3ZlcmxheSB3aGVuIG5vIGRhdGEgaXMgcmV0dXJuZWQgKHdpdGhvdXQgc2VhcmNoaW5nKS5cclxuICAgKlxyXG4gICAqIERlZmF1bHRzIHRvIFwiU2VhcmNoYWJsZVRhYmxlX0RlZmF1bHRfTm9EYXRhX1NDXCJcclxuICAgKi9cclxuICBASW5wdXQoKSBub0RhdGFNZXNzYWdlOiBzdHJpbmcgPSAnU2VhcmNoYWJsZVRhYmxlX0RlZmF1bHRfTm9EYXRhX1NDJztcclxuXHJcbiAgLyoqXHJcbiAgICogRGlzcGxheWVkIGluIG92ZXJsYXkgd2hlbiBubyBkYXRhIGlzIHJldHVybmVkIChhZnRlciBzZWFyY2hpbmcpLlxyXG4gICAqIEVuc3VyZSB0cmFuc2xhdGlvbiBoYXMgYW4gaW50ZXJwb2xhdGlvbiBwbGFjZWhvbGRlciBmb3IgXCJzZWFyY2hUZXh0XCIuXHJcbiAgICpcclxuICAgKiBEZWZhdWx0cyB0byBcIlNlYXJjaGFibGVUYWJsZV9EZWZhdWx0X05vTWF0Y2hlc19TQ1wiXHJcbiAgICpcclxuICAgKiBAZXhhbXBsZVxyXG4gICAqIC8vIDcgcmVxdWlyZXMgc2luZ2xlIGN1cmx5IGJyYWNlc1xyXG4gICAqIE5vIGl0ZW1zIGZvdW5kIG1hdGNoaW5nIDxzdHJvbmc+e3tzZWFyY2hUZXh0fX08L3N0cm9uZz5cclxuICAgKi9cclxuICBASW5wdXQoKSBub1NlYXJjaFJlc3VsdHNNZXNzYWdlOiBzdHJpbmcgPSAnU2VhcmNoYWJsZVRhYmxlX0RlZmF1bHRfTm9NYXRjaGVzX1NDJztcclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhdGVzIGhvc3RpbmcgcGFnZSBpcyByZWFkeSBmb3IgdGhlIHRhYmxlIHRvIGxvYWQgZGF0YS5cclxuICAgKlxyXG4gICAqIE5leHQgYW5kIENvbXBsZXRlIHRoaXMgb2JzZXJ2YWJsZSBhZnRlciBob3N0aW5nIHBhZ2UgaGFzIG1hZGUgYW55IHByZWxpbWluYXJ5XHJcbiAgICogQVBJIChvciBvdGhlciBhc3luY2hyb25vdXMpIGNhbGxzIHRvIGxvYWQgcHJlcmVxdWlzaXRlIGRhdGEgdXBvbiB3aGljaCB0aGUgY29kZVxyXG4gICAqIGluIHRoZSBgZ2V0SXRlbXNgIGZ1bmN0aW9uIGRlcGVuZHMuICBVc2UgYSBgUmVwbGF5U3ViamVjdGAgdG8gZW5zdXJlIGV2ZXJ5IGNvbXBvbmVudFxyXG4gICAqIHRoYXQgdXNlcyB0aGlzIG9ic2VydmFibGUgZ2V0cyB0aGUgTmV4dCBhbmQgQ29tcGxldGUgbm90aWZpY2F0aW9ucy5cclxuICAgKi9cclxuICBASW5wdXQoKSByZWFkeSE6IE9ic2VydmFibGU8dm9pZD47XHJcblxyXG4gIC8qKlxyXG4gICAqIEZ1bmN0aW9uIGNhbGxlZCB0byBnZXQgaXRlbXMgdG8gZGlzcGxheSBpbiB0aGUgdGFibGUuXHJcbiAgICogSWYgcGFnZWFibGUgaXMgdHJ1ZSwgdGhlIFRhYmxlU2VhcmNoUmVzdWx0cyBuZWVkIHRvIGluY2x1ZGUgdG90YWxJdGVtc0JlZm9yZVBhZ2luZywgd2hpY2ggaXMgdGhlXHJcbiAgICogY291bnQgb2YgaXRlbXMgYmVmb3JlIHlvdSd2ZSBhcHBsaWVkIGFueSBwYWdpbmF0aW9uIChpLmUuIHRoZSB0b3RhbCBudW1iZXIgb2YgaXRlbXMgdGhhdCBjYW1lIGJhY2sgZnJvbSB0aGUgc2VhcmNoKS5cclxuICAgKlxyXG4gICAqIE1ha2Ugc3VyZSB0byBiaW5kIHRoZSBzY29wZSBpbiB0aGUgdGVtcGxhdGVcclxuICAgKiBAZXhhbXBsZVxyXG4gICAqIFtnZXRJdGVtc109XCJ5b3VyRnVuY3Rpb24uYmluZCh0aGlzKVwiXHJcbiAgICovXHJcbiAgQElucHV0KCkgZ2V0SXRlbXMhOiAoc2VhcmNoPzogc3RyaW5nLCBwYWdlQ2hhbmdlSW5mbz86IFBhZ2luZ0luZm8pID0+IE9ic2VydmFibGU8VGFibGVTZWFyY2hSZXN1bHRzPjtcclxuXHJcbiAgLyoqIE9ic2VydmFibGUgdGhhdCB3aWxsIGZvcmNlIHRoZSBnZXRJdGVtcyBmdW5jdGlvbiB0byBnZXQgY2FsbGVkIGFnYWluICovXHJcbiAgQElucHV0KCkgcmVmcmVzaD86IE9ic2VydmFibGU8U2VhcmNoYWJsZVRhYmxlUmVmcmVzaE9wdGlvbnMgfCB1bmRlZmluZWQ+O1xyXG5cclxuICAvKiogQWxsb3cgdGhlIGhvc3QgY29tcG9uZW50IHRvIHN1cHBseSBhbiBvdmVybGF5IHRvIGNvbnRyb2wgdGhlIHBlbmRpbmcgc3RhdGUgb2YgdGhlIHRhYmxlICovXHJcbiAgQElucHV0KCkgc3RhdHVzOiBPdmVybGF5ID0gbmV3IE92ZXJsYXkoJ2hhc0RhdGEnKTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgdW5kZXJseWluZyB0YWJsZSdzIGxheW91dCB0byBmaXhlZC5cclxuICAgKi9cclxuICBASW5wdXQoKSB0YWJsZUxheW91dEZpeGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKiBFbWl0cyBpdGVtcyByZXR1cm5lZCBieSB0aGUgZ2V0SXRlbXMgZnVuY3Rpb24sIGFsb25nIHdpdGggdG90YWwgY291bnQgKi9cclxuICBAT3V0cHV0KCkgaXRlbXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxUYWJsZVNlYXJjaFJlc3VsdHM+ID0gbmV3IEV2ZW50RW1pdHRlcjxUYWJsZVNlYXJjaFJlc3VsdHM+KCk7XHJcblxyXG4gIC8qKiBPcHRpb25hbCB0YWIgaW5kZXggZm9yIHRoZSBzZWFyY2hib3ggKi9cclxuICBASW5wdXQoKSBzZWFyY2hib3hUYWJJbmRleD86IG51bWJlcjtcclxuXHJcbiAgLyoqIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIHNob3cgaW4gdGhlIHRhYmxlIChkZWZhdWx0OiAxMDApICovXHJcbiAgQElucHV0KCkgbWF4SXRlbUNvdW50OiBudW1iZXIgPSAxMDA7XHJcblxyXG4gIC8qKiBTZXQgdG8gdHJ1ZSB0byBoaWRlIHNlYXJjaCBib3ggKGRvZXMgbm90IGhpZGUgdGhlIG90aGVyIHNlYXJjaGFibGUgdGFibGUgY29udHJvbHMgKi9cclxuICBASW5wdXQoKSBoaWRlU2VhcmNoQ29udHJvbDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogU2V0IHRvIHRydWUgdG8gaGlkZSB0aGUgZW50aXJlIGhlYWRlciAqL1xyXG4gIEBJbnB1dCgpIGhpZGVIZWFkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIFR5cGUgb2Ygb2JqZWN0IGluIHRoZSB0YWJsZS4gRGlzcGxheWVkIGluIGZvb3RlciAoZGVmYXVsdDogJ3Jlc3VsdHMnKSovXHJcbiAgQElucHV0KCkgb2JqZWN0VHlwZTogc3RyaW5nID0gJ3Jlc3VsdHMnO1xyXG5cclxuICAvKiogU2V0IHRvIHRydWUgdG8gaGlkZSB0aGUgdGFibGUgZm9vdGVyICovXHJcbiAgQElucHV0KCkgaGlkZUZvb3RlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBTZXQgdG8gdHJ1ZSB0byBlbmFibGUgcGFnaW5nLiBJZiBwYWdpbmcgaXMgZW5hYmxlZCwgcGFnZVNpemUgbXVzdCBiZSBwcm92aWRlZC5cclxuICAgKiBnZXRJdGVtcyB3aWxsIGJlIHBhc3NlZCBib3RoIGEgc2VhcmNoIGFuZCBhIFBhZ2luZ0luZm8gb2JqZWN0IHdoZW4gY2FsbGVkLiBJdCBtdXN0IGluY2x1ZGUgdG90YWxJdGVtc0JlZm9yZVBhZ2luZyBpbiB0aGUgVGFibGVTZWFyY2hSZXN1bHRzIG91dHB1dC5cclxuICAgKiBIZXJlIGlzIGEgc2ltcGxlIGltcGxlbWVudGF0aW9uOiBcclxuICAgKiBAZXhhbXBsZVxyXG4gICAqIGdldEl0ZW1zKHNlYXJjaD86IHN0cmluZywgcGFnZUNoYW5nZUluZm8/OiBQYWdpbmdJbmZvKTogT2JzZXJ2YWJsZTxUYWJsZVNlYXJjaFJlc3VsdHM+IHtcclxuICAgICAgbGV0IHJlc3VsdHM6IFNpbXBsZUl0ZW1bXSA9IFsuLi50aGlzLnBhZ2luYXRlZFRhYmxlSXRlbXNdO1xyXG4gICAgICAvL2FwcGx5IHNlYXJjaFxyXG4gICAgICBpZihzZWFyY2gpIHtcclxuICAgICAgICByZXN1bHRzID0gdGhpcy5wYWdpbmF0ZWRUYWJsZUl0ZW1zLmZpbHRlcihpID0+IGkuYS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaC50b0xvd2VyQ2FzZSgpKSk7XHJcbiAgICAgIH1cclxuICAgICAgLy9nZXQgY291bnQgYmVmb3JlIGFwcGx5aW5nIHBhZ2luZ1xyXG4gICAgICBsZXQgY291bnRCZWZvcmVQYWdpbmcgPSByZXN1bHRzLmxlbmd0aDtcclxuICAgICAgLy9hcHBseSBwYWdpbmdcclxuICAgICAgaWYocGFnZUNoYW5nZUluZm8pIHtcclxuICAgICAgICByZXN1bHRzID0gcmVzdWx0cy5zbGljZShwYWdlQ2hhbmdlSW5mbyEuc2tpcCwgcGFnZUNoYW5nZUluZm8hLnNraXAgKyBwYWdlQ2hhbmdlSW5mbyEucGFnZVNpemUpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBvZih7IGl0ZW1zOiByZXN1bHRzLCB0b3RhbEl0ZW1zOiByZXN1bHRzLmxlbmd0aCwgdG90YWxJdGVtc0JlZm9yZVBhZ2luZzogY291bnRCZWZvcmVQYWdpbmcgfSk7XHJcbiAgICB9XHJcbiAgKi9cclxuICBASW5wdXQoKSBwYWdlYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBNYXggc2l6ZSBvZiBhIHBhZ2UuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcGFnZVNpemU/OiBudW1iZXI7XHJcblxyXG4gIC8qKlxyXG4gKiBNYXhpbXVtIG51bWJlciBvZiBwYWdlIHRhYnMgdG8gc2hvd1xyXG4gKi9cclxuICBASW5wdXQoKSBtYXhUYWJzPzogbnVtYmVyID0gMTA7XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIHRoZSBzZWFyY2hib3ggcmVhZG9ubHkgaWYgdHJ1ZS5cclxuICAgKi9cclxuICBASW5wdXQoKSBzZWFyY2hib3hSZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogUGFzc2VkIHRvIHRoZSBpbm5lciBUYWJsZUNvbXBvbmVudCB0byBlbmFibGUgcm93IHNlbGVjdGlvbiAqL1xyXG4gIEBJbnB1dCgpIHNlbGVjdGlvbkNvbnRleHQ/OiBUYWJsZVNlbGVjdGFibGVSb3dDb250ZXh0O1xyXG5cclxuICAvKiogUGFzc2VkIHRvIHRoZSBpbm5lciBUYWJsZUNvbXBvbmVudCB0byBkaXNwbGF5IGEgdG9vbGJhciB3aGVuIDEgb3IgbW9yZSByb3dzIGFyZSBzZWxlY3RlZC4gUmVxdWlyZXMgYFtzZWxlY3Rpb25Db250ZXh0XWAgdG8gYmUgZGVmaW5lZC4gKi9cclxuICBASW5wdXQoKSBzZWxlY3Rpb25Ub29sYmFyVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIFxyXG4gIEBDb250ZW50Q2hpbGRyZW4oUmVzaXphYmxlQ29sdW1uQ29tcG9uZW50LCB7ZGVzY2VuZGFudHM6IHRydWV9KSByZXNpemFibGVDb2x1bW5zITogUXVlcnlMaXN0PFJlc2l6YWJsZUNvbHVtbkNvbXBvbmVudD47XHJcblxyXG4gIC8qKiBPcHRpb25hbCB0ZXh0IHRvIGFkZCB0byB0aGUgcmVzdWx0cyBjb3VudCBpbiB0aGUgdGFibGUgZm9vdGVyLiBUaGlzIHRleHQgd2lsbCBiZSBhZGRlZCBhZnRlciB0aGUgY291bnQgYW5kIG9iamVjdFR5cGUuICovXHJcbiAgQElucHV0KCkgYWRkaXRpb25hbENvdW50VGV4dDogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKiBFbmFibGVzIHRhYmxlIHJvdyBzZWxlY3Rpb24gYW5kIHJvdyBoaWdobGlnaHRpbmcgc3R5bGVzIHdoZW4gdHJ1ZSAqL1xyXG4gIEBJbnB1dCgpIHNlbGVjdGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqRGVmYXVsdHMgdG8gdW5kZWZpbmVkLiBTcGVjaWZ5IHlvdXIgb3duIHRlbXBsYXRlIGlmIGFuIGVjLXRhYmxlIHdyYXBwZWQgYXJvdW5kIHlvdXIgdHJhbnNjbHVkZWQgY29udGVudCB3b24ndCBtZWV0IHlvdXIgbmVlZHNcclxuICAgKi9cclxuICBASW5wdXQoKSBjdXN0b21Db250ZW50VGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAvKiogV2hlbiB0cnVlLCByZW1vdmVzIHRoZSBjYXJkIHN0eWxlcyBmcm9tIHRoZSB0YWJsZSB3cmFwcGVyICovXHJcbiAgQElucHV0KCkgcmVtb3ZlQ2FyZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogQ2xhc3NlcyB0byBhZGQgdG8gdGhlIG92ZXJsYXkvY2FyZCBlbGVtZW50ICovXHJcbiAgQElucHV0KCkgb3ZlcmxheUNsYXNzZXM6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKiogV2hlbiB0cnVlIHRoZSBvdmVybGF5IGFuZCB0YWJsZSB3aWxsIG5vdCBoYXZlIGZsZXgtc2hyaW5rLW1heCBidXQgaW5zdGVhZCBmbGV4LWdyb3cgKi9cclxuICBASW5wdXQoKSBmaWxsUGFyZW50SGVpZ2h0PzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBQYWdpbmdJbmZvIGZvciB0aGUgY3VycmVudCBwYWdlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBwYWdlSW5mbz86IFBhZ2luZ0luZm87XHJcblxyXG4gIC8qKiBSZWZlcmVuY2UgdG8gdGhlIHNlYXJjaE1vZGVsICovXHJcbiAgcHVibGljIGdldCBzZWFyY2hNb2RlbCgpOiBVbnR5cGVkRm9ybUNvbnRyb2wge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybU1vZGVsLmNvbnRyb2xzLnNlYXJjaE1vZGVsIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRleHQgZGlzcGxheWVkIGluIHRoZSBmb290ZXIuXHJcbiAgICogU29tZXRpbWVzIGBub0RhdGFNZXNzYWdlYCwgc29tZXRpbWVzIGBub1NlYXJjaFJlc3VsdHNNZXNzYWdlYFxyXG4gICAqL1xyXG4gIHB1YmxpYyB0YWJsZUNhcHRpb246IHN0cmluZyA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMubm9EYXRhTWVzc2FnZSB8fCAnU2VhcmNoYWJsZVRhYmxlX0RlZmF1bHRfTm9EYXRhX1NDJyk7XHJcblxyXG4gIC8qKiBjb3VudCBvZiByZXN1bHRzIGRpc3BsYXllZCBpbiB0aGUgdGFibGUgKi9cclxuICBwdWJsaWMgcmVzdWx0c0NvdW50OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqIEl0ZW1zIHJldHVybmVkIGJ5IHRoZSBnZXRJdGVtcyBmdW5jdGlvbiwgYWxvbmcgd2l0aCB0b3RhbCBjb3VudCAqL1xyXG4gIHB1YmxpYyBzZWFyY2hSZXN1bHRzOiBUYWJsZVNlYXJjaFJlc3VsdHMgPSB7IGl0ZW1zOiBbXSwgdG90YWxJdGVtczogMCB9O1xyXG5cclxuICAvKipcclxuICAgKiBJZiBwYXNzZWQgYW4gaW5wdXQgZm9yIHJlZnJlc2gsIHRyaWdnZXJzIHJlbG9hZGluZyBpdGVtcy5cclxuICAgKiBPdGhlcndpc2UsIGNvbXBsZXRlcyBpbW1lZGlhdGVseSAod2lsbCBuZXZlciB0cmlnZ2VyIHJlbG9hZCkuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZWZyZXNoVHJpZ2dlcjogT2JzZXJ2YWJsZTxTZWFyY2hhYmxlVGFibGVGb3JtTW9kZWwgfCB1bmRlZmluZWQ+ID0gRU1QVFk7XHJcbiAgcHJpdmF0ZSBkZXN0cm95ZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBwcml2YXRlIHBhZ2VDaGFuZ2VkOiBTdWJqZWN0PFNlYXJjaGFibGVUYWJsZUZvcm1Nb2RlbD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAvKiogVHJpZ2dlcnMgdGhlIGluaXRpYWwgbG9hZCBvZiB0aGUgdGFibGUgKi9cclxuICBwcml2YXRlIGluaXRUYWJsZSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVycm9yU2VydmljZTogRXJyb3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3dDb3VudFBpcGU6IFJvd0NvdW50UGlwZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzLnBhZ2VTaXplICYmICFjaGFuZ2VzLnBhZ2VTaXplLmZpcnN0Q2hhbmdlICYmIHRoaXMucGFnZWFibGUpIHtcclxuICAgICAgLy8gSWYgdGhlIHBhZ2VTaXplIGNoYW5nZXMsIHJlc2V0IHRvIHRoZSBmaXJzdCBwYWdlIGFuZCByZWZyZXNoLlxyXG4gICAgICB0aGlzLnBhZ2VJbmZvID0gVGFibGVQYWdpbmF0aW9uQ29tcG9uZW50LmdldFBhZ2luZ0luZm8oMSwgdGhpcy5wYWdlU2l6ZSEpO1xyXG4gICAgICB0aGlzLm9uUGFnZUNoYW5nZSh0aGlzLnBhZ2VJbmZvKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdGF0dXMuc2V0U3RhdHVzKCdwZW5kaW5nJywgJ0xvYWRpbmcnKTtcclxuICAgIHRoaXMuc2V0VXBSZWZyZXNoVHJpZ2dlcigpO1xyXG5cclxuICAgIC8vIFdhdGNoIGZvciBzZWFyY2hib3gvb3RoZXIgY29udHJvbCBjaGFuZ2VzIG9yIHJlZnJlc2ggcmVxdWVzdHNcclxuICAgIGNvbnN0IHNlYXJjaE9yUmVmcmVzaCA9IG1lcmdlKFxyXG4gICAgICB0aGlzLmZvcm1Nb2RlbC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgICBza2lwVW50aWwodGhpcy5yZWFkeSksXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDMwMClcclxuICAgICAgKSxcclxuICAgICAgdGhpcy5yZWZyZXNoVHJpZ2dlcixcclxuICAgICAgdGhpcy5pbml0VGFibGVcclxuICAgICkucGlwZSh0YXAoKCk9PiB7XHJcbiAgICAgIC8vYSBjaGFuZ2UgdG8gYW55IGZvcm0gY29udHJvbCBvciBhIHJlZnJlc2ggc2hvdWxkIHJlc2V0IHRoZSBwYWdlSW5mbyB0byB0aGUgZmlyc3QgcGFnZSBpZiB0aGUgdGFibGUgaXMgcGFnZWFibGUuXHJcbiAgICAgIC8vKGlmIHdlIGRpZG50IHJlc2V0IHRoZSBwYWdlSW5mbywgd2UnZCBoYXZlIHRvIGNhbGwgZ2V0SXRlbXMgd2l0aCB0aGUgcHJldmlvdXMgcGFnZUluZm8sIHdoaWNoIG1heSBub3QgYmUgdmFsaWQgZm9yIHRoZSBuZXcgcmVzdWx0cylcclxuICAgICAgaWYodGhpcy5wYWdlYWJsZSkge1xyXG4gICAgICAgIHRoaXMucGFnZUluZm8gPSBUYWJsZVBhZ2luYXRpb25Db21wb25lbnQuZ2V0UGFnaW5nSW5mbygxLCB0aGlzLnBhZ2VTaXplISk7XHJcbiAgICAgIH1cclxuICAgIH0pKTtcclxuXHJcbiAgICBjb25zdCB1cGRhdGVSZXN1bHRzID0gbWVyZ2UoXHJcbiAgICAgIHNlYXJjaE9yUmVmcmVzaCxcclxuICAgICAgdGhpcy5wYWdlQ2hhbmdlZC5waXBlKFxyXG4gICAgICAgIC8vIFByZXZlbnQgYSBjYWxsIHRvIGdldEl0ZW1zIHdoZW4gdGhlIHBhZ2VTaXplIGlzIHNldCBkdXJpbmcgcGFnZSBpbml0IGFuZCBiZWZvcmUgcmVhZHkgaXMgY29tcGxldGVkXHJcbiAgICAgICAgc2tpcFVudGlsKHRoaXMucmVhZHkpXHJcbiAgICAgIClcclxuICAgIClcclxuXHJcbiAgICAvLyBDYWxsIGdldEl0ZW1zIGFuZCB3YXRjaCBmb3IgZXJyb3JzXHJcbiAgICBjb25zdCBnZXREYXRhID0gdXBkYXRlUmVzdWx0cy5waXBlKFxyXG4gICAgICAvLyBQbHVjayB0aGUgc2VhcmNoTW9kZWwgdmFsdWUgb3V0IG9mIHRoZSBmb3JtTW9kZWxcclxuICAgICAgcGx1Y2soJ3NlYXJjaE1vZGVsJyksXHJcblxyXG4gICAgICAvLyBFbnN1cmUgc2VhcmNoIHN0cmluZyBpcyBkZWZpbmVkXHJcbiAgICAgIC8vIFRyaW0gYW5kIGxvd2VyY2FzZSBpdCB0byBhaWQgY2FzZS1pbnNlbnNpdGl2ZSBzZWFyY2hpbmdcclxuICAgICAgbWFwKChzZWFyY2hTdHJpbmc/OiBzdHJpbmcpID0+IHtcclxuICAgICAgICBsZXQgc2VhcmNoID0gc2VhcmNoU3RyaW5nIHx8ICcnO1xyXG4gICAgICAgIHJldHVybiBzZWFyY2gudHJpbSgpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIH0pLFxyXG5cclxuICAgICAgLy8gU2hvdyBzdGF0dXMgb3ZlcmxheVxyXG4gICAgICB0YXAoKCkgPT4gdGhpcy5zdGF0dXMuc2V0U3RhdHVzKCdwZW5kaW5nJywgJ0xvYWRpbmcnKSksXHJcblxyXG4gICAgICAvLyBDYWxsIHBhc3NlZCBmdW5jdGlvblxyXG4gICAgICBzd2l0Y2hNYXAoKHNlYXJjaFN0cmluZzogc3RyaW5nKSA9PiBcclxuICAgICAgICAvL2lmIHRoZSB0YWJsZSBpcyBwYWdlYWJsZSwgcGFnZUluZm8gd2lsbCBiZSBkZWZpbmVkLlxyXG4gICAgICAgIHRoaXMuZ2V0SXRlbXMoc2VhcmNoU3RyaW5nLCB0aGlzLnBhZ2VJbmZvKVxyXG4gICAgICApLFxyXG5cclxuICAgICAgLy8gSWYgcGFzc2VkIGZ1bmN0aW9uIGZhaWxzLCBzaG93IGVycm9yIHN0YXR1c1xyXG4gICAgICBjYXRjaEVycm9yKChlcnIsIGNhdWdodCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc3RhdHVzLnNldFN0YXR1cygnZXJyb3InLCB0aGlzLmVycm9yU2VydmljZS5wYXJzZUFwaUVycm9yKGVycikpO1xyXG4gICAgICAgIC8vIHJldHVybiB0aGUgY2F1Z2h0IG9ic2VydmFibGUgc28gdGhlIHN1YnNjcmlwdGlvbiBkb2Vzbid0IGNvbXBsZXRlXHJcbiAgICAgICAgcmV0dXJuIGNhdWdodDtcclxuICAgICAgfSksXHJcblxyXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpLFxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBIYW5kbGUgcmV0dXJuZWQgZGF0YSBhbmQgbm90aWZ5IHBhcmVudFxyXG4gICAgZ2V0RGF0YS5zdWJzY3JpYmUoKHJlc3VsdHM6IFRhYmxlU2VhcmNoUmVzdWx0cykgPT4ge1xyXG4gICAgICAvLyBMaW1pdGluZyBudW1iZXIgb2YgcmVzdWx0cyB0byBzaG93IGlmIG5vdCBwYWdlYWJsZSAoaWYgcGFnZWFibGUgdGhlIG1heCBudW1iZXIgb2YgaXRlbXMgaW4gdGhlIHRhYmxlXHJcbiAgICAgIC8vIGNhbiBiZSBtb2RpZmllZCBieSBpbmNyZWFzaW5nL2RlY3JlYXNpbmcgdGhlIHBhZ2VTaXplLilcclxuICAgICAgaWYoIXRoaXMucGFnZWFibGUpIHtcclxuICAgICAgICByZXN1bHRzLml0ZW1zID0gcmVzdWx0cy5pdGVtcy5zbGljZSgwLCB0aGlzLm1heEl0ZW1Db3VudCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIE5lZWQgdG8ga25vdyB0aGlzIChhbG9uZyB3aXRoIGlmIHRoZXJlJ3MgYSB2YWx1ZSBpbiB0aGUgZm9ybU1vZGVsKSB0byBkZXRlcm1pbmUgd2hhdCB0byBzaG93IGluIHRoZSBmb290ZXJcclxuICAgICAgdGhpcy5zZWFyY2hSZXN1bHRzID0gcmVzdWx0cztcclxuICAgIFxyXG4gICAgICB0aGlzLnRhYmxlQ2FwdGlvbiA9IHRoaXMuZ2V0Q2FwdGlvbihyZXN1bHRzKTtcclxuICAgICAgdGhpcy5yZXN1bHRzQ291bnQgPSB0aGlzLnBhZ2VhYmxlID8gdGhpcy5yb3dDb3VudFBpcGUudHJhbnNmb3JtKHJlc3VsdHMsIHRoaXMub2JqZWN0VHlwZSwgdW5kZWZpbmVkLCB0aGlzLnBhZ2VJbmZvKTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3dDb3VudFBpcGUudHJhbnNmb3JtKHJlc3VsdHMsIHRoaXMub2JqZWN0VHlwZSwgdGhpcy5tYXhJdGVtQ291bnQpO1xyXG5cclxuICAgICAgLy8gRGlzYWJsZSBzZWFyY2hib3ggd2hlbiBpbiBuby1kYXRhIHN0YXRlXHJcbiAgICAgIGlmICghcmVzdWx0cy5pdGVtcy5sZW5ndGggJiYgIXRoaXMuc2VhcmNoTW9kZWwudmFsdWUpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaE1vZGVsLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc2VhcmNoTW9kZWwuZGlzYWJsZWQpIHtcclxuICAgICAgICAvLyByZS1lbmFibGUgaWYgaXQgd2FzIGRpc2FibGVkLCBidXQgbm93IGhhcyBpdGVtc1xyXG4gICAgICAgIHRoaXMuc2VhcmNoTW9kZWwuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5zdGF0dXMuc2V0U3RhdHVzKCdoYXNEYXRhJyk7XHJcbiAgICAgIC8vIFNlbmQgdGhlIHJlc3VsdHMgdG8gdGhlIHBhcmVudCBjb21wb25lbnRcclxuICAgICAgdGhpcy5pdGVtc0NoYW5nZS5lbWl0KHJlc3VsdHMpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gV2hlbiAncmVhZHknIGlzIGNvbXBsZXRlZCBieSB0aGUgaG9zdCwgaW5pdGlhbGl6ZSB0aGUgdGFibGUgd2l0aCB0aGUgY3VycmVudCBmb3JtIG1vZGVsIHZhbHVlc1xyXG4gICAgdGhpcy5yZWFkeS5zdWJzY3JpYmUoe1xyXG4gICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaW5pdFRhYmxlLm5leHQodGhpcy5mb3JtTW9kZWwudmFsdWUpO1xyXG4gICAgICAgIHRoaXMuaW5pdFRhYmxlLmNvbXBsZXRlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3llZC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFBhc3MgYWxvbmcgc29ydCB0byBwYXJlbnQgY29tcG9uZW50ICovXHJcbiAgb25Tb3J0Q2hhbmdlKHNvcnQ6IFRhYmxlU29ydCk6IHZvaWQge1xyXG4gICAgdGhpcy5zb3J0Q2hhbmdlLmVtaXQoc29ydCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGVuIGEgcGFnZSBjaGFuZ2VzLCBzdG9yZSB0aGUgbmV3IHBhZ2luZ0luZm8gYW5kIGVtaXQgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGZvcm0gdG8gdHJpZ2dlciBnZXREYXRhLlxyXG4gICAqL1xyXG4gIG9uUGFnZUNoYW5nZShwYWdpbmdJbmZvOiBQYWdpbmdJbmZvKSB7XHJcbiAgICB0aGlzLnN0YXR1cy5zZXRTdGF0dXMoJ3BlbmRpbmcnLCAnTG9hZGluZycpO1xyXG4gICAgdGhpcy5wYWdlSW5mbyA9IHBhZ2luZ0luZm87XHJcbiAgICB0aGlzLnBhZ2VDaGFuZ2VFbWl0dGVyLmVtaXQocGFnaW5nSW5mbyk7XHJcbiAgICB0aGlzLnBhZ2VDaGFuZ2VkLm5leHQodGhpcy5mb3JtTW9kZWwudmFsdWUpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFdpcmUgdXAgYSBoYW5kbGVyIHRvIHRoZSBgcmVmcmVzaGAgb2JzZXJ2YWJsZSBzbyB0aGF0IHdoZW5cclxuICAgKiB0aGUgaG9zdCBwYWdlIGNvbnRleHQgY2hhbmdlcyBpdCBjYW4gZm9yY2UgdGhlIHRhYmxlIHRvIHVwZGF0ZSBhcyB3ZWxsLlxyXG4gICAqXHJcbiAgICogSWYgdGhlIGByZWZyZXNoYCBvYnNlcnZhYmxlIHBhc3NlcyBvcHRpb25zIGFuZCB0aGUgYGNsZWFyU2VhcmNoYCBwcm9wZXJ0eVxyXG4gICAqIGlzIHNldCB0byB0cnVlLCByZXNldCB0aGUgc2VhcmNoTW9kZWwgYW5kIHBhc3MgYW4gZW1wdHkgc3RyaW5nLlxyXG4gICAqXHJcbiAgICogSWYgYHJlZnJlc2hgIG9ic2VydmFibGUgZG9lcyBub3QgcGFzcyBvcHRpb25zIG9yIHRoZSBgY2xlYXJTZWFyY2hgIHByb3BlcnR5XHJcbiAgICogaXMgc2V0IHRvIGZhbHNlLCBwYXNzIGFsb25nIHRoZSBjdXJyZW50IHNlYXJjaE1vZGVsIFZhbHVlLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0VXBSZWZyZXNoVHJpZ2dlcigpIHtcclxuICAgIGlmICh0aGlzLnJlZnJlc2gpIHtcclxuICAgICAgdGhpcy5yZWZyZXNoVHJpZ2dlciA9IHRoaXMucmVmcmVzaC5waXBlKFxyXG4gICAgICAgIG1hcChvcHRzID0+IHtcclxuICAgICAgICAgIGlmIChvcHRzICYmIG9wdHMuY2xlYXJTZWFyY2gpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hNb2RlbC5yZXNldCgnJywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4geyAuLi50aGlzLmZvcm1Nb2RlbCwgc2VhcmNoTW9kZWw6ICcnIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtTW9kZWwudmFsdWU7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEdldCB0ZXh0IHRvIGRpc3BsYXkgaW4gdGhlIGZvb3Rlci4gKi9cclxuICBwcml2YXRlIGdldENhcHRpb24ocmVzdWx0czogVGFibGVTZWFyY2hSZXN1bHRzKTogc3RyaW5nIHtcclxuICAgIGlmIChyZXN1bHRzLml0ZW1zLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc2VhcmNoTW9kZWwudmFsdWUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMubm9TZWFyY2hSZXN1bHRzTWVzc2FnZSB8fCAnU2VhcmNoYWJsZVRhYmxlX0RlZmF1bHRfTm9NYXRjaGVzX1NDJywgeyBzZWFyY2hUZXh0OiB0aGlzLnNlYXJjaE1vZGVsLnZhbHVlIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLm5vRGF0YU1lc3NhZ2UgfHwgJ1NlYXJjaGFibGVUYWJsZV9EZWZhdWx0X05vRGF0YV9TQycpO1xyXG4gIH1cclxuXHJcbn0iLCI8aGVhZGVyICpuZ0lmPVwiIWhpZGVIZWFkZXJcIlxyXG4gICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtc2hyaW5rIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0zXCI+XHJcbiAgPGVjLXRleHRib3ggaWQ9XCJ7e2lkfX1fc2VhcmNoYm94XCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIiFoaWRlU2VhcmNoQ29udHJvbFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtYi0wIGZsZXgtZ3JvdyBtci0yXCJcclxuICAgICAgICAgICAgICBbYXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiXHJcbiAgICAgICAgICAgICAgW2Zvcm1Nb2RlbF09XCJzZWFyY2hNb2RlbFwiXHJcbiAgICAgICAgICAgICAgW3RhYmluZGV4XT1cInNlYXJjaGJveFRhYkluZGV4XCJcclxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwic2VhcmNoYm94UGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgIFtyZWFkb25seV09XCJzZWFyY2hib3hSZWFkb25seVwiPjwvZWMtdGV4dGJveD5cclxuICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93XCI+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCIuc2VhcmNoYWJsZS10YWJsZS1jb250cm9sc1wiPjwvbmctY29udGVudD5cclxuICA8L2Rpdj5cclxuPC9oZWFkZXI+XHJcbjxzZWN0aW9uIGlkPVwie3tpZH19X2NhcmRcIlxyXG4gICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiB7e292ZXJsYXlDbGFzc2VzfX1cIlxyXG4gICAgICAgICBbbmdDbGFzc109XCJ7J2lzLXRyYW5zbHVjZW50Jzogc3RhdHVzLnN0YXR1cyAhPT0gJ2Vycm9yJywgJ2hhcy1tYXNrJzogc3RhdHVzLnN0YXR1cyAhPT0gJ2hhc0RhdGEnLCAnY2FyZCBtLTAgYmctY29udGVudCc6ICFjdXN0b21Db250ZW50VGVtcGxhdGUgJiYgIXJlbW92ZUNhcmR9XCJcclxuICAgICAgICAgZWNPdmVybGF5XHJcbiAgICAgICAgIFtzdGF0dXNdPVwic3RhdHVzLnN0YXR1c1wiXHJcbiAgICAgICAgIFttZXNzYWdlXT1cInN0YXR1cy5tZXNzYWdlXCJcclxuICAgICAgICAgW2Rpc3BsYXlBc01hc2tdPVwidHJ1ZVwiPlxyXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIi5jYXJkLWhlYWRlclwiPjwvbmctY29udGVudD5cclxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tQ29udGVudFRlbXBsYXRlIHx8IGRlZmF1bHRDb250ZW50VGVtcGxhdGVcIj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPCEtLSB0aGUgZGVmYXVsdCB0ZW1wbGF0ZSBpcyBhbiBlYy10YWJsZSB3aXRoIHByb3hpZWQtb3ZlciBzZWFyY2hhYmxlIHRhYmxlIGlucHV0cy4gXHJcbiAgICBJZiB0aGF0IGRvZXNuJ3Qgd29yayBmb3IgeW91IHRoZW4geW91IGNhbiBzcGVjaWZ5IGEgY3VzdG9tQ29udGVudFRlbXBsYXRlIHRvIHVzZSBpbnN0ZWFkXHJcbiAgICBhbmQgc3RpbGwgcmV0YWluIGFsbCB0aGUgZXZlbnQgaGFuZGxpbmcsIGhlYWRlciwgZm9vdGVyIHBhZ2luYXRpb24sIGV0YyBzdXBwb3J0IC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdENvbnRlbnRUZW1wbGF0ZT5cclxuICAgIDxlYy10YWJsZSBpZD1cInt7aWR9fV90YWJsZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ7e3RhYmxlQ2xhc3Nlc319XCJcclxuICAgICAgICAgICAgICBbY2xhc3MuaXMtZml4ZWRdPVwidGFibGVMYXlvdXRGaXhlZFwiXHJcbiAgICAgICAgICAgICAgW3NvcnRhYmxlXT1cInNvcnRhYmxlXCJcclxuICAgICAgICAgICAgICBbc29ydF09XCJzb3J0XCJcclxuICAgICAgICAgICAgICAoc29ydENoYW5nZSk9XCJvblNvcnRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgW3Jlc2l6YWJsZV09XCJyZXNpemFibGVcIlxyXG4gICAgICAgICAgICAgIFtzY3JvbGxhYmxlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtzZWxlY3RhYmxlXT1cInNlbGVjdGFibGVcIlxyXG4gICAgICAgICAgICAgIFtzZWxlY3Rpb25Db250ZXh0XT1cInNlbGVjdGlvbkNvbnRleHRcIlxyXG4gICAgICAgICAgICAgIFtzZWxlY3Rpb25Ub29sYmFyVGVtcGxhdGVdPVwic2VsZWN0aW9uVG9vbGJhclRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICBbcmVzaXphYmxlQ29sdW1uc109XCJyZXNpemFibGVDb2x1bW5zXCI+XHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDwvZWMtdGFibGU+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPCEtLSBwYWdpbmF0aW9uIGZvb3RlciB2aXNpYmxlIGlmIHRhYmxlIGlzIHBhZ2UtYWJsZSBhbmQgdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgcGFnZSBvZiByZXN1bHRzIC0tPlxyXG4gIDxmb290ZXIgKm5nSWY9XCIhaGlkZUZvb3RlciAmJiBwYWdlYWJsZSAmJiBzZWFyY2hSZXN1bHRzLnRvdGFsSXRlbXNCZWZvcmVQYWdpbmchID4gcGFnZVNpemUhXCJcclxuICAgICAgICAgIGNsYXNzPVwicGFnaW5hdGlvbi1mb290ZXJcIlxyXG4gICAgICAgICAgW2NsYXNzLmJvcmRlci10b3BdPVwiIWN1c3RvbUNvbnRlbnRUZW1wbGF0ZVwiPlxyXG4gICAgPGVjLXRhYmxlLXBhZ2luYXRpb24gaWQ9XCJ7e2lkfX1fcGFnZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb250LWNvbG9yLXByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3RvdGFsSXRlbXNdPVwic2VhcmNoUmVzdWx0cy50b3RhbEl0ZW1zQmVmb3JlUGFnaW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4VGFic109XCJtYXhUYWJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwYWdlTnVtYmVyXT1cInBhZ2VJbmZvPy5wYWdlTnVtYmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChwYWdlQ2hhbmdlZCk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgPC9lYy10YWJsZS1wYWdpbmF0aW9uPlxyXG4gICAgPGRpdiBpZD1cInJlc3VsdHNDb3VudFwiXHJcbiAgICAgICAgICpuZ0lmPVwic2VhcmNoUmVzdWx0cz8uaXRlbXM/Lmxlbmd0aFwiXHJcbiAgICAgICAgIGNsYXNzPVwibWwtYXV0byBmb250LWNvbG9yLWhpbnQgdGV4dC10cnVuY2F0ZVwiIFxyXG4gICAgICAgICB0aXRsZT1cInt7cmVzdWx0c0NvdW50fX0ge3thZGRpdGlvbmFsQ291bnRUZXh0fX1cIj57e3Jlc3VsdHNDb3VudH19IHt7YWRkaXRpb25hbENvdW50VGV4dH19PC9kaXY+XHJcbiAgPC9mb290ZXI+XHJcblxyXG4gIDwhLS0gZGVmYXVsdCBmb290ZXI6IHZpc2libGUgaWYgaGlkZUZvb3RlciBpcyBmYWxzZSBhbmQgdGFibGUgaXMgbm90IHBhZ2UtYWJsZSBvciB0aGVyZSBhcmUgb25seSBvbmUgcGFnZSBvZiByZXN1bHRzIChhbHdheXMgc2hvd3MgaWYgdGhlcmUgaXMgYSBjYXB0aW9uIHRvIGluZGljYXRlIG5vIHJlc3VsdHMpIC0tPlxyXG4gIDxmb290ZXIgKm5nSWY9XCIoIWhpZGVGb290ZXIgJiYgKCFwYWdlYWJsZSB8fCBzZWFyY2hSZXN1bHRzLnRvdGFsSXRlbXNCZWZvcmVQYWdpbmchIDw9IHBhZ2VTaXplISkpIHx8IHRhYmxlQ2FwdGlvblwiXHJcbiAgICAgICAgICBjbGFzcz1cImNhcHRpb24tZm9vdGVyXCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaGFzLXJlc3VsdHMnOiBzZWFyY2hSZXN1bHRzPy5pdGVtcz8ubGVuZ3RoLCAnYm9yZGVyLXRvcCc6IHNlYXJjaFJlc3VsdHM/Lml0ZW1zPy5sZW5ndGggJiYgIWN1c3RvbUNvbnRlbnRUZW1wbGF0ZX1cIj5cclxuICAgIDxuZy1jb250ZW50ICpuZ0lmPVwiIXRhYmxlQ2FwdGlvblwiXHJcbiAgICAgICAgICAgICAgICBzZWxlY3Q9XCIuc2VhcmNoYWJsZS10YWJsZS1mb290ZXJcIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8ZGl2IGlkPVwidGFibGVDYXB0aW9uXCJcclxuICAgICAgICAgKm5nSWY9XCJ0YWJsZUNhcHRpb25cIlxyXG4gICAgICAgICBbaW5uZXJIVE1MXT1cInRhYmxlQ2FwdGlvblwiPjwvZGl2PlxyXG4gICAgPGRpdiBpZD1cInJlc3VsdHNDb3VudFwiXHJcbiAgICAgICAgICpuZ0lmPVwic2VhcmNoUmVzdWx0cz8uaXRlbXM/Lmxlbmd0aFwiXHJcbiAgICAgICAgIGNsYXNzPVwibWwtYXV0byB0ZXh0LXRydW5jYXRlXCJcclxuICAgICAgICAgdGl0bGU9XCJ7e3Jlc3VsdHNDb3VudH19IHt7YWRkaXRpb25hbENvdW50VGV4dH19XCI+e3tyZXN1bHRzQ291bnR9fSB7e2FkZGl0aW9uYWxDb3VudFRleHR9fTwvZGl2PlxyXG4gIDwvZm9vdGVyPlxyXG48L3NlY3Rpb24+Il19
@@ -3,7 +3,7 @@ import * as i0 from "@angular/core";
3
3
  export class TableDetailRowComponent {
4
4
  }
5
5
  TableDetailRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableDetailRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
- TableDetailRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TableDetailRowComponent, selector: "[ecTableDetailRow]", inputs: { contentClass: "contentClass", contentColSpan: "contentColSpan", maxHeight: "maxHeight" }, ngImport: i0, template: `
6
+ TableDetailRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TableDetailRowComponent, isStandalone: true, selector: "[ecTableDetailRow]", inputs: { contentClass: "contentClass", contentColSpan: "contentColSpan", maxHeight: "maxHeight" }, ngImport: i0, template: `
7
7
  <td></td>
8
8
  <td [class.has-max-height]="maxHeight" class="table-detail-content {{contentClass}}" [attr.colspan]="contentColSpan">
9
9
  <div [style.max-height]="maxHeight"><ng-content></ng-content></div>
@@ -16,7 +16,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
16
16
  <td [class.has-max-height]="maxHeight" class="table-detail-content {{contentClass}}" [attr.colspan]="contentColSpan">
17
17
  <div [style.max-height]="maxHeight"><ng-content></ng-content></div>
18
18
  </td>
19
- `, styles: [":host{background-color:var(--ec-background-color-detail)}td:first-child{width:1.5rem;padding:.25rem 0!important;vertical-align:top}.table-detail-content{background-color:transparent;border-top:1px solid var(--ec-border-color);padding:1rem 2rem 1rem 0!important}.table-detail-content.has-max-height{padding:0!important}.table-detail-content.has-max-height>div{overflow-y:auto;padding:1rem 2rem 1rem 0}\n"] }]
19
+ `, standalone: true, styles: [":host{background-color:var(--ec-background-color-detail)}td:first-child{width:1.5rem;padding:.25rem 0!important;vertical-align:top}.table-detail-content{background-color:transparent;border-top:1px solid var(--ec-border-color);padding:1rem 2rem 1rem 0!important}.table-detail-content.has-max-height{padding:0!important}.table-detail-content.has-max-height>div{overflow-y:auto;padding:1rem 2rem 1rem 0}\n"] }]
20
20
  }], propDecorators: { contentClass: [{
21
21
  type: Input
22
22
  }], contentColSpan: [{
@@ -24,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
24
24
  }], maxHeight: [{
25
25
  type: Input
26
26
  }] } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGV0YWlsLXJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90YWJsZS90YWJsZS1kZXRhaWwtcm93LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFZakQsTUFBTSxPQUFPLHVCQUF1Qjs7b0hBQXZCLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLDhKQVJ4Qjs7Ozs7R0FLVDsyRkFHVSx1QkFBdUI7a0JBVm5DLFNBQVM7K0JBQ0Usb0JBQW9CLFlBQ3BCOzs7OztHQUtUOzhCQUlRLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdbZWNUYWJsZURldGFpbFJvd10nLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8dGQ+PC90ZD5cclxuICAgIDx0ZCBbY2xhc3MuaGFzLW1heC1oZWlnaHRdPVwibWF4SGVpZ2h0XCIgY2xhc3M9XCJ0YWJsZS1kZXRhaWwtY29udGVudCB7e2NvbnRlbnRDbGFzc319XCIgW2F0dHIuY29sc3Bhbl09XCJjb250ZW50Q29sU3BhblwiPlxyXG4gICAgICA8ZGl2IFtzdHlsZS5tYXgtaGVpZ2h0XT1cIm1heEhlaWdodFwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2Rpdj5cclxuICAgIDwvdGQ+XHJcbiAgYCxcclxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1kZXRhaWwtcm93LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlRGV0YWlsUm93Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSBjb250ZW50Q2xhc3M/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY29udGVudENvbFNwYW4hOiBudW1iZXI7XHJcbiAgQElucHV0KCkgbWF4SGVpZ2h0Pzogc3RyaW5nO1xyXG59XHJcbiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGV0YWlsLXJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90YWJsZS90YWJsZS1kZXRhaWwtcm93LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFhakQsTUFBTSxPQUFPLHVCQUF1Qjs7b0hBQXZCLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLGtMQVR0Qjs7Ozs7R0FLWDsyRkFJVSx1QkFBdUI7a0JBWG5DLFNBQVM7K0JBQ0ksb0JBQW9CLFlBQ3BCOzs7OztHQUtYLGNBRWEsSUFBSTs4QkFHVCxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdbZWNUYWJsZURldGFpbFJvd10nLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgIDx0ZD48L3RkPlxyXG4gICAgPHRkIFtjbGFzcy5oYXMtbWF4LWhlaWdodF09XCJtYXhIZWlnaHRcIiBjbGFzcz1cInRhYmxlLWRldGFpbC1jb250ZW50IHt7Y29udGVudENsYXNzfX1cIiBbYXR0ci5jb2xzcGFuXT1cImNvbnRlbnRDb2xTcGFuXCI+XHJcbiAgICAgIDxkaXYgW3N0eWxlLm1heC1oZWlnaHRdPVwibWF4SGVpZ2h0XCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvZGl2PlxyXG4gICAgPC90ZD5cclxuICBgLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFibGUtZGV0YWlsLXJvdy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVEZXRhaWxSb3dDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGNvbnRlbnRDbGFzcz86IHN0cmluZztcclxuICBASW5wdXQoKSBjb250ZW50Q29sU3BhbiE6IG51bWJlcjtcclxuICBASW5wdXQoKSBtYXhIZWlnaHQ/OiBzdHJpbmc7XHJcbn1cclxuIl19