carbon-components-angular 5.12.3 → 5.13.0

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 (107) hide show
  1. package/accordion/accordion.component.d.ts +3 -0
  2. package/button/button.directive.d.ts +8 -0
  3. package/docs/documentation/classes/NumberChange.html +1 -1
  4. package/docs/documentation/classes/TableHeaderItem.html +124 -124
  5. package/docs/documentation/classes/TableModel.html +253 -86
  6. package/docs/documentation/components/Accordion.html +23 -20
  7. package/docs/documentation/components/NumberComponent.html +3 -3
  8. package/docs/documentation/components/Table.html +21 -24
  9. package/docs/documentation/components/Tag.html +1 -1
  10. package/docs/documentation/components/TagFilter.html +1 -1
  11. package/docs/documentation/components/TextareaLabelComponent.html +5 -5
  12. package/docs/documentation/coverage.html +17 -17
  13. package/docs/documentation/directives/Button.html +309 -10
  14. package/docs/documentation/directives/TextInput.html +195 -11
  15. package/docs/documentation/js/search/search_index.js +2 -2
  16. package/docs/documentation/miscellaneous/typealiases.html +21 -0
  17. package/docs/documentation/modules/CodeSnippetModule/dependencies.svg +4 -4
  18. package/docs/documentation/modules/CodeSnippetModule.html +4 -4
  19. package/docs/documentation/modules/DatePickerInputModule/dependencies.svg +42 -38
  20. package/docs/documentation/modules/DatePickerInputModule.html +42 -38
  21. package/docs/documentation/modules/FileUploaderModule/dependencies.svg +4 -4
  22. package/docs/documentation/modules/FileUploaderModule.html +4 -4
  23. package/docs/documentation/modules/NumberModule/dependencies.svg +4 -4
  24. package/docs/documentation/modules/NumberModule.html +4 -4
  25. package/docs/documentation/modules/PanelModule/dependencies.svg +36 -36
  26. package/docs/documentation/modules/PanelModule.html +36 -36
  27. package/docs/documentation/modules/RadioModule/dependencies.svg +49 -49
  28. package/docs/documentation/modules/RadioModule.html +49 -49
  29. package/docs/documentation/modules/SelectModule/dependencies.svg +43 -43
  30. package/docs/documentation/modules/SelectModule.html +43 -43
  31. package/docs/documentation/modules/SliderModule/dependencies.svg +4 -4
  32. package/docs/documentation/modules/SliderModule.html +4 -4
  33. package/docs/documentation/modules/TableModule/dependencies.svg +216 -216
  34. package/docs/documentation/modules/TableModule.html +216 -216
  35. package/docs/documentation/modules/TabsModule/dependencies.svg +4 -4
  36. package/docs/documentation/modules/TabsModule.html +4 -4
  37. package/docs/documentation/modules/TagModule/dependencies.svg +28 -28
  38. package/docs/documentation/modules/TagModule.html +28 -28
  39. package/docs/documentation/modules/TilesModule/dependencies.svg +8 -8
  40. package/docs/documentation/modules/TilesModule.html +8 -8
  41. package/docs/documentation/modules/TimePickerModule/dependencies.svg +38 -42
  42. package/docs/documentation/modules/TimePickerModule.html +38 -42
  43. package/docs/documentation/modules/TimePickerSelectModule/dependencies.svg +4 -4
  44. package/docs/documentation/modules/TimePickerSelectModule.html +4 -4
  45. package/docs/documentation/modules/ToggleModule/dependencies.svg +18 -18
  46. package/docs/documentation/modules/ToggleModule.html +18 -18
  47. package/docs/documentation/modules/ToggletipModule/dependencies.svg +4 -4
  48. package/docs/documentation/modules/ToggletipModule.html +4 -4
  49. package/docs/documentation/modules/TooltipModule/dependencies.svg +28 -28
  50. package/docs/documentation/modules/TooltipModule.html +28 -28
  51. package/docs/documentation/modules/UIShellModule/dependencies.svg +4 -4
  52. package/docs/documentation/modules/UIShellModule.html +4 -4
  53. package/docs/documentation.json +635 -281
  54. package/docs/storybook/4578.86305077.iframe.bundle.js +1 -0
  55. package/docs/storybook/5868.9c8a5d5f.iframe.bundle.js +1 -0
  56. package/docs/storybook/{7153.22bf775d.iframe.bundle.js → 7153.81ca3a2c.iframe.bundle.js} +1 -1
  57. package/docs/storybook/accordion-accordion-stories.4a6c54ee.iframe.bundle.js +1 -0
  58. package/docs/storybook/iframe.html +2 -2
  59. package/docs/storybook/main.1e0c9932.iframe.bundle.js +1 -0
  60. package/docs/storybook/number-input-number-stories.8828b5f1.iframe.bundle.js +1 -0
  61. package/docs/storybook/{patterns-filtering-multiple-categories-stories.6703c130.iframe.bundle.js → patterns-filtering-multiple-categories-stories.558f489b.iframe.bundle.js} +1 -1
  62. package/docs/storybook/project.json +1 -1
  63. package/docs/storybook/{runtime~main.584e1b10.iframe.bundle.js → runtime~main.41c8e8cb.iframe.bundle.js} +1 -1
  64. package/docs/storybook/{tag-tag-stories.5e95b96d.iframe.bundle.js → tag-tag-stories.e525e112.iframe.bundle.js} +1 -1
  65. package/esm2020/accordion/accordion.component.mjs +12 -3
  66. package/esm2020/button/button.directive.mjs +36 -2
  67. package/esm2020/input/input.directive.mjs +24 -2
  68. package/esm2020/input/textarea-label.component.mjs +5 -5
  69. package/esm2020/number-input/number.component.mjs +3 -3
  70. package/esm2020/table/table-header-item.class.mjs +6 -11
  71. package/esm2020/table/table-model.class.mjs +55 -4
  72. package/esm2020/table/table.component.mjs +2 -5
  73. package/esm2020/tag/tag-filter.component.mjs +2 -2
  74. package/esm2020/tag/tag.component.mjs +2 -2
  75. package/fesm2015/carbon-components-angular-accordion.mjs +11 -2
  76. package/fesm2015/carbon-components-angular-accordion.mjs.map +1 -1
  77. package/fesm2015/carbon-components-angular-button.mjs +35 -1
  78. package/fesm2015/carbon-components-angular-button.mjs.map +1 -1
  79. package/fesm2015/carbon-components-angular-input.mjs +27 -5
  80. package/fesm2015/carbon-components-angular-input.mjs.map +1 -1
  81. package/fesm2015/carbon-components-angular-number-input.mjs +2 -2
  82. package/fesm2015/carbon-components-angular-number-input.mjs.map +1 -1
  83. package/fesm2015/carbon-components-angular-table.mjs +60 -17
  84. package/fesm2015/carbon-components-angular-table.mjs.map +1 -1
  85. package/fesm2015/carbon-components-angular-tag.mjs +2 -2
  86. package/fesm2015/carbon-components-angular-tag.mjs.map +1 -1
  87. package/fesm2020/carbon-components-angular-accordion.mjs +11 -2
  88. package/fesm2020/carbon-components-angular-accordion.mjs.map +1 -1
  89. package/fesm2020/carbon-components-angular-button.mjs +35 -1
  90. package/fesm2020/carbon-components-angular-button.mjs.map +1 -1
  91. package/fesm2020/carbon-components-angular-input.mjs +27 -5
  92. package/fesm2020/carbon-components-angular-input.mjs.map +1 -1
  93. package/fesm2020/carbon-components-angular-number-input.mjs +2 -2
  94. package/fesm2020/carbon-components-angular-number-input.mjs.map +1 -1
  95. package/fesm2020/carbon-components-angular-table.mjs +60 -17
  96. package/fesm2020/carbon-components-angular-table.mjs.map +1 -1
  97. package/fesm2020/carbon-components-angular-tag.mjs +2 -2
  98. package/fesm2020/carbon-components-angular-tag.mjs.map +1 -1
  99. package/input/input.directive.d.ts +6 -0
  100. package/package.json +1 -1
  101. package/table/table-header-item.class.d.ts +16 -20
  102. package/table/table-model.class.d.ts +9 -0
  103. package/docs/storybook/4578.d79a1b3e.iframe.bundle.js +0 -1
  104. package/docs/storybook/5868.140403a3.iframe.bundle.js +0 -1
  105. package/docs/storybook/accordion-accordion-stories.87b53382.iframe.bundle.js +0 -1
  106. package/docs/storybook/main.4241d66b.iframe.bundle.js +0 -1
  107. package/docs/storybook/number-input-number-stories.0bc36a19.iframe.bundle.js +0 -1
@@ -653,10 +653,7 @@ export class Table {
653
653
  doSort(index) {
654
654
  if (this.sort.observers.length === 0) {
655
655
  // no sort provided so do the simple sort
656
- if (this.model.header[index].sorted) {
657
- // if already sorted flip sorting direction
658
- this.model.header[index].ascending = this.model.header[index].descending;
659
- }
656
+ this.model.cycleSortState(index);
660
657
  this.model.sort(index);
661
658
  }
662
659
  this.sort.emit(index);
@@ -904,4 +901,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
904
901
  }], scrollLoad: [{
905
902
  type: Output
906
903
  }] } });
907
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUVULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUtaLFdBQVcsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUUzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV2RyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBR3hEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnSkc7QUFnRkgsTUFBTSxPQUFPLEtBQUs7SUF1WWpCOztPQUVHO0lBQ0gsWUFDVyxVQUFzQixFQUN0QixjQUE4QixFQUM5QixJQUFVO1FBRlYsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsU0FBSSxHQUFKLElBQUksQ0FBTTtRQXBTckI7O1dBRUc7UUFDTSxTQUFJLEdBQWlCLElBQUksQ0FBQztRQUNuQzs7V0FFRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFlMUI7OztXQUdHO1FBQ00sYUFBUSxHQUFHLElBQUksQ0FBQztRQUVoQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBTXpCOztXQUVHO1FBQ00sd0JBQW1CLEdBQUcsSUFBSSxDQUFDO1FBRXBDOztXQUVHO1FBQ00sdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBRXBDOzs7V0FHRztRQUNNLHVCQUFrQixHQUFHLENBQUMsQ0FBQztRQWlFaEM7O1dBRUc7UUFDTSxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXhCOztXQUVHO1FBQzJDLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBRWxFOztXQUVHO1FBQzRELGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBbUJwRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQXVERztRQUNPLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTVDOzs7O1dBSUc7UUFDTyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUVqRDs7OztXQUlHO1FBQ08sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRW5EOzs7O1dBSUc7UUFDTyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUVqRDs7OztXQUlHO1FBQ08sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRW5EOztXQUVHO1FBQ08sYUFBUSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFaEQ7O1dBRUc7UUFDTyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUV0RDs7V0FFRztRQUNILHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUUxQjs7V0FFRztRQUNILGtDQUE2QixHQUFHLEtBQUssQ0FBQztRQVEvQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsNEJBQXVCLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0IsMEJBQXFCLEdBQUcsRUFBRSxDQUFDO1FBR3hCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQzlCLHdGQUF3RjtRQUM5RSxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFNbkMsMkJBQXNCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN6RSx5QkFBb0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3pFLHdCQUFtQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDdkUseUJBQW9CLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUN6RSxzQkFBaUIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ25FLG1CQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMvRCxtQkFBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDOUQsaUJBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQWM5RCxDQUFDO0lBN1lMOzs7Ozs7OztPQVFHO0lBQ0gsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFnQixFQUFFLFdBQW1CO1FBQ3pELE1BQU0sS0FBSyxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDL0IsSUFBSSxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQW1CLENBQUM7UUFDMUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxLQUFLLEVBQW9CLENBQUM7UUFDekMsSUFBSSxHQUFHLEdBQUcsSUFBSSxLQUFLLEVBQWEsQ0FBQztRQUVqQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsV0FBVyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3JDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1lBQ25DLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNmO1FBRUQsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDdEIsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEIsT0FBTyxLQUFLLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFvQixFQUFFLEtBQWE7UUFDckQsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsOEJBQThCLENBQUMsQ0FBQztRQUN0RixJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsSUFBSSxPQUFPLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDaEksZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUNyQzthQUFNLElBQUksZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN2QyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1NBQ3JDO2FBQU07WUFDTixPQUFPLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUN6QjtJQUNGLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQW9CO1FBQ2hDLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLDhCQUE4QixDQUFDLENBQUM7UUFDdEYsSUFBSSxPQUFPLENBQUMsaUJBQWlCLElBQUksT0FBTyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2hJLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzVCO2FBQU0sSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzVCO2FBQU07WUFDTixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDaEI7SUFDRixDQUFDO0lBV0Q7O09BRUc7SUFDSCxJQUNJLEtBQUssQ0FBQyxDQUFhO1FBQ3RCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pDLHVHQUF1RztZQUN2RyxvR0FBb0c7WUFDcEcsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1NBQ3hDO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFFaEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsQ0FBQztRQUNsRyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3JCO1lBQ0QsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVuQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDcEIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNwRSwwRUFBMEU7Z0JBQzFFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2YsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsNENBQTRDLENBQUMsQ0FBQztvQkFDbEgsS0FBSyxDQUFDLElBQUksQ0FBTSxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7d0JBQzNDLElBQUksR0FBRyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsS0FBSyxTQUFTLElBQUksR0FBRyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsS0FBSyxDQUFDLENBQUMsRUFBRTs0QkFDMUYsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQzt5QkFDcEM7b0JBQ0YsQ0FBQyxDQUFDLENBQUM7Z0JBQ0osQ0FBQyxDQUFDLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0YsQ0FBQztJQUVELElBQUksS0FBSztRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNwQixDQUFDO0lBVUQ7O09BRUc7SUFDSCxJQUFhLFVBQVUsQ0FBQyxLQUFjO1FBQ3JDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNyQixJQUFJLEtBQUssRUFBRTtnQkFDVixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQzthQUNsQztpQkFBTTtnQkFDTixJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQzthQUNuQztTQUNEO0lBQ0YsQ0FBQztJQVVELElBQUksVUFBVTtRQUNiLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUN6QixDQUFDO0lBa0JEOzs7Ozs7T0FNRztJQUNILHFDQUFxQztJQUVyQzs7Ozs7OztPQU9HO0lBQ0gscUNBQXFDO0lBRXJDLElBQ0kscUJBQXFCLENBQUMsS0FBa0M7UUFDM0QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsSUFBSSxxQkFBcUI7UUFDeEIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDO0lBQzFDLENBQUM7SUFDRCxJQUNJLG1CQUFtQixDQUFDLEtBQWtDO1FBQ3pELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUNELElBQUksbUJBQW1CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQztJQUN4QyxDQUFDO0lBQ0QsSUFDSSxrQkFBa0IsQ0FBQyxLQUFrQztRQUN4RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCxJQUFJLGtCQUFrQjtRQUNyQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsSUFDSSxZQUFZLENBQUMsS0FBSztRQUNyQixNQUFNLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQTRJRCxJQUFJLE1BQU07UUFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJO1lBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBd0NELGVBQWU7UUFDZCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDcEIsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7U0FDbEM7SUFDRixDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakMsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDOUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3hDO0lBQ0YsQ0FBQztJQUVELDBCQUEwQjtRQUN6QixpRUFBaUU7UUFDakUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUIsT0FBTztTQUNQO1FBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBcUIsQ0FBQztRQUN2RixNQUFNLFlBQVksR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxNQUFNLGtCQUFrQixHQUFHLFNBQVMsQ0FBZ0IsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sZ0JBQWdCLEdBQUcsU0FBUyxDQUFhLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSx3QkFBd0IsQ0FBQyxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUN6RyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDNUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ2xELE1BQU0sQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUVyRCxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUN2RSxLQUFLLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUVyQyxrRUFBa0U7WUFDbEUsSUFBSSxXQUFXLEtBQUssQ0FBQyxDQUFDLElBQUksY0FBYyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUFFLE9BQU87YUFBRTtZQUM1RCwrREFBK0Q7WUFDL0QsSUFBSSxXQUFXLEtBQUssVUFBVSxJQUFJLGNBQWMsS0FBSyxhQUFhLEVBQUU7Z0JBQ25FLE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO2dCQUMxRSxLQUFLLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZDO1lBQ0QsS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztRQUNILDJFQUEyRTtRQUMzRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELDJCQUEyQjtRQUMxQiw4REFBOEQ7UUFDOUQsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDOUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3hDO1FBQ0QsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVc7UUFDVixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGFBQWE7UUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFLO1FBQ2hCLDJEQUEyRDtRQUMzRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7WUFDcEQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzVCO1lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzNCO2FBQU07WUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDN0I7SUFDRixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELHVCQUF1QjtRQUN0QixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUV6RCxJQUFJLGlCQUFpQixJQUFJLENBQUMsRUFBRTtZQUMzQixnREFBZ0Q7WUFDaEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztZQUMvQixJQUFJLENBQUMsNkJBQTZCLEdBQUcsS0FBSyxDQUFDO1NBQzNDO2FBQU0sSUFBSSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDdEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztZQUM5QixJQUFJLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxDQUFDO1NBQzFDO2FBQU07WUFDTixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1lBQzlCLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxLQUFLLENBQUM7U0FDM0M7SUFDRixDQUFDO0lBRUQsYUFBYSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDN0IsNEVBQTRFO1FBQzVFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZix1Q0FBdUM7WUFDdkMsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSw4QkFBOEIsQ0FBQyxDQUFDO1lBQzVHLElBQUksZ0JBQWdCLEVBQUU7Z0JBQ3JCLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDbkMsUUFBUSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxDQUFDO2FBQ0g7WUFDRCxtREFBbUQ7WUFDbkQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDbkQ7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsTUFBTTtRQUM5QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3hDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV2QixJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3BGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2hGLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELG9CQUFvQixDQUFDLEtBQUssRUFBRSxNQUFNO1FBQ2pDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQ3JELE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksSUFBSSxDQUFDO0lBQzNELENBQUM7SUFFRCxlQUFlLENBQUMsS0FBSyxFQUFFLE1BQU07UUFDNUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxDQUFDLEtBQUs7UUFDYixNQUFNLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBRTFHLElBQUksa0JBQWtCLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqQzthQUFNO1lBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1NBQ3pCO0lBQ0YsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFLLEVBQUUsV0FBVztRQUNqQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxXQUFXLENBQUM7UUFDM0MsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQUssRUFBRSxXQUFXO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLHVCQUF1QixHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXO1FBQzNDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxRQUFRLENBQUM7UUFDdEMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLFdBQVcsQ0FBQztJQUM1QyxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsV0FBVztRQUMzQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXO1FBQzFDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxXQUFXLENBQUM7UUFDM0MsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFFBQVEsQ0FBQztRQUV0QywyQ0FBMkM7UUFDM0MsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXO1FBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLHVCQUF1QixHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7UUFFaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQ3BCLFFBQVEsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLENBQUMsRUFDdkQsV0FBVyxHQUFHLENBQUMsUUFBUSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDNUMsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsS0FBYTtRQUNuQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDckMseUNBQXlDO1lBQ3pDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFO2dCQUNwQywyQ0FBMkM7Z0JBQzNDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUM7YUFDekU7WUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN2QjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXLENBQUMsS0FBSztRQUNoQixLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUMvRixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELHNCQUFzQixDQUFDLEdBQWdCO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDL0IsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUM1QztRQUNELE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZELENBQUM7SUFFRCx3QkFBd0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDO0lBQzVDLENBQUM7SUFDRCxzQkFBc0I7UUFDckIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDO0lBQzFDLENBQUM7SUFDRCxxQkFBcUI7UUFDcEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxzQkFBc0I7UUFDckIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDO0lBQzFDLENBQUM7SUFFRCxtQkFBbUI7UUFDbEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxnQkFBZ0I7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxnQkFBZ0I7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxjQUFjO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztJQUNsQyxDQUFDOztrR0F6b0JXLEtBQUs7c0ZBQUwsS0FBSywrK0JBN0VQOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBc0VUOzJGQU9XLEtBQUs7a0JBL0VqQixTQUFTOytCQUNDLHNCQUFzQixZQUN0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXNFVDtpSkE2RFEsY0FBYztzQkFBdEIsS0FBSztnQkFJRyxlQUFlO3NCQUF2QixLQUFLO2dCQU1GLEtBQUs7c0JBRFIsS0FBSztnQkE2Q0csSUFBSTtzQkFBWixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSU8sVUFBVTtzQkFBdEIsS0FBSztnQkFlRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBU0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUtHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFNRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBc0JGLHFCQUFxQjtzQkFEeEIsS0FBSztnQkFRRixtQkFBbUI7c0JBRHRCLEtBQUs7Z0JBUUYsa0JBQWtCO3NCQURyQixLQUFLO2dCQXFCRixZQUFZO3NCQURmLEtBQUs7Z0JBYUcsT0FBTztzQkFBZixLQUFLO2dCQUt3QyxZQUFZO3NCQUF6RCxXQUFXO3VCQUFDLCtCQUErQjtnQkFLbUIsWUFBWTtzQkFBMUUsV0FBVzt1QkFBQyx1Q0FBdUM7O3NCQUFHLEtBQUs7Z0JBS25ELGNBQWM7c0JBQXRCLEtBQUs7Z0JBWUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQTBESSxJQUFJO3NCQUFiLE1BQU07Z0JBT0csU0FBUztzQkFBbEIsTUFBTTtnQkFPRyxXQUFXO3NCQUFwQixNQUFNO2dCQU9HLFNBQVM7c0JBQWxCLE1BQU07Z0JBT0csV0FBVztzQkFBcEIsTUFBTTtnQkFLRyxRQUFRO3NCQUFqQixNQUFNO2dCQUtHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDb21wb25lbnQsXG5cdEFwcGxpY2F0aW9uUmVmLFxuXHRJbnB1dCxcblx0T3V0cHV0LFxuXHRFdmVudEVtaXR0ZXIsXG5cdEVsZW1lbnRSZWYsXG5cdEFmdGVyVmlld0luaXQsXG5cdFRlbXBsYXRlUmVmLFxuXHRPbkRlc3Ryb3ksXG5cdEhvc3RCaW5kaW5nXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZyb21FdmVudCwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5cbmltcG9ydCB7IFRhYmxlTW9kZWwgfSBmcm9tIFwiLi90YWJsZS1tb2RlbC5jbGFzc1wiO1xuaW1wb3J0IHsgVGFibGVIZWFkZXJJdGVtIH0gZnJvbSBcIi4vdGFibGUtaGVhZGVyLWl0ZW0uY2xhc3NcIjtcbmltcG9ydCB7IFRhYmxlSXRlbSB9IGZyb20gXCIuL3RhYmxlLWl0ZW0uY2xhc3NcIjtcblxuaW1wb3J0IHsgZ2V0Rm9jdXNFbGVtZW50TGlzdCwgdGFiYmFibGVTZWxlY3Rvcklnbm9yZVRhYkluZGV4IH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBJMThuLCBPdmVycmlkYWJsZSB9IGZyb20gXCJjYXJib24tY29tcG9uZW50cy1hbmd1bGFyL2kxOG5cIjtcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvdXRpbHNcIjtcbmltcG9ydCB7IERhdGFHcmlkSW50ZXJhY3Rpb25Nb2RlbCB9IGZyb20gXCIuL2RhdGEtZ3JpZC1pbnRlcmFjdGlvbi1tb2RlbC5jbGFzc1wiO1xuaW1wb3J0IHsgVGFibGVEb21BZGFwdGVyIH0gZnJvbSBcIi4vdGFibGUtYWRhcHRlci5jbGFzc1wiO1xuaW1wb3J0IHsgVGFibGVSb3dTaXplIH0gZnJvbSBcIi4vdGFibGUudHlwZXNcIjtcblxuLyoqXG4gKiBCdWlsZCB5b3VyIHRhYmxlIHdpdGggdGhpcyBjb21wb25lbnQgYnkgZXh0ZW5kaW5nIHRoaW5ncyB0aGF0IGRpZmZlciBmcm9tIGRlZmF1bHQuXG4gKlxuICogW1NlZSBkZW1vXSguLi8uLi8/cGF0aD0vc3RvcnkvY29tcG9uZW50cy10YWJsZS0tYmFzaWMpXG4gKlxuICogSW5zdGVhZCBvZiB0aGUgdXN1YWwgd3JpdGUteW91ci1vd24taHRtbCBhcHByb2FjaCB5b3UgaGFkIHdpdGggYDx0YWJsZT5gLFxuICogY2FyYm9uIHRhYmxlIHVzZXMgbW9kZWwtdmlldy1jb250cm9sbGVyIGFwcHJvYWNoLlxuICpcbiAqIEhlcmUsIHlvdSBjcmVhdGUgYSB2aWV3ICh3aXRoIGJ1aWx0LWluIGNvbnRyb2xsZXIpIGFuZCBwcm92aWRlIGl0IGEgbW9kZWwuXG4gKiBDaGFuZ2VzIHlvdSBtYWtlIHRvIHRoZSBtb2RlbCBhcmUgcmVmbGVjdGVkIGluIHRoZSB2aWV3LiBQcm92aWRlIHNhbWUgbW9kZWwgeW91IHVzZVxuICogaW4gdGhlIHRhYmxlIHRvIHRoZSBgPGNkcy1wYWdpbmF0aW9uPmAgY29tcG9uZW50cy5cbiAqIFRoZXkgcHJvdmlkZSBhIGRpZmZlcmVudCB2aWV3IG92ZXIgdGhlIHNhbWUgZGF0YS5cbiAqXG4gKiAjIyBCYXNpYyB1c2FnZVxuICpcbiAqIGBgYGh0bWxcbiAqIDxjZHMtdGFibGUgW21vZGVsXT1cIm1vZGVsXCI+PC9jZHMtdGFibGU+XG4gKiBgYGBcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBwdWJsaWMgbW9kZWwgPSBuZXcgVGFibGVNb2RlbCgpO1xuICpcbiAqIHRoaXMubW9kZWwuZGF0YSA9IFtcbiAqIFx0W25ldyBUYWJsZUl0ZW0oe2RhdGE6IFwiYXNkZlwifSksIG5ldyBUYWJsZUl0ZW0oe2RhdGE6IFwicXdlclwifSldLFxuICogXHRbbmV3IFRhYmxlSXRlbSh7ZGF0YTogXCJjc2RmXCJ9KSwgbmV3IFRhYmxlSXRlbSh7ZGF0YTogXCJ6d2VyXCJ9KV0sXG4gKiBcdFtuZXcgVGFibGVJdGVtKHtkYXRhOiBcImJzZGZcIn0pLCBuZXcgVGFibGVJdGVtKHtkYXRhOiBcInN3ZXJcIn0pXSxcbiAqIFx0W25ldyBUYWJsZUl0ZW0oe2RhdGE6IFwiY3NkZlwifSksIG5ldyBUYWJsZUl0ZW0oe2RhdGE6IFwidHdlclwifSldXG4gKiBdO1xuICogYGBgXG4gKlxuICogIyMgQ3VzdG9taXphdGlvblxuICpcbiAqIElmIHlvdSBoYXZlIGN1c3RvbSBkYXRhIGluIHlvdXIgdGFibGUsIHlvdSBuZWVkIGEgd2F5IHRvIGRpc3BsYXkgaXQuIFlvdSBjYW4gZG8gdGhhdFxuICogYnkgcHJvdmlkaW5nIGEgdGVtcGxhdGUgdG8gYFRhYmxlSXRlbWAuXG4gKlxuICogYGBgaHRtbFxuICogPG5nLXRlbXBsYXRlICNjdXN0b21UYWJsZUl0ZW1UZW1wbGF0ZSBsZXQtZGF0YT1cImRhdGFcIj5cbiAqIFx0PGEgW3JvdXRlckxpbmtdPVwiZGF0YS5saW5rXCI+e3tkYXRhLm5hbWV9fSB7e2RhdGEuc3VybmFtZX19PC9hPlxuICogPC9uZy10ZW1wbGF0ZT5cbiAqIGBgYFxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGN1c3RvbVRhYmxlSXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICpcbiAqIHRoaXMuY3VzdG9tTW9kZWwuZGF0YSA9IFtcbiAqIFx0W25ldyBUYWJsZUl0ZW0oe2RhdGE6IFwiYXNkZlwifSksIG5ldyBUYWJsZUl0ZW0oe2RhdGE6IHtuYW1lOiBcIkxlc3N5XCIsIGxpbms6IFwiL3RhYmxlXCJ9LCB0ZW1wbGF0ZTogdGhpcy5jdXN0b21UYWJsZUl0ZW1UZW1wbGF0ZX0pXSxcbiAqIFx0W25ldyBUYWJsZUl0ZW0oe2RhdGE6IFwiY3NkZlwifSksIG5ldyBUYWJsZUl0ZW0oe2RhdGE6IFwic3dlclwifSldLFxuICogXHRbbmV3IFRhYmxlSXRlbSh7ZGF0YTogXCJic2RmXCJ9KSwgbmV3IFRhYmxlSXRlbSh7ZGF0YToge25hbWU6IFwiQWxpY2VcIiwgc3VybmFtZTogXCJCb2JcIn0sIHRlbXBsYXRlOiB0aGlzLmN1c3RvbVRhYmxlSXRlbVRlbXBsYXRlfSldLFxuICogXHRbbmV3IFRhYmxlSXRlbSh7ZGF0YTogXCJjc2RmXCJ9KSwgbmV3IFRhYmxlSXRlbSh7ZGF0YTogXCJ0d2VyXCJ9KV0sXG4gKiBdO1xuICogYGBgXG4gKlxuICogIyMjIFNvcnRpbmcgYW5kIGZpbHRlcmluZ1xuICpcbiAqIEluIGNhc2UgeW91IG5lZWQgY3VzdG9tIHNvcnRpbmcgYW5kL29yIGZpbHRlcmluZyB5b3Ugc2hvdWxkIHN1YmNsYXNzIGBUYWJsZUhlYWRlckl0ZW1gXG4gKiBhbmQgb3ZlcnJpZGUgbmVlZGVkIGZ1bmN0aW9ucy5cbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjbGFzcyBGaWx0ZXJhYmxlSGVhZGVySXRlbSBleHRlbmRzIFRhYmxlSGVhZGVySXRlbSB7XG4gKiBcdC8vIGN1c3RvbSBmaWx0ZXIgZnVuY3Rpb25cbiAqIFx0ZmlsdGVyKGl0ZW06IFRhYmxlSXRlbSk6IGJvb2xlYW4ge1xuICogXHRcdGlmICh0eXBlb2YgaXRlbS5kYXRhID09PSBcInN0cmluZ1wiICYmIGl0ZW0uZGF0YS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodGhpcy5maWx0ZXJEYXRhLmRhdGEudG9Mb3dlckNhc2UoKSkgPj0gMCB8fFxuICogXHRcdGl0ZW0uZGF0YS5uYW1lICYmIGl0ZW0uZGF0YS5uYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih0aGlzLmZpbHRlckRhdGEuZGF0YS50b0xvd2VyQ2FzZSgpKSA+PSAwIHx8XG4gKiBcdFx0aXRlbS5kYXRhLnN1cm5hbWUgJiYgaXRlbS5kYXRhLnN1cm5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMuZmlsdGVyRGF0YS5kYXRhLnRvTG93ZXJDYXNlKCkpID49IDApIHtcbiAqIFx0XHRcdHJldHVybiBmYWxzZTtcbiAqIFx0XHR9XG4gKiBcdFx0cmV0dXJuIHRydWU7XG4gKiBcdH1cbiAqXG4gKiBcdHNldCBmaWx0ZXJDb3VudChuKSB7fVxuICogXHRnZXQgZmlsdGVyQ291bnQoKSB7XG4gKiBcdFx0cmV0dXJuICh0aGlzLmZpbHRlckRhdGEgJiYgdGhpcy5maWx0ZXJEYXRhLmRhdGEgJiYgdGhpcy5maWx0ZXJEYXRhLmRhdGEubGVuZ3RoID4gMCkgPyAxIDogMDtcbiAqIFx0fVxuICpcbiAqIFx0Ly8gdXNlZCBmb3IgY3VzdG9tIHNvcnRpbmdcbiAqIFx0Y29tcGFyZShvbmU6IFRhYmxlSXRlbSwgdHdvOiBUYWJsZUl0ZW0pIHtcbiAqIFx0XHRjb25zdCBzdHJpbmdPbmUgPSAob25lLmRhdGEubmFtZSB8fCBvbmUuZGF0YS5zdXJuYW1lIHx8IG9uZS5kYXRhKS50b0xvd2VyQ2FzZSgpO1xuICogXHRcdGNvbnN0IHN0cmluZ1R3byA9ICh0d28uZGF0YS5uYW1lIHx8IHR3by5kYXRhLnN1cm5hbWUgfHwgdHdvLmRhdGEpLnRvTG93ZXJDYXNlKCk7XG4gKlxuICogXHRcdGlmIChzdHJpbmdPbmUgPiBzdHJpbmdUd28pIHtcbiAqIFx0XHRcdHJldHVybiAxO1xuICogXHRcdH0gZWxzZSBpZiAoc3RyaW5nT25lIDwgc3RyaW5nVHdvKSB7XG4gKiBcdFx0XHRyZXR1cm4gLTE7XG4gKiBcdFx0fSBlbHNlIHtcbiAqIFx0XHRcdHJldHVybiAwO1xuICogXHRcdH1cbiAqIFx0fVxuICogfVxuICogYGBgXG4gKlxuICogSWYgeW91IHdhbnQgdG8gZG8geW91ciBzb3J0aW5nIG9uIHRoZSBiYWNrZW5kIG9yIHF1ZXJ5IGZvciBzb3J0ZWQgZGF0YSBhcyBhIHJlc3VsdCBvZiB1c2VyXG4gKiBjbGlja2luZyB0aGUgdGFibGUgaGVhZGVyLCBjaGVjayB0YWJsZSBbYHNvcnRgXSgjc29ydCkgb3V0cHV0IGRvY3VtZW50YXRpb25cbiAqXG4gKiBTZWUgYFRhYmxlSGVhZGVySXRlbWAgY2xhc3MgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKlxuICogIyMgTm8gZGF0YSB0ZW1wbGF0ZVxuICpcbiAqIFdoZW4gdGFibGUgaGFzIG5vIGRhdGEgdG8gc2hvdywgaXQgY2FuIHNob3cgYSBtZXNzYWdlIHlvdSBwcm92aWRlIGl0IGluc3RlYWQuXG4gKlxuICogYGBgaHRtbFxuICogPGNkcy10YWJsZSBbbW9kZWxdPVwibW9kZWxcIj5ObyBkYXRhLjwvY2RzLXRhYmxlPlxuICogYGBgXG4gKlxuICogLi4uIHdpbGwgc2hvdyBgTm8gZGF0YS5gIG1lc3NhZ2UsIGJ1dCB5b3UgY2FuIGdldCBjcmVhdGl2ZSBhbmQgcHJvdmlkZSBhbnkgdGVtcGxhdGUgeW91IHdhbnRcbiAqIHRvIHJlcGxhY2UgdGFibGUncyBkZWZhdWx0IGB0Ym9keWAuXG4gKlxuICogIyMgVXNlIHBhZ2luYXRpb24gYXMgdGFibGUgZm9vdGVyXG4gKlxuICogYGBgaHRtbFxuICogPGNkcy1wYWdpbmF0aW9uIFttb2RlbF09XCJtb2RlbFwiIChzZWxlY3RQYWdlKT1cInNlbGVjdFBhZ2UoJGV2ZW50KVwiPjwvY2RzLXBhZ2luYXRpb24+XG4gKiBgYGBcbiAqXG4gKiBgc2VsZWN0UGFnZSgpYCBmdW5jdGlvbiBzaG91bGQgZmV0Y2ggdGhlIGRhdGEgZnJvbSBiYWNrZW5kLCBjcmVhdGUgbmV3IGBkYXRhYCwgYXBwbHkgaXQgdG8gYG1vZGVsLmRhdGFgLFxuICogYW5kIHVwZGF0ZSBgbW9kZWwuY3VycmVudFBhZ2VgLlxuICpcbiAqIElmIHRoZSBkYXRhIHlvdXIgc2VydmVyIHJldHVybnMgaXMgYSB0d28gZGltZW5zaW9uYWwgYXJyYXkgb2Ygb2JqZWN0cywgaXQgd291bGQgbG9vayBzb21ldGhpbmcgbGlrZSB0aGlzOlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHNlbGVjdFBhZ2UocGFnZSkge1xuICogXHR0aGlzLmdldFBhZ2UocGFnZSkudGhlbigoZGF0YTogQXJyYXk8QXJyYXk8YW55Pj4pID0+IHtcbiAqIFx0XHQvLyBzZXQgdGhlIGRhdGEgYW5kIHVwZGF0ZSBwYWdlXG4gKiBcdFx0dGhpcy5tb2RlbC5kYXRhID0gdGhpcy5wcmVwYXJlRGF0YShkYXRhKTtcbiAqIFx0XHR0aGlzLm1vZGVsLmN1cnJlbnRQYWdlID0gcGFnZTtcbiAqIFx0fSk7XG4gKiB9XG4gKlxuICogcHJvdGVjdGVkIHByZXBhcmVEYXRhKGRhdGE6IEFycmF5PEFycmF5PGFueT4+KSB7XG4gKiBcdC8vIGNyZWF0ZSBuZXcgZGF0YSBmcm9tIHRoZSBzZXJ2aWNlIGRhdGFcbiAqIFx0bGV0IG5ld0RhdGEgPSBbXTtcbiAqIFx0ZGF0YS5mb3JFYWNoKGRhdGFSb3cgPT4ge1xuICogXHRcdGxldCByb3cgPSBbXTtcbiAqIFx0XHRkYXRhUm93LmZvckVhY2goZGF0YUVsZW1lbnQgPT4ge1xuICogXHRcdFx0cm93LnB1c2gobmV3IFRhYmxlSXRlbSh7XG4gKiBcdFx0XHRcdGRhdGE6IGRhdGFFbGVtZW50LFxuICogXHRcdFx0XHR0ZW1wbGF0ZTogdHlwZW9mIGRhdGFFbGVtZW50ID09PSBcInN0cmluZ1wiID8gdW5kZWZpbmVkIDogdGhpcy5wYWdpbmF0aW9uVGFibGVJdGVtVGVtcGxhdGVcbiAqIFx0XHRcdFx0Ly8geW91ciB0ZW1wbGF0ZSBjYW4gaGFuZGxlIGFsbCB0aGUgZGF0YSB0eXBlcyBzbyB5b3UgZG9uJ3QgaGF2ZSB0byBjb25kaXRpb25hbGx5IHNldCBpdFxuICogXHRcdFx0XHQvLyB5b3UgY2FuIGFsc28gc2V0IGRpZmZlcmVudCB0ZW1wbGF0ZXMgZm9yIGRpZmZlcmVudCBjb2x1bW5zIGJhc2VkIG9uIGluZGV4XG4gKiBcdFx0XHR9KSk7XG4gKiBcdFx0fSk7XG4gKiBcdFx0bmV3RGF0YS5wdXNoKHJvdyk7XG4gKiBcdH0pO1xuICogXHRyZXR1cm4gbmV3RGF0YTtcbiAqIH1cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwiY2RzLXRhYmxlLCBpYm0tdGFibGVcIixcblx0dGVtcGxhdGU6IGBcblx0PHRhYmxlXG5cdFx0Y2RzVGFibGVcblx0XHRbc29ydGFibGVdPVwic29ydGFibGVcIlxuXHRcdFtub0JvcmRlcl09XCJub0JvcmRlclwiXG5cdFx0W25nQ2xhc3NdPVwieydjZHMtLWRhdGEtdGFibGUtLXN0aWNreS1oZWFkZXInOiBzdGlja3lIZWFkZXJ9XCJcblx0XHRbc2l6ZV09XCJzaXplXCJcblx0XHRbc3RyaXBlZF09XCJzdHJpcGVkXCJcblx0XHRbc2tlbGV0b25dPVwic2tlbGV0b25cIlxuXHRcdFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRieVwiXG5cdFx0W2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkYnlcIj5cblx0XHQ8dGhlYWRcblx0XHRcdGNkc1RhYmxlSGVhZFxuXHRcdFx0W3NvcnRhYmxlXT1cInNvcnRhYmxlXCJcblx0XHRcdChkZXNlbGVjdEFsbCk9XCJvbkRlc2VsZWN0QWxsKClcIlxuXHRcdFx0KHNlbGVjdEFsbCk9XCJvblNlbGVjdEFsbCgpXCJcblx0XHRcdChzb3J0KT1cImRvU29ydCgkZXZlbnQpXCJcblx0XHRcdFtjaGVja2JveEhlYWRlckxhYmVsXT1cImdldENoZWNrYm94SGVhZGVyTGFiZWwoKVwiXG5cdFx0XHRbZmlsdGVyVGl0bGVdPVwiZ2V0RmlsdGVyVGl0bGUoKVwiXG5cdFx0XHRbbW9kZWxdPVwibW9kZWxcIlxuXHRcdFx0W3NlbGVjdEFsbENoZWNrYm94XT1cInNlbGVjdEFsbENoZWNrYm94XCJcblx0XHRcdFtzZWxlY3RBbGxDaGVja2JveFNvbWVTZWxlY3RlZF09XCJzZWxlY3RBbGxDaGVja2JveFNvbWVTZWxlY3RlZFwiXG5cdFx0XHRbc2hvd1NlbGVjdGlvbkNvbHVtbl09XCJzaG93U2VsZWN0aW9uQ29sdW1uXCJcblx0XHRcdFtlbmFibGVTaW5nbGVTZWxlY3RdPVwiZW5hYmxlU2luZ2xlU2VsZWN0XCJcblx0XHRcdFtza2VsZXRvbl09XCJza2VsZXRvblwiXG5cdFx0XHRbc29ydEFzY2VuZGluZ0xhYmVsXT1cInNvcnRBc2NlbmRpbmdMYWJlbFwiXG5cdFx0XHRbc29ydERlc2NlbmRpbmdMYWJlbF09XCJzb3J0RGVzY2VuZGluZ0xhYmVsXCJcblx0XHRcdFtzdGlja3lIZWFkZXJdPVwic3RpY2t5SGVhZGVyXCI+XG5cdFx0PC90aGVhZD5cblx0XHQ8dGJvZHlcblx0XHRcdGNkc1RhYmxlQm9keVxuXHRcdFx0KGRlc2VsZWN0Um93KT1cIm9uU2VsZWN0Um93KCRldmVudClcIlxuXHRcdFx0KHNjcm9sbCk9XCJvblNjcm9sbCgkZXZlbnQpXCJcblx0XHRcdChzZWxlY3RSb3cpPVwib25TZWxlY3RSb3coJGV2ZW50KVwiXG5cdFx0XHRbY2hlY2tib3hSb3dMYWJlbF09XCJnZXRDaGVja2JveFJvd0xhYmVsKClcIlxuXHRcdFx0W2VuYWJsZVNpbmdsZVNlbGVjdF09XCJlbmFibGVTaW5nbGVTZWxlY3RcIlxuXHRcdFx0KHJvd0NsaWNrKT1cIm9uUm93Q2xpY2soJGV2ZW50KVwiXG5cdFx0XHRbZXhwYW5kQnV0dG9uQXJpYUxhYmVsXT1cImV4cGFuZEJ1dHRvbkFyaWFMYWJlbFwiXG5cdFx0XHRbbW9kZWxdPVwibW9kZWxcIlxuXHRcdFx0W3NpemVdPVwic2l6ZVwiXG5cdFx0XHRbbmdTdHlsZV09XCJ7J292ZXJmbG93LXknOiAnc2Nyb2xsJ31cIlxuXHRcdFx0W3NlbGVjdGlvbkxhYmVsQ29sdW1uXT1cInNlbGVjdGlvbkxhYmVsQ29sdW1uXCJcblx0XHRcdFtzaG93U2VsZWN0aW9uQ29sdW1uXT1cInNob3dTZWxlY3Rpb25Db2x1bW5cIlxuXHRcdFx0W3NrZWxldG9uXT1cInNrZWxldG9uXCJcblx0XHRcdCpuZ0lmPVwiIW5vRGF0YTsgZWxzZSBub0RhdGFUZW1wbGF0ZVwiPlxuXHRcdDwvdGJvZHk+XG5cdFx0PG5nLXRlbXBsYXRlICNub0RhdGFUZW1wbGF0ZT48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9uZy10ZW1wbGF0ZT5cblx0XHQ8dGZvb3Q+XG5cdFx0XHQ8bmctdGVtcGxhdGVcblx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRdPVwiZm9vdGVyVGVtcGxhdGVcIj5cblx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0XHQ8dHIgKm5nSWY9XCJ0aGlzLm1vZGVsLmlzTG9hZGluZ1wiPlxuXHRcdFx0XHQ8dGQgY2xhc3M9XCJ0YWJsZV9sb2FkaW5nLWluZGljYXRvclwiPlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjZHMtLWxvYWRpbmcgY2RzLS1sb2FkaW5nLS1zbWFsbFwiPlxuXHRcdFx0XHRcdFx0PHN2ZyBjbGFzcz1cImNkcy0tbG9hZGluZ19fc3ZnXCIgdmlld0JveD1cIi03NSAtNzUgMTUwIDE1MFwiPlxuXHRcdFx0XHRcdFx0XHQ8Y2lyY2xlIGNsYXNzPVwiY2RzLS1sb2FkaW5nX19zdHJva2VcIiBjeD1cIjBcIiBjeT1cIjBcIiByPVwiMzcuNVwiIC8+XG5cdFx0XHRcdFx0XHQ8L3N2Zz5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC90ZD5cblx0XHRcdDwvdHI+XG5cdFx0XHQ8dHIgKm5nSWY9XCJ0aGlzLm1vZGVsLmlzRW5kXCI+XG5cdFx0XHRcdDx0ZCBjbGFzcz1cInRhYmxlX2VuZC1pbmRpY2F0b3JcIj5cblx0XHRcdFx0XHQ8aDU+e3tnZXRFbmRPZkRhdGFUZXh0KCkgfCBhc3luY319PC9oNT5cblx0XHRcdFx0XHQ8YnV0dG9uIChjbGljayk9XCJzY3JvbGxUb1RvcCgkZXZlbnQpXCIgY2xhc3M9XCJidG4tLXNlY29uZGFyeS1zbVwiPlxuXHRcdFx0XHRcdFx0e3tnZXRTY3JvbGxUb3BUZXh0KCkgfCBhc3luY319XG5cdFx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHRcdDwvdGQ+XG5cdFx0XHQ8L3RyPlxuXHRcdDwvdGZvb3Q+XG5cdDwvdGFibGU+XG5cdGAsXG5cdHN0eWxlczogW2Bcblx0XHQ6aG9zdCB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cdGBdXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblx0LyoqXG5cdCAqIENyZWF0ZXMgYSBza2VsZXRvbiBtb2RlbCB3aXRoIGEgcm93IGFuZCBjb2x1bW4gY291bnQgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyXG5cdCAqXG5cdCAqIEV4YW1wbGU6XG5cdCAqXG5cdCAqIGBgYHR5cGVzY3JpcHRcblx0ICogdGhpcy5tb2RlbCA9IFRhYmxlLnNrZWxldG9uTW9kZWwoNSwgNSk7XG5cdCAqIGBgYFxuXHQgKi9cblx0c3RhdGljIHNrZWxldG9uTW9kZWwocm93Q291bnQ6IG51bWJlciwgY29sdW1uQ291bnQ6IG51bWJlcikge1xuXHRcdGNvbnN0IG1vZGVsID0gbmV3IFRhYmxlTW9kZWwoKTtcblx0XHRsZXQgaGVhZGVyID0gbmV3IEFycmF5PFRhYmxlSGVhZGVySXRlbT4oKTtcblx0XHRsZXQgZGF0YSA9IG5ldyBBcnJheTxBcnJheTxUYWJsZUl0ZW0+PigpO1xuXHRcdGxldCByb3cgPSBuZXcgQXJyYXk8VGFibGVJdGVtPigpO1xuXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBjb2x1bW5Db3VudDsgaSsrKSB7XG5cdFx0XHRoZWFkZXIucHVzaChuZXcgVGFibGVIZWFkZXJJdGVtKCkpO1xuXHRcdFx0cm93LnB1c2gobmV3IFRhYmxlSXRlbSgpKTtcblx0XHR9XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCByb3dDb3VudCAtIDE7IGkrKykge1xuXHRcdFx0ZGF0YS5wdXNoKHJvdyk7XG5cdFx0fVxuXG5cdFx0bW9kZWwuaGVhZGVyID0gaGVhZGVyO1xuXHRcdG1vZGVsLmRhdGEgPSBkYXRhO1xuXHRcdHJldHVybiBtb2RlbDtcblx0fVxuXG5cdHN0YXRpYyBzZXRUYWJJbmRleChlbGVtZW50OiBIVE1MRWxlbWVudCwgaW5kZXg6IC0xIHwgMCkge1xuXHRcdGNvbnN0IGZvY3VzRWxlbWVudExpc3QgPSBnZXRGb2N1c0VsZW1lbnRMaXN0KGVsZW1lbnQsIHRhYmJhYmxlU2VsZWN0b3JJZ25vcmVUYWJJbmRleCk7XG5cdFx0aWYgKGVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQgJiYgZWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZC5jbGFzc0xpc3QuY29udGFpbnMoXCJjZHMtLXRhYmxlLXNvcnRcIikgJiYgZm9jdXNFbGVtZW50TGlzdC5sZW5ndGggPiAxKSB7XG5cdFx0XHRmb2N1c0VsZW1lbnRMaXN0WzFdLnRhYkluZGV4ID0gaW5kZXg7XG5cdFx0fSBlbHNlIGlmIChmb2N1c0VsZW1lbnRMaXN0Lmxlbmd0aCA+IDApIHtcblx0XHRcdGZvY3VzRWxlbWVudExpc3RbMF0udGFiSW5kZXggPSBpbmRleDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZWxlbWVudC50YWJJbmRleCA9IGluZGV4O1xuXHRcdH1cblx0fVxuXG5cdHN0YXRpYyBmb2N1cyhlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnN0IGZvY3VzRWxlbWVudExpc3QgPSBnZXRGb2N1c0VsZW1lbnRMaXN0KGVsZW1lbnQsIHRhYmJhYmxlU2VsZWN0b3JJZ25vcmVUYWJJbmRleCk7XG5cdFx0aWYgKGVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQgJiYgZWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZC5jbGFzc0xpc3QuY29udGFpbnMoXCJjZHMtLXRhYmxlLXNvcnRcIikgJiYgZm9jdXNFbGVtZW50TGlzdC5sZW5ndGggPiAxKSB7XG5cdFx0XHRmb2N1c0VsZW1lbnRMaXN0WzFdLmZvY3VzKCk7XG5cdFx0fSBlbHNlIGlmIChmb2N1c0VsZW1lbnRMaXN0Lmxlbmd0aCA+IDApIHtcblx0XHRcdGZvY3VzRWxlbWVudExpc3RbMF0uZm9jdXMoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZWxlbWVudC5mb2N1cygpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBJZCBvZiB0aGUgdGFibGUgaGVhZGVyIHRpdGxlIGVsZW1lbnRcblx0ICovXG5cdEBJbnB1dCgpIGFyaWFMYWJlbGxlZGJ5OiBzdHJpbmc7XG5cdC8qKlxuXHQgKiBJZCBvZiB0aGUgdGFibGUgaGVhZGVyIGRlc2NyaXB0aW9uIGVsZW1lbnRcblx0ICovXG5cdEBJbnB1dCgpIGFyaWFEZXNjcmliZWRieTogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBgVGFibGVNb2RlbGAgd2l0aCBkYXRhIHRoZSB0YWJsZSBpcyB0byBkaXNwbGF5LlxuXHQgKi9cblx0QElucHV0KClcblx0c2V0IG1vZGVsKG06IFRhYmxlTW9kZWwpIHtcblx0XHRpZiAodGhpcy5fbW9kZWwpIHtcblx0XHRcdHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuXHRcdFx0Ly8gTmVlZCB0byBjcmVhdGUgYSBuZXcgc3Vic2NyaXB0aW9uIGluc3RhbmNlIGhlcmUgYmVjYXVzZSB1bnN1YnNjcmliaW5nIHByZXZlbnRzIGFueSBuZXcgc3Vic2NyaXB0aW9uc1xuXHRcdFx0Ly8gZnJvbSBiZWluZyBhZGRlZCBmb3Igc29tZSByZWFzb24uIFdoZW4gYSBuZXcgbW9kZWwgaXMgc2V0LCBub25lIG9mIHRoZSBzdWJzY3JpcHRpb25zIHdvdWxkIGV4aXN0LlxuXHRcdFx0dGhpcy5zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXHRcdH1cblxuXHRcdHRoaXMuX21vZGVsID0gbTtcblxuXHRcdGNvbnN0IHJvd3NDaGFuZ2UgPSB0aGlzLl9tb2RlbC5yb3dzU2VsZWN0ZWRDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHRoaXMudXBkYXRlU2VsZWN0QWxsQ2hlY2tib3goKSk7XG5cdFx0Y29uc3QgZGF0YUNoYW5nZSA9IHRoaXMuX21vZGVsLmRhdGFDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcblx0XHRcdGlmICh0aGlzLmlzRGF0YUdyaWQpIHtcblx0XHRcdFx0dGhpcy5yZXNldFRhYkluZGV4KCk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLnVwZGF0ZVNlbGVjdEFsbENoZWNrYm94KCk7XG5cdFx0fSk7XG5cblx0XHR0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHJvd3NDaGFuZ2UpO1xuXHRcdHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoZGF0YUNoYW5nZSk7XG5cblx0XHRpZiAodGhpcy5pc0RhdGFHcmlkKSB7XG5cdFx0XHRjb25zdCBleHBhbmRlZENoYW5nZSA9IHRoaXMuX21vZGVsLnJvd3NFeHBhbmRlZENoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0XHQvLyBBbGxvd3MgdGhlIGV4cGFuZGVkIHJvdyB0byBoYXZlIGEgZm9jdXMgc3RhdGUgd2hlbiBpdCBleGlzdHMgaW4gdGhlIERPTVxuXHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRjb25zdCBleHBhbmRlZFJvd3MgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmNkcy0tZXhwYW5kYWJsZS1yb3c6bm90KC5jZHMtLXBhcmVudC1yb3cpXCIpO1xuXHRcdFx0XHRcdEFycmF5LmZyb208YW55PihleHBhbmRlZFJvd3MpLmZvckVhY2gocm93ID0+IHtcblx0XHRcdFx0XHRcdGlmIChyb3cuZmlyc3RFbGVtZW50Q2hpbGQudGFiSW5kZXggPT09IHVuZGVmaW5lZCB8fCByb3cuZmlyc3RFbGVtZW50Q2hpbGQudGFiSW5kZXggIT09IC0xKSB7XG5cdFx0XHRcdFx0XHRcdHJvdy5maXJzdEVsZW1lbnRDaGlsZC50YWJJbmRleCA9IC0xO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdFx0dGhpcy5zdWJzY3JpcHRpb25zLmFkZChleHBhbmRlZENoYW5nZSk7XG5cdFx0fVxuXHR9XG5cblx0Z2V0IG1vZGVsKCk6IFRhYmxlTW9kZWwge1xuXHRcdHJldHVybiB0aGlzLl9tb2RlbDtcblx0fVxuXG5cdC8qKlxuXHQgKiBTaXplIG9mIHRoZSB0YWJsZSByb3dzLlxuXHQgKi9cblx0QElucHV0KCkgc2l6ZTogVGFibGVSb3dTaXplID0gXCJtZFwiO1xuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCBmb3IgYSBsb2FkaW5nIHRhYmxlLlxuXHQgKi9cblx0QElucHV0KCkgc2tlbGV0b24gPSBmYWxzZTtcblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgZm9yIGEgZGF0YSBncmlkIHdpdGgga2V5Ym9hcmQgaW50ZXJhY3Rpb25zLlxuXHQgKi9cblx0QElucHV0KCkgc2V0IGlzRGF0YUdyaWQodmFsdWU6IGJvb2xlYW4pIHtcblx0XHR0aGlzLl9pc0RhdGFHcmlkID0gdmFsdWU7XG5cdFx0aWYgKHRoaXMuaXNWaWV3UmVhZHkpIHtcblx0XHRcdGlmICh2YWx1ZSkge1xuXHRcdFx0XHR0aGlzLmVuYWJsZURhdGFHcmlkSW50ZXJhY3Rpb25zKCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLmRpc2FibGVEYXRhR3JpZEludGVyYWN0aW9ucygpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBTZXR0aW5nIHNvcnRhYmxlIHRvIGZhbHNlIHdpbGwgZGlzYWJsZSBhbGwgaGVhZGVycyBpbmNsdWRpbmcgaGVhZGVycyB3aGljaCBhcmUgc29ydGFibGUuIElzIGlzXG5cdCAqIHBvc3NpYmxlIHRvIHNldCB0aGUgc29ydGFibGUgc3RhdGUgb24gdGhlIGhlYWRlciBpdGVtIHRvIGRpc2FibGUvZW5hYmxlIHNvcnRpbmcgZm9yIG9ubHkgc29tZSBoZWFkZXJzLlxuXHQgKi9cblx0QElucHV0KCkgc29ydGFibGUgPSB0cnVlO1xuXG5cdEBJbnB1dCgpIG5vQm9yZGVyID0gdHJ1ZTtcblxuXHRnZXQgaXNEYXRhR3JpZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5faXNEYXRhR3JpZDtcblx0fVxuXG5cdC8qKlxuXHQgKiBDb250cm9scyB3aGV0aGVyIHRvIHNob3cgdGhlIHNlbGVjdGlvbiBjaGVja2JveGVzIGNvbHVtbiBvciBub3QuXG5cdCAqL1xuXHRASW5wdXQoKSBzaG93U2VsZWN0aW9uQ29sdW1uID0gdHJ1ZTtcblxuXHQvKipcblx0ICogQ29udHJvbHMgd2hldGhlciB0byBlbmFibGUgbXVsdGlwbGUgb3Igc2luZ2xlIHJvdyBzZWxlY3Rpb24uXG5cdCAqL1xuXHRASW5wdXQoKSBlbmFibGVTaW5nbGVTZWxlY3QgPSBmYWxzZTtcblxuXHQvKipcblx0ICogRGlzdGFuY2UgKGluIHB4KSBmcm9tIHRoZSBib3R0b20gdGhhdCB2aWV3IGhhcyB0byByZWFjaCBiZWZvcmVcblx0ICogYHNjcm9sbExvYWRgIGV2ZW50IGlzIGVtaXR0ZWQuXG5cdCAqL1xuXHRASW5wdXQoKSBzY3JvbGxMb2FkRGlzdGFuY2UgPSAwO1xuXG5cdC8qKlxuXHQgKiBAdG9kbyAtIEVuYWJsZSBjb2x1bW4gcmVzaXplIHdoZW4gQ2FyYm9uIG9mZmljaWFsbHkgc3VwcG9ydHMgZmVhdHVyZVxuXHQgKiBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSB1c2VycyB0byByZXNpemUgY29sdW1ucy5cblx0ICpcblx0ICogV29ya3MgZm9yIGNvbHVtbnMgd2l0aCB3aWR0aCBzZXQgaW4gcGl4ZWxzLlxuXHQgKlxuXHQgKi9cblx0Ly8gQElucHV0KCkgY29sdW1uc1Jlc2l6YWJsZSA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBAdG9kbyAtIEVuYWJsZSBjb2x1bW5zIGRyYWcgJiBkcm9wIHdoZW4gQ2FyYm9uIG9mZmljaWFsbHkgc3VwcG9ydHMgZmVhdHVyZVxuXHQgKiBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSB1c2VycyB0byBkcmFnIGFuZCBkcm9wIGNvbHVtbnMuXG5cdCAqXG5cdCAqIENoYW5naW5nIHRoZSBjb2x1bW4gb3JkZXIgaW4gdGFibGUgY2hhbmdlcyB0YWJsZSBtb2RlbC4gQmUgYXdhcmUgb2YgaXQgd2hlbiB5b3UgYWRkIGFkZGl0aW9uYWwgZGF0YVxuXHQgKiB0byB0aGUgbW9kZWwuXG5cdCAqXG5cdCAqL1xuXHQvLyBASW5wdXQoKSBjb2x1bW5zRHJhZ2dhYmxlID0gZmFsc2U7XG5cblx0QElucHV0KClcblx0c2V0IGV4cGFuZEJ1dHRvbkFyaWFMYWJlbCh2YWx1ZTogc3RyaW5nIHwgT2JzZXJ2YWJsZTxzdHJpbmc+KSB7XG5cdFx0dGhpcy5fZXhwYW5kQnV0dG9uQXJpYUxhYmVsLm92ZXJyaWRlKHZhbHVlKTtcblx0fVxuXHRnZXQgZXhwYW5kQnV0dG9uQXJpYUxhYmVsKCkge1xuXHRcdHJldHVybiB0aGlzLl9leHBhbmRCdXR0b25BcmlhTGFiZWwudmFsdWU7XG5cdH1cblx0QElucHV0KClcblx0c2V0IHNvcnREZXNjZW5kaW5nTGFiZWwodmFsdWU6IHN0cmluZyB8IE9ic2VydmFibGU8c3RyaW5nPikge1xuXHRcdHRoaXMuX3NvcnREZXNjZW5kaW5nTGFiZWwub3ZlcnJpZGUodmFsdWUpO1xuXHR9XG5cdGdldCBzb3J0RGVzY2VuZGluZ0xhYmVsKCkge1xuXHRcdHJldHVybiB0aGlzLl9zb3J0RGVzY2VuZGluZ0xhYmVsLnZhbHVlO1xuXHR9XG5cdEBJbnB1dCgpXG5cdHNldCBzb3J0QXNjZW5kaW5nTGFiZWwodmFsdWU6IHN0cmluZyB8IE9ic2VydmFibGU8c3RyaW5nPikge1xuXHRcdHRoaXMuX3NvcnRBc2NlbmRpbmdMYWJlbC5vdmVycmlkZSh2YWx1ZSk7XG5cdH1cblx0Z2V0IHNvcnRBc2NlbmRpbmdMYWJlbCgpIHtcblx0XHRyZXR1cm4gdGhpcy5fc29ydEFzY2VuZGluZ0xhYmVsLnZhbHVlO1xuXHR9XG5cblx0LyoqXG5cdCAqIEV4cGVjdHMgYW4gb2JqZWN0IHRoYXQgY29udGFpbnMgc29tZSBvciBhbGwgb2Y6XG5cdCAqIGBgYFxuXHQgKiB7XG5cdCAqXHRcdFwiRklMVEVSXCI6IFwiRmlsdGVyXCIsXG5cdCAqXHRcdFwiRU5EX09GX0RBVEFcIjogXCJZb3UndmUgcmVhY2hlZCB0aGUgZW5kIG9mIHlvdXIgY29udGVudFwiLFxuXHQgKlx0XHRcIlNDUk9MTF9UT1BcIjogXCJTY3JvbGwgdG8gdG9wXCIsXG5cdCAqXHRcdFwiQ0hFQ0tCT1hfSEVBREVSXCI6IFwiU2VsZWN0IGFsbCByb3dzXCIsXG5cdCAqXHRcdFwiQ0hFQ0tCT1hfUk9XXCI6IFwiU2VsZWN0IHJvd1wiXG5cdCAqIH1cblx0ICogYGBgXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRzZXQgdHJhbnNsYXRpb25zKHZhbHVlKSB7XG5cdFx0Y29uc3QgdmFsdWVXaXRoRGVmYXVsdHMgPSBtZXJnZSh0aGlzLmkxOG4uZ2V0TXVsdGlwbGUoXCJUQUJMRVwiKSwgdmFsdWUpO1xuXHRcdHRoaXMuX2ZpbHRlclRpdGxlLm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLkZJTFRFUik7XG5cdFx0dGhpcy5fZW5kT2ZEYXRhVGV4dC5vdmVycmlkZSh2YWx1ZVdpdGhEZWZhdWx0cy5FTkRfT0ZfREFUQSk7XG5cdFx0dGhpcy5fc2Nyb2xsVG9wVGV4dC5vdmVycmlkZSh2YWx1ZVdpdGhEZWZhdWx0cy5TQ1JPTExfVE9QKTtcblx0XHR0aGlzLl9jaGVja2JveEhlYWRlckxhYmVsLm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLkNIRUNLQk9YX0hFQURFUik7XG5cdFx0dGhpcy5fY2hlY2tib3hSb3dMYWJlbC5vdmVycmlkZSh2YWx1ZVdpdGhEZWZhdWx0cy5DSEVDS0JPWF9ST1cpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldCB0byBgZmFsc2VgIHRvIHJlbW92ZSB0YWJsZSByb3dzICh6ZWJyYSkgc3RyaXBlcy5cblx0ICovXG5cdEBJbnB1dCgpIHN0cmlwZWQgPSB0cnVlO1xuXG5cdC8qKlxuXHQgKiBBbGxvd3MgdGFibGUgY29udGVudCB0byBzY3JvbGwgaG9yaXpvbnRhbGx5XG5cdCAqL1xuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLWRhdGEtdGFibGUtY29udGVudFwiKSB0YWJsZUNvbnRlbnQgPSB0cnVlO1xuXG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIHRvIHN0aWNrIHRoZSBoZWFkZXIgdG8gdGhlIHRvcCBvZiB0aGUgdGFibGVcblx0ICovXG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tZGF0YS10YWJsZV9pbm5lci1jb250YWluZXJcIikgQElucHV0KCkgc3RpY2t5SGVhZGVyID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIFNldCBmb290ZXIgdGVtcGxhdGUgdG8gY3VzdG9taXplIHdoYXQgaXMgZGlzcGxheWVkIGluIHRoZSB0Zm9vdCBzZWN0aW9uIG9mIHRoZSB0YWJsZVxuXHQgKi9cblx0QElucHV0KCkgZm9vdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cblx0LyoqXG5cdCAqIFVzZWQgdG8gcG9wdWxhdGUgdGhlIHJvdyBzZWxlY3Rpb24gY2hlY2tib3ggbGFiZWwgd2l0aCBhIHVzZWZ1bCB2YWx1ZSBpZiBzZXQuXG5cdCAqXG5cdCAqIEV4YW1wbGU6XG5cdCAqIGBgYFxuXHQgKiA8Y2RzLXRhYmxlIFtzZWxlY3Rpb25MYWJlbENvbHVtbl09XCIwXCI+PC9jZHMtdGFibGU+XG5cdCAqIDwhLS0gcmVzdWx0cyBpbiBhcmlhLWxhYmVsPVwiU2VsZWN0IGZpcnN0IGNvbHVtbiB2YWx1ZVwiXG5cdCAqICh3aGVyZSBcImZpcnN0IGNvbHVtbiB2YWx1ZVwiIGlzIHRoZSB2YWx1ZSBvZiB0aGUgZmlyc3QgY29sdW1uIGluIHRoZSByb3cgLS0+XG5cdCAqIGBgYFxuXHQgKi9cblx0QElucHV0KCkgc2VsZWN0aW9uTGFiZWxDb2x1bW46IG51bWJlcjtcblxuXHQvKipcblx0ICogRW1pdHMgYW4gaW5kZXggb2YgdGhlIGNvbHVtbiB0aGF0IHdhbnRzIHRvIGJlIHNvcnRlZC5cblx0ICpcblx0ICogSWYgbm8gb2JzZXJ2ZXJzIGFyZSBwcm92aWRlZCAoZGVmYXVsdCksIHRhYmxlIHdpbGwgYXR0ZW1wdCB0byBkbyBhIHNpbXBsZSBzb3J0IG9mIHRoZSBkYXRhIGxvYWRlZFxuXHQgKiBpbnRvIHRoZSBtb2RlbC5cblx0ICpcblx0ICogSWYgYW4gb2JzZXJ2ZXIgaXMgcHJvdmlkZWQsIHRhYmxlIHdpbGwgbm90IGF0dGVtcHQgYW55IHNvcnRpbmcgb2YgaXRzIG93biBhbmQgaXQgaXMgdXAgdG8gdGhlIG9ic2VydmVyXG5cdCAqIHRvIHNvcnQgdGhlIHRhYmxlLiBUaGlzIGlzIHdoYXQgeW91IHR5cGljYWxseSB3YW50IGlmIHlvdSdyZSB1c2luZyBhIGJhY2tlbmQgcXVlcnkgdG8gZ2V0IHRoZSBzb3J0ZWRcblx0ICogZGF0YSBvciB3YW50IHRvIHNvcnQgZGF0YSBhY3Jvc3MgbXVsdGlwbGUgcGFnZXMuXG5cdCAqXG5cdCAqIFVzYWdlOlxuXHQgKlxuXHQgKiBgYGB0eXBlc2NyaXB0XG5cdCAqIEBDb21wb25lbnQoe1xuXHQgKiBcdHNlbGVjdG9yOiBcImFwcC10YWJsZVwiLFxuXHQgKiBcdHRlbXBsYXRlOiBgXG5cdCAqIFx0XHQ8Y2RzLXRhYmxlXG5cdCAqIFx0XHRcdFttb2RlbF09XCJtb2RlbFwiXG5cdCAqIFx0XHRcdChzb3J0KT1cInNpbXBsZVNvcnQoJGV2ZW50KVwiPlxuXHQgKiBcdFx0XHRObyBkYXRhLlxuXHQgKiBcdFx0PC9jZHMtdGFibGU+XG5cdCAqIFx0YFxuXHQgKiB9KVxuXHQgKiBleHBvcnQgY2xhc3MgVGFibGVBcHAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cdCAqIFx0QElucHV0KCkgbW9kZWwgPSBuZXcgVGFibGVNb2RlbCgpO1xuXHQgKlxuXHQgKiBcdG5nT25Jbml0KCkge1xuXHQgKiBcdFx0dGhpcy5tb2RlbC5oZWFkZXIgPSBbXG5cdCAqIFx0XHRcdG5ldyBUYWJsZUhlYWRlckl0ZW0oeyBkYXRhOiBcIk5hbWVcIiB9KSxcblx0ICogXHRcdFx0bmV3IFRhYmxlSGVhZGVySXRlbSh7IGRhdGE6IFwiaHdlclwiIH0pXG5cdCAqIFx0XHRdO1xuXHQgKlxuXHQgKiBcdFx0dGhpcy5tb2RlbC5kYXRhID0gW1xuXHQgKiBcdFx0XHRbbmV3IFRhYmxlSXRlbSh7IGRhdGE6IFwiTmFtZSAxXCIgfSksIG5ldyBUYWJsZUl0ZW0oeyBkYXRhOiBcInF3ZXJcIiB9KV0sXG5cdCAqIFx0XHRcdFtuZXcgVGFibGVJdGVtKHsgZGF0YTogXCJOYW1lIDNcIiB9KSwgbmV3IFRhYmxlSXRlbSh7IGRhdGE6IFwiendlclwiIH0pXSxcblx0ICogXHRcdFx0W25ldyBUYWJsZUl0ZW0oeyBkYXRhOiBcIk5hbWUgMlwiIH0pLCBuZXcgVGFibGVJdGVtKHsgZGF0YTogXCJzd2VyXCIgfSldLFxuXHQgKiBcdFx0XHRbbmV3IFRhYmxlSXRlbSh7IGRhdGE6IFwiTmFtZSA0XCIgfSksIG5ldyBUYWJsZUl0ZW0oe2RhdGE6IFwidHdlclwifSldLFxuXHQgKiBcdFx0XHRbbmV3IFRhYmxlSXRlbSh7IGRhdGE6IFwiTmFtZSA1XCIgfSksIG5ldyBUYWJsZUl0ZW0oe2RhdGE6IFwidHdlclwifSldLFxuXHQgKiBcdFx0XHRbbmV3IFRhYmxlSXRlbSh7IGRhdGE6IFwiTmFtZSA2XCIgfSksIG5ldyBUYWJsZUl0ZW0oe2RhdGE6IFwidHdlclwifSldXG5cdCAqIFx0XHRdO1xuXHQgKiBcdH1cblx0ICpcblx0ICogXHRzaW1wbGVTb3J0KGluZGV4OiBudW1iZXIpIHtcblx0ICogXHRcdC8vIHRoaXMgZnVuY3Rpb24gZG9lcyBhIHNpbXBsZSBzb3J0LCB3aGljaCBpcyB0aGUgZGVmYXVsdCBmb3IgdGhlIHRhYmxlIGFuZCBpZiB0aGF0J3Ncblx0ICogXHRcdC8vIGFsbCB5b3Ugd2FudCwgeW91IGRvbid0IG5lZWQgdG8gZG8gdGhpcy5cblx0ICpcblx0ICogXHRcdC8vIGhlcmUgeW91IGNhbiBxdWVyeSB5b3VyIGJhY2tlbmQgYW5kIHVwZGF0ZSB0aGUgbW9kZWwuZGF0YSBiYXNlZCBvbiB0aGUgcmVzdWx0XG5cdCAqIFx0XHRpZiAodGhpcy5tb2RlbC5oZWFkZXJbaW5kZXhdLnNvcnRlZCkge1xuXHQgKiBcdFx0XHQvLyBpZiBhbHJlYWR5IHNvcnRlZCBmbGlwIHNvcnRpbmcgZGlyZWN0aW9uXG5cdCAqIFx0XHRcdHRoaXMubW9kZWwuaGVhZGVyW2luZGV4XS5hc2NlbmRpbmcgPSB0aGlzLm1vZGVsLmhlYWRlcltpbmRleF0uZGVzY2VuZGluZztcblx0ICogXHRcdH1cblx0ICogXHRcdHRoaXMubW9kZWwuc29ydChpbmRleCk7XG5cdCAqIFx0fVxuXHQgKiB9XG5cdCAqIGBgYFxuXHQgKi9cblx0QE91dHB1dCgpIHNvcnQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuXHQvKipcblx0ICogRW1pdHMgaWYgYWxsIHJvd3MgYXJlIHNlbGVjdGVkLlxuXHQgKlxuXHQgKiBAcGFyYW0gbW9kZWxcblx0ICovXG5cdEBPdXRwdXQoKSBzZWxlY3RBbGwgPSBuZXcgRXZlbnRFbWl0dGVyPE9iamVjdD4oKTtcblxuXHQvKipcblx0ICogRW1pdHMgaWYgYWxsIHJvd3MgYXJlIGRlc2VsZWN0ZWQuXG5cdCAqXG5cdCAqIEBwYXJhbSBtb2RlbFxuXHQgKi9cblx0QE91dHB1dCgpIGRlc2VsZWN0QWxsID0gbmV3IEV2ZW50RW1pdHRlcjxPYmplY3Q+KCk7XG5cblx0LyoqXG5cdCAqIEVtaXRzIGlmIGEgc2luZ2xlIHJvdyBpcyBzZWxlY3RlZC5cblx0ICpcblx0ICogQHBhcmFtICh7bW9kZWw6IHRoaXMubW9kZWwsIHNlbGVjdGVkUm93SW5kZXg6IGluZGV4fSlcblx0ICovXG5cdEBPdXRwdXQoKSBzZWxlY3RSb3cgPSBuZXcgRXZlbnRFbWl0dGVyPE9iamVjdD4oKTtcblxuXHQvKipcblx0ICogRW1pdHMgaWYgYSBzaW5nbGUgcm93IGlzIGRlc2VsZWN0ZWQuXG5cdCAqXG5cdCAqIEBwYXJhbSAoe21vZGVsOiB0aGlzLm1vZGVsLCBkZXNlbGVjdGVkUm93SW5kZXg6IGluZGV4fSlcblx0ICovXG5cdEBPdXRwdXQoKSBkZXNlbGVjdFJvdyA9IG5ldyBFdmVudEVtaXR0ZXI8T2JqZWN0PigpO1xuXG5cdC8qKlxuXHQgKiBFbWl0cyBpZiBhIHJvdyBpdGVtIGV4Y2x1ZGluZyBleHBhbmRCdXR0b25zLCBjaGVja2JveGVzLCBvciByYWRpb3MgaXMgY2xpY2tlZC5cblx0ICovXG5cdEBPdXRwdXQoKSByb3dDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG5cdC8qKlxuXHQgKiBFbWl0cyB3aGVuIHRhYmxlIHJlcXVpcmVzIG1vcmUgZGF0YSB0byBiZSBsb2FkZWQuXG5cdCAqL1xuXHRAT3V0cHV0KCkgc2Nyb2xsTG9hZCA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVNb2RlbD4oKTtcblxuXHQvKipcblx0ICogQ29udHJvbHMgaWYgYWxsIGNoZWNrYm94ZXMgYXJlIHZpZXdlZCBhcyBzZWxlY3RlZC5cblx0ICovXG5cdHNlbGVjdEFsbENoZWNrYm94ID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIENvbnRyb2xzIHRoZSBpbmRldGVybWluYXRlIHN0YXRlIG9mIHRoZSBoZWFkZXIgY2hlY2tib3guXG5cdCAqL1xuXHRzZWxlY3RBbGxDaGVja2JveFNvbWVTZWxlY3RlZCA9IGZhbHNlO1xuXG5cdGdldCBub0RhdGEoKSB7XG5cdFx0cmV0dXJuICF0aGlzLm1vZGVsLmRhdGEgfHxcblx0XHRcdHRoaXMubW9kZWwuZGF0YS5sZW5ndGggPT09IDAgfHxcblx0XHRcdHRoaXMubW9kZWwuZGF0YS5sZW5ndGggPT09IDEgJiYgdGhpcy5tb2RlbC5kYXRhWzBdLmxlbmd0aCA9PT0gMDtcblx0fVxuXG5cdHB1YmxpYyBpc0NvbHVtbkRyYWdnaW5nID0gZmFsc2U7XG5cdHB1YmxpYyBjb2x1bW5EcmFnZ2VkSG92ZXJJbmRleCA9IC0xO1xuXHRwdWJsaWMgY29sdW1uRHJhZ2dlZFBvc2l0aW9uID0gXCJcIjtcblxuXHRwcm90ZWN0ZWQgX21vZGVsOiBUYWJsZU1vZGVsO1xuXHRwcm90ZWN0ZWQgX2lzRGF0YUdyaWQgPSBmYWxzZTtcblx0Ly8gZmxhZyB0byBwcmV2ZW50IGdldHRlcnMvc2V0dGVycyBmcm9tIHF1ZXJ5aW5nIHRoZSB2aWV3IGJlZm9yZSBpdCdzIGZ1bGx5IGluc3RhbnRpYXRlZFxuXHRwcm90ZWN0ZWQgaXNWaWV3UmVhZHkgPSBmYWxzZTtcblxuXHRwcm90ZWN0ZWQgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblx0cHJvdGVjdGVkIHBvc2l0aW9uU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cblx0cHJvdGVjdGVkIGludGVyYWN0aW9uTW9kZWw6IERhdGFHcmlkSW50ZXJhY3Rpb25Nb2RlbDtcblx0cHJvdGVjdGVkIGludGVyYWN0aW9uUG9zaXRpb25TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuXHRwcm90ZWN0ZWQgX2V4cGFuZEJ1dHRvbkFyaWFMYWJlbCA9IHRoaXMuaTE4bi5nZXRPdmVycmlkYWJsZShcIlRBQkxFLkVYUEFORF9CVVRUT05cIik7XG5cdHByb3RlY3RlZCBfc29ydERlc2NlbmRpbmdMYWJlbCA9IHRoaXMuaTE4bi5nZXRPdmVycmlkYWJsZShcIlRBQkxFLlNPUlRfREVTQ0VORElOR1wiKTtcblx0cHJvdGVjdGVkIF9zb3J0QXNjZW5kaW5nTGFiZWwgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJUQUJMRS5TT1JUX0FTQ0VORElOR1wiKTtcblx0cHJvdGVjdGVkIF9jaGVja2JveEhlYWRlckxhYmVsID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiVEFCTEUuQ0hFQ0tCT1hfSEVBREVSXCIpO1xuXHRwcm90ZWN0ZWQgX2NoZWNrYm94Um93TGFiZWwgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJUQUJMRS5DSEVDS0JPWF9ST1dcIik7XG5cdHByb3RlY3RlZCBfZW5kT2ZEYXRhVGV4dCA9IHRoaXMuaTE4bi5nZXRPdmVycmlkYWJsZShcIlRBQkxFLkVORF9PRl9EQVRBXCIpO1xuXHRwcm90ZWN0ZWQgX3Njcm9sbFRvcFRleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJUQUJMRS5TQ1JPTExfVE9QXCIpO1xuXHRwcm90ZWN0ZWQgX2ZpbHRlclRpdGxlID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiVEFCTEUuRklMVEVSXCIpO1xuXG5cdHByb3RlY3RlZCBjb2x1bW5SZXNpemVXaWR0aDogbnVtYmVyO1xuXHRwcm90ZWN0ZWQgY29sdW1uUmVzaXplTW91c2VYOiBudW1iZXI7XG5cdHByb3RlY3RlZCBtb3VzZU1vdmVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblx0cHJvdGVjdGVkIG1vdXNlVXBTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBUYWJsZS5cblx0ICovXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuXHRcdHByb3RlY3RlZCBhcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYsXG5cdFx0cHJvdGVjdGVkIGkxOG46IEkxOG5cblx0KSB7IH1cblxuXHRuZ0FmdGVyVmlld0luaXQoKSB7XG5cdFx0dGhpcy5pc1ZpZXdSZWFkeSA9IHRydWU7XG5cdFx0aWYgKHRoaXMuaXNEYXRhR3JpZCkge1xuXHRcdFx0dGhpcy5lbmFibGVEYXRhR3JpZEludGVyYWN0aW9ucygpO1xuXHRcdH1cblx0fVxuXG5cdG5nT25EZXN0cm95KCkge1xuXHRcdHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuXHRcdGlmICh0aGlzLnBvc2l0aW9uU3Vic2NyaXB0aW9uKSB7XG5cdFx0XHR0aGlzLnBvc2l0aW9uU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cdFx0fVxuXHR9XG5cblx0ZW5hYmxlRGF0YUdyaWRJbnRlcmFjdGlvbnMoKSB7XG5cdFx0Ly8gaWYgd2UgaGF2ZSBhbiBgaW50ZXJhY3Rpb01vZGVsYCB3ZSd2ZSBhbHJlYWR5IGVuYWJsZWQgZGF0YWdyaWRcblx0XHRpZiAodGhpcy5pbnRlcmFjdGlvbk1vZGVsKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbnN0IHRhYmxlID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcInRhYmxlXCIpIGFzIEhUTUxUYWJsZUVsZW1lbnQ7XG5cdFx0Y29uc3QgdGFibGVBZGFwdGVyID0gbmV3IFRhYmxlRG9tQWRhcHRlcih0YWJsZSk7XG5cdFx0Y29uc3Qga2V5ZG93bkV2ZW50U3RyZWFtID0gZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KHRhYmxlLCBcImtleWRvd25cIik7XG5cdFx0Y29uc3QgY2xpY2tFdmVudFN0cmVhbSA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pih0YWJsZSwgXCJjbGlja1wiKTtcblx0XHR0aGlzLmludGVyYWN0aW9uTW9kZWwgPSBuZXcgRGF0YUdyaWRJbnRlcmFjdGlvbk1vZGVsKGtleWRvd25FdmVudFN0cmVhbSwgY2xpY2tFdmVudFN0cmVhbSwgdGFibGVBZGFwdGVyKTtcblx0XHR0aGlzLnBvc2l0aW9uU3Vic2NyaXB0aW9uID0gdGhpcy5pbnRlcmFjdGlvbk1vZGVsLnBvc2l0aW9uLnN1YnNjcmliZShldmVudCA9PiB7XG5cdFx0XHRjb25zdCBbY3VycmVudFJvdywgY3VycmVudENvbHVtbl0gPSBldmVudC5jdXJyZW50O1xuXHRcdFx0Y29uc3QgW3ByZXZpb3VzUm93LCBwcmV2aW91c0NvbHVtbl0gPSBldmVudC5wcmV2aW91cztcblxuXHRcdFx0Y29uc3QgY3VycmVudEVsZW1lbnQgPSB0YWJsZUFkYXB0ZXIuZ2V0Q2VsbChjdXJyZW50Um93LCBjdXJyZW50Q29sdW1uKTtcblx0XHRcdFRhYmxlLnNldFRhYkluZGV4KGN1cnJlbnRFbGVtZW50LCAwKTtcblxuXHRcdFx0Ly8gaWYgdGhlIG1vZGVsIGhhcyBqdXN0IGluaXRpYWxpemVkIGRvbid0IGZvY3VzIG9yIHJlc2V0IGFueXRoaW5nXG5cdFx0XHRpZiAocHJldmlvdXNSb3cgPT09IC0xIHx8IHByZXZpb3VzQ29sdW1uID09PSAtMSkgeyByZXR1cm47IH1cblx0XHRcdC8vIE1ha2UgdGhlIHByZXZpb3VzIGNlbGwgdW5mb2N1c2FibGUgKGlmIGl0J3Mgbm90IHRoZSBjdXJyZW50KVxuXHRcdFx0aWYgKHByZXZpb3VzUm93ICE9PSBjdXJyZW50Um93IHx8IHByZXZpb3VzQ29sdW1uICE9PSBjdXJyZW50Q29sdW1uKSB7XG5cdFx0XHRcdGNvbnN0IHByZXZpb3VzRWxlbWVudCA9IHRhYmxlQWRhcHRlci5nZXRDZWxsKHByZXZpb3VzUm93LCBwcmV2aW91c0NvbHVtbik7XG5cdFx0XHRcdFRhYmxlLnNldFRhYkluZGV4KHByZXZpb3VzRWxlbWVudCwgLTEpO1xuXHRcdFx0fVxuXHRcdFx0VGFibGUuZm9jdXMoY3VycmVudEVsZW1lbnQpO1xuXHRcdH0pO1xuXHRcdC8vIGNhbGwgdGhpcyBhZnRlciBhc3NpZ25pbmcgYHRoaXMuaW50ZXJhY3Rpb25Nb2RlbGAgc2luY2UgaXQgZGVwZW5kcyBvbiBpdFxuXHRcdHRoaXMucmVzZXRUYWJJbmRleCgpO1xuXHR9XG5cblx0ZGlzYWJsZURhdGFHcmlkSW50ZXJhY3Rpb25zKCkge1xuXHRcdC8vIHVuc3Vic2NyaWJlIGZpcnN0IHNvIHdlIGRvbid0IGNhdXNlIHRoZSBmb2N1cyB0byBmbHkgYXJvdW5kXG5cdFx0aWYgKHRoaXMucG9zaXRpb25TdWJzY3JpcHRpb24pIHtcblx0XHRcdHRoaXMucG9zaXRpb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcblx0XHR9XG5cdFx0Ly8gdW5kbyB0YWIgaW5kZXhpbmcgKGFsc28gcmVzZXRzIHRoZSBtb2RlbClcblx0XHR0aGlzLnJlc2V0VGFiSW5kZXgoMCk7XG5cdFx0Ly8gbnVsbCBvdXQgdGhlIG1vZGVsIHJlZlxuXHRcdHRoaXMuaW50ZXJhY3Rpb25Nb2RlbCA9IG51bGw7XG5cdH1cblxuXHRvblNlbGVjdEFsbCgpIHtcblx0XHR0aGlzLm1vZGVsLnNlbGVjdEFsbCh0cnVlKTtcblx0XHR0aGlzLnNlbGVjdEFsbC5lbWl0KHRoaXMubW9kZWwpO1xuXHR9XG5cblx0b25EZXNlbGVjdEFsbCgpIHtcblx0XHR0aGlzLm1vZGVsLnNlbGVjdEFsbChmYWxzZSk7XG5cdFx0dGhpcy5kZXNlbGVjdEFsbC5lbWl0KHRoaXMubW9kZWwpO1xuXHR9XG5cblx0b25TZWxlY3RSb3coZXZlbnQpIHtcblx0XHQvLyBjaGVjayBmb3IgdGhlIGV4aXN0ZW5jZSBvZiB0aGUgc2VsZWN0ZWRSb3dJbmRleCBwcm9wZXJ0eVxuXHRcdGlmIChPYmplY3Qua2V5cyhldmVudCkuaW5jbHVkZXMoXCJzZWxlY3RlZFJvd0luZGV4XCIpKSB7XG5cdFx0XHRpZiAodGhpcy5lbmFibGVTaW5nbGVTZWxlY3QpIHtcblx0XHRcdFx0dGhpcy5tb2RlbC5zZWxlY3RBbGwoZmFsc2UpO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5tb2RlbC5zZWxlY3RSb3coZXZlbnQuc2VsZWN0ZWRSb3dJbmRleCwgdHJ1ZSk7XG5cdFx0XHR0aGlzLnNlbGVjdFJvdy5lbWl0KGV2ZW50KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5tb2RlbC5zZWxlY3RSb3coZXZlbnQuZGVzZWxlY3RlZFJvd0luZGV4LCBmYWxzZSk7XG5cdFx0XHR0aGlzLmRlc2VsZWN0Um93LmVtaXQoZXZlbnQpO1xuXHRcdH1cblx0fVxuXG5cdG9uUm93Q2xpY2soaW5kZXg6IG51bWJlcikge1xuXHRcdHRoaXMucm93Q2xpY2suZW1pdChpbmRleCk7XG5cdH1cblxuXHR1cGRhdGVTZWxlY3RBbGxDaGVja2JveCgpIHtcblx0XHRjb25zdCBzZWxlY3RlZFJvd3NDb3VudCA9IHRoaXMubW9kZWwuc2VsZWN0ZWRSb3dzQ291bnQoKTtcblxuXHRcdGlmIChzZWxlY3RlZFJvd3NDb3VudCA8PSAwKSB7XG5cdFx0XHQvLyByZXNldCBzZWxlY3QgYWxsIGNoZWNrYm94IGlmIG5vdGhpbmcgc2VsZWN0ZWRcblx0XHRcdHRoaXMuc2VsZWN0QWxsQ2hlY2tib3ggPSBmYWxzZTtcblx0XHRcdHRoaXMuc2VsZWN0QWxsQ2hlY2tib3hTb21lU2VsZWN0ZWQgPSBmYWxzZTtcblx0XHR9IGVsc2UgaWYgKHNlbGVjdGVkUm93c0NvdW50IDwgdGhpcy5tb2RlbC5kYXRhLmxlbmd0aCkge1xuXHRcdFx0dGhpcy5zZWxlY3RBbGxDaGVja2JveCA9IHRydWU7XG5cdFx0XHR0aGlzLnNlbGVjdEFsbENoZWNrYm94U29tZVNlbGVjdGVkID0gdHJ1ZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5zZWxlY3RBbGxDaGVja2JveCA9IHRydWU7XG5cdFx0XHR0aGlzLnNlbGVjdEFsbENoZWNrYm94U29tZVNlbGVjdGVkID0gZmFsc2U7XG5cdFx0fVxuXHR9XG5cblx0cmVzZXRUYWJJbmRleChuZXdUYWJJbmRleCA9IC0xKSB7XG5cdFx0Ly8gZW5zdXJlIHRoZSB2aWV3IGlzIHJlYWR5IGZvciB0aGUgcmVzZXQgYmVmb3JlIHdlIHByZWZvcm0gdGhlIGFjdHVhbCByZXNldFxuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0Ly8gcmVzZXQgYWxsIHRoZSB0YWJJbmRleGVzIHdlIGNhbiBmaW5kXG5cdFx0XHRjb25zdCBmb2N1c0VsZW1lbnRMaXN0ID0gZ2V0Rm9jdXNFbGVtZW50TGlzdCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGFiYmFibGVTZWxlY3Rvcklnbm9yZVRhYkluZGV4KTtcblx0XHRcdGlmIChmb2N1c0VsZW1lbnRMaXN0KSB7XG5cdFx0XHRcdGZvY3VzRWxlbWVudExpc3QuZm9yRWFjaCh0YWJiYWJsZSA9PiB7XG5cdFx0XHRcdFx0dGFiYmFibGUudGFiSW5kZXggPSBuZXdUYWJJbmRleDtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHQvLyByZXNldCBpbnRlcmFjdGlvbiBtb2RlbCBwb3NpdGlvbnMgYW5kIHRhYkluZGV4ZXNcblx0XHRcdGlmICh0aGlzLmludGVyYWN0aW9uTW9kZWwpIHtcblx0XHRcdFx0dGhpcy5pbnRlcmFjdGlvbk1vZGVsLnJlc2V0VGFiSW5kZXhlcyhuZXdUYWJJbmRleCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRjb2x1bW5SZXNpemVTdGFydChldmVudCwgY29sdW1uKSB7XG5cdFx0dGhpcy5jb2x1bW5SZXNpemVXaWR0aCA9IHBhcnNlSW50KGNvbHVtbi5zdHlsZS53aWR0aCwgMTApO1xuXHRcdHRoaXMuY29sdW1uUmVzaXplTW91c2VYID0gZXZlbnQuY2xpZW50WDtcblx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG5cdFx0dGhpcy5tb3VzZU1vdmVTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQoZG9jdW1lbnQuYm9keSwgXCJtb3VzZW1vdmVcIikuc3Vic2NyaWJlKGV2ZW50ID0+IHtcblx0XHRcdHRoaXMuY29sdW1uUmVzaXplUHJvZ3Jlc3MoZXZlbnQsIGNvbHVtbik7XG5cdFx0fSk7XG5cdFx0dGhpcy5tb3VzZVVwU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KGRvY3VtZW50LmJvZHksIFwibW91c2V1cFwiKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuXHRcdFx0dGhpcy5jb2x1bW5SZXNpemVFbmQoZXZlbnQsIGNvbHVtbik7XG5cdFx0fSk7XG5cdH1cblxuXHRjb2x1bW5SZXNpemVQcm9ncmVzcyhldmVudCwgY29sdW1uKSB7XG5cdFx0Y29uc3QgbW92ZSA9IGV2ZW50LmNsaWVudFggLSB0aGlzLmNvbHVtblJlc2l6ZU1vdXNlWDtcblx0XHRjb2x1bW4uc3R5bGUud2lkdGggPSBgJHt0aGlzLmNvbHVtblJlc2l6ZVdpZHRoICsgbW92ZX1weGA7XG5cdH1cblxuXHRjb2x1bW5SZXNpemVFbmQoZXZlbnQsIGNvbHVtbikge1xuXHRcdHRoaXMubW91c2VNb3ZlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cdFx0dGhpcy5tb3VzZVVwU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cdH1cblxuXHQvKipcblx0ICogVHJpZ2dlcmVkIHdoZW4gdGhlIHVzZXIgc2Nyb2xscyBvbiB0aGUgYDx0Ym9keT5gIGVsZW1lbnQuXG5cdCAqIEVtaXRzIHRoZSBgc2Nyb2xsTG9hZGAgZXZlbnQuXG5cdCAqL1xuXHRvblNjcm9sbChldmVudCkge1xuXHRcdGNvbnN0IGRpc3RhbmNlRnJvbUJvdHRvbSA9IGV2ZW50LnRhcmdldC5zY3JvbGxIZWlnaHQgLSBldmVudC50YXJnZXQuY2xpZW50SGVpZ2h0IC0gZXZlbnQudGFyZ2V0LnNjcm9sbFRvcDtcblxuXHRcdGlmIChkaXN0YW5jZUZyb21Cb3R0b20gPD0gdGhpcy5zY3JvbGxMb2FkRGlzdGFuY2UpIHtcblx0XHRcdHRoaXMuc2Nyb2xsTG9hZC5lbWl0KHRoaXMubW9kZWwpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLm1vZGVsLmlzRW5kID0gZmFsc2U7XG5cdFx0fVxuXHR9XG5cblx0Y29sdW1uRHJhZ1N0YXJ0KGV2ZW50LCBjb2x1bW5JbmRleCkge1xuXHRcdHRoaXMuaXNDb2x1bW5EcmFnZ2luZyA9IHRydWU7XG5cdFx0dGhpcy5jb2x1bW5EcmFnZ2VkSG92ZXJJbmRleCA9IGNvbHVtbkluZGV4O1xuXHRcdGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKFwiY29sdW1uSW5kZXhcIiwgSlNPTi5zdHJpbmdpZnkoY29sdW1uSW5kZXgpKTtcblx0fVxuXG5cdGNvbHVtbkRyYWdFbmQoZXZlbnQsIGNvbHVtbkluZGV4KSB7XG5cdFx0dGhpcy5pc0NvbHVtbkRyYWdnaW5nID0gZmFsc2U7XG5cdFx0dGhpcy5jb2x1bW5EcmFnZ2VkSG92ZXJJbmRleCA9IC0xO1xuXHR9XG5cblx0Y29sdW1uRHJhZ0VudGVyKGV2ZW50LCBwb3NpdGlvbiwgY29sdW1uSW5kZXgpIHtcblx0XHR0aGlzLmNvbHVtbkRyYWdnZWRQb3NpdGlvbiA9IHBvc2l0aW9uO1xuXHRcdHRoaXMuY29sdW1uRHJhZ2dlZEhvdmVySW5kZXggPSBjb2x1bW5JbmRleDtcblx0fVxuXG5cdGNvbHVtbkRyYWdMZWF2ZShldmVudCwgcG9zaXRpb24sIGNvbHVtbkluZGV4KSB7XG5cdFx0dGhpcy5jb2x1bW5EcmFnZ2VkUG9zaXRpb24gPSBcIlwiO1xuXHR9XG5cblx0Y29sdW1uRHJhZ292ZXIoZXZlbnQsIHBvc2l0aW9uLCBjb2x1bW5JbmRleCkge1xuXHRcdHRoaXMuY29sdW1uRHJhZ2dlZEhvdmVySW5kZXggPSBjb2x1bW5JbmRleDtcblx0XHR0aGlzLmNvbHVtbkRyYWdnZWRQb3NpdGlvbiA9IHBvc2l0aW9uO1xuXG5cdFx0Ly8gbmVlZGVkIHRvIHRlbGwgYnJvd3NlciB0byBhbGxvdyBkcm9wcGluZ1xuXHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdH1cblxuXHRjb2x1bW5Ecm9wKGV2ZW50LCBwb3NpdGlvbiwgY29sdW1uSW5kZXgpIHtcblx0XHR0aGlzLmlzQ29sdW1uRHJhZ2dpbmcgPSBmYWxzZTtcblx0XHR0aGlzLmNvbHVtbkRyYWdnZWRIb3ZlckluZGV4ID0gLTE7XG5cdFx0dGhpcy5jb2x1bW5EcmFnZ2VkUG9zaXRpb24gPSBcIlwiO1xuXG5cdFx0dGhpcy5tb2RlbC5tb3ZlQ29sdW1uKFxuXHRcdFx0cGFyc2VJbnQoZXZlbnQuZGF0YVRyYW5zZmVyLmdldERhdGEoXCJjb2x1bW5JbmRleFwiKSwgMTApLFxuXHRcdFx0Y29sdW1uSW5kZXggKyAocG9zaXRpb24gPT09IFwicmlnaHRcIiA/IDEgOiAwKVxuXHRcdCk7XG5cdH1cblxuXHRkb1NvcnQoaW5kZXg6IG51bWJlcikge1xuXHRcdGlmICh0aGlzLnNvcnQub2JzZXJ2ZXJzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0Ly8gbm8gc29ydCBwcm92aWRlZCBzbyBkbyB0aGUgc2ltcGxlIHNvcnRcblx0XHRcdGlmICh0aGlzLm1vZGVsLmhlYWRlcltpbmRleF0uc29ydGVkKSB7XG5cdFx0XHRcdC8vIGlmIGFscmVhZHkgc29ydGVkIGZsaXAgc29ydGluZyBkaXJlY3Rpb25cblx0XHRcdFx0dGhpcy5tb2RlbC5oZWFkZXJbaW5kZXhdLmFzY2VuZGluZyA9IHRoaXMubW9kZWwuaGVhZGVyW2luZGV4XS5kZXNjZW5kaW5nO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5tb2RlbC5zb3J0KGluZGV4KTtcblx0XHR9XG5cblx0XHR0aGlzLnNvcnQuZW1pdChpbmRleCk7XG5cdH1cblxuXHQvKipcblx0ICogVHJpZ2dlcmVkIHdoZW4gdGhlIHVzZXIgc2Nyb2xscyBvbiB0aGUgYDx0Ym9keT5gIGVsZW1lbnQuXG5cdCAqIEVtaXRzIHRoZSBgc2Nyb2xsTG9hZGAgZXZlbnQuXG5cdCAqL1xuXHRzY3JvbGxUb1RvcChldmVudCkge1xuXHRcdGV2ZW50LnRhcmdldC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LmNoaWxkcmVuWzFdLnNjcm9sbFRvcCA9IDA7XG5cdFx0dGhpcy5tb2RlbC5pc0VuZCA9IGZhbHNlO1xuXHR9XG5cblx0Z2V0U2VsZWN0aW9uTGFiZWxWYWx1ZShyb3c6IFRhYmxlSXRlbVtdKSB7XG5cdFx0aWYgKCF0aGlzLnNlbGVjdGlvbkxhYmVsQ29sdW1uKSB7XG5cdFx0XHRyZXR1cm4geyB2YWx1ZTogdGhpcy5pMThuLmdldCgpLlRBQkxFLlJPVyB9O1xuXHRcdH1cblx0XHRyZXR1cm4geyB2YWx1ZTogcm93W3RoaXMuc2VsZWN0aW9uTGFiZWxDb2x1bW5dLmRhdGEgfTtcblx0fVxuXG5cdGdldEV4cGFuZEJ1dHRvbkFyaWFMYWJlbCgpIHtcblx0XHRyZXR1cm4gdGhpcy5fZXhwYW5kQnV0dG9uQXJpYUxhYmVsLnN1YmplY3Q7XG5cdH1cblx0Z2V0U29ydERlc2NlbmRpbmdMYWJlbCgpIHtcblx0XHRyZXR1cm4gdGhpcy5fc29ydERlc2NlbmRpbmdMYWJlbC5zdWJqZWN0O1xuXHR9XG5cdGdldFNvcnRBc2NlbmRpbmdMYWJlbCgpIHtcblx0XHRyZXR1cm4gdGhpcy5fc29ydEFzY2VuZGluZ0xhYmVsLnN1YmplY3Q7XG5cdH1cblxuXHRnZXRDaGVja2JveEhlYWRlckxhYmVsKCkge1xuXHRcdHJldHVybiB0aGlzLl9jaGVja2JveEhlYWRlckxhYmVsLnN1YmplY3Q7XG5cdH1cblxuXHRnZXRDaGVja2JveFJvd0xhYmVsKCkge1xuXHRcdHJldHVybiB0aGlzLl9jaGVja2JveFJvd0xhYmVsLnN1YmplY3Q7XG5cdH1cblxuXHRnZXRFbmRPZkRhdGFUZXh0KCkge1xuXHRcdHJldHVybiB0aGlzLl9lbmRPZkRhdGFUZXh0LnN1YmplY3Q7XG5cdH1cblxuXHRnZXRTY3JvbGxUb3BUZXh0KCkge1xuXHRcdHJldHVybiB0aGlzLl9zY3JvbGxUb3BUZXh0LnN1YmplY3Q7XG5cdH1cblxuXHRnZXRGaWx0ZXJUaXRsZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5fZmlsdGVyVGl0bGUuc3ViamVjdDtcblx0fVxufVxuIl19
904
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUVULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUtaLFdBQVcsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUUzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV2RyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBR3hEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnSkc7QUFnRkgsTUFBTSxPQUFPLEtBQUs7SUF1WWpCOztPQUVHO0lBQ0gsWUFDVyxVQUFzQixFQUN0QixjQUE4QixFQUM5QixJQUFVO1FBRlYsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsU0FBSSxHQUFKLElBQUksQ0FBTTtRQXBTckI7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LE1BQU07Z0JBS0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENvbXBvbmVudCxcblx0QXBwbGljYXRpb25SZWYsXG5cdElucHV0LFxuXHRPdXRwdXQsXG5cdEV2ZW50RW1pdHRlcixcblx0RWxlbWVudFJlZixcblx0QWZ0ZXJWaWV3SW5pdCxcblx0VGVtcGxhdGVSZWYsXG5cdE9uRGVzdHJveSxcblx0SG9zdEJpbmRpbmdcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50LCBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcblxuaW1wb3J0IHsgVGFibGVNb2RlbCB9IGZyb20gXCIuL3RhYmxlLW1vZGVsLmNsYXNzXCI7XG5pbXBvcnQgeyBUYWJsZUhlYWRlckl0ZW0gfSBmcm9tIFwiLi90YWJsZS1oZWFkZXItaXRlbS5jbGFzc1wiO1xuaW1wb3J0IHsgVGFibGVJdGVtIH0gZnJvbSBcIi4vdGFibGUtaXRlbS5jbGFzc1wiO1xuXG5pbXBvcnQgeyBnZXRGb2N1c0VsZW1lbnRMaXN0LCB0YWJiYWJsZVNlbGVjdG9ySWdub3JlVGFiSW5kZXggfSBmcm9tIFwiY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IEkxOG4sIE92ZXJyaWRhYmxlIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvaTE4blwiO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tIFwiY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhci91dGlsc1wiO1xuaW1wb3J0IHsgRGF0YUdyaWRJbnRlcmFjdGlvbk1vZGVsIH0gZnJvbSBcIi4vZGF0YS1ncmlkLWludGVyYWN0aW9uLW1vZGVsLmNsYXNzXCI7XG5pbXBvcnQgeyBUYWJsZURvbUFkYXB0ZXIgfSBmcm9tIFwiLi90YWJsZS1hZGFwdGVyLmNsYXNzXCI7XG5pbXBvcnQgeyBUYWJsZVJvd1NpemUgfSBmcm9tIFwiLi90YWJsZS50eXBlc1wiO1xuXG4vKipcbiAqIEJ1aWxkIHlvdXIgdGFibGUgd2l0aCB0aGlzIGNvbXBvbmVudCBieSBleHRlbmRpbmcgdGhpbmdzIHRoYXQgZGlmZmVyIGZyb20gZGVmYXVsdC5cbiAqXG4gKiBbU2VlIGRlbW9dKC4uLy4uLz9wYXRoPS9zdG9yeS9jb21wb25lbnRzLXRhYmxlLS1iYXNpYylcbiAqXG4gKiBJbnN0ZWFkIG9mIHRoZSB1c3VhbCB3cml0ZS15b3VyLW93bi1odG1sIGFwcHJvYWNoIHlvdSBoYWQgd2l0aCBgPHRhYmxlPmAsXG4gKiBjYXJib24gdGFibGUgdXNlcyBtb2RlbC12aWV3LWNvbnRyb2xsZXIgYXBwcm9hY2guXG4gKlxuICogSGVyZSwgeW91IGNyZWF0ZSBhIHZpZXcgKHdpdGggYnVpbHQtaW4gY29udHJvbGxlcikgYW5kIHByb3ZpZGUgaXQgYSBtb2RlbC5cbiAqIENoYW5nZXMgeW91IG1ha2UgdG8gdGhlIG1vZGVsIGFyZSByZWZsZWN0ZWQgaW4gdGhlIHZpZXcuIFByb3ZpZGUgc2FtZSBtb2RlbCB5b3UgdXNlXG4gKiBpbiB0aGUgdGFibGUgdG8gdGhlIGA8Y2RzLXBhZ2luYXRpb24+YCBjb21wb25lbnRzLlxuICogVGhleSBwcm92aWRlIGEgZGlmZmVyZW50IHZpZXcgb3ZlciB0aGUgc2FtZSBkYXRhLlxuICpcbiAqICMjIEJhc2ljIHVzYWdlXG4gKlxuICogYGBgaHRtbFxuICogPGNkcy10YWJsZSBbbW9kZWxdPVwibW9kZWxcIj48L2Nkcy10YWJsZT5cbiAqIGBgYFxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHB1YmxpYyBtb2RlbCA9IG5ldyBUYWJsZU1vZGVsKCk7XG4gKlxuICogdGhpcy5tb2RlbC5kYXRhID0gW1xuICogXHRbbmV3IFRhYmxlSXRlbSh7ZGF0YTogXCJhc2RmXCJ9KSwgbmV3IFRhYmxlSXRlbSh7ZGF0YTogXCJxd2VyXCJ9KV0sXG4gKiBcdFtuZXcgVGFibGVJdGVtKHtkYXRhOiBcImNzZGZcIn0pLCBuZXcgVGFibGVJdGVtKHtkYXRhOiBcInp3ZXJcIn0pXSxcbiAqIFx0W25ldyBUYWJsZUl0ZW0oe2RhdGE6IFwiYnNkZlwifSksIG5ldyBUYWJsZUl0ZW0oe2RhdGE6IFwic3dlclwifSldLFxuICogXHRbbmV3IFRhYmxlSXRlbSh7ZGF0YTogXCJjc2RmXCJ9KSwgbmV3IFRhYmxlSXRlbSh7ZGF0YTogXCJ0d2VyXCJ9KV1cbiAqIF07XG4gKiBgYGBcbiAqXG4gKiAjIyBDdXN0b21pemF0aW9uXG4gKlxuICogSWYgeW91IGhhdmUgY3VzdG9tIGRhdGEgaW4geW91ciB0YWJsZSwgeW91IG5lZWQgYSB3YXkgdG8gZGlzcGxheSBpdC4gWW91IGNhbiBkbyB0aGF0XG4gKiBieSBwcm92aWRpbmcgYSB0ZW1wbGF0ZSB0byBgVGFibGVJdGVtYC5cbiAqXG4gKiBgYGBodG1sXG4gKiA8bmctdGVtcGxhdGUgI2N1c3RvbVRhYmxlSXRlbVRlbXBsYXRlIGxldC1kYXRhPVwiZGF0YVwiPlxuICogXHQ8YSBbcm91dGVyTGlua109XCJkYXRhLmxpbmtcIj57e2RhdGEubmFtZX19IHt7ZGF0YS5zdXJuYW1lfX08L2E+XG4gKiA8L25nLXRlbXBsYXRlPlxuICogYGBgXG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogY3VzdG9tVGFibGVJdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gKlxuICogdGhpcy5jdXN0b21Nb2RlbC5kYXRhID0gW1xuICogXHRbbmV3IFRhYmxlSXRlbSh7ZGF0YTogXCJhc2RmXCJ9KSwgbmV3IFRhYmxlSXRlbSh7ZGF0YToge25hbWU6IFwiTGVzc3lcIiwgbGluazogXCIvdGFibGVcIn0sIHRlbXBsYXRlOiB0aGlzLmN1c3RvbVRhYmxlSXRlbVRlbXBsYXRlfSldLFxuICogXHRbbmV3IFRhYmxlSXRlbSh7ZGF0YTogXCJjc2RmXCJ9KSwgbmV3IFRhYmxlSXRlbSh7ZGF0YTogXCJzd2VyXCJ9KV0sXG4gKiBcdFtuZXcgVGFibGVJdGVtKHtkYXRhOiBcImJzZGZcIn0pLCBuZXcgVGFibGVJdGVtKHtkYXRhOiB7bmFtZTogXCJBbGljZVwiLCBzdXJuYW1lOiBcIkJvYlwifSwgdGVtcGxhdGU6IHRoaXMuY3VzdG9tVGFibGVJdGVtVGVtcGxhdGV9KV0sXG4gKiBcdFtuZXcgVGFibGVJdGVtKHtkYXRhOiBcImNzZGZcIn0pLCBuZXcgVGFibGVJdGVtKHtkYXRhOiBcInR3ZXJcIn0pXSxcbiAqIF07XG4gKiBgYGBcbiAqXG4gKiAjIyMgU29ydGluZyBhbmQgZmlsdGVyaW5nXG4gKlxuICogSW4gY2FzZSB5b3UgbmVlZCBjdXN0b20gc29ydGluZyBhbmQvb3IgZmlsdGVyaW5nIHlvdSBzaG91bGQgc3ViY2xhc3MgYFRhYmxlSGVhZGVySXRlbWBcbiAqIGFuZCBvdmVycmlkZSBuZWVkZWQgZnVuY3Rpb25zLlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNsYXNzIEZpbHRlcmFibGVIZWFkZXJJdGVtIGV4dGVuZHMgVGFibGVIZWFkZXJJdGVtIHtcbiAqIFx0Ly8gY3VzdG9tIGZpbHRlciBmdW5jdGlvblxuICogXHRmaWx0ZXIoaXRlbTogVGFibGVJdGVtKTogYm9vbGVhbiB7XG4gKiBcdFx0aWYgKHR5cGVvZiBpdGVtLmRhdGEgPT09IFwic3RyaW5nXCIgJiYgaXRlbS5kYXRhLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih0aGlzLmZpbHRlckRhdGEuZGF0YS50b0xvd2VyQ2FzZSgpKSA+PSAwIHx8XG4gKiBcdFx0aXRlbS5kYXRhLm5hbWUgJiYgaXRlbS5kYXRhLm5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMuZmlsdGVyRGF0YS5kYXRhLnRvTG93ZXJDYXNlKCkpID49IDAgfHxcbiAqIFx0XHRpdGVtLmRhdGEuc3VybmFtZSAmJiBpdGVtLmRhdGEuc3VybmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodGhpcy5maWx0ZXJEYXRhLmRhdGEudG9Mb3dlckNhc2UoKSkgPj0gMCkge1xuICogXHRcdFx0cmV0dXJuIGZhbHNlO1xuICogXHRcdH1cbiAqIFx0XHRyZXR1cm4gdHJ1ZTtcbiAqIFx0fVxuICpcbiAqIFx0c2V0IGZpbHRlckNvdW50KG4pIHt9XG4gKiBcdGdldCBmaWx0ZXJDb3VudCgpIHtcbiAqIFx0XHRyZXR1cm4gKHRoaXMuZmlsdGVyRGF0YSAmJiB0aGlzLmZpbHRlckRhdGEuZGF0YSAmJiB0aGlzLmZpbHRlckRhdGEuZGF0YS5sZW5ndGggPiAwKSA/IDEgOiAwO1xuICogXHR9XG4gKlxuICogXHQvLyB1c2VkIGZvciBjdXN0b20gc29ydGluZ1xuICogXHRjb21wYXJlKG9uZTogVGFibGVJdGVtLCB0d286IFRhYmxlSXRlbSkge1xuICogXHRcdGNvbnN0IHN0cmluZ09uZSA9IChvbmUuZGF0YS5uYW1lIHx8IG9uZS5kYXRhLnN1cm5hbWUgfHwgb25lLmRhdGEpLnRvTG93ZXJDYXNlKCk7XG4gKiBcdFx0Y29uc3Qgc3RyaW5nVHdvID0gKHR3by5kYXRhLm5hbWUgfHwgdHdvLmRhdGEuc3VybmFtZSB8fCB0d28uZGF0YSkudG9Mb3dlckNhc2UoKTtcbiAqXG4gKiBcdFx0aWYgKHN0cmluZ09uZSA+IHN0cmluZ1R3bykge1xuICogXHRcdFx0cmV0dXJuIDE7XG4gKiBcdFx0fSBlbHNlIGlmIChzdHJpbmdPbmUgPCBzdHJpbmdUd28pIHtcbiAqIFx0XHRcdHJldHVybiAtMTtcbiAqIFx0XHR9IGVsc2Uge1xuICogXHRcdFx0cmV0dXJuIDA7XG4gKiBcdFx0fVxuICogXHR9XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBJZiB5b3Ugd2FudCB0byBkbyB5b3VyIHNvcnRpbmcgb24gdGhlIGJhY2tlbmQgb3IgcXVlcnkgZm9yIHNvcnRlZCBkYXRhIGFzIGEgcmVzdWx0IG9mIHVzZXJcbiAqIGNsaWNraW5nIHRoZSB0YWJsZSBoZWFkZXIsIGNoZWNrIHRhYmxlIFtgc29ydGBdKCNzb3J0KSBvdXRwdXQgZG9jdW1lbnRhdGlvblxuICpcbiAqIFNlZSBgVGFibGVIZWFkZXJJdGVtYCBjbGFzcyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiAjIyBObyBkYXRhIHRlbXBsYXRlXG4gKlxuICogV2hlbiB0YWJsZSBoYXMgbm8gZGF0YSB0byBzaG93LCBpdCBjYW4gc2hvdyBhIG1lc3NhZ2UgeW91IHByb3ZpZGUgaXQgaW5zdGVhZC5cbiAqXG4gKiBgYGBodG1sXG4gKiA8Y2RzLXRhYmxlIFttb2RlbF09XCJtb2RlbFwiPk5vIGRhdGEuPC9jZHMtdGFibGU+XG4gKiBgYGBcbiAqXG4gKiAuLi4gd2lsbCBzaG93IGBObyBkYXRhLmAgbWVzc2FnZSwgYnV0IHlvdSBjYW4gZ2V0IGNyZWF0aXZlIGFuZCBwcm92aWRlIGFueSB0ZW1wbGF0ZSB5b3Ugd2FudFxuICogdG8gcmVwbGFjZSB0YWJsZSdzIGRlZmF1bHQgYHRib2R5YC5cbiAqXG4gKiAjIyBVc2UgcGFnaW5hdGlvbiBhcyB0YWJsZSBmb290ZXJcbiAqXG4gKiBgYGBodG1sXG4gKiA8Y2RzLXBhZ2luYXRpb24gW21vZGVsXT1cIm1vZGVsXCIgKHNlbGVjdFBhZ2UpPVwic2VsZWN0UGFnZSgkZXZlbnQpXCI+PC9jZHMtcGFnaW5hdGlvbj5cbiAqIGBgYFxuICpcbiAqIGBzZWxlY3RQYWdlKClgIGZ1bmN0aW9uIHNob3VsZCBmZXRjaCB0aGUgZGF0YSBmcm9tIGJhY2tlbmQsIGNyZWF0ZSBuZXcgYGRhdGFgLCBhcHBseSBpdCB0byBgbW9kZWwuZGF0YWAsXG4gKiBhbmQgdXBkYXRlIGBtb2RlbC5jdXJyZW50UGFnZWAuXG4gKlxuICogSWYgdGhlIGRhdGEgeW91ciBzZXJ2ZXIgcmV0dXJucyBpcyBhIHR3byBkaW1lbnNpb25hbCBhcnJheSBvZiBvYmplY3RzLCBpdCB3b3VsZCBsb29rIHNvbWV0aGluZyBsaWtlIHRoaXM6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogc2VsZWN0UGFnZShwYWdlKSB7XG4gKiBcdHRoaXMuZ2V0UGFnZShwYWdlKS50aGVuKChkYXRhOiBBcnJheTxBcnJheTxhbnk+PikgPT4ge1xuICogXHRcdC8vIHNldCB0aGUgZGF0YSBhbmQgdXBkYXRlIHBhZ2VcbiAqIFx0XHR0aGlzLm1vZGVsLmRhdGEgPSB0aGlzLnByZXBhcmVEYXRhKGRhdGEpO1xuICogXHRcdHRoaXMubW9kZWwuY3VycmVudFBhZ2UgPSBwYWdlO1xuICogXHR9KTtcbiAqIH1cbiAqXG4gKiBwcm90ZWN0ZWQgcHJlcGFyZURhdGEoZGF0YTogQXJyYXk8QXJyYXk8YW55Pj4pIHtcbiAqIFx0Ly8gY3JlYXRlIG5ldyBkYXRhIGZyb20gdGhlIHNlcnZpY2UgZGF0YVxuICogXHRsZXQgbmV3RGF0YSA9IFtdO1xuICogXHRkYXRhLmZvckVhY2goZGF0YVJvdyA9PiB7XG4gKiBcdFx0bGV0IHJvdyA9IFtdO1xuICogXHRcdGRhdGFSb3cuZm9yRWFjaChkYXRhRWxlbWVudCA9PiB7XG4gKiBcdFx0XHRyb3cucHVzaChuZXcgVGFibGVJdGVtKHtcbiAqIFx0XHRcdFx0ZGF0YTogZGF0YUVsZW1lbnQsXG4gKiBcdFx0XHRcdHRlbXBsYXRlOiB0eXBlb2YgZGF0YUVsZW1lbnQgPT09IFwic3RyaW5nXCIgPyB1bmRlZmluZWQgOiB0aGlzLnBhZ2luYXRpb25UYWJsZUl0ZW1UZW1wbGF0ZVxuICogXHRcdFx0XHQvLyB5b3VyIHRlbXBsYXRlIGNhbiBoYW5kbGUgYWxsIHRoZSBkYXRhIHR5cGVzIHNvIHlvdSBkb24ndCBoYXZlIHRvIGNvbmRpdGlvbmFsbHkgc2V0IGl0XG4gKiBcdFx0XHRcdC8vIHlvdSBjYW4gYWxzbyBzZXQgZGlmZmVyZW50IHRlbXBsYXRlcyBmb3IgZGlmZmVyZW50IGNvbHVtbnMgYmFzZWQgb24gaW5kZXhcbiAqIFx0XHRcdH0pKTtcbiAqIFx0XHR9KTtcbiAqIFx0XHRuZXdEYXRhLnB1c2gocm93KTtcbiAqIFx0fSk7XG4gKiBcdHJldHVybiBuZXdEYXRhO1xuICogfVxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJjZHMtdGFibGUsIGlibS10YWJsZVwiLFxuXHR0ZW1wbGF0ZTogYFxuXHQ8dGFibGVcblx0XHRjZHNUYWJsZVxuXHRcdFtzb3J0YWJsZV09XCJzb3J0YWJsZVwiXG5cdFx0W25vQm9yZGVyXT1cIm5vQm9yZGVyXCJcblx0XHRbbmdDbGFzc109XCJ7J2Nkcy0tZGF0YS10YWJsZS0tc3RpY2t5LWhlYWRlcic6IHN0aWNreUhlYWRlcn1cIlxuXHRcdFtzaXplXT1cInNpemVcIlxuXHRcdFtzdHJpcGVkXT1cInN0cmlwZWRcIlxuXHRcdFtza2VsZXRvbl09XCJza2VsZXRvblwiXG5cdFx0W2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZGJ5XCJcblx0XHRbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRieVwiPlxuXHRcdDx0aGVhZFxuXHRcdFx0Y2RzVGFibGVIZWFkXG5cdFx0XHRbc29ydGFibGVdPVwic29ydGFibGVcIlxuXHRcdFx0KGRlc2VsZWN0QWxsKT1cIm9uRGVzZWxlY3RBbGwoKVwiXG5cdFx0XHQoc2VsZWN0QWxsKT1cIm9uU2VsZWN0QWxsKClcIlxuXHRcdFx0KHNvcnQpPVwiZG9Tb3J0KCRldmVudClcIlxuXHRcdFx0W2NoZWNrYm94SGVhZGVyTGFiZWxdPVwiZ2V0Q2hlY2tib3hIZWFkZXJMYWJlbCgpXCJcblx0XHRcdFtmaWx0ZXJUaXRsZV09XCJnZXRGaWx0ZXJUaXRsZSgpXCJcblx0XHRcdFttb2RlbF09XCJtb2RlbFwiXG5cdFx0XHRbc2VsZWN0QWxsQ2hlY2tib3hdPVwic2VsZWN0QWxsQ2hlY2tib3hcIlxuXHRcdFx0W3NlbGVjdEFsbENoZWNrYm94U29tZVNlbGVjdGVkXT1cInNlbGVjdEFsbENoZWNrYm94U29tZVNlbGVjdGVkXCJcblx0XHRcdFtzaG93U2VsZWN0aW9uQ29sdW1uXT1cInNob3dTZWxlY3Rpb25Db2x1bW5cIlxuXHRcdFx0W2VuYWJsZVNpbmdsZVNlbGVjdF09XCJlbmFibGVTaW5nbGVTZWxlY3RcIlxuXHRcdFx0W3NrZWxldG9uXT1cInNrZWxldG9uXCJcblx0XHRcdFtzb3J0QXNjZW5kaW5nTGFiZWxdPVwic29ydEFzY2VuZGluZ0xhYmVsXCJcblx0XHRcdFtzb3J0RGVzY2VuZGluZ0xhYmVsXT1cInNvcnREZXNjZW5kaW5nTGFiZWxcIlxuXHRcdFx0W3N0aWNreUhlYWRlcl09XCJzdGlja3lIZWFkZXJcIj5cblx0XHQ8L3RoZWFkPlxuXHRcdDx0Ym9keVxuXHRcdFx0Y2RzVGFibGVCb2R5XG5cdFx0XHQoZGVzZWxlY3RSb3cpPVwib25TZWxlY3RSb3coJGV2ZW50KVwiXG5cdFx0XHQoc2Nyb2xsKT1cIm9uU2Nyb2xsKCRldmVudClcIlxuXHRcdFx0KHNlbGVjdFJvdyk9XCJvblNlbGVjdFJvdygkZXZlbnQpXCJcblx0XHRcdFtjaGVja2JveFJvd0xhYmVsXT1cImdldENoZWNrYm94Um93TGFiZWwoKVwiXG5cdFx0XHRbZW5hYmxlU2luZ2xlU2VsZWN0XT1cImVuYWJsZVNpbmdsZVNlbGVjdFwiXG5cdFx0XHQocm93Q2xpY2spPVwib25Sb3dDbGljaygkZXZlbnQpXCJcblx0XHRcdFtleHBhbmRCdXR0b25BcmlhTGFiZWxdPVwiZXhwYW5kQnV0dG9uQXJpYUxhYmVsXCJcblx0XHRcdFttb2RlbF09XCJtb2RlbFwiXG5cdFx0XHRbc2l6ZV09XCJzaXplXCJcblx0XHRcdFtuZ1N0eWxlXT1cInsnb3ZlcmZsb3cteSc6ICdzY3JvbGwnfVwiXG5cdFx0XHRbc2VsZWN0aW9uTGFiZWxDb2x1bW5dPVwic2VsZWN0aW9uTGFiZWxDb2x1bW5cIlxuXHRcdFx0W3Nob3dTZWxlY3Rpb25Db2x1bW5dPVwic2hvd1NlbGVjdGlvbkNvbHVtblwiXG5cdFx0XHRbc2tlbGV0b25dPVwic2tlbGV0b25cIlxuXHRcdFx0Km5nSWY9XCIhbm9EYXRhOyBlbHNlIG5vRGF0YVRlbXBsYXRlXCI+XG5cdFx0PC90Ym9keT5cblx0XHQ8bmctdGVtcGxhdGUgI25vRGF0YVRlbXBsYXRlPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L25nLXRlbXBsYXRlPlxuXHRcdDx0Zm9vdD5cblx0XHRcdDxuZy10ZW1wbGF0ZVxuXHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldF09XCJmb290ZXJUZW1wbGF0ZVwiPlxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdDx0ciAqbmdJZj1cInRoaXMubW9kZWwuaXNMb2FkaW5nXCI+XG5cdFx0XHRcdDx0ZCBjbGFzcz1cInRhYmxlX2xvYWRpbmctaW5kaWNhdG9yXCI+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNkcy0tbG9hZGluZyBjZHMtLWxvYWRpbmctLXNtYWxsXCI+XG5cdFx0XHRcdFx0XHQ8c3ZnIGNsYXNzPVwiY2RzLS1sb2FkaW5nX19zdmdcIiB2aWV3Qm94PVwiLTc1IC03NSAxNTAgMTUwXCI+XG5cdFx0XHRcdFx0XHRcdDxjaXJjbGUgY2xhc3M9XCJjZHMtLWxvYWRpbmdfX3N0cm9rZVwiIGN4PVwiMFwiIGN5PVwiMFwiIHI9XCIzNy41XCIgLz5cblx0XHRcdFx0XHRcdDwvc3ZnPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L3RkPlxuXHRcdFx0PC90cj5cblx0XHRcdDx0ciAqbmdJZj1cInRoaXMubW9kZWwuaXNFbmRcIj5cblx0XHRcdFx0PHRkIGNsYXNzPVwidGFibGVfZW5kLWluZGljYXRvclwiPlxuXHRcdFx0XHRcdDxoNT57e2dldEVuZE9mRGF0YVRleHQoKSB8IGFzeW5jfX08L2g1PlxuXHRcdFx0XHRcdDxidXR0b24gKGNsaWNrKT1cInNjcm9sbFRvVG9wKCRldmVudClcIiBjbGFzcz1cImJ0bi0tc2Vjb25kYXJ5LXNtXCI+XG5cdFx0XHRcdFx0XHR7e2dldFNjcm9sbFRvcFRleHQoKSB8IGFzeW5jfX1cblx0XHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdFx0PC90ZD5cblx0XHRcdDwvdHI+XG5cdFx0PC90Zm9vdD5cblx0PC90YWJsZT5cblx0YCxcblx0c3R5bGVzOiBbYFxuXHRcdDpob3N0IHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblx0YF1cbn0pXG5leHBvcnQgY2xhc3MgVGFibGUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXHQvKipcblx0ICogQ3JlYXRlcyBhIHNrZWxldG9uIG1vZGVsIHdpdGggYSByb3cgYW5kIGNvbHVtbiBjb3VudCBzcGVjaWZpZWQgYnkgdGhlIHVzZXJcblx0ICpcblx0ICogRXhhbXBsZTpcblx0ICpcblx0ICogYGBgdHlwZXNjcmlwdFxuXHQgKiB0aGlzLm1vZGVsID0gVGFibGUuc2tlbGV0b25Nb2RlbCg1LCA1KTtcblx0ICogYGBgXG5cdCAqL1xuXHRzdGF0aWMgc2tlbGV0b25Nb2RlbChyb3dDb3VudDogbnVtYmVyLCBjb2x1bW5Db3VudDogbnVtYmVyKSB7XG5cdFx0Y29uc3QgbW9kZWwgPSBuZXcgVGFibGVNb2RlbCgpO1xuXHRcdGxldCBoZWFkZXIgPSBuZXcgQXJyYXk8VGFibGVIZWFkZXJJdGVtPigpO1xuXHRcdGxldCBkYXRhID0gbmV3IEFycmF5PEFycmF5PFRhYmxlSXRlbT4+KCk7XG5cdFx0bGV0IHJvdyA9IG5ldyBBcnJheTxUYWJsZUl0ZW0+KCk7XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGNvbHVtbkNvdW50OyBpKyspIHtcblx0XHRcdGhlYWRlci5wdXNoKG5ldyBUYWJsZUhlYWRlckl0ZW0oKSk7XG5cdFx0XHRyb3cucHVzaChuZXcgVGFibGVJdGVtKCkpO1xuXHRcdH1cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHJvd0NvdW50IC0gMTsgaSsrKSB7XG5cdFx0XHRkYXRhLnB1c2gocm93KTtcblx0XHR9XG5cblx0XHRtb2RlbC5oZWFkZXIgPSBoZWFkZXI7XG5cdFx0bW9kZWwuZGF0YSA9IGRhdGE7XG5cdFx0cmV0dXJuIG1vZGVsO1xuXHR9XG5cblx0c3RhdGljIHNldFRhYkluZGV4KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBpbmRleDogLTEgfCAwKSB7XG5cdFx0Y29uc3QgZm9jdXNFbGVtZW50TGlzdCA9IGdldEZvY3VzRWxlbWVudExpc3QoZWxlbWVudCwgdGFiYmFibGVTZWxlY3Rvcklnbm9yZVRhYkluZGV4KTtcblx0XHRpZiAoZWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZCAmJiBlbGVtZW50LmZpcnN0RWxlbWVudENoaWxkLmNsYXNzTGlzdC5jb250YWlucyhcImNkcy0tdGFibGUtc29ydFwiKSAmJiBmb2N1c0VsZW1lbnRMaXN0Lmxlbmd0aCA+IDEpIHtcblx0XHRcdGZvY3VzRWxlbWVudExpc3RbMV0udGFiSW5kZXggPSBpbmRleDtcblx0XHR9IGVsc2UgaWYgKGZvY3VzRWxlbWVudExpc3QubGVuZ3RoID4gMCkge1xuXHRcdFx0Zm9jdXNFbGVtZW50TGlzdFswXS50YWJJbmRleCA9IGluZGV4O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRlbGVtZW50LnRhYkluZGV4ID0gaW5kZXg7XG5cdFx0fVxuXHR9XG5cblx0c3RhdGljIGZvY3VzKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG5cdFx0Y29uc3QgZm9jdXNFbGVtZW50TGlzdCA9IGdldEZvY3VzRWxlbWVudExpc3QoZWxlbWVudCwgdGFiYmFibGVTZWxlY3Rvcklnbm9yZVRhYkluZGV4KTtcblx0XHRpZiAoZWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZCAmJiBlbGVtZW50LmZpcnN0RWxlbWVudENoaWxkLmNsYXNzTGlzdC5jb250YWlucyhcImNkcy0tdGFibGUtc29ydFwiKSAmJiBmb2N1c0VsZW1lbnRMaXN0Lmxlbmd0aCA+IDEpIHtcblx0XHRcdGZvY3VzRWxlbWVudExpc3RbMV0uZm9jdXMoKTtcblx0XHR9IGVsc2UgaWYgKGZvY3VzRWxlbWVudExpc3QubGVuZ3RoID4gMCkge1xuXHRcdFx0Zm9jdXNFbGVtZW50TGlzdFswXS5mb2N1cygpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRlbGVtZW50LmZvY3VzKCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIElkIG9mIHRoZSB0YWJsZSBoZWFkZXIgdGl0bGUgZWxlbWVudFxuXHQgKi9cblx0QElucHV0KCkgYXJpYUxhYmVsbGVkYnk6IHN0cmluZztcblx0LyoqXG5cdCAqIElkIG9mIHRoZSB0YWJsZSBoZWFkZXIgZGVzY3JpcHRpb24gZWxlbWVudFxuXHQgKi9cblx0QElucHV0KCkgYXJpYURlc2NyaWJlZGJ5OiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIGBUYWJsZU1vZGVsYCB3aXRoIGRhdGEgdGhlIHRhYmxlIGlzIHRvIGRpc3BsYXkuXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRzZXQgbW9kZWwobTogVGFibGVNb2RlbCkge1xuXHRcdGlmICh0aGlzLl9tb2RlbCkge1xuXHRcdFx0dGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG5cdFx0XHQvLyBOZWVkIHRvIGNyZWF0ZSBhIG5ldyBzdWJzY3JpcHRpb24gaW5zdGFuY2UgaGVyZSBiZWNhdXNlIHVuc3Vic2NyaWJpbmcgcHJldmVudHMgYW55IG5ldyBzdWJzY3JpcHRpb25zXG5cdFx0XHQvLyBmcm9tIGJlaW5nIGFkZGVkIGZvciBzb21lIHJlYXNvbi4gV2hlbiBhIG5ldyBtb2RlbCBpcyBzZXQsIG5vbmUgb2YgdGhlIHN1YnNjcmlwdGlvbnMgd291bGQgZXhpc3QuXG5cdFx0XHR0aGlzLnN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cdFx0fVxuXG5cdFx0dGhpcy5fbW9kZWwgPSBtO1xuXG5cdFx0Y29uc3Qgcm93c0NoYW5nZSA9IHRoaXMuX21vZGVsLnJvd3NTZWxlY3RlZENoYW5nZS5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVTZWxlY3RBbGxDaGVja2JveCgpKTtcblx0XHRjb25zdCBkYXRhQ2hhbmdlID0gdGhpcy5fbW9kZWwuZGF0YUNoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0aWYgKHRoaXMuaXNEYXRhR3JpZCkge1xuXHRcdFx0XHR0aGlzLnJlc2V0VGFiSW5kZXgoKTtcblx0XHRcdH1cblx0XHRcdHRoaXMudXBkYXRlU2VsZWN0QWxsQ2hlY2tib3goKTtcblx0XHR9KTtcblxuXHRcdHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQocm93c0NoYW5nZSk7XG5cdFx0dGhpcy5zdWJzY3JpcHRpb25zLmFkZChkYXRhQ2hhbmdlKTtcblxuXHRcdGlmICh0aGlzLmlzRGF0YUdyaWQpIHtcblx0XHRcdGNvbnN0IGV4cGFuZGVkQ2hhbmdlID0gdGhpcy5fbW9kZWwucm93c0V4cGFuZGVkQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHRcdC8vIEFsbG93cyB0aGUgZXhwYW5kZWQgcm93IHRvIGhhdmUgYSBmb2N1cyBzdGF0ZSB3aGVuIGl0IGV4aXN0cyBpbiB0aGUgRE9NXG5cdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGV4cGFuZGVkUm93cyA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuY2RzLS1leHBhbmRhYmxlLXJvdzpub3QoLmNkcy0tcGFyZW50LXJvdylcIik7XG5cdFx0XHRcdFx0QXJyYXkuZnJvbTxhbnk+KGV4cGFuZGVkUm93cykuZm9yRWFjaChyb3cgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKHJvdy5maXJzdEVsZW1lbnRDaGlsZC50YWJJbmRleCA9PT0gdW5kZWZpbmVkIHx8IHJvdy5maXJzdEVsZW1lbnRDaGlsZC50YWJJbmRleCAhPT0gLTEpIHtcblx0XHRcdFx0XHRcdFx0cm93LmZpcnN0RWxlbWVudENoaWxkLnRhYkluZGV4ID0gLTE7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKGV4cGFuZGVkQ2hhbmdlKTtcblx0XHR9XG5cdH1cblxuXHRnZXQgbW9kZWwoKTogVGFibGVNb2RlbCB7XG5cdFx0cmV0dXJuIHRoaXMuX21vZGVsO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNpemUgb2YgdGhlIHRhYmxlIHJvd3MuXG5cdCAqL1xuXHRASW5wdXQoKSBzaXplOiBUYWJsZVJvd1NpemUgPSBcIm1kXCI7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIGZvciBhIGxvYWRpbmcgdGFibGUuXG5cdCAqL1xuXHRASW5wdXQoKSBza2VsZXRvbiA9IGZhbHNlO1xuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCBmb3IgYSBkYXRhIGdyaWQgd2l0aCBrZXlib2FyZCBpbnRlcmFjdGlvbnMuXG5cdCAqL1xuXHRASW5wdXQoKSBzZXQgaXNEYXRhR3JpZCh2YWx1ZTogYm9vbGVhbikge1xuXHRcdHRoaXMuX2lzRGF0YUdyaWQgPSB2YWx1ZTtcblx0XHRpZiAodGhpcy5pc1ZpZXdSZWFkeSkge1xuXHRcdFx0aWYgKHZhbHVlKSB7XG5cdFx0XHRcdHRoaXMuZW5hYmxlRGF0YUdyaWRJbnRlcmFjdGlvbnMoKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuZGlzYWJsZURhdGFHcmlkSW50ZXJhY3Rpb25zKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFNldHRpbmcgc29ydGFibGUgdG8gZmFsc2Ugd2lsbCBkaXNhYmxlIGFsbCBoZWFkZXJzIGluY2x1ZGluZyBoZWFkZXJzIHdoaWNoIGFyZSBzb3J0YWJsZS4gSXMgaXNcblx0ICogcG9zc2libGUgdG8gc2V0IHRoZSBzb3J0YWJsZSBzdGF0ZSBvbiB0aGUgaGVhZGVyIGl0ZW0gdG8gZGlzYWJsZS9lbmFibGUgc29ydGluZyBmb3Igb25seSBzb21lIGhlYWRlcnMuXG5cdCAqL1xuXHRASW5wdXQoKSBzb3J0YWJsZSA9IHRydWU7XG5cblx0QElucHV0KCkgbm9Cb3JkZXIgPSB0cnVlO1xuXG5cdGdldCBpc0RhdGFHcmlkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLl9pc0RhdGFHcmlkO1xuXHR9XG5cblx0LyoqXG5cdCAqIENvbnRyb2xzIHdoZXRoZXIgdG8gc2hvdyB0aGUgc2VsZWN0aW9uIGNoZWNrYm94ZXMgY29sdW1uIG9yIG5vdC5cblx0ICovXG5cdEBJbnB1dCgpIHNob3dTZWxlY3Rpb25Db2x1bW4gPSB0cnVlO1xuXG5cdC8qKlxuXHQgKiBDb250cm9scyB3aGV0aGVyIHRvIGVuYWJsZSBtdWx0aXBsZSBvciBzaW5nbGUgcm93IHNlbGVjdGlvbi5cblx0ICovXG5cdEBJbnB1dCgpIGVuYWJsZVNpbmdsZVNlbGVjdCA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBEaXN0YW5jZSAoaW4gcHgpIGZyb20gdGhlIGJvdHRvbSB0aGF0IHZpZXcgaGFzIHRvIHJlYWNoIGJlZm9yZVxuXHQgKiBgc2Nyb2xsTG9hZGAgZXZlbnQgaXMgZW1pdHRlZC5cblx0ICovXG5cdEBJbnB1dCgpIHNjcm9sbExvYWREaXN0YW5jZSA9IDA7XG5cblx0LyoqXG5cdCAqIEB0b2RvIC0gRW5hYmxlIGNvbHVtbiByZXNpemUgd2hlbiBDYXJib24gb2ZmaWNpYWxseSBzdXBwb3J0cyBmZWF0dXJlXG5cdCAqIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHVzZXJzIHRvIHJlc2l6ZSBjb2x1bW5zLlxuXHQgKlxuXHQgKiBXb3JrcyBmb3IgY29sdW1ucyB3aXRoIHdpZHRoIHNldCBpbiBwaXhlbHMuXG5cdCAqXG5cdCAqL1xuXHQvLyBASW5wdXQoKSBjb2x1bW5zUmVzaXphYmxlID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIEB0b2RvIC0gRW5hYmxlIGNvbHVtbnMgZHJhZyAmIGRyb3Agd2hlbiBDYXJib24gb2ZmaWNpYWxseSBzdXBwb3J0cyBmZWF0dXJlXG5cdCAqIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHVzZXJzIHRvIGRyYWcgYW5kIGRyb3AgY29sdW1ucy5cblx0ICpcblx0ICogQ2hhbmdpbmcgdGhlIGNvbHVtbiBvcmRlciBpbiB0YWJsZSBjaGFuZ2VzIHRhYmxlIG1vZGVsLiBCZSBhd2FyZSBvZiBpdCB3aGVuIHlvdSBhZGQgYWRkaXRpb25hbCBkYXRhXG5cdCAqIHRvIHRoZSBtb2RlbC5cblx0ICpcblx0ICovXG5cdC8vIEBJbnB1dCgpIGNvbHVtbnNEcmFnZ2FibGUgPSBmYWxzZTtcblxuXHRASW5wdXQoKVxuXHRzZXQgZXhwYW5kQnV0dG9uQXJpYUxhYmVsKHZhbHVlOiBzdHJpbmcgfCBPYnNlcnZhYmxlPHN0cmluZz4pIHtcblx0XHR0aGlzLl9leHBhbmRCdXR0b25BcmlhTGFiZWwub3ZlcnJpZGUodmFsdWUpO1xuXHR9XG5cdGdldCBleHBhbmRCdXR0b25BcmlhTGFiZWwoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2V4cGFuZEJ1dHRvbkFyaWFMYWJlbC52YWx1ZTtcblx0fVxuXHRASW5wdXQoKVxuXHRzZXQgc29ydERlc2NlbmRpbmdMYWJlbCh2YWx1ZTogc3RyaW5nIHwgT2JzZXJ2YWJsZTxzdHJpbmc+KSB7XG5cdFx0dGhpcy5fc29ydERlc2NlbmRpbmdMYWJlbC5vdmVycmlkZSh2YWx1ZSk7XG5cdH1cblx0Z2V0IHNvcnREZXNjZW5kaW5nTGFiZWwoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3NvcnREZXNjZW5kaW5nTGFiZWwudmFsdWU7XG5cdH1cblx0QElucHV0KClcblx0c2V0IHNvcnRBc2NlbmRpbmdMYWJlbCh2YWx1ZTogc3RyaW5nIHwgT2JzZXJ2YWJsZTxzdHJpbmc+KSB7XG5cdFx0dGhpcy5fc29ydEFzY2VuZGluZ0xhYmVsLm92ZXJyaWRlKHZhbHVlKTtcblx0fVxuXHRnZXQgc29ydEFzY2VuZGluZ0xhYmVsKCkge1xuXHRcdHJldHVybiB0aGlzLl9zb3J0QXNjZW5kaW5nTGFiZWwudmFsdWU7XG5cdH1cblxuXHQvKipcblx0ICogRXhwZWN0cyBhbiBvYmplY3QgdGhhdCBjb250YWlucyBzb21lIG9yIGFsbCBvZjpcblx0ICogYGBgXG5cdCAqIHtcblx0ICpcdFx0XCJGSUxURVJcIjogXCJGaWx0ZXJcIixcblx0ICpcdFx0XCJFTkRfT0ZfREFUQVwiOiBcIllvdSd2ZSByZWFjaGVkIHRoZSBlbmQgb2YgeW91ciBjb250ZW50XCIsXG5cdCAqXHRcdFwiU0NST0xMX1RPUFwiOiBcIlNjcm9sbCB0byB0b3BcIixcblx0ICpcdFx0XCJDSEVDS0JPWF9IRUFERVJcIjogXCJTZWxlY3QgYWxsIHJvd3NcIixcblx0ICpcdFx0XCJDSEVDS0JPWF9ST1dcIjogXCJTZWxlY3Qgcm93XCJcblx0ICogfVxuXHQgKiBgYGBcblx0ICovXG5cdEBJbnB1dCgpXG5cdHNldCB0cmFuc2xhdGlvbnModmFsdWUpIHtcblx0XHRjb25zdCB2YWx1ZVdpdGhEZWZhdWx0cyA9IG1lcmdlKHRoaXMuaTE4bi5nZXRNdWx0aXBsZShcIlRBQkxFXCIpLCB2YWx1ZSk7XG5cdFx0dGhpcy5fZmlsdGVyVGl0bGUub3ZlcnJpZGUodmFsdWVXaXRoRGVmYXVsdHMuRklMVEVSKTtcblx0XHR0aGlzLl9lbmRPZkRhdGFUZXh0Lm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLkVORF9PRl9EQVRBKTtcblx0XHR0aGlzLl9zY3JvbGxUb3BUZXh0Lm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLlNDUk9MTF9UT1ApO1xuXHRcdHRoaXMuX2NoZWNrYm94SGVhZGVyTGFiZWwub3ZlcnJpZGUodmFsdWVXaXRoRGVmYXVsdHMuQ0hFQ0tCT1hfSEVBREVSKTtcblx0XHR0aGlzLl9jaGVja2JveFJvd0xhYmVsLm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLkNIRUNLQk9YX1JPVyk7XG5cdH1cblxuXHQvKipcblx0ICogU2V0IHRvIGBmYWxzZWAgdG8gcmVtb3ZlIHRhYmxlIHJvd3MgKHplYnJhKSBzdHJpcGVzLlxuXHQgKi9cblx0QElucHV0KCkgc3RyaXBlZCA9IHRydWU7XG5cblx0LyoqXG5cdCAqIEFsbG93cyB0YWJsZSBjb250ZW50IHRvIHNjcm9sbCBob3Jpem9udGFsbHlcblx0ICovXG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tZGF0YS10YWJsZS1jb250ZW50XCIpIHRhYmxlQ29udGVudCA9IHRydWU7XG5cblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgdG8gc3RpY2sgdGhlIGhlYWRlciB0byB0aGUgdG9wIG9mIHRoZSB0YWJsZVxuXHQgKi9cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS1kYXRhLXRhYmxlX2lubmVyLWNvbnRhaW5lclwiKSBASW5wdXQoKSBzdGlja3lIZWFkZXIgPSBmYWxzZTtcblxuXHQvKipcblx0ICogU2V0IGZvb3RlciB0ZW1wbGF0ZSB0byBjdXN0b21pemUgd2hhdCBpcyBkaXNwbGF5ZWQgaW4gdGhlIHRmb290IHNlY3Rpb24gb2YgdGhlIHRhYmxlXG5cdCAqL1xuXHRASW5wdXQoKSBmb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuXHQvKipcblx0ICogVXNlZCB0byBwb3B1bGF0ZSB0aGUgcm93IHNlbGVjdGlvbiBjaGVja2JveCBsYWJlbCB3aXRoIGEgdXNlZnVsIHZhbHVlIGlmIHNldC5cblx0ICpcblx0ICogRXhhbXBsZTpcblx0ICogYGBgXG5cdCAqIDxjZHMtdGFibGUgW3NlbGVjdGlvbkxhYmVsQ29sdW1uXT1cIjBcIj48L2Nkcy10YWJsZT5cblx0ICogPCEtLSByZXN1bHRzIGluIGFyaWEtbGFiZWw9XCJTZWxlY3QgZmlyc3QgY29sdW1uIHZhbHVlXCJcblx0ICogKHdoZXJlIFwiZmlyc3QgY29sdW1uIHZhbHVlXCIgaXMgdGhlIHZhbHVlIG9mIHRoZSBmaXJzdCBjb2x1bW4gaW4gdGhlIHJvdyAtLT5cblx0ICogYGBgXG5cdCAqL1xuXHRASW5wdXQoKSBzZWxlY3Rpb25MYWJlbENvbHVtbjogbnVtYmVyO1xuXG5cdC8qKlxuXHQgKiBFbWl0cyBhbiBpbmRleCBvZiB0aGUgY29sdW1uIHRoYXQgd2FudHMgdG8gYmUgc29ydGVkLlxuXHQgKlxuXHQgKiBJZiBubyBvYnNlcnZlcnMgYXJlIHByb3ZpZGVkIChkZWZhdWx0KSwgdGFibGUgd2lsbCBhdHRlbXB0IHRvIGRvIGEgc2ltcGxlIHNvcnQgb2YgdGhlIGRhdGEgbG9hZGVkXG5cdCAqIGludG8gdGhlIG1vZGVsLlxuXHQgKlxuXHQgKiBJZiBhbiBvYnNlcnZlciBpcyBwcm92aWRlZCwgdGFibGUgd2lsbCBub3QgYXR0ZW1wdCBhbnkgc29ydGluZyBvZiBpdHMgb3duIGFuZCBpdCBpcyB1cCB0byB0aGUgb2JzZXJ2ZXJcblx0ICogdG8gc29ydCB0aGUgdGFibGUuIFRoaXMgaXMgd2hhdCB5b3UgdHlwaWNhbGx5IHdhbnQgaWYgeW91J3JlIHVzaW5nIGEgYmFja2VuZCBxdWVyeSB0byBnZXQgdGhlIHNvcnRlZFxuXHQgKiBkYXRhIG9yIHdhbnQgdG8gc29ydCBkYXRhIGFjcm9zcyBtdWx0aXBsZSBwYWdlcy5cblx0ICpcblx0ICogVXNhZ2U6XG5cdCAqXG5cdCAqIGBgYHR5cGVzY3JpcHRcblx0ICogQENvbXBvbmVudCh7XG5cdCAqIFx0c2VsZWN0b3I6IFwiYXBwLXRhYmxlXCIsXG5cdCAqIFx0dGVtcGxhdGU6IGBcblx0ICogXHRcdDxjZHMtdGFibGVcblx0ICogXHRcdFx0W21vZGVsXT1cIm1vZGVsXCJcblx0ICogXHRcdFx0KHNvcnQpPVwic2ltcGxlU29ydCgkZXZlbnQpXCI+XG5cdCAqIFx0XHRcdE5vIGRhdGEuXG5cdCAqIFx0XHQ8L2Nkcy10YWJsZT5cblx0ICogXHRgXG5cdCAqIH0pXG5cdCAqIGV4cG9ydCBjbGFzcyBUYWJsZUFwcCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblx0ICogXHRASW5wdXQoKSBtb2RlbCA9IG5ldyBUYWJsZU1vZGVsKCk7XG5cdCAqXG5cdCAqIFx0bmdPbkluaXQoKSB7XG5cdCAqIFx0XHR0aGlzLm1vZGVsLmhlYWRlciA9IFtcblx0ICogXHRcdFx0bmV3IFRhYmxlSGVhZGVySXRlbSh7IGRhdGE6IFwiTmFtZVwiIH0pLFxuXHQgKiBcdFx0XHRuZXcgVGFibGVIZWFkZXJJdGVtKHsgZGF0YTogXCJod2VyXCIgfSlcblx0ICogXHRcdF07XG5cdCAqXG5cdCAqIFx0XHR0aGlzLm1vZGVsLmRhdGEgPSBbXG5cdCAqIFx0XHRcdFtuZXcgVGFibGVJdGVtKHsgZGF0YTogXCJOYW1lIDFcIiB9KSwgbmV3IFRhYmxlSXRlbSh7IGRhdGE6IFwicXdlclwiIH0pXSxcblx0ICogXHRcdFx0W25ldyBUYWJsZUl0ZW0oeyBkYXRhOiBcIk5hbWUgM1wiIH0pLCBuZXcgVGFibGVJdGVtKHsgZGF0YTogXCJ6d2VyXCIgfSldLFxuXHQgKiBcdFx0XHRbbmV3IFRhYmxlSXRlbSh7IGRhdGE6IFwiTmFtZSAyXCIgfSksIG5ldyBUYWJsZUl0ZW0oeyBkYXRhOiBcInN3ZXJcIiB9KV0sXG5cdCAqIFx0XHRcdFtuZXcgVGFibGVJdGVtKHsgZGF0YTogXCJOYW1lIDRcIiB9KSwgbmV3IFRhYmxlSXRlbSh7ZGF0YTogXCJ0d2VyXCJ9KV0sXG5cdCAqIFx0XHRcdFtuZXcgVGFibGVJdGVtKHsgZGF0YTogXCJOYW1lIDVcIiB9KSwgbmV3IFRhYmxlSXRlbSh7ZGF0YTogXCJ0d2VyXCJ9KV0sXG5cdCAqIFx0XHRcdFtuZXcgVGFibGVJdGVtKHsgZGF0YTogXCJOYW1lIDZcIiB9KSwgbmV3IFRhYmxlSXRlbSh7ZGF0YTogXCJ0d2VyXCJ9KV1cblx0ICogXHRcdF07XG5cdCAqIFx0fVxuXHQgKlxuXHQgKiBcdHNpbXBsZVNvcnQoaW5kZXg6IG51bWJlcikge1xuXHQgKiBcdFx0Ly8gdGhpcyBmdW5jdGlvbiBkb2VzIGEgc2ltcGxlIHNvcnQsIHdoaWNoIGlzIHRoZSBkZWZhdWx0IGZvciB0aGUgdGFibGUgYW5kIGlmIHRoYXQnc1xuXHQgKiBcdFx0Ly8gYWxsIHlvdSB3YW50LCB5b3UgZG9uJ3QgbmVlZCB0byBkbyB0aGlzLlxuXHQgKlxuXHQgKiBcdFx0Ly8gaGVyZSB5b3UgY2FuIHF1ZXJ5IHlvdXIgYmFja2VuZCBhbmQgdXBkYXRlIHRoZSBtb2RlbC5kYXRhIGJhc2VkIG9uIHRoZSByZXN1bHRcblx0ICogXHRcdGlmICh0aGlzLm1vZGVsLmhlYWRlcltpbmRleF0uc29ydGVkKSB7XG5cdCAqIFx0XHRcdC8vIGlmIGFscmVhZHkgc29ydGVkIGZsaXAgc29ydGluZyBkaXJlY3Rpb25cblx0ICogXHRcdFx0dGhpcy5tb2RlbC5oZWFkZXJbaW5kZXhdLmFzY2VuZGluZyA9IHRoaXMubW9kZWwuaGVhZGVyW2luZGV4XS5kZXNjZW5kaW5nO1xuXHQgKiBcdFx0fVxuXHQgKiBcdFx0dGhpcy5tb2RlbC5zb3J0KGluZGV4KTtcblx0ICogXHR9XG5cdCAqIH1cblx0ICogYGBgXG5cdCAqL1xuXHRAT3V0cHV0KCkgc29ydCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG5cdC8qKlxuXHQgKiBFbWl0cyBpZiBhbGwgcm93cyBhcmUgc2VsZWN0ZWQuXG5cdCAqXG5cdCAqIEBwYXJhbSBtb2RlbFxuXHQgKi9cblx0QE91dHB1dCgpIHNlbGVjdEFsbCA9IG5ldyBFdmVudEVtaXR0ZXI8T2JqZWN0PigpO1xuXG5cdC8qKlxuXHQgKiBFbWl0cyBpZiBhbGwgcm93cyBhcmUgZGVzZWxlY3RlZC5cblx0ICpcblx0ICogQHBhcmFtIG1vZGVsXG5cdCAqL1xuXHRAT3V0cHV0KCkgZGVzZWxlY3RBbGwgPSBuZXcgRXZlbnRFbWl0dGVyPE9iamVjdD4oKTtcblxuXHQvKipcblx0ICogRW1pdHMgaWYgYSBzaW5nbGUgcm93IGlzIHNlbGVjdGVkLlxuXHQgKlxuXHQgKiBAcGFyYW0gKHttb2RlbDogdGhpcy5tb2RlbCwgc2VsZWN0ZWRSb3dJbmRleDogaW5kZXh9KVxuXHQgKi9cblx0QE91dHB1dCgpIHNlbGVjdFJvdyA9IG5ldyBFdmVudEVtaXR0ZXI8T2JqZWN0PigpO1xuXG5cdC8qKlxuXHQgKiBFbWl0cyBpZiBhIHNpbmdsZSByb3cgaXMgZGVzZWxlY3RlZC5cblx0ICpcblx0ICogQHBhcmFtICh7bW9kZWw6IHRoaXMubW9kZWwsIGRlc2VsZWN0ZWRSb3dJbmRleDogaW5kZXh9KVxuXHQgKi9cblx0QE91dHB1dCgpIGRlc2VsZWN0Um93ID0gbmV3IEV2ZW50RW1pdHRlcjxPYmplY3Q+KCk7XG5cblx0LyoqXG5cdCAqIEVtaXRzIGlmIGEgcm93IGl0ZW0gZXhjbHVkaW5nIGV4cGFuZEJ1dHRvbnMsIGNoZWNrYm94ZXMsIG9yIHJhZGlvcyBpcyBjbGlja2VkLlxuXHQgKi9cblx0QE91dHB1dCgpIHJvd0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cblx0LyoqXG5cdCAqIEVtaXRzIHdoZW4gdGFibGUgcmVxdWlyZXMgbW9yZSBkYXRhIHRvIGJlIGxvYWRlZC5cblx0ICovXG5cdEBPdXRwdXQoKSBzY3JvbGxMb2FkID0gbmV3IEV2ZW50RW1pdHRlcjxUYWJsZU1vZGVsPigpO1xuXG5cdC8qKlxuXHQgKiBDb250cm9scyBpZiBhbGwgY2hlY2tib3hlcyBhcmUgdmlld2VkIGFzIHNlbGVjdGVkLlxuXHQgKi9cblx0c2VsZWN0QWxsQ2hlY2tib3ggPSBmYWxzZTtcblxuXHQvKipcblx0ICogQ29udHJvbHMgdGhlIGluZGV0ZXJtaW5hdGUgc3RhdGUgb2YgdGhlIGhlYWRlciBjaGVja2JveC5cblx0ICovXG5cdHNlbGVjdEFsbENoZWNrYm94U29tZVNlbGVjdGVkID0gZmFsc2U7XG5cblx0Z2V0IG5vRGF0YSgpIHtcblx0XHRyZXR1cm4gIXRoaXMubW9kZWwuZGF0YSB8fFxuXHRcdFx0dGhpcy5tb2RlbC5kYXRhLmxlbmd0aCA9PT0gMCB8fFxuXHRcdFx0dGhpcy5tb2RlbC5kYXRhLmxlbmd0aCA9PT0gMSAmJiB0aGlzLm1vZGVsLmRhdGFbMF0ubGVuZ3RoID09PSAwO1xuXHR9XG5cblx0cHVibGljIGlzQ29sdW1uRHJhZ2dpbmcgPSBmYWxzZTtcblx0cHVibGljIGNvbHVtbkRyYWdnZWRIb3ZlckluZGV4ID0gLTE7XG5cdHB1YmxpYyBjb2x1bW5EcmFnZ2VkUG9zaXRpb24gPSBcIlwiO1xuXG5cdHByb3RlY3RlZCBfbW9kZWw6IFRhYmxlTW9kZWw7XG5cdHByb3RlY3RlZCBfaXNEYXRhR3JpZCA9IGZhbHNlO1xuXHQvLyBmbGFnIHRvIHByZXZlbnQgZ2V0dGVycy9zZXR0ZXJzIGZyb20gcXVlcnlpbmcgdGhlIHZpZXcgYmVmb3JlIGl0J3MgZnVsbHkgaW5zdGFudGlhdGVkXG5cdHByb3RlY3RlZCBpc1ZpZXdSZWFkeSA9IGZhbHNlO1xuXG5cdHByb3RlY3RlZCBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXHRwcm90ZWN0ZWQgcG9zaXRpb25TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuXHRwcm90ZWN0ZWQgaW50ZXJhY3Rpb25Nb2RlbDogRGF0YUdyaWRJbnRlcmFjdGlvbk1vZGVsO1xuXHRwcm90ZWN0ZWQgaW50ZXJhY3Rpb25Qb3NpdGlvblN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG5cdHByb3RlY3RlZCBfZXhwYW5kQnV0dG9uQXJpYUxhYmVsID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiVEFCTEUuRVhQQU5EX0JVVFRPTlwiKTtcblx0cHJvdGVjdGVkIF9zb3J0RGVzY2VuZGluZ0xhYmVsID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiVEFCTEUuU09SVF9ERVNDRU5ESU5HXCIpO1xuXHRwcm90ZWN0ZWQgX3NvcnRBc2NlbmRpbmdMYWJlbCA9IHRoaXMuaTE4bi5nZXRPdmVycmlkYWJsZShcIlRBQkxFLlNPUlRfQVNDRU5ESU5HXCIpO1xuXHRwcm90ZWN0ZWQgX2NoZWNrYm94SGVhZGVyTGFiZWwgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJUQUJMRS5DSEVDS0JPWF9IRUFERVJcIik7XG5cdHByb3RlY3RlZCBfY2hlY2tib3hSb3dMYWJlbCA9IHRoaXMuaTE4bi5nZXRPdmVycmlkYWJsZShcIlRBQkxFLkNIRUNLQk9YX1JPV1wiKTtcblx0cHJvdGVjdGVkIF9lbmRPZkRhdGFUZXh0ID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiVEFCTEUuRU5EX09GX0RBVEFcIik7XG5cdHByb3RlY3RlZCBfc2Nyb2xsVG9wVGV4dCA9IHRoaXMuaTE4bi5nZXRPdmVycmlkYWJsZShcIlRBQkxFLlNDUk9MTF9UT1BcIik7XG5cdHByb3RlY3RlZCBfZmlsdGVyVGl0bGUgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJUQUJMRS5GSUxURVJcIik7XG5cblx0cHJvdGVjdGVkIGNvbHVtblJlc2l6ZVdpZHRoOiBudW1iZXI7XG5cdHByb3RlY3RlZCBjb2x1bW5SZXNpemVNb3VzZVg6IG51bWJlcjtcblx0cHJvdGVjdGVkIG1vdXNlTW92ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXHRwcm90ZWN0ZWQgbW91c2VVcFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIFRhYmxlLlxuXHQgKi9cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG5cdFx0cHJvdGVjdGVkIGFwcGxpY2F0aW9uUmVmOiBBcHBsaWNhdGlvblJlZixcblx0XHRwcm90ZWN0ZWQgaTE4bjogSTE4blxuXHQpIHsgfVxuXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcblx0XHR0aGlzLmlzVmlld1JlYWR5ID0gdHJ1ZTtcblx0XHRpZiAodGhpcy5pc0RhdGFHcmlkKSB7XG5cdFx0XHR0aGlzLmVuYWJsZURhdGFHcmlkSW50ZXJhY3Rpb25zKCk7XG5cdFx0fVxuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0dGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG5cdFx0aWYgKHRoaXMucG9zaXRpb25TdWJzY3JpcHRpb24pIHtcblx0XHRcdHRoaXMucG9zaXRpb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcblx0XHR9XG5cdH1cblxuXHRlbmFibGVEYXRhR3JpZEludGVyYWN0aW9ucygpIHtcblx0XHQvLyBpZiB3ZSBoYXZlIGFuIGBpbnRlcmFjdGlvTW9kZWxgIHdlJ3ZlIGFscmVhZHkgZW5hYmxlZCBkYXRhZ3JpZFxuXHRcdGlmICh0aGlzLmludGVyYWN0aW9uTW9kZWwpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3QgdGFibGUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwidGFibGVcIikgYXMgSFRNTFRhYmxlRWxlbWVudDtcblx0XHRjb25zdCB0YWJsZUFkYXB0ZXIgPSBuZXcgVGFibGVEb21BZGFwdGVyKHRhYmxlKTtcblx0XHRjb25zdCBrZXlkb3duRXZlbnRTdHJlYW0gPSBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4odGFibGUsIFwia2V5ZG93blwiKTtcblx0XHRjb25zdCBjbGlja0V2ZW50U3RyZWFtID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRhYmxlLCBcImNsaWNrXCIpO1xuXHRcdHRoaXMuaW50ZXJhY3Rpb25Nb2RlbCA9IG5ldyBEYXRhR3JpZEludGVyYWN0aW9uTW9kZWwoa2V5ZG93bkV2ZW50U3RyZWFtLCBjbGlja0V2ZW50U3RyZWFtLCB0YWJsZUFkYXB0ZXIpO1xuXHRcdHRoaXMucG9zaXRpb25TdWJzY3JpcHRpb24gPSB0aGlzLmludGVyYWN0aW9uTW9kZWwucG9zaXRpb24uc3Vic2NyaWJlKGV2ZW50ID0+IHtcblx0XHRcdGNvbnN0IFtjdXJyZW50Um93LCBjdXJyZW50Q29sdW1uXSA9IGV2ZW50LmN1cnJlbnQ7XG5cdFx0XHRjb25zdCBbcHJldmlvdXNSb3csIHByZXZpb3VzQ29sdW1uXSA9IGV2ZW50LnByZXZpb3VzO1xuXG5cdFx0XHRjb25zdCBjdXJyZW50RWxlbWVudCA9IHRhYmxlQWRhcHRlci5nZXRDZWxsKGN1cnJlbnRSb3csIGN1cnJlbnRDb2x1bW4pO1xuXHRcdFx0VGFibGUuc2V0VGFiSW5kZXgoY3VycmVudEVsZW1lbnQsIDApO1xuXG5cdFx0XHQvLyBpZiB0aGUgbW9kZWwgaGFzIGp1c3QgaW5pdGlhbGl6ZWQgZG9uJ3QgZm9jdXMgb3IgcmVzZXQgYW55dGhpbmdcblx0XHRcdGlmIChwcmV2aW91c1JvdyA9PT0gLTEgfHwgcHJldmlvdXNDb2x1bW4gPT09IC0xKSB7IHJldHVybjsgfVxuXHRcdFx0Ly8gTWFrZSB0aGUgcHJldmlvdXMgY2VsbCB1bmZvY3VzYWJsZSAoaWYgaXQncyBub3QgdGhlIGN1cnJlbnQpXG5cdFx0XHRpZiAocHJldmlvdXNSb3cgIT09IGN1cnJlbnRSb3cgfHwgcHJldmlvdXNDb2x1bW4gIT09IGN1cnJlbnRDb2x1bW4pIHtcblx0XHRcdFx0Y29uc3QgcHJldmlvdXNFbGVtZW50ID0gdGFibGVBZGFwdGVyLmdldENlbGwocHJldmlvdXNSb3csIHByZXZpb3VzQ29sdW1uKTtcblx0XHRcdFx0VGFibGUuc2V0VGFiSW5kZXgocHJldmlvdXNFbGVtZW50LCAtMSk7XG5cdFx0XHR9XG5cdFx0XHRUYWJsZS5mb2N1cyhjdXJyZW50RWxlbWVudCk7XG5cdFx0fSk7XG5cdFx0Ly8gY2FsbCB0aGlzIGFmdGVyIGFzc2lnbmluZyBgdGhpcy5pbnRlcmFjdGlvbk1vZGVsYCBzaW5jZSBpdCBkZXBlbmRzIG9uIGl0XG5cdFx0dGhpcy5yZXNldFRhYkluZGV4KCk7XG5cdH1cblxuXHRkaXNhYmxlRGF0YUdyaWRJbnRlcmFjdGlvbnMoKSB7XG5cdFx0Ly8gdW5zdWJzY3JpYmUgZmlyc3Qgc28gd2UgZG9uJ3QgY2F1c2UgdGhlIGZvY3VzIHRvIGZseSBhcm91bmRcblx0XHRpZiAodGhpcy5wb3NpdGlvblN1YnNjcmlwdGlvbikge1xuXHRcdFx0dGhpcy5wb3NpdGlvblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXHRcdH1cblx0XHQvLyB1bmRvIHRhYiBpbmRleGluZyAoYWxzbyByZXNldHMgdGhlIG1vZGVsKVxuXHRcdHRoaXMucmVzZXRUYWJJbmRleCgwKTtcblx0XHQvLyBudWxsIG91dCB0aGUgbW9kZWwgcmVmXG5cdFx0dGhpcy5pbnRlcmFjdGlvbk1vZGVsID0gbnVsbDtcblx0fVxuXG5cdG9uU2VsZWN0QWxsKCkge1xuXHRcdHRoaXMubW9kZWwuc2VsZWN0QWxsKHRydWUpO1xuXHRcdHRoaXMuc2VsZWN0QWxsLmVtaXQodGhpcy5tb2RlbCk7XG5cdH1cblxuXHRvbkRlc2VsZWN0QWxsKCkge1xuXHRcdHRoaXMubW9kZWwuc2VsZWN0QWxsKGZhbHNlKTtcblx0XHR0aGlzLmRlc2VsZWN0QWxsLmVtaXQodGhpcy5tb2RlbCk7XG5cdH1cblxuXHRvblNlbGVjdFJvdyhldmVudCkge1xuXHRcdC8vIGNoZWNrIGZvciB0aGUgZXhpc3RlbmNlIG9mIHRoZSBzZWxlY3RlZFJvd0luZGV4IHByb3BlcnR5XG5cdFx0aWYgKE9iamVjdC5rZXlzKGV2ZW50KS5pbmNsdWRlcyhcInNlbGVjdGVkUm93SW5kZXhcIikpIHtcblx0XHRcdGlmICh0aGlzLmVuYWJsZVNpbmdsZVNlbGVjdCkge1xuXHRcdFx0XHR0aGlzLm1vZGVsLnNlbGVjdEFsbChmYWxzZSk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLm1vZGVsLnNlbGVjdFJvdyhldmVudC5zZWxlY3RlZFJvd0luZGV4LCB0cnVlKTtcblx0XHRcdHRoaXMuc2VsZWN0Um93LmVtaXQoZXZlbnQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLm1vZGVsLnNlbGVjdFJvdyhldmVudC5kZXNlbGVjdGVkUm93SW5kZXgsIGZhbHNlKTtcblx0XHRcdHRoaXMuZGVzZWxlY3RSb3cuZW1pdChldmVudCk7XG5cdFx0fVxuXHR9XG5cblx0b25Sb3dDbGljayhpbmRleDogbnVtYmVyKSB7XG5cdFx0dGhpcy5yb3dDbGljay5lbWl0KGluZGV4KTtcblx0fVxuXG5cdHVwZGF0ZVNlbGVjdEFsbENoZWNrYm94KCkge1xuXHRcdGNvbnN0IHNlbGVjdGVkUm93c0NvdW50ID0gdGhpcy5tb2RlbC5zZWxlY3RlZFJvd3NDb3VudCgpO1xuXG5cdFx0aWYgKHNlbGVjdGVkUm93c0NvdW50IDw9IDApIHtcblx0XHRcdC8vIHJlc2V0IHNlbGVjdCBhbGwgY2hlY2tib3ggaWYgbm90aGluZyBzZWxlY3RlZFxuXHRcdFx0dGhpcy5zZWxlY3RBbGxDaGVja2JveCA9IGZhbHNlO1xuXHRcdFx0dGhpcy5zZWxlY3RBbGxDaGVja2JveFNvbWVTZWxlY3RlZCA9IGZhbHNlO1xuXHRcdH0gZWxzZSBpZiAoc2VsZWN0ZWRSb3dzQ291bnQgPCB0aGlzLm1vZGVsLmRhdGEubGVuZ3RoKSB7XG5cdFx0XHR0aGlzLnNlbGVjdEFsbENoZWNrYm94ID0gdHJ1ZTtcblx0XHRcdHRoaXMuc2VsZWN0QWxsQ2hlY2tib3hTb21lU2VsZWN0ZWQgPSB0cnVlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnNlbGVjdEFsbENoZWNrYm94ID0gdHJ1ZTtcblx0XHRcdHRoaXMuc2VsZWN0QWxsQ2hlY2tib3hTb21lU2VsZWN0ZWQgPSBmYWxzZTtcblx0XHR9XG5cdH1cblxuXHRyZXNldFRhYkluZGV4KG5ld1RhYkluZGV4ID0gLTEpIHtcblx0XHQvLyBlbnN1cmUgdGhlIHZpZXcgaXMgcmVhZHkgZm9yIHRoZSByZXNldCBiZWZvcmUgd2UgcHJlZm9ybSB0aGUgYWN0dWFsIHJlc2V0XG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHQvLyByZXNldCBhbGwgdGhlIHRhYkluZGV4ZXMgd2UgY2FuIGZpbmRcblx0XHRcdGNvbnN0IGZvY3VzRWxlbWVudExpc3QgPSBnZXRGb2N1c0VsZW1lbnRMaXN0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0YWJiYWJsZVNlbGVjdG9ySWdub3JlVGFiSW5kZXgpO1xuXHRcdFx0aWYgKGZvY3VzRWxlbWVudExpc3QpIHtcblx0XHRcdFx0Zm9jdXNFbGVtZW50TGlzdC5mb3JFYWNoKHRhYmJhYmxlID0+IHtcblx0XHRcdFx0XHR0YWJiYWJsZS50YWJJbmRleCA9IG5ld1RhYkluZGV4O1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHRcdC8vIHJlc2V0IGludGVyYWN0aW9uIG1vZGVsIHBvc2l0aW9ucyBhbmQgdGFiSW5kZXhlc1xuXHRcdFx0aWYgKHRoaXMuaW50ZXJhY3Rpb25Nb2RlbCkge1xuXHRcdFx0XHR0aGlzLmludGVyYWN0aW9uTW9kZWwucmVzZXRUYWJJbmRleGVzKG5ld1RhYkluZGV4KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdGNvbHVtblJlc2l6ZVN0YXJ0KGV2ZW50LCBjb2x1bW4pIHtcblx0XHR0aGlzLmNvbHVtblJlc2l6ZVdpZHRoID0gcGFyc2VJbnQoY29sdW1uLnN0eWxlLndpZHRoLCAxMCk7XG5cdFx0dGhpcy5jb2x1bW5SZXNpemVNb3VzZVggPSBldmVudC5jbGllbnRYO1xuXHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cblx0XHR0aGlzLm1vdXNlTW92ZVN1YnNjcmlwdGlvbiA9IGZyb21FdmVudChkb2N1bWVudC5ib2R5LCBcIm1vdXNlbW92ZVwiKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuXHRcdFx0dGhpcy5jb2x1bW5SZXNpemVQcm9ncmVzcyhldmVudCwgY29sdW1uKTtcblx0XHR9KTtcblx0XHR0aGlzLm1vdXNlVXBTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQoZG9jdW1lbnQuYm9keSwgXCJtb3VzZXVwXCIpLnN1YnNjcmliZShldmVudCA9PiB7XG5cdFx0XHR0aGlzLmNvbHVtblJlc2l6ZUVuZChldmVudCwgY29sdW1uKTtcblx0XHR9KTtcblx0fVxuXG5cdGNvbHVtblJlc2l6ZVByb2dyZXNzKGV2ZW50LCBjb2x1bW4pIHtcblx0XHRjb25zdCBtb3ZlID0gZXZlbnQuY2xpZW50WCAtIHRoaXMuY29sdW1uUmVzaXplTW91c2VYO1xuXHRcdGNvbHVtbi5zdHlsZS53aWR0aCA9IGAke3RoaXMuY29sdW1uUmVzaXplV2lkdGggKyBtb3ZlfXB4YDtcblx0fVxuXG5cdGNvbHVtblJlc2l6ZUVuZChldmVudCwgY29sdW1uKSB7XG5cdFx0dGhpcy5tb3VzZU1vdmVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcblx0XHR0aGlzLm1vdXNlVXBTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUcmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBzY3JvbGxzIG9uIHRoZSBgPHRib2R5PmAgZWxlbWVudC5cblx0ICogRW1pdHMgdGhlIGBzY3JvbGxMb2FkYCBldmVudC5cblx0ICovXG5cdG9uU2Nyb2xsKGV2ZW50KSB7XG5cdFx0Y29uc3QgZGlzdGFuY2VGcm9tQm90dG9tID0gZXZlbnQudGFyZ2V0LnNjcm9sbEhlaWdodCAtIGV2ZW50LnRhcmdldC5jbGllbnRIZWlnaHQgLSBldmVudC50YXJnZXQuc2Nyb2xsVG9wO1xuXG5cdFx0aWYgKGRpc3RhbmNlRnJvbUJvdHRvbSA8PSB0aGlzLnNjcm9sbExvYWREaXN0YW5jZSkge1xuXHRcdFx0dGhpcy5zY3JvbGxMb2FkLmVtaXQodGhpcy5tb2RlbCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMubW9kZWwuaXNFbmQgPSBmYWxzZTtcblx0XHR9XG5cdH1cblxuXHRjb2x1bW5EcmFnU3RhcnQoZXZlbnQsIGNvbHVtbkluZGV4KSB7XG5cdFx0dGhpcy5pc0NvbHVtbkRyYWdnaW5nID0gdHJ1ZTtcblx0XHR0aGlzLmNvbHVtbkRyYWdnZWRIb3ZlckluZGV4ID0gY29sdW1uSW5kZXg7XG5cdFx0ZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoXCJjb2x1bW5JbmRleFwiLCBKU09OLnN0cmluZ2lmeShjb2x1bW5JbmRleCkpO1xuXHR9XG5cblx0Y29sdW1uRHJhZ0VuZChldmVudCwgY29sdW1uSW5kZXgpIHtcblx0XHR0aGlzLmlzQ29sdW1uRHJhZ2dpbmcgPSBmYWxzZTtcblx0XHR0aGlzLmNvbHVtbkRyYWdnZWRIb3ZlckluZGV4ID0gLTE7XG5cdH1cblxuXHRjb2x1bW5EcmFnRW50ZXIoZXZlbnQsIHBvc2l0aW9uLCBjb2x1bW5JbmRleCkge1xuXHRcdHRoaXMuY29sdW1uRHJhZ2dlZFBvc2l0aW9uID0gcG9zaXRpb247XG5cdFx0dGhpcy5jb2x1bW5EcmFnZ2VkSG92ZXJJbmRleCA9IGNvbHVtbkluZGV4O1xuXHR9XG5cblx0Y29sdW1uRHJhZ0xlYXZlKGV2ZW50LCBwb3NpdGlvbiwgY29sdW1uSW5kZXgpIHtcblx0XHR0aGlzLmNvbHVtbkRyYWdnZWRQb3NpdGlvbiA9IFwiXCI7XG5cdH1cblxuXHRjb2x1bW5EcmFnb3ZlcihldmVudCwgcG9zaXRpb24sIGNvbHVtbkluZGV4KSB7XG5cdFx0dGhpcy5jb2x1bW5EcmFnZ2VkSG92ZXJJbmRleCA9IGNvbHVtbkluZGV4O1xuXHRcdHRoaXMuY29sdW1uRHJhZ2dlZFBvc2l0aW9uID0gcG9zaXRpb247XG5cblx0XHQvLyBuZWVkZWQgdG8gdGVsbCBicm93c2VyIHRvIGFsbG93IGRyb3BwaW5nXG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0fVxuXG5cdGNvbHVtbkRyb3AoZXZlbnQsIHBvc2l0aW9uLCBjb2x1bW5JbmRleCkge1xuXHRcdHRoaXMuaXNDb2x1bW5EcmFnZ2luZyA9IGZhbHNlO1xuXHRcdHRoaXMuY29sdW1uRHJhZ2dlZEhvdmVySW5kZXggPSAtMTtcblx0XHR0aGlzLmNvbHVtbkRyYWdnZWRQb3NpdGlvbiA9IFwiXCI7XG5cblx0XHR0aGlzLm1vZGVsLm1vdmVDb2x1bW4oXG5cdFx0XHRwYXJzZUludChldmVudC5kYXRhVHJhbnNmZXIuZ2V0RGF0YShcImNvbHVtbkluZGV4XCIpLCAxMCksXG5cdFx0XHRjb2x1bW5JbmRleCArIChwb3NpdGlvbiA9PT0gXCJyaWdodFwiID8gMSA6IDApXG5cdFx0KTtcblx0fVxuXG5cdGRvU29ydChpbmRleDogbnVtYmVyKSB7XG5cdFx0aWYgKHRoaXMuc29ydC5vYnNlcnZlcnMubGVuZ3RoID09PSAwKSB7XG5cdFx0XHQvLyBubyBzb3J0IHByb3ZpZGVkIHNvIGRvIHRoZSBzaW1wbGUgc29ydFxuXHRcdFx0dGhpcy5tb2RlbC5jeWNsZVNvcnRTdGF0ZShpbmRleCk7XG5cdFx0XHR0aGlzLm1vZGVsLnNvcnQoaW5kZXgpO1xuXHRcdH1cblxuXHRcdHRoaXMuc29ydC5lbWl0KGluZGV4KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUcmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBzY3JvbGxzIG9uIHRoZSBgPHRib2R5PmAgZWxlbWVudC5cblx0ICogRW1pdHMgdGhlIGBzY3JvbGxMb2FkYCBldmVudC5cblx0ICovXG5cdHNjcm9sbFRvVG9wKGV2ZW50KSB7XG5cdFx0ZXZlbnQudGFyZ2V0LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuY2hpbGRyZW5bMV0uc2Nyb2xsVG9wID0gMDtcblx0XHR0aGlzLm1vZGVsLmlzRW5kID0gZmFsc2U7XG5cdH1cblxuXHRnZXRTZWxlY3Rpb25MYWJlbFZhbHVlKHJvdzogVGFibGVJdGVtW10pIHtcblx0XHRpZiAoIXRoaXMuc2VsZWN0aW9uTGFiZWxDb2x1bW4pIHtcblx0XHRcdHJldHVybiB7IHZhbHVlOiB0aGlzLmkxOG4uZ2V0KCkuVEFCTEUuUk9XIH07XG5cdFx0fVxuXHRcdHJldHVybiB7IHZhbHVlOiByb3dbdGhpcy5zZWxlY3Rpb25MYWJlbENvbHVtbl0uZGF0YSB9O1xuXHR9XG5cblx0Z2V0RXhwYW5kQnV0dG9uQXJpYUxhYmVsKCkge1xuXHRcdHJldHVybiB0aGlzLl9leHBhbmRCdXR0b25BcmlhTGFiZWwuc3ViamVjdDtcblx0fVxuXHRnZXRTb3J0RGVzY2VuZGluZ0xhYmVsKCkge1xuXHRcdHJldHVybiB0aGlzLl9zb3J0RGVzY2VuZGluZ0xhYmVsLnN1YmplY3Q7XG5cdH1cblx0Z2V0U29ydEFzY2VuZGluZ0xhYmVsKCkge1xuXHRcdHJldHVybiB0aGlzLl9zb3J0QXNjZW5kaW5nTGFiZWwuc3ViamVjdDtcblx0fVxuXG5cdGdldENoZWNrYm94SGVhZGVyTGFiZWwoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2NoZWNrYm94SGVhZGVyTGFiZWwuc3ViamVjdDtcblx0fVxuXG5cdGdldENoZWNrYm94Um93TGFiZWwoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2NoZWNrYm94Um93TGFiZWwuc3ViamVjdDtcblx0fVxuXG5cdGdldEVuZE9mRGF0YVRleHQoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2VuZE9mRGF0YVRleHQuc3ViamVjdDtcblx0fVxuXG5cdGdldFNjcm9sbFRvcFRleHQoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3Njcm9sbFRvcFRleHQuc3ViamVjdDtcblx0fVxuXG5cdGdldEZpbHRlclRpdGxlKCkge1xuXHRcdHJldHVybiB0aGlzLl9maWx0ZXJUaXRsZS5zdWJqZWN0O1xuXHR9XG59XG4iXX0=
@@ -32,7 +32,7 @@ export class TagFilter extends Tag {
32
32
  this.close.emit();
33
33
  }
34
34
  get attrClass() {
35
- return `cds--tag cds--tag--filter cds--tag--${this.type} cds--tag--${this.size} ${this.class}${this.disabled ? " cds--tag--disabled" : ""}`;
35
+ return `cds--tag cds--tag--filter cds--tag--${this.type} cds--tag--${this.size} cds--layout--size-${this.size} ${this.class}${this.disabled ? " cds--tag--disabled" : ""}`;
36
36
  }
37
37
  get attrAriaLabel() {
38
38
  return `${this.title || ""} ${this.closeButtonLabel}`.trim();
@@ -93,4 +93,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
93
93
  type: HostBinding,
94
94
  args: ["attr.aria-label"]
95
95
  }] } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGFnL3RhZy1maWx0ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBcUJ0QyxNQUFNLE9BQU8sU0FBVSxTQUFRLEdBQUc7SUFuQmxDOztRQW9CVSxxQkFBZ0IsR0FBRyxjQUFjLENBQUM7UUFJM0M7O1dBRUc7UUFDTyxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUUxQzs7Ozs7OztXQU9HO1FBQ08sVUFBSyxHQUFHLElBQUksWUFBWSxFQUFpQyxDQUFDO0tBc0JwRTtJQXBCQSxPQUFPLENBQUMsS0FBVTtRQUNqQixLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNuQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1NBQ3JDO0lBQ0YsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFVO1FBQ2pCLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBK0IsU0FBUztRQUN2QyxPQUFPLHVDQUF1QyxJQUFJLENBQUMsSUFBSSxjQUFjLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDN0ksQ0FBQztJQUVELElBQW9DLGFBQWE7UUFDaEQsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlELENBQUM7O3NHQXZDVyxTQUFTOzBGQUFULFNBQVMscVVBakJYOzs7Ozs7Ozs7Ozs7Ozs7RUFlVDsyRkFFVyxTQUFTO2tCQW5CckIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsZ0NBQWdDO29CQUMxQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7OztFQWVUO2lCQUNEOzhCQUVTLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFLSSxLQUFLO3NCQUFkLE1BQU07Z0JBVUcsS0FBSztzQkFBZCxNQUFNO2dCQWV3QixTQUFTO3NCQUF2QyxXQUFXO3VCQUFDLFlBQVk7Z0JBSVcsYUFBYTtzQkFBaEQsV0FBVzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDb21wb25lbnQsXG5cdE91dHB1dCxcblx0RXZlbnRFbWl0dGVyLFxuXHRIb3N0QmluZGluZyxcblx0SW5wdXRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFRhZyB9IGZyb20gXCIuL3RhZy5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcImNkcy10YWctZmlsdGVyLCBpYm0tdGFnLWZpbHRlclwiLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxzcGFuXG5cdFx0XHRjbGFzcz1cImNkcy0tdGFnX19sYWJlbFwiXG5cdFx0XHRbYXR0ci50aXRsZV09XCJ0aXRsZSA/IHRpdGxlIDogbnVsbFwiXG5cdFx0XHQoY2xpY2spPVwib25DbGljaygkZXZlbnQpXCI+XG5cdFx0XHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cdFx0PC9zcGFuPlxuXHRcdDxidXR0b25cblx0XHRcdGNsYXNzPVwiY2RzLS10YWdfX2Nsb3NlLWljb25cIlxuXHRcdFx0KGNsaWNrKT1cIm9uQ2xvc2UoJGV2ZW50KVwiXG5cdFx0XHRbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuXHRcdFx0W3RpdGxlXT1cImNsb3NlQnV0dG9uTGFiZWxcIj5cblx0XHRcdDxzcGFuIGNsYXNzPVwiY2RzLS12aXN1YWxseS1oaWRkZW5cIj57e2Nsb3NlQnV0dG9uTGFiZWx9fTwvc3Bhbj5cblx0XHRcdDxzdmcgY2RzSWNvbj1cImNsb3NlXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG5cdFx0PC9idXR0b24+XG5cdGBcbn0pXG5leHBvcnQgY2xhc3MgVGFnRmlsdGVyIGV4dGVuZHMgVGFnIHtcblx0QElucHV0KCkgY2xvc2VCdXR0b25MYWJlbCA9IFwiQ2xlYXIgRmlsdGVyXCI7XG5cdEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuXHRASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBGdW5jdGlvbiBmb3IgY2xvc2UvZGVsZXRlIHRoZSB0YWdcblx0ICovXG5cdEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG5cdC8qKlxuXHQgKiBXZSBuZWVkIHRvIHN0b3AgdGhlIGltbWVkYXRlIHByb3BhZ2F0aW9uIG9mIGNsaWNrIG9uIHRoZSBjbG9zZSBidXR0b25cblx0ICogdG8gcHJldmVudCB1bmRlc2lyZWQgZWZmZWN0cyB3aGVuIHVzZWQgd2l0aGluIGRpYWxvZ3MuXG5cdCAqXG5cdCAqIFdlIG5lZWQgdG8gZW1pdCBhIGNsaWNrIGV2ZW50IG9uIGNsb3NlIHRvIGFsbG93IGZvciBjbGlja3MgdG8gYmUgbGlzdGVuZWRcblx0ICogdG8gb24gdGhlIGltbWVkaWF0ZSBjbG9zZSBidXR0b24gZWxlbWVudC4gYGFjdGlvbmAgZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIGNsaWNrcyBvblxuXHQgKiB0aGUgdGFnIHZzLiBjbGlja3Mgb24gdGhlIGNsb3NlIGJ1dHRvbi5cblx0ICovXG5cdEBPdXRwdXQoKSBjbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8eyBhY3Rpb246IFwiY2xpY2tcIiB8IFwiY2xvc2VcIiB9PigpO1xuXG5cdG9uQ2xpY2soZXZlbnQ6IGFueSkge1xuXHRcdGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuXHRcdGlmICghdGhpcy5kaXNhYmxlZCkge1xuXHRcdFx0dGhpcy5jbGljay5lbWl0KHsgYWN0aW9uOiBcImNsaWNrXCIgfSk7XG5cdFx0fVxuXHR9XG5cblx0b25DbG9zZShldmVudDogYW55KSB7XG5cdFx0ZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cdFx0dGhpcy5jbGljay5lbWl0KHsgYWN0aW9uOiBcImNsb3NlXCIgfSk7XG5cdFx0dGhpcy5jbG9zZS5lbWl0KCk7XG5cdH1cblxuXHRASG9zdEJpbmRpbmcoXCJhdHRyLmNsYXNzXCIpIGdldCBhdHRyQ2xhc3MoKSB7XG5cdFx0cmV0dXJuIGBjZHMtLXRhZyBjZHMtLXRhZy0tZmlsdGVyIGNkcy0tdGFnLS0ke3RoaXMudHlwZX0gY2RzLS10YWctLSR7dGhpcy5zaXplfSAke3RoaXMuY2xhc3N9JHt0aGlzLmRpc2FibGVkID8gXCIgY2RzLS10YWctLWRpc2FibGVkXCIgOiBcIlwifWA7XG5cdH1cblxuXHRASG9zdEJpbmRpbmcoXCJhdHRyLmFyaWEtbGFiZWxcIikgZ2V0IGF0dHJBcmlhTGFiZWwoKSB7XG5cdFx0cmV0dXJuIGAke3RoaXMudGl0bGUgfHwgXCJcIn0gJHt0aGlzLmNsb3NlQnV0dG9uTGFiZWx9YC50cmltKCk7XG5cdH1cbn1cbiJdfQ==
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGFnL3RhZy1maWx0ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBcUJ0QyxNQUFNLE9BQU8sU0FBVSxTQUFRLEdBQUc7SUFuQmxDOztRQW9CVSxxQkFBZ0IsR0FBRyxjQUFjLENBQUM7UUFJM0M7O1dBRUc7UUFDTyxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUUxQzs7Ozs7OztXQU9HO1FBQ08sVUFBSyxHQUFHLElBQUksWUFBWSxFQUFpQyxDQUFDO0tBc0JwRTtJQXBCQSxPQUFPLENBQUMsS0FBVTtRQUNqQixLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNuQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1NBQ3JDO0lBQ0YsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFVO1FBQ2pCLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBK0IsU0FBUztRQUN2QyxPQUFPLHVDQUF1QyxJQUFJLENBQUMsSUFBSSxjQUFjLElBQUksQ0FBQyxJQUFJLHNCQUFzQixJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQzVLLENBQUM7SUFFRCxJQUFvQyxhQUFhO1FBQ2hELE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5RCxDQUFDOztzR0F2Q1csU0FBUzswRkFBVCxTQUFTLHFVQWpCWDs7Ozs7Ozs7Ozs7Ozs7O0VBZVQ7MkZBRVcsU0FBUztrQkFuQnJCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGdDQUFnQztvQkFDMUMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7RUFlVDtpQkFDRDs4QkFFUyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS0ksS0FBSztzQkFBZCxNQUFNO2dCQVVHLEtBQUs7c0JBQWQsTUFBTTtnQkFld0IsU0FBUztzQkFBdkMsV0FBVzt1QkFBQyxZQUFZO2dCQUlXLGFBQWE7c0JBQWhELFdBQVc7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q29tcG9uZW50LFxuXHRPdXRwdXQsXG5cdEV2ZW50RW1pdHRlcixcblx0SG9zdEJpbmRpbmcsXG5cdElucHV0XG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUYWcgfSBmcm9tIFwiLi90YWcuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJjZHMtdGFnLWZpbHRlciwgaWJtLXRhZy1maWx0ZXJcIixcblx0dGVtcGxhdGU6IGBcblx0XHQ8c3BhblxuXHRcdFx0Y2xhc3M9XCJjZHMtLXRhZ19fbGFiZWxcIlxuXHRcdFx0W2F0dHIudGl0bGVdPVwidGl0bGUgPyB0aXRsZSA6IG51bGxcIlxuXHRcdFx0KGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiPlxuXHRcdFx0PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXHRcdDwvc3Bhbj5cblx0XHQ8YnV0dG9uXG5cdFx0XHRjbGFzcz1cImNkcy0tdGFnX19jbG9zZS1pY29uXCJcblx0XHRcdChjbGljayk9XCJvbkNsb3NlKCRldmVudClcIlxuXHRcdFx0W2Rpc2FibGVkXT1cImRpc2FibGVkXCJcblx0XHRcdFt0aXRsZV09XCJjbG9zZUJ1dHRvbkxhYmVsXCI+XG5cdFx0XHQ8c3BhbiBjbGFzcz1cImNkcy0tdmlzdWFsbHktaGlkZGVuXCI+e3tjbG9zZUJ1dHRvbkxhYmVsfX08L3NwYW4+XG5cdFx0XHQ8c3ZnIGNkc0ljb249XCJjbG9zZVwiIHNpemU9XCIxNlwiPjwvc3ZnPlxuXHRcdDwvYnV0dG9uPlxuXHRgXG59KVxuZXhwb3J0IGNsYXNzIFRhZ0ZpbHRlciBleHRlbmRzIFRhZyB7XG5cdEBJbnB1dCgpIGNsb3NlQnV0dG9uTGFiZWwgPSBcIkNsZWFyIEZpbHRlclwiO1xuXHRASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcblx0QElucHV0KCkgdGl0bGU6IHN0cmluZztcblxuXHQvKipcblx0ICogRnVuY3Rpb24gZm9yIGNsb3NlL2RlbGV0ZSB0aGUgdGFnXG5cdCAqL1xuXHRAT3V0cHV0KCkgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuXHQvKipcblx0ICogV2UgbmVlZCB0byBzdG9wIHRoZSBpbW1lZGF0ZSBwcm9wYWdhdGlvbiBvZiBjbGljayBvbiB0aGUgY2xvc2UgYnV0dG9uXG5cdCAqIHRvIHByZXZlbnQgdW5kZXNpcmVkIGVmZmVjdHMgd2hlbiB1c2VkIHdpdGhpbiBkaWFsb2dzLlxuXHQgKlxuXHQgKiBXZSBuZWVkIHRvIGVtaXQgYSBjbGljayBldmVudCBvbiBjbG9zZSB0byBhbGxvdyBmb3IgY2xpY2tzIHRvIGJlIGxpc3RlbmVkXG5cdCAqIHRvIG9uIHRoZSBpbW1lZGlhdGUgY2xvc2UgYnV0dG9uIGVsZW1lbnQuIGBhY3Rpb25gIGRpc3Rpbmd1aXNoZXMgYmV0d2VlbiBjbGlja3Mgb25cblx0ICogdGhlIHRhZyB2cy4gY2xpY2tzIG9uIHRoZSBjbG9zZSBidXR0b24uXG5cdCAqL1xuXHRAT3V0cHV0KCkgY2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHsgYWN0aW9uOiBcImNsaWNrXCIgfCBcImNsb3NlXCIgfT4oKTtcblxuXHRvbkNsaWNrKGV2ZW50OiBhbnkpIHtcblx0XHRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcblx0XHRpZiAoIXRoaXMuZGlzYWJsZWQpIHtcblx0XHRcdHRoaXMuY2xpY2suZW1pdCh7IGFjdGlvbjogXCJjbGlja1wiIH0pO1xuXHRcdH1cblx0fVxuXG5cdG9uQ2xvc2UoZXZlbnQ6IGFueSkge1xuXHRcdGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuXHRcdHRoaXMuY2xpY2suZW1pdCh7IGFjdGlvbjogXCJjbG9zZVwiIH0pO1xuXHRcdHRoaXMuY2xvc2UuZW1pdCgpO1xuXHR9XG5cblx0QEhvc3RCaW5kaW5nKFwiYXR0ci5jbGFzc1wiKSBnZXQgYXR0ckNsYXNzKCkge1xuXHRcdHJldHVybiBgY2RzLS10YWcgY2RzLS10YWctLWZpbHRlciBjZHMtLXRhZy0tJHt0aGlzLnR5cGV9IGNkcy0tdGFnLS0ke3RoaXMuc2l6ZX0gY2RzLS1sYXlvdXQtLXNpemUtJHt0aGlzLnNpemV9ICR7dGhpcy5jbGFzc30ke3RoaXMuZGlzYWJsZWQgPyBcIiBjZHMtLXRhZy0tZGlzYWJsZWRcIiA6IFwiXCJ9YDtcblx0fVxuXG5cdEBIb3N0QmluZGluZyhcImF0dHIuYXJpYS1sYWJlbFwiKSBnZXQgYXR0ckFyaWFMYWJlbCgpIHtcblx0XHRyZXR1cm4gYCR7dGhpcy50aXRsZSB8fCBcIlwifSAke3RoaXMuY2xvc2VCdXR0b25MYWJlbH1gLnRyaW0oKTtcblx0fVxufVxuIl19
@@ -18,7 +18,7 @@ export class Tag {
18
18
  this.class = "";
19
19
  }
20
20
  get attrClass() {
21
- return `cds--tag cds--tag--${this.type} cds--tag--${this.size} ${this.class}`;
21
+ return `cds--tag cds--tag--${this.type} cds--tag--${this.size} cds--layout--size-${this.size} ${this.class}`;
22
22
  }
23
23
  }
24
24
  Tag.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: Tag, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
39
39
  type: HostBinding,
40
40
  args: ["attr.class"]
41
41
  }] } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90YWcvdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxXQUFXLEVBQ1gsTUFBTSxlQUFlLENBQUM7O0FBa0J2Qjs7OztHQUlHO0FBS0gsTUFBTSxPQUFPLEdBQUc7SUFKaEI7UUFLQzs7V0FFRztRQUNNLFNBQUksR0FBWSxNQUFNLENBQUM7UUFFaEM7O1dBRUc7UUFDTSxTQUFJLEdBQWdCLElBQUksQ0FBQztRQUV6QixVQUFLLEdBQUcsRUFBRSxDQUFDO0tBS3BCO0lBSEEsSUFBK0IsU0FBUztRQUN2QyxPQUFPLHNCQUFzQixJQUFJLENBQUMsSUFBSSxjQUFjLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQy9FLENBQUM7O2dHQWZXLEdBQUc7b0ZBQUgsR0FBRywwS0FGTCwyQkFBMkI7MkZBRXpCLEdBQUc7a0JBSmYsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixRQUFRLEVBQUUsMkJBQTJCO2lCQUNyQzs4QkFLUyxJQUFJO3NCQUFaLEtBQUs7Z0JBS0csSUFBSTtzQkFBWixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFeUIsU0FBUztzQkFBdkMsV0FBVzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q29tcG9uZW50LFxuXHRJbnB1dCxcblx0SG9zdEJpbmRpbmdcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuLyoqXG4gKiBTdXBwb3J0ZWQgdGFnIHR5cGVzIGZvciBjYXJib24gdjEwXG4gKi9cbmV4cG9ydCB0eXBlIFRhZ1R5cGUgPSBcInJlZFwiIHxcblx0XCJtYWdlbnRhXCIgfFxuXHRcInB1cnBsZVwiIHxcblx0XCJibHVlXCIgfFxuXHRcImN5YW5cIiB8XG5cdFwidGVhbFwiIHxcblx0XCJncmVlblwiIHxcblx0XCJncmF5XCIgfFxuXHRcImNvb2wtZ3JheVwiIHxcblx0XCJ3YXJtLWdyYXlcIiB8XG5cdFwiaGlnaC1jb250cmFzdFwiIHxcblx0XCJvdXRsaW5lXCI7XG5cbi8qKlxuICogQ29tcG9uZW50IHRoYXQgcmVwcmVzZW50cyBhIHRhZyBmb3IgbGFiZWxsaW5nL2NhdGVnb3JpemluZyB1c2luZyBrZXl3b3Jkc1xuICpcbiAqIFtTZWUgZGVtb10oLi4vLi4vP3BhdGg9L3N0b3J5L2NvbXBvbmVudHMtdGFnLS1iYXNpYylcbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcImNkcy10YWcsIGlibS10YWdcIixcblx0dGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YFxufSlcbmV4cG9ydCBjbGFzcyBUYWcge1xuXHQvKipcblx0ICogVHlwZSBvZiB0aGUgdGFnIGRldGVybWluZXMgdGhlIHN0eWxpbmdcblx0ICovXG5cdEBJbnB1dCgpIHR5cGU6IFRhZ1R5cGUgPSBcImdyYXlcIjtcblxuXHQvKipcblx0ICogVGFnIHJlbmRlciBzaXplXG5cdCAqL1xuXHRASW5wdXQoKSBzaXplOiBcInNtXCIgfCBcIm1kXCIgPSBcIm1kXCI7XG5cblx0QElucHV0KCkgY2xhc3MgPSBcIlwiO1xuXG5cdEBIb3N0QmluZGluZyhcImF0dHIuY2xhc3NcIikgZ2V0IGF0dHJDbGFzcygpIHtcblx0XHRyZXR1cm4gYGNkcy0tdGFnIGNkcy0tdGFnLS0ke3RoaXMudHlwZX0gY2RzLS10YWctLSR7dGhpcy5zaXplfSAke3RoaXMuY2xhc3N9YDtcblx0fVxufVxuIl19
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90YWcvdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxXQUFXLEVBQ1gsTUFBTSxlQUFlLENBQUM7O0FBa0J2Qjs7OztHQUlHO0FBS0gsTUFBTSxPQUFPLEdBQUc7SUFKaEI7UUFLQzs7V0FFRztRQUNNLFNBQUksR0FBWSxNQUFNLENBQUM7UUFFaEM7O1dBRUc7UUFDTSxTQUFJLEdBQWdCLElBQUksQ0FBQztRQUV6QixVQUFLLEdBQUcsRUFBRSxDQUFDO0tBS3BCO0lBSEEsSUFBK0IsU0FBUztRQUN2QyxPQUFPLHNCQUFzQixJQUFJLENBQUMsSUFBSSxjQUFjLElBQUksQ0FBQyxJQUFJLHNCQUFzQixJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM5RyxDQUFDOztnR0FmVyxHQUFHO29GQUFILEdBQUcsMEtBRkwsMkJBQTJCOzJGQUV6QixHQUFHO2tCQUpmLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFLDJCQUEyQjtpQkFDckM7OEJBS1MsSUFBSTtzQkFBWixLQUFLO2dCQUtHLElBQUk7c0JBQVosS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRXlCLFNBQVM7c0JBQXZDLFdBQVc7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENvbXBvbmVudCxcblx0SW5wdXQsXG5cdEhvc3RCaW5kaW5nXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbi8qKlxuICogU3VwcG9ydGVkIHRhZyB0eXBlcyBmb3IgY2FyYm9uIHYxMFxuICovXG5leHBvcnQgdHlwZSBUYWdUeXBlID0gXCJyZWRcIiB8XG5cdFwibWFnZW50YVwiIHxcblx0XCJwdXJwbGVcIiB8XG5cdFwiYmx1ZVwiIHxcblx0XCJjeWFuXCIgfFxuXHRcInRlYWxcIiB8XG5cdFwiZ3JlZW5cIiB8XG5cdFwiZ3JheVwiIHxcblx0XCJjb29sLWdyYXlcIiB8XG5cdFwid2FybS1ncmF5XCIgfFxuXHRcImhpZ2gtY29udHJhc3RcIiB8XG5cdFwib3V0bGluZVwiO1xuXG4vKipcbiAqIENvbXBvbmVudCB0aGF0IHJlcHJlc2VudHMgYSB0YWcgZm9yIGxhYmVsbGluZy9jYXRlZ29yaXppbmcgdXNpbmcga2V5d29yZHNcbiAqXG4gKiBbU2VlIGRlbW9dKC4uLy4uLz9wYXRoPS9zdG9yeS9jb21wb25lbnRzLXRhZy0tYmFzaWMpXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJjZHMtdGFnLCBpYm0tdGFnXCIsXG5cdHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmBcbn0pXG5leHBvcnQgY2xhc3MgVGFnIHtcblx0LyoqXG5cdCAqIFR5cGUgb2YgdGhlIHRhZyBkZXRlcm1pbmVzIHRoZSBzdHlsaW5nXG5cdCAqL1xuXHRASW5wdXQoKSB0eXBlOiBUYWdUeXBlID0gXCJncmF5XCI7XG5cblx0LyoqXG5cdCAqIFRhZyByZW5kZXIgc2l6ZVxuXHQgKi9cblx0QElucHV0KCkgc2l6ZTogXCJzbVwiIHwgXCJtZFwiID0gXCJtZFwiO1xuXG5cdEBJbnB1dCgpIGNsYXNzID0gXCJcIjtcblxuXHRASG9zdEJpbmRpbmcoXCJhdHRyLmNsYXNzXCIpIGdldCBhdHRyQ2xhc3MoKSB7XG5cdFx0cmV0dXJuIGBjZHMtLXRhZyBjZHMtLXRhZy0tJHt0aGlzLnR5cGV9IGNkcy0tdGFnLS0ke3RoaXMuc2l6ZX0gY2RzLS1sYXlvdXQtLXNpemUtJHt0aGlzLnNpemV9ICR7dGhpcy5jbGFzc31gO1xuXHR9XG59XG4iXX0=
@@ -129,6 +129,9 @@ class Accordion {
129
129
  * Sets the alignment of the chevron icon
130
130
  */
131
131
  this.align = "end";
132
+ /**
133
+ * @todo remove `cds--accordion--${size}` classes in v12
134
+ */
132
135
  /**
133
136
  * Sets the size of all accordian items
134
137
  */
@@ -159,7 +162,10 @@ Accordion.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14
159
162
  'cds--accordion--start': align === 'start',
160
163
  'cds--accordion--sm': size === 'sm',
161
164
  'cds--accordion--md': size ==='md',
162
- 'cds--accordion--lg': size === 'lg'
165
+ 'cds--accordion--lg': size === 'lg',
166
+ 'cds--layout--size-sm': size === 'sm',
167
+ 'cds--layout--size-md': size === 'md',
168
+ 'cds--layout--size-lg': size === 'lg'
163
169
  }"
164
170
  role="list">
165
171
  <ng-content></ng-content>
@@ -176,7 +182,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
176
182
  'cds--accordion--start': align === 'start',
177
183
  'cds--accordion--sm': size === 'sm',
178
184
  'cds--accordion--md': size ==='md',
179
- 'cds--accordion--lg': size === 'lg'
185
+ 'cds--accordion--lg': size === 'lg',
186
+ 'cds--layout--size-sm': size === 'sm',
187
+ 'cds--layout--size-md': size === 'md',
188
+ 'cds--layout--size-lg': size === 'lg'
180
189
  }"
181
190
  role="list">
182
191
  <ng-content></ng-content>
@@ -1 +1 @@
1
- {"version":3,"file":"carbon-components-angular-accordion.mjs","sources":["../../src/accordion/accordion-item.component.ts","../../src/accordion/accordion.component.ts","../../src/accordion/accordion.module.ts","../../src/accordion/carbon-components-angular-accordion.ts"],"sourcesContent":["import {\n\tComponent,\n\tInput,\n\tHostBinding,\n\tOutput,\n\tTemplateRef,\n\tEventEmitter\n} from \"@angular/core\";\n\n@Component({\n\tselector: \"cds-accordion-item, ibm-accordion-item\",\n\ttemplate: `\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t[attr.aria-expanded]=\"expanded\"\n\t\t\t[attr.aria-controls]=\"id\"\n\t\t\t(click)=\"toggleExpanded()\"\n\t\t\tclass=\"cds--accordion__heading\">\n\t\t\t<svg cdsIcon=\"chevron--right\" size=\"16\" class=\"cds--accordion__arrow\"></svg>\n\t\t\t<p *ngIf=\"!isTemplate(title)\"\n\t\t\t\tclass=\"cds--accordion__title\"\n\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t'cds--skeleton__text': skeleton\n\t\t\t\t}\">\n\t\t\t\t{{!skeleton ? title : null}}\n\t\t\t</p>\n\t\t\t<ng-template\n\t\t\t\t*ngIf=\"isTemplate(title)\"\n\t\t\t\t[ngTemplateOutlet]=\"title\"\n\t\t\t\t[ngTemplateOutletContext]=\"context\">\n\t\t\t</ng-template>\n\t\t</button>\n\t\t<div [id]=\"id\" class=\"cds--accordion__content\">\n\t\t\t<ng-content *ngIf=\"!skeleton; else skeletonTemplate\"></ng-content>\n\t\t\t<ng-template #skeletonTemplate>\n\t\t\t\t<p class=\"cds--skeleton__text\" style=\"width: 90%\"></p>\n\t\t\t\t<p class=\"cds--skeleton__text\" style=\"width: 80%\"></p>\n\t\t\t\t<p class=\"cds--skeleton__text\" style=\"width: 95%\"></p>\n\t\t\t</ng-template>\n\t\t</div>\n\t`,\n\tstyles: [`\n\t\t:host {\n\t\t\tdisplay: list-item;\n\t\t}\n\t`]\n})\nexport class AccordionItem {\n\tstatic accordionItemCount = 0;\n\t@Input() title: string | TemplateRef<any>;\n\t@Input() context: Object | null = null;\n\t@Input() id = `accordion-item-${AccordionItem.accordionItemCount++}`;\n\t@Input() skeleton = false;\n\t@Output() selected = new EventEmitter();\n\n\t@HostBinding(\"class.cds--accordion__item\") itemClass = true;\n\t@HostBinding(\"class.cds--accordion__item--active\") @Input() expanded = false;\n\t@HostBinding(\"class.cds--accordion__item--disabled\") @Input() disabled = false;\n\t@HostBinding(\"attr.role\") role = \"listitem\";\n\n\tpublic toggleExpanded() {\n\t\tif (!this.skeleton) {\n\t\t\tthis.expanded = !this.expanded;\n\t\t\tthis.selected.emit({id: this.id, expanded: this.expanded});\n\t\t}\n\t}\n\n\tpublic isTemplate(value) {\n\t\treturn value instanceof TemplateRef;\n\t}\n}\n","import {\n\tComponent,\n\tInput,\n\tContentChildren,\n\tQueryList,\n\tAfterContentInit\n} from \"@angular/core\";\nimport { AccordionItem } from \"./accordion-item.component\";\n\n/**\n * [See demo](../../?path=/story/components-accordion--basic)\n */\n@Component({\n\tselector: \"cds-accordion, ibm-accordion\",\n\ttemplate: `\n\t\t<div class=\"cds--accordion\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--accordion--end': align === 'end',\n\t\t\t\t'cds--accordion--start': align === 'start',\n\t\t\t\t'cds--accordion--sm': size === 'sm',\n\t\t\t\t'cds--accordion--md': size ==='md',\n\t\t\t\t'cds--accordion--lg': size === 'lg'\n\t\t\t}\"\n\t\t\trole=\"list\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t`\n})\nexport class Accordion implements AfterContentInit {\n\t/**\n\t * Sets the alignment of the chevron icon\n\t */\n\t@Input() align: \"start\" | \"end\" = \"end\";\n\n\t/**\n\t * Sets the size of all accordian items\n\t */\n\t@Input() size: \"sm\" | \"md\" | \"lg\" = \"md\";\n\n\t@ContentChildren(AccordionItem) children: QueryList<AccordionItem>;\n\n\tprotected _skeleton = false;\n\n\t@Input()\n\tset skeleton(value: any) {\n\t\tthis._skeleton = value;\n\t\tthis.updateChildren();\n\t}\n\n\tget skeleton(): any {\n\t\treturn this._skeleton;\n\t}\n\n\tngAfterContentInit() {\n\t\tthis.updateChildren();\n\t}\n\n\tprotected updateChildren() {\n\t\tif (this.children) {\n\t\t\tthis.children.toArray().forEach(child => child.skeleton = this.skeleton);\n\t\t}\n\t}\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { Accordion } from \"./accordion.component\";\nimport { AccordionItem } from \"./accordion-item.component\";\nimport { IconModule } from \"carbon-components-angular/icon\";\n\n@NgModule({\n\tdeclarations: [\n\t\tAccordion,\n\t\tAccordionItem\n\t],\n\texports: [\n\t\tAccordion,\n\t\tAccordionItem\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tIconModule\n\t]\n})\nexport class AccordionModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAgDa,aAAa,CAAA;AAvC1B,IAAA,WAAA,GAAA;AA0CU,QAAA,IAAO,CAAA,OAAA,GAAkB,IAAI,CAAC;QAC9B,IAAA,CAAA,EAAE,GAAG,CAAA,eAAA,EAAkB,aAAa,CAAC,kBAAkB,EAAE,CAAA,CAAE,CAAC;AAC5D,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAChB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;AAEG,QAAA,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;AACA,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AACf,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AACrD,QAAA,IAAI,CAAA,IAAA,GAAG,UAAU,CAAC;KAY5C;IAVO,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACnB,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC/B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAC,CAAC,CAAC;AAC3D,SAAA;KACD;AAEM,IAAA,UAAU,CAAC,KAAK,EAAA;QACtB,OAAO,KAAK,YAAY,WAAW,CAAC;KACpC;;AArBM,aAAkB,CAAA,kBAAA,GAAG,CAAC,CAAC;0GADlB,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EArCf,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,4BAAA,EAAA,gBAAA,EAAA,oCAAA,EAAA,eAAA,EAAA,sCAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAOW,aAAa,EAAA,UAAA,EAAA,CAAA;kBAvCzB,SAAS;YACC,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wCAAwC,EACxC,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BT,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,CAAA;8BASQ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACI,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAEoC,SAAS,EAAA,CAAA;sBAAnD,WAAW;uBAAC,4BAA4B,CAAA;gBACmB,QAAQ,EAAA,CAAA;sBAAnE,WAAW;uBAAC,oCAAoC,CAAA;;sBAAG,KAAK;gBACK,QAAQ,EAAA,CAAA;sBAArE,WAAW;uBAAC,sCAAsC,CAAA;;sBAAG,KAAK;gBACjC,IAAI,EAAA,CAAA;sBAA7B,WAAW;uBAAC,WAAW,CAAA;;;AClDzB;;AAEG;MAiBU,SAAS,CAAA;AAhBtB,IAAA,WAAA,GAAA;AAiBC;;AAEG;AACM,QAAA,IAAK,CAAA,KAAA,GAAoB,KAAK,CAAC;AAExC;;AAEG;AACM,QAAA,IAAI,CAAA,IAAA,GAAuB,IAAI,CAAC;AAI/B,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;KAqB5B;IAnBA,IACI,QAAQ,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,cAAc,EAAE,CAAC;KACtB;AAED,IAAA,IAAI,QAAQ,GAAA;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;KACtB;IAED,kBAAkB,GAAA;QACjB,IAAI,CAAC,cAAc,EAAE,CAAC;KACtB;IAES,cAAc,GAAA;QACvB,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzE,SAAA;KACD;;sGAjCW,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0FAAT,SAAS,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EAWJ,aAAa,EAzBpB,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;AAYT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEW,SAAS,EAAA,UAAA,EAAA,CAAA;kBAhBrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;AAYT,CAAA,CAAA;iBACD,CAAA;8BAKS,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAKG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAE0B,QAAQ,EAAA,CAAA;sBAAvC,eAAe;uBAAC,aAAa,CAAA;gBAK1B,QAAQ,EAAA,CAAA;sBADX,KAAK;;;MCtBM,eAAe,CAAA;;4GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,iBAZ1B,SAAS;AACT,QAAA,aAAa,aAOb,YAAY;AACZ,QAAA,UAAU,aALV,SAAS;QACT,aAAa,CAAA,EAAA,CAAA,CAAA;AAOF,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAJ1B,YAAY;QACZ,UAAU,CAAA,EAAA,CAAA,CAAA;2FAGC,eAAe,EAAA,UAAA,EAAA,CAAA;kBAd3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,YAAY,EAAE;wBACb,SAAS;wBACT,aAAa;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACR,SAAS;wBACT,aAAa;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACR,YAAY;wBACZ,UAAU;AACV,qBAAA;iBACD,CAAA;;;ACpBD;;AAEG;;;;"}
1
+ {"version":3,"file":"carbon-components-angular-accordion.mjs","sources":["../../src/accordion/accordion-item.component.ts","../../src/accordion/accordion.component.ts","../../src/accordion/accordion.module.ts","../../src/accordion/carbon-components-angular-accordion.ts"],"sourcesContent":["import {\n\tComponent,\n\tInput,\n\tHostBinding,\n\tOutput,\n\tTemplateRef,\n\tEventEmitter\n} from \"@angular/core\";\n\n@Component({\n\tselector: \"cds-accordion-item, ibm-accordion-item\",\n\ttemplate: `\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t[attr.aria-expanded]=\"expanded\"\n\t\t\t[attr.aria-controls]=\"id\"\n\t\t\t(click)=\"toggleExpanded()\"\n\t\t\tclass=\"cds--accordion__heading\">\n\t\t\t<svg cdsIcon=\"chevron--right\" size=\"16\" class=\"cds--accordion__arrow\"></svg>\n\t\t\t<p *ngIf=\"!isTemplate(title)\"\n\t\t\t\tclass=\"cds--accordion__title\"\n\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t'cds--skeleton__text': skeleton\n\t\t\t\t}\">\n\t\t\t\t{{!skeleton ? title : null}}\n\t\t\t</p>\n\t\t\t<ng-template\n\t\t\t\t*ngIf=\"isTemplate(title)\"\n\t\t\t\t[ngTemplateOutlet]=\"title\"\n\t\t\t\t[ngTemplateOutletContext]=\"context\">\n\t\t\t</ng-template>\n\t\t</button>\n\t\t<div [id]=\"id\" class=\"cds--accordion__content\">\n\t\t\t<ng-content *ngIf=\"!skeleton; else skeletonTemplate\"></ng-content>\n\t\t\t<ng-template #skeletonTemplate>\n\t\t\t\t<p class=\"cds--skeleton__text\" style=\"width: 90%\"></p>\n\t\t\t\t<p class=\"cds--skeleton__text\" style=\"width: 80%\"></p>\n\t\t\t\t<p class=\"cds--skeleton__text\" style=\"width: 95%\"></p>\n\t\t\t</ng-template>\n\t\t</div>\n\t`,\n\tstyles: [`\n\t\t:host {\n\t\t\tdisplay: list-item;\n\t\t}\n\t`]\n})\nexport class AccordionItem {\n\tstatic accordionItemCount = 0;\n\t@Input() title: string | TemplateRef<any>;\n\t@Input() context: Object | null = null;\n\t@Input() id = `accordion-item-${AccordionItem.accordionItemCount++}`;\n\t@Input() skeleton = false;\n\t@Output() selected = new EventEmitter();\n\n\t@HostBinding(\"class.cds--accordion__item\") itemClass = true;\n\t@HostBinding(\"class.cds--accordion__item--active\") @Input() expanded = false;\n\t@HostBinding(\"class.cds--accordion__item--disabled\") @Input() disabled = false;\n\t@HostBinding(\"attr.role\") role = \"listitem\";\n\n\tpublic toggleExpanded() {\n\t\tif (!this.skeleton) {\n\t\t\tthis.expanded = !this.expanded;\n\t\t\tthis.selected.emit({id: this.id, expanded: this.expanded});\n\t\t}\n\t}\n\n\tpublic isTemplate(value) {\n\t\treturn value instanceof TemplateRef;\n\t}\n}\n","import {\n\tComponent,\n\tInput,\n\tContentChildren,\n\tQueryList,\n\tAfterContentInit\n} from \"@angular/core\";\nimport { AccordionItem } from \"./accordion-item.component\";\n\n/**\n * [See demo](../../?path=/story/components-accordion--basic)\n */\n@Component({\n\tselector: \"cds-accordion, ibm-accordion\",\n\ttemplate: `\n\t\t<div class=\"cds--accordion\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--accordion--end': align === 'end',\n\t\t\t\t'cds--accordion--start': align === 'start',\n\t\t\t\t'cds--accordion--sm': size === 'sm',\n\t\t\t\t'cds--accordion--md': size ==='md',\n\t\t\t\t'cds--accordion--lg': size === 'lg',\n\t\t\t\t'cds--layout--size-sm': size === 'sm',\n\t\t\t\t'cds--layout--size-md': size === 'md',\n\t\t\t\t'cds--layout--size-lg': size === 'lg'\n\t\t\t}\"\n\t\t\trole=\"list\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t`\n})\nexport class Accordion implements AfterContentInit {\n\t/**\n\t * Sets the alignment of the chevron icon\n\t */\n\t@Input() align: \"start\" | \"end\" = \"end\";\n\n\t/**\n\t *\t@todo remove `cds--accordion--${size}` classes in v12\n\t */\n\t/**\n\t * Sets the size of all accordian items\n\t */\n\t@Input() size: \"sm\" | \"md\" | \"lg\" = \"md\";\n\n\t@ContentChildren(AccordionItem) children: QueryList<AccordionItem>;\n\n\tprotected _skeleton = false;\n\n\t@Input()\n\tset skeleton(value: any) {\n\t\tthis._skeleton = value;\n\t\tthis.updateChildren();\n\t}\n\n\tget skeleton(): any {\n\t\treturn this._skeleton;\n\t}\n\n\tngAfterContentInit() {\n\t\tthis.updateChildren();\n\t}\n\n\tprotected updateChildren() {\n\t\tif (this.children) {\n\t\t\tthis.children.toArray().forEach(child => child.skeleton = this.skeleton);\n\t\t}\n\t}\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { Accordion } from \"./accordion.component\";\nimport { AccordionItem } from \"./accordion-item.component\";\nimport { IconModule } from \"carbon-components-angular/icon\";\n\n@NgModule({\n\tdeclarations: [\n\t\tAccordion,\n\t\tAccordionItem\n\t],\n\texports: [\n\t\tAccordion,\n\t\tAccordionItem\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tIconModule\n\t]\n})\nexport class AccordionModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -71,6 +71,9 @@ class Button {
71
71
  get dangerGhost() {
72
72
  return this.cdsButton === "danger--ghost";
73
73
  }
74
+ /**
75
+ * @todo remove `cds--btn--${size}` classes in v12
76
+ */
74
77
  get smallSize() {
75
78
  return this.size === "sm" && !this.isExpressive;
76
79
  }
@@ -86,9 +89,25 @@ class Button {
86
89
  get twoExtraLargeSize() {
87
90
  return this.size === "2xl";
88
91
  }
92
+ // Size classes
93
+ get smallLayoutSize() {
94
+ return this.size === "sm" && !this.isExpressive;
95
+ }
96
+ get mediumLayoutSize() {
97
+ return this.size === "md" && !this.isExpressive;
98
+ }
99
+ get largeLayoutSize() {
100
+ return this.size === "lg";
101
+ }
102
+ get extraLargeLayoutSize() {
103
+ return this.size === "xl";
104
+ }
105
+ get twoExtraLargeLayoutSize() {
106
+ return this.size === "2xl";
107
+ }
89
108
  }
90
109
  Button.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: Button, deps: [], target: i0.ɵɵFactoryTarget.Directive });
91
- Button.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: Button, selector: "[cdsButton], [ibmButton]", inputs: { ibmButton: "ibmButton", cdsButton: "cdsButton", size: "size", skeleton: "skeleton", iconOnly: "iconOnly", isExpressive: "isExpressive" }, host: { properties: { "class.cds--skeleton": "this.skeleton", "class.cds--btn--icon-only": "this.iconOnly", "class.cds--btn--expressive": "this.isExpressive", "class.cds--btn": "this.baseClass", "class.cds--btn--primary": "this.primaryButton", "class.cds--btn--secondary": "this.secondaryButton", "class.cds--btn--tertiary": "this.tertiaryButton", "class.cds--btn--ghost": "this.ghostButton", "class.cds--btn--danger": "this.dangerButton", "class.cds--btn--danger--tertiary": "this.dangerTertiary", "class.cds--btn--danger--ghost": "this.dangerGhost", "class.cds--btn--sm": "this.smallSize", "class.cds--btn--md": "this.mediumSize", "class.cds--btn--lg": "this.largeSize", "class.cds--btn--xl": "this.extraLargeSize", "class.cds--btn--2xl": "this.twoExtraLargeSize" } }, ngImport: i0 });
110
+ Button.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: Button, selector: "[cdsButton], [ibmButton]", inputs: { ibmButton: "ibmButton", cdsButton: "cdsButton", size: "size", skeleton: "skeleton", iconOnly: "iconOnly", isExpressive: "isExpressive" }, host: { properties: { "class.cds--skeleton": "this.skeleton", "class.cds--btn--icon-only": "this.iconOnly", "class.cds--btn--expressive": "this.isExpressive", "class.cds--btn": "this.baseClass", "class.cds--btn--primary": "this.primaryButton", "class.cds--btn--secondary": "this.secondaryButton", "class.cds--btn--tertiary": "this.tertiaryButton", "class.cds--btn--ghost": "this.ghostButton", "class.cds--btn--danger": "this.dangerButton", "class.cds--btn--danger--tertiary": "this.dangerTertiary", "class.cds--btn--danger--ghost": "this.dangerGhost", "class.cds--btn--sm": "this.smallSize", "class.cds--btn--md": "this.mediumSize", "class.cds--btn--lg": "this.largeSize", "class.cds--btn--xl": "this.extraLargeSize", "class.cds--btn--2xl": "this.twoExtraLargeSize", "class.cds--layout--size-sm": "this.smallLayoutSize", "class.cds--layout--size-md": "this.mediumLayoutSize", "class.cds--layout--size-lg": "this.largeLayoutSize", "class.cds--layout--size-xl": "this.extraLargeLayoutSize", "class.cds--layout--size-2xl": "this.twoExtraLargeLayoutSize" } }, ngImport: i0 });
92
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: Button, decorators: [{
93
112
  type: Directive,
94
113
  args: [{
@@ -154,6 +173,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
154
173
  }], twoExtraLargeSize: [{
155
174
  type: HostBinding,
156
175
  args: ["class.cds--btn--2xl"]
176
+ }], smallLayoutSize: [{
177
+ type: HostBinding,
178
+ args: ["class.cds--layout--size-sm"]
179
+ }], mediumLayoutSize: [{
180
+ type: HostBinding,
181
+ args: ["class.cds--layout--size-md"]
182
+ }], largeLayoutSize: [{
183
+ type: HostBinding,
184
+ args: ["class.cds--layout--size-lg"]
185
+ }], extraLargeLayoutSize: [{
186
+ type: HostBinding,
187
+ args: ["class.cds--layout--size-xl"]
188
+ }], twoExtraLargeLayoutSize: [{
189
+ type: HostBinding,
190
+ args: ["class.cds--layout--size-2xl"]
157
191
  }] } });
158
192
 
159
193
  class ButtonSet {
@@ -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.\n *\n * [See demo](../../?path=/story/components-button--basic)\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@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@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","import { Component, HostBinding } from \"@angular/core\";\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@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.\n *\n * [See demo](../../?path=/story/components-button--basic)\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@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@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@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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"}