carbon-components-angular 5.24.0 → 5.24.2

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 (82) hide show
  1. package/button/base-icon-button.component.d.ts +6 -1
  2. package/docs/documentation/components/BaseIconButton.html +43 -2
  3. package/docs/documentation/components/CodeSnippet.html +45 -2
  4. package/docs/documentation/components/DropdownList.html +17 -16
  5. package/docs/documentation/components/HeaderAction.html +45 -2
  6. package/docs/documentation/components/IconButton.html +74 -29
  7. package/docs/documentation/coverage.html +10 -10
  8. package/docs/documentation/js/search/search_index.js +2 -2
  9. package/docs/documentation/modules/ComboBoxModule/dependencies.svg +4 -4
  10. package/docs/documentation/modules/ComboBoxModule.html +4 -4
  11. package/docs/documentation/modules/ContentSwitcherModule/dependencies.svg +4 -4
  12. package/docs/documentation/modules/ContentSwitcherModule.html +4 -4
  13. package/docs/documentation/modules/DatePickerInputModule/dependencies.svg +7 -7
  14. package/docs/documentation/modules/DatePickerInputModule.html +7 -7
  15. package/docs/documentation/modules/DatePickerModule/dependencies.svg +57 -53
  16. package/docs/documentation/modules/DatePickerModule.html +57 -53
  17. package/docs/documentation/modules/DialogModule/dependencies.svg +34 -34
  18. package/docs/documentation/modules/DialogModule.html +34 -34
  19. package/docs/documentation/modules/GridModule/dependencies.svg +60 -60
  20. package/docs/documentation/modules/GridModule.html +60 -60
  21. package/docs/documentation/modules/LoadingModule/dependencies.svg +4 -4
  22. package/docs/documentation/modules/LoadingModule.html +4 -4
  23. package/docs/documentation/modules/NFormsModule/dependencies.svg +4 -4
  24. package/docs/documentation/modules/NFormsModule.html +4 -4
  25. package/docs/documentation/modules/NumberModule/dependencies.svg +4 -4
  26. package/docs/documentation/modules/NumberModule.html +4 -4
  27. package/docs/documentation/modules/ProgressIndicatorModule/dependencies.svg +4 -4
  28. package/docs/documentation/modules/ProgressIndicatorModule.html +4 -4
  29. package/docs/documentation/modules/RadioModule/dependencies.svg +4 -4
  30. package/docs/documentation/modules/RadioModule.html +4 -4
  31. package/docs/documentation/modules/SearchModule/dependencies.svg +4 -4
  32. package/docs/documentation/modules/SearchModule.html +4 -4
  33. package/docs/documentation/modules/SelectModule/dependencies.svg +58 -58
  34. package/docs/documentation/modules/SelectModule.html +58 -58
  35. package/docs/documentation/modules/SliderModule/dependencies.svg +4 -4
  36. package/docs/documentation/modules/SliderModule.html +4 -4
  37. package/docs/documentation/modules/StructuredListModule/dependencies.svg +66 -66
  38. package/docs/documentation/modules/StructuredListModule.html +66 -66
  39. package/docs/documentation/modules/TabsModule/dependencies.svg +69 -69
  40. package/docs/documentation/modules/TabsModule.html +69 -69
  41. package/docs/documentation/modules/TagModule/dependencies.svg +4 -4
  42. package/docs/documentation/modules/TagModule.html +4 -4
  43. package/docs/documentation/modules/ThemeModule/dependencies.svg +13 -13
  44. package/docs/documentation/modules/ThemeModule.html +13 -13
  45. package/docs/documentation/modules/TilesModule/dependencies.svg +101 -101
  46. package/docs/documentation/modules/TilesModule.html +101 -101
  47. package/docs/documentation/modules/TimePickerModule/dependencies.svg +45 -41
  48. package/docs/documentation/modules/TimePickerModule.html +45 -41
  49. package/docs/documentation/modules/TimePickerSelectModule/dependencies.svg +45 -41
  50. package/docs/documentation/modules/TimePickerSelectModule.html +45 -41
  51. package/docs/documentation/modules/ToggleModule/dependencies.svg +46 -42
  52. package/docs/documentation/modules/ToggleModule.html +46 -42
  53. package/docs/documentation/modules/ToggletipModule/dependencies.svg +4 -4
  54. package/docs/documentation/modules/ToggletipModule.html +4 -4
  55. package/docs/documentation/modules/TooltipModule/dependencies.svg +29 -29
  56. package/docs/documentation/modules/TooltipModule.html +29 -29
  57. package/docs/documentation/modules/TreeviewModule/dependencies.svg +34 -34
  58. package/docs/documentation/modules/TreeviewModule.html +34 -34
  59. package/docs/documentation.json +194 -81
  60. package/docs/storybook/{3224.92030851.iframe.bundle.js → 3224.aa2b4664.iframe.bundle.js} +1 -1
  61. package/docs/storybook/4578.17249a24.iframe.bundle.js +1 -0
  62. package/docs/storybook/{button-icon-button-stories.19a7bba3.iframe.bundle.js → button-icon-button-stories.59d7496a.iframe.bundle.js} +1 -1
  63. package/docs/storybook/iframe.html +2 -2
  64. package/docs/storybook/index.json +1 -1
  65. package/docs/storybook/main.882077ad.iframe.bundle.js +1 -0
  66. package/docs/storybook/project.json +1 -1
  67. package/docs/storybook/{runtime~main.f7ceaed5.iframe.bundle.js → runtime~main.57b056bd.iframe.bundle.js} +1 -1
  68. package/docs/storybook/stories.json +1 -1
  69. package/esm2020/button/base-icon-button.component.mjs +9 -2
  70. package/esm2020/button/icon-button.component.mjs +3 -1
  71. package/esm2020/dropdown/list/dropdown-list.component.mjs +4 -3
  72. package/fesm2015/carbon-components-angular-button.mjs +10 -1
  73. package/fesm2015/carbon-components-angular-button.mjs.map +1 -1
  74. package/fesm2015/carbon-components-angular-dropdown.mjs +5 -2
  75. package/fesm2015/carbon-components-angular-dropdown.mjs.map +1 -1
  76. package/fesm2020/carbon-components-angular-button.mjs +10 -1
  77. package/fesm2020/carbon-components-angular-button.mjs.map +1 -1
  78. package/fesm2020/carbon-components-angular-dropdown.mjs +3 -2
  79. package/fesm2020/carbon-components-angular-dropdown.mjs.map +1 -1
  80. package/package.json +1 -1
  81. package/docs/storybook/4578.2ddca843.iframe.bundle.js +0 -1
  82. package/docs/storybook/main.7445afdc.iframe.bundle.js +0 -1
@@ -28,6 +28,11 @@ export class BaseIconButton {
28
28
  * Set popover alignment
29
29
  */
30
30
  this.align = "bottom";
31
+ /**
32
+ * **Experimental**: Use floating-ui to position the tooltip
33
+ * This is not toggleable - should be assigned once
34
+ */
35
+ this.autoAlign = false;
31
36
  /**
32
37
  * Set delay before tooltip is shown
33
38
  */
@@ -39,7 +44,7 @@ export class BaseIconButton {
39
44
  }
40
45
  }
41
46
  BaseIconButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BaseIconButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
42
- BaseIconButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: BaseIconButton, selector: "ng-component", inputs: { caret: "caret", dropShadow: "dropShadow", highContrast: "highContrast", isOpen: "isOpen", align: "align", enterDelayMs: "enterDelayMs", leaveDelayMs: "leaveDelayMs" }, ngImport: i0, template: "", isInline: true });
47
+ BaseIconButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: BaseIconButton, selector: "ng-component", inputs: { caret: "caret", dropShadow: "dropShadow", highContrast: "highContrast", isOpen: "isOpen", align: "align", autoAlign: "autoAlign", enterDelayMs: "enterDelayMs", leaveDelayMs: "leaveDelayMs" }, ngImport: i0, template: "", isInline: true });
43
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BaseIconButton, decorators: [{
44
49
  type: Component,
45
50
  args: [{
@@ -55,9 +60,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
55
60
  type: Input
56
61
  }], align: [{
57
62
  type: Input
63
+ }], autoAlign: [{
64
+ type: Input
58
65
  }], enterDelayMs: [{
59
66
  type: Input
60
67
  }], leaveDelayMs: [{
61
68
  type: Input
62
69
  }] } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pY29uLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnV0dG9uL2Jhc2UtaWNvbi1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVqRDs7Ozs7R0FLRztBQUlILE1BQU0sT0FBTyxjQUFjO0lBSDNCO1FBSUM7O1dBRUc7UUFDTSxVQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ3RCOztXQUVHO1FBQ00sZUFBVSxHQUFHLElBQUksQ0FBQztRQUMzQjs7V0FFRztRQUNNLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQzdCOztXQUVHO1FBQ00sV0FBTSxHQUFHLEtBQUssQ0FBQztRQUN4Qjs7V0FFRztRQUNNLFVBQUssR0FHNEIsUUFBUSxDQUFDO1FBQ25EOztXQUVHO1FBQ00saUJBQVksR0FBRyxHQUFHLENBQUM7UUFDNUI7O1dBRUc7UUFDTSxpQkFBWSxHQUFHLEdBQUcsQ0FBQztLQUM1Qjs7MkdBaENZLGNBQWM7K0ZBQWQsY0FBYyxzT0FGaEIsRUFBRTsyRkFFQSxjQUFjO2tCQUgxQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxFQUFFO2lCQUNaOzhCQUtTLEtBQUs7c0JBQWIsS0FBSztnQkFJRyxVQUFVO3NCQUFsQixLQUFLO2dCQUlHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSUcsTUFBTTtzQkFBZCxLQUFLO2dCQUlHLEtBQUs7c0JBQWIsS0FBSztnQkFPRyxZQUFZO3NCQUFwQixLQUFLO2dCQUlHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuLyoqXG4gKiBCYXNlIGJ1dHRvbiB3aXRoIGNvbW1vbiBpbnB1dCBwcm9wZXJ0aWVzIGZvciBjb25maWd1cmluZyBpY29uIGJ1dHRvbi5cbiAqIEV4dGVuZCBjbGFzcyB0byBpbmhlcml0IEBJbnB1dCBtZXRhIGRhdGFcbiAqXG4gKiBVc2VkIGJ5IHBhZ2luYXRpb24gbmF2IGljb24gYnV0dG9uLCBjb2RlIHNuaXBwZXQsIGV0Yy5cbiAqL1xuQENvbXBvbmVudCh7XG5cdHRlbXBsYXRlOiBcIlwiXG59KVxuZXhwb3J0IGNsYXNzIEJhc2VJY29uQnV0dG9uIHtcblx0LyoqXG5cdCAqIFNldCB0byBgZmFsc2VgIHRvIGhpZGUgY2FyZXRcblx0ICovXG5cdEBJbnB1dCgpIGNhcmV0ID0gdHJ1ZTtcblx0LyoqXG5cdCAqIFNldCB0byBgZmFsc2VgIHRvIGhpZGUgc2hhZG93XG5cdCAqL1xuXHRASW5wdXQoKSBkcm9wU2hhZG93ID0gdHJ1ZTtcblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIGhpZ2ggY29udHJhc3Rcblx0ICovXG5cdEBJbnB1dCgpIGhpZ2hDb250cmFzdCA9IHRydWU7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIHRvIGhhdmUgdGhlIHBvcG92ZXIgb3BlbiBieSBkZWZhdWx0XG5cdCAqL1xuXHRASW5wdXQoKSBpc09wZW4gPSBmYWxzZTtcblx0LyoqXG5cdCAqIFNldCBwb3BvdmVyIGFsaWdubWVudFxuXHQgKi9cblx0QElucHV0KCkgYWxpZ246IFwidG9wXCIgfCBcInRvcC1sZWZ0XCIgfCBcInRvcC1yaWdodFwiIHxcblx0XHRcImJvdHRvbVwiIHwgXCJib3R0b20tbGVmdFwiIHwgXCJib3R0b20tcmlnaHRcIiB8XG5cdFx0XCJsZWZ0XCIgfCBcImxlZnQtYm90dG9tXCIgfCBcImxlZnQtdG9wXCIgfFxuXHRcdFwicmlnaHRcIiB8IFwicmlnaHQtYm90dG9tXCIgfCBcInJpZ2h0LXRvcFwiID0gXCJib3R0b21cIjtcblx0LyoqXG5cdCAqIFNldCBkZWxheSBiZWZvcmUgdG9vbHRpcCBpcyBzaG93blxuXHQgKi9cblx0QElucHV0KCkgZW50ZXJEZWxheU1zID0gMTAwO1xuXHQvKipcblx0ICogU2V0IGRlbGF5IHdoZW4gdG9vbHRpcCBkaXNhcHBlYXJzXG5cdCAqL1xuXHRASW5wdXQoKSBsZWF2ZURlbGF5TXMgPSAzMDA7XG59XG4iXX0=
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pY29uLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnV0dG9uL2Jhc2UtaWNvbi1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVqRDs7Ozs7R0FLRztBQUlILE1BQU0sT0FBTyxjQUFjO0lBSDNCO1FBSUM7O1dBRUc7UUFDTSxVQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ3RCOztXQUVHO1FBQ00sZUFBVSxHQUFHLElBQUksQ0FBQztRQUMzQjs7V0FFRztRQUNNLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQzdCOztXQUVHO1FBQ00sV0FBTSxHQUFHLEtBQUssQ0FBQztRQUN4Qjs7V0FFRztRQUNNLFVBQUssR0FHNEIsUUFBUSxDQUFDO1FBQ25EOzs7V0FHRztRQUNNLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDM0I7O1dBRUc7UUFDTSxpQkFBWSxHQUFHLEdBQUcsQ0FBQztRQUM1Qjs7V0FFRztRQUNNLGlCQUFZLEdBQUcsR0FBRyxDQUFDO0tBQzVCOzsyR0FyQ1ksY0FBYzsrRkFBZCxjQUFjLDhQQUZoQixFQUFFOzJGQUVBLGNBQWM7a0JBSDFCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLEVBQUU7aUJBQ1o7OEJBS1MsS0FBSztzQkFBYixLQUFLO2dCQUlHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBSUcsWUFBWTtzQkFBcEIsS0FBSztnQkFJRyxNQUFNO3NCQUFkLEtBQUs7Z0JBSUcsS0FBSztzQkFBYixLQUFLO2dCQVFHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBSUcsWUFBWTtzQkFBcEIsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbi8qKlxuICogQmFzZSBidXR0b24gd2l0aCBjb21tb24gaW5wdXQgcHJvcGVydGllcyBmb3IgY29uZmlndXJpbmcgaWNvbiBidXR0b24uXG4gKiBFeHRlbmQgY2xhc3MgdG8gaW5oZXJpdCBASW5wdXQgbWV0YSBkYXRhXG4gKlxuICogVXNlZCBieSBwYWdpbmF0aW9uIG5hdiBpY29uIGJ1dHRvbiwgY29kZSBzbmlwcGV0LCBldGMuXG4gKi9cbkBDb21wb25lbnQoe1xuXHR0ZW1wbGF0ZTogXCJcIlxufSlcbmV4cG9ydCBjbGFzcyBCYXNlSWNvbkJ1dHRvbiB7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYGZhbHNlYCB0byBoaWRlIGNhcmV0XG5cdCAqL1xuXHRASW5wdXQoKSBjYXJldCA9IHRydWU7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYGZhbHNlYCB0byBoaWRlIHNoYWRvd1xuXHQgKi9cblx0QElucHV0KCkgZHJvcFNoYWRvdyA9IHRydWU7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSBoaWdoIGNvbnRyYXN0XG5cdCAqL1xuXHRASW5wdXQoKSBoaWdoQ29udHJhc3QgPSB0cnVlO1xuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCB0byBoYXZlIHRoZSBwb3BvdmVyIG9wZW4gYnkgZGVmYXVsdFxuXHQgKi9cblx0QElucHV0KCkgaXNPcGVuID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTZXQgcG9wb3ZlciBhbGlnbm1lbnRcblx0ICovXG5cdEBJbnB1dCgpIGFsaWduOiBcInRvcFwiIHwgXCJ0b3AtbGVmdFwiIHwgXCJ0b3AtcmlnaHRcIiB8XG5cdFx0XCJib3R0b21cIiB8IFwiYm90dG9tLWxlZnRcIiB8IFwiYm90dG9tLXJpZ2h0XCIgfFxuXHRcdFwibGVmdFwiIHwgXCJsZWZ0LWJvdHRvbVwiIHwgXCJsZWZ0LXRvcFwiIHxcblx0XHRcInJpZ2h0XCIgfCBcInJpZ2h0LWJvdHRvbVwiIHwgXCJyaWdodC10b3BcIiA9IFwiYm90dG9tXCI7XG5cdC8qKlxuXHQgKiAqKkV4cGVyaW1lbnRhbCoqOiBVc2UgZmxvYXRpbmctdWkgdG8gcG9zaXRpb24gdGhlIHRvb2x0aXBcblx0ICogVGhpcyBpcyBub3QgdG9nZ2xlYWJsZSAtIHNob3VsZCBiZSBhc3NpZ25lZCBvbmNlXG5cdCAqL1xuXHRASW5wdXQoKSBhdXRvQWxpZ24gPSBmYWxzZTtcblx0LyoqXG5cdCAqIFNldCBkZWxheSBiZWZvcmUgdG9vbHRpcCBpcyBzaG93blxuXHQgKi9cblx0QElucHV0KCkgZW50ZXJEZWxheU1zID0gMTAwO1xuXHQvKipcblx0ICogU2V0IGRlbGF5IHdoZW4gdG9vbHRpcCBkaXNhcHBlYXJzXG5cdCAqL1xuXHRASW5wdXQoKSBsZWF2ZURlbGF5TXMgPSAzMDA7XG59XG4iXX0=
@@ -116,6 +116,7 @@ IconButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "1
116
116
  [highContrast]="highContrast"
117
117
  [isOpen]="isOpen"
118
118
  [align]="align"
119
+ [autoAlign]="autoAlign"
119
120
  [enterDelayMs]="enterDelayMs"
120
121
  [leaveDelayMs]="leaveDelayMs"
121
122
  (click)="emitClickEvent($event, 'tooltip')">
@@ -150,6 +151,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
150
151
  [highContrast]="highContrast"
151
152
  [isOpen]="isOpen"
152
153
  [align]="align"
154
+ [autoAlign]="autoAlign"
153
155
  [enterDelayMs]="enterDelayMs"
154
156
  [leaveDelayMs]="leaveDelayMs"
155
157
  (click)="emitClickEvent($event, 'tooltip')">
@@ -201,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
201
203
  }], tooltipClick: [{
202
204
  type: Output
203
205
  }] } });
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2J1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVOLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFHTixTQUFTLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7OztBQUc5RDs7Ozs7Ozs7R0FRRztBQWtDSCxNQUFNLE9BQU8sVUFBVyxTQUFRLGNBQWM7SUFtRjdDLFlBQW9CLFFBQW1CO1FBQ3RDLEtBQUssRUFBRSxDQUFDO1FBRFcsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQTNDdkM7O1dBRUc7UUFDTSxhQUFRLEdBQUcsWUFBWSxVQUFVLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDO1FBQ2pFOztXQUVHO1FBQ00sU0FBSSxHQUFlLFNBQVMsQ0FBQztRQUN0Qzs7V0FFRztRQUNNLFNBQUksR0FBZSxJQUFJLENBQUM7UUFDakM7O1dBRUc7UUFDTSxTQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ3pCOztXQUVHO1FBQ00saUJBQVksR0FBRyxLQUFLLENBQUM7UUFDOUI7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBTTFCOztXQUVHO1FBQ08sVUFBSyxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFDbEMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFDbEMsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFDM0M7O1dBRUc7UUFDTyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFFM0MsY0FBUyxHQUErQixFQUFFLENBQUM7UUFDM0Msa0JBQWEsR0FBOEIsRUFBRSxDQUFDO0lBSXRELENBQUM7SUFwRkQ7O09BRUc7SUFDSCxJQUFhLGFBQWEsQ0FBQyxHQUErQjtRQUN6RCxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELElBQUksYUFBYTtRQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFhLGdCQUFnQixDQUFDLEdBQThCO1FBQzNELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQix3QkFBd0I7WUFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUU7Z0JBQ3ZELElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQy9ELENBQUMsQ0FBQyxDQUFDO1lBQ0gscUJBQXFCO1lBQ3JCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN0RSxDQUFDLENBQUMsQ0FBQztTQUNIO1FBQ0QscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNuQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUM5QixDQUFDO0lBcURELGVBQWU7UUFDZCx1Q0FBdUM7UUFDdkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILGNBQWMsQ0FBQyxLQUFLLEVBQUUsVUFBZ0MsUUFBUTtRQUM3RCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLHVGQUF1RjtRQUN2RixJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUIsT0FBTztTQUNQO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQzs7QUFyRU0sNEJBQWlCLEdBQUcsQ0FBQyxDQUFDO3VHQXBDakIsVUFBVTsyRkFBVixVQUFVLDRmQS9CWjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUE2QlQ7MkZBRVcsVUFBVTtrQkFqQ3RCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGtDQUFrQztvQkFDNUMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTZCVDtpQkFDRDtnR0FLYSxhQUFhO3NCQUF6QixLQUFLO2dCQWFPLGdCQUFnQjtzQkFBNUIsS0FBSztnQkFxQmUsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRO2dCQUtWLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsSUFBSTtzQkFBWixLQUFLO2dCQUlHLElBQUk7c0JBQVosS0FBSztnQkFJRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSUcsWUFBWTtzQkFBcEIsS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBS0ksS0FBSztzQkFBZCxNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU07Z0JBSUcsWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdEFmdGVyVmlld0luaXQsXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0RXZlbnRFbWl0dGVyLFxuXHRJbnB1dCxcblx0T3V0cHV0LFxuXHRSZW5kZXJlcjIsXG5cdFRlbXBsYXRlUmVmLFxuXHRWaWV3Q2hpbGRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEJhc2VJY29uQnV0dG9uIH0gZnJvbSBcIi4vYmFzZS1pY29uLWJ1dHRvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IEJ1dHRvblNpemUsIEJ1dHRvblR5cGUgfSBmcm9tIFwiLi9idXR0b24udHlwZXNcIjtcblxuLyoqXG4gKiBHZXQgc3RhcnRlZCB3aXRoIGltcG9ydGluZyB0aGUgbW9kdWxlOlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuICogYGBgXG4gKlxuICogW1NlZSBkZW1vXSguLi8uLi8/cGF0aD0vc3RvcnkvY29tcG9uZW50cy1idXR0b24taWNvbi1idXR0b24tLWJhc2ljKVxuICovXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwiY2RzLWljb24tYnV0dG9uLCBpYm0taWNvbi1idXR0b25cIixcblx0dGVtcGxhdGU6IGBcblx0PGNkcy10b29sdGlwXG5cdFx0Y2xhc3M9XCJjZHMtLWljb24tdG9vbHRpcFwiXG5cdFx0W2Rlc2NyaXB0aW9uXT1cImRlc2NyaXB0aW9uXCJcblx0XHRbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuXHRcdFtjYXJldF09XCJjYXJldFwiXG5cdFx0W2Ryb3BTaGFkb3ddPVwiZHJvcFNoYWRvd1wiXG5cdFx0W2hpZ2hDb250cmFzdF09XCJoaWdoQ29udHJhc3RcIlxuXHRcdFtpc09wZW5dPVwiaXNPcGVuXCJcblx0XHRbYWxpZ25dPVwiYWxpZ25cIlxuXHRcdFtlbnRlckRlbGF5TXNdPVwiZW50ZXJEZWxheU1zXCJcblx0XHRbbGVhdmVEZWxheU1zXT1cImxlYXZlRGVsYXlNc1wiXG5cdFx0KGNsaWNrKT1cImVtaXRDbGlja0V2ZW50KCRldmVudCwgJ3Rvb2x0aXAnKVwiPlxuXHRcdDxidXR0b25cblx0XHRcdCNidXR0b25cblx0XHRcdFtpZF09XCJidXR0b25JZFwiXG5cdFx0XHRbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuXHRcdFx0W2F0dHIudHlwZV09XCJ0eXBlXCJcblx0XHRcdFtpY29uT25seV09XCJ0cnVlXCJcblx0XHRcdFtuZ0NsYXNzXT1cImJ1dHRvbk5nQ2xhc3NcIlxuXHRcdFx0W2Nkc0J1dHRvbl09XCJraW5kXCJcblx0XHRcdFtzaXplXT1cInNpemVcIlxuXHRcdFx0W2lzRXhwcmVzc2l2ZV09XCJpc0V4cHJlc3NpdmVcIlxuXHRcdFx0KGNsaWNrKT1cImVtaXRDbGlja0V2ZW50KCRldmVudClcIlxuXHRcdFx0KGZvY3VzKT1cImZvY3VzLmVtaXQoJGV2ZW50KVwiXG5cdFx0XHQoYmx1cik9XCJibHVyLmVtaXQoJGV2ZW50KVwiPlxuXHRcdFx0PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXHRcdDwvYnV0dG9uPlxuXHQ8L2Nkcy10b29sdGlwPlxuXHRgXG59KVxuZXhwb3J0IGNsYXNzIEljb25CdXR0b24gZXh0ZW5kcyBCYXNlSWNvbkJ1dHRvbiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXHQvKipcblx0ICogUGFzcyBnbG9iYWwgY2FyYm9uIGNsYXNzZXMgdG8gaWNvbiBidXR0b25cblx0ICovXG5cdEBJbnB1dCgpIHNldCBidXR0b25OZ0NsYXNzKG9iajogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0pIHtcblx0XHR0aGlzLmNsYXNzTGlzdCA9IE9iamVjdC5hc3NpZ24oeyBcImNkcy0tYnRuLS1kaXNhYmxlZFwiOiB0aGlzLmRpc2FibGVkIH0sIG9iaik7XG5cdH1cblxuXHRnZXQgYnV0dG9uTmdDbGFzcygpIHtcblx0XHRyZXR1cm4gdGhpcy5jbGFzc0xpc3Q7XG5cdH1cblxuXHQvKipcblx0ICogQHBhcmFtIG9iajogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdcblx0ICogVXNlciBjYW4gcGFzcyBhZGRpdGlvbmFsIGJ1dHRvbiBhdHRyaWJ1dGVzIGlmIGNvbXBvbmVudCBwcm9wZXJ0eSBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0XG5cdCAqIEtleSBpcyB0aGUgYXR0cmlidXRlIG5hbWUgJiB2YWx1ZSBpcyB0aGUgYXR0cmlidXRlIHZhbHVlIGZvciB0aGUgYnV0dG9uXG5cdCAqL1xuXHRASW5wdXQoKSBzZXQgYnV0dG9uQXR0cmlidXRlcyhvYmo6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pIHtcblx0XHRpZiAodGhpcy5idXR0b24pIHtcblx0XHRcdC8vIFJlbW92ZSBvbGQgYXR0cmlidXRlc1xuXHRcdFx0T2JqZWN0LmtleXModGhpcy5hdHRyaWJ1dGVMaXN0KS5mb3JFYWNoKChrZXk6IHN0cmluZykgPT4ge1xuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmJ1dHRvbi5uYXRpdmVFbGVtZW50LCBrZXkpO1xuXHRcdFx0fSk7XG5cdFx0XHQvLyBTZXQgbmV3IGF0dHJpYnV0ZXNcblx0XHRcdE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+IHtcblx0XHRcdFx0dGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5idXR0b24ubmF0aXZlRWxlbWVudCwga2V5LCBvYmpba2V5XSk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0Ly8gU2V0IG5ldyBhdHRyaWJ1dGVzXG5cdFx0dGhpcy5hdHRyaWJ1dGVMaXN0ID0gb2JqO1xuXHR9XG5cblx0Z2V0IGJ1dHRvbkF0dHJpYnV0ZXMoKSB7XG5cdFx0cmV0dXJuIHRoaXMuYnV0dG9uQXR0cmlidXRlcztcblx0fVxuXG5cdHN0YXRpYyBpY29uQnV0dG9uQ291bnRlciA9IDA7XG5cblx0QFZpZXdDaGlsZChcImJ1dHRvblwiKSBidXR0b246IEVsZW1lbnRSZWY7XG5cblx0LyoqXG5cdCAqIE92ZXJyaWRlIGlkXG5cdCAqL1xuXHRASW5wdXQoKSBidXR0b25JZCA9IGBpY29uLWJ0bi0ke0ljb25CdXR0b24uaWNvbkJ1dHRvbkNvdW50ZXIrK31gO1xuXHQvKipcblx0ICogU2V0cyB0aGUgYnV0dG9uIHR5cGUuXG5cdCAqL1xuXHRASW5wdXQoKSBraW5kOiBCdXR0b25UeXBlID0gXCJwcmltYXJ5XCI7XG5cdC8qKlxuXHQgKiBTcGVjaWZ5IHRoZSBzaXplIG9mIHRoZSBidXR0b24uXG5cdCAqL1xuXHRASW5wdXQoKSBzaXplOiBCdXR0b25TaXplID0gXCJsZ1wiO1xuXHQvKipcblx0ICogU2V0IGJ1dHRvbiB0eXBlLCBgYnV0dG9uYCBieSBkZWZhdWx0XG5cdCAqL1xuXHRASW5wdXQoKSB0eXBlID0gXCJidXR0b25cIjtcblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgdG8gbWFrZSBidXR0b24gZXhwcmVzc2l2ZVxuXHQgKi9cblx0QElucHV0KCkgaXNFeHByZXNzaXZlID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIHRvIGRpc2FibGUgYnV0dG9uXG5cdCAqL1xuXHRASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuXHQvKipcblx0ICogVGhlIHN0cmluZyBvciB0ZW1wbGF0ZSBjb250ZW50IHRvIGJlIGV4cG9zZWQgYnkgdGhlIHRvb2x0aXAuXG5cdCAqL1xuXHRASW5wdXQoKSBkZXNjcmlwdGlvbjogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcblxuXHQvKipcblx0ICogQ29tbW9uIGJ1dHRvbiBldmVudHNcblx0ICovXG5cdEBPdXRwdXQoKSBjbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cdEBPdXRwdXQoKSBmb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cdEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblx0LyoqXG5cdCAqIEV2ZW50IHRvIGVtaXQgd2hlbiBjbGljayBldmVudCBpcyBmaXJlZCBmcm9tIHRvb2x0aXBcblx0ICovXG5cdEBPdXRwdXQoKSB0b29sdGlwQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG5cdHByaXZhdGUgY2xhc3NMaXN0OiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuXHRwcml2YXRlIGF0dHJpYnV0ZUxpc3Q6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcblx0XHRzdXBlcigpO1xuXHR9XG5cblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuXHRcdC8vIFNldCBhdHRyaWJ1dGVzIG9uY2UgZWxlbWVudCBpcyBmb3VuZFxuXHRcdHRoaXMuYnV0dG9uQXR0cmlidXRlcyA9IHRoaXMuYXR0cmlidXRlTGlzdDtcblx0fVxuXG5cdC8qKlxuXHQgKiBTdG9wIHByb3BvZ2F0aW9uIG9mIGNsaWNrIGV2ZW50XG5cdCAqIEVsc2UgZG91YmxlIGZpcmVzIChjbGljaykgZXZlbnRcblx0ICovXG5cdGVtaXRDbGlja0V2ZW50KGV2ZW50LCBlbGVtZW50OiBcInRvb2x0aXBcIiB8IFwiYnV0dG9uXCIgPSBcImJ1dHRvblwiKSB7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHQvLyBQcmV2ZW50cyAoY2xpY2spIGV2ZW50IGZyb20gYnViYmxpbmcgc2luY2UgaXQgd291bGQgYXBwZWFyIHVzZXIgY2xpY2tlZCB0aGUgYGJ1dHRvbmBcblx0XHRpZiAoZWxlbWVudCA9PT0gXCJ0b29sdGlwXCIpIHtcblx0XHRcdHRoaXMudG9vbHRpcENsaWNrLmVtaXQoZXZlbnQpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLmNsaWNrLmVtaXQoZXZlbnQpO1xuXHR9XG59XG4iXX0=
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2J1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVOLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFHTixTQUFTLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7OztBQUc5RDs7Ozs7Ozs7R0FRRztBQW1DSCxNQUFNLE9BQU8sVUFBVyxTQUFRLGNBQWM7SUFtRjdDLFlBQW9CLFFBQW1CO1FBQ3RDLEtBQUssRUFBRSxDQUFDO1FBRFcsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQTNDdkM7O1dBRUc7UUFDTSxhQUFRLEdBQUcsWUFBWSxVQUFVLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDO1FBQ2pFOztXQUVHO1FBQ00sU0FBSSxHQUFlLFNBQVMsQ0FBQztRQUN0Qzs7V0FFRztRQUNNLFNBQUksR0FBZSxJQUFJLENBQUM7UUFDakM7O1dBRUc7UUFDTSxTQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ3pCOztXQUVHO1FBQ00saUJBQVksR0FBRyxLQUFLLENBQUM7UUFDOUI7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBTTFCOztXQUVHO1FBQ08sVUFBSyxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFDbEMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFDbEMsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFDM0M7O1dBRUc7UUFDTyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFFM0MsY0FBUyxHQUErQixFQUFFLENBQUM7UUFDM0Msa0JBQWEsR0FBOEIsRUFBRSxDQUFDO0lBSXRELENBQUM7SUFwRkQ7O09BRUc7SUFDSCxJQUFhLGFBQWEsQ0FBQyxHQUErQjtRQUN6RCxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELElBQUksYUFBYTtRQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFhLGdCQUFnQixDQUFDLEdBQThCO1FBQzNELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQix3QkFBd0I7WUFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUU7Z0JBQ3ZELElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQy9ELENBQUMsQ0FBQyxDQUFDO1lBQ0gscUJBQXFCO1lBQ3JCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN0RSxDQUFDLENBQUMsQ0FBQztTQUNIO1FBQ0QscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNuQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUM5QixDQUFDO0lBcURELGVBQWU7UUFDZCx1Q0FBdUM7UUFDdkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILGNBQWMsQ0FBQyxLQUFLLEVBQUUsVUFBZ0MsUUFBUTtRQUM3RCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLHVGQUF1RjtRQUN2RixJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUIsT0FBTztTQUNQO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQzs7QUFyRU0sNEJBQWlCLEdBQUcsQ0FBQyxDQUFDO3VHQXBDakIsVUFBVTsyRkFBVixVQUFVLDRmQWhDWjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBOEJUOzJGQUVXLFVBQVU7a0JBbEN0QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxrQ0FBa0M7b0JBQzVDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBOEJUO2lCQUNEO2dHQUthLGFBQWE7c0JBQXpCLEtBQUs7Z0JBYU8sZ0JBQWdCO3NCQUE1QixLQUFLO2dCQXFCZSxNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBS1YsUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSUcsSUFBSTtzQkFBWixLQUFLO2dCQUlHLElBQUk7c0JBQVosS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsV0FBVztzQkFBbkIsS0FBSztnQkFLSSxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFJRyxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0QWZ0ZXJWaWV3SW5pdCxcblx0Q29tcG9uZW50LFxuXHRFbGVtZW50UmVmLFxuXHRFdmVudEVtaXR0ZXIsXG5cdElucHV0LFxuXHRPdXRwdXQsXG5cdFJlbmRlcmVyMixcblx0VGVtcGxhdGVSZWYsXG5cdFZpZXdDaGlsZFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQmFzZUljb25CdXR0b24gfSBmcm9tIFwiLi9iYXNlLWljb24tYnV0dG9uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQnV0dG9uU2l6ZSwgQnV0dG9uVHlwZSB9IGZyb20gXCIuL2J1dHRvbi50eXBlc1wiO1xuXG4vKipcbiAqIEdldCBzdGFydGVkIHdpdGggaW1wb3J0aW5nIHRoZSBtb2R1bGU6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG4gKiBgYGBcbiAqXG4gKiBbU2VlIGRlbW9dKC4uLy4uLz9wYXRoPS9zdG9yeS9jb21wb25lbnRzLWJ1dHRvbi1pY29uLWJ1dHRvbi0tYmFzaWMpXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJjZHMtaWNvbi1idXR0b24sIGlibS1pY29uLWJ1dHRvblwiLFxuXHR0ZW1wbGF0ZTogYFxuXHQ8Y2RzLXRvb2x0aXBcblx0XHRjbGFzcz1cImNkcy0taWNvbi10b29sdGlwXCJcblx0XHRbZGVzY3JpcHRpb25dPVwiZGVzY3JpcHRpb25cIlxuXHRcdFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG5cdFx0W2NhcmV0XT1cImNhcmV0XCJcblx0XHRbZHJvcFNoYWRvd109XCJkcm9wU2hhZG93XCJcblx0XHRbaGlnaENvbnRyYXN0XT1cImhpZ2hDb250cmFzdFwiXG5cdFx0W2lzT3Blbl09XCJpc09wZW5cIlxuXHRcdFthbGlnbl09XCJhbGlnblwiXG5cdFx0W2F1dG9BbGlnbl09XCJhdXRvQWxpZ25cIlxuXHRcdFtlbnRlckRlbGF5TXNdPVwiZW50ZXJEZWxheU1zXCJcblx0XHRbbGVhdmVEZWxheU1zXT1cImxlYXZlRGVsYXlNc1wiXG5cdFx0KGNsaWNrKT1cImVtaXRDbGlja0V2ZW50KCRldmVudCwgJ3Rvb2x0aXAnKVwiPlxuXHRcdDxidXR0b25cblx0XHRcdCNidXR0b25cblx0XHRcdFtpZF09XCJidXR0b25JZFwiXG5cdFx0XHRbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuXHRcdFx0W2F0dHIudHlwZV09XCJ0eXBlXCJcblx0XHRcdFtpY29uT25seV09XCJ0cnVlXCJcblx0XHRcdFtuZ0NsYXNzXT1cImJ1dHRvbk5nQ2xhc3NcIlxuXHRcdFx0W2Nkc0J1dHRvbl09XCJraW5kXCJcblx0XHRcdFtzaXplXT1cInNpemVcIlxuXHRcdFx0W2lzRXhwcmVzc2l2ZV09XCJpc0V4cHJlc3NpdmVcIlxuXHRcdFx0KGNsaWNrKT1cImVtaXRDbGlja0V2ZW50KCRldmVudClcIlxuXHRcdFx0KGZvY3VzKT1cImZvY3VzLmVtaXQoJGV2ZW50KVwiXG5cdFx0XHQoYmx1cik9XCJibHVyLmVtaXQoJGV2ZW50KVwiPlxuXHRcdFx0PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXHRcdDwvYnV0dG9uPlxuXHQ8L2Nkcy10b29sdGlwPlxuXHRgXG59KVxuZXhwb3J0IGNsYXNzIEljb25CdXR0b24gZXh0ZW5kcyBCYXNlSWNvbkJ1dHRvbiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXHQvKipcblx0ICogUGFzcyBnbG9iYWwgY2FyYm9uIGNsYXNzZXMgdG8gaWNvbiBidXR0b25cblx0ICovXG5cdEBJbnB1dCgpIHNldCBidXR0b25OZ0NsYXNzKG9iajogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0pIHtcblx0XHR0aGlzLmNsYXNzTGlzdCA9IE9iamVjdC5hc3NpZ24oeyBcImNkcy0tYnRuLS1kaXNhYmxlZFwiOiB0aGlzLmRpc2FibGVkIH0sIG9iaik7XG5cdH1cblxuXHRnZXQgYnV0dG9uTmdDbGFzcygpIHtcblx0XHRyZXR1cm4gdGhpcy5jbGFzc0xpc3Q7XG5cdH1cblxuXHQvKipcblx0ICogQHBhcmFtIG9iajogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdcblx0ICogVXNlciBjYW4gcGFzcyBhZGRpdGlvbmFsIGJ1dHRvbiBhdHRyaWJ1dGVzIGlmIGNvbXBvbmVudCBwcm9wZXJ0eSBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0XG5cdCAqIEtleSBpcyB0aGUgYXR0cmlidXRlIG5hbWUgJiB2YWx1ZSBpcyB0aGUgYXR0cmlidXRlIHZhbHVlIGZvciB0aGUgYnV0dG9uXG5cdCAqL1xuXHRASW5wdXQoKSBzZXQgYnV0dG9uQXR0cmlidXRlcyhvYmo6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pIHtcblx0XHRpZiAodGhpcy5idXR0b24pIHtcblx0XHRcdC8vIFJlbW92ZSBvbGQgYXR0cmlidXRlc1xuXHRcdFx0T2JqZWN0LmtleXModGhpcy5hdHRyaWJ1dGVMaXN0KS5mb3JFYWNoKChrZXk6IHN0cmluZykgPT4ge1xuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmJ1dHRvbi5uYXRpdmVFbGVtZW50LCBrZXkpO1xuXHRcdFx0fSk7XG5cdFx0XHQvLyBTZXQgbmV3IGF0dHJpYnV0ZXNcblx0XHRcdE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+IHtcblx0XHRcdFx0dGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5idXR0b24ubmF0aXZlRWxlbWVudCwga2V5LCBvYmpba2V5XSk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0Ly8gU2V0IG5ldyBhdHRyaWJ1dGVzXG5cdFx0dGhpcy5hdHRyaWJ1dGVMaXN0ID0gb2JqO1xuXHR9XG5cblx0Z2V0IGJ1dHRvbkF0dHJpYnV0ZXMoKSB7XG5cdFx0cmV0dXJuIHRoaXMuYnV0dG9uQXR0cmlidXRlcztcblx0fVxuXG5cdHN0YXRpYyBpY29uQnV0dG9uQ291bnRlciA9IDA7XG5cblx0QFZpZXdDaGlsZChcImJ1dHRvblwiKSBidXR0b246IEVsZW1lbnRSZWY7XG5cblx0LyoqXG5cdCAqIE92ZXJyaWRlIGlkXG5cdCAqL1xuXHRASW5wdXQoKSBidXR0b25JZCA9IGBpY29uLWJ0bi0ke0ljb25CdXR0b24uaWNvbkJ1dHRvbkNvdW50ZXIrK31gO1xuXHQvKipcblx0ICogU2V0cyB0aGUgYnV0dG9uIHR5cGUuXG5cdCAqL1xuXHRASW5wdXQoKSBraW5kOiBCdXR0b25UeXBlID0gXCJwcmltYXJ5XCI7XG5cdC8qKlxuXHQgKiBTcGVjaWZ5IHRoZSBzaXplIG9mIHRoZSBidXR0b24uXG5cdCAqL1xuXHRASW5wdXQoKSBzaXplOiBCdXR0b25TaXplID0gXCJsZ1wiO1xuXHQvKipcblx0ICogU2V0IGJ1dHRvbiB0eXBlLCBgYnV0dG9uYCBieSBkZWZhdWx0XG5cdCAqL1xuXHRASW5wdXQoKSB0eXBlID0gXCJidXR0b25cIjtcblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgdG8gbWFrZSBidXR0b24gZXhwcmVzc2l2ZVxuXHQgKi9cblx0QElucHV0KCkgaXNFeHByZXNzaXZlID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIHRvIGRpc2FibGUgYnV0dG9uXG5cdCAqL1xuXHRASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuXHQvKipcblx0ICogVGhlIHN0cmluZyBvciB0ZW1wbGF0ZSBjb250ZW50IHRvIGJlIGV4cG9zZWQgYnkgdGhlIHRvb2x0aXAuXG5cdCAqL1xuXHRASW5wdXQoKSBkZXNjcmlwdGlvbjogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcblxuXHQvKipcblx0ICogQ29tbW9uIGJ1dHRvbiBldmVudHNcblx0ICovXG5cdEBPdXRwdXQoKSBjbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cdEBPdXRwdXQoKSBmb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cdEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblx0LyoqXG5cdCAqIEV2ZW50IHRvIGVtaXQgd2hlbiBjbGljayBldmVudCBpcyBmaXJlZCBmcm9tIHRvb2x0aXBcblx0ICovXG5cdEBPdXRwdXQoKSB0b29sdGlwQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG5cdHByaXZhdGUgY2xhc3NMaXN0OiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuXHRwcml2YXRlIGF0dHJpYnV0ZUxpc3Q6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcblx0XHRzdXBlcigpO1xuXHR9XG5cblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuXHRcdC8vIFNldCBhdHRyaWJ1dGVzIG9uY2UgZWxlbWVudCBpcyBmb3VuZFxuXHRcdHRoaXMuYnV0dG9uQXR0cmlidXRlcyA9IHRoaXMuYXR0cmlidXRlTGlzdDtcblx0fVxuXG5cdC8qKlxuXHQgKiBTdG9wIHByb3BvZ2F0aW9uIG9mIGNsaWNrIGV2ZW50XG5cdCAqIEVsc2UgZG91YmxlIGZpcmVzIChjbGljaykgZXZlbnRcblx0ICovXG5cdGVtaXRDbGlja0V2ZW50KGV2ZW50LCBlbGVtZW50OiBcInRvb2x0aXBcIiB8IFwiYnV0dG9uXCIgPSBcImJ1dHRvblwiKSB7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHQvLyBQcmV2ZW50cyAoY2xpY2spIGV2ZW50IGZyb20gYnViYmxpbmcgc2luY2UgaXQgd291bGQgYXBwZWFyIHVzZXIgY2xpY2tlZCB0aGUgYGJ1dHRvbmBcblx0XHRpZiAoZWxlbWVudCA9PT0gXCJ0b29sdGlwXCIpIHtcblx0XHRcdHRoaXMudG9vbHRpcENsaWNrLmVtaXQoZXZlbnQpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLmNsaWNrLmVtaXQoZXZlbnQpO1xuXHR9XG59XG4iXX0=
@@ -236,7 +236,7 @@ export class DropdownList {
236
236
  return elemList[i].nativeElement;
237
237
  }
238
238
  }
239
- return elemList[this.index].nativeElement;
239
+ return elemList[this.index]?.nativeElement;
240
240
  }
241
241
  /**
242
242
  * Returns the `ListItem` that precedes the selected item within `DropdownList`.
@@ -362,6 +362,7 @@ export class DropdownList {
362
362
  updateIndex() {
363
363
  // initialize index on the first selected item or
364
364
  // on the next non disabled item if no items are selected
365
+ // in case, if all items are disabled, the index value will remain same
365
366
  const selected = this.getSelected();
366
367
  if (selected.length) {
367
368
  this.index = this.displayItems.indexOf(selected[0]);
@@ -386,7 +387,7 @@ export class DropdownList {
386
387
  event.preventDefault();
387
388
  if (event.key === "ArrowDown") {
388
389
  if (this.hasNextElement()) {
389
- this.getNextElement().scrollIntoView({ block: "end" });
390
+ this.getNextElement()?.scrollIntoView({ block: "end" });
390
391
  }
391
392
  else {
392
393
  this.blurIntent.emit("bottom");
@@ -625,4 +626,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
625
626
  type: ViewChildren,
626
627
  args: ["listItem"]
627
628
  }] } });
628
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZHJvcGRvd24vbGlzdC9kcm9wZG93bi1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBRU4sWUFBWSxFQUdaLFNBQVMsRUFFVCxZQUFZLEVBR1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQWdCLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7OztBQUlsRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBcUVILE1BQU0sT0FBTyxZQUFZO0lBMEd4Qjs7T0FFRztJQUNILFlBQW1CLFVBQXNCLEVBQVksSUFBVSxFQUFZLE1BQXNCO1FBQTlFLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBWSxTQUFJLEdBQUosSUFBSSxDQUFNO1FBQVksV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUEzR3hGLGNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUEwQnpEOztXQUVHO1FBQ00sWUFBTyxHQUE4QixJQUFJLENBQUM7UUFDbkQ7O1dBRUc7UUFDTyxXQUFNLEdBQXNFLElBQUksWUFBWSxFQUFFLENBQUM7UUFDekc7O1dBRUc7UUFDTyxXQUFNLEdBQW9DLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkU7Ozs7Ozs7O1dBUUc7UUFDTyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFLNUQ7OztXQUdHO1FBQ00sU0FBSSxHQUF1QixRQUFRLENBQUM7UUFFN0M7O1dBRUc7UUFDTSxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBRTNCOztXQUVHO1FBQ0ksU0FBSSxHQUF1QixJQUFJLENBQUM7UUFDaEMsV0FBTSxHQUFHLFdBQVcsWUFBWSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7UUFDL0Msb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDOUI7Ozs7V0FJRztRQUNJLGlCQUFZLEdBQW9CLEVBQUUsQ0FBQztRQUMxQzs7V0FFRztRQUNPLFVBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztRQWlCckI7O1dBRUc7UUFDTyxXQUFNLEdBQW9CLEVBQUUsQ0FBQztJQVM2RCxDQUFDO0lBMUdyRzs7T0FFRztJQUNILElBQWEsS0FBSyxDQUFDLEtBQW9EO1FBQ3RFLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUM1QixJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDdEM7WUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksVUFBVSxDQUFVLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ3ZELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUM3QyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNuQixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNwQixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3JCLENBQUMsQ0FBQyxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hCO2FBQU07WUFDTixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksS0FBSztRQUNSLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM1QixDQUFDO0lBb0ZEOzs7T0FHRztJQUNILGVBQWU7UUFDZCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNmLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1YsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDN0I7UUFDRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUM1QixJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEM7SUFDRixDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQVEsR0FBRyxJQUFJO1FBQzNCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDeEY7YUFBTTtZQUNOLCtFQUErRTtZQUMvRSxnQ0FBZ0M7WUFDaEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUMxQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzNCO0lBQ0YsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhO1FBQ3RCLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLEtBQUssRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVUsQ0FBQyxLQUFLO1FBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRLENBQUMsS0FBSyxHQUFHLEVBQUU7UUFDbEIsSUFBSSxLQUFLLEVBQUU7WUFDVixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2pILGtDQUFrQztZQUNsQyxzREFBc0Q7WUFDdEQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQzthQUNmO1NBQ0Q7YUFBTTtZQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3hDO1FBRUQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxvQkFBb0I7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFDM0IsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDN0I7UUFDRCxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDO2FBQzlELFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNmLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNWLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2I7UUFDRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWM7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUMvQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWM7UUFDYixtREFBbUQ7UUFDbkQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzVFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDO1NBQ1o7UUFFRDs7OztXQUlHO1FBQ0gsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0RCw2Q0FBNkM7WUFDN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO2dCQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFDZixPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7YUFDakM7U0FDRDtRQUVELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNWLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDbkIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2I7UUFDRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWM7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWM7UUFDYixtREFBbUQ7UUFDbkQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzVFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDO1NBQ1o7UUFFRDs7OztXQUlHO1FBQ0gsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzNELDZDQUE2QztZQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUNmLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQzthQUNqQztTQUNEO1FBRUQsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjO1FBQ2IsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRTtZQUNuQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDNUI7UUFDRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNILGlCQUFpQjtRQUNoQixJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFO1lBQ25CLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO1NBQ2hEO1FBQ0QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDakUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWTtRQUNYLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNwQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1YsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzFCLE9BQU8sRUFBRSxDQUFDO1NBQ1Y7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNqQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUIsQ0FBQyxLQUFzQjtRQUN2Qyw0REFBNEQ7UUFDNUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxzREFBc0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDckg7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRTtZQUN0Qiw0RkFBNEY7WUFDNUYsS0FBSyxJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUU7Z0JBQ3hDLGdCQUFnQjtnQkFDaEIsSUFBSSxXQUFXLEdBQXNCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNoRSx5REFBeUQ7Z0JBQ3pELE9BQU8sV0FBVyxDQUFDLFFBQVEsQ0FBQztnQkFDNUIsd0JBQXdCO2dCQUN4QixXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDMUMsS0FBSyxJQUFJLE9BQU8sSUFBSSxLQUFLLEVBQUU7b0JBQzFCLGdCQUFnQjtvQkFDaEIsSUFBSSxXQUFXLEdBQXNCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO29CQUNoRSx5REFBeUQ7b0JBQ3pELE9BQU8sV0FBVyxDQUFDLFFBQVEsQ0FBQztvQkFDNUIsd0JBQXdCO29CQUN4QixXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDMUMsaUJBQWlCO29CQUNqQixJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUU7d0JBQ3RDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQzt3QkFDcEMsc0RBQXNEO3dCQUN0RCxNQUFNO3FCQUNOO3lCQUFNO3dCQUNOLE9BQU8sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO3FCQUN6QjtpQkFDRDthQUNEO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTO1FBQ1IsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRTtZQUNuQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDbkI7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1YsaURBQWlEO1FBQ2pELHlEQUF5RDtRQUN6RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDcEQ7YUFBTSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdEI7SUFDRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZLENBQUMsS0FBb0I7UUFDaEMsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLEdBQUcsRUFBRTtZQUMvQyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsS0FBSyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQy9FLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUN2QjtZQUNELElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxPQUFPLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO2FBQzNDO1NBQ0Q7YUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssV0FBVyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssU0FBUyxFQUFFO1lBQ2hFLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssV0FBVyxFQUFFO2dCQUM5QixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRTtvQkFDMUIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2lCQUN2RDtxQkFBTTtvQkFDTixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDL0I7YUFDRDtpQkFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssU0FBUyxFQUFFO2dCQUNuQyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRTtvQkFDMUIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFHLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO2lCQUM1RDtxQkFBTTtvQkFDTixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDNUI7YUFDRDtZQUNELFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuRCxDQUFDLENBQUMsQ0FBQztTQUNIO0lBQ0YsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQ2xCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBQ3JCLHNCQUFzQjtnQkFDdEIsS0FBSyxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUU7b0JBQzFDLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTt3QkFBRSxTQUFTLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztxQkFBRTtpQkFDdkQ7YUFDRDtpQkFBTTtnQkFDTixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUMvQjtZQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDbkI7SUFDRixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQUs7UUFDaEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDcEUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsdUNBQXVDLENBQUMsQ0FBQztRQUMvRCxPQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQUs7UUFDZixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUNwRSxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVSxDQUFDLEtBQUs7UUFDZixNQUFNLEtBQUssR0FBWSxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsS0FBSyxDQUFDLENBQUM7UUFDeEQsTUFBTSxRQUFRLEdBQVksS0FBSyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7UUFDdkgsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZLENBQUMsV0FBdUI7UUFDbkMsd0VBQXdFO1FBQ3hFLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELGVBQWUsQ0FBQyxTQUFTLEdBQUcsSUFBSTtRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNuRyxJQUFJLFNBQVMsRUFBRTtZQUNkLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25ELENBQUMsQ0FBQyxDQUFDO1NBQ0g7SUFDRixDQUFDOztBQTNkTSxzQkFBUyxHQUFHLENBQUMsQ0FBQzt5R0FEVCxZQUFZOzZGQUFaLFlBQVksMFBBUGI7UUFDVjtZQUNDLE9BQU8sRUFBRSxvQkFBb0I7WUFDN0IsV0FBVyxFQUFFLFlBQVk7U0FDekI7S0FDRCx1TkFoRVM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7UUEwREg7MkZBUUssWUFBWTtrQkFwRXhCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHNDQUFzQztvQkFDaEQsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1FBMERIO29CQUNQLFNBQVMsRUFBRTt3QkFDVjs0QkFDQyxPQUFPLEVBQUUsb0JBQW9COzRCQUM3QixXQUFXLGNBQWM7eUJBQ3pCO3FCQUNEO2lCQUNEO2lKQUdTLFNBQVM7c0JBQWpCLEtBQUs7Z0JBSU8sS0FBSztzQkFBakIsS0FBSztnQkF5QkcsT0FBTztzQkFBZixLQUFLO2dCQUlJLE1BQU07c0JBQWYsTUFBTTtnQkFJRyxNQUFNO3NCQUFmLE1BQU07Z0JBVUcsVUFBVTtzQkFBbkIsTUFBTTtnQkFJOEIsSUFBSTtzQkFBeEMsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUsxQixJQUFJO3NCQUFaLEtBQUs7Z0JBS0csVUFBVTtzQkFBbEIsS0FBSztnQkFxQjhCLGVBQWU7c0JBQWxELFlBQVk7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENvbXBvbmVudCxcblx0SW5wdXQsXG5cdE91dHB1dCxcblx0T25EZXN0cm95LFxuXHRFdmVudEVtaXR0ZXIsXG5cdFRlbXBsYXRlUmVmLFxuXHRBZnRlclZpZXdJbml0LFxuXHRWaWV3Q2hpbGQsXG5cdEVsZW1lbnRSZWYsXG5cdFZpZXdDaGlsZHJlbixcblx0UXVlcnlMaXN0LFxuXHRBcHBsaWNhdGlvblJlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgaXNPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIG9mIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5cbmltcG9ydCB7IEkxOG4gfSBmcm9tIFwiY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhci9pMThuXCI7XG5pbXBvcnQgeyBBYnN0cmFjdERyb3Bkb3duVmlldyB9IGZyb20gXCIuLi9hYnN0cmFjdC1kcm9wZG93bi12aWV3LmNsYXNzXCI7XG5pbXBvcnQgeyBMaXN0SXRlbSB9IGZyb20gXCIuLi9saXN0LWl0ZW0uaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyB3YXRjaEZvY3VzSnVtcCB9IGZyb20gXCIuLi9kcm9wZG93bnRvb2xzXCI7XG5pbXBvcnQgeyBTY3JvbGxDdXN0b21FdmVudCB9IGZyb20gXCIuL3Njcm9sbC1jdXN0b20tZXZlbnQuaW50ZXJmYWNlXCI7XG5cblxuLyoqXG4gKiBgYGBodG1sXG4gKiA8Y2RzLWRyb3Bkb3duLWxpc3QgW2l0ZW1zXT1cImxpc3RJdGVtc1wiPjwvY2RzLWRyb3Bkb3duLWxpc3Q+XG4gKiBgYGBcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGxpc3RJdGVtcyA9IFtcbiAqIFx0e1xuICogXHRcdGNvbnRlbnQ6IFwiaXRlbSBvbmVcIixcbiAqIFx0XHRzZWxlY3RlZDogZmFsc2VcbiAqIFx0fSxcbiAqIFx0e1xuICogXHRcdGNvbnRlbnQ6IFwiaXRlbSB0d29cIixcbiAqIFx0XHRzZWxlY3RlZDogZmFsc2UsXG4gKiBcdH0sXG4gKiBcdHtcbiAqIFx0XHRjb250ZW50OiBcIml0ZW0gdGhyZWVcIixcbiAqIFx0XHRzZWxlY3RlZDogZmFsc2VcbiAqIFx0fSxcbiAqIFx0e1xuICogXHRcdGNvbnRlbnQ6IFwiaXRlbSBmb3VyXCIsXG4gKiBcdFx0c2VsZWN0ZWQ6IGZhbHNlXG4gKiBcdH1cbiAqIF07XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcImNkcy1kcm9wZG93bi1saXN0LCBpYm0tZHJvcGRvd24tbGlzdFwiLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDx1bFxuXHRcdFx0I2xpc3Rcblx0XHRcdFtpZF09XCJsaXN0SWRcIlxuXHRcdFx0cm9sZT1cImxpc3Rib3hcIlxuXHRcdFx0Y2xhc3M9XCJjZHMtLWxpc3QtYm94X19tZW51IGNkcy0tbXVsdGktc2VsZWN0XCJcblx0XHRcdChzY3JvbGwpPVwiZW1pdFNjcm9sbCgkZXZlbnQpXCJcblx0XHRcdChrZXlkb3duKT1cIm5hdmlnYXRlTGlzdCgkZXZlbnQpXCJcblx0XHRcdHRhYmluZGV4PVwiLTFcIlxuXHRcdFx0W2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuXHRcdFx0W2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XT1cImhpZ2hsaWdodGVkSXRlbVwiPlxuXHRcdFx0PGxpXG5cdFx0XHRcdHJvbGU9XCJvcHRpb25cIlxuXHRcdFx0XHQqbmdGb3I9XCJsZXQgaXRlbSBvZiBkaXNwbGF5SXRlbXM7IGxldCBpID0gaW5kZXhcIlxuXHRcdFx0XHQoY2xpY2spPVwiZG9DbGljaygkZXZlbnQsIGl0ZW0pXCJcblx0XHRcdFx0Y2xhc3M9XCJjZHMtLWxpc3QtYm94X19tZW51LWl0ZW1cIlxuXHRcdFx0XHRbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIml0ZW0uc2VsZWN0ZWRcIlxuXHRcdFx0XHRbaWRdPVwiZ2V0SXRlbUlkKGkpXCJcblx0XHRcdFx0W2F0dHIudGl0bGVdPVwiIHNob3dUaXRsZXMgPyBpdGVtLmNvbnRlbnQgOiBudWxsXCJcblx0XHRcdFx0W2F0dHIuZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZCA/IHRydWUgOiBudWxsXCJcblx0XHRcdFx0W25nQ2xhc3NdPVwie1xuXHRcdFx0XHRcdCdjZHMtLWxpc3QtYm94X19tZW51LWl0ZW0tLWFjdGl2ZSc6IGl0ZW0uc2VsZWN0ZWQsXG5cdFx0XHRcdFx0J2Nkcy0tbGlzdC1ib3hfX21lbnUtaXRlbS0taGlnaGxpZ2h0ZWQnOiBoaWdobGlnaHRlZEl0ZW0gPT09IGdldEl0ZW1JZChpKVxuXHRcdFx0XHR9XCI+XG5cdFx0XHRcdDxkaXZcblx0XHRcdFx0XHQjbGlzdEl0ZW1cblx0XHRcdFx0XHR0YWJpbmRleD1cIi0xXCJcblx0XHRcdFx0XHRjbGFzcz1cImNkcy0tbGlzdC1ib3hfX21lbnUtaXRlbV9fb3B0aW9uXCI+XG5cdFx0XHRcdFx0PGRpdlxuXHRcdFx0XHRcdFx0Km5nSWY9XCIhbGlzdFRwbCAmJiB0eXBlID09PSAnbXVsdGknXCJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1mb3JtLWl0ZW0gY2RzLS1jaGVja2JveC13cmFwcGVyXCI+XG5cdFx0XHRcdFx0XHQ8bGFiZWxcblx0XHRcdFx0XHRcdFx0W2F0dHIuZGF0YS1jb250YWluZWQtY2hlY2tib3gtc3RhdGVdPVwiaXRlbS5zZWxlY3RlZFwiXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1jaGVja2JveC1sYWJlbFwiPlxuXHRcdFx0XHRcdFx0XHQ8aW5wdXRcblx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tY2hlY2tib3hcIlxuXHRcdFx0XHRcdFx0XHRcdHR5cGU9XCJjaGVja2JveFwiXG5cdFx0XHRcdFx0XHRcdFx0W2NoZWNrZWRdPVwiaXRlbS5zZWxlY3RlZFwiXG5cdFx0XHRcdFx0XHRcdFx0W2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuXHRcdFx0XHRcdFx0XHRcdHRhYmluZGV4PVwiLTFcIj5cblx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJjZHMtLWNoZWNrYm94LWFwcGVhcmFuY2VcIj48L3NwYW4+XG5cdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiY2RzLS1jaGVja2JveC1sYWJlbC10ZXh0XCI+e3tpdGVtLmNvbnRlbnR9fTwvc3Bhbj5cblx0XHRcdFx0XHRcdDwvbGFiZWw+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsaXN0VHBsICYmIHR5cGUgPT09ICdzaW5nbGUnXCI+e3tpdGVtLmNvbnRlbnR9fTwvbmctY29udGFpbmVyPlxuXHRcdFx0XHRcdDxzdmdcblx0XHRcdFx0XHRcdCpuZ0lmPVwiIWxpc3RUcGwgJiYgdHlwZSA9PT0gJ3NpbmdsZSdcIlxuXHRcdFx0XHRcdFx0Y2RzSWNvbj1cImNoZWNrbWFya1wiXG5cdFx0XHRcdFx0XHRzaXplPVwiMTZcIlxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLWxpc3QtYm94X19tZW51LWl0ZW1fX3NlbGVjdGVkLWljb25cIj5cblx0XHRcdFx0XHQ8L3N2Zz5cblx0XHRcdFx0XHQ8bmctdGVtcGxhdGVcblx0XHRcdFx0XHRcdCpuZ0lmPVwibGlzdFRwbFwiXG5cdFx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2l0ZW06IGl0ZW19XCJcblx0XHRcdFx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxpc3RUcGxcIj5cblx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvbGk+XG5cdFx0PC91bD5gLFxuXHRwcm92aWRlcnM6IFtcblx0XHR7XG5cdFx0XHRwcm92aWRlOiBBYnN0cmFjdERyb3Bkb3duVmlldyxcblx0XHRcdHVzZUV4aXN0aW5nOiBEcm9wZG93bkxpc3Rcblx0XHR9XG5cdF1cbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25MaXN0IGltcGxlbWVudHMgQWJzdHJhY3REcm9wZG93blZpZXcsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cdHN0YXRpYyBsaXN0Q291bnQgPSAwO1xuXHRASW5wdXQoKSBhcmlhTGFiZWwgPSB0aGlzLmkxOG4uZ2V0KCkuRFJPUERPV05fTElTVC5MQUJFTDtcblx0LyoqXG5cdCAqIFRoZSBsaXN0IGl0ZW1zIGJlbG9uZ2luZyB0byB0aGUgYERyb3Bkb3duTGlzdGAuXG5cdCAqL1xuXHRASW5wdXQoKSBzZXQgaXRlbXModmFsdWU6IEFycmF5PExpc3RJdGVtPiB8IE9ic2VydmFibGU8QXJyYXk8TGlzdEl0ZW0+Pikge1xuXHRcdGlmIChpc09ic2VydmFibGUodmFsdWUpKSB7XG5cdFx0XHRpZiAodGhpcy5faXRlbXNTdWJzY3JpcHRpb24pIHtcblx0XHRcdFx0dGhpcy5faXRlbXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcblx0XHRcdH1cblx0XHRcdHRoaXMuX2l0ZW1zUmVhZHkgPSBuZXcgT2JzZXJ2YWJsZTxib29sZWFuPigob2JzZXJ2ZXIpID0+IHtcblx0XHRcdFx0dGhpcy5faXRlbXNTdWJzY3JpcHRpb24gPSB2YWx1ZS5zdWJzY3JpYmUodiA9PiB7XG5cdFx0XHRcdFx0dGhpcy51cGRhdGVMaXN0KHYpO1xuXHRcdFx0XHRcdG9ic2VydmVyLm5leHQodHJ1ZSk7XG5cdFx0XHRcdFx0b2JzZXJ2ZXIuY29tcGxldGUoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRcdHRoaXMub25JdGVtc1JlYWR5KG51bGwpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnVwZGF0ZUxpc3QodmFsdWUpO1xuXHRcdH1cblx0XHR0aGlzLl9vcmlnaW5hbEl0ZW1zID0gdmFsdWU7XG5cdH1cblxuXHRnZXQgaXRlbXMoKTogQXJyYXk8TGlzdEl0ZW0+IHwgT2JzZXJ2YWJsZTxBcnJheTxMaXN0SXRlbT4+IHtcblx0XHRyZXR1cm4gdGhpcy5fb3JpZ2luYWxJdGVtcztcblx0fVxuXHQvKipcblx0ICogVGVtcGxhdGUgdG8gYmluZCB0byBpdGVtcyBpbiB0aGUgYERyb3Bkb3duTGlzdGAgKG9wdGlvbmFsKS5cblx0ICovXG5cdEBJbnB1dCgpIGxpc3RUcGw6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gPSBudWxsO1xuXHQvKipcblx0ICogRXZlbnQgdG8gZW1pdCBzZWxlY3Rpb24gb2YgYSBsaXN0IGl0ZW0gd2l0aGluIHRoZSBgRHJvcGRvd25MaXN0YC5cblx0ICovXG5cdEBPdXRwdXQoKSBzZWxlY3Q6IEV2ZW50RW1pdHRlcjx7IGl0ZW06IExpc3RJdGVtLCBpc1VwZGF0ZT86IGJvb2xlYW4gfSB8IExpc3RJdGVtW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXHQvKipcblx0ICogRXZlbnQgdG8gZW1pdCBzY3JvbGwgZXZlbnQgb2YgYSBsaXN0IHdpdGhpbiB0aGUgYERyb3Bkb3duTGlzdGAuXG5cdCAqL1xuXHRAT3V0cHV0KCkgc2Nyb2xsOiBFdmVudEVtaXR0ZXI8U2Nyb2xsQ3VzdG9tRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXHQvKipcblx0ICogRXZlbnQgdG8gc3VnZ2VzdCBhIGJsdXIgb24gdGhlIHZpZXcuXG5cdCAqIEVtaXRzIF9hZnRlcl8gdGhlIGZpcnN0L2xhc3QgaXRlbSBoYXMgYmVlbiBmb2N1c2VkLlxuXHQgKiBleC5cblx0ICogQXJyb3dVcCAtPiBmb2N1cyBmaXJzdCBpdGVtXG5cdCAqIEFycm93VXAgLT4gZW1pdCBldmVudFxuXHQgKlxuXHQgKiBXaGVuIHRoaXMgZXZlbnQgZmlyZXMgZm9jdXMgc2hvdWxkIGJlIHBsYWNlZCBvbiBzb21lIGVsZW1lbnQgb3V0c2lkZSBvZiB0aGUgbGlzdCAtIGJsdXJyaW5nIHRoZSBsaXN0IGFzIGEgcmVzdWx0XG5cdCAqL1xuXHRAT3V0cHV0KCkgYmx1ckludGVudCA9IG5ldyBFdmVudEVtaXR0ZXI8XCJ0b3BcIiB8IFwiYm90dG9tXCI+KCk7XG5cdC8qKlxuXHQgKiBNYWludGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIHZpZXcgRE9NIGVsZW1lbnQgZm9yIHRoZSB1bm9yZGVyZWQgbGlzdCBvZiBpdGVtcyB3aXRoaW4gdGhlIGBEcm9wZG93bkxpc3RgLlxuXHQgKi9cblx0QFZpZXdDaGlsZChcImxpc3RcIiwgeyBzdGF0aWM6IHRydWUgfSkgbGlzdDogRWxlbWVudFJlZjtcblx0LyoqXG5cdCAqIERlZmluZXMgd2hldGhlciBvciBub3QgdGhlIGBEcm9wZG93bkxpc3RgIHN1cHBvcnRzIHNlbGVjdGluZyBtdWx0aXBsZSBpdGVtcyBhcyBvcHBvc2VkIHRvIHNpbmdsZVxuXHQgKiBpdGVtIHNlbGVjdGlvbi5cblx0ICovXG5cdEBJbnB1dCgpIHR5cGU6IFwic2luZ2xlXCIgfCBcIm11bHRpXCIgPSBcInNpbmdsZVwiO1xuXG5cdC8qKlxuXHQgKiBEZWZpbmVzIHdoZXRoZXIgdG8gc2hvdyB0aXRsZSBhdHRyaWJ1dGUgb3Igbm90XG5cdCAqL1xuXHRASW5wdXQoKSBzaG93VGl0bGVzID0gdHJ1ZTtcblxuXHQvKipcblx0ICogRGVmaW5lcyB0aGUgcmVuZGVyaW5nIHNpemUgb2YgdGhlIGBEcm9wZG93bkxpc3RgIGlucHV0IGNvbXBvbmVudC5cblx0ICovXG5cdHB1YmxpYyBzaXplOiBcInNtXCIgfCBcIm1kXCIgfCBcImxnXCIgPSBcIm1kXCI7XG5cdHB1YmxpYyBsaXN0SWQgPSBgbGlzdGJveC0ke0Ryb3Bkb3duTGlzdC5saXN0Q291bnQrK31gO1xuXHRwdWJsaWMgaGlnaGxpZ2h0ZWRJdGVtID0gbnVsbDtcblx0LyoqXG5cdCAqIEhvbGRzIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGBEcm9wZG93bkxpc3RgLlxuXHQgKiBJdCBkaWZmZXJzIGZyb20gdGhlIHRoZSBjb21wbGV0ZSBzZXQgb2YgaXRlbXMgd2hlbiBmaWx0ZXJpbmcgaXMgdXNlZCAoYnV0XG5cdCAqIGl0IGlzIGFsd2F5cyBhIHN1YnNldCBvZiB0aGUgdG90YWwgaXRlbXMgaW4gYERyb3Bkb3duTGlzdGApLlxuXHQgKi9cblx0cHVibGljIGRpc3BsYXlJdGVtczogQXJyYXk8TGlzdEl0ZW0+ID0gW107XG5cdC8qKlxuXHQgKiBNYWludGFpbnMgdGhlIGluZGV4IGZvciB0aGUgc2VsZWN0ZWQgaXRlbSB3aXRoaW4gdGhlIGBEcm9wZG93bkxpc3RgLlxuXHQgKi9cblx0cHJvdGVjdGVkIGluZGV4ID0gLTE7XG5cdC8qKlxuXHQgKiBBbiBhcnJheSBob2xkaW5nIHRoZSBIVE1MIGxpc3QgZWxlbWVudHMgaW4gdGhlIHZpZXcuXG5cdCAqL1xuXHRAVmlld0NoaWxkcmVuKFwibGlzdEl0ZW1cIikgcHJvdGVjdGVkIGxpc3RFbGVtZW50TGlzdDogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuXHQvKipcblx0ICogT2JzZXJ2YWJsZSBib3VuZCB0byBrZXlkb3duIGV2ZW50cyB0byBjb250cm9sIGZpbHRlcmluZy5cblx0ICovXG5cdHByb3RlY3RlZCBmb2N1c0p1bXA7XG5cdC8qKlxuXHQgKiBUcmFja3MgdGhlIGN1cnJlbnQgKGlmIGFueSkgc3Vic2NyaXB0aW9uIHRvIHRoZSBpdGVtcyBvYnNlcnZhYmxlIHNvIHdlIGNhbiBjbGVhbiB1cCB3aGVuIHRoZSBpbnB1dCBpcyB1cGRhdGVkLlxuXHQgKi9cblx0cHJvdGVjdGVkIF9pdGVtc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXHQvKipcblx0ICogVXNlZCB0byByZXRhaW4gdGhlIG9yaWdpbmFsIGl0ZW1zIHBhc3NlZCB0byB0aGUgc2V0dGVyLlxuXHQgKi9cblx0cHJvdGVjdGVkIF9vcmlnaW5hbEl0ZW1zOiBBcnJheTxMaXN0SXRlbT4gfCBPYnNlcnZhYmxlPEFycmF5PExpc3RJdGVtPj47XG5cdC8qKlxuXHQgKiBVc2VmdWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIGl0ZW1zLCBzaG91bGQgYmUgYWNjZXNzZWQgdmlhIGBnZXRMaXN0SXRlbXNgLlxuXHQgKi9cblx0cHJvdGVjdGVkIF9pdGVtczogQXJyYXk8TGlzdEl0ZW0+ID0gW107XG5cdC8qKlxuXHQgKiBVc2VkIHRvIHdhaXQgZm9yIGl0ZW1zIGluIGNhc2UgdGhleSBhcmUgcGFzc2VkIHRocm91Z2ggYW4gb2JzZXJ2YWJsZS5cblx0ICovXG5cdHByb3RlY3RlZCBfaXRlbXNSZWFkeTogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBgRHJvcGRvd25MaXN0YC5cblx0ICovXG5cdGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgaTE4bjogSTE4biwgcHJvdGVjdGVkIGFwcFJlZjogQXBwbGljYXRpb25SZWYpIHt9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyBhcnJheSBvZiBsaXN0IGl0ZW1zIGFuZCBpbmRleCBvZiB0aGUgc2VsZWN0ZWQgaXRlbSBhZnRlciB2aWV3IGhhcyByZW5kZXJlZC5cblx0ICogQWRkaXRpb25hbGx5LCBhbnkgT2JzZXJ2YWJsZXMgZm9yIHRoZSBgRHJvcGRvd25MaXN0YCBhcmUgaW5pdGlhbGl6ZWQuXG5cdCAqL1xuXHRuZ0FmdGVyVmlld0luaXQoKSB7XG5cdFx0dGhpcy5pbmRleCA9IHRoaXMuZ2V0TGlzdEl0ZW1zKCkuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5zZWxlY3RlZCk7XG5cdFx0dGhpcy5zZXR1cEZvY3VzT2JzZXJ2YWJsZSgpO1xuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy5kb0VtaXRTZWxlY3QodHJ1ZSk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogUmVtb3ZlcyBhbnkgT2JzZXJ2YWJsZXMgb24gZGVzdHJ1Y3Rpb24gb2YgdGhlIGNvbXBvbmVudC5cblx0ICovXG5cdG5nT25EZXN0cm95KCkge1xuXHRcdGlmICh0aGlzLmZvY3VzSnVtcCkge1xuXHRcdFx0dGhpcy5mb2N1c0p1bXAudW5zdWJzY3JpYmUoKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMuX2l0ZW1zU3Vic2NyaXB0aW9uKSB7XG5cdFx0XHR0aGlzLl9pdGVtc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXHRcdH1cblx0fVxuXG5cdGRvRW1pdFNlbGVjdChpc1VwZGF0ZSA9IHRydWUpIHtcblx0XHRpZiAodGhpcy50eXBlID09PSBcInNpbmdsZVwiKSB7XG5cdFx0XHR0aGlzLnNlbGVjdC5lbWl0KHsgaXRlbTogdGhpcy5faXRlbXMuZmluZChpdGVtID0+IGl0ZW0uc2VsZWN0ZWQpLCBpc1VwZGF0ZTogaXNVcGRhdGUgfSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIGFidXNlIGphdmFzY3JpcHRzIG9iamVjdCBtdXRhYmlsaXR5IHVudGlsIHdlIGNhbiBicmVhayB0aGUgQVBJIGFuZCBzd2l0Y2ggdG9cblx0XHRcdC8vIHsgaXRlbXM6IFtdLCBpc1VwZGF0ZTogdHJ1ZSB9XG5cdFx0XHRjb25zdCBzZWxlY3RlZCA9IHRoaXMuZ2V0U2VsZWN0ZWQoKSB8fCBbXTtcblx0XHRcdHNlbGVjdGVkW1wiaXNVcGRhdGVcIl0gPSBpc1VwZGF0ZTtcblx0XHRcdHRoaXMuc2VsZWN0LmVtaXQoc2VsZWN0ZWQpO1xuXHRcdH1cblx0fVxuXG5cdGdldEl0ZW1JZChpbmRleDogbnVtYmVyKSB7XG5cdFx0cmV0dXJuIGAke3RoaXMubGlzdElkfS0ke2luZGV4fWA7XG5cdH1cblxuXHQvKipcblx0ICogVXBkYXRlcyB0aGUgZGlzcGxheWVkIGxpc3Qgb2YgaXRlbXMgYW5kIHRoZW4gcmV0cmlldmVzIHRoZSBtb3N0IGN1cnJlbnQgcHJvcGVydGllcyBmb3IgdGhlIGBEcm9wZG93bkxpc3RgIGZyb20gdGhlIERPTS5cblx0ICovXG5cdHVwZGF0ZUxpc3QoaXRlbXMpIHtcblx0XHR0aGlzLl9pdGVtcyA9IGl0ZW1zLm1hcChpdGVtID0+IE9iamVjdC5hc3NpZ24oe30sIGl0ZW0pKTtcblx0XHR0aGlzLmRpc3BsYXlJdGVtcyA9IHRoaXMuX2l0ZW1zO1xuXHRcdHRoaXMudXBkYXRlSW5kZXgoKTtcblx0XHR0aGlzLnNldHVwRm9jdXNPYnNlcnZhYmxlKCk7XG5cdFx0dGhpcy5kb0VtaXRTZWxlY3QoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBGaWx0ZXJzIHRoZSBpdGVtcyBiZWluZyBkaXNwbGF5ZWQgaW4gdGhlIERPTSBsaXN0LlxuXHQgKi9cblx0ZmlsdGVyQnkocXVlcnkgPSBcIlwiKSB7XG5cdFx0aWYgKHF1ZXJ5KSB7XG5cdFx0XHR0aGlzLmRpc3BsYXlJdGVtcyA9IHRoaXMuZ2V0TGlzdEl0ZW1zKCkuZmlsdGVyKGl0ZW0gPT4gaXRlbS5jb250ZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocXVlcnkudG9Mb3dlckNhc2UoKSkpO1xuXHRcdFx0Ly8gUmVzZXQgaW5kZXggaWYgaXRlbXMgd2VyZSBmb3VuZFxuXHRcdFx0Ly8gUHJldmVudCBzZWxlY3RpbmcgaW5kZXggaW4gbGlzdCB0aGF0IGFyZSB1bmRlZmluZWQuXG5cdFx0XHRpZiAodGhpcy5kaXNwbGF5SXRlbXMpIHtcblx0XHRcdFx0dGhpcy5pbmRleCA9IDA7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuZGlzcGxheUl0ZW1zID0gdGhpcy5nZXRMaXN0SXRlbXMoKTtcblx0XHR9XG5cblx0XHR0aGlzLnVwZGF0ZUluZGV4KCk7XG5cdH1cblxuXHQvKipcblx0ICogSW5pdGlhbGl6ZXMgKG9yIHJlLWluaXRpYWxpemVzKSB0aGUgT2JzZXJ2YWJsZSB0aGF0IGhhbmRsZXMgc3dpdGNoaW5nIGZvY3VzIHRvIGFuIGVsZW1lbnQgYmFzZWQgb25cblx0ICoga2V5IGlucHV0IG1hdGNoaW5nIHRoZSBmaXJzdCBsZXR0ZXIgb2YgdGhlIGl0ZW0gaW4gdGhlIGxpc3QuXG5cdCAqL1xuXHRzZXR1cEZvY3VzT2JzZXJ2YWJsZSgpIHtcblx0XHRpZiAoIXRoaXMubGlzdCkgeyByZXR1cm47IH1cblx0XHRpZiAodGhpcy5mb2N1c0p1bXApIHtcblx0XHRcdHRoaXMuZm9jdXNKdW1wLnVuc3Vic2NyaWJlKCk7XG5cdFx0fVxuXHRcdGxldCBlbExpc3QgPSBBcnJheS5mcm9tKHRoaXMubGlzdC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJsaVwiKSk7XG5cdFx0dGhpcy5mb2N1c0p1bXAgPSB3YXRjaEZvY3VzSnVtcCh0aGlzLmxpc3QubmF0aXZlRWxlbWVudCwgZWxMaXN0KVxuXHRcdFx0LnN1YnNjcmliZShlbCA9PiB7XG5cdFx0XHRcdGVsLmZvY3VzKCk7XG5cdFx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBgTGlzdEl0ZW1gIHRoYXQgaXMgc3Vic2VxdWVudCB0byB0aGUgc2VsZWN0ZWQgaXRlbSBpbiB0aGUgYERyb3Bkb3duTGlzdGAuXG5cdCAqL1xuXHRnZXROZXh0SXRlbSgpOiBMaXN0SXRlbSB7XG5cdFx0aWYgKHRoaXMuaW5kZXggPCB0aGlzLmRpc3BsYXlJdGVtcy5sZW5ndGggLSAxKSB7XG5cdFx0XHR0aGlzLmluZGV4Kys7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLmRpc3BsYXlJdGVtc1t0aGlzLmluZGV4XTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgc2VsZWN0ZWQgaXRlbSBpcyBub3QgdGhlIGxhc3QgaXRlbSBpbiB0aGUgYERyb3Bkb3duTGlzdGAuXG5cdCAqL1xuXHRoYXNOZXh0RWxlbWVudCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5pbmRleCA8IHRoaXMuZGlzcGxheUl0ZW1zLmxlbmd0aCAtIDEgJiZcblx0XHRcdCghKHRoaXMuaW5kZXggPT09IHRoaXMuZGlzcGxheUl0ZW1zLmxlbmd0aCAtIDIpIHx8ICF0aGlzLmRpc3BsYXlJdGVtc1t0aGlzLmluZGV4ICsgMV0uZGlzYWJsZWQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGBIVE1MRWxlbWVudGAgZm9yIHRoZSBpdGVtIHRoYXQgaXMgc3Vic2VxdWVudCB0byB0aGUgc2VsZWN0ZWQgaXRlbS5cblx0ICovXG5cdGdldE5leHRFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcblx0XHQvLyBPbmx5IHJldHVybiBuYXRpdmUgZWxlbWVudHMgaWYgdGhleSBhcmUgcmVuZGVyZWRcblx0XHRjb25zdCBlbGVtTGlzdCA9IHRoaXMubGlzdEVsZW1lbnRMaXN0ID8gdGhpcy5saXN0RWxlbWVudExpc3QudG9BcnJheSgpIDogW107XG5cdFx0aWYgKCFlbGVtTGlzdC5sZW5ndGgpIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblxuXHRcdC8qKlxuXHRcdCAqIFN0YXJ0IGNoZWNraW5nIGZyb20gbmV4dCBpbmRleFxuXHRcdCAqIENvbnRpbnVlIGxvb3BpbmcgdGhyb3VnaCB0aGUgbGlzdCB1bnRpbCBhIG5vbiBkaXNhYmVsZWQgZWxlbWVudCBpcyBmb3VuZCBvclxuXHRcdCAqIGVuZCBvZiBsaXN0IGlzIHJlYWNoZWRcblx0XHQgKi9cblx0XHRmb3IgKGxldCBpID0gdGhpcy5pbmRleCArIDE7IGkgPCBlbGVtTGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0Ly8gSWYgdGhlIHZhbHVlcyBpbiB0aGUgbGlzdCBhcmUgbm90IGRpc2FibGVkXG5cdFx0XHRpZiAoIXRoaXMuZGlzcGxheUl0ZW1zW2ldLmRpc2FibGVkKSB7XG5cdFx0XHRcdHRoaXMuaW5kZXggPSBpO1xuXHRcdFx0XHRyZXR1cm4gZWxlbUxpc3RbaV0ubmF0aXZlRWxlbWVudDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZWxlbUxpc3RbdGhpcy5pbmRleF0ubmF0aXZlRWxlbWVudDtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBgTGlzdEl0ZW1gIHRoYXQgcHJlY2VkZXMgdGhlIHNlbGVjdGVkIGl0ZW0gd2l0aGluIGBEcm9wZG93bkxpc3RgLlxuXHQgKi9cblx0Z2V0UHJldkl0ZW0oKTogTGlzdEl0ZW0ge1xuXHRcdGlmICh0aGlzLmluZGV4ID4gMCkge1xuXHRcdFx0dGhpcy5pbmRleC0tO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5kaXNwbGF5SXRlbXNbdGhpcy5pbmRleF07XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHNlbGVjdGVkIGl0ZW0gaXMgbm90IHRoZSBmaXJzdCBpbiB0aGUgbGlzdC5cblx0ICovXG5cdGhhc1ByZXZFbGVtZW50KCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmluZGV4ID4gMCAmJiAoISh0aGlzLmluZGV4ID09PSAxKSB8fCAhdGhpcy5kaXNwbGF5SXRlbXNbMF0uZGlzYWJsZWQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGBIVE1MRWxlbWVudGAgZm9yIHRoZSBpdGVtIHRoYXQgcHJlY2VkZXMgdGhlIHNlbGVjdGVkIGl0ZW0uXG5cdCAqL1xuXHRnZXRQcmV2RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG5cdFx0Ly8gT25seSByZXR1cm4gbmF0aXZlIGVsZW1lbnRzIGlmIHRoZXkgYXJlIHJlbmRlcmVkXG5cdFx0Y29uc3QgZWxlbUxpc3QgPSB0aGlzLmxpc3RFbGVtZW50TGlzdCA/IHRoaXMubGlzdEVsZW1lbnRMaXN0LnRvQXJyYXkoKSA6IFtdO1xuXHRcdGlmICghZWxlbUxpc3QubGVuZ3RoKSB7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cblx0XHQvKipcblx0XHQgKiBTdGFydCBjaGVja2luZyBmcm9tIG5leHQgaW5kZXhcblx0XHQgKiBDb250aW51ZSBsb29waW5nIHRocm91Z2ggdGhlIGxpc3QgdW50aWwgYSBub24gZGlzYWJlbGVkIGVsZW1lbnQgaXMgZm91bmQgb3Jcblx0XHQgKiBlbmQgb2YgbGlzdCBpcyByZWFjaGVkXG5cdFx0ICovXG5cdFx0Zm9yIChsZXQgaSA9IHRoaXMuaW5kZXggLSAxOyBpIDwgdGhpcy5pbmRleCAmJiBpID49IDA7IGktLSkge1xuXHRcdFx0Ly8gSWYgdGhlIHZhbHVlcyBpbiB0aGUgbGlzdCBhcmUgbm90IGRpc2FibGVkXG5cdFx0XHRpZiAoIXRoaXMuZGlzcGxheUl0ZW1zW2ldLmRpc2FibGVkKSB7XG5cdFx0XHRcdHRoaXMuaW5kZXggPSBpO1xuXHRcdFx0XHRyZXR1cm4gZWxlbUxpc3RbaV0ubmF0aXZlRWxlbWVudDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZWxlbUxpc3RbdGhpcy5pbmRleF0ubmF0aXZlRWxlbWVudDtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBgTGlzdEl0ZW1gIHRoYXQgaXMgc2VsZWN0ZWQgd2l0aGluIGBEcm9wZG93bkxpc3RgLlxuXHQgKi9cblx0Z2V0Q3VycmVudEl0ZW0oKTogTGlzdEl0ZW0ge1xuXHRcdGlmICh0aGlzLmluZGV4IDwgMCkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZGlzcGxheUl0ZW1zWzBdO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5kaXNwbGF5SXRlbXNbdGhpcy5pbmRleF07XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgYEhUTUxFbGVtZW50YCBmb3IgdGhlIGl0ZW0gdGhhdCBpcyBzZWxlY3RlZCB3aXRoaW4gdGhlIGBEcm9wZG93bkxpc3RgLlxuXHQgKi9cblx0Z2V0Q3VycmVudEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuXHRcdGlmICh0aGlzLmluZGV4IDwgMCkge1xuXHRcdFx0cmV0dXJuIHRoaXMubGlzdEVsZW1lbnRMaXN0LmZpcnN0Lm5hdGl2ZUVsZW1lbnQ7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLmxpc3RFbGVtZW50TGlzdC50b0FycmF5KClbdGhpcy5pbmRleF0ubmF0aXZlRWxlbWVudDtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBpdGVtcyBhcyBhbiBBcnJheVxuXHQgKi9cblx0Z2V0TGlzdEl0ZW1zKCk6IEFycmF5PExpc3RJdGVtPiB7XG5cdFx0cmV0dXJuIHRoaXMuX2l0ZW1zO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgYSBsaXN0IGNvbnRhaW5pbmcgdGhlIHNlbGVjdGVkIGl0ZW0ocykgaW4gdGhlIGBEcm9wZG93bkxpc3RgLlxuXHQgKi9cblx0Z2V0U2VsZWN0ZWQoKTogTGlzdEl0ZW1bXSB7XG5cdFx0bGV0IHNlbGVjdGVkID0gdGhpcy5nZXRMaXN0SXRlbXMoKS5maWx0ZXIoaXRlbSA9PiBpdGVtLnNlbGVjdGVkKTtcblx0XHRpZiAoc2VsZWN0ZWQubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRyZXR1cm4gW107XG5cdFx0fVxuXHRcdHJldHVybiBzZWxlY3RlZDtcblx0fVxuXG5cdC8qKlxuXHQgKiBUcmFuc2Zvcm1zIGFycmF5IGlucHV0IGxpc3Qgb2YgaXRlbXMgdG8gdGhlIGNvcnJlY3Qgc3RhdGUgYnkgdXBkYXRpbmcgdGhlIHNlbGVjdGVkIGl0ZW0ocykuXG5cdCAqL1xuXHRwcm9wYWdhdGVTZWxlY3RlZCh2YWx1ZTogQXJyYXk8TGlzdEl0ZW0+KTogdm9pZCB7XG5cdFx0Ly8gaWYgd2UgZ2V0IGEgbm9uLWFycmF5LCBsb2cgb3V0IGFuIGVycm9yIChzaW5jZSBpdCBpcyBvbmUpXG5cdFx0aWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuXHRcdFx0Y29uc29sZS5lcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9LnByb3BhZ2F0ZVNlbGVjdGVkIGV4cGVjdHMgYW4gQXJyYXk8TGlzdEl0ZW0+LCBnb3QgJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YCk7XG5cdFx0fVxuXHRcdHRoaXMub25JdGVtc1JlYWR5KCgpID0+IHtcblx0XHRcdC8vIGxvb3AgdGhyb3VnaCB0aGUgbGlzdCBpdGVtcyBhbmQgdXBkYXRlIHRoZSBgc2VsZWN0ZWRgIHN0YXRlIGZvciBtYXRjaGluZyBpdGVtcyBpbiBgdmFsdWVgXG5cdFx0XHRmb3IgKGxldCBvbGRJdGVtIG9mIHRoaXMuZ2V0TGlzdEl0ZW1zKCkpIHtcblx0XHRcdFx0Ly8gY29weSB0aGUgaXRlbVxuXHRcdFx0XHRsZXQgdGVtcE9sZEl0ZW06IHN0cmluZyB8IExpc3RJdGVtID0gT2JqZWN0LmFzc2lnbih7fSwgb2xkSXRlbSk7XG5cdFx0XHRcdC8vIGRlbGV0ZWQgc2VsZWN0ZWQgYmVjYXVzZSBpdCdzIHdoYXQgd2UgX3dhbnRfIHRvIGNoYW5nZVxuXHRcdFx0XHRkZWxldGUgdGVtcE9sZEl0ZW0uc2VsZWN0ZWQ7XG5cdFx0XHRcdC8vIHN0cmluZ2lmeSBmb3IgY29tcGFyZVxuXHRcdFx0XHR0ZW1wT2xkSXRlbSA9IEpTT04uc3RyaW5naWZ5KHRlbXBPbGRJdGVtKTtcblx0XHRcdFx0Zm9yIChsZXQgbmV3SXRlbSBvZiB2YWx1ZSkge1xuXHRcdFx0XHRcdC8vIGNvcHkgdGhlIGl0ZW1cblx0XHRcdFx0XHRsZXQgdGVtcE5ld0l0ZW06IHN0cmluZyB8IExpc3RJdGVtID0gT2JqZWN0LmFzc2lnbih7fSwgbmV3SXRlbSk7XG5cdFx0XHRcdFx0Ly8gZGVsZXRlZCBzZWxlY3RlZCBiZWNhdXNlIGl0J3Mgd2hhdCB3ZSBfd2FudF8gdG8gY2hhbmdlXG5cdFx0XHRcdFx0ZGVsZXRlIHRlbXBOZXdJdGVtLnNlbGVjdGVkO1xuXHRcdFx0XHRcdC8vIHN0cmluZ2lmeSBmb3IgY29tcGFyZVxuXHRcdFx0XHRcdHRlbXBOZXdJdGVtID0gSlNPTi5zdHJpbmdpZnkodGVtcE5ld0l0ZW0pO1xuXHRcdFx0XHRcdC8vIGRvIHRoZSBjb21wYXJlXG5cdFx0XHRcdFx0aWYgKHRlbXBPbGRJdGVtLmluY2x1ZGVzKHRlbXBOZXdJdGVtKSkge1xuXHRcdFx0XHRcdFx0b2xkSXRlbS5zZWxlY3RlZCA9IG5ld0l0ZW0uc2VsZWN0ZWQ7XG5cdFx0XHRcdFx0XHQvLyBpZiB3ZSd2ZSBmb3VuZCBhIG1hdGNoaW5nIGl0ZW0sIHdlIGNhbiBzdG9wIGxvb3Bpbmdcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRvbGRJdGVtLnNlbGVjdGVkID0gZmFsc2U7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogSW5pdGlhbGl6ZXMgZm9jdXMgaW4gdGhlIGxpc3QsIGVmZmVjdGl2ZWx5IGEgd3JhcHBlciBmb3IgYGdldEN1cnJlbnRFbGVtZW50KCkuZm9jdXMoKWBcblx0ICovXG5cdGluaXRGb2N1cygpIHtcblx0XHRpZiAodGhpcy5pbmRleCA8IDApIHtcblx0XHRcdHRoaXMudXBkYXRlSW5kZXgoKTtcblx0XHR9XG5cblx0XHR0aGlzLmxpc3QubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy5oaWdobGlnaHRlZEl0ZW0gPSB0aGlzLmdldEl0ZW1JZCh0aGlzLmluZGV4KTtcblx0XHR9KTtcblx0fVxuXG5cdHVwZGF0ZUluZGV4KCkge1xuXHRcdC8vIGluaXRpYWxpemUgaW5kZXggb24gdGhlIGZpcnN0IHNlbGVjdGVkIGl0ZW0gb3Jcblx0XHQvLyBvbiB0aGUgbmV4dCBub24gZGlzYWJsZWQgaXRlbSBpZiBubyBpdGVtcyBhcmUgc2VsZWN0ZWRcblx0XHRjb25zdCBzZWxlY3RlZCA9IHRoaXMuZ2V0U2VsZWN0ZWQoKTtcblx0XHRpZiAoc2VsZWN0ZWQubGVuZ3RoKSB7XG5cdFx0XHR0aGlzLmluZGV4ID0gdGhpcy5kaXNwbGF5SXRlbXMuaW5kZXhPZihzZWxlY3RlZFswXSk7XG5cdFx0fSBlbHNlIGlmICh0aGlzLmhhc05leHRFbGVtZW50KCkpIHtcblx0XHRcdHRoaXMuZ2V0TmV4dEVsZW1lbnQoKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogTWFuYWdlcyB0aGUga2V5Ym9hcmQgYWNjZXNzaWJpbGl0eSBmb3IgbmF2aWdhdGlvbiBhbmQgc2VsZWN0aW9uIHdpdGhpbiBhIGBEcm9wZG93bkxpc3RgLlxuXHQgKi9cblx0bmF2aWdhdGVMaXN0KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG5cdFx0aWYgKGV2ZW50LmtleSA9PT0gXCJFbnRlclwiIHx8IGV2ZW50LmtleSA9PT0gXCIgXCIpIHtcblx0XHRcdGlmICh0aGlzLmxpc3RFbGVtZW50TGlzdC5zb21lKG9wdGlvbiA9PiBvcHRpb24ubmF0aXZlRWxlbWVudCA9PT0gZXZlbnQudGFyZ2V0KSkge1xuXHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGV2ZW50LmtleSA9PT0gXCJFbnRlclwiKSB7XG5cdFx0XHRcdHRoaXMuZG9DbGljayhldmVudCwgdGhpcy5nZXRDdXJyZW50SXRlbSgpKTtcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gXCJBcnJvd0Rvd25cIiB8fCBldmVudC5rZXkgPT09IFwiQXJyb3dVcFwiKSB7XG5cdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0aWYgKGV2ZW50LmtleSA9PT0gXCJBcnJvd0Rvd25cIikge1xuXHRcdFx0XHRpZiAodGhpcy5oYXNOZXh0RWxlbWVudCgpKSB7XG5cdFx0XHRcdFx0dGhpcy5nZXROZXh0RWxlbWVudCgpLnNjcm9sbEludG9WaWV3KHsgYmxvY2s6IFwiZW5kXCIgfSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5ibHVySW50ZW50LmVtaXQoXCJib3R0b21cIik7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSBcIkFycm93VXBcIikge1xuXHRcdFx0XHRpZiAodGhpcy5oYXNQcmV2RWxlbWVudCgpKSB7XG5cdFx0XHRcdFx0dGhpcy5nZXRQcmV2RWxlbWVudCgpLnNjcm9sbEludG9WaWV3KHsgIGJsb2NrOiBcIm5lYXJlc3RcIiB9KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLmJsdXJJbnRlbnQuZW1pdChcInRvcFwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdHRoaXMuaGlnaGxpZ2h0ZWRJdGVtID0gdGhpcy5nZXRJdGVtSWQodGhpcy5pbmRleCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogRW1pdHMgdGhlIHNlbGVjdGVkIGl0ZW0gb3IgaXRlbXMgYWZ0ZXIgYSBtb3VzZSBjbGljayBldmVudCBoYXMgb2NjdXJyZWQuXG5cdCAqL1xuXHRkb0NsaWNrKGV2ZW50LCBpdGVtKSB7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRpZiAoaXRlbSAmJiAhaXRlbS5kaXNhYmxlZCkge1xuXHRcdFx0dGhpcy5saXN0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblx0XHRcdGlmICh0aGlzLnR5cGUgPT09IFwic2luZ2xlXCIpIHtcblx0XHRcdFx0aXRlbS5zZWxlY3RlZCA9IHRydWU7XG5cdFx0XHRcdC8vIHJlc2V0IHRoZSBzZWxlY3Rpb25cblx0XHRcdFx0Zm9yIChsZXQgb3RoZXJJdGVtIG9mIHRoaXMuZ2V0TGlzdEl0ZW1zKCkpIHtcblx0XHRcdFx0XHRpZiAoaXRlbSAhPT0gb3RoZXJJdGVtKSB7IG90aGVySXRlbS5zZWxlY3RlZCA9IGZhbHNlOyB9XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGl0ZW0uc2VsZWN0ZWQgPSAhaXRlbS5zZWxlY3RlZDtcblx0XHRcdH1cblx0XHRcdHRoaXMuaW5kZXggPSB0aGlzLmRpc3BsYXlJdGVtcy5pbmRleE9mKGl0ZW0pO1xuXHRcdFx0dGhpcy5oaWdobGlnaHRlZEl0ZW0gPSB0aGlzLmdldEl0ZW1JZCh0aGlzLmluZGV4KTtcblx0XHRcdHRoaXMuZG9FbWl0U2VsZWN0KGZhbHNlKTtcblx0XHRcdHRoaXMuYXBwUmVmLnRpY2soKTtcblx0XHR9XG5cdH1cblxuXHRvbkl0ZW1Gb2N1cyhpbmRleCkge1xuXHRcdGNvbnN0IGVsZW1lbnQgPSB0aGlzLmxpc3RFbGVtZW50TGlzdC50b0FycmF5KClbaW5kZXhdLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0ZWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiY2RzLS1saXN0LWJveF9fbWVudS1pdGVtLS1oaWdobGlnaHRlZFwiKTtcblx0XHRlbGVtZW50LnRhYkluZGV4ID0gMDtcblx0fVxuXG5cdG9uSXRlbUJsdXIoaW5kZXgpIHtcblx0XHRjb25zdCBlbGVtZW50ID0gdGhpcy5saXN0RWxlbWVudExpc3QudG9BcnJheSgpW2luZGV4XS5uYXRpdmVFbGVtZW50O1xuXHRcdGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcImNkcy0tbGlzdC1ib3hfX21lbnUtaXRlbS0taGlnaGxpZ2h0ZWRcIik7XG5cdFx0ZWxlbWVudC50YWJJbmRleCA9IC0xO1xuXHR9XG5cblx0LyoqXG5cdCAqIEVtaXRzIHRoZSBzY3JvbGwgZXZlbnQgb2YgdGhlIG9wdGlvbnMgbGlzdFxuXHQgKi9cblx0ZW1pdFNjcm9sbChldmVudCkge1xuXHRcdGNvbnN0IGF0VG9wOiBib29sZWFuID0gZXZlbnQuc3JjRWxlbWVudC5zY3JvbGxUb3AgPT09IDA7XG5cdFx0Y29uc3QgYXRCb3R0b206IGJvb2xlYW4gPSBldmVudC5zcmNFbGVtZW50LnNjcm9sbEhlaWdodCAtIGV2ZW50LnNyY0VsZW1lbnQuc2Nyb2xsVG9wID09PSBldmVudC5zcmNFbGVtZW50LmNsaWVudEhlaWdodDtcblx0XHRjb25zdCBjdXN0b21TY3JvbGxFdmVudCA9IHsgYXRUb3AsIGF0Qm90dG9tLCBldmVudCB9O1xuXHRcdHRoaXMuc2Nyb2xsLmVtaXQoY3VzdG9tU2Nyb2xsRXZlbnQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFN1YnNjcmliZSB0aGUgZnVuY3Rpb24gcGFzc2VkIHRvIGFuIGludGVybmFsIG9ic2VydmFibGUgdGhhdCB3aWxsIHJlc29sdmUgb25jZSB0aGUgaXRlbXMgYXJlIHJlYWR5XG5cdCAqL1xuXHRvbkl0ZW1zUmVhZHkoc3ViY3JpcHRpb246ICgpID0+IHZvaWQpOiB2b2lkIHtcblx0XHQvLyB0aGlzIHN1YnNjcmlwdGlvbiB3aWxsIGF1dG8gdW5zdWJzY3JpYmUgYmVjYXVzZSBvZiB0aGUgYGZpcnN0KClgIHBpcGVcblx0XHQodGhpcy5faXRlbXNSZWFkeSB8fCBvZih0cnVlKSkucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoc3ViY3JpcHRpb24pO1xuXHR9XG5cblx0cmVvcmRlclNlbGVjdGVkKG1vdmVGb2N1cyA9IHRydWUpOiB2b2lkIHtcblx0XHR0aGlzLmRpc3BsYXlJdGVtcyA9IFsuLi50aGlzLmdldFNlbGVjdGVkKCksIC4uLnRoaXMuZ2V0TGlzdEl0ZW1zKCkuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uc2VsZWN0ZWQpXTtcblx0XHRpZiAobW92ZUZvY3VzKSB7XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0dGhpcy51cGRhdGVJbmRleCgpO1xuXHRcdFx0XHR0aGlzLmhpZ2hsaWdodGVkSXRlbSA9IHRoaXMuZ2V0SXRlbUlkKHRoaXMuaW5kZXgpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG59XG4iXX0=
629
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZHJvcGRvd24vbGlzdC9kcm9wZG93bi1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBRU4sWUFBWSxFQUdaLFNBQVMsRUFFVCxZQUFZLEVBR1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQWdCLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7OztBQUlsRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBcUVILE1BQU0sT0FBTyxZQUFZO0lBMEd4Qjs7T0FFRztJQUNILFlBQW1CLFVBQXNCLEVBQVksSUFBVSxFQUFZLE1BQXNCO1FBQTlFLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBWSxTQUFJLEdBQUosSUFBSSxDQUFNO1FBQVksV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUEzR3hGLGNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUEwQnpEOztXQUVHO1FBQ00sWUFBTyxHQUE4QixJQUFJLENBQUM7UUFDbkQ7O1dBRUc7UUFDTyxXQUFNLEdBQXNFLElBQUksWUFBWSxFQUFFLENBQUM7UUFDekc7O1dBRUc7UUFDTyxXQUFNLEdBQW9DLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkU7Ozs7Ozs7O1dBUUc7UUFDTyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFLNUQ7OztX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TSxFQUFFLElBQUksRUFBRTtnQkFLMUIsSUFBSTtzQkFBWixLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBcUI4QixlQUFlO3NCQUFsRCxZQUFZO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDb21wb25lbnQsXG5cdElucHV0LFxuXHRPdXRwdXQsXG5cdE9uRGVzdHJveSxcblx0RXZlbnRFbWl0dGVyLFxuXHRUZW1wbGF0ZVJlZixcblx0QWZ0ZXJWaWV3SW5pdCxcblx0Vmlld0NoaWxkLFxuXHRFbGVtZW50UmVmLFxuXHRWaWV3Q2hpbGRyZW4sXG5cdFF1ZXJ5TGlzdCxcblx0QXBwbGljYXRpb25SZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE9ic2VydmFibGUsIGlzT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBvZiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5pbXBvcnQgeyBJMThuIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvaTE4blwiO1xuaW1wb3J0IHsgQWJzdHJhY3REcm9wZG93blZpZXcgfSBmcm9tIFwiLi4vYWJzdHJhY3QtZHJvcGRvd24tdmlldy5jbGFzc1wiO1xuaW1wb3J0IHsgTGlzdEl0ZW0gfSBmcm9tIFwiLi4vbGlzdC1pdGVtLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgd2F0Y2hGb2N1c0p1bXAgfSBmcm9tIFwiLi4vZHJvcGRvd250b29sc1wiO1xuaW1wb3J0IHsgU2Nyb2xsQ3VzdG9tRXZlbnQgfSBmcm9tIFwiLi9zY3JvbGwtY3VzdG9tLWV2ZW50LmludGVyZmFjZVwiO1xuXG5cbi8qKlxuICogYGBgaHRtbFxuICogPGNkcy1kcm9wZG93bi1saXN0IFtpdGVtc109XCJsaXN0SXRlbXNcIj48L2Nkcy1kcm9wZG93bi1saXN0PlxuICogYGBgXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBsaXN0SXRlbXMgPSBbXG4gKiBcdHtcbiAqIFx0XHRjb250ZW50OiBcIml0ZW0gb25lXCIsXG4gKiBcdFx0c2VsZWN0ZWQ6IGZhbHNlXG4gKiBcdH0sXG4gKiBcdHtcbiAqIFx0XHRjb250ZW50OiBcIml0ZW0gdHdvXCIsXG4gKiBcdFx0c2VsZWN0ZWQ6IGZhbHNlLFxuICogXHR9LFxuICogXHR7XG4gKiBcdFx0Y29udGVudDogXCJpdGVtIHRocmVlXCIsXG4gKiBcdFx0c2VsZWN0ZWQ6IGZhbHNlXG4gKiBcdH0sXG4gKiBcdHtcbiAqIFx0XHRjb250ZW50OiBcIml0ZW0gZm91clwiLFxuICogXHRcdHNlbGVjdGVkOiBmYWxzZVxuICogXHR9XG4gKiBdO1xuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJjZHMtZHJvcGRvd24tbGlzdCwgaWJtLWRyb3Bkb3duLWxpc3RcIixcblx0dGVtcGxhdGU6IGBcblx0XHQ8dWxcblx0XHRcdCNsaXN0XG5cdFx0XHRbaWRdPVwibGlzdElkXCJcblx0XHRcdHJvbGU9XCJsaXN0Ym94XCJcblx0XHRcdGNsYXNzPVwiY2RzLS1saXN0LWJveF9fbWVudSBjZHMtLW11bHRpLXNlbGVjdFwiXG5cdFx0XHQoc2Nyb2xsKT1cImVtaXRTY3JvbGwoJGV2ZW50KVwiXG5cdFx0XHQoa2V5ZG93bik9XCJuYXZpZ2F0ZUxpc3QoJGV2ZW50KVwiXG5cdFx0XHR0YWJpbmRleD1cIi0xXCJcblx0XHRcdFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcblx0XHRcdFthdHRyLmFyaWEtYWN0aXZlZGVzY2VuZGFudF09XCJoaWdobGlnaHRlZEl0ZW1cIj5cblx0XHRcdDxsaVxuXHRcdFx0XHRyb2xlPVwib3B0aW9uXCJcblx0XHRcdFx0Km5nRm9yPVwibGV0IGl0ZW0gb2YgZGlzcGxheUl0ZW1zOyBsZXQgaSA9IGluZGV4XCJcblx0XHRcdFx0KGNsaWNrKT1cImRvQ2xpY2soJGV2ZW50LCBpdGVtKVwiXG5cdFx0XHRcdGNsYXNzPVwiY2RzLS1saXN0LWJveF9fbWVudS1pdGVtXCJcblx0XHRcdFx0W2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpdGVtLnNlbGVjdGVkXCJcblx0XHRcdFx0W2lkXT1cImdldEl0ZW1JZChpKVwiXG5cdFx0XHRcdFthdHRyLnRpdGxlXT1cIiBzaG93VGl0bGVzID8gaXRlbS5jb250ZW50IDogbnVsbFwiXG5cdFx0XHRcdFthdHRyLmRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWQgPyB0cnVlIDogbnVsbFwiXG5cdFx0XHRcdFtuZ0NsYXNzXT1cIntcblx0XHRcdFx0XHQnY2RzLS1saXN0LWJveF9fbWVudS1pdGVtLS1hY3RpdmUnOiBpdGVtLnNlbGVjdGVkLFxuXHRcdFx0XHRcdCdjZHMtLWxpc3QtYm94X19tZW51LWl0ZW0tLWhpZ2hsaWdodGVkJzogaGlnaGxpZ2h0ZWRJdGVtID09PSBnZXRJdGVtSWQoaSlcblx0XHRcdFx0fVwiPlxuXHRcdFx0XHQ8ZGl2XG5cdFx0XHRcdFx0I2xpc3RJdGVtXG5cdFx0XHRcdFx0dGFiaW5kZXg9XCItMVwiXG5cdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLWxpc3QtYm94X19tZW51LWl0ZW1fX29wdGlvblwiPlxuXHRcdFx0XHRcdDxkaXZcblx0XHRcdFx0XHRcdCpuZ0lmPVwiIWxpc3RUcGwgJiYgdHlwZSA9PT0gJ211bHRpJ1wiXG5cdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tZm9ybS1pdGVtIGNkcy0tY2hlY2tib3gtd3JhcHBlclwiPlxuXHRcdFx0XHRcdFx0PGxhYmVsXG5cdFx0XHRcdFx0XHRcdFthdHRyLmRhdGEtY29udGFpbmVkLWNoZWNrYm94LXN0YXRlXT1cIml0ZW0uc2VsZWN0ZWRcIlxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tY2hlY2tib3gtbGFiZWxcIj5cblx0XHRcdFx0XHRcdFx0PGlucHV0XG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLWNoZWNrYm94XCJcblx0XHRcdFx0XHRcdFx0XHR0eXBlPVwiY2hlY2tib3hcIlxuXHRcdFx0XHRcdFx0XHRcdFtjaGVja2VkXT1cIml0ZW0uc2VsZWN0ZWRcIlxuXHRcdFx0XHRcdFx0XHRcdFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcblx0XHRcdFx0XHRcdFx0XHR0YWJpbmRleD1cIi0xXCI+XG5cdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiY2RzLS1jaGVja2JveC1hcHBlYXJhbmNlXCI+PC9zcGFuPlxuXHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImNkcy0tY2hlY2tib3gtbGFiZWwtdGV4dFwiPnt7aXRlbS5jb250ZW50fX08L3NwYW4+XG5cdFx0XHRcdFx0XHQ8L2xhYmVsPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhbGlzdFRwbCAmJiB0eXBlID09PSAnc2luZ2xlJ1wiPnt7aXRlbS5jb250ZW50fX08L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHQ8c3ZnXG5cdFx0XHRcdFx0XHQqbmdJZj1cIiFsaXN0VHBsICYmIHR5cGUgPT09ICdzaW5nbGUnXCJcblx0XHRcdFx0XHRcdGNkc0ljb249XCJjaGVja21hcmtcIlxuXHRcdFx0XHRcdFx0c2l6ZT1cIjE2XCJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1saXN0LWJveF9fbWVudS1pdGVtX19zZWxlY3RlZC1pY29uXCI+XG5cdFx0XHRcdFx0PC9zdmc+XG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlXG5cdFx0XHRcdFx0XHQqbmdJZj1cImxpc3RUcGxcIlxuXHRcdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpdGVtOiBpdGVtfVwiXG5cdFx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldF09XCJsaXN0VHBsXCI+XG5cdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2xpPlxuXHRcdDwvdWw+YCxcblx0cHJvdmlkZXJzOiBbXG5cdFx0e1xuXHRcdFx0cHJvdmlkZTogQWJzdHJhY3REcm9wZG93blZpZXcsXG5cdFx0XHR1c2VFeGlzdGluZzogRHJvcGRvd25MaXN0XG5cdFx0fVxuXHRdXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duTGlzdCBpbXBsZW1lbnRzIEFic3RyYWN0RHJvcGRvd25WaWV3LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXHRzdGF0aWMgbGlzdENvdW50ID0gMDtcblx0QElucHV0KCkgYXJpYUxhYmVsID0gdGhpcy5pMThuLmdldCgpLkRST1BET1dOX0xJU1QuTEFCRUw7XG5cdC8qKlxuXHQgKiBUaGUgbGlzdCBpdGVtcyBiZWxvbmdpbmcgdG8gdGhlIGBEcm9wZG93bkxpc3RgLlxuXHQgKi9cblx0QElucHV0KCkgc2V0IGl0ZW1zKHZhbHVlOiBBcnJheTxMaXN0SXRlbT4gfCBPYnNlcnZhYmxlPEFycmF5PExpc3RJdGVtPj4pIHtcblx0XHRpZiAoaXNPYnNlcnZhYmxlKHZhbHVlKSkge1xuXHRcdFx0aWYgKHRoaXMuX2l0ZW1zU3Vic2NyaXB0aW9uKSB7XG5cdFx0XHRcdHRoaXMuX2l0ZW1zU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLl9pdGVtc1JlYWR5ID0gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4oKG9ic2VydmVyKSA9PiB7XG5cdFx0XHRcdHRoaXMuX2l0ZW1zU3Vic2NyaXB0aW9uID0gdmFsdWUuc3Vic2NyaWJlKHYgPT4ge1xuXHRcdFx0XHRcdHRoaXMudXBkYXRlTGlzdCh2KTtcblx0XHRcdFx0XHRvYnNlcnZlci5uZXh0KHRydWUpO1xuXHRcdFx0XHRcdG9ic2VydmVyLmNvbXBsZXRlKCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLm9uSXRlbXNSZWFkeShudWxsKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy51cGRhdGVMaXN0KHZhbHVlKTtcblx0XHR9XG5cdFx0dGhpcy5fb3JpZ2luYWxJdGVtcyA9IHZhbHVlO1xuXHR9XG5cblx0Z2V0IGl0ZW1zKCk6IEFycmF5PExpc3RJdGVtPiB8IE9ic2VydmFibGU8QXJyYXk8TGlzdEl0ZW0+PiB7XG5cdFx0cmV0dXJuIHRoaXMuX29yaWdpbmFsSXRlbXM7XG5cdH1cblx0LyoqXG5cdCAqIFRlbXBsYXRlIHRvIGJpbmQgdG8gaXRlbXMgaW4gdGhlIGBEcm9wZG93bkxpc3RgIChvcHRpb25hbCkuXG5cdCAqL1xuXHRASW5wdXQoKSBsaXN0VHBsOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+ID0gbnVsbDtcblx0LyoqXG5cdCAqIEV2ZW50IHRvIGVtaXQgc2VsZWN0aW9uIG9mIGEgbGlzdCBpdGVtIHdpdGhpbiB0aGUgYERyb3Bkb3duTGlzdGAuXG5cdCAqL1xuXHRAT3V0cHV0KCkgc2VsZWN0OiBFdmVudEVtaXR0ZXI8eyBpdGVtOiBMaXN0SXRlbSwgaXNVcGRhdGU/OiBib29sZWFuIH0gfCBMaXN0SXRlbVtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblx0LyoqXG5cdCAqIEV2ZW50IHRvIGVtaXQgc2Nyb2xsIGV2ZW50IG9mIGEgbGlzdCB3aXRoaW4gdGhlIGBEcm9wZG93bkxpc3RgLlxuXHQgKi9cblx0QE91dHB1dCgpIHNjcm9sbDogRXZlbnRFbWl0dGVyPFNjcm9sbEN1c3RvbUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblx0LyoqXG5cdCAqIEV2ZW50IHRvIHN1Z2dlc3QgYSBibHVyIG9uIHRoZSB2aWV3LlxuXHQgKiBFbWl0cyBfYWZ0ZXJfIHRoZSBmaXJzdC9sYXN0IGl0ZW0gaGFzIGJlZW4gZm9jdXNlZC5cblx0ICogZXguXG5cdCAqIEFycm93VXAgLT4gZm9jdXMgZmlyc3QgaXRlbVxuXHQgKiBBcnJvd1VwIC0+IGVtaXQgZXZlbnRcblx0ICpcblx0ICogV2hlbiB0aGlzIGV2ZW50IGZpcmVzIGZvY3VzIHNob3VsZCBiZSBwbGFjZWQgb24gc29tZSBlbGVtZW50IG91dHNpZGUgb2YgdGhlIGxpc3QgLSBibHVycmluZyB0aGUgbGlzdCBhcyBhIHJlc3VsdFxuXHQgKi9cblx0QE91dHB1dCgpIGJsdXJJbnRlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFwidG9wXCIgfCBcImJvdHRvbVwiPigpO1xuXHQvKipcblx0ICogTWFpbnRhaW5zIGEgcmVmZXJlbmNlIHRvIHRoZSB2aWV3IERPTSBlbGVtZW50IGZvciB0aGUgdW5vcmRlcmVkIGxpc3Qgb2YgaXRlbXMgd2l0aGluIHRoZSBgRHJvcGRvd25MaXN0YC5cblx0ICovXG5cdEBWaWV3Q2hpbGQoXCJsaXN0XCIsIHsgc3RhdGljOiB0cnVlIH0pIGxpc3Q6IEVsZW1lbnRSZWY7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIHdoZXRoZXIgb3Igbm90IHRoZSBgRHJvcGRvd25MaXN0YCBzdXBwb3J0cyBzZWxlY3RpbmcgbXVsdGlwbGUgaXRlbXMgYXMgb3Bwb3NlZCB0byBzaW5nbGVcblx0ICogaXRlbSBzZWxlY3Rpb24uXG5cdCAqL1xuXHRASW5wdXQoKSB0eXBlOiBcInNpbmdsZVwiIHwgXCJtdWx0aVwiID0gXCJzaW5nbGVcIjtcblxuXHQvKipcblx0ICogRGVmaW5lcyB3aGV0aGVyIHRvIHNob3cgdGl0bGUgYXR0cmlidXRlIG9yIG5vdFxuXHQgKi9cblx0QElucHV0KCkgc2hvd1RpdGxlcyA9IHRydWU7XG5cblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIHJlbmRlcmluZyBzaXplIG9mIHRoZSBgRHJvcGRvd25MaXN0YCBpbnB1dCBjb21wb25lbnQuXG5cdCAqL1xuXHRwdWJsaWMgc2l6ZTogXCJzbVwiIHwgXCJtZFwiIHwgXCJsZ1wiID0gXCJtZFwiO1xuXHRwdWJsaWMgbGlzdElkID0gYGxpc3Rib3gtJHtEcm9wZG93bkxpc3QubGlzdENvdW50Kyt9YDtcblx0cHVibGljIGhpZ2hsaWdodGVkSXRlbSA9IG51bGw7XG5cdC8qKlxuXHQgKiBIb2xkcyB0aGUgbGlzdCBvZiBpdGVtcyB0aGF0IHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSBgRHJvcGRvd25MaXN0YC5cblx0ICogSXQgZGlmZmVycyBmcm9tIHRoZSB0aGUgY29tcGxldGUgc2V0IG9mIGl0ZW1zIHdoZW4gZmlsdGVyaW5nIGlzIHVzZWQgKGJ1dFxuXHQgKiBpdCBpcyBhbHdheXMgYSBzdWJzZXQgb2YgdGhlIHRvdGFsIGl0ZW1zIGluIGBEcm9wZG93bkxpc3RgKS5cblx0ICovXG5cdHB1YmxpYyBkaXNwbGF5SXRlbXM6IEFycmF5PExpc3RJdGVtPiA9IFtdO1xuXHQvKipcblx0ICogTWFpbnRhaW5zIHRoZSBpbmRleCBmb3IgdGhlIHNlbGVjdGVkIGl0ZW0gd2l0aGluIHRoZSBgRHJvcGRvd25MaXN0YC5cblx0ICovXG5cdHByb3RlY3RlZCBpbmRleCA9IC0xO1xuXHQvKipcblx0ICogQW4gYXJyYXkgaG9sZGluZyB0aGUgSFRNTCBsaXN0IGVsZW1lbnRzIGluIHRoZSB2aWV3LlxuXHQgKi9cblx0QFZpZXdDaGlsZHJlbihcImxpc3RJdGVtXCIpIHByb3RlY3RlZCBsaXN0RWxlbWVudExpc3Q6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcblx0LyoqXG5cdCAqIE9ic2VydmFibGUgYm91bmQgdG8ga2V5ZG93biBldmVudHMgdG8gY29udHJvbCBmaWx0ZXJpbmcuXG5cdCAqL1xuXHRwcm90ZWN0ZWQgZm9jdXNKdW1wO1xuXHQvKipcblx0ICogVHJhY2tzIHRoZSBjdXJyZW50IChpZiBhbnkpIHN1YnNjcmlwdGlvbiB0byB0aGUgaXRlbXMgb2JzZXJ2YWJsZSBzbyB3ZSBjYW4gY2xlYW4gdXAgd2hlbiB0aGUgaW5wdXQgaXMgdXBkYXRlZC5cblx0ICovXG5cdHByb3RlY3RlZCBfaXRlbXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblx0LyoqXG5cdCAqIFVzZWQgdG8gcmV0YWluIHRoZSBvcmlnaW5hbCBpdGVtcyBwYXNzZWQgdG8gdGhlIHNldHRlci5cblx0ICovXG5cdHByb3RlY3RlZCBfb3JpZ2luYWxJdGVtczogQXJyYXk8TGlzdEl0ZW0+IHwgT2JzZXJ2YWJsZTxBcnJheTxMaXN0SXRlbT4+O1xuXHQvKipcblx0ICogVXNlZnVsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpdGVtcywgc2hvdWxkIGJlIGFjY2Vzc2VkIHZpYSBgZ2V0TGlzdEl0ZW1zYC5cblx0ICovXG5cdHByb3RlY3RlZCBfaXRlbXM6IEFycmF5PExpc3RJdGVtPiA9IFtdO1xuXHQvKipcblx0ICogVXNlZCB0byB3YWl0IGZvciBpdGVtcyBpbiBjYXNlIHRoZXkgYXJlIHBhc3NlZCB0aHJvdWdoIGFuIG9ic2VydmFibGUuXG5cdCAqL1xuXHRwcm90ZWN0ZWQgX2l0ZW1zUmVhZHk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgYERyb3Bkb3duTGlzdGAuXG5cdCAqL1xuXHRjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIGkxOG46IEkxOG4sIHByb3RlY3RlZCBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmKSB7fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgYXJyYXkgb2YgbGlzdCBpdGVtcyBhbmQgaW5kZXggb2YgdGhlIHNlbGVjdGVkIGl0ZW0gYWZ0ZXIgdmlldyBoYXMgcmVuZGVyZWQuXG5cdCAqIEFkZGl0aW9uYWxseSwgYW55IE9ic2VydmFibGVzIGZvciB0aGUgYERyb3Bkb3duTGlzdGAgYXJlIGluaXRpYWxpemVkLlxuXHQgKi9cblx0bmdBZnRlclZpZXdJbml0KCkge1xuXHRcdHRoaXMuaW5kZXggPSB0aGlzLmdldExpc3RJdGVtcygpLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uc2VsZWN0ZWQpO1xuXHRcdHRoaXMuc2V0dXBGb2N1c09ic2VydmFibGUoKTtcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMuZG9FbWl0U2VsZWN0KHRydWUpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlbW92ZXMgYW55IE9ic2VydmFibGVzIG9uIGRlc3RydWN0aW9uIG9mIHRoZSBjb21wb25lbnQuXG5cdCAqL1xuXHRuZ09uRGVzdHJveSgpIHtcblx0XHRpZiAodGhpcy5mb2N1c0p1bXApIHtcblx0XHRcdHRoaXMuZm9jdXNKdW1wLnVuc3Vic2NyaWJlKCk7XG5cdFx0fVxuXHRcdGlmICh0aGlzLl9pdGVtc1N1YnNjcmlwdGlvbikge1xuXHRcdFx0dGhpcy5faXRlbXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcblx0XHR9XG5cdH1cblxuXHRkb0VtaXRTZWxlY3QoaXNVcGRhdGUgPSB0cnVlKSB7XG5cdFx0aWYgKHRoaXMudHlwZSA9PT0gXCJzaW5nbGVcIikge1xuXHRcdFx0dGhpcy5zZWxlY3QuZW1pdCh7IGl0ZW06IHRoaXMuX2l0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLnNlbGVjdGVkKSwgaXNVcGRhdGU6IGlzVXBkYXRlIH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBhYnVzZSBqYXZhc2NyaXB0cyBvYmplY3QgbXV0YWJpbGl0eSB1bnRpbCB3ZSBjYW4gYnJlYWsgdGhlIEFQSSBhbmQgc3dpdGNoIHRvXG5cdFx0XHQvLyB7IGl0ZW1zOiBbXSwgaXNVcGRhdGU6IHRydWUgfVxuXHRcdFx0Y29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmdldFNlbGVjdGVkKCkgfHwgW107XG5cdFx0XHRzZWxlY3RlZFtcImlzVXBkYXRlXCJdID0gaXNVcGRhdGU7XG5cdFx0XHR0aGlzLnNlbGVjdC5lbWl0KHNlbGVjdGVkKTtcblx0XHR9XG5cdH1cblxuXHRnZXRJdGVtSWQoaW5kZXg6IG51bWJlcikge1xuXHRcdHJldHVybiBgJHt0aGlzLmxpc3RJZH0tJHtpbmRleH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFVwZGF0ZXMgdGhlIGRpc3BsYXllZCBsaXN0IG9mIGl0ZW1zIGFuZCB0aGVuIHJldHJpZXZlcyB0aGUgbW9zdCBjdXJyZW50IHByb3BlcnRpZXMgZm9yIHRoZSBgRHJvcGRvd25MaXN0YCBmcm9tIHRoZSBET00uXG5cdCAqL1xuXHR1cGRhdGVMaXN0KGl0ZW1zKSB7XG5cdFx0dGhpcy5faXRlbXMgPSBpdGVtcy5tYXAoaXRlbSA9PiBPYmplY3QuYXNzaWduKHt9LCBpdGVtKSk7XG5cdFx0dGhpcy5kaXNwbGF5SXRlbXMgPSB0aGlzLl9pdGVtcztcblx0XHR0aGlzLnVwZGF0ZUluZGV4KCk7XG5cdFx0dGhpcy5zZXR1cEZvY3VzT2JzZXJ2YWJsZSgpO1xuXHRcdHRoaXMuZG9FbWl0U2VsZWN0KCk7XG5cdH1cblxuXHQvKipcblx0ICogRmlsdGVycyB0aGUgaXRlbXMgYmVpbmcgZGlzcGxheWVkIGluIHRoZSBET00gbGlzdC5cblx0ICovXG5cdGZpbHRlckJ5KHF1ZXJ5ID0gXCJcIikge1xuXHRcdGlmIChxdWVyeSkge1xuXHRcdFx0dGhpcy5kaXNwbGF5SXRlbXMgPSB0aGlzLmdldExpc3RJdGVtcygpLmZpbHRlcihpdGVtID0+IGl0ZW0uY29udGVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHF1ZXJ5LnRvTG93ZXJDYXNlKCkpKTtcblx0XHRcdC8vIFJlc2V0IGluZGV4IGlmIGl0ZW1zIHdlcmUgZm91bmRcblx0XHRcdC8vIFByZXZlbnQgc2VsZWN0aW5nIGluZGV4IGluIGxpc3QgdGhhdCBhcmUgdW5kZWZpbmVkLlxuXHRcdFx0aWYgKHRoaXMuZGlzcGxheUl0ZW1zKSB7XG5cdFx0XHRcdHRoaXMuaW5kZXggPSAwO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmRpc3BsYXlJdGVtcyA9IHRoaXMuZ2V0TGlzdEl0ZW1zKCk7XG5cdFx0fVxuXG5cdFx0dGhpcy51cGRhdGVJbmRleCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEluaXRpYWxpemVzIChvciByZS1pbml0aWFsaXplcykgdGhlIE9ic2VydmFibGUgdGhhdCBoYW5kbGVzIHN3aXRjaGluZyBmb2N1cyB0byBhbiBlbGVtZW50IGJhc2VkIG9uXG5cdCAqIGtleSBpbnB1dCBtYXRjaGluZyB0aGUgZmlyc3QgbGV0dGVyIG9mIHRoZSBpdGVtIGluIHRoZSBsaXN0LlxuXHQgKi9cblx0c2V0dXBGb2N1c09ic2VydmFibGUoKSB7XG5cdFx0aWYgKCF0aGlzLmxpc3QpIHsgcmV0dXJuOyB9XG5cdFx0aWYgKHRoaXMuZm9jdXNKdW1wKSB7XG5cdFx0XHR0aGlzLmZvY3VzSnVtcC51bnN1YnNjcmliZSgpO1xuXHRcdH1cblx0XHRsZXQgZWxMaXN0ID0gQXJyYXkuZnJvbSh0aGlzLmxpc3QubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwibGlcIikpO1xuXHRcdHRoaXMuZm9jdXNKdW1wID0gd2F0Y2hGb2N1c0p1bXAodGhpcy5saXN0Lm5hdGl2ZUVsZW1lbnQsIGVsTGlzdClcblx0XHRcdC5zdWJzY3JpYmUoZWwgPT4ge1xuXHRcdFx0XHRlbC5mb2N1cygpO1xuXHRcdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgYExpc3RJdGVtYCB0aGF0IGlzIHN1YnNlcXVlbnQgdG8gdGhlIHNlbGVjdGVkIGl0ZW0gaW4gdGhlIGBEcm9wZG93bkxpc3RgLlxuXHQgKi9cblx0Z2V0TmV4dEl0ZW0oKTogTGlzdEl0ZW0ge1xuXHRcdGlmICh0aGlzLmluZGV4IDwgdGhpcy5kaXNwbGF5SXRlbXMubGVuZ3RoIC0gMSkge1xuXHRcdFx0dGhpcy5pbmRleCsrO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5kaXNwbGF5SXRlbXNbdGhpcy5pbmRleF07XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHNlbGVjdGVkIGl0ZW0gaXMgbm90IHRoZSBsYXN0IGl0ZW0gaW4gdGhlIGBEcm9wZG93bkxpc3RgLlxuXHQgKi9cblx0aGFzTmV4dEVsZW1lbnQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuaW5kZXggPCB0aGlzLmRpc3BsYXlJdGVtcy5sZW5ndGggLSAxICYmXG5cdFx0XHQoISh0aGlzLmluZGV4ID09PSB0aGlzLmRpc3BsYXlJdGVtcy5sZW5ndGggLSAyKSB8fCAhdGhpcy5kaXNwbGF5SXRlbXNbdGhpcy5pbmRleCArIDFdLmRpc2FibGVkKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBgSFRNTEVsZW1lbnRgIGZvciB0aGUgaXRlbSB0aGF0IGlzIHN1YnNlcXVlbnQgdG8gdGhlIHNlbGVjdGVkIGl0ZW0uXG5cdCAqL1xuXHRnZXROZXh0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG5cdFx0Ly8gT25seSByZXR1cm4gbmF0aXZlIGVsZW1lbnRzIGlmIHRoZXkgYXJlIHJlbmRlcmVkXG5cdFx0Y29uc3QgZWxlbUxpc3QgPSB0aGlzLmxpc3RFbGVtZW50TGlzdCA/IHRoaXMubGlzdEVsZW1lbnRMaXN0LnRvQXJyYXkoKSA6IFtdO1xuXHRcdGlmICghZWxlbUxpc3QubGVuZ3RoKSB7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cblx0XHQvKipcblx0XHQgKiBTdGFydCBjaGVja2luZyBmcm9tIG5leHQgaW5kZXhcblx0XHQgKiBDb250aW51ZSBsb29waW5nIHRocm91Z2ggdGhlIGxpc3QgdW50aWwgYSBub24gZGlzYWJlbGVkIGVsZW1lbnQgaXMgZm91bmQgb3Jcblx0XHQgKiBlbmQgb2YgbGlzdCBpcyByZWFjaGVkXG5cdFx0ICovXG5cdFx0Zm9yIChsZXQgaSA9IHRoaXMuaW5kZXggKyAxOyBpIDwgZWxlbUxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdC8vIElmIHRoZSB2YWx1ZXMgaW4gdGhlIGxpc3QgYXJlIG5vdCBkaXNhYmxlZFxuXHRcdFx0aWYgKCF0aGlzLmRpc3BsYXlJdGVtc1tpXS5kaXNhYmxlZCkge1xuXHRcdFx0XHR0aGlzLmluZGV4ID0gaTtcblx0XHRcdFx0cmV0dXJuIGVsZW1MaXN0W2ldLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGVsZW1MaXN0W3RoaXMuaW5kZXhdPy5uYXRpdmVFbGVtZW50O1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGBMaXN0SXRlbWAgdGhhdCBwcmVjZWRlcyB0aGUgc2VsZWN0ZWQgaXRlbSB3aXRoaW4gYERyb3Bkb3duTGlzdGAuXG5cdCAqL1xuXHRnZXRQcmV2SXRlbSgpOiBMaXN0SXRlbSB7XG5cdFx0aWYgKHRoaXMuaW5kZXggPiAwKSB7XG5cdFx0XHR0aGlzLmluZGV4LS07XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLmRpc3BsYXlJdGVtc1t0aGlzLmluZGV4XTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgc2VsZWN0ZWQgaXRlbSBpcyBub3QgdGhlIGZpcnN0IGluIHRoZSBsaXN0LlxuXHQgKi9cblx0aGFzUHJldkVsZW1lbnQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuaW5kZXggPiAwICYmICghKHRoaXMuaW5kZXggPT09IDEpIHx8ICF0aGlzLmRpc3BsYXlJdGVtc1swXS5kaXNhYmxlZCk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgYEhUTUxFbGVtZW50YCBmb3IgdGhlIGl0ZW0gdGhhdCBwcmVjZWRlcyB0aGUgc2VsZWN0ZWQgaXRlbS5cblx0ICovXG5cdGdldFByZXZFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcblx0XHQvLyBPbmx5IHJldHVybiBuYXRpdmUgZWxlbWVudHMgaWYgdGhleSBhcmUgcmVuZGVyZWRcblx0XHRjb25zdCBlbGVtTGlzdCA9IHRoaXMubGlzdEVsZW1lbnRMaXN0ID8gdGhpcy5saXN0RWxlbWVudExpc3QudG9BcnJheSgpIDogW107XG5cdFx0aWYgKCFlbGVtTGlzdC5sZW5ndGgpIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblxuXHRcdC8qKlxuXHRcdCAqIFN0YXJ0IGNoZWNraW5nIGZyb20gbmV4dCBpbmRleFxuXHRcdCAqIENvbnRpbnVlIGxvb3BpbmcgdGhyb3VnaCB0aGUgbGlzdCB1bnRpbCBhIG5vbiBkaXNhYmVsZWQgZWxlbWVudCBpcyBmb3VuZCBvclxuXHRcdCAqIGVuZCBvZiBsaXN0IGlzIHJlYWNoZWRcblx0XHQgKi9cblx0XHRmb3IgKGxldCBpID0gdGhpcy5pbmRleCAtIDE7IGkgPCB0aGlzLmluZGV4ICYmIGkgPj0gMDsgaS0tKSB7XG5cdFx0XHQvLyBJZiB0aGUgdmFsdWVzIGluIHRoZSBsaXN0IGFyZSBub3QgZGlzYWJsZWRcblx0XHRcdGlmICghdGhpcy5kaXNwbGF5SXRlbXNbaV0uZGlzYWJsZWQpIHtcblx0XHRcdFx0dGhpcy5pbmRleCA9IGk7XG5cdFx0XHRcdHJldHVybiBlbGVtTGlzdFtpXS5uYXRpdmVFbGVtZW50O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBlbGVtTGlzdFt0aGlzLmluZGV4XS5uYXRpdmVFbGVtZW50O1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGBMaXN0SXRlbWAgdGhhdCBpcyBzZWxlY3RlZCB3aXRoaW4gYERyb3Bkb3duTGlzdGAuXG5cdCAqL1xuXHRnZXRDdXJyZW50SXRlbSgpOiBMaXN0SXRlbSB7XG5cdFx0aWYgKHRoaXMuaW5kZXggPCAwKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5kaXNwbGF5SXRlbXNbMF07XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLmRpc3BsYXlJdGVtc1t0aGlzLmluZGV4XTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBgSFRNTEVsZW1lbnRgIGZvciB0aGUgaXRlbSB0aGF0IGlzIHNlbGVjdGVkIHdpdGhpbiB0aGUgYERyb3Bkb3duTGlzdGAuXG5cdCAqL1xuXHRnZXRDdXJyZW50RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG5cdFx0aWYgKHRoaXMuaW5kZXggPCAwKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5saXN0RWxlbWVudExpc3QuZmlyc3QubmF0aXZlRWxlbWVudDtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMubGlzdEVsZW1lbnRMaXN0LnRvQXJyYXkoKVt0aGlzLmluZGV4XS5uYXRpdmVFbGVtZW50O1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGl0ZW1zIGFzIGFuIEFycmF5XG5cdCAqL1xuXHRnZXRMaXN0SXRlbXMoKTogQXJyYXk8TGlzdEl0ZW0+IHtcblx0XHRyZXR1cm4gdGhpcy5faXRlbXM7XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyBhIGxpc3QgY29udGFpbmluZyB0aGUgc2VsZWN0ZWQgaXRlbShzKSBpbiB0aGUgYERyb3Bkb3duTGlzdGAuXG5cdCAqL1xuXHRnZXRTZWxlY3RlZCgpOiBMaXN0SXRlbVtdIHtcblx0XHRsZXQgc2VsZWN0ZWQgPSB0aGlzLmdldExpc3RJdGVtcygpLmZpbHRlcihpdGVtID0+IGl0ZW0uc2VsZWN0ZWQpO1xuXHRcdGlmIChzZWxlY3RlZC5sZW5ndGggPT09IDApIHtcblx0XHRcdHJldHVybiBbXTtcblx0XHR9XG5cdFx0cmV0dXJuIHNlbGVjdGVkO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRyYW5zZm9ybXMgYXJyYXkgaW5wdXQgbGlzdCBvZiBpdGVtcyB0byB0aGUgY29ycmVjdCBzdGF0ZSBieSB1cGRhdGluZyB0aGUgc2VsZWN0ZWQgaXRlbShzKS5cblx0ICovXG5cdHByb3BhZ2F0ZVNlbGVjdGVkKHZhbHVlOiBBcnJheTxMaXN0SXRlbT4pOiB2b2lkIHtcblx0XHQvLyBpZiB3ZSBnZXQgYSBub24tYXJyYXksIGxvZyBvdXQgYW4gZXJyb3IgKHNpbmNlIGl0IGlzIG9uZSlcblx0XHRpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdFx0XHRjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0ucHJvcGFnYXRlU2VsZWN0ZWQgZXhwZWN0cyBhbiBBcnJheTxMaXN0SXRlbT4sIGdvdCAke0pTT04uc3RyaW5naWZ5KHZhbHVlKX1gKTtcblx0XHR9XG5cdFx0dGhpcy5vbkl0ZW1zUmVhZHkoKCkgPT4ge1xuXHRcdFx0Ly8gbG9vcCB0aHJvdWdoIHRoZSBsaXN0IGl0ZW1zIGFuZCB1cGRhdGUgdGhlIGBzZWxlY3RlZGAgc3RhdGUgZm9yIG1hdGNoaW5nIGl0ZW1zIGluIGB2YWx1ZWBcblx0XHRcdGZvciAobGV0IG9sZEl0ZW0gb2YgdGhpcy5nZXRMaXN0SXRlbXMoKSkge1xuXHRcdFx0XHQvLyBjb3B5IHRoZSBpdGVtXG5cdFx0XHRcdGxldCB0ZW1wT2xkSXRlbTogc3RyaW5nIHwgTGlzdEl0ZW0gPSBPYmplY3QuYXNzaWduKHt9LCBvbGRJdGVtKTtcblx0XHRcdFx0Ly8gZGVsZXRlZCBzZWxlY3RlZCBiZWNhdXNlIGl0J3Mgd2hhdCB3ZSBfd2FudF8gdG8gY2hhbmdlXG5cdFx0XHRcdGRlbGV0ZSB0ZW1wT2xkSXRlbS5zZWxlY3RlZDtcblx0XHRcdFx0Ly8gc3RyaW5naWZ5IGZvciBjb21wYXJlXG5cdFx0XHRcdHRlbXBPbGRJdGVtID0gSlNPTi5zdHJpbmdpZnkodGVtcE9sZEl0ZW0pO1xuXHRcdFx0XHRmb3IgKGxldCBuZXdJdGVtIG9mIHZhbHVlKSB7XG5cdFx0XHRcdFx0Ly8gY29weSB0aGUgaXRlbVxuXHRcdFx0XHRcdGxldCB0ZW1wTmV3SXRlbTogc3RyaW5nIHwgTGlzdEl0ZW0gPSBPYmplY3QuYXNzaWduKHt9LCBuZXdJdGVtKTtcblx0XHRcdFx0XHQvLyBkZWxldGVkIHNlbGVjdGVkIGJlY2F1c2UgaXQncyB3aGF0IHdlIF93YW50XyB0byBjaGFuZ2Vcblx0XHRcdFx0XHRkZWxldGUgdGVtcE5ld0l0ZW0uc2VsZWN0ZWQ7XG5cdFx0XHRcdFx0Ly8gc3RyaW5naWZ5IGZvciBjb21wYXJlXG5cdFx0XHRcdFx0dGVtcE5ld0l0ZW0gPSBKU09OLnN0cmluZ2lmeSh0ZW1wTmV3SXRlbSk7XG5cdFx0XHRcdFx0Ly8gZG8gdGhlIGNvbXBhcmVcblx0XHRcdFx0XHRpZiAodGVtcE9sZEl0ZW0uaW5jbHVkZXModGVtcE5ld0l0ZW0pKSB7XG5cdFx0XHRcdFx0XHRvbGRJdGVtLnNlbGVjdGVkID0gbmV3SXRlbS5zZWxlY3RlZDtcblx0XHRcdFx0XHRcdC8vIGlmIHdlJ3ZlIGZvdW5kIGEgbWF0Y2hpbmcgaXRlbSwgd2UgY2FuIHN0b3AgbG9vcGluZ1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdG9sZEl0ZW0uc2VsZWN0ZWQgPSBmYWxzZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbml0aWFsaXplcyBmb2N1cyBpbiB0aGUgbGlzdCwgZWZmZWN0aXZlbHkgYSB3cmFwcGVyIGZvciBgZ2V0Q3VycmVudEVsZW1lbnQoKS5mb2N1cygpYFxuXHQgKi9cblx0aW5pdEZvY3VzKCkge1xuXHRcdGlmICh0aGlzLmluZGV4IDwgMCkge1xuXHRcdFx0dGhpcy51cGRhdGVJbmRleCgpO1xuXHRcdH1cblxuXHRcdHRoaXMubGlzdC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHR0aGlzLmhpZ2hsaWdodGVkSXRlbSA9IHRoaXMuZ2V0SXRlbUlkKHRoaXMuaW5kZXgpO1xuXHRcdH0pO1xuXHR9XG5cblx0dXBkYXRlSW5kZXgoKSB7XG5cdFx0Ly8gaW5pdGlhbGl6ZSBpbmRleCBvbiB0aGUgZmlyc3Qgc2VsZWN0ZWQgaXRlbSBvclxuXHRcdC8vIG9uIHRoZSBuZXh0IG5vbiBkaXNhYmxlZCBpdGVtIGlmIG5vIGl0ZW1zIGFyZSBzZWxlY3RlZFxuXHRcdC8vIGluIGNhc2UsIGlmIGFsbCBpdGVtcyBhcmUgZGlzYWJsZWQsIHRoZSBpbmRleCB2YWx1ZSB3aWxsIHJlbWFpbiBzYW1lXG5cdFx0Y29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmdldFNlbGVjdGVkKCk7XG5cdFx0aWYgKHNlbGVjdGVkLmxlbmd0aCkge1xuXHRcdFx0dGhpcy5pbmRleCA9IHRoaXMuZGlzcGxheUl0ZW1zLmluZGV4T2Yoc2VsZWN0ZWRbMF0pO1xuXHRcdH0gZWxzZSBpZiAodGhpcy5oYXNOZXh0RWxlbWVudCgpKSB7XG5cdFx0XHR0aGlzLmdldE5leHRFbGVtZW50KCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIE1hbmFnZXMgdGhlIGtleWJvYXJkIGFjY2Vzc2liaWxpdHkgZm9yIG5hdmlnYXRpb24gYW5kIHNlbGVjdGlvbiB3aXRoaW4gYSBgRHJvcGRvd25MaXN0YC5cblx0ICovXG5cdG5hdmlnYXRlTGlzdChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuXHRcdGlmIChldmVudC5rZXkgPT09IFwiRW50ZXJcIiB8fCBldmVudC5rZXkgPT09IFwiIFwiKSB7XG5cdFx0XHRpZiAodGhpcy5saXN0RWxlbWVudExpc3Quc29tZShvcHRpb24gPT4gb3B0aW9uLm5hdGl2ZUVsZW1lbnQgPT09IGV2ZW50LnRhcmdldCkpIHtcblx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdH1cblx0XHRcdGlmIChldmVudC5rZXkgPT09IFwiRW50ZXJcIikge1xuXHRcdFx0XHR0aGlzLmRvQ2xpY2soZXZlbnQsIHRoaXMuZ2V0Q3VycmVudEl0ZW0oKSk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmIChldmVudC5rZXkgPT09IFwiQXJyb3dEb3duXCIgfHwgZXZlbnQua2V5ID09PSBcIkFycm93VXBcIikge1xuXHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdGlmIChldmVudC5rZXkgPT09IFwiQXJyb3dEb3duXCIpIHtcblx0XHRcdFx0aWYgKHRoaXMuaGFzTmV4dEVsZW1lbnQoKSkge1xuXHRcdFx0XHRcdHRoaXMuZ2V0TmV4dEVsZW1lbnQoKT8uc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogXCJlbmRcIiB9KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLmJsdXJJbnRlbnQuZW1pdChcImJvdHRvbVwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmIChldmVudC5rZXkgPT09IFwiQXJyb3dVcFwiKSB7XG5cdFx0XHRcdGlmICh0aGlzLmhhc1ByZXZFbGVtZW50KCkpIHtcblx0XHRcdFx0XHR0aGlzLmdldFByZXZFbGVtZW50KCkuc2Nyb2xsSW50b1ZpZXcoeyAgYmxvY2s6IFwibmVhcmVzdFwiIH0pO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuYmx1ckludGVudC5lbWl0KFwidG9wXCIpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0dGhpcy5oaWdobGlnaHRlZEl0ZW0gPSB0aGlzLmdldEl0ZW1JZCh0aGlzLmluZGV4KTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBFbWl0cyB0aGUgc2VsZWN0ZWQgaXRlbSBvciBpdGVtcyBhZnRlciBhIG1vdXNlIGNsaWNrIGV2ZW50IGhhcyBvY2N1cnJlZC5cblx0ICovXG5cdGRvQ2xpY2soZXZlbnQsIGl0ZW0pIHtcblx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdGlmIChpdGVtICYmICFpdGVtLmRpc2FibGVkKSB7XG5cdFx0XHR0aGlzLmxpc3QubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXHRcdFx0aWYgKHRoaXMudHlwZSA9PT0gXCJzaW5nbGVcIikge1xuXHRcdFx0XHRpdGVtLnNlbGVjdGVkID0gdHJ1ZTtcblx0XHRcdFx0Ly8gcmVzZXQgdGhlIHNlbGVjdGlvblxuXHRcdFx0XHRmb3IgKGxldCBvdGhlckl0ZW0gb2YgdGhpcy5nZXRMaXN0SXRlbXMoKSkge1xuXHRcdFx0XHRcdGlmIChpdGVtICE9PSBvdGhlckl0ZW0pIHsgb3RoZXJJdGVtLnNlbGVjdGVkID0gZmFsc2U7IH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aXRlbS5zZWxlY3RlZCA9ICFpdGVtLnNlbGVjdGVkO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5pbmRleCA9IHRoaXMuZGlzcGxheUl0ZW1zLmluZGV4T2YoaXRlbSk7XG5cdFx0XHR0aGlzLmhpZ2hsaWdodGVkSXRlbSA9IHRoaXMuZ2V0SXRlbUlkKHRoaXMuaW5kZXgpO1xuXHRcdFx0dGhpcy5kb0VtaXRTZWxlY3QoZmFsc2UpO1xuXHRcdFx0dGhpcy5hcHBSZWYudGljaygpO1xuXHRcdH1cblx0fVxuXG5cdG9uSXRlbUZvY3VzKGluZGV4KSB7XG5cdFx0Y29uc3QgZWxlbWVudCA9IHRoaXMubGlzdEVsZW1lbnRMaXN0LnRvQXJyYXkoKVtpbmRleF0ubmF0aXZlRWxlbWVudDtcblx0XHRlbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJjZHMtLWxpc3QtYm94X19tZW51LWl0ZW0tLWhpZ2hsaWdodGVkXCIpO1xuXHRcdGVsZW1lbnQudGFiSW5kZXggPSAwO1xuXHR9XG5cblx0b25JdGVtQmx1cihpbmRleCkge1xuXHRcdGNvbnN0IGVsZW1lbnQgPSB0aGlzLmxpc3RFbGVtZW50TGlzdC50b0FycmF5KClbaW5kZXhdLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0ZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwiY2RzLS1saXN0LWJveF9fbWVudS1pdGVtLS1oaWdobGlnaHRlZFwiKTtcblx0XHRlbGVtZW50LnRhYkluZGV4ID0gLTE7XG5cdH1cblxuXHQvKipcblx0ICogRW1pdHMgdGhlIHNjcm9sbCBldmVudCBvZiB0aGUgb3B0aW9ucyBsaXN0XG5cdCAqL1xuXHRlbWl0U2Nyb2xsKGV2ZW50KSB7XG5cdFx0Y29uc3QgYXRUb3A6IGJvb2xlYW4gPSBldmVudC5zcmNFbGVtZW50LnNjcm9sbFRvcCA9PT0gMDtcblx0XHRjb25zdCBhdEJvdHRvbTogYm9vbGVhbiA9IGV2ZW50LnNyY0VsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gZXZlbnQuc3JjRWxlbWVudC5zY3JvbGxUb3AgPT09IGV2ZW50LnNyY0VsZW1lbnQuY2xpZW50SGVpZ2h0O1xuXHRcdGNvbnN0IGN1c3RvbVNjcm9sbEV2ZW50ID0geyBhdFRvcCwgYXRCb3R0b20sIGV2ZW50IH07XG5cdFx0dGhpcy5zY3JvbGwuZW1pdChjdXN0b21TY3JvbGxFdmVudCk7XG5cdH1cblxuXHQvKipcblx0ICogU3Vic2NyaWJlIHRoZSBmdW5jdGlvbiBwYXNzZWQgdG8gYW4gaW50ZXJuYWwgb2JzZXJ2YWJsZSB0aGF0IHdpbGwgcmVzb2x2ZSBvbmNlIHRoZSBpdGVtcyBhcmUgcmVhZHlcblx0ICovXG5cdG9uSXRlbXNSZWFkeShzdWJjcmlwdGlvbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuXHRcdC8vIHRoaXMgc3Vic2NyaXB0aW9uIHdpbGwgYXV0byB1bnN1YnNjcmliZSBiZWNhdXNlIG9mIHRoZSBgZmlyc3QoKWAgcGlwZVxuXHRcdCh0aGlzLl9pdGVtc1JlYWR5IHx8IG9mKHRydWUpKS5waXBlKGZpcnN0KCkpLnN1YnNjcmliZShzdWJjcmlwdGlvbik7XG5cdH1cblxuXHRyZW9yZGVyU2VsZWN0ZWQobW92ZUZvY3VzID0gdHJ1ZSk6IHZvaWQge1xuXHRcdHRoaXMuZGlzcGxheUl0ZW1zID0gWy4uLnRoaXMuZ2V0U2VsZWN0ZWQoKSwgLi4udGhpcy5nZXRMaXN0SXRlbXMoKS5maWx0ZXIoaXRlbSA9PiAhaXRlbS5zZWxlY3RlZCldO1xuXHRcdGlmIChtb3ZlRm9jdXMpIHtcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLnVwZGF0ZUluZGV4KCk7XG5cdFx0XHRcdHRoaXMuaGlnaGxpZ2h0ZWRJdGVtID0gdGhpcy5nZXRJdGVtSWQodGhpcy5pbmRleCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==
@@ -249,6 +249,11 @@ class BaseIconButton {
249
249
  * Set popover alignment
250
250
  */
251
251
  this.align = "bottom";
252
+ /**
253
+ * **Experimental**: Use floating-ui to position the tooltip
254
+ * This is not toggleable - should be assigned once
255
+ */
256
+ this.autoAlign = false;
252
257
  /**
253
258
  * Set delay before tooltip is shown
254
259
  */
@@ -260,7 +265,7 @@ class BaseIconButton {
260
265
  }
261
266
  }
262
267
  BaseIconButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BaseIconButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
263
- BaseIconButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: BaseIconButton, selector: "ng-component", inputs: { caret: "caret", dropShadow: "dropShadow", highContrast: "highContrast", isOpen: "isOpen", align: "align", enterDelayMs: "enterDelayMs", leaveDelayMs: "leaveDelayMs" }, ngImport: i0, template: "", isInline: true });
268
+ BaseIconButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: BaseIconButton, selector: "ng-component", inputs: { caret: "caret", dropShadow: "dropShadow", highContrast: "highContrast", isOpen: "isOpen", align: "align", autoAlign: "autoAlign", enterDelayMs: "enterDelayMs", leaveDelayMs: "leaveDelayMs" }, ngImport: i0, template: "", isInline: true });
264
269
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BaseIconButton, decorators: [{
265
270
  type: Component,
266
271
  args: [{
@@ -276,6 +281,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
276
281
  type: Input
277
282
  }], align: [{
278
283
  type: Input
284
+ }], autoAlign: [{
285
+ type: Input
279
286
  }], enterDelayMs: [{
280
287
  type: Input
281
288
  }], leaveDelayMs: [{
@@ -394,6 +401,7 @@ IconButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "1
394
401
  [highContrast]="highContrast"
395
402
  [isOpen]="isOpen"
396
403
  [align]="align"
404
+ [autoAlign]="autoAlign"
397
405
  [enterDelayMs]="enterDelayMs"
398
406
  [leaveDelayMs]="leaveDelayMs"
399
407
  (click)="emitClickEvent($event, 'tooltip')">
@@ -428,6 +436,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
428
436
  [highContrast]="highContrast"
429
437
  [isOpen]="isOpen"
430
438
  [align]="align"
439
+ [autoAlign]="autoAlign"
431
440
  [enterDelayMs]="enterDelayMs"
432
441
  [leaveDelayMs]="leaveDelayMs"
433
442
  (click)="emitClickEvent($event, 'tooltip')">
@@ -1 +1 @@
1
- {"version":3,"file":"carbon-components-angular-button.mjs","sources":["../../src/button/button.directive.ts","../../src/button/button-set.component.ts","../../src/button/base-icon-button.component.ts","../../src/button/icon-button.component.ts","../../src/button/button.module.ts","../../src/button/carbon-components-angular-button.ts"],"sourcesContent":["import {\n\tDirective,\n\tHostBinding,\n\tInput\n} from \"@angular/core\";\nimport { ButtonSize, ButtonType } from \"./button.types\";\n\n/**\n * A convenience directive for applying styling to a button. Get started with importing the module:\n *\n * ```typescript\n * import { ButtonModule } from 'carbon-components-angular';\n * ```\n *\n * Example:\n *\n * ```html\n * <button cdsButton>A button</button>\n * <button cdsButton=\"secondary\">A secondary button</button>\n * ```\n *\n * See the [vanilla carbon docs](http://www.carbondesignsystem.com/components/button/code) for more detail.\n *\n * [See demo](../../?path=/story/components-button--basic)\n */\n@Directive({\n\tselector: \"[cdsButton], [ibmButton]\"\n})\nexport class Button {\n\t/**\n\t * @deprecated as of v5 - Use `cdsButton` input property instead\n\t */\n\t@Input() set ibmButton(type: ButtonType) {\n\t\tthis.cdsButton = type;\n\t}\n\t/**\n\t * Sets the button type\n\t * Accepts `ButtonType` or nothing (empty string which is equivalent to \"primary\")\n\t * Empty string has been added as an option for Angular 16+ to resolve type errors\n\t */\n\t@Input() cdsButton: ButtonType | \"\" = \"primary\";\n\t/**\n\t * Specify the size of the button\n\t */\n\t@Input() size: ButtonSize;\n\t/**\n\t * Set to `true` for a skeleton state button\n\t */\n\t@HostBinding(\"class.cds--skeleton\") @Input() skeleton = false;\n\t/**\n\t * Set to `true` if the button contains only an icon\n\t * This should only be used for creating custom icon buttons, otherwise use\n\t * `<cds-icon-button></cds-icon-button>` component\n\t */\n\t@HostBinding(\"class.cds--btn--icon-only\") @Input() iconOnly = false;\n\n\t/**\n\t * Set to `true` for a \"expressive\" style button\n\t */\n\t@HostBinding(\"class.cds--btn--expressive\") @Input() isExpressive = false;\n\n\t// a whole lot of HostBindings ... this way we don't have to touch the elementRef directly\n\t@HostBinding(\"class.cds--btn\") baseClass = true;\n\t@HostBinding(\"class.cds--btn--primary\") get primaryButton() {\n\t\treturn this.cdsButton === \"primary\" || !this.cdsButton;\n\t}\n\t@HostBinding(\"class.cds--btn--secondary\") get secondaryButton() {\n\t\treturn this.cdsButton === \"secondary\";\n\t}\n\t@HostBinding(\"class.cds--btn--tertiary\") get tertiaryButton() {\n\t\treturn this.cdsButton === \"tertiary\";\n\t}\n\t@HostBinding(\"class.cds--btn--ghost\") get ghostButton() {\n\t\treturn this.cdsButton === \"ghost\";\n\t}\n\t@HostBinding(\"class.cds--btn--danger\") get dangerButton() {\n\t\treturn this.cdsButton === \"danger\" || this.cdsButton === \"danger--primary\";\n\t}\n\t@HostBinding(\"class.cds--btn--danger--tertiary\") get dangerTertiary() {\n\t\treturn this.cdsButton === \"danger--tertiary\";\n\t}\n\t@HostBinding(\"class.cds--btn--danger--ghost\") get dangerGhost() {\n\t\treturn this.cdsButton === \"danger--ghost\";\n\t}\n\t/**\n\t * @todo remove `cds--btn--${size}` classes in v12\n\t */\n\t@HostBinding(\"class.cds--btn--sm\") get smallSize() {\n\t\treturn this.size === \"sm\" && !this.isExpressive;\n\t}\n\t@HostBinding(\"class.cds--btn--md\") get mediumSize() {\n\t\treturn this.size === \"md\" && !this.isExpressive;\n\t}\n\t@HostBinding(\"class.cds--btn--lg\") get largeSize() {\n\t\treturn this.size === \"lg\";\n\t}\n\t@HostBinding(\"class.cds--btn--xl\") get extraLargeSize() {\n\t\treturn this.size === \"xl\";\n\t}\n\t@HostBinding(\"class.cds--btn--2xl\") get twoExtraLargeSize() {\n\t\treturn this.size === \"2xl\";\n\t}\n\n\t// Size classes\n\t@HostBinding(\"class.cds--layout--size-sm\") get smallLayoutSize() {\n\t\treturn this.size === \"sm\" && !this.isExpressive;\n\t}\n\t@HostBinding(\"class.cds--layout--size-md\") get mediumLayoutSize() {\n\t\treturn this.size === \"md\" && !this.isExpressive;\n\t}\n\t@HostBinding(\"class.cds--layout--size-lg\") get largeLayoutSize() {\n\t\treturn this.size === \"lg\";\n\t}\n\t@HostBinding(\"class.cds--layout--size-xl\") get extraLargeLayoutSize() {\n\t\treturn this.size === \"xl\";\n\t}\n\t@HostBinding(\"class.cds--layout--size-2xl\") get twoExtraLargeLayoutSize() {\n\t\treturn this.size === \"2xl\";\n\t}\n\n\n}\n","import { Component, HostBinding } from \"@angular/core\";\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { ButtonModule } from 'carbon-components-angular';\n * ```\n *\n * [See demo](../../?path=/story/components-button-button-set--basic)\n */\n@Component({\n\tselector: \"cds-button-set, ibm-button-set\",\n\ttemplate: \"<ng-content></ng-content>\"\n})\nexport class ButtonSet {\n\t@HostBinding(\"class.cds--btn-set\") buttonSetClass = true;\n}\n","import { Component, Input } from \"@angular/core\";\n\n/**\n * Base button with common input properties for configuring icon button.\n * Extend class to inherit @Input meta data\n *\n * Used by pagination nav icon button, code snippet, etc.\n */\n@Component({\n\ttemplate: \"\"\n})\nexport class BaseIconButton {\n\t/**\n\t * Set to `false` to hide caret\n\t */\n\t@Input() caret = true;\n\t/**\n\t * Set to `false` to hide shadow\n\t */\n\t@Input() dropShadow = true;\n\t/**\n\t * Set to `true` to enable high contrast\n\t */\n\t@Input() highContrast = true;\n\t/**\n\t * Set to `true` to have the popover open by default\n\t */\n\t@Input() isOpen = false;\n\t/**\n\t * Set popover alignment\n\t */\n\t@Input() align: \"top\" | \"top-left\" | \"top-right\" |\n\t\t\"bottom\" | \"bottom-left\" | \"bottom-right\" |\n\t\t\"left\" | \"left-bottom\" | \"left-top\" |\n\t\t\"right\" | \"right-bottom\" | \"right-top\" = \"bottom\";\n\t/**\n\t * Set delay before tooltip is shown\n\t */\n\t@Input() enterDelayMs = 100;\n\t/**\n\t * Set delay when tooltip disappears\n\t */\n\t@Input() leaveDelayMs = 300;\n}\n","import {\n\tAfterViewInit,\n\tComponent,\n\tElementRef,\n\tEventEmitter,\n\tInput,\n\tOutput,\n\tRenderer2,\n\tTemplateRef,\n\tViewChild\n} from \"@angular/core\";\nimport { BaseIconButton } from \"./base-icon-button.component\";\nimport { ButtonSize, ButtonType } from \"./button.types\";\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { ButtonModule } from 'carbon-components-angular';\n * ```\n *\n * [See demo](../../?path=/story/components-button-icon-button--basic)\n */\n@Component({\n\tselector: \"cds-icon-button, ibm-icon-button\",\n\ttemplate: `\n\t<cds-tooltip\n\t\tclass=\"cds--icon-tooltip\"\n\t\t[description]=\"description\"\n\t\t[disabled]=\"disabled\"\n\t\t[caret]=\"caret\"\n\t\t[dropShadow]=\"dropShadow\"\n\t\t[highContrast]=\"highContrast\"\n\t\t[isOpen]=\"isOpen\"\n\t\t[align]=\"align\"\n\t\t[enterDelayMs]=\"enterDelayMs\"\n\t\t[leaveDelayMs]=\"leaveDelayMs\"\n\t\t(click)=\"emitClickEvent($event, 'tooltip')\">\n\t\t<button\n\t\t\t#button\n\t\t\t[id]=\"buttonId\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t[attr.type]=\"type\"\n\t\t\t[iconOnly]=\"true\"\n\t\t\t[ngClass]=\"buttonNgClass\"\n\t\t\t[cdsButton]=\"kind\"\n\t\t\t[size]=\"size\"\n\t\t\t[isExpressive]=\"isExpressive\"\n\t\t\t(click)=\"emitClickEvent($event)\"\n\t\t\t(focus)=\"focus.emit($event)\"\n\t\t\t(blur)=\"blur.emit($event)\">\n\t\t\t<ng-content></ng-content>\n\t\t</button>\n\t</cds-tooltip>\n\t`\n})\nexport class IconButton extends BaseIconButton implements AfterViewInit {\n\t/**\n\t * Pass global carbon classes to icon button\n\t */\n\t@Input() set buttonNgClass(obj: { [key: string]: boolean }) {\n\t\tthis.classList = Object.assign({ \"cds--btn--disabled\": this.disabled }, obj);\n\t}\n\n\tget buttonNgClass() {\n\t\treturn this.classList;\n\t}\n\n\t/**\n\t * @param obj: { [key: string]: string\n\t * User can pass additional button attributes if component property does not already exist\n\t * Key is the attribute name & value is the attribute value for the button\n\t */\n\t@Input() set buttonAttributes(obj: { [key: string]: string }) {\n\t\tif (this.button) {\n\t\t\t// Remove old attributes\n\t\t\tObject.keys(this.attributeList).forEach((key: string) => {\n\t\t\t\tthis.renderer.removeAttribute(this.button.nativeElement, key);\n\t\t\t});\n\t\t\t// Set new attributes\n\t\t\tObject.keys(obj).forEach((key: string) => {\n\t\t\t\tthis.renderer.setAttribute(this.button.nativeElement, key, obj[key]);\n\t\t\t});\n\t\t}\n\t\t// Set new attributes\n\t\tthis.attributeList = obj;\n\t}\n\n\tget buttonAttributes() {\n\t\treturn this.buttonAttributes;\n\t}\n\n\tstatic iconButtonCounter = 0;\n\n\t@ViewChild(\"button\") button: ElementRef;\n\n\t/**\n\t * Override id\n\t */\n\t@Input() buttonId = `icon-btn-${IconButton.iconButtonCounter++}`;\n\t/**\n\t * Sets the button type.\n\t */\n\t@Input() kind: ButtonType = \"primary\";\n\t/**\n\t * Specify the size of the button.\n\t */\n\t@Input() size: ButtonSize = \"lg\";\n\t/**\n\t * Set button type, `button` by default\n\t */\n\t@Input() type = \"button\";\n\t/**\n\t * Set to `true` to make button expressive\n\t */\n\t@Input() isExpressive = false;\n\t/**\n\t * Set to `true` to disable button\n\t */\n\t@Input() disabled = false;\n\t/**\n\t * The string or template content to be exposed by the tooltip.\n\t */\n\t@Input() description: string | TemplateRef<any>;\n\n\t/**\n\t * Common button events\n\t */\n\t@Output() click = new EventEmitter<Event>();\n\t@Output() focus = new EventEmitter<Event>();\n\t@Output() blur = new EventEmitter<Event>();\n\t/**\n\t * Event to emit when click event is fired from tooltip\n\t */\n\t@Output() tooltipClick = new EventEmitter<Event>();\n\n\tprivate classList: { [key: string]: boolean } = {};\n\tprivate attributeList: { [key: string]: string } = {};\n\n\tconstructor(private renderer: Renderer2) {\n\t\tsuper();\n\t}\n\n\tngAfterViewInit(): void {\n\t\t// Set attributes once element is found\n\t\tthis.buttonAttributes = this.attributeList;\n\t}\n\n\t/**\n\t * Stop propogation of click event\n\t * Else double fires (click) event\n\t */\n\temitClickEvent(event, element: \"tooltip\" | \"button\" = \"button\") {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\t// Prevents (click) event from bubbling since it would appear user clicked the `button`\n\t\tif (element === \"tooltip\") {\n\t\t\tthis.tooltipClick.emit(event);\n\t\t\treturn;\n\t\t}\n\t\tthis.click.emit(event);\n\t}\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { Button } from \"./button.directive\";\nimport { ButtonSet } from \"./button-set.component\";\nimport { BaseIconButton } from \"./base-icon-button.component\";\nimport { IconButton } from \"./icon-button.component\";\n\nimport { TooltipModule } from \"carbon-components-angular/tooltip\";\n\n@NgModule({\n\tdeclarations: [\n\t\tButton,\n\t\tButtonSet,\n\t\tBaseIconButton,\n\t\tIconButton\n\t],\n\texports: [\n\t\tButton,\n\t\tButtonSet,\n\t\tIconButton\n\t],\n\timports: [CommonModule, TooltipModule]\n})\nexport class ButtonModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3.Button"],"mappings":"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"}
1
+ {"version":3,"file":"carbon-components-angular-button.mjs","sources":["../../src/button/button.directive.ts","../../src/button/button-set.component.ts","../../src/button/base-icon-button.component.ts","../../src/button/icon-button.component.ts","../../src/button/button.module.ts","../../src/button/carbon-components-angular-button.ts"],"sourcesContent":["import {\n\tDirective,\n\tHostBinding,\n\tInput\n} from \"@angular/core\";\nimport { ButtonSize, ButtonType } from \"./button.types\";\n\n/**\n * A convenience directive for applying styling to a button. Get started with importing the module:\n *\n * ```typescript\n * import { ButtonModule } from 'carbon-components-angular';\n * ```\n *\n * Example:\n *\n * ```html\n * <button cdsButton>A button</button>\n * <button cdsButton=\"secondary\">A secondary button</button>\n * ```\n *\n * See the [vanilla carbon docs](http://www.carbondesignsystem.com/components/button/code) for more detail.\n *\n * [See demo](../../?path=/story/components-button--basic)\n */\n@Directive({\n\tselector: \"[cdsButton], [ibmButton]\"\n})\nexport class Button {\n\t/**\n\t * @deprecated as of v5 - Use `cdsButton` input property instead\n\t */\n\t@Input() set ibmButton(type: ButtonType) {\n\t\tthis.cdsButton = type;\n\t}\n\t/**\n\t * Sets the button type\n\t * Accepts `ButtonType` or nothing (empty string which is equivalent to \"primary\")\n\t * Empty string has been added as an option for Angular 16+ to resolve type errors\n\t */\n\t@Input() cdsButton: ButtonType | \"\" = \"primary\";\n\t/**\n\t * Specify the size of the button\n\t */\n\t@Input() size: ButtonSize;\n\t/**\n\t * Set to `true` for a skeleton state button\n\t */\n\t@HostBinding(\"class.cds--skeleton\") @Input() skeleton = false;\n\t/**\n\t * Set to `true` if the button contains only an icon\n\t * This should only be used for creating custom icon buttons, otherwise use\n\t * `<cds-icon-button></cds-icon-button>` component\n\t */\n\t@HostBinding(\"class.cds--btn--icon-only\") @Input() iconOnly = false;\n\n\t/**\n\t * Set to `true` for a \"expressive\" style button\n\t */\n\t@HostBinding(\"class.cds--btn--expressive\") @Input() isExpressive = false;\n\n\t// a whole lot of HostBindings ... this way we don't have to touch the elementRef directly\n\t@HostBinding(\"class.cds--btn\") baseClass = true;\n\t@HostBinding(\"class.cds--btn--primary\") get primaryButton() {\n\t\treturn this.cdsButton === \"primary\" || !this.cdsButton;\n\t}\n\t@HostBinding(\"class.cds--btn--secondary\") get secondaryButton() {\n\t\treturn this.cdsButton === \"secondary\";\n\t}\n\t@HostBinding(\"class.cds--btn--tertiary\") get tertiaryButton() {\n\t\treturn this.cdsButton === \"tertiary\";\n\t}\n\t@HostBinding(\"class.cds--btn--ghost\") get ghostButton() {\n\t\treturn this.cdsButton === \"ghost\";\n\t}\n\t@HostBinding(\"class.cds--btn--danger\") get dangerButton() {\n\t\treturn this.cdsButton === \"danger\" || this.cdsButton === \"danger--primary\";\n\t}\n\t@HostBinding(\"class.cds--btn--danger--tertiary\") get dangerTertiary() {\n\t\treturn this.cdsButton === \"danger--tertiary\";\n\t}\n\t@HostBinding(\"class.cds--btn--danger--ghost\") get dangerGhost() {\n\t\treturn this.cdsButton === \"danger--ghost\";\n\t}\n\t/**\n\t * @todo remove `cds--btn--${size}` classes in v12\n\t */\n\t@HostBinding(\"class.cds--btn--sm\") get smallSize() {\n\t\treturn this.size === \"sm\" && !this.isExpressive;\n\t}\n\t@HostBinding(\"class.cds--btn--md\") get mediumSize() {\n\t\treturn this.size === \"md\" && !this.isExpressive;\n\t}\n\t@HostBinding(\"class.cds--btn--lg\") get largeSize() {\n\t\treturn this.size === \"lg\";\n\t}\n\t@HostBinding(\"class.cds--btn--xl\") get extraLargeSize() {\n\t\treturn this.size === \"xl\";\n\t}\n\t@HostBinding(\"class.cds--btn--2xl\") get twoExtraLargeSize() {\n\t\treturn this.size === \"2xl\";\n\t}\n\n\t// Size classes\n\t@HostBinding(\"class.cds--layout--size-sm\") get smallLayoutSize() {\n\t\treturn this.size === \"sm\" && !this.isExpressive;\n\t}\n\t@HostBinding(\"class.cds--layout--size-md\") get mediumLayoutSize() {\n\t\treturn this.size === \"md\" && !this.isExpressive;\n\t}\n\t@HostBinding(\"class.cds--layout--size-lg\") get largeLayoutSize() {\n\t\treturn this.size === \"lg\";\n\t}\n\t@HostBinding(\"class.cds--layout--size-xl\") get extraLargeLayoutSize() {\n\t\treturn this.size === \"xl\";\n\t}\n\t@HostBinding(\"class.cds--layout--size-2xl\") get twoExtraLargeLayoutSize() {\n\t\treturn this.size === \"2xl\";\n\t}\n\n\n}\n","import { Component, HostBinding } from \"@angular/core\";\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { ButtonModule } from 'carbon-components-angular';\n * ```\n *\n * [See demo](../../?path=/story/components-button-button-set--basic)\n */\n@Component({\n\tselector: \"cds-button-set, ibm-button-set\",\n\ttemplate: \"<ng-content></ng-content>\"\n})\nexport class ButtonSet {\n\t@HostBinding(\"class.cds--btn-set\") buttonSetClass = true;\n}\n","import { Component, Input } from \"@angular/core\";\n\n/**\n * Base button with common input properties for configuring icon button.\n * Extend class to inherit @Input meta data\n *\n * Used by pagination nav icon button, code snippet, etc.\n */\n@Component({\n\ttemplate: \"\"\n})\nexport class BaseIconButton {\n\t/**\n\t * Set to `false` to hide caret\n\t */\n\t@Input() caret = true;\n\t/**\n\t * Set to `false` to hide shadow\n\t */\n\t@Input() dropShadow = true;\n\t/**\n\t * Set to `true` to enable high contrast\n\t */\n\t@Input() highContrast = true;\n\t/**\n\t * Set to `true` to have the popover open by default\n\t */\n\t@Input() isOpen = false;\n\t/**\n\t * Set popover alignment\n\t */\n\t@Input() align: \"top\" | \"top-left\" | \"top-right\" |\n\t\t\"bottom\" | \"bottom-left\" | \"bottom-right\" |\n\t\t\"left\" | \"left-bottom\" | \"left-top\" |\n\t\t\"right\" | \"right-bottom\" | \"right-top\" = \"bottom\";\n\t/**\n\t * **Experimental**: Use floating-ui to position the tooltip\n\t * This is not toggleable - should be assigned once\n\t */\n\t@Input() autoAlign = false;\n\t/**\n\t * Set delay before tooltip is shown\n\t */\n\t@Input() enterDelayMs = 100;\n\t/**\n\t * Set delay when tooltip disappears\n\t */\n\t@Input() leaveDelayMs = 300;\n}\n","import {\n\tAfterViewInit,\n\tComponent,\n\tElementRef,\n\tEventEmitter,\n\tInput,\n\tOutput,\n\tRenderer2,\n\tTemplateRef,\n\tViewChild\n} from \"@angular/core\";\nimport { BaseIconButton } from \"./base-icon-button.component\";\nimport { ButtonSize, ButtonType } from \"./button.types\";\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { ButtonModule } from 'carbon-components-angular';\n * ```\n *\n * [See demo](../../?path=/story/components-button-icon-button--basic)\n */\n@Component({\n\tselector: \"cds-icon-button, ibm-icon-button\",\n\ttemplate: `\n\t<cds-tooltip\n\t\tclass=\"cds--icon-tooltip\"\n\t\t[description]=\"description\"\n\t\t[disabled]=\"disabled\"\n\t\t[caret]=\"caret\"\n\t\t[dropShadow]=\"dropShadow\"\n\t\t[highContrast]=\"highContrast\"\n\t\t[isOpen]=\"isOpen\"\n\t\t[align]=\"align\"\n\t\t[autoAlign]=\"autoAlign\"\n\t\t[enterDelayMs]=\"enterDelayMs\"\n\t\t[leaveDelayMs]=\"leaveDelayMs\"\n\t\t(click)=\"emitClickEvent($event, 'tooltip')\">\n\t\t<button\n\t\t\t#button\n\t\t\t[id]=\"buttonId\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t[attr.type]=\"type\"\n\t\t\t[iconOnly]=\"true\"\n\t\t\t[ngClass]=\"buttonNgClass\"\n\t\t\t[cdsButton]=\"kind\"\n\t\t\t[size]=\"size\"\n\t\t\t[isExpressive]=\"isExpressive\"\n\t\t\t(click)=\"emitClickEvent($event)\"\n\t\t\t(focus)=\"focus.emit($event)\"\n\t\t\t(blur)=\"blur.emit($event)\">\n\t\t\t<ng-content></ng-content>\n\t\t</button>\n\t</cds-tooltip>\n\t`\n})\nexport class IconButton extends BaseIconButton implements AfterViewInit {\n\t/**\n\t * Pass global carbon classes to icon button\n\t */\n\t@Input() set buttonNgClass(obj: { [key: string]: boolean }) {\n\t\tthis.classList = Object.assign({ \"cds--btn--disabled\": this.disabled }, obj);\n\t}\n\n\tget buttonNgClass() {\n\t\treturn this.classList;\n\t}\n\n\t/**\n\t * @param obj: { [key: string]: string\n\t * User can pass additional button attributes if component property does not already exist\n\t * Key is the attribute name & value is the attribute value for the button\n\t */\n\t@Input() set buttonAttributes(obj: { [key: string]: string }) {\n\t\tif (this.button) {\n\t\t\t// Remove old attributes\n\t\t\tObject.keys(this.attributeList).forEach((key: string) => {\n\t\t\t\tthis.renderer.removeAttribute(this.button.nativeElement, key);\n\t\t\t});\n\t\t\t// Set new attributes\n\t\t\tObject.keys(obj).forEach((key: string) => {\n\t\t\t\tthis.renderer.setAttribute(this.button.nativeElement, key, obj[key]);\n\t\t\t});\n\t\t}\n\t\t// Set new attributes\n\t\tthis.attributeList = obj;\n\t}\n\n\tget buttonAttributes() {\n\t\treturn this.buttonAttributes;\n\t}\n\n\tstatic iconButtonCounter = 0;\n\n\t@ViewChild(\"button\") button: ElementRef;\n\n\t/**\n\t * Override id\n\t */\n\t@Input() buttonId = `icon-btn-${IconButton.iconButtonCounter++}`;\n\t/**\n\t * Sets the button type.\n\t */\n\t@Input() kind: ButtonType = \"primary\";\n\t/**\n\t * Specify the size of the button.\n\t */\n\t@Input() size: ButtonSize = \"lg\";\n\t/**\n\t * Set button type, `button` by default\n\t */\n\t@Input() type = \"button\";\n\t/**\n\t * Set to `true` to make button expressive\n\t */\n\t@Input() isExpressive = false;\n\t/**\n\t * Set to `true` to disable button\n\t */\n\t@Input() disabled = false;\n\t/**\n\t * The string or template content to be exposed by the tooltip.\n\t */\n\t@Input() description: string | TemplateRef<any>;\n\n\t/**\n\t * Common button events\n\t */\n\t@Output() click = new EventEmitter<Event>();\n\t@Output() focus = new EventEmitter<Event>();\n\t@Output() blur = new EventEmitter<Event>();\n\t/**\n\t * Event to emit when click event is fired from tooltip\n\t */\n\t@Output() tooltipClick = new EventEmitter<Event>();\n\n\tprivate classList: { [key: string]: boolean } = {};\n\tprivate attributeList: { [key: string]: string } = {};\n\n\tconstructor(private renderer: Renderer2) {\n\t\tsuper();\n\t}\n\n\tngAfterViewInit(): void {\n\t\t// Set attributes once element is found\n\t\tthis.buttonAttributes = this.attributeList;\n\t}\n\n\t/**\n\t * Stop propogation of click event\n\t * Else double fires (click) event\n\t */\n\temitClickEvent(event, element: \"tooltip\" | \"button\" = \"button\") {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\t// Prevents (click) event from bubbling since it would appear user clicked the `button`\n\t\tif (element === \"tooltip\") {\n\t\t\tthis.tooltipClick.emit(event);\n\t\t\treturn;\n\t\t}\n\t\tthis.click.emit(event);\n\t}\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { Button } from \"./button.directive\";\nimport { ButtonSet } from \"./button-set.component\";\nimport { BaseIconButton } from \"./base-icon-button.component\";\nimport { IconButton } from \"./icon-button.component\";\n\nimport { TooltipModule } from \"carbon-components-angular/tooltip\";\n\n@NgModule({\n\tdeclarations: [\n\t\tButton,\n\t\tButtonSet,\n\t\tBaseIconButton,\n\t\tIconButton\n\t],\n\texports: [\n\t\tButton,\n\t\tButtonSet,\n\t\tIconButton\n\t],\n\timports: [CommonModule, TooltipModule]\n})\nexport class ButtonModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3.Button"],"mappings":"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"}
@@ -1377,6 +1377,7 @@ class DropdownList {
1377
1377
  * Returns the `HTMLElement` for the item that is subsequent to the selected item.
1378
1378
  */
1379
1379
  getNextElement() {
1380
+ var _a;
1380
1381
  // Only return native elements if they are rendered
1381
1382
  const elemList = this.listElementList ? this.listElementList.toArray() : [];
1382
1383
  if (!elemList.length) {
@@ -1394,7 +1395,7 @@ class DropdownList {
1394
1395
  return elemList[i].nativeElement;
1395
1396
  }
1396
1397
  }
1397
- return elemList[this.index].nativeElement;
1398
+ return (_a = elemList[this.index]) === null || _a === void 0 ? void 0 : _a.nativeElement;
1398
1399
  }
1399
1400
  /**
1400
1401
  * Returns the `ListItem` that precedes the selected item within `DropdownList`.
@@ -1520,6 +1521,7 @@ class DropdownList {
1520
1521
  updateIndex() {
1521
1522
  // initialize index on the first selected item or
1522
1523
  // on the next non disabled item if no items are selected
1524
+ // in case, if all items are disabled, the index value will remain same
1523
1525
  const selected = this.getSelected();
1524
1526
  if (selected.length) {
1525
1527
  this.index = this.displayItems.indexOf(selected[0]);
@@ -1532,6 +1534,7 @@ class DropdownList {
1532
1534
  * Manages the keyboard accessibility for navigation and selection within a `DropdownList`.
1533
1535
  */
1534
1536
  navigateList(event) {
1537
+ var _a;
1535
1538
  if (event.key === "Enter" || event.key === " ") {
1536
1539
  if (this.listElementList.some(option => option.nativeElement === event.target)) {
1537
1540
  event.preventDefault();
@@ -1544,7 +1547,7 @@ class DropdownList {
1544
1547
  event.preventDefault();
1545
1548
  if (event.key === "ArrowDown") {
1546
1549
  if (this.hasNextElement()) {
1547
- this.getNextElement().scrollIntoView({ block: "end" });
1550
+ (_a = this.getNextElement()) === null || _a === void 0 ? void 0 : _a.scrollIntoView({ block: "end" });
1548
1551
  }
1549
1552
  else {
1550
1553
  this.blurIntent.emit("bottom");