@sbb-esta/lyne-elements 1.14.1 → 1.15.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 (167) hide show
  1. package/autocomplete/autocomplete.d.ts +1 -1
  2. package/autocomplete/autocomplete.d.ts.map +1 -1
  3. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts +1 -1
  4. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
  5. package/autocomplete-grid/autocomplete-grid.js +6 -6
  6. package/autocomplete.js +20 -19
  7. package/calendar/calendar.d.ts +1 -1
  8. package/calendar/calendar.d.ts.map +1 -1
  9. package/calendar.js +25 -27
  10. package/checkbox/checkbox-panel/checkbox-panel.d.ts +1 -1
  11. package/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
  12. package/checkbox/checkbox-panel.js +5 -5
  13. package/checkbox/common.js +1 -1
  14. package/clock/clock.d.ts +1 -1
  15. package/clock/clock.d.ts.map +1 -1
  16. package/clock.js +2 -2
  17. package/container/sticky-bar/sticky-bar.d.ts +29 -2
  18. package/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  19. package/container/sticky-bar.js +69 -31
  20. package/core/controllers/media-matchers-controller.d.ts +32 -0
  21. package/core/controllers/media-matchers-controller.d.ts.map +1 -0
  22. package/core/controllers.d.ts +1 -0
  23. package/core/controllers.d.ts.map +1 -1
  24. package/core/controllers.js +75 -33
  25. package/core/dom/breakpoint.d.ts +2 -1
  26. package/core/dom/breakpoint.d.ts.map +1 -1
  27. package/core/dom.js +7 -7
  28. package/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  29. package/core/mixins.js +8 -1
  30. package/core/styles/core/mediaqueries.scss +1 -2
  31. package/core/styles/mixins/buttons.scss +5 -5
  32. package/core/testing/event-spy.d.ts +6 -4
  33. package/core/testing/event-spy.d.ts.map +1 -1
  34. package/core/testing.js +82 -55
  35. package/custom-elements.json +609 -62
  36. package/datepicker/datepicker/datepicker.d.ts.map +1 -1
  37. package/development/autocomplete/autocomplete.d.ts +1 -1
  38. package/development/autocomplete/autocomplete.d.ts.map +1 -1
  39. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts +1 -1
  40. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
  41. package/development/autocomplete-grid/autocomplete-grid.js +4 -3
  42. package/development/autocomplete.js +4 -3
  43. package/development/calendar/calendar.d.ts +1 -1
  44. package/development/calendar/calendar.d.ts.map +1 -1
  45. package/development/calendar.js +8 -11
  46. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts +1 -1
  47. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
  48. package/development/checkbox/checkbox-panel.js +2 -2
  49. package/development/checkbox/common.js +2 -2
  50. package/development/clock/clock.d.ts +1 -1
  51. package/development/clock/clock.d.ts.map +1 -1
  52. package/development/clock.js +3 -3
  53. package/development/container/sticky-bar/sticky-bar.d.ts +29 -2
  54. package/development/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  55. package/development/container/sticky-bar.js +149 -36
  56. package/development/core/controllers/media-matchers-controller.d.ts +32 -0
  57. package/development/core/controllers/media-matchers-controller.d.ts.map +1 -0
  58. package/development/core/controllers.d.ts +1 -0
  59. package/development/core/controllers.d.ts.map +1 -1
  60. package/development/core/controllers.js +65 -1
  61. package/development/core/dom/breakpoint.d.ts +2 -1
  62. package/development/core/dom/breakpoint.d.ts.map +1 -1
  63. package/development/core/dom.js +2 -2
  64. package/development/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  65. package/development/core/mixins.js +9 -2
  66. package/development/core/testing/event-spy.d.ts +6 -4
  67. package/development/core/testing/event-spy.d.ts.map +1 -1
  68. package/development/core/testing.js +35 -1
  69. package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
  70. package/development/datepicker/datepicker.js +1 -1
  71. package/development/dialog/dialog.js +2 -2
  72. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts +2 -0
  73. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts.map +1 -1
  74. package/development/expansion-panel/expansion-panel-header.js +7 -3
  75. package/development/file-selector/file-selector.d.ts +5 -0
  76. package/development/file-selector/file-selector.d.ts.map +1 -1
  77. package/development/file-selector.js +8 -1
  78. package/development/flip-card/flip-card/flip-card.d.ts +4 -0
  79. package/development/flip-card/flip-card/flip-card.d.ts.map +1 -1
  80. package/development/flip-card/flip-card-details.js +4 -6
  81. package/development/flip-card/flip-card-summary/flip-card-summary.d.ts +1 -1
  82. package/development/flip-card/flip-card-summary/flip-card-summary.d.ts.map +1 -1
  83. package/development/flip-card/flip-card-summary.js +9 -10
  84. package/development/flip-card/flip-card.js +26 -2
  85. package/development/form-field/form-field.js +5 -3
  86. package/development/icon/icon.d.ts +1 -1
  87. package/development/icon.js +1 -1
  88. package/development/image/image.d.ts.map +1 -1
  89. package/development/image.js +3 -19
  90. package/development/map-container.js +3 -2
  91. package/development/menu/menu/menu.d.ts +1 -0
  92. package/development/menu/menu/menu.d.ts.map +1 -1
  93. package/development/menu/menu.js +15 -11
  94. package/development/navigation/navigation-section.js +4 -14
  95. package/development/navigation/navigation.js +2 -7
  96. package/development/notification.js +3 -2
  97. package/development/paginator/paginator/paginator.d.ts +1 -5
  98. package/development/paginator/paginator/paginator.d.ts.map +1 -1
  99. package/development/paginator/paginator.js +19 -27
  100. package/development/popover/popover/popover.d.ts.map +1 -1
  101. package/development/popover/popover.js +9 -16
  102. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts +1 -1
  103. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
  104. package/development/radio-button/radio-button-panel.js +2 -2
  105. package/development/sbb-tokens-BdGhUJjM.js +33 -0
  106. package/development/select/select.d.ts +6 -5
  107. package/development/select/select.d.ts.map +1 -1
  108. package/development/select.js +23 -14
  109. package/development/slider/slider.d.ts +5 -0
  110. package/development/slider/slider.d.ts.map +1 -1
  111. package/development/slider.js +8 -1
  112. package/development/table/table-wrapper/table-wrapper.d.ts +1 -1
  113. package/development/table/table-wrapper/table-wrapper.d.ts.map +1 -1
  114. package/development/table/table-wrapper.js +1 -1
  115. package/development/timetable-occupancy-icon/timetable-occupancy-icon.d.ts +2 -1
  116. package/development/timetable-occupancy-icon/timetable-occupancy-icon.d.ts.map +1 -1
  117. package/development/timetable-occupancy-icon.js +11 -9
  118. package/development/toggle-check/toggle-check.d.ts +1 -1
  119. package/development/toggle-check/toggle-check.d.ts.map +1 -1
  120. package/development/toggle-check.js +2 -2
  121. package/dialog/dialog.js +1 -1
  122. package/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts +2 -0
  123. package/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts.map +1 -1
  124. package/expansion-panel/expansion-panel-header.js +25 -23
  125. package/file-selector/file-selector.d.ts +5 -0
  126. package/file-selector/file-selector.d.ts.map +1 -1
  127. package/file-selector.js +7 -0
  128. package/flip-card/flip-card/flip-card.d.ts +4 -0
  129. package/flip-card/flip-card/flip-card.d.ts.map +1 -1
  130. package/flip-card/flip-card-details.js +6 -6
  131. package/flip-card/flip-card-summary/flip-card-summary.d.ts +1 -1
  132. package/flip-card/flip-card-summary/flip-card-summary.d.ts.map +1 -1
  133. package/flip-card/flip-card-summary.js +8 -8
  134. package/flip-card/flip-card.js +56 -42
  135. package/icon/icon.d.ts +1 -1
  136. package/image/image.d.ts.map +1 -1
  137. package/image.js +46 -45
  138. package/map-container.js +7 -7
  139. package/menu/menu/menu.d.ts +1 -0
  140. package/menu/menu/menu.d.ts.map +1 -1
  141. package/menu/menu.js +45 -41
  142. package/navigation/navigation-section.js +7 -7
  143. package/navigation/navigation.js +8 -8
  144. package/package.json +1 -1
  145. package/paginator/paginator/paginator.d.ts +1 -5
  146. package/paginator/paginator/paginator.d.ts.map +1 -1
  147. package/paginator/paginator.js +50 -52
  148. package/popover/popover/popover.d.ts.map +1 -1
  149. package/popover/popover.js +42 -46
  150. package/radio-button/radio-button-panel/radio-button-panel.d.ts +1 -1
  151. package/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
  152. package/radio-button/radio-button-panel.js +7 -7
  153. package/sbb-tokens-Dx20OtVg.js +18 -0
  154. package/select/select.d.ts +6 -5
  155. package/select/select.d.ts.map +1 -1
  156. package/select.js +55 -53
  157. package/slider/slider.d.ts +5 -0
  158. package/slider/slider.d.ts.map +1 -1
  159. package/slider.js +12 -5
  160. package/table/table-wrapper/table-wrapper.d.ts +1 -1
  161. package/table/table-wrapper/table-wrapper.d.ts.map +1 -1
  162. package/timetable-occupancy-icon/timetable-occupancy-icon.d.ts +2 -1
  163. package/timetable-occupancy-icon/timetable-occupancy-icon.d.ts.map +1 -1
  164. package/timetable-occupancy-icon.js +45 -44
  165. package/toggle-check/toggle-check.d.ts +1 -1
  166. package/toggle-check/toggle-check.d.ts.map +1 -1
  167. package/toggle-check.js +1 -1
@@ -416,4 +416,4 @@ export {
416
416
  getDatePicker,
417
417
  isDateAvailable
418
418
  };
419
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci9kYXRlcGlja2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIGlzU2VydmVyLFxuICBMaXRFbGVtZW50LFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHksIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyByZWFkQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29yZS9jb25maWcuanMnO1xuaW1wb3J0IHsgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyLCBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IHR5cGUgRGF0ZUFkYXB0ZXIsIGRlZmF1bHREYXRlQWRhcHRlciB9IGZyb20gJy4uLy4uL2NvcmUvZGF0ZXRpbWUuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGZpbmRJbnB1dCwgZmluZFJlZmVyZW5jZWRFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBpMThuRGF0ZUNoYW5nZWRUbywgaTE4bkRhdGVQaWNrZXJQbGFjZWhvbGRlciB9IGZyb20gJy4uLy4uL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRhdGVMaWtlLCBTYmJWYWxpZGF0aW9uQ2hhbmdlRXZlbnQgfSBmcm9tICcuLi8uLi9jb3JlL2ludGVyZmFjZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJEYXRlcGlja2VyQnV0dG9uIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRGF0ZXBpY2tlclRvZ2dsZUVsZW1lbnQgfSBmcm9tICcuLi9kYXRlcGlja2VyLXRvZ2dsZS5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2RhdGVwaWNrZXIuc2Nzcz9saXQmaW5saW5lJztcblxuZXhwb3J0IGludGVyZmFjZSBTYmJJbnB1dFVwZGF0ZUV2ZW50IHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICByZWFkb25seT86IGJvb2xlYW47XG4gIG1pbj86IHN0cmluZyB8IG51bWJlcjtcbiAgbWF4Pzogc3RyaW5nIHwgbnVtYmVyO1xufVxuXG4vLyBUT0RPKGJyZWFraW5nLWNoYW5nZSk6IElubGluZSBkZXByZWNhdGVkIGZ1bmN0aW9ucyBpbiBTYmJEYXRlcGlja2VyRWxlbWVudCBhcyBwdWJsaWMgbWV0aG9kc1xuLy8gd2hlcmUgcG9zc2libGUgYW5kIHVzZSB0aGVzZSBtZXRob2RzIHdoZXJlIHRoZSBmdW5jdGlvbnMgYXJlIGN1cnJlbnRseSB1c2VkLlxuXG4vKipcbiAqIEdpdmVuIGEgU2JiRGF0ZXBpY2tlclByZXZpb3VzRGF5RWxlbWVudCwgYSBTYmJEYXRlcGlja2VyTmV4dERheUVsZW1lbnQgb3IgYSBTYmJEYXRlcGlja2VyVG9nZ2xlRWxlbWVudCBjb21wb25lbnQsXG4gKiBpdCByZXR1cm5zIHRoZSByZWxhdGVkIFNiYkRhdGVwaWNrZXJFbGVtZW50IHJlZmVyZW5jZSwgaWYgZXhpc3RzLlxuICogQHBhcmFtIGVsZW1lbnQgVGhlIGVsZW1lbnQgcG90ZW50aWFsbHkgY29ubmVjdGVkIHRvIHRoZSBTYmJEYXRlcGlja2VyRWxlbWVudC5cbiAqIEBwYXJhbSB0cmlnZ2VyIFRoZSBpZCBvciB0aGUgcmVmZXJlbmNlIG9mIHRoZSBTYmJEYXRlUGlja2VyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0ZVBpY2tlcjxUID0gRGF0ZT4oXG4gIGVsZW1lbnQ6IFNiYkRhdGVwaWNrZXJCdXR0b248VD4gfCBTYmJEYXRlcGlja2VyVG9nZ2xlRWxlbWVudDxUPixcbiAgdHJpZ2dlcj86IHN0cmluZyB8IEhUTUxFbGVtZW50LFxuKTogU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD4gfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCF0cmlnZ2VyKSB7XG4gICAgcmV0dXJuIGVsZW1lbnRcbiAgICAgIC5jbG9zZXN0Py4oJ3NiYi1mb3JtLWZpZWxkJylcbiAgICAgID8ucXVlcnlTZWxlY3RvcjxTYmJEYXRlcGlja2VyRWxlbWVudDxUPj4oJ3NiYi1kYXRlcGlja2VyJyk7XG4gIH1cblxuICByZXR1cm4gZmluZFJlZmVyZW5jZWRFbGVtZW50PFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+Pih0cmlnZ2VyKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBmaXJzdCBhdmFpbGFibGUgZGF0ZSBiZWZvcmUgb3IgYWZ0ZXIgYSBnaXZlbiBvbmUsIGNvbnNpZGVyaW5nIHRoZSBTYmJEYXRlcGlja2VyRWxlbWVudCBgZGF0ZUZpbHRlcmAgcHJvcGVydHkuXG4gKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZSBmb3IgY2FsY3VsYXRpb25zLlxuICogQHBhcmFtIGRlbHRhIFRoZSBudW1iZXIgb2YgZGF5cyB0byBhZGQvc3VidHJhY3QgZnJvbSB0aGUgc3RhcnRpbmcgb25lLlxuICogQHBhcmFtIGRhdGVGaWx0ZXIgVGhlIGRhdGVGaWx0ZXIgZnVuY3Rpb24gZnJvbSB0aGUgU2JiRGF0ZXBpY2tlckVsZW1lbnQuXG4gKiBAcGFyYW0gZGF0ZUFkYXB0ZXIgVGhlIGFkYXB0ZXIgY2xhc3MuXG4gKlxuICogQGRlcHJlY2F0ZWQgTm90IGludGVuZGVkIGFzIHB1YmxpYyBBUEkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBdmFpbGFibGVEYXRlPFQgPSBEYXRlPihcbiAgZGF0ZTogVCxcbiAgZGVsdGE6IG51bWJlcixcbiAgZGF0ZUZpbHRlcjogKChkYXRlOiBUKSA9PiBib29sZWFuKSB8IG51bGwsXG4gIGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxUPixcbik6IFQge1xuICBsZXQgYXZhaWxhYmxlRGF0ZSA9IGRhdGVBZGFwdGVyLmFkZENhbGVuZGFyRGF5cyhkYXRlLCBkZWx0YSk7XG5cbiAgaWYgKGRhdGVGaWx0ZXIpIHtcbiAgICB3aGlsZSAoIWRhdGVGaWx0ZXIoYXZhaWxhYmxlRGF0ZSkpIHtcbiAgICAgIGF2YWlsYWJsZURhdGUgPSBkYXRlQWRhcHRlci5hZGRDYWxlbmRhckRheXMoYXZhaWxhYmxlRGF0ZSwgZGVsdGEpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhdmFpbGFibGVEYXRlO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZXMgdGhlIGZpcnN0IGF2YWlsYWJsZSBkYXRlIGJlZm9yZSB0aGUgZ2l2ZW4gb25lLFxuICogY29uc2lkZXJpbmcgdGhlIFNiYkRhdGVwaWNrZXJFbGVtZW50IGBkYXRlRmlsdGVyYCBwcm9wZXJ0eSBhbmQgYG1pbmAgcGFyYW1ldGVyIChlLmcuIGZyb20gdGhlIHNlbGYtbmFtZWQgaW5wdXQncyBhdHRyaWJ1dGUpLlxuICogQHBhcmFtIGRhdGUgVGhlIHN0YXJ0aW5nIGRhdGUgZm9yIGNhbGN1bGF0aW9ucy5cbiAqIEBwYXJhbSBkYXRlRmlsdGVyIFRoZSBkYXRlRmlsdGVyIGZ1bmN0aW9uIGZyb20gdGhlIFNiYkRhdGVwaWNrZXJFbGVtZW50LlxuICogQHBhcmFtIGRhdGVBZGFwdGVyIFRoZSBhZGFwdGVyIGNsYXNzLlxuICogQHBhcmFtIG1pbiBUaGUgbWluaW11bSB2YWx1ZSB0byBjb25zaWRlciBpbiBjYWxjdWxhdGlvbnMuXG4gKlxuICogQGRlcHJlY2F0ZWQgTm90IGludGVuZGVkIGFzIHB1YmxpYyBBUEkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kUHJldmlvdXNBdmFpbGFibGVEYXRlPFQgPSBEYXRlPihcbiAgZGF0ZTogVCxcbiAgZGF0ZUZpbHRlcjogKChkYXRlOiBUKSA9PiBib29sZWFuKSB8IG51bGwsXG4gIGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxUPixcbiAgbWluOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsLFxuKTogVCB7XG4gIGNvbnN0IHByZXZpb3VzRGF0ZSA9IGdldEF2YWlsYWJsZURhdGUoZGF0ZSwgLTEsIGRhdGVGaWx0ZXIsIGRhdGVBZGFwdGVyKTtcbiAgY29uc3QgZGF0ZU1pbiA9IGRhdGVBZGFwdGVyLmRlc2VyaWFsaXplKG1pbik7XG5cbiAgaWYgKFxuICAgICFkYXRlTWluIHx8XG4gICAgKGRhdGVBZGFwdGVyLmlzVmFsaWQoZGF0ZU1pbikgJiYgZGF0ZUFkYXB0ZXIuY29tcGFyZURhdGUocHJldmlvdXNEYXRlLCBkYXRlTWluKSA+PSAwKVxuICApIHtcbiAgICByZXR1cm4gcHJldmlvdXNEYXRlO1xuICB9XG4gIHJldHVybiBkYXRlO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZXMgdGhlIGZpcnN0IGF2YWlsYWJsZSBkYXRlIGFmdGVyIHRoZSBnaXZlbiBvbmUsXG4gKiBjb25zaWRlcmluZyB0aGUgU2JiRGF0ZXBpY2tlckVsZW1lbnQgYGRhdGVGaWx0ZXJgIHByb3BlcnR5IGFuZCBgbWF4YCBwYXJhbWV0ZXIgKGUuZy4gZnJvbSB0aGUgc2VsZi1uYW1lZCBpbnB1dCdzIGF0dHJpYnV0ZSkuXG4gKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZSBmb3IgY2FsY3VsYXRpb25zLlxuICogQHBhcmFtIGRhdGVGaWx0ZXIgVGhlIGRhdGVGaWx0ZXIgZnVuY3Rpb24gZnJvbSB0aGUgU2JiRGF0ZXBpY2tlckVsZW1lbnQuXG4gKiBAcGFyYW0gZGF0ZUFkYXB0ZXIgVGhlIGFkYXB0ZXIgY2xhc3MuXG4gKiBAcGFyYW0gbWF4IFRoZSBtYXhpbXVtIHZhbHVlIHRvIGNvbnNpZGVyIGluIGNhbGN1bGF0aW9ucy5cbiAqXG4gKiBAZGVwcmVjYXRlZCBOb3QgaW50ZW5kZWQgYXMgcHVibGljIEFQSS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmROZXh0QXZhaWxhYmxlRGF0ZTxUID0gRGF0ZT4oXG4gIGRhdGU6IFQsXG4gIGRhdGVGaWx0ZXI6ICgoZGF0ZTogVCkgPT4gYm9vbGVhbikgfCBudWxsLFxuICBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8VD4sXG4gIG1heDogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCxcbik6IFQge1xuICBjb25zdCBuZXh0RGF0ZSA9IGdldEF2YWlsYWJsZURhdGUoZGF0ZSwgMSwgZGF0ZUZpbHRlciwgZGF0ZUFkYXB0ZXIpO1xuICBjb25zdCBkYXRlTWF4ID0gZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUobWF4KTtcblxuICBpZiAoXG4gICAgIWRhdGVNYXggfHxcbiAgICAoZGF0ZUFkYXB0ZXIuaXNWYWxpZChkYXRlTWF4KSAmJiBkYXRlQWRhcHRlci5jb21wYXJlRGF0ZShuZXh0RGF0ZSwgZGF0ZU1heCkgPD0gMClcbiAgKSB7XG4gICAgcmV0dXJuIG5leHREYXRlO1xuICB9XG4gIHJldHVybiBkYXRlO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgcHJvdmlkZWQgZGF0ZSBpcyBhIHZhbGlkIG9uZSwgY29uc2lkZXJpbmcgdGhlIFNiYkRhdGVwaWNrZXJFbGVtZW50IGBkYXRlRmlsdGVyYCBwcm9wZXJ0eVxuICogYW5kIGBtaW5gIGFuZCBgbWF4YCBwYXJhbWV0ZXJzIChlLmcuIGZyb20gdGhlIHNlbGYtbmFtZWQgaW5wdXQncyBhdHRyaWJ1dGVzKS5cbiAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlIGZvciBjYWxjdWxhdGlvbnMuXG4gKiBAcGFyYW0gZGF0ZUZpbHRlciBUaGUgZGF0ZUZpbHRlciBmdW5jdGlvbiBmcm9tIHRoZSBTYmJEYXRlcGlja2VyRWxlbWVudC5cbiAqIEBwYXJhbSBtaW4gVGhlIG1pbmltdW0gdmFsdWUgdG8gY29uc2lkZXIgaW4gY2FsY3VsYXRpb25zLlxuICogQHBhcmFtIG1heCBUaGUgbWF4aW11bSB2YWx1ZSB0byBjb25zaWRlciBpbiBjYWxjdWxhdGlvbnMuXG4gKlxuICogQGRlcHJlY2F0ZWQgTm90IGludGVuZGVkIGFzIHB1YmxpYyBBUEkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGVBdmFpbGFibGU8VCA9IERhdGU+KFxuICBkYXRlOiBULFxuICBkYXRlRmlsdGVyOiAoKGRhdGU6IFQpID0+IGJvb2xlYW4pIHwgbnVsbCxcbiAgbWluOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLFxuICBtYXg6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsXG4pOiBib29sZWFuIHtcbiAgLy8gVE9ETzogR2V0IGRhdGUgYWRhcHRlciBmcm9tIGNvbmZpZ1xuICBjb25zdCBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8VD4gPSByZWFkQ29uZmlnKCkuZGF0ZXRpbWU/LmRhdGVBZGFwdGVyID8/IGRlZmF1bHREYXRlQWRhcHRlcjtcbiAgY29uc3QgZGF0ZU1pbiA9IGRhdGVBZGFwdGVyLmRlc2VyaWFsaXplKG1pbik7XG4gIGNvbnN0IGRhdGVNYXggPSBkYXRlQWRhcHRlci5kZXNlcmlhbGl6ZShtYXgpO1xuXG4gIGlmIChcbiAgICAoZGF0ZUFkYXB0ZXIuaXNWYWxpZChkYXRlTWluKSAmJiBkYXRlQWRhcHRlci5jb21wYXJlRGF0ZShkYXRlLCBkYXRlTWluISkgPCAwKSB8fFxuICAgIChkYXRlQWRhcHRlci5pc1ZhbGlkKGRhdGVNYXgpICYmIGRhdGVBZGFwdGVyLmNvbXBhcmVEYXRlKGRhdGUsIGRhdGVNYXghKSA+IDApXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBkYXRlRmlsdGVyID8gZGF0ZUZpbHRlcihkYXRlKSA6IHRydWU7XG59XG5cbmV4cG9ydCBjb25zdCBkYXRlcGlja2VyQ29udHJvbFJlZ2lzdGVyZWRFdmVudEZhY3RvcnkgPSAoKTogQ3VzdG9tRXZlbnQgPT5cbiAgbmV3IEN1c3RvbUV2ZW50KCdkYXRlcGlja2VyQ29udHJvbFJlZ2lzdGVyZWQnLCB7XG4gICAgYnViYmxlczogZmFsc2UsXG4gICAgY29tcG9zZWQ6IHRydWUsXG4gIH0pO1xuXG4vKipcbiAqIENvbWJpbmVkIHdpdGggYSBuYXRpdmUgaW5wdXQsIGl0IGRpc3BsYXlzIHRoZSBpbnB1dCdzIHZhbHVlIGFzIGEgZm9ybWF0dGVkIGRhdGUuXG4gKlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkQ2hhbmdlIC0gRGVwcmVjYXRlZC4gdXNlZCBmb3IgUmVhY3QuIFdpbGwgcHJvYmFibHkgYmUgcmVtb3ZlZCBvbmNlIFJlYWN0IDE5IGlzIGF2YWlsYWJsZS5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGNoYW5nZSAtIE5vdGlmaWVzIHRoYXQgdGhlIGNvbm5lY3RlZCBpbnB1dCBoYXMgY2hhbmdlcy5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8U2JiSW5wdXRVcGRhdGVFdmVudD59IGlucHV0VXBkYXRlZCAtIE5vdGlmaWVzIHRoYXQgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGlucHV0IGNvbm5lY3RlZCB0byB0aGUgZGF0ZXBpY2tlciBoYXZlIGNoYW5nZXMuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkYXRlUGlja2VyVXBkYXRlZCAtIE5vdGlmaWVzIHRoYXQgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGRhdGVwaWNrZXIgaGF2ZSBjaGFuZ2VzLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDxTYmJWYWxpZGF0aW9uQ2hhbmdlRXZlbnQ+fSB2YWxpZGF0aW9uQ2hhbmdlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGludGVybmFsIHZhbGlkYXRpb24gc3RhdGUgY2hhbmdlcy5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLWRhdGVwaWNrZXInKVxuY2xhc3MgU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VCA9IERhdGU+IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBkaWRDaGFuZ2U6ICdkaWRDaGFuZ2UnLFxuICAgIGNoYW5nZTogJ2NoYW5nZScsXG4gICAgaW5wdXRVcGRhdGVkOiAnaW5wdXRVcGRhdGVkJyxcbiAgICBkYXRlUGlja2VyVXBkYXRlZDogJ2RhdGVQaWNrZXJVcGRhdGVkJyxcbiAgICB2YWxpZGF0aW9uQ2hhbmdlOiAndmFsaWRhdGlvbkNoYW5nZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqIElmIHNldCB0byB0cnVlLCB0d28gbW9udGhzIGFyZSBkaXNwbGF5ZWQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB3aWRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIEEgZnVuY3Rpb24gdXNlZCB0byBmaWx0ZXIgb3V0IGRhdGVzLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pIHB1YmxpYyBhY2Nlc3NvciBkYXRlRmlsdGVyOiAoZGF0ZTogVCB8IG51bGwpID0+IGJvb2xlYW4gPSAoKSA9PlxuICAgIHRydWU7XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdXNlZCB0byBwYXJzZSBzdHJpbmcgdmFsdWUgaW50byBkYXRlcy5cbiAgICogQGRlcHJlY2F0ZWQgTm8gbG9uZ2VyIHJlcXVpcmVkLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KSBwdWJsaWMgYWNjZXNzb3IgZGF0ZVBhcnNlcjogKCh2YWx1ZTogc3RyaW5nKSA9PiBUKSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHVzZWQgdG8gZm9ybWF0IGRhdGVzIGludG8gdGhlIHByZWZlcnJlZCBzdHJpbmcgZm9ybWF0LlxuICAgKiBAZGVwcmVjYXRlZCBObyBsb25nZXIgcmVxdWlyZWQuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pIHB1YmxpYyBhY2Nlc3NvciBmb3JtYXQ6ICgoZGF0ZTogVCkgPT4gc3RyaW5nKSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBSZWZlcmVuY2Ugb2YgdGhlIG5hdGl2ZSBpbnB1dCBjb25uZWN0ZWQgdG8gdGhlIGRhdGVwaWNrZXIuICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyBhY2Nlc3NvciBpbnB1dDogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvLyBUT0RPOiBDaGFuZ2UgdW5kZWZpbmVkIHRvIG51bGwgYXMgYSBicmVha2luZyBjaGFuZ2UuXG4gIC8qKiBBIGNvbmZpZ3VyZWQgZGF0ZSB3aGljaCBhY3RzIGFzIHRoZSBjdXJyZW50IGRhdGUgaW5zdGVhZCBvZiB0aGUgcmVhbCBjdXJyZW50IGRhdGUuIFJlY29tbWVuZGVkIGZvciB0ZXN0aW5nIHB1cnBvc2VzLiAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgc2V0IG5vdyh2YWx1ZTogU2JiRGF0ZUxpa2U8VD4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9ub3cgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwodGhpcy5fZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpKTtcbiAgfVxuICBwdWJsaWMgZ2V0IG5vdygpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5fbm93ID8/IHRoaXMuX2RhdGVBZGFwdGVyLnRvZGF5KCk7XG4gIH1cbiAgcHJpdmF0ZSBfbm93PzogVCB8IG51bGw7XG5cbiAgLyoqIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgZGF0ZSBhcyBhIERhdGUgb3IgY3VzdG9tIGRhdGUgcHJvdmlkZXIgaW5zdGFuY2UuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSlcbiAgcHVibGljIHNldCB2YWx1ZUFzRGF0ZSh2YWx1ZTogU2JiRGF0ZUxpa2U8VD4gfCBudWxsKSB7XG4gICAgdGhpcy5fdmFsdWVBc0RhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwodGhpcy5fZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpKTtcbiAgICBpZiAodGhpcy5fdHJ5QXBwbHlGb3JtYXRUb0lucHV0KCkpIHtcbiAgICAgIC8qIEVtaXQgYmx1ciBldmVudCB3aGVuIHZhbHVlIGlzIGNoYW5nZWQgcHJvZ3JhbW1hdGljYWxseSB0byBub3RpZnlcbiAgICAgIGZyYW1ld29ya3MgdGhhdCByZWx5IG9uIHRoYXQgZXZlbnQgdG8gdXBkYXRlIGZvcm0gc3RhdHVzLiAqL1xuICAgICAgdGhpcy5faW5wdXRFbGVtZW50IS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnYmx1cicsIHsgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHZhbHVlQXNEYXRlKCk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVBc0RhdGUgPz8gbnVsbDtcbiAgfVxuICBwcml2YXRlIF92YWx1ZUFzRGF0ZT86IFQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBvbmx5IHVzZWQgZm9yIFJlYWN0LiBXaWxsIHByb2JhYmx5IGJlIHJlbW92ZWQgb25jZSBSZWFjdCAxOSBpcyBhdmFpbGFibGUuXG4gICAqL1xuICBwcml2YXRlIF9kaWRDaGFuZ2U6IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIodGhpcywgU2JiRGF0ZXBpY2tlckVsZW1lbnQuZXZlbnRzLmRpZENoYW5nZSwge1xuICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgfSk7XG5cbiAgLyoqIE5vdGlmaWVzIHRoYXQgdGhlIGNvbm5lY3RlZCBpbnB1dCBoYXMgY2hhbmdlcy4gKi9cbiAgcHJpdmF0ZSBfY2hhbmdlOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKHRoaXMsIFNiYkRhdGVwaWNrZXJFbGVtZW50LmV2ZW50cy5jaGFuZ2UsIHtcbiAgICBidWJibGVzOiB0cnVlLFxuICB9KTtcblxuICAvKiogTm90aWZpZXMgdGhhdCB0aGUgYXR0cmlidXRlcyBvZiB0aGUgaW5wdXQgY29ubmVjdGVkIHRvIHRoZSBkYXRlcGlja2VyIGhhdmUgY2hhbmdlcy4gKi9cbiAgcHJpdmF0ZSBfaW5wdXRVcGRhdGVkOiBFdmVudEVtaXR0ZXI8U2JiSW5wdXRVcGRhdGVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiRGF0ZXBpY2tlckVsZW1lbnQuZXZlbnRzLmlucHV0VXBkYXRlZCxcbiAgICB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUgfSxcbiAgKTtcblxuICAvKiogTm90aWZpZXMgdGhhdCB0aGUgYXR0cmlidXRlcyBvZiB0aGUgZGF0ZXBpY2tlciBoYXZlIGNoYW5nZXMuICovXG4gIHByaXZhdGUgX2RhdGVQaWNrZXJVcGRhdGVkOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiRGF0ZXBpY2tlckVsZW1lbnQuZXZlbnRzLmRhdGVQaWNrZXJVcGRhdGVkLFxuICAgIHtcbiAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgIH0sXG4gICk7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBpbnRlcm5hbCB2YWxpZGF0aW9uIHN0YXRlIGNoYW5nZXMuICovXG4gIHByaXZhdGUgX3ZhbGlkYXRpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxTYmJWYWxpZGF0aW9uQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYkRhdGVwaWNrZXJFbGVtZW50LmV2ZW50cy52YWxpZGF0aW9uQ2hhbmdlLFxuICApO1xuXG4gIEBzdGF0ZSgpXG4gIHByaXZhdGUgYWNjZXNzb3IgX2lucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9pbnB1dEVsZW1lbnRQbGFjZWhvbGRlck11dGFibGUgPSBmYWxzZTtcblxuICBwcml2YXRlIF9kYXRlUGlja2VyQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcblxuICBwcml2YXRlIF9pbnB1dE9ic2VydmVyID0gIWlzU2VydmVyXG4gICAgPyBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zTGlzdCkgPT4ge1xuICAgICAgICB0aGlzLl9lbWl0SW5wdXRVcGRhdGVkKCk7XG4gICAgICAgIC8vIFRPRE86IERlY2lkZSB3aGV0aGVyIHRvIHJlbW92ZSB0aGlzIGxvZ2ljIGJ5IGFkZGluZyBhIHZhbHVlIHByb3BlcnR5IHRvIHRoZSBkYXRlcGlja2VyLlxuICAgICAgICBpZiAodGhpcy5faW5wdXRFbGVtZW50ICYmIG11dGF0aW9uc0xpc3Q/LnNvbWUoKGUpID0+IGUuYXR0cmlidXRlTmFtZSA9PT0gJ3ZhbHVlJykpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX2lucHV0RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJyk7XG4gICAgICAgICAgdGhpcy52YWx1ZUFzRGF0ZSA9IHRoaXMuX2RhdGVBZGFwdGVyLnBhcnNlKHZhbHVlLCB0aGlzLm5vdykgPz8gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgOiBudWxsO1xuXG4gIHByaXZhdGUgX2RhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxUPiA9IHJlYWRDb25maWcoKS5kYXRldGltZT8uZGF0ZUFkYXB0ZXIgPz8gZGVmYXVsdERhdGVBZGFwdGVyO1xuXG4gIHByaXZhdGUgX2Fib3J0ID0gbmV3IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpLndpdGhIYW5kbGVyKCgpID0+IHtcbiAgICBpZiAodGhpcy5faW5wdXRFbGVtZW50KSB7XG4gICAgICBpZiAodGhpcy5faW5wdXRFbGVtZW50UGxhY2Vob2xkZXJNdXRhYmxlKSB7XG4gICAgICAgIHRoaXMuX2lucHV0RWxlbWVudC5wbGFjZWhvbGRlciA9IGkxOG5EYXRlUGlja2VyUGxhY2Vob2xkZXJbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICB9XG4gICAgICBpZiAodGhpcy52YWx1ZUFzRGF0ZSkge1xuICAgICAgICB0aGlzLl9pbnB1dEVsZW1lbnQudmFsdWUgPSB0aGlzLl9mb3JtYXQodGhpcy52YWx1ZUFzRGF0ZSk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2RhdGVwaWNrZXJDb250cm9sUmVnaXN0ZXJlZCcsICgpID0+IHRoaXMuX2VtaXRJbnB1dFVwZGF0ZWQoKSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9hYm9ydC5zaWduYWwsXG4gICAgfSk7XG4gICAgdGhpcy5fYXR0YWNoSW5wdXQoKTtcbiAgICBpZiAodGhpcy5faW5wdXRFbGVtZW50KSB7XG4gICAgICB0aGlzLl9lbWl0SW5wdXRVcGRhdGVkKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdpbnB1dCcpKSB7XG4gICAgICB0aGlzLl9hdHRhY2hJbnB1dCgpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3dpZGUnKSB8fFxuICAgICAgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkYXRlRmlsdGVyJykgfHxcbiAgICAgIGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbm93JylcbiAgICApIHtcbiAgICAgIHRoaXMuX2RhdGVQaWNrZXJVcGRhdGVkLmVtaXQoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygndmFsdWVBc0RhdGUnKSkge1xuICAgICAgdGhpcy5fc2V0QXJpYUxpdmVNZXNzYWdlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5faW5wdXRPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuX2RhdGVQaWNrZXJDb250cm9sbGVyPy5hYm9ydCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIHRoaXMuX3NldEFyaWFMaXZlTWVzc2FnZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGlucHV0IHZhbHVlIHdpdGggdGhlIGNvcnJlY3QgZGF0ZSBmb3JtYXQuXG4gICAqIEBkZXByZWNhdGVkIFVzZSBwcm9wZXJ0eSB2YWx1ZUFzRGF0ZSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIGdldFZhbHVlQXNEYXRlKCk6IFQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnZhbHVlQXNEYXRlID8/IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGlucHV0IHZhbHVlIHRvIHRoZSBjb3JyZWN0bHkgZm9ybWF0dGVkIHZhbHVlLlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgcHJvcGVydHkgdmFsdWVBc0RhdGUgaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBzZXRWYWx1ZUFzRGF0ZShkYXRlOiBTYmJEYXRlTGlrZTxUPik6IHZvaWQge1xuICAgIHRoaXMudmFsdWVBc0RhdGUgPSBkYXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBXaGV0aGVyIGEgY3VzdG9tIG5vdyBpcyBjb25maWd1cmVkLlxuICAgKi9cbiAgcHVibGljIGhhc0N1c3RvbU5vdygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9ub3c7XG4gIH1cblxuICBwcml2YXRlIF9hdHRhY2hJbnB1dCgpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IGZpbmRJbnB1dCh0aGlzLCB0aGlzLmlucHV0KTtcbiAgICBpZiAodGhpcy5faW5wdXRFbGVtZW50ID09PSBpbnB1dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAodGhpcy5faW5wdXRFbGVtZW50KSB7XG4gICAgICB0aGlzLl9kYXRlUGlja2VyQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICAgIHRoaXMuX2lucHV0T2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQgPSBpbnB1dDtcbiAgICBpZiAoaW5wdXQpIHtcbiAgICAgIHRoaXMuX2RhdGVQaWNrZXJDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgICAgdGhpcy5faW5wdXRPYnNlcnZlcj8ub2JzZXJ2ZShpbnB1dCwge1xuICAgICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnZGlzYWJsZWQnLCAncmVhZG9ubHknLCAnbWluJywgJ21heCcsICd2YWx1ZSddLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX2lucHV0RWxlbWVudFBsYWNlaG9sZGVyTXV0YWJsZSA9ICFpbnB1dC5wbGFjZWhvbGRlcjtcbiAgICAgIGlucHV0LnR5cGUgPSAndGV4dCc7XG4gICAgICBpZiAodGhpcy5faW5wdXRFbGVtZW50UGxhY2Vob2xkZXJNdXRhYmxlKSB7XG4gICAgICAgIGlucHV0LnBsYWNlaG9sZGVyID0gaTE4bkRhdGVQaWNrZXJQbGFjZWhvbGRlclt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb3B0aW9uczogQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMgPSB7IHNpZ25hbDogdGhpcy5fZGF0ZVBpY2tlckNvbnRyb2xsZXIuc2lnbmFsIH07XG4gICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsICgpID0+IHRoaXMuX3BhcnNlSW5wdXQoKSwgb3B0aW9ucyk7XG4gICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoKSA9PiB0aGlzLl9oYW5kbGVJbnB1dENoYW5nZSgpLCBvcHRpb25zKTtcbiAgICAgIHRoaXMuX3BhcnNlSW5wdXQodHJ1ZSk7XG4gICAgICB0aGlzLl90cnlBcHBseUZvcm1hdFRvSW5wdXQoKTtcbiAgICAgIHRoaXMuX3ZhbGlkYXRlRGF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2VtaXRJbnB1dFVwZGF0ZWQoKTogdm9pZCB7XG4gICAgY29uc3QgeyBkaXNhYmxlZCwgcmVhZE9ubHk6IHJlYWRvbmx5LCBtaW4sIG1heCB9ID0gdGhpcy5faW5wdXRFbGVtZW50ID8/IHt9O1xuICAgIHRoaXMuX2lucHV0VXBkYXRlZC5lbWl0KHsgZGlzYWJsZWQsIHJlYWRvbmx5LCBtaW4sIG1heCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUlucHV0Q2hhbmdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl90cnlBcHBseUZvcm1hdFRvSW5wdXQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl92YWxpZGF0ZURhdGUoKTtcbiAgICB0aGlzLl9zZXRBcmlhTGl2ZU1lc3NhZ2UoKTtcbiAgICB0aGlzLl9jaGFuZ2UuZW1pdCgpO1xuICAgIHRoaXMuX2RpZENoYW5nZS5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIF90cnlBcHBseUZvcm1hdFRvSW5wdXQoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLl9pbnB1dEVsZW1lbnQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3JtYXR0ZWREYXRlID0gdGhpcy52YWx1ZUFzRGF0ZSA/IHRoaXMuX2Zvcm1hdCh0aGlzLnZhbHVlQXNEYXRlISkgOiAnJztcbiAgICBpZiAoZm9ybWF0dGVkRGF0ZSAmJiB0aGlzLl9pbnB1dEVsZW1lbnQudmFsdWUgIT09IGZvcm1hdHRlZERhdGUpIHtcbiAgICAgIHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZSA9IGZvcm1hdHRlZERhdGU7XG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICAgIHRoaXMuX2lucHV0RWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIF92YWxpZGF0ZURhdGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pbnB1dEVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpc0VtcHR5T3JWYWxpZCA9XG4gICAgICAhdGhpcy5faW5wdXRFbGVtZW50LnZhbHVlIHx8XG4gICAgICAoISF0aGlzLnZhbHVlQXNEYXRlICYmXG4gICAgICAgIGlzRGF0ZUF2YWlsYWJsZShcbiAgICAgICAgICB0aGlzLnZhbHVlQXNEYXRlLFxuICAgICAgICAgIHRoaXMuZGF0ZUZpbHRlcixcbiAgICAgICAgICB0aGlzLl9pbnB1dEVsZW1lbnQ/Lm1pbixcbiAgICAgICAgICB0aGlzLl9pbnB1dEVsZW1lbnQ/Lm1heCxcbiAgICAgICAgKSk7XG4gICAgY29uc3Qgd2FzVmFsaWQgPSAhdGhpcy5faW5wdXRFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGF0YS1zYmItaW52YWxpZCcpO1xuICAgIHRoaXMuX2lucHV0RWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtc2JiLWludmFsaWQnLCAhaXNFbXB0eU9yVmFsaWQpO1xuICAgIGlmICh3YXNWYWxpZCAhPT0gaXNFbXB0eU9yVmFsaWQpIHtcbiAgICAgIHRoaXMuX3ZhbGlkYXRpb25DaGFuZ2UuZW1pdCh7IHZhbGlkOiBpc0VtcHR5T3JWYWxpZCB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9wYXJzZUlucHV0KGRlc2VyaWFsaXplQXNGYWxsYmFjayA9IGZhbHNlKTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLl9pbnB1dEVsZW1lbnQhLnZhbHVlO1xuICAgIGNvbnN0IHBhcnNlID0gdGhpcy5kYXRlUGFyc2VyID8/ICgodjogc3RyaW5nKSA9PiB0aGlzLl9kYXRlQWRhcHRlci5wYXJzZSh2LCB0aGlzLm5vdykpO1xuICAgIC8vIFdlIGFyZSBhc3NpZ25pbmcgZGlyZWN0bHkgdG8gdGhlIHByaXZhdGUgYmFja2luZyBwcm9wZXJ0eSBvZiB2YWx1ZUFzRGF0ZVxuICAgIC8vIGFzIHdlIGRvbid0IHdhbnQgdG8gdHJpZ2dlciBhIGJsdXIgZXZlbnQgZHVyaW5nIHRoaXMgdGltZS5cbiAgICB0aGlzLl92YWx1ZUFzRGF0ZSA9IHRoaXMuX2RhdGVBZGFwdGVyLmdldFZhbGlkRGF0ZU9yTnVsbChwYXJzZSh2YWx1ZSkpO1xuICAgIGlmIChkZXNlcmlhbGl6ZUFzRmFsbGJhY2sgJiYgIXRoaXMuX3ZhbHVlQXNEYXRlKSB7XG4gICAgICB0aGlzLl92YWx1ZUFzRGF0ZSA9IHRoaXMuX2RhdGVBZGFwdGVyLmdldFZhbGlkRGF0ZU9yTnVsbChcbiAgICAgICAgdGhpcy5fZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9mb3JtYXQoZGF0ZTogVCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0ID8gdGhpcy5mb3JtYXQoZGF0ZSkgOiB0aGlzLl9kYXRlQWRhcHRlci5mb3JtYXQoZGF0ZSk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRBcmlhTGl2ZU1lc3NhZ2UoKTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyRWxlbWVudDogSFRNTFBhcmFncmFwaEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkID1cbiAgICAgIHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3Rvcj8uPEhUTUxQYXJhZ3JhcGhFbGVtZW50PignI3N0YXR1cy1jb250YWluZXInKTtcblxuICAgIGlmICghY29udGFpbmVyRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMudmFsdWVBc0RhdGUpIHtcbiAgICAgIGNvbnRhaW5lckVsZW1lbnQuaW5uZXJUZXh0ID0gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5mb3JtYXQodGhpcy52YWx1ZUFzRGF0ZSwgeyB3ZWVrZGF5U3R5bGU6ICdsb25nJyB9KTtcbiAgICAgIGNvbnRhaW5lckVsZW1lbnQuaW5uZXJUZXh0ID0gYCR7aTE4bkRhdGVDaGFuZ2VkVG9bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19ICR7ZGF0ZX1gO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYDxwIGlkPVwic3RhdHVzLWNvbnRhaW5lclwiIHJvbGU9XCJzdGF0dXNcIj48L3A+YDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWRhdGVwaWNrZXInOiBTYmJEYXRlcGlja2VyRWxlbWVudDtcbiAgfVxuXG4gIGludGVyZmFjZSBHbG9iYWxFdmVudEhhbmRsZXJzRXZlbnRNYXAge1xuICAgIGlucHV0VXBkYXRlZDogQ3VzdG9tRXZlbnQ8U2JiSW5wdXRVcGRhdGVFdmVudD47XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJTYmJEYXRlcGlja2VyRWxlbWVudCIsIl9hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBdUNnQixTQUFBLGNBQ2QsU0FDQSxTQUE4Qjs7QUFFOUIsTUFBSSxDQUFDLFNBQVM7QUFDWixZQUFPLG1CQUNKLFlBREksaUNBQ00sc0JBRE4sbUJBRUgsY0FBdUM7QUFBQSxFQUFnQjtBQUc3RCxTQUFPLHNCQUErQyxPQUFPO0FBQy9EO0FBV00sU0FBVSxpQkFDZCxNQUNBLE9BQ0EsWUFDQSxhQUEyQjtBQUUzQixNQUFJLGdCQUFnQixZQUFZLGdCQUFnQixNQUFNLEtBQUs7QUFFM0QsTUFBSSxZQUFZO0FBQ1AsV0FBQSxDQUFDLFdBQVcsYUFBYSxHQUFHO0FBQ2pCLHNCQUFBLFlBQVksZ0JBQWdCLGVBQWUsS0FBSztBQUFBLElBQUE7QUFBQSxFQUNsRTtBQUdLLFNBQUE7QUFDVDtBQVlNLFNBQVUsMEJBQ2QsTUFDQSxZQUNBLGFBQ0EsS0FBMkI7QUFFM0IsUUFBTSxlQUFlLGlCQUFpQixNQUFNLElBQUksWUFBWSxXQUFXO0FBQ2pFLFFBQUEsVUFBVSxZQUFZLFlBQVksR0FBRztBQUd6QyxNQUFBLENBQUMsV0FDQSxZQUFZLFFBQVEsT0FBTyxLQUFLLFlBQVksWUFBWSxjQUFjLE9BQU8sS0FBSyxHQUNuRjtBQUNPLFdBQUE7QUFBQSxFQUFBO0FBRUYsU0FBQTtBQUNUO0FBWU0sU0FBVSxzQkFDZCxNQUNBLFlBQ0EsYUFDQSxLQUEyQjtBQUUzQixRQUFNLFdBQVcsaUJBQWlCLE1BQU0sR0FBRyxZQUFZLFdBQVc7QUFDNUQsUUFBQSxVQUFVLFlBQVksWUFBWSxHQUFHO0FBR3pDLE1BQUEsQ0FBQyxXQUNBLFlBQVksUUFBUSxPQUFPLEtBQUssWUFBWSxZQUFZLFVBQVUsT0FBTyxLQUFLLEdBQy9FO0FBQ08sV0FBQTtBQUFBLEVBQUE7QUFFRixTQUFBO0FBQ1Q7QUFZTSxTQUFVLGdCQUNkLE1BQ0EsWUFDQSxLQUNBLEtBQXVDOztBQUd2QyxRQUFNLGdCQUE4QixnQkFBQSxFQUFhLGFBQWIsbUJBQXVCLGdCQUFlO0FBQ3BFLFFBQUEsVUFBVSxZQUFZLFlBQVksR0FBRztBQUNyQyxRQUFBLFVBQVUsWUFBWSxZQUFZLEdBQUc7QUFFM0MsTUFDRyxZQUFZLFFBQVEsT0FBTyxLQUFLLFlBQVksWUFBWSxNQUFNLE9BQVEsSUFBSSxLQUMxRSxZQUFZLFFBQVEsT0FBTyxLQUFLLFlBQVksWUFBWSxNQUFNLE9BQVEsSUFBSSxHQUMzRTtBQUNPLFdBQUE7QUFBQSxFQUFBO0FBR0YsU0FBQSxhQUFhLFdBQVcsSUFBSSxJQUFJO0FBQ3pDO0FBRU8sTUFBTSwwQ0FBMEMsTUFDckQsSUFBSSxZQUFZLCtCQUErQjtBQUFBLEVBQzdDLFNBQVM7QUFBQSxFQUNULFVBQVU7QUFDWCxDQUFBO0lBYUcsd0JBQW9CLE1BQUE7OzBCQUR6QixjQUFjLGdCQUFnQixDQUFDOzs7O29CQUNhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQVJBLE1BQUFBLHlCQUFBLG1CQUFRLFlBQVU7QUFBQTs7O0FBYXJEO0FBR2dDO0FBT0E7QUFNQTtBQUdwQjtBQWlFWjtBQWpHSSx5QkFBQSx5QkFBQSxrQkFBQSxNQUFBLDBCQUFBLEdBYTRCLGtCQUFBLE1BQUEsb0JBQUEsS0FBSztBQUdXLHlCQUFBLCtCQUFBLGtCQUFBLE1BQUEsdUJBQUEsR0FBQSxrQkFBQSxNQUFBLDBCQUEwQyxNQUN4RixJQUFJO0FBTTBDLHlCQUFBLCtCQUFBLGtCQUFBLE1BQUEsNkJBQUEsR0FBQSxrQkFBQSxNQUFBLDBCQUE0QyxJQUFJO0FBTWhELHlCQUFBLDJCQUFBLGtCQUFBLE1BQUEsNkJBQUEsR0FBQSxrQkFBQSxNQUFBLHNCQUF1QyxJQUFJO0FBRy9ELHlCQUFBLDBCQUFBLGtCQUFBLE1BQUEseUJBQUEsR0FBQSxrQkFBQSxNQUFBLHFCQUFxQyxJQUFJO0FBVzdELFdBQUEsT0FBZ0Isa0JBQUEsTUFBQSx3QkFBQTtBQW9CaEIsV0FBVSxhQUFpQixJQUFJLGFBQWEsTUFBTUEsc0JBQXFCLE9BQU8sV0FBVztBQUFBLFFBQy9GLFNBQVM7QUFBQSxRQUNULFlBQVk7QUFBQSxNQUFBLENBQ2I7QUFHTyxXQUFPLFVBQWlCLElBQUksYUFBYSxNQUFNQSxzQkFBcUIsT0FBTyxRQUFRO0FBQUEsUUFDekYsU0FBUztBQUFBLE1BQUEsQ0FDVjtBQUdPLFdBQWEsZ0JBQXNDLElBQUksYUFDN0QsTUFDQUEsc0JBQXFCLE9BQU8sY0FDNUIsRUFBRSxTQUFTLE1BQU0sWUFBWSxLQUFBLENBQU07QUFJN0IsV0FBa0IscUJBQWlCLElBQUksYUFDN0MsTUFDQUEsc0JBQXFCLE9BQU8sbUJBQzVCO0FBQUEsUUFDRSxTQUFTO0FBQUEsUUFDVCxZQUFZO0FBQUEsTUFBQSxDQUNiO0FBSUssV0FBQSxvQkFBNEQsSUFBSSxhQUN0RSxNQUNBQSxzQkFBcUIsT0FBTyxnQkFBZ0I7QUFJN0IseUJBQUEsaUNBQUEsa0JBQUEsTUFBQSw2QkFBeUMsSUFBSTtBQUN0RCxXQUErQixtQ0FBQSxrQkFBQSxNQUFBLGdDQUFBLEdBQUc7QUFJbEMsV0FBYyxpQkFBRyxDQUFDLFdBQ3RCLElBQUksaUJBQWlCLENBQUMsa0JBQWlCO0FBQ3JDLGFBQUssa0JBQWlCO0FBRWxCLFlBQUEsS0FBSyxrQkFBaUIsK0NBQWUsS0FBSyxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsV0FBVTtBQUNqRixnQkFBTSxRQUFRLEtBQUssY0FBYyxhQUFhLE9BQU87QUFDckQsZUFBSyxjQUFjLEtBQUssYUFBYSxNQUFNLE9BQU8sS0FBSyxHQUFHLEtBQUs7QUFBQSxRQUFBO0FBQUEsTUFFbEUsQ0FBQSxJQUNEO0FBRUksV0FBWSxpQkFBbUJDLE1BQUEsV0FBYSxFQUFBLGFBQWIsZ0JBQUFBLElBQXVCLGdCQUFlO0FBRXJFLFdBQUEsU0FBUyxJQUFJLDRCQUE0QixJQUFJO0FBQzdDLFdBQVMsWUFBRyxJQUFJLHNCQUFzQixJQUFJLEVBQUUsWUFBWSxNQUFLO0FBQ25FLFlBQUksS0FBSyxlQUFlO0FBQ3RCLGNBQUksS0FBSyxpQ0FBaUM7QUFDeEMsaUJBQUssY0FBYyxjQUFjLDBCQUEwQixLQUFLLFVBQVUsT0FBTztBQUFBLFVBQUE7QUFFbkYsY0FBSSxLQUFLLGFBQWE7QUFDcEIsaUJBQUssY0FBYyxRQUFRLEtBQUssUUFBUSxLQUFLLFdBQVc7QUFBQSxVQUFBO0FBQUEsUUFDMUQ7QUFBQSxNQUNGLENBQ0Q7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQWhIRCxJQUFnQixPQUFzQjtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBdEMsSUFBZ0IsS0FBc0IsT0FBQTtBQUFBLHlCQUFBLHdCQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFHTixJQUFnQixhQUN6QztBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFEeUIsSUFBZ0IsV0FDekMsT0FBQTtBQUFBLHlCQUFBLDhCQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFNeUIsSUFBZ0IsYUFBaUQ7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQWpFLElBQWdCLFdBQWlELE9BQUE7QUFBQSx5QkFBQSw4QkFBQTtBQUFBLElBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBTWpFLElBQWdCLFNBQTRDO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUE1RCxJQUFnQixPQUE0QyxPQUFBO0FBQUEseUJBQUEsMEJBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUdoRixJQUFnQixRQUEwQztBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBMUQsSUFBZ0IsTUFBMEMsT0FBQTtBQUFBLHlCQUFBLHlCQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUE7QUFBQSxJQUt0RSxJQUFXLElBQUksT0FBaUM7QUFDekMsV0FBQSxPQUFPLEtBQUssYUFBYSxtQkFBbUIsS0FBSyxhQUFhLFlBQVksS0FBSyxDQUFDO0FBQUEsSUFBQTtBQUFBLElBRXZGLElBQVcsTUFBRztBQUNaLGFBQU8sS0FBSyxRQUFRLEtBQUssYUFBYSxNQUFLO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFNN0MsSUFBVyxZQUFZLE9BQTRCO0FBQzVDLFdBQUEsZUFBZSxLQUFLLGFBQWEsbUJBQW1CLEtBQUssYUFBYSxZQUFZLEtBQUssQ0FBQztBQUN6RixVQUFBLEtBQUssMEJBQTBCO0FBRzVCLGFBQUEsY0FBZSxjQUFjLElBQUksTUFBTSxRQUFRLEVBQUUsVUFBVSxLQUFNLENBQUEsQ0FBQztBQUFBLE1BQUE7QUFBQSxJQUN6RTtBQUFBLElBRUYsSUFBVyxjQUFXO0FBQ3BCLGFBQU8sS0FBSyxnQkFBZ0I7QUFBQSxJQUFBO0FBQUEsSUF5QzlCLElBQWlCLGdCQUE4QztBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBL0QsSUFBaUIsY0FBOEMsT0FBQTtBQUFBLHlCQUFBLGlDQUFBO0FBQUEsSUFBQTtBQUFBLElBOEIvQyxvQkFBaUI7QUFDL0IsWUFBTSxrQkFBaUI7QUFDdkIsV0FBSyxpQkFBaUIsK0JBQStCLE1BQU0sS0FBSyxxQkFBcUI7QUFBQSxRQUNuRixRQUFRLEtBQUssT0FBTztBQUFBLE1BQUEsQ0FDckI7QUFDRCxXQUFLLGFBQVk7QUFDakIsVUFBSSxLQUFLLGVBQWU7QUFDdEIsYUFBSyxrQkFBaUI7QUFBQSxNQUFBO0FBQUEsSUFDeEI7QUFBQSxJQUdjLFdBQVcsbUJBQXVDO0FBQ2hFLFlBQU0sV0FBVyxpQkFBaUI7QUFFOUIsVUFBQSxrQkFBa0IsSUFBSSxPQUFPLEdBQUc7QUFDbEMsYUFBSyxhQUFZO0FBQUEsTUFBQTtBQUdqQixVQUFBLGtCQUFrQixJQUFJLE1BQU0sS0FDNUIsa0JBQWtCLElBQUksWUFBWSxLQUNsQyxrQkFBa0IsSUFBSSxLQUFLLEdBQzNCO0FBQ0EsYUFBSyxtQkFBbUI7O0FBRXRCLFVBQUEsa0JBQWtCLElBQUksYUFBYSxHQUFHO0FBQ3hDLGFBQUssb0JBQW1CO0FBQUEsTUFBQTtBQUFBLElBQzFCO0FBQUEsSUFHYyx1QkFBb0I7O0FBQ2xDLFlBQU0scUJBQW9CO0FBQzFCLE9BQUFBLE1BQUEsS0FBSyxtQkFBTCxnQkFBQUEsSUFBcUI7QUFDckIsaUJBQUssMEJBQUwsbUJBQTRCO0FBQUE7SUFHWCxhQUFhLG1CQUF1QztBQUNyRSxZQUFNLGFBQWEsaUJBQWlCO0FBQ3BDLFdBQUssb0JBQW1CO0FBQUEsSUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFPbkIsaUJBQWM7QUFDbkIsYUFBTyxLQUFLLGVBQWU7QUFBQSxJQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQU90QixlQUFlLE1BQW9CO0FBQ3hDLFdBQUssY0FBYztBQUFBLElBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBT2QsZUFBWTtBQUNWLGFBQUEsQ0FBQyxDQUFDLEtBQUs7QUFBQSxJQUFBO0FBQUEsSUFHUixlQUFZOztBQUNsQixZQUFNLFFBQVEsVUFBVSxNQUFNLEtBQUssS0FBSztBQUNwQyxVQUFBLEtBQUssa0JBQWtCLE9BQU87QUFDaEM7QUFBQSxNQUFBLFdBQ1MsS0FBSyxlQUFlO0FBQzdCLFNBQUFBLE1BQUEsS0FBSywwQkFBTCxnQkFBQUEsSUFBNEI7QUFDNUIsbUJBQUssbUJBQUwsbUJBQXFCO0FBQUE7QUFHdkIsV0FBSyxnQkFBZ0I7QUFDckIsVUFBSSxPQUFPO0FBQ0osYUFBQSx3QkFBd0IsSUFBSTtBQUM1QixtQkFBQSxtQkFBQSxtQkFBZ0IsUUFBUSxPQUFPO0FBQUEsVUFDbEMsaUJBQWlCLENBQUMsWUFBWSxZQUFZLE9BQU8sT0FBTyxPQUFPO0FBQUEsUUFBQTtBQUc1RCxhQUFBLGtDQUFrQyxDQUFDLE1BQU07QUFDOUMsY0FBTSxPQUFPO0FBQ2IsWUFBSSxLQUFLLGlDQUFpQztBQUN4QyxnQkFBTSxjQUFjLDBCQUEwQixLQUFLLFVBQVUsT0FBTztBQUFBLFFBQUE7QUFHdEUsY0FBTSxVQUFtQyxFQUFFLFFBQVEsS0FBSyxzQkFBc0IsT0FBTTtBQUNwRixjQUFNLGlCQUFpQixTQUFTLE1BQU0sS0FBSyxlQUFlLE9BQU87QUFDakUsY0FBTSxpQkFBaUIsVUFBVSxNQUFNLEtBQUssc0JBQXNCLE9BQU87QUFDekUsYUFBSyxZQUFZLElBQUk7QUFDckIsYUFBSyx1QkFBc0I7QUFDM0IsYUFBSyxjQUFhO0FBQUEsTUFBQTtBQUFBLElBQ3BCO0FBQUEsSUFHTSxvQkFBaUI7QUFDakIsWUFBQSxFQUFFLFVBQVUsVUFBVSxVQUFVLEtBQUssUUFBUSxLQUFLLGlCQUFpQjtBQUN6RSxXQUFLLGNBQWMsS0FBSyxFQUFFLFVBQVUsVUFBVSxLQUFLLEtBQUs7QUFBQSxJQUFBO0FBQUEsSUFHbEQscUJBQWtCO0FBQ3BCLFVBQUEsS0FBSywwQkFBMEI7QUFDakM7QUFBQSxNQUFBO0FBRUYsV0FBSyxjQUFhO0FBQ2xCLFdBQUssb0JBQW1CO0FBQ3hCLFdBQUssUUFBUTtBQUNiLFdBQUssV0FBVzs7SUFHVix5QkFBc0I7QUFDeEIsVUFBQSxDQUFDLEtBQUssZUFBZTtBQUNoQixlQUFBO0FBQUEsTUFBQTtBQUdULFlBQU0sZ0JBQWdCLEtBQUssY0FBYyxLQUFLLFFBQVEsS0FBSyxXQUFZLElBQUk7QUFDM0UsVUFBSSxpQkFBaUIsS0FBSyxjQUFjLFVBQVUsZUFBZTtBQUMvRCxhQUFLLGNBQWMsUUFBUTtBQUN0QixhQUFBLGNBQWMsY0FBYyxJQUFJLFdBQVcsU0FBUyxFQUFFLFNBQVMsTUFBTSxVQUFVLEtBQU0sQ0FBQSxDQUFDO0FBQ3RGLGFBQUEsY0FBYyxjQUFjLElBQUksTUFBTSxVQUFVLEVBQUUsU0FBUyxNQUFNLFVBQVUsS0FBTSxDQUFBLENBQUM7QUFDaEYsZUFBQTtBQUFBLE1BQUE7QUFHRixhQUFBO0FBQUEsSUFBQTtBQUFBLElBR0QsZ0JBQWE7O0FBQ2YsVUFBQSxDQUFDLEtBQUssZUFBZTtBQUN2QjtBQUFBLE1BQUE7QUFHRixZQUFNLGlCQUNKLENBQUMsS0FBSyxjQUFjLFNBQ25CLENBQUMsQ0FBQyxLQUFLLGVBQ04sZ0JBQ0UsS0FBSyxhQUNMLEtBQUssYUFDTEEsTUFBQSxLQUFLLGtCQUFMLGdCQUFBQSxJQUFvQixNQUNwQixVQUFLLGtCQUFMLG1CQUFvQixHQUFHO0FBRTdCLFlBQU0sV0FBVyxDQUFDLEtBQUssY0FBYyxhQUFhLGtCQUFrQjtBQUNwRSxXQUFLLGNBQWMsZ0JBQWdCLG9CQUFvQixDQUFDLGNBQWM7QUFDdEUsVUFBSSxhQUFhLGdCQUFnQjtBQUMvQixhQUFLLGtCQUFrQixLQUFLLEVBQUUsT0FBTyxnQkFBZ0I7QUFBQSxNQUFBO0FBQUEsSUFDdkQ7QUFBQSxJQUdNLFlBQVksd0JBQXdCLE9BQUs7QUFDekMsWUFBQSxRQUFRLEtBQUssY0FBZTtBQUM1QixZQUFBLFFBQVEsS0FBSyxlQUFlLENBQUMsTUFBYyxLQUFLLGFBQWEsTUFBTSxHQUFHLEtBQUssR0FBRztBQUdwRixXQUFLLGVBQWUsS0FBSyxhQUFhLG1CQUFtQixNQUFNLEtBQUssQ0FBQztBQUNqRSxVQUFBLHlCQUF5QixDQUFDLEtBQUssY0FBYztBQUMxQyxhQUFBLGVBQWUsS0FBSyxhQUFhLG1CQUNwQyxLQUFLLGFBQWEsWUFBWSxLQUFLLENBQUM7QUFBQSxNQUFBO0FBQUEsSUFFeEM7QUFBQSxJQUdNLFFBQVEsTUFBTztBQUNkLGFBQUEsS0FBSyxTQUFTLEtBQUssT0FBTyxJQUFJLElBQUksS0FBSyxhQUFhLE9BQU8sSUFBSTtBQUFBLElBQUE7QUFBQSxJQUdoRSxzQkFBbUI7O0FBQ3pCLFlBQU0sb0JBQ0osTUFBQUEsTUFBQSxLQUFLLGVBQUwsZ0JBQUFBLElBQWlCLGtCQUFqQix3QkFBQUEsS0FBdUQ7QUFFekQsVUFBSSxDQUFDLGtCQUFrQjtBQUNyQjtBQUFBLE1BQUEsV0FDUyxDQUFDLEtBQUssYUFBYTtBQUM1Qix5QkFBaUIsWUFBWTtBQUFBLE1BQUEsT0FDeEI7QUFDQyxjQUFBLE9BQU8sS0FBSyxhQUFhLE9BQU8sS0FBSyxhQUFhLEVBQUUsY0FBYyxRQUFRO0FBQy9ELHlCQUFBLFlBQVksR0FBRyxrQkFBa0IsS0FBSyxVQUFVLE9BQU8sQ0FBQyxJQUFJLElBQUk7QUFBQSxNQUFBO0FBQUEsSUFDbkY7QUFBQSxJQUdpQixTQUFNO0FBQ2hCLGFBQUE7QUFBQSxJQUFBO0FBQUEsS0FyU1Qsd0NBR2dDLDhDQU9BLDhDQU1BLDBDQUdwQix5Q0FpRVo7O3dCQXRGQyxhQUNBLFNBQVMsRUFBRSxNQUFNLFFBQUEsQ0FBUyxDQUFDO0FBSTNCLDZCQUFBLENBQUEsU0FBUyxFQUFFLFdBQVcsTUFBTyxDQUFBLENBQUM7QUFPOUIsNkJBQUEsQ0FBQSxTQUFTLEVBQUUsV0FBVyxNQUFPLENBQUEsQ0FBQztBQU05Qix5QkFBQSxDQUFBLFNBQVMsRUFBRSxXQUFXLE1BQU8sQ0FBQSxDQUFDO0FBRzlCLHdCQUFBLENBQUEsVUFBVTtBQUlWLDBCQUFBLENBQUEsVUFBVTtBQVVWLGtDQUFBLENBQUEsU0FBUyxFQUFFLFdBQVcsTUFBTyxDQUFBLENBQUM7QUFrRDlCLGdDQUFBLENBQUEsT0FBTztBQW5GUSxpQkFBQSxJQUFBLE1BQUEsa0JBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxRQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLFVBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFBLE1BQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUEsT0FBc0I7QUFBQSxTQUFBLFVBQUEsYUFBQSxvQkFBQSx1QkFBQTtBQUdVLGlCQUFBLElBQUEsTUFBQSx3QkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLGNBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsZ0JBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFBLFlBQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUEsYUFDekM7QUFBQSxTQUFBLFVBQUEsYUFBQSwwQkFBQSw2QkFBQTtBQU15QyxpQkFBQSxJQUFBLE1BQUEsd0JBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxjQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGdCQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBQSxZQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFBLGFBQWlEO0FBQUEsU0FBQSxVQUFBLGFBQUEsMEJBQUEsNkJBQUE7QUFNakQsaUJBQUEsSUFBQSxNQUFBLG9CQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsVUFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxZQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBQSxRQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFBLFNBQTRDO0FBQUEsU0FBQSxVQUFBLGFBQUEsc0JBQUEseUJBQUE7QUFHaEUsaUJBQUEsSUFBQSxNQUFBLG1CQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsU0FBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxXQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBQSxPQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFBLFFBQTBDO0FBQUEsU0FBQSxVQUFBLGFBQUEscUJBQUEsd0JBQUE7QUFLdEUsaUJBQUEsSUFBQSxNQUFBLHFCQUFBLEVBQUEsTUFBQSxVQUFBLE1BQUEsT0FBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxTQUFBLEtBQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVcsTUFFVjtBQUFBLFNBQUEsVUFBQSxhQUFBLE1BQUEsMEJBQUE7QUFRRCxpQkFBQSxJQUFBLE1BQUEsNkJBQUEsRUFBQSxNQUFBLFVBQUEsTUFBQSxlQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGlCQUFBLEtBQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVcsY0FPVjtBQUFBLFNBQUEsVUFBQSxhQUFBLE1BQUEsMEJBQUE7QUEyQ2dCLGlCQUFBLElBQUEsTUFBQSwyQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLGlCQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLG1CQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBQSxlQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFBLGdCQUE4QztBQUFBLFNBQUEsVUFBQSxhQUFBLDZCQUFBLGdDQUFBO0FBakdqRSxpQkFvVEMsTUFBQSxtQkFBQSxFQUFBLE9BQUEsV0FBQSxHQUFBLGtCQUFBLEVBQUEsTUFBQSxTQUFBLE1BQUEsV0FBQSxNQUFBLFVBQUEsVUFBQSxHQUFBLE1BQUEsdUJBQUE7OztRQW5Ud0IsR0FBTSxTQUFtQixPQUN6QixHQUFBLFNBQVM7QUFBQSxJQUM5QixXQUFXO0FBQUEsSUFDWCxRQUFRO0FBQUEsSUFDUixjQUFjO0FBQUEsSUFDZCxtQkFBbUI7QUFBQSxJQUNuQixrQkFBa0I7QUFBQSxFQUNWLEdBUk4sa0JBQW9CLFlBQUEsdUJBQUEsR0FBVzs7OyJ9
419
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci9kYXRlcGlja2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIGlzU2VydmVyLFxuICBMaXRFbGVtZW50LFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHksIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyByZWFkQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29yZS9jb25maWcuanMnO1xuaW1wb3J0IHsgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyLCBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IHR5cGUgRGF0ZUFkYXB0ZXIsIGRlZmF1bHREYXRlQWRhcHRlciB9IGZyb20gJy4uLy4uL2NvcmUvZGF0ZXRpbWUuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGZpbmRJbnB1dCwgZmluZFJlZmVyZW5jZWRFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBpMThuRGF0ZUNoYW5nZWRUbywgaTE4bkRhdGVQaWNrZXJQbGFjZWhvbGRlciB9IGZyb20gJy4uLy4uL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRhdGVMaWtlLCBTYmJWYWxpZGF0aW9uQ2hhbmdlRXZlbnQgfSBmcm9tICcuLi8uLi9jb3JlL2ludGVyZmFjZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJEYXRlcGlja2VyQnV0dG9uIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRGF0ZXBpY2tlclRvZ2dsZUVsZW1lbnQgfSBmcm9tICcuLi9kYXRlcGlja2VyLXRvZ2dsZS5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2RhdGVwaWNrZXIuc2Nzcz9saXQmaW5saW5lJztcblxuZXhwb3J0IGludGVyZmFjZSBTYmJJbnB1dFVwZGF0ZUV2ZW50IHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICByZWFkb25seT86IGJvb2xlYW47XG4gIG1pbj86IHN0cmluZyB8IG51bWJlcjtcbiAgbWF4Pzogc3RyaW5nIHwgbnVtYmVyO1xufVxuXG4vLyBUT0RPKGJyZWFraW5nLWNoYW5nZSk6IElubGluZSBkZXByZWNhdGVkIGZ1bmN0aW9ucyBpbiBTYmJEYXRlcGlja2VyRWxlbWVudCBhcyBwdWJsaWMgbWV0aG9kc1xuLy8gd2hlcmUgcG9zc2libGUgYW5kIHVzZSB0aGVzZSBtZXRob2RzIHdoZXJlIHRoZSBmdW5jdGlvbnMgYXJlIGN1cnJlbnRseSB1c2VkLlxuXG4vKipcbiAqIEdpdmVuIGEgU2JiRGF0ZXBpY2tlclByZXZpb3VzRGF5RWxlbWVudCwgYSBTYmJEYXRlcGlja2VyTmV4dERheUVsZW1lbnQgb3IgYSBTYmJEYXRlcGlja2VyVG9nZ2xlRWxlbWVudCBjb21wb25lbnQsXG4gKiBpdCByZXR1cm5zIHRoZSByZWxhdGVkIFNiYkRhdGVwaWNrZXJFbGVtZW50IHJlZmVyZW5jZSwgaWYgZXhpc3RzLlxuICogQHBhcmFtIGVsZW1lbnQgVGhlIGVsZW1lbnQgcG90ZW50aWFsbHkgY29ubmVjdGVkIHRvIHRoZSBTYmJEYXRlcGlja2VyRWxlbWVudC5cbiAqIEBwYXJhbSB0cmlnZ2VyIFRoZSBpZCBvciB0aGUgcmVmZXJlbmNlIG9mIHRoZSBTYmJEYXRlUGlja2VyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0ZVBpY2tlcjxUID0gRGF0ZT4oXG4gIGVsZW1lbnQ6IFNiYkRhdGVwaWNrZXJCdXR0b248VD4gfCBTYmJEYXRlcGlja2VyVG9nZ2xlRWxlbWVudDxUPixcbiAgdHJpZ2dlcj86IHN0cmluZyB8IEhUTUxFbGVtZW50LFxuKTogU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD4gfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCF0cmlnZ2VyKSB7XG4gICAgcmV0dXJuIGVsZW1lbnRcbiAgICAgIC5jbG9zZXN0Py4oJ3NiYi1mb3JtLWZpZWxkJylcbiAgICAgID8ucXVlcnlTZWxlY3RvcjxTYmJEYXRlcGlja2VyRWxlbWVudDxUPj4oJ3NiYi1kYXRlcGlja2VyJyk7XG4gIH1cblxuICByZXR1cm4gZmluZFJlZmVyZW5jZWRFbGVtZW50PFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+Pih0cmlnZ2VyKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBmaXJzdCBhdmFpbGFibGUgZGF0ZSBiZWZvcmUgb3IgYWZ0ZXIgYSBnaXZlbiBvbmUsIGNvbnNpZGVyaW5nIHRoZSBTYmJEYXRlcGlja2VyRWxlbWVudCBgZGF0ZUZpbHRlcmAgcHJvcGVydHkuXG4gKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZSBmb3IgY2FsY3VsYXRpb25zLlxuICogQHBhcmFtIGRlbHRhIFRoZSBudW1iZXIgb2YgZGF5cyB0byBhZGQvc3VidHJhY3QgZnJvbSB0aGUgc3RhcnRpbmcgb25lLlxuICogQHBhcmFtIGRhdGVGaWx0ZXIgVGhlIGRhdGVGaWx0ZXIgZnVuY3Rpb24gZnJvbSB0aGUgU2JiRGF0ZXBpY2tlckVsZW1lbnQuXG4gKiBAcGFyYW0gZGF0ZUFkYXB0ZXIgVGhlIGFkYXB0ZXIgY2xhc3MuXG4gKlxuICogQGRlcHJlY2F0ZWQgTm90IGludGVuZGVkIGFzIHB1YmxpYyBBUEkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBdmFpbGFibGVEYXRlPFQgPSBEYXRlPihcbiAgZGF0ZTogVCxcbiAgZGVsdGE6IG51bWJlcixcbiAgZGF0ZUZpbHRlcjogKChkYXRlOiBUKSA9PiBib29sZWFuKSB8IG51bGwsXG4gIGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxUPixcbik6IFQge1xuICBsZXQgYXZhaWxhYmxlRGF0ZSA9IGRhdGVBZGFwdGVyLmFkZENhbGVuZGFyRGF5cyhkYXRlLCBkZWx0YSk7XG5cbiAgaWYgKGRhdGVGaWx0ZXIpIHtcbiAgICB3aGlsZSAoIWRhdGVGaWx0ZXIoYXZhaWxhYmxlRGF0ZSkpIHtcbiAgICAgIGF2YWlsYWJsZURhdGUgPSBkYXRlQWRhcHRlci5hZGRDYWxlbmRhckRheXMoYXZhaWxhYmxlRGF0ZSwgZGVsdGEpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhdmFpbGFibGVEYXRlO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZXMgdGhlIGZpcnN0IGF2YWlsYWJsZSBkYXRlIGJlZm9yZSB0aGUgZ2l2ZW4gb25lLFxuICogY29uc2lkZXJpbmcgdGhlIFNiYkRhdGVwaWNrZXJFbGVtZW50IGBkYXRlRmlsdGVyYCBwcm9wZXJ0eSBhbmQgYG1pbmAgcGFyYW1ldGVyIChlLmcuIGZyb20gdGhlIHNlbGYtbmFtZWQgaW5wdXQncyBhdHRyaWJ1dGUpLlxuICogQHBhcmFtIGRhdGUgVGhlIHN0YXJ0aW5nIGRhdGUgZm9yIGNhbGN1bGF0aW9ucy5cbiAqIEBwYXJhbSBkYXRlRmlsdGVyIFRoZSBkYXRlRmlsdGVyIGZ1bmN0aW9uIGZyb20gdGhlIFNiYkRhdGVwaWNrZXJFbGVtZW50LlxuICogQHBhcmFtIGRhdGVBZGFwdGVyIFRoZSBhZGFwdGVyIGNsYXNzLlxuICogQHBhcmFtIG1pbiBUaGUgbWluaW11bSB2YWx1ZSB0byBjb25zaWRlciBpbiBjYWxjdWxhdGlvbnMuXG4gKlxuICogQGRlcHJlY2F0ZWQgTm90IGludGVuZGVkIGFzIHB1YmxpYyBBUEkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kUHJldmlvdXNBdmFpbGFibGVEYXRlPFQgPSBEYXRlPihcbiAgZGF0ZTogVCxcbiAgZGF0ZUZpbHRlcjogKChkYXRlOiBUKSA9PiBib29sZWFuKSB8IG51bGwsXG4gIGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxUPixcbiAgbWluOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsLFxuKTogVCB7XG4gIGNvbnN0IHByZXZpb3VzRGF0ZSA9IGdldEF2YWlsYWJsZURhdGUoZGF0ZSwgLTEsIGRhdGVGaWx0ZXIsIGRhdGVBZGFwdGVyKTtcbiAgY29uc3QgZGF0ZU1pbiA9IGRhdGVBZGFwdGVyLmRlc2VyaWFsaXplKG1pbik7XG5cbiAgaWYgKFxuICAgICFkYXRlTWluIHx8XG4gICAgKGRhdGVBZGFwdGVyLmlzVmFsaWQoZGF0ZU1pbikgJiYgZGF0ZUFkYXB0ZXIuY29tcGFyZURhdGUocHJldmlvdXNEYXRlLCBkYXRlTWluKSA+PSAwKVxuICApIHtcbiAgICByZXR1cm4gcHJldmlvdXNEYXRlO1xuICB9XG4gIHJldHVybiBkYXRlO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZXMgdGhlIGZpcnN0IGF2YWlsYWJsZSBkYXRlIGFmdGVyIHRoZSBnaXZlbiBvbmUsXG4gKiBjb25zaWRlcmluZyB0aGUgU2JiRGF0ZXBpY2tlckVsZW1lbnQgYGRhdGVGaWx0ZXJgIHByb3BlcnR5IGFuZCBgbWF4YCBwYXJhbWV0ZXIgKGUuZy4gZnJvbSB0aGUgc2VsZi1uYW1lZCBpbnB1dCdzIGF0dHJpYnV0ZSkuXG4gKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZSBmb3IgY2FsY3VsYXRpb25zLlxuICogQHBhcmFtIGRhdGVGaWx0ZXIgVGhlIGRhdGVGaWx0ZXIgZnVuY3Rpb24gZnJvbSB0aGUgU2JiRGF0ZXBpY2tlckVsZW1lbnQuXG4gKiBAcGFyYW0gZGF0ZUFkYXB0ZXIgVGhlIGFkYXB0ZXIgY2xhc3MuXG4gKiBAcGFyYW0gbWF4IFRoZSBtYXhpbXVtIHZhbHVlIHRvIGNvbnNpZGVyIGluIGNhbGN1bGF0aW9ucy5cbiAqXG4gKiBAZGVwcmVjYXRlZCBOb3QgaW50ZW5kZWQgYXMgcHVibGljIEFQSS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmROZXh0QXZhaWxhYmxlRGF0ZTxUID0gRGF0ZT4oXG4gIGRhdGU6IFQsXG4gIGRhdGVGaWx0ZXI6ICgoZGF0ZTogVCkgPT4gYm9vbGVhbikgfCBudWxsLFxuICBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8VD4sXG4gIG1heDogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCxcbik6IFQge1xuICBjb25zdCBuZXh0RGF0ZSA9IGdldEF2YWlsYWJsZURhdGUoZGF0ZSwgMSwgZGF0ZUZpbHRlciwgZGF0ZUFkYXB0ZXIpO1xuICBjb25zdCBkYXRlTWF4ID0gZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUobWF4KTtcblxuICBpZiAoXG4gICAgIWRhdGVNYXggfHxcbiAgICAoZGF0ZUFkYXB0ZXIuaXNWYWxpZChkYXRlTWF4KSAmJiBkYXRlQWRhcHRlci5jb21wYXJlRGF0ZShuZXh0RGF0ZSwgZGF0ZU1heCkgPD0gMClcbiAgKSB7XG4gICAgcmV0dXJuIG5leHREYXRlO1xuICB9XG4gIHJldHVybiBkYXRlO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgcHJvdmlkZWQgZGF0ZSBpcyBhIHZhbGlkIG9uZSwgY29uc2lkZXJpbmcgdGhlIFNiYkRhdGVwaWNrZXJFbGVtZW50IGBkYXRlRmlsdGVyYCBwcm9wZXJ0eVxuICogYW5kIGBtaW5gIGFuZCBgbWF4YCBwYXJhbWV0ZXJzIChlLmcuIGZyb20gdGhlIHNlbGYtbmFtZWQgaW5wdXQncyBhdHRyaWJ1dGVzKS5cbiAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlIGZvciBjYWxjdWxhdGlvbnMuXG4gKiBAcGFyYW0gZGF0ZUZpbHRlciBUaGUgZGF0ZUZpbHRlciBmdW5jdGlvbiBmcm9tIHRoZSBTYmJEYXRlcGlja2VyRWxlbWVudC5cbiAqIEBwYXJhbSBtaW4gVGhlIG1pbmltdW0gdmFsdWUgdG8gY29uc2lkZXIgaW4gY2FsY3VsYXRpb25zLlxuICogQHBhcmFtIG1heCBUaGUgbWF4aW11bSB2YWx1ZSB0byBjb25zaWRlciBpbiBjYWxjdWxhdGlvbnMuXG4gKlxuICogQGRlcHJlY2F0ZWQgTm90IGludGVuZGVkIGFzIHB1YmxpYyBBUEkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGVBdmFpbGFibGU8VCA9IERhdGU+KFxuICBkYXRlOiBULFxuICBkYXRlRmlsdGVyOiAoKGRhdGU6IFQpID0+IGJvb2xlYW4pIHwgbnVsbCxcbiAgbWluOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLFxuICBtYXg6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsXG4pOiBib29sZWFuIHtcbiAgY29uc3QgZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPFQ+ID0gcmVhZENvbmZpZygpLmRhdGV0aW1lPy5kYXRlQWRhcHRlciA/PyBkZWZhdWx0RGF0ZUFkYXB0ZXI7XG4gIGNvbnN0IGRhdGVNaW4gPSBkYXRlQWRhcHRlci5kZXNlcmlhbGl6ZShtaW4pO1xuICBjb25zdCBkYXRlTWF4ID0gZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUobWF4KTtcblxuICBpZiAoXG4gICAgKGRhdGVBZGFwdGVyLmlzVmFsaWQoZGF0ZU1pbikgJiYgZGF0ZUFkYXB0ZXIuY29tcGFyZURhdGUoZGF0ZSwgZGF0ZU1pbiEpIDwgMCkgfHxcbiAgICAoZGF0ZUFkYXB0ZXIuaXNWYWxpZChkYXRlTWF4KSAmJiBkYXRlQWRhcHRlci5jb21wYXJlRGF0ZShkYXRlLCBkYXRlTWF4ISkgPiAwKVxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gZGF0ZUZpbHRlciA/IGRhdGVGaWx0ZXIoZGF0ZSkgOiB0cnVlO1xufVxuXG5leHBvcnQgY29uc3QgZGF0ZXBpY2tlckNvbnRyb2xSZWdpc3RlcmVkRXZlbnRGYWN0b3J5ID0gKCk6IEN1c3RvbUV2ZW50ID0+XG4gIG5ldyBDdXN0b21FdmVudCgnZGF0ZXBpY2tlckNvbnRyb2xSZWdpc3RlcmVkJywge1xuICAgIGJ1YmJsZXM6IGZhbHNlLFxuICAgIGNvbXBvc2VkOiB0cnVlLFxuICB9KTtcblxuLyoqXG4gKiBDb21iaW5lZCB3aXRoIGEgbmF0aXZlIGlucHV0LCBpdCBkaXNwbGF5cyB0aGUgaW5wdXQncyB2YWx1ZSBhcyBhIGZvcm1hdHRlZCBkYXRlLlxuICpcbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZENoYW5nZSAtIERlcHJlY2F0ZWQuIHVzZWQgZm9yIFJlYWN0LiBXaWxsIHByb2JhYmx5IGJlIHJlbW92ZWQgb25jZSBSZWFjdCAxOSBpcyBhdmFpbGFibGUuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBjaGFuZ2UgLSBOb3RpZmllcyB0aGF0IHRoZSBjb25uZWN0ZWQgaW5wdXQgaGFzIGNoYW5nZXMuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PFNiYklucHV0VXBkYXRlRXZlbnQ+fSBpbnB1dFVwZGF0ZWQgLSBOb3RpZmllcyB0aGF0IHRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBpbnB1dCBjb25uZWN0ZWQgdG8gdGhlIGRhdGVwaWNrZXIgaGF2ZSBjaGFuZ2VzLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGF0ZVBpY2tlclVwZGF0ZWQgLSBOb3RpZmllcyB0aGF0IHRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBkYXRlcGlja2VyIGhhdmUgY2hhbmdlcy5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8U2JiVmFsaWRhdGlvbkNoYW5nZUV2ZW50Pn0gdmFsaWRhdGlvbkNoYW5nZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBpbnRlcm5hbCB2YWxpZGF0aW9uIHN0YXRlIGNoYW5nZXMuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1kYXRlcGlja2VyJylcbmNsYXNzIFNiYkRhdGVwaWNrZXJFbGVtZW50PFQgPSBEYXRlPiBleHRlbmRzIExpdEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgZGlkQ2hhbmdlOiAnZGlkQ2hhbmdlJyxcbiAgICBjaGFuZ2U6ICdjaGFuZ2UnLFxuICAgIGlucHV0VXBkYXRlZDogJ2lucHV0VXBkYXRlZCcsXG4gICAgZGF0ZVBpY2tlclVwZGF0ZWQ6ICdkYXRlUGlja2VyVXBkYXRlZCcsXG4gICAgdmFsaWRhdGlvbkNoYW5nZTogJ3ZhbGlkYXRpb25DaGFuZ2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBJZiBzZXQgdG8gdHJ1ZSwgdHdvIG1vbnRocyBhcmUgZGlzcGxheWVkLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3Igd2lkZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBBIGZ1bmN0aW9uIHVzZWQgdG8gZmlsdGVyIG91dCBkYXRlcy4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KSBwdWJsaWMgYWNjZXNzb3IgZGF0ZUZpbHRlcjogKGRhdGU6IFQgfCBudWxsKSA9PiBib29sZWFuID0gKCkgPT5cbiAgICB0cnVlO1xuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHVzZWQgdG8gcGFyc2Ugc3RyaW5nIHZhbHVlIGludG8gZGF0ZXMuXG4gICAqIEBkZXByZWNhdGVkIE5vIGxvbmdlciByZXF1aXJlZC5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSkgcHVibGljIGFjY2Vzc29yIGRhdGVQYXJzZXI6ICgodmFsdWU6IHN0cmluZykgPT4gVCkgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB1c2VkIHRvIGZvcm1hdCBkYXRlcyBpbnRvIHRoZSBwcmVmZXJyZWQgc3RyaW5nIGZvcm1hdC5cbiAgICogQGRlcHJlY2F0ZWQgTm8gbG9uZ2VyIHJlcXVpcmVkLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KSBwdWJsaWMgYWNjZXNzb3IgZm9ybWF0OiAoKGRhdGU6IFQpID0+IHN0cmluZykgfCBudWxsID0gbnVsbDtcblxuICAvKiogUmVmZXJlbmNlIG9mIHRoZSBuYXRpdmUgaW5wdXQgY29ubmVjdGVkIHRvIHRoZSBkYXRlcGlja2VyLiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgYWNjZXNzb3IgaW5wdXQ6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gVE9ETzogQ2hhbmdlIHVuZGVmaW5lZCB0byBudWxsIGFzIGEgYnJlYWtpbmcgY2hhbmdlLlxuICAvKiogQSBjb25maWd1cmVkIGRhdGUgd2hpY2ggYWN0cyBhcyB0aGUgY3VycmVudCBkYXRlIGluc3RlYWQgb2YgdGhlIHJlYWwgY3VycmVudCBkYXRlLiBSZWNvbW1lbmRlZCBmb3IgdGVzdGluZyBwdXJwb3Nlcy4gKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCBub3codmFsdWU6IFNiYkRhdGVMaWtlPFQ+IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fbm93ID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKHRoaXMuX2RhdGVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKSk7XG4gIH1cbiAgcHVibGljIGdldCBub3coKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuX25vdyA/PyB0aGlzLl9kYXRlQWRhcHRlci50b2RheSgpO1xuICB9XG4gIHByaXZhdGUgX25vdz86IFQgfCBudWxsO1xuXG4gIC8qKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIGRhdGUgYXMgYSBEYXRlIG9yIGN1c3RvbSBkYXRlIHByb3ZpZGVyIGluc3RhbmNlLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgdmFsdWVBc0RhdGUodmFsdWU6IFNiYkRhdGVMaWtlPFQ+IHwgbnVsbCkge1xuICAgIHRoaXMuX3ZhbHVlQXNEYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKHRoaXMuX2RhdGVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKSk7XG4gICAgaWYgKHRoaXMuX3RyeUFwcGx5Rm9ybWF0VG9JbnB1dCgpKSB7XG4gICAgICAvKiBFbWl0IGJsdXIgZXZlbnQgd2hlbiB2YWx1ZSBpcyBjaGFuZ2VkIHByb2dyYW1tYXRpY2FsbHkgdG8gbm90aWZ5XG4gICAgICBmcmFtZXdvcmtzIHRoYXQgcmVseSBvbiB0aGF0IGV2ZW50IHRvIHVwZGF0ZSBmb3JtIHN0YXR1cy4gKi9cbiAgICAgIHRoaXMuX2lucHV0RWxlbWVudCEuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2JsdXInLCB7IGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCB2YWx1ZUFzRGF0ZSgpOiBUIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlQXNEYXRlID8/IG51bGw7XG4gIH1cbiAgcHJpdmF0ZSBfdmFsdWVBc0RhdGU/OiBUIHwgbnVsbDtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgb25seSB1c2VkIGZvciBSZWFjdC4gV2lsbCBwcm9iYWJseSBiZSByZW1vdmVkIG9uY2UgUmVhY3QgMTkgaXMgYXZhaWxhYmxlLlxuICAgKi9cbiAgcHJpdmF0ZSBfZGlkQ2hhbmdlOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKHRoaXMsIFNiYkRhdGVwaWNrZXJFbGVtZW50LmV2ZW50cy5kaWRDaGFuZ2UsIHtcbiAgICBidWJibGVzOiB0cnVlLFxuICAgIGNhbmNlbGFibGU6IHRydWUsXG4gIH0pO1xuXG4gIC8qKiBOb3RpZmllcyB0aGF0IHRoZSBjb25uZWN0ZWQgaW5wdXQgaGFzIGNoYW5nZXMuICovXG4gIHByaXZhdGUgX2NoYW5nZTogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcih0aGlzLCBTYmJEYXRlcGlja2VyRWxlbWVudC5ldmVudHMuY2hhbmdlLCB7XG4gICAgYnViYmxlczogdHJ1ZSxcbiAgfSk7XG5cbiAgLyoqIE5vdGlmaWVzIHRoYXQgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGlucHV0IGNvbm5lY3RlZCB0byB0aGUgZGF0ZXBpY2tlciBoYXZlIGNoYW5nZXMuICovXG4gIHByaXZhdGUgX2lucHV0VXBkYXRlZDogRXZlbnRFbWl0dGVyPFNiYklucHV0VXBkYXRlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYkRhdGVwaWNrZXJFbGVtZW50LmV2ZW50cy5pbnB1dFVwZGF0ZWQsXG4gICAgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlIH0sXG4gICk7XG5cbiAgLyoqIE5vdGlmaWVzIHRoYXQgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGRhdGVwaWNrZXIgaGF2ZSBjaGFuZ2VzLiAqL1xuICBwcml2YXRlIF9kYXRlUGlja2VyVXBkYXRlZDogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYkRhdGVwaWNrZXJFbGVtZW50LmV2ZW50cy5kYXRlUGlja2VyVXBkYXRlZCxcbiAgICB7XG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICB9LFxuICApO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgaW50ZXJuYWwgdmFsaWRhdGlvbiBzdGF0ZSBjaGFuZ2VzLiAqL1xuICBwcml2YXRlIF92YWxpZGF0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8U2JiVmFsaWRhdGlvbkNoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJEYXRlcGlja2VyRWxlbWVudC5ldmVudHMudmFsaWRhdGlvbkNoYW5nZSxcbiAgKTtcblxuICBAc3RhdGUoKVxuICBwcml2YXRlIGFjY2Vzc29yIF9pbnB1dEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfaW5wdXRFbGVtZW50UGxhY2Vob2xkZXJNdXRhYmxlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfZGF0ZVBpY2tlckNvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG5cbiAgcHJpdmF0ZSBfaW5wdXRPYnNlcnZlciA9ICFpc1NlcnZlclxuICAgID8gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9uc0xpc3QpID0+IHtcbiAgICAgICAgdGhpcy5fZW1pdElucHV0VXBkYXRlZCgpO1xuICAgICAgICAvLyBUT0RPOiBEZWNpZGUgd2hldGhlciB0byByZW1vdmUgdGhpcyBsb2dpYyBieSBhZGRpbmcgYSB2YWx1ZSBwcm9wZXJ0eSB0byB0aGUgZGF0ZXBpY2tlci5cbiAgICAgICAgaWYgKHRoaXMuX2lucHV0RWxlbWVudCAmJiBtdXRhdGlvbnNMaXN0Py5zb21lKChlKSA9PiBlLmF0dHJpYnV0ZU5hbWUgPT09ICd2YWx1ZScpKSB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLl9pbnB1dEVsZW1lbnQuZ2V0QXR0cmlidXRlKCd2YWx1ZScpO1xuICAgICAgICAgIHRoaXMudmFsdWVBc0RhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5wYXJzZSh2YWx1ZSwgdGhpcy5ub3cpID8/IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIDogbnVsbDtcblxuICBwcml2YXRlIF9kYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8VD4gPSByZWFkQ29uZmlnKCkuZGF0ZXRpbWU/LmRhdGVBZGFwdGVyID8/IGRlZmF1bHREYXRlQWRhcHRlcjtcblxuICBwcml2YXRlIF9hYm9ydCA9IG5ldyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKS53aXRoSGFuZGxlcigoKSA9PiB7XG4gICAgaWYgKHRoaXMuX2lucHV0RWxlbWVudCkge1xuICAgICAgaWYgKHRoaXMuX2lucHV0RWxlbWVudFBsYWNlaG9sZGVyTXV0YWJsZSkge1xuICAgICAgICB0aGlzLl9pbnB1dEVsZW1lbnQucGxhY2Vob2xkZXIgPSBpMThuRGF0ZVBpY2tlclBsYWNlaG9sZGVyW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMudmFsdWVBc0RhdGUpIHtcbiAgICAgICAgdGhpcy5faW5wdXRFbGVtZW50LnZhbHVlID0gdGhpcy5fZm9ybWF0KHRoaXMudmFsdWVBc0RhdGUpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdkYXRlcGlja2VyQ29udHJvbFJlZ2lzdGVyZWQnLCAoKSA9PiB0aGlzLl9lbWl0SW5wdXRVcGRhdGVkKCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fYWJvcnQuc2lnbmFsLFxuICAgIH0pO1xuICAgIHRoaXMuX2F0dGFjaElucHV0KCk7XG4gICAgaWYgKHRoaXMuX2lucHV0RWxlbWVudCkge1xuICAgICAgdGhpcy5fZW1pdElucHV0VXBkYXRlZCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnaW5wdXQnKSkge1xuICAgICAgdGhpcy5fYXR0YWNoSW5wdXQoKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd3aWRlJykgfHxcbiAgICAgIGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGF0ZUZpbHRlcicpIHx8XG4gICAgICBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ25vdycpXG4gICAgKSB7XG4gICAgICB0aGlzLl9kYXRlUGlja2VyVXBkYXRlZC5lbWl0KCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3ZhbHVlQXNEYXRlJykpIHtcbiAgICAgIHRoaXMuX3NldEFyaWFMaXZlTWVzc2FnZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX2lucHV0T2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLl9kYXRlUGlja2VyQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICB0aGlzLl9zZXRBcmlhTGl2ZU1lc3NhZ2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBpbnB1dCB2YWx1ZSB3aXRoIHRoZSBjb3JyZWN0IGRhdGUgZm9ybWF0LlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgcHJvcGVydHkgdmFsdWVBc0RhdGUgaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBnZXRWYWx1ZUFzRGF0ZSgpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZUFzRGF0ZSA/PyB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBpbnB1dCB2YWx1ZSB0byB0aGUgY29ycmVjdGx5IGZvcm1hdHRlZCB2YWx1ZS5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIHByb3BlcnR5IHZhbHVlQXNEYXRlIGluc3RlYWQuXG4gICAqL1xuICBwdWJsaWMgc2V0VmFsdWVBc0RhdGUoZGF0ZTogU2JiRGF0ZUxpa2U8VD4pOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlQXNEYXRlID0gZGF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogV2hldGhlciBhIGN1c3RvbSBub3cgaXMgY29uZmlndXJlZC5cbiAgICovXG4gIHB1YmxpYyBoYXNDdXN0b21Ob3coKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5fbm93O1xuICB9XG5cbiAgcHJpdmF0ZSBfYXR0YWNoSW5wdXQoKTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQgPSBmaW5kSW5wdXQodGhpcywgdGhpcy5pbnB1dCk7XG4gICAgaWYgKHRoaXMuX2lucHV0RWxlbWVudCA9PT0gaW5wdXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2lucHV0RWxlbWVudCkge1xuICAgICAgdGhpcy5fZGF0ZVBpY2tlckNvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgICB0aGlzLl9pbnB1dE9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgfVxuXG4gICAgdGhpcy5faW5wdXRFbGVtZW50ID0gaW5wdXQ7XG4gICAgaWYgKGlucHV0KSB7XG4gICAgICB0aGlzLl9kYXRlUGlja2VyQ29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAgIHRoaXMuX2lucHV0T2JzZXJ2ZXI/Lm9ic2VydmUoaW5wdXQsIHtcbiAgICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2Rpc2FibGVkJywgJ3JlYWRvbmx5JywgJ21pbicsICdtYXgnLCAndmFsdWUnXSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnRQbGFjZWhvbGRlck11dGFibGUgPSAhaW5wdXQucGxhY2Vob2xkZXI7XG4gICAgICBpbnB1dC50eXBlID0gJ3RleHQnO1xuICAgICAgaWYgKHRoaXMuX2lucHV0RWxlbWVudFBsYWNlaG9sZGVyTXV0YWJsZSkge1xuICAgICAgICBpbnB1dC5wbGFjZWhvbGRlciA9IGkxOG5EYXRlUGlja2VyUGxhY2Vob2xkZXJbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG9wdGlvbnM6IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zID0geyBzaWduYWw6IHRoaXMuX2RhdGVQaWNrZXJDb250cm9sbGVyLnNpZ25hbCB9O1xuICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCAoKSA9PiB0aGlzLl9wYXJzZUlucHV0KCksIG9wdGlvbnMpO1xuICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4gdGhpcy5faGFuZGxlSW5wdXRDaGFuZ2UoKSwgb3B0aW9ucyk7XG4gICAgICB0aGlzLl9wYXJzZUlucHV0KHRydWUpO1xuICAgICAgdGhpcy5fdHJ5QXBwbHlGb3JtYXRUb0lucHV0KCk7XG4gICAgICB0aGlzLl92YWxpZGF0ZURhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9lbWl0SW5wdXRVcGRhdGVkKCk6IHZvaWQge1xuICAgIGNvbnN0IHsgZGlzYWJsZWQsIHJlYWRPbmx5OiByZWFkb25seSwgbWluLCBtYXggfSA9IHRoaXMuX2lucHV0RWxlbWVudCA/PyB7fTtcbiAgICB0aGlzLl9pbnB1dFVwZGF0ZWQuZW1pdCh7IGRpc2FibGVkLCByZWFkb25seSwgbWluLCBtYXggfSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVJbnB1dENoYW5nZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fdHJ5QXBwbHlGb3JtYXRUb0lucHV0KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdmFsaWRhdGVEYXRlKCk7XG4gICAgdGhpcy5fc2V0QXJpYUxpdmVNZXNzYWdlKCk7XG4gICAgdGhpcy5fY2hhbmdlLmVtaXQoKTtcbiAgICB0aGlzLl9kaWRDaGFuZ2UuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdHJ5QXBwbHlGb3JtYXRUb0lucHV0KCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5faW5wdXRFbGVtZW50KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybWF0dGVkRGF0ZSA9IHRoaXMudmFsdWVBc0RhdGUgPyB0aGlzLl9mb3JtYXQodGhpcy52YWx1ZUFzRGF0ZSEpIDogJyc7XG4gICAgaWYgKGZvcm1hdHRlZERhdGUgJiYgdGhpcy5faW5wdXRFbGVtZW50LnZhbHVlICE9PSBmb3JtYXR0ZWREYXRlKSB7XG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnQudmFsdWUgPSBmb3JtYXR0ZWREYXRlO1xuICAgICAgdGhpcy5faW5wdXRFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmFsaWRhdGVEYXRlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faW5wdXRFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaXNFbXB0eU9yVmFsaWQgPVxuICAgICAgIXRoaXMuX2lucHV0RWxlbWVudC52YWx1ZSB8fFxuICAgICAgKCEhdGhpcy52YWx1ZUFzRGF0ZSAmJlxuICAgICAgICBpc0RhdGVBdmFpbGFibGUoXG4gICAgICAgICAgdGhpcy52YWx1ZUFzRGF0ZSxcbiAgICAgICAgICB0aGlzLmRhdGVGaWx0ZXIsXG4gICAgICAgICAgdGhpcy5faW5wdXRFbGVtZW50Py5taW4sXG4gICAgICAgICAgdGhpcy5faW5wdXRFbGVtZW50Py5tYXgsXG4gICAgICAgICkpO1xuICAgIGNvbnN0IHdhc1ZhbGlkID0gIXRoaXMuX2lucHV0RWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2RhdGEtc2JiLWludmFsaWQnKTtcbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKCdkYXRhLXNiYi1pbnZhbGlkJywgIWlzRW1wdHlPclZhbGlkKTtcbiAgICBpZiAod2FzVmFsaWQgIT09IGlzRW1wdHlPclZhbGlkKSB7XG4gICAgICB0aGlzLl92YWxpZGF0aW9uQ2hhbmdlLmVtaXQoeyB2YWxpZDogaXNFbXB0eU9yVmFsaWQgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcGFyc2VJbnB1dChkZXNlcmlhbGl6ZUFzRmFsbGJhY2sgPSBmYWxzZSk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5faW5wdXRFbGVtZW50IS52YWx1ZTtcbiAgICBjb25zdCBwYXJzZSA9IHRoaXMuZGF0ZVBhcnNlciA/PyAoKHY6IHN0cmluZykgPT4gdGhpcy5fZGF0ZUFkYXB0ZXIucGFyc2UodiwgdGhpcy5ub3cpKTtcbiAgICAvLyBXZSBhcmUgYXNzaWduaW5nIGRpcmVjdGx5IHRvIHRoZSBwcml2YXRlIGJhY2tpbmcgcHJvcGVydHkgb2YgdmFsdWVBc0RhdGVcbiAgICAvLyBhcyB3ZSBkb24ndCB3YW50IHRvIHRyaWdnZXIgYSBibHVyIGV2ZW50IGR1cmluZyB0aGlzIHRpbWUuXG4gICAgdGhpcy5fdmFsdWVBc0RhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwocGFyc2UodmFsdWUpKTtcbiAgICBpZiAoZGVzZXJpYWxpemVBc0ZhbGxiYWNrICYmICF0aGlzLl92YWx1ZUFzRGF0ZSkge1xuICAgICAgdGhpcy5fdmFsdWVBc0RhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwoXG4gICAgICAgIHRoaXMuX2RhdGVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZm9ybWF0KGRhdGU6IFQpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZvcm1hdCA/IHRoaXMuZm9ybWF0KGRhdGUpIDogdGhpcy5fZGF0ZUFkYXB0ZXIuZm9ybWF0KGRhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0QXJpYUxpdmVNZXNzYWdlKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQ6IEhUTUxQYXJhZ3JhcGhFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZCA9XG4gICAgICB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3I/LjxIVE1MUGFyYWdyYXBoRWxlbWVudD4oJyNzdGF0dXMtY29udGFpbmVyJyk7XG5cbiAgICBpZiAoIWNvbnRhaW5lckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLnZhbHVlQXNEYXRlKSB7XG4gICAgICBjb250YWluZXJFbGVtZW50LmlubmVyVGV4dCA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBkYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZm9ybWF0KHRoaXMudmFsdWVBc0RhdGUsIHsgd2Vla2RheVN0eWxlOiAnbG9uZycgfSk7XG4gICAgICBjb250YWluZXJFbGVtZW50LmlubmVyVGV4dCA9IGAke2kxOG5EYXRlQ2hhbmdlZFRvW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke2RhdGV9YDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGA8cCBpZD1cInN0YXR1cy1jb250YWluZXJcIiByb2xlPVwic3RhdHVzXCI+PC9wPmA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1kYXRlcGlja2VyJzogU2JiRGF0ZXBpY2tlckVsZW1lbnQ7XG4gIH1cblxuICBpbnRlcmZhY2UgR2xvYmFsRXZlbnRIYW5kbGVyc0V2ZW50TWFwIHtcbiAgICBpbnB1dFVwZGF0ZWQ6IEN1c3RvbUV2ZW50PFNiYklucHV0VXBkYXRlRXZlbnQ+O1xuICB9XG59XG4iXSwibmFtZXMiOlsiU2JiRGF0ZXBpY2tlckVsZW1lbnQiLCJf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
@@ -390,7 +390,7 @@ let SbbDialogElement = (() => {
390
390
  _setHideHeaderDataAttribute(value) {
391
391
  var _a2;
392
392
  const hideOnScroll = ((_a2 = this._dialogTitleElement) == null ? void 0 : _a2.hideOnScroll) ?? false;
393
- const hideHeader = typeof hideOnScroll === "boolean" ? hideOnScroll : isBreakpoint("zero", hideOnScroll, { includeMaxBreakpoint: true });
393
+ const hideHeader = typeof hideOnScroll === "boolean" ? hideOnScroll : isBreakpoint("zero", hideOnScroll, { includeMaxBreakpoint: true }) ?? false;
394
394
  this.toggleAttribute("data-hide-header", !hideHeader ? false : value);
395
395
  if (this._dialogTitleElement) {
396
396
  this._dialogTitleElement.toggleAttribute("data-hide-header", !hideHeader ? false : value);
@@ -436,4 +436,4 @@ let SbbDialogElement = (() => {
436
436
  export {
437
437
  SbbDialogElement
438
438
  };
439
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvZGlhbG9nL2RpYWxvZy9kaWFsb2cudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB7IGdldEZpcnN0Rm9jdXNhYmxlRWxlbWVudCwgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyB9IGZyb20gJy4uLy4uL2NvcmUvYTExeS5qcyc7XG5pbXBvcnQgeyBpc0JyZWFrcG9pbnQgfSBmcm9tICcuLi8uLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBvdmVybGF5UmVmcywgU2JiT3ZlcmxheUJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vb3ZlcmxheS5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRpYWxvZ0FjdGlvbnNFbGVtZW50IH0gZnJvbSAnLi4vZGlhbG9nLWFjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJEaWFsb2dUaXRsZUVsZW1lbnQgfSBmcm9tICcuLi9kaWFsb2ctdGl0bGUuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9kaWFsb2cuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9zY3JlZW4tcmVhZGVyLW9ubHkuanMnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhbiBpbnRlcmFjdGl2ZSBvdmVybGF5IGVsZW1lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBwcm92aWRlIGEgYHNiYi1kaWFsb2ctdGl0bGVgLCBgc2JiLWRpYWxvZy1jb250ZW50YCBhbmQgYW4gb3B0aW9uYWwgYHNiYi1kaWFsb2ctYWN0aW9uc2AuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWRpYWxvZ2Agc3RhcnRzIHRoZSBvcGVuaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1kaWFsb2dgIGlzIG9wZW5lZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWRpYWxvZ2AgYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8U2JiT3ZlcmxheUNsb3NlRXZlbnREZXRhaWxzPn0gZGlkQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1kaWFsb2dgIGlzIGNsb3NlZC5cbiAqIEBjc3Nwcm9wIFstLXNiYi1kaWFsb2ctei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItZGlhbG9nJylcbmNsYXNzIFNiYkRpYWxvZ0VsZW1lbnQgZXh0ZW5kcyBTYmJPdmVybGF5QmFzZUVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKiogQmFja2Ryb3AgY2xpY2sgYWN0aW9uLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdiYWNrZHJvcC1hY3Rpb24nIH0pIHB1YmxpYyBhY2Nlc3NvciBiYWNrZHJvcEFjdGlvbjogJ2Nsb3NlJyB8ICdub25lJyA9XG4gICAgJ2Nsb3NlJztcblxuICAvLyBXZSB1c2UgYSB0aW1lb3V0IGFzIGEgd29ya2Fyb3VuZCB0byB0aGUgXCJSZXNpemVPYnNlcnZlciBsb29wIGNvbXBsZXRlZCB3aXRoIHVuZGVsaXZlcmVkIG5vdGlmaWNhdGlvbnNcIiBlcnJvci5cbiAgLy8gRm9yIG1vcmUgZGV0YWlsczpcbiAgLy8gLSBodHRwczovL2dpdGh1Yi5jb20vV0lDRy9yZXNpemUtb2JzZXJ2ZXIvaXNzdWVzLzM4I2lzc3VlY29tbWVudC00MjIxMjYwMDZcbiAgLy8gLSBodHRwczovL2dpdGh1Yi5jb20vanVnZ2xlL3Jlc2l6ZS1vYnNlcnZlci9pc3N1ZXMvMTAzI2lzc3VlY29tbWVudC0xNzExMTQ4Mjg1XG4gIHByaXZhdGUgX2RpYWxvZ0NvbnRlbnRSZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVDb250cm9sbGVyKHRoaXMsIHtcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgc2tpcEluaXRpYWw6IHRydWUsXG4gICAgY2FsbGJhY2s6ICgpID0+IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5fb25Db250ZW50UmVzaXplKCkpLFxuICB9KTtcblxuICBwcml2YXRlIF9kaWFsb2dUaXRsZUVsZW1lbnQ6IFNiYkRpYWxvZ1RpdGxlRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9kaWFsb2dUaXRsZUhlaWdodD86IG51bWJlcjtcbiAgcHJpdmF0ZSBfZGlhbG9nQ29udGVudEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2RpYWxvZ0FjdGlvbnNFbGVtZW50OiBTYmJEaWFsb2dBY3Rpb25zRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPbkRpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9vdmVyZmxvd3M6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbGFzdFNjcm9sbCA9IDA7XG4gIHByaXZhdGUgX2RpYWxvZ0lkID0gYHNiYi1kaWFsb2ctJHtuZXh0SWQrK31gO1xuICBwcm90ZWN0ZWQgY2xvc2VBdHRyaWJ1dGU6IHN0cmluZyA9ICdzYmItZGlhbG9nLWNsb3NlJztcblxuICAvKiogT3BlbnMgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdjbG9zZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubGFzdEZvY3VzZWRFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblxuICAgIC8vIEluaXRpYWxpemUgZGlhbG9nIGVsZW1lbnRzXG4gICAgdGhpcy5fZGlhbG9nVGl0bGVFbGVtZW50ID0gdGhpcy5xdWVyeVNlbGVjdG9yKCdzYmItZGlhbG9nLXRpdGxlJyk7XG4gICAgdGhpcy5fZGlhbG9nQ29udGVudEVsZW1lbnQgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3NiYi1kaWFsb2ctY29udGVudCcpPy5zaGFkb3dSb290IVxuICAgICAgLmZpcnN0RWxlbWVudENoaWxkIGFzIEhUTUxFbGVtZW50O1xuICAgIHRoaXMuX2RpYWxvZ0FjdGlvbnNFbGVtZW50ID0gdGhpcy5xdWVyeVNlbGVjdG9yKCdzYmItZGlhbG9nLWFjdGlvbnMnKTtcblxuICAgIHRoaXMuX3N5bmNOZWdhdGl2ZSgpO1xuXG4gICAgaWYgKCF0aGlzLndpbGxPcGVuLmVtaXQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnN0YXRlID0gJ29wZW5pbmcnO1xuXG4gICAgLy8gQWRkIHRoaXMgZGlhbG9nIHRvIHRoZSBnbG9iYWwgY29sbGVjdGlvblxuICAgIG92ZXJsYXlSZWZzLnB1c2godGhpcyBhcyBTYmJEaWFsb2dFbGVtZW50KTtcbiAgICB0aGlzLl9kaWFsb2dDb250ZW50UmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudCk7XG5cbiAgICAvLyBEaXNhYmxlIHNjcm9sbGluZyBmb3IgY29udGVudCBiZWxvdyB0aGUgZGlhbG9nXG4gICAgdGhpcy5zY3JvbGxIYW5kbGVyLmRpc2FibGVTY3JvbGwoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgLy8gQ2xvc2UgZGlhbG9nIG9uIGJhY2tkcm9wIGNsaWNrXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIHRoaXMuX3BvaW50ZXJEb3duTGlzdGVuZXIsIHtcbiAgICAgIHNpZ25hbDogdGhpcy5vdmVybGF5Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCB0aGlzLl9jbG9zZU9uQmFja2Ryb3BDbGljaywge1xuICAgICAgc2lnbmFsOiB0aGlzLm92ZXJsYXlDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgLy8gU3luY2hyb25pemUgdGhlIG5lZ2F0aXZlIHN0YXRlIGJlZm9yZSB0aGUgZmlyc3Qgb3BlbmluZyB0byBhdm9pZCBhIHBvc3NpYmxlIGNvbG9yIGZsYXNoIGlmIGl0IGlzIG5lZ2F0aXZlLlxuICAgIHRoaXMuX2RpYWxvZ1RpdGxlRWxlbWVudCA9IHRoaXMucXVlcnlTZWxlY3Rvcignc2JiLWRpYWxvZy10aXRsZScpITtcbiAgICB0aGlzLl9zeW5jTmVnYXRpdmUoKTtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCduZWdhdGl2ZScpKSB7XG4gICAgICB0aGlzLl9zeW5jTmVnYXRpdmUoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXR0YWNoT3Blbk92ZXJsYXlFdmVudHMoKTogdm9pZCB7XG4gICAgc3VwZXIuYXR0YWNoT3Blbk92ZXJsYXlFdmVudHMoKTtcblxuICAgIC8vIElmIHRoZSBjb250ZW50IG92ZXJmbG93cywgc2hvdy9oaWRlIHRoZSBkaWFsb2cgaGVhZGVyIG9uIHNjcm9sbC5cbiAgICB0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4gdGhpcy5fb25Db250ZW50U2Nyb2xsKCksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMub3Blbk92ZXJsYXlDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKCkgPT4gdGhpcy5fc2V0SGlkZUhlYWRlckRhdGFBdHRyaWJ1dGUoZmFsc2UpLCB7XG4gICAgICBzaWduYWw6IHRoaXMub3Blbk92ZXJsYXlDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFdhaXQgZm9yIGRpYWxvZyB0cmFuc2l0aW9uIHRvIGNvbXBsZXRlLlxuICAvLyBJbiByYXJlIGNhc2VzLCBpdCBjYW4gYmUgdGhhdCB0aGUgYW5pbWF0aW9uRW5kIGV2ZW50IGlzIHRyaWdnZXJlZCB0d2ljZS5cbiAgLy8gVG8gYXZvaWQgZW50ZXJpbmcgYSBjb3JydXB0IHN0YXRlLCBleGl0IHdoZW4gc3RhdGUgaXMgbm90IGV4cGVjdGVkLlxuICBwcm90ZWN0ZWQgb25PdmVybGF5QW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3BlbicgJiYgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLnN0YXRlID0gJ29wZW5lZCc7XG4gICAgICB0aGlzLmRpZE9wZW4uZW1pdCgpO1xuICAgICAgdGhpcy5pbmVydENvbnRyb2xsZXIuYWN0aXZhdGUoKTtcbiAgICAgIHRoaXMuYXR0YWNoT3Blbk92ZXJsYXlFdmVudHMoKTtcbiAgICAgIHRoaXMuc2V0T3ZlcmxheUZvY3VzKCk7XG4gICAgICAvLyBVc2UgdGltZW91dCB0byByZWFkIGxhYmVsIGFmdGVyIGZvY3VzZWQgZWxlbWVudFxuICAgICAgc2V0VGltZW91dCgoKSA9PlxuICAgICAgICB0aGlzLnNldEFyaWFMaXZlUmVmQ29udGVudChcbiAgICAgICAgICB0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbCB8fCB0aGlzLl9kaWFsb2dUaXRsZUVsZW1lbnQ/LmlubmVyVGV4dC50cmltKCksXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgdGhpcy5mb2N1c0hhbmRsZXIudHJhcCh0aGlzKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZScgJiYgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9zZXRIaWRlSGVhZGVyRGF0YUF0dHJpYnV0ZShmYWxzZSk7XG4gICAgICB0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudD8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgICB0aGlzLmluZXJ0Q29udHJvbGxlci5kZWFjdGl2YXRlKCk7XG4gICAgICBzZXRNb2RhbGl0eU9uTmV4dEZvY3VzKHRoaXMubGFzdEZvY3VzZWRFbGVtZW50KTtcbiAgICAgIC8vIE1hbnVhbGx5IGZvY3VzIGxhc3QgZm9jdXNlZCBlbGVtZW50XG4gICAgICB0aGlzLmxhc3RGb2N1c2VkRWxlbWVudD8uZm9jdXMoKTtcbiAgICAgIHRoaXMub3Blbk92ZXJsYXlDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5mb2N1c0hhbmRsZXIuZGlzY29ubmVjdCgpO1xuICAgICAgaWYgKHRoaXMuX2RpYWxvZ0NvbnRlbnRFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuX2RpYWxvZ0NvbnRlbnRSZXNpemVPYnNlcnZlci51bm9ic2VydmUodGhpcy5fZGlhbG9nQ29udGVudEVsZW1lbnQpO1xuICAgICAgfVxuICAgICAgdGhpcy5yZW1vdmVJbnN0YW5jZUZyb21HbG9iYWxDb2xsZWN0aW9uKCk7XG4gICAgICAvLyBFbmFibGUgc2Nyb2xsaW5nIGZvciBjb250ZW50IGJlbG93IHRoZSBkaWFsb2cgaWYgbm8gZGlhbG9nIGlzIG9wZW5cbiAgICAgIGlmICghb3ZlcmxheVJlZnMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsSGFuZGxlci5lbmFibGVTY3JvbGwoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZGlkQ2xvc2UuZW1pdCh7XG4gICAgICAgIHJldHVyblZhbHVlOiB0aGlzLnJldHVyblZhbHVlLFxuICAgICAgICBjbG9zZVRhcmdldDogdGhpcy5vdmVybGF5Q2xvc2VFbGVtZW50LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0IGZvY3VzIG9uIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudC5cbiAgcHJvdGVjdGVkIHNldE92ZXJsYXlGb2N1cygpOiB2b2lkIHtcbiAgICBjb25zdCBmaXJzdEZvY3VzYWJsZSA9IGdldEZpcnN0Rm9jdXNhYmxlRWxlbWVudChcbiAgICAgIEFycmF5LmZyb20odGhpcy5jaGlsZHJlbikuZmlsdGVyKChlKTogZSBpcyBIVE1MRWxlbWVudCA9PiBlIGluc3RhbmNlb2Ygd2luZG93LkhUTUxFbGVtZW50KSxcbiAgICApO1xuICAgIHNldE1vZGFsaXR5T25OZXh0Rm9jdXMoZmlyc3RGb2N1c2FibGUpO1xuICAgIGZpcnN0Rm9jdXNhYmxlPy5mb2N1cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3luY05lZ2F0aXZlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kaWFsb2dUaXRsZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2RpYWxvZ1RpdGxlRWxlbWVudC5uZWdhdGl2ZSA9IHRoaXMubmVnYXRpdmU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2RpYWxvZ0FjdGlvbnNFbGVtZW50KSB7XG4gICAgICB0aGlzLl9kaWFsb2dBY3Rpb25zRWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtbmVnYXRpdmUnLCB0aGlzLm5lZ2F0aXZlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbkNvbnRlbnRTY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGhhc1Zpc2libGVIZWFkZXIgPSB0aGlzLmRhdGFzZXQuaGlkZUhlYWRlciA9PT0gdW5kZWZpbmVkO1xuXG4gICAgLy8gQ2hlY2sgd2hldGhlciBoaWRpbmcgdGhlIGhlYWRlciB3b3VsZCBtYWtlIHRoZSBzY3JvbGxiYXIgZGlzYXBwZWFyXG4gICAgLy8gYW5kIHByZXZlbnQgdGhlIGhpZGluZyBhbmltYXRpb24gaWYgc28uXG4gICAgaWYgKFxuICAgICAgaGFzVmlzaWJsZUhlYWRlciAmJlxuICAgICAgdGhpcy5fZGlhbG9nQ29udGVudEVsZW1lbnQuY2xpZW50SGVpZ2h0ICsgdGhpcy5fZGlhbG9nVGl0bGVIZWlnaHQhID49XG4gICAgICAgIHRoaXMuX2RpYWxvZ0NvbnRlbnRFbGVtZW50LnNjcm9sbEhlaWdodFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRTY3JvbGwgPSB0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudC5zY3JvbGxUb3A7XG4gICAgaWYgKFxuICAgICAgTWF0aC5yb3VuZChjdXJyZW50U2Nyb2xsICsgdGhpcy5fZGlhbG9nQ29udGVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSA+PVxuICAgICAgdGhpcy5fZGlhbG9nQ29udGVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0XG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIENoZWNrIHdoZXRoZXIgaXMgc2Nyb2xsaW5nIGRvd24gb3IgdXAuXG4gICAgaWYgKGN1cnJlbnRTY3JvbGwgPiAwICYmIHRoaXMuX2xhc3RTY3JvbGwgPCBjdXJyZW50U2Nyb2xsKSB7XG4gICAgICAvLyBTY3JvbGxpbmcgZG93blxuICAgICAgdGhpcy5fc2V0SGlkZUhlYWRlckRhdGFBdHRyaWJ1dGUodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFNjcm9sbGluZyB1cFxuICAgICAgdGhpcy5fc2V0SGlkZUhlYWRlckRhdGFBdHRyaWJ1dGUoZmFsc2UpO1xuICAgIH1cbiAgICAvLyBgY3VycmVudFNjcm9sbGAgY2FuIGJlIG5lZ2F0aXZlLCBlLmcuIG9uIG1vYmlsZTsgdGhpcyBpcyBub3QgYWxsb3dlZC5cbiAgICB0aGlzLl9sYXN0U2Nyb2xsID0gY3VycmVudFNjcm9sbCA8PSAwID8gMCA6IGN1cnJlbnRTY3JvbGw7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgcG9pbnRlcmRvd24gZXZlbnQgdGFyZ2V0IGlzIHRyaWdnZXJlZCBvbiB0aGUgZGlhbG9nLlxuICBwcml2YXRlIF9wb2ludGVyRG93bkxpc3RlbmVyID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAodGhpcy5iYWNrZHJvcEFjdGlvbiAhPT0gJ2Nsb3NlJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uRGlhbG9nID0gZXZlbnRcbiAgICAgIC5jb21wb3NlZFBhdGgoKVxuICAgICAgLmZpbHRlcigoZSk6IGUgaXMgSFRNTEVsZW1lbnQgPT4gZSBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MRWxlbWVudClcbiAgICAgIC5zb21lKCh0YXJnZXQpID0+IHRhcmdldC5pZCA9PT0gdGhpcy5fZGlhbG9nSWQpO1xuICB9O1xuXG4gIC8vIENsb3NlIGRpYWxvZyBvbiBiYWNrZHJvcCBjbGljay5cbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLmJhY2tkcm9wQWN0aW9uICE9PSAnY2xvc2UnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgIXRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uRGlhbG9nICYmXG4gICAgICAhZXZlbnRcbiAgICAgICAgLmNvbXBvc2VkUGF0aCgpXG4gICAgICAgIC5maWx0ZXIoKGUpOiBlIGlzIEhUTUxFbGVtZW50ID0+IGUgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpXG4gICAgICAgIC5zb21lKCh0YXJnZXQpID0+IHRhcmdldC5pZCA9PT0gdGhpcy5fZGlhbG9nSWQpXG4gICAgKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX3NldERpYWxvZ0hlYWRlckhlaWdodCgpOiB2b2lkIHtcbiAgICB0aGlzLl9kaWFsb2dUaXRsZUhlaWdodCA9IHRoaXMuX2RpYWxvZ1RpdGxlRWxlbWVudD8uc2hhZG93Um9vdCEuZmlyc3RFbGVtZW50Q2hpbGQhLmNsaWVudEhlaWdodDtcbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1kaWFsb2ctaGVhZGVyLWhlaWdodCcsIGAke3RoaXMuX2RpYWxvZ1RpdGxlSGVpZ2h0fXB4YCk7XG4gIH1cblxuICBwcml2YXRlIF9vbkNvbnRlbnRSZXNpemUoKTogdm9pZCB7XG4gICAgdGhpcy5fc2V0RGlhbG9nSGVhZGVySGVpZ2h0KCk7XG4gICAgLy8gQ2hlY2sgd2hldGhlciB0aGUgY29udGVudCBvdmVyZmxvd3MgYW5kIHNldCB0aGUgYG92ZXJmbG93c2AgYXR0cmlidXRlLlxuICAgIHRoaXMuX292ZXJmbG93cyA9IHRoaXMuX2RpYWxvZ0NvbnRlbnRFbGVtZW50XG4gICAgICA/IHRoaXMuX2RpYWxvZ0NvbnRlbnRFbGVtZW50Py5zY3JvbGxIZWlnaHQgPiB0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudD8uY2xpZW50SGVpZ2h0XG4gICAgICA6IGZhbHNlO1xuICAgIHRoaXMuX3NldE92ZXJmbG93c0RhdGFBdHRyaWJ1dGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldEhpZGVIZWFkZXJEYXRhQXR0cmlidXRlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgaGlkZU9uU2Nyb2xsID0gdGhpcy5fZGlhbG9nVGl0bGVFbGVtZW50Py5oaWRlT25TY3JvbGwgPz8gZmFsc2U7XG4gICAgY29uc3QgaGlkZUhlYWRlciA9XG4gICAgICB0eXBlb2YgaGlkZU9uU2Nyb2xsID09PSAnYm9vbGVhbidcbiAgICAgICAgPyBoaWRlT25TY3JvbGxcbiAgICAgICAgOiBpc0JyZWFrcG9pbnQoJ3plcm8nLCBoaWRlT25TY3JvbGwsIHsgaW5jbHVkZU1heEJyZWFrcG9pbnQ6IHRydWUgfSk7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtaGlkZS1oZWFkZXInLCAhaGlkZUhlYWRlciA/IGZhbHNlIDogdmFsdWUpO1xuICAgIGlmICh0aGlzLl9kaWFsb2dUaXRsZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2RpYWxvZ1RpdGxlRWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtaGlkZS1oZWFkZXInLCAhaGlkZUhlYWRlciA/IGZhbHNlIDogdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NldE92ZXJmbG93c0RhdGFBdHRyaWJ1dGUoKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtb3ZlcmZsb3dzJywgdGhpcy5fb3ZlcmZsb3dzKTtcbiAgICB0aGlzLl9kaWFsb2dUaXRsZUVsZW1lbnQ/LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1vdmVyZmxvd3MnLCB0aGlzLl9vdmVyZmxvd3MpO1xuICAgIHRoaXMuX2RpYWxvZ0FjdGlvbnNFbGVtZW50Py50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtb3ZlcmZsb3dzJywgdGhpcy5fb3ZlcmZsb3dzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1kaWFsb2dfX2NvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgQGFuaW1hdGlvbmVuZD0keyhldmVudDogQW5pbWF0aW9uRXZlbnQpID0+IHRoaXMub25PdmVybGF5QW5pbWF0aW9uRW5kKGV2ZW50KX1cbiAgICAgICAgICBjbGFzcz1cInNiYi1kaWFsb2dcIlxuICAgICAgICAgIGlkPSR7dGhpcy5fZGlhbG9nSWR9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBAY2xpY2s9JHsoZXZlbnQ6IEV2ZW50KSA9PiB0aGlzLmNsb3NlT25TYmJPdmVybGF5Q2xvc2VDbGljayhldmVudCl9XG4gICAgICAgICAgICBjbGFzcz1cInNiYi1kaWFsb2dfX3dyYXBwZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzYmItc2NyZWVuLXJlYWRlci1vbmx5IGFyaWEtbGl2ZT1cInBvbGl0ZVwiPjwvc2JiLXNjcmVlbi1yZWFkZXItb25seT5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZGlhbG9nJzogU2JiRGlhbG9nRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIl9hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWVBLElBQUksU0FBUztJQWdCUCxvQkFBZ0IsTUFBQTs7MEJBRHJCLGNBQWMsWUFBWSxDQUFDOzs7O29CQUNHOzs7O0FBQVIsRUFBQSxtQkFBUSxZQUFxQjtBQUFBOztBQUlOO0FBQWdCLHlCQUFBLGtDQUFBLGtCQUFBLE1BQUEsOEJBQzFELE9BQU87QUFNRCxXQUFBLGdDQUErQixrQkFBQSxNQUFBLGlDQUFBLEdBQUEsSUFBSSxpQkFBaUIsTUFBTTtBQUFBLFFBQ2hFLFFBQVE7QUFBQSxRQUNSLGFBQWE7QUFBQSxRQUNiLFVBQVUsTUFBTSxXQUFXLE1BQU0sS0FBSyxpQkFBa0IsQ0FBQTtBQUFBLE1BQUEsQ0FDekQ7QUFFTyxXQUFtQixzQkFBaUM7QUFFcEQsV0FBcUIsd0JBQXVCO0FBQzVDLFdBQXFCLHdCQUFtQztBQUN4RCxXQUEyQiw4QkFBWTtBQUN2QyxXQUFVLGFBQVk7QUFDdEIsV0FBVyxjQUFHO0FBQ2QsV0FBQSxZQUFZLGNBQWMsUUFBUTtBQUNoQyxXQUFjLGlCQUFXO0FBd0szQixXQUFBLHVCQUF1QixDQUFDLFVBQTZC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
439
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvZGlhbG9nL2RpYWxvZy9kaWFsb2cudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB7IGdldEZpcnN0Rm9jdXNhYmxlRWxlbWVudCwgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyB9IGZyb20gJy4uLy4uL2NvcmUvYTExeS5qcyc7XG5pbXBvcnQgeyBpc0JyZWFrcG9pbnQgfSBmcm9tICcuLi8uLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBvdmVybGF5UmVmcywgU2JiT3ZlcmxheUJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vb3ZlcmxheS5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRpYWxvZ0FjdGlvbnNFbGVtZW50IH0gZnJvbSAnLi4vZGlhbG9nLWFjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJEaWFsb2dUaXRsZUVsZW1lbnQgfSBmcm9tICcuLi9kaWFsb2ctdGl0bGUuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9kaWFsb2cuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9zY3JlZW4tcmVhZGVyLW9ubHkuanMnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhbiBpbnRlcmFjdGl2ZSBvdmVybGF5IGVsZW1lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBwcm92aWRlIGEgYHNiYi1kaWFsb2ctdGl0bGVgLCBgc2JiLWRpYWxvZy1jb250ZW50YCBhbmQgYW4gb3B0aW9uYWwgYHNiYi1kaWFsb2ctYWN0aW9uc2AuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWRpYWxvZ2Agc3RhcnRzIHRoZSBvcGVuaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1kaWFsb2dgIGlzIG9wZW5lZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWRpYWxvZ2AgYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8U2JiT3ZlcmxheUNsb3NlRXZlbnREZXRhaWxzPn0gZGlkQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1kaWFsb2dgIGlzIGNsb3NlZC5cbiAqIEBjc3Nwcm9wIFstLXNiYi1kaWFsb2ctei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItZGlhbG9nJylcbmNsYXNzIFNiYkRpYWxvZ0VsZW1lbnQgZXh0ZW5kcyBTYmJPdmVybGF5QmFzZUVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKiogQmFja2Ryb3AgY2xpY2sgYWN0aW9uLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdiYWNrZHJvcC1hY3Rpb24nIH0pIHB1YmxpYyBhY2Nlc3NvciBiYWNrZHJvcEFjdGlvbjogJ2Nsb3NlJyB8ICdub25lJyA9XG4gICAgJ2Nsb3NlJztcblxuICAvLyBXZSB1c2UgYSB0aW1lb3V0IGFzIGEgd29ya2Fyb3VuZCB0byB0aGUgXCJSZXNpemVPYnNlcnZlciBsb29wIGNvbXBsZXRlZCB3aXRoIHVuZGVsaXZlcmVkIG5vdGlmaWNhdGlvbnNcIiBlcnJvci5cbiAgLy8gRm9yIG1vcmUgZGV0YWlsczpcbiAgLy8gLSBodHRwczovL2dpdGh1Yi5jb20vV0lDRy9yZXNpemUtb2JzZXJ2ZXIvaXNzdWVzLzM4I2lzc3VlY29tbWVudC00MjIxMjYwMDZcbiAgLy8gLSBodHRwczovL2dpdGh1Yi5jb20vanVnZ2xlL3Jlc2l6ZS1vYnNlcnZlci9pc3N1ZXMvMTAzI2lzc3VlY29tbWVudC0xNzExMTQ4Mjg1XG4gIHByaXZhdGUgX2RpYWxvZ0NvbnRlbnRSZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVDb250cm9sbGVyKHRoaXMsIHtcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgc2tpcEluaXRpYWw6IHRydWUsXG4gICAgY2FsbGJhY2s6ICgpID0+IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5fb25Db250ZW50UmVzaXplKCkpLFxuICB9KTtcblxuICBwcml2YXRlIF9kaWFsb2dUaXRsZUVsZW1lbnQ6IFNiYkRpYWxvZ1RpdGxlRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9kaWFsb2dUaXRsZUhlaWdodD86IG51bWJlcjtcbiAgcHJpdmF0ZSBfZGlhbG9nQ29udGVudEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2RpYWxvZ0FjdGlvbnNFbGVtZW50OiBTYmJEaWFsb2dBY3Rpb25zRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPbkRpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9vdmVyZmxvd3M6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbGFzdFNjcm9sbCA9IDA7XG4gIHByaXZhdGUgX2RpYWxvZ0lkID0gYHNiYi1kaWFsb2ctJHtuZXh0SWQrK31gO1xuICBwcm90ZWN0ZWQgY2xvc2VBdHRyaWJ1dGU6IHN0cmluZyA9ICdzYmItZGlhbG9nLWNsb3NlJztcblxuICAvKiogT3BlbnMgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdjbG9zZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubGFzdEZvY3VzZWRFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblxuICAgIC8vIEluaXRpYWxpemUgZGlhbG9nIGVsZW1lbnRzXG4gICAgdGhpcy5fZGlhbG9nVGl0bGVFbGVtZW50ID0gdGhpcy5xdWVyeVNlbGVjdG9yKCdzYmItZGlhbG9nLXRpdGxlJyk7XG4gICAgdGhpcy5fZGlhbG9nQ29udGVudEVsZW1lbnQgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3NiYi1kaWFsb2ctY29udGVudCcpPy5zaGFkb3dSb290IVxuICAgICAgLmZpcnN0RWxlbWVudENoaWxkIGFzIEhUTUxFbGVtZW50O1xuICAgIHRoaXMuX2RpYWxvZ0FjdGlvbnNFbGVtZW50ID0gdGhpcy5xdWVyeVNlbGVjdG9yKCdzYmItZGlhbG9nLWFjdGlvbnMnKTtcblxuICAgIHRoaXMuX3N5bmNOZWdhdGl2ZSgpO1xuXG4gICAgaWYgKCF0aGlzLndpbGxPcGVuLmVtaXQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnN0YXRlID0gJ29wZW5pbmcnO1xuXG4gICAgLy8gQWRkIHRoaXMgZGlhbG9nIHRvIHRoZSBnbG9iYWwgY29sbGVjdGlvblxuICAgIG92ZXJsYXlSZWZzLnB1c2godGhpcyBhcyBTYmJEaWFsb2dFbGVtZW50KTtcbiAgICB0aGlzLl9kaWFsb2dDb250ZW50UmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudCk7XG5cbiAgICAvLyBEaXNhYmxlIHNjcm9sbGluZyBmb3IgY29udGVudCBiZWxvdyB0aGUgZGlhbG9nXG4gICAgdGhpcy5zY3JvbGxIYW5kbGVyLmRpc2FibGVTY3JvbGwoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgLy8gQ2xvc2UgZGlhbG9nIG9uIGJhY2tkcm9wIGNsaWNrXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIHRoaXMuX3BvaW50ZXJEb3duTGlzdGVuZXIsIHtcbiAgICAgIHNpZ25hbDogdGhpcy5vdmVybGF5Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCB0aGlzLl9jbG9zZU9uQmFja2Ryb3BDbGljaywge1xuICAgICAgc2lnbmFsOiB0aGlzLm92ZXJsYXlDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgLy8gU3luY2hyb25pemUgdGhlIG5lZ2F0aXZlIHN0YXRlIGJlZm9yZSB0aGUgZmlyc3Qgb3BlbmluZyB0byBhdm9pZCBhIHBvc3NpYmxlIGNvbG9yIGZsYXNoIGlmIGl0IGlzIG5lZ2F0aXZlLlxuICAgIHRoaXMuX2RpYWxvZ1RpdGxlRWxlbWVudCA9IHRoaXMucXVlcnlTZWxlY3Rvcignc2JiLWRpYWxvZy10aXRsZScpITtcbiAgICB0aGlzLl9zeW5jTmVnYXRpdmUoKTtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCduZWdhdGl2ZScpKSB7XG4gICAgICB0aGlzLl9zeW5jTmVnYXRpdmUoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXR0YWNoT3Blbk92ZXJsYXlFdmVudHMoKTogdm9pZCB7XG4gICAgc3VwZXIuYXR0YWNoT3Blbk92ZXJsYXlFdmVudHMoKTtcblxuICAgIC8vIElmIHRoZSBjb250ZW50IG92ZXJmbG93cywgc2hvdy9oaWRlIHRoZSBkaWFsb2cgaGVhZGVyIG9uIHNjcm9sbC5cbiAgICB0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4gdGhpcy5fb25Db250ZW50U2Nyb2xsKCksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMub3Blbk92ZXJsYXlDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKCkgPT4gdGhpcy5fc2V0SGlkZUhlYWRlckRhdGFBdHRyaWJ1dGUoZmFsc2UpLCB7XG4gICAgICBzaWduYWw6IHRoaXMub3Blbk92ZXJsYXlDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFdhaXQgZm9yIGRpYWxvZyB0cmFuc2l0aW9uIHRvIGNvbXBsZXRlLlxuICAvLyBJbiByYXJlIGNhc2VzLCBpdCBjYW4gYmUgdGhhdCB0aGUgYW5pbWF0aW9uRW5kIGV2ZW50IGlzIHRyaWdnZXJlZCB0d2ljZS5cbiAgLy8gVG8gYXZvaWQgZW50ZXJpbmcgYSBjb3JydXB0IHN0YXRlLCBleGl0IHdoZW4gc3RhdGUgaXMgbm90IGV4cGVjdGVkLlxuICBwcm90ZWN0ZWQgb25PdmVybGF5QW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3BlbicgJiYgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLnN0YXRlID0gJ29wZW5lZCc7XG4gICAgICB0aGlzLmRpZE9wZW4uZW1pdCgpO1xuICAgICAgdGhpcy5pbmVydENvbnRyb2xsZXIuYWN0aXZhdGUoKTtcbiAgICAgIHRoaXMuYXR0YWNoT3Blbk92ZXJsYXlFdmVudHMoKTtcbiAgICAgIHRoaXMuc2V0T3ZlcmxheUZvY3VzKCk7XG4gICAgICAvLyBVc2UgdGltZW91dCB0byByZWFkIGxhYmVsIGFmdGVyIGZvY3VzZWQgZWxlbWVudFxuICAgICAgc2V0VGltZW91dCgoKSA9PlxuICAgICAgICB0aGlzLnNldEFyaWFMaXZlUmVmQ29udGVudChcbiAgICAgICAgICB0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbCB8fCB0aGlzLl9kaWFsb2dUaXRsZUVsZW1lbnQ/LmlubmVyVGV4dC50cmltKCksXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgdGhpcy5mb2N1c0hhbmRsZXIudHJhcCh0aGlzKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZScgJiYgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9zZXRIaWRlSGVhZGVyRGF0YUF0dHJpYnV0ZShmYWxzZSk7XG4gICAgICB0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudD8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgICB0aGlzLmluZXJ0Q29udHJvbGxlci5kZWFjdGl2YXRlKCk7XG4gICAgICBzZXRNb2RhbGl0eU9uTmV4dEZvY3VzKHRoaXMubGFzdEZvY3VzZWRFbGVtZW50KTtcbiAgICAgIC8vIE1hbnVhbGx5IGZvY3VzIGxhc3QgZm9jdXNlZCBlbGVtZW50XG4gICAgICB0aGlzLmxhc3RGb2N1c2VkRWxlbWVudD8uZm9jdXMoKTtcbiAgICAgIHRoaXMub3Blbk92ZXJsYXlDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5mb2N1c0hhbmRsZXIuZGlzY29ubmVjdCgpO1xuICAgICAgaWYgKHRoaXMuX2RpYWxvZ0NvbnRlbnRFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuX2RpYWxvZ0NvbnRlbnRSZXNpemVPYnNlcnZlci51bm9ic2VydmUodGhpcy5fZGlhbG9nQ29udGVudEVsZW1lbnQpO1xuICAgICAgfVxuICAgICAgdGhpcy5yZW1vdmVJbnN0YW5jZUZyb21HbG9iYWxDb2xsZWN0aW9uKCk7XG4gICAgICAvLyBFbmFibGUgc2Nyb2xsaW5nIGZvciBjb250ZW50IGJlbG93IHRoZSBkaWFsb2cgaWYgbm8gZGlhbG9nIGlzIG9wZW5cbiAgICAgIGlmICghb3ZlcmxheVJlZnMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsSGFuZGxlci5lbmFibGVTY3JvbGwoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZGlkQ2xvc2UuZW1pdCh7XG4gICAgICAgIHJldHVyblZhbHVlOiB0aGlzLnJldHVyblZhbHVlLFxuICAgICAgICBjbG9zZVRhcmdldDogdGhpcy5vdmVybGF5Q2xvc2VFbGVtZW50LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0IGZvY3VzIG9uIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudC5cbiAgcHJvdGVjdGVkIHNldE92ZXJsYXlGb2N1cygpOiB2b2lkIHtcbiAgICBjb25zdCBmaXJzdEZvY3VzYWJsZSA9IGdldEZpcnN0Rm9jdXNhYmxlRWxlbWVudChcbiAgICAgIEFycmF5LmZyb20odGhpcy5jaGlsZHJlbikuZmlsdGVyKChlKTogZSBpcyBIVE1MRWxlbWVudCA9PiBlIGluc3RhbmNlb2Ygd2luZG93LkhUTUxFbGVtZW50KSxcbiAgICApO1xuICAgIHNldE1vZGFsaXR5T25OZXh0Rm9jdXMoZmlyc3RGb2N1c2FibGUpO1xuICAgIGZpcnN0Rm9jdXNhYmxlPy5mb2N1cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3luY05lZ2F0aXZlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kaWFsb2dUaXRsZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2RpYWxvZ1RpdGxlRWxlbWVudC5uZWdhdGl2ZSA9IHRoaXMubmVnYXRpdmU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2RpYWxvZ0FjdGlvbnNFbGVtZW50KSB7XG4gICAgICB0aGlzLl9kaWFsb2dBY3Rpb25zRWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtbmVnYXRpdmUnLCB0aGlzLm5lZ2F0aXZlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbkNvbnRlbnRTY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGhhc1Zpc2libGVIZWFkZXIgPSB0aGlzLmRhdGFzZXQuaGlkZUhlYWRlciA9PT0gdW5kZWZpbmVkO1xuXG4gICAgLy8gQ2hlY2sgd2hldGhlciBoaWRpbmcgdGhlIGhlYWRlciB3b3VsZCBtYWtlIHRoZSBzY3JvbGxiYXIgZGlzYXBwZWFyXG4gICAgLy8gYW5kIHByZXZlbnQgdGhlIGhpZGluZyBhbmltYXRpb24gaWYgc28uXG4gICAgaWYgKFxuICAgICAgaGFzVmlzaWJsZUhlYWRlciAmJlxuICAgICAgdGhpcy5fZGlhbG9nQ29udGVudEVsZW1lbnQuY2xpZW50SGVpZ2h0ICsgdGhpcy5fZGlhbG9nVGl0bGVIZWlnaHQhID49XG4gICAgICAgIHRoaXMuX2RpYWxvZ0NvbnRlbnRFbGVtZW50LnNjcm9sbEhlaWdodFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRTY3JvbGwgPSB0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudC5zY3JvbGxUb3A7XG4gICAgaWYgKFxuICAgICAgTWF0aC5yb3VuZChjdXJyZW50U2Nyb2xsICsgdGhpcy5fZGlhbG9nQ29udGVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSA+PVxuICAgICAgdGhpcy5fZGlhbG9nQ29udGVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0XG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIENoZWNrIHdoZXRoZXIgaXMgc2Nyb2xsaW5nIGRvd24gb3IgdXAuXG4gICAgaWYgKGN1cnJlbnRTY3JvbGwgPiAwICYmIHRoaXMuX2xhc3RTY3JvbGwgPCBjdXJyZW50U2Nyb2xsKSB7XG4gICAgICAvLyBTY3JvbGxpbmcgZG93blxuICAgICAgdGhpcy5fc2V0SGlkZUhlYWRlckRhdGFBdHRyaWJ1dGUodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFNjcm9sbGluZyB1cFxuICAgICAgdGhpcy5fc2V0SGlkZUhlYWRlckRhdGFBdHRyaWJ1dGUoZmFsc2UpO1xuICAgIH1cbiAgICAvLyBgY3VycmVudFNjcm9sbGAgY2FuIGJlIG5lZ2F0aXZlLCBlLmcuIG9uIG1vYmlsZTsgdGhpcyBpcyBub3QgYWxsb3dlZC5cbiAgICB0aGlzLl9sYXN0U2Nyb2xsID0gY3VycmVudFNjcm9sbCA8PSAwID8gMCA6IGN1cnJlbnRTY3JvbGw7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgcG9pbnRlcmRvd24gZXZlbnQgdGFyZ2V0IGlzIHRyaWdnZXJlZCBvbiB0aGUgZGlhbG9nLlxuICBwcml2YXRlIF9wb2ludGVyRG93bkxpc3RlbmVyID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAodGhpcy5iYWNrZHJvcEFjdGlvbiAhPT0gJ2Nsb3NlJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uRGlhbG9nID0gZXZlbnRcbiAgICAgIC5jb21wb3NlZFBhdGgoKVxuICAgICAgLmZpbHRlcigoZSk6IGUgaXMgSFRNTEVsZW1lbnQgPT4gZSBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MRWxlbWVudClcbiAgICAgIC5zb21lKCh0YXJnZXQpID0+IHRhcmdldC5pZCA9PT0gdGhpcy5fZGlhbG9nSWQpO1xuICB9O1xuXG4gIC8vIENsb3NlIGRpYWxvZyBvbiBiYWNrZHJvcCBjbGljay5cbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLmJhY2tkcm9wQWN0aW9uICE9PSAnY2xvc2UnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgIXRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uRGlhbG9nICYmXG4gICAgICAhZXZlbnRcbiAgICAgICAgLmNvbXBvc2VkUGF0aCgpXG4gICAgICAgIC5maWx0ZXIoKGUpOiBlIGlzIEhUTUxFbGVtZW50ID0+IGUgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpXG4gICAgICAgIC5zb21lKCh0YXJnZXQpID0+IHRhcmdldC5pZCA9PT0gdGhpcy5fZGlhbG9nSWQpXG4gICAgKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX3NldERpYWxvZ0hlYWRlckhlaWdodCgpOiB2b2lkIHtcbiAgICB0aGlzLl9kaWFsb2dUaXRsZUhlaWdodCA9IHRoaXMuX2RpYWxvZ1RpdGxlRWxlbWVudD8uc2hhZG93Um9vdCEuZmlyc3RFbGVtZW50Q2hpbGQhLmNsaWVudEhlaWdodDtcbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1kaWFsb2ctaGVhZGVyLWhlaWdodCcsIGAke3RoaXMuX2RpYWxvZ1RpdGxlSGVpZ2h0fXB4YCk7XG4gIH1cblxuICBwcml2YXRlIF9vbkNvbnRlbnRSZXNpemUoKTogdm9pZCB7XG4gICAgdGhpcy5fc2V0RGlhbG9nSGVhZGVySGVpZ2h0KCk7XG4gICAgLy8gQ2hlY2sgd2hldGhlciB0aGUgY29udGVudCBvdmVyZmxvd3MgYW5kIHNldCB0aGUgYG92ZXJmbG93c2AgYXR0cmlidXRlLlxuICAgIHRoaXMuX292ZXJmbG93cyA9IHRoaXMuX2RpYWxvZ0NvbnRlbnRFbGVtZW50XG4gICAgICA/IHRoaXMuX2RpYWxvZ0NvbnRlbnRFbGVtZW50Py5zY3JvbGxIZWlnaHQgPiB0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudD8uY2xpZW50SGVpZ2h0XG4gICAgICA6IGZhbHNlO1xuICAgIHRoaXMuX3NldE92ZXJmbG93c0RhdGFBdHRyaWJ1dGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldEhpZGVIZWFkZXJEYXRhQXR0cmlidXRlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgaGlkZU9uU2Nyb2xsID0gdGhpcy5fZGlhbG9nVGl0bGVFbGVtZW50Py5oaWRlT25TY3JvbGwgPz8gZmFsc2U7XG4gICAgY29uc3QgaGlkZUhlYWRlciA9XG4gICAgICB0eXBlb2YgaGlkZU9uU2Nyb2xsID09PSAnYm9vbGVhbidcbiAgICAgICAgPyBoaWRlT25TY3JvbGxcbiAgICAgICAgOiAoaXNCcmVha3BvaW50KCd6ZXJvJywgaGlkZU9uU2Nyb2xsLCB7IGluY2x1ZGVNYXhCcmVha3BvaW50OiB0cnVlIH0pID8/IGZhbHNlKTtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1oaWRlLWhlYWRlcicsICFoaWRlSGVhZGVyID8gZmFsc2UgOiB2YWx1ZSk7XG4gICAgaWYgKHRoaXMuX2RpYWxvZ1RpdGxlRWxlbWVudCkge1xuICAgICAgdGhpcy5fZGlhbG9nVGl0bGVFbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1oaWRlLWhlYWRlcicsICFoaWRlSGVhZGVyID8gZmFsc2UgOiB2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0T3ZlcmZsb3dzRGF0YUF0dHJpYnV0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1vdmVyZmxvd3MnLCB0aGlzLl9vdmVyZmxvd3MpO1xuICAgIHRoaXMuX2RpYWxvZ1RpdGxlRWxlbWVudD8udG9nZ2xlQXR0cmlidXRlKCdkYXRhLW92ZXJmbG93cycsIHRoaXMuX292ZXJmbG93cyk7XG4gICAgdGhpcy5fZGlhbG9nQWN0aW9uc0VsZW1lbnQ/LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1vdmVyZmxvd3MnLCB0aGlzLl9vdmVyZmxvd3MpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLWRpYWxvZ19fY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7KGV2ZW50OiBBbmltYXRpb25FdmVudCkgPT4gdGhpcy5vbk92ZXJsYXlBbmltYXRpb25FbmQoZXZlbnQpfVxuICAgICAgICAgIGNsYXNzPVwic2JiLWRpYWxvZ1wiXG4gICAgICAgICAgaWQ9JHt0aGlzLl9kaWFsb2dJZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIEBjbGljaz0keyhldmVudDogRXZlbnQpID0+IHRoaXMuY2xvc2VPblNiYk92ZXJsYXlDbG9zZUNsaWNrKGV2ZW50KX1cbiAgICAgICAgICAgIGNsYXNzPVwic2JiLWRpYWxvZ19fd3JhcHBlclwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNiYi1zY3JlZW4tcmVhZGVyLW9ubHkgYXJpYS1saXZlPVwicG9saXRlXCI+PC9zYmItc2NyZWVuLXJlYWRlci1vbmx5PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1kaWFsb2cnOiBTYmJEaWFsb2dFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZUEsSUFBSSxTQUFTO0lBZ0JQLG9CQUFnQixNQUFBOzswQkFEckIsY0FBYyxZQUFZLENBQUM7Ozs7b0JBQ0c7Ozs7QUFBUixFQUFBLG1CQUFRLFlBQXFCO0FBQUE7O0FBSU47QUFBZ0IseUJBQUEsa0NBQUEsa0JBQUEsTUFBQSw4QkFDMUQsT0FBTztBQU1ELFdBQUEsZ0NBQStCLGtCQUFBLE1BQUEsaUNBQUEsR0FBQSxJQUFJLGlCQUFpQixNQUFNO0FBQUEsUUFDaEUsUUFBUTtBQUFBLFFBQ1IsYUFBYTtBQUFBLFFBQ2IsVUFBVSxNQUFNLFdBQVcsTUFBTSxLQUFLLGlCQUFrQixDQUFBO0FBQUEsTUFBQSxDQUN6RDtBQUVPLFdBQW1CLHNCQUFpQztBQUVwRCxXQUFxQix3QkFBdUI7QUFDNUMsV0FBcUIsd0JBQW1DO0FBQ3hELFdBQTJCLDhCQUFZO0FBQ3ZDLFdBQVUsYUFBWTtBQUN0QixXQUFXLGNBQUc7QUFDZCxXQUFBLFlBQVksY0FBYyxRQUFRO0FBQ2hDLFdBQWMsaUJBQVc7QUF3SzNCLFdBQUEsdUJBQXVC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
@@ -17,6 +17,8 @@ export declare class SbbExpansionPanelHeaderElement extends SbbExpansionPanelHea
17
17
  private _toggleExpanded;
18
18
  private _abort;
19
19
  private _namedSlots;
20
+ private _mediaMatcher;
21
+ private _isHover;
20
22
  connectedCallback(): void;
21
23
  private _emitExpandedEvent;
22
24
  private _onMouseMovement;
@@ -1 +1 @@
1
- {"version":3,"file":"expansion-panel-header.d.ts","sourceRoot":"","sources":["../../../../../src/elements/expansion-panel/expansion-panel-header/expansion-panel-header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAG9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;;AAUnE;;;;;;GAMG;AACH,qBAKM,8BAA+B,SAAQ,mCAE5C;IACC,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;MAElB;IAEX,6DAA6D;IAC7D,OAAO,CAAC,eAAe,CAMrB;IACF,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,WAAW,CAAwE;IAE3E,iBAAiB,IAAI,IAAI;IAQzC,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,gBAAgB;IAQxB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;cAIV,cAAc,IAAI,cAAc;CAkBpD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,4BAA4B,EAAE,8BAA8B,CAAC;KAC9D;CACF"}
1
+ {"version":3,"file":"expansion-panel-header.d.ts","sourceRoot":"","sources":["../../../../../src/elements/expansion-panel/expansion-panel-header/expansion-panel-header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAG9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;;AAenE;;;;;;GAMG;AACH,qBAKM,8BAA+B,SAAQ,mCAE5C;IACC,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;MAElB;IAEX,6DAA6D;IAC7D,OAAO,CAAC,eAAe,CAMrB;IACF,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,WAAW,CAAwE;IAC3F,OAAO,CAAC,aAAa,CAElB;IAEH,OAAO,CAAC,QAAQ,CAAoE;IAEpE,iBAAiB,IAAI,IAAI;IAQzC,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,gBAAgB;IAQxB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;cAIV,cAAc,IAAI,cAAc;CAkBpD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,4BAA4B,EAAE,8BAA8B,CAAC;KAC9D;CACF"}
@@ -2,7 +2,7 @@ import { __esDecorate, __runInitializers } from "tslib";
2
2
  import { css, html, nothing } from "lit";
3
3
  import { customElement } from "lit/decorators.js";
4
4
  import { SbbButtonBaseElement } from "../core/base-elements.js";
5
- import { SbbConnectedAbortController, SbbSlotStateController } from "../core/controllers.js";
5
+ import { SbbConnectedAbortController, SbbSlotStateController, SbbMediaMatcherController, SbbMediaQueryHover } from "../core/controllers.js";
6
6
  import { hostAttributes } from "../core/decorators.js";
7
7
  import { EventEmitter } from "../core/eventing.js";
8
8
  import { SbbDisabledTabIndexActionMixin } from "../core/mixins.js";
@@ -114,6 +114,10 @@ let SbbExpansionPanelHeaderElement = (() => {
114
114
  });
115
115
  this._abort = new SbbConnectedAbortController(this);
116
116
  this._namedSlots = new SbbSlotStateController(this, () => this._setDataIconAttribute());
117
+ this._mediaMatcher = new SbbMediaMatcherController(this, {
118
+ [SbbMediaQueryHover]: (m) => this._isHover = m
119
+ });
120
+ this._isHover = this._mediaMatcher.matches(SbbMediaQueryHover) ?? false;
117
121
  }
118
122
  connectedCallback() {
119
123
  super.connectedCallback();
@@ -129,7 +133,7 @@ let SbbExpansionPanelHeaderElement = (() => {
129
133
  }
130
134
  _onMouseMovement(toggleDataAttribute) {
131
135
  const parent = this.closest("sbb-expansion-panel");
132
- if (!toggleDataAttribute || parent && window.matchMedia("(any-hover: hover)").matches) {
136
+ if (!toggleDataAttribute || parent && this._isHover) {
133
137
  parent.toggleAttribute("data-toggle-hover", toggleDataAttribute);
134
138
  }
135
139
  }
@@ -170,4 +174,4 @@ let SbbExpansionPanelHeaderElement = (() => {
170
174
  export {
171
175
  SbbExpansionPanelHeaderElement
172
176
  };
173
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwtaGVhZGVyL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaHRtbCwgbm90aGluZywgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJCdXR0b25CYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIsIFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJy4uLy4uL2NvcmUvZXZlbnRpbmcuanMnO1xuaW1wb3J0IHsgU2JiRGlzYWJsZWRUYWJJbmRleEFjdGlvbk1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiB9IGZyb20gJy4uLy4uL2ljb24uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnQgfSBmcm9tICcuLi9leHBhbnNpb24tcGFuZWwuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9leHBhbnNpb24tcGFuZWwtaGVhZGVyLnNjc3M/bGl0JmlubGluZSc7XG5cbi8qKlxuICogSXQgYWN0cyBhcyBhIG5hdGl2ZSBgc3VtbWFyeWAgdGFnIGZvciB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWxgIGNvbXBvbmVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IHRvIHRoZSBgc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJgLlxuICogQHNsb3QgaWNvbiAtIFNsb3QgdXNlZCB0byByZW5kZXIgdGhlIGBzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcmAgaWNvbi5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHRvZ2dsZUV4cGFuZGVkIC0gTm90aWZpZXMgdGhhdCB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWxgIGhhcyB0byBleHBhbmQuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyJylcbkBob3N0QXR0cmlidXRlcyh7XG4gIHNsb3Q6ICdoZWFkZXInLFxufSlcbmNsYXNzIFNiYkV4cGFuc2lvblBhbmVsSGVhZGVyRWxlbWVudCBleHRlbmRzIFNiYkRpc2FibGVkVGFiSW5kZXhBY3Rpb25NaXhpbihcbiAgU2JiSWNvbk5hbWVNaXhpbihTYmJCdXR0b25CYXNlRWxlbWVudCksXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHRvZ2dsZUV4cGFuZGVkOiAndG9nZ2xlRXhwYW5kZWQnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBOb3RpZmllcyB0aGF0IHRoZSBgc2JiLWV4cGFuc2lvbi1wYW5lbGAgaGFzIHRvIGV4cGFuZC4gKi9cbiAgcHJpdmF0ZSBfdG9nZ2xlRXhwYW5kZWQ6IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJFeHBhbnNpb25QYW5lbEhlYWRlckVsZW1lbnQuZXZlbnRzLnRvZ2dsZUV4cGFuZGVkLFxuICAgIHtcbiAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgfSxcbiAgKTtcbiAgcHJpdmF0ZSBfYWJvcnQgPSBuZXcgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9uYW1lZFNsb3RzID0gbmV3IFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIodGhpcywgKCkgPT4gdGhpcy5fc2V0RGF0YUljb25BdHRyaWJ1dGUoKSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgY29uc3Qgc2lnbmFsID0gdGhpcy5fYWJvcnQuc2lnbmFsO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLl9lbWl0RXhwYW5kZWRFdmVudCgpLCB7IHNpZ25hbCB9KTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoKSA9PiB0aGlzLl9vbk1vdXNlTW92ZW1lbnQodHJ1ZSksIHsgc2lnbmFsIH0pO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsICgpID0+IHRoaXMuX29uTW91c2VNb3ZlbWVudChmYWxzZSksIHsgc2lnbmFsIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZW1pdEV4cGFuZGVkRXZlbnQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLl90b2dnbGVFeHBhbmRlZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25Nb3VzZU1vdmVtZW50KHRvZ2dsZURhdGFBdHRyaWJ1dGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBwYXJlbnQ6IFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudCA9IHRoaXMuY2xvc2VzdCgnc2JiLWV4cGFuc2lvbi1wYW5lbCcpITtcbiAgICAvLyBUaGUgYHNiYi5ob3Zlci1tcWAgbG9naWMgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHNjc3MsIGJ1dCBpdCBtdXN0IGJlIHJlcGxpY2F0ZWQgdG8gaGF2ZSB0aGUgY29ycmVjdCBiZWhhdmlvciBvbiBtb2JpbGUuXG4gICAgaWYgKCF0b2dnbGVEYXRhQXR0cmlidXRlIHx8IChwYXJlbnQgJiYgd2luZG93Lm1hdGNoTWVkaWEoJyhhbnktaG92ZXI6IGhvdmVyKScpLm1hdGNoZXMpKSB7XG4gICAgICBwYXJlbnQudG9nZ2xlQXR0cmlidXRlKCdkYXRhLXRvZ2dsZS1ob3ZlcicsIHRvZ2dsZURhdGFBdHRyaWJ1dGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgJ2RhdGEtaWNvbicgaXMgdXNlZCBieSB0aGUgJ3NiYi1leHBhbnNpb24tcGFuZWwnLlxuICAgKiBJdCBuZWVkcyB0byBiZSBzZXQgYmVmb3JlIHRoZSBAc2xvdGNoYW5nZSBldmVudCBidWJibGVzIHRvIHRoZSAnZXhwYW5zaW9uLXBhbmVsJ1xuICAgKiBidXQgYWZ0ZXIgdGhlICdTYmJTbG90U3RhdGVDb250cm9sbGVyJyBoYXMgcnVuLlxuICAgKi9cbiAgcHJpdmF0ZSBfc2V0RGF0YUljb25BdHRyaWJ1dGUoKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtaWNvbicsICEhKHRoaXMuaWNvbk5hbWUgfHwgdGhpcy5fbmFtZWRTbG90cy5zbG90cy5oYXMoJ2ljb24nKSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICB0aGlzLl9zZXREYXRhSWNvbkF0dHJpYnV0ZSgpO1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9fdGl0bGVcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9faWNvblwiPiAke3RoaXMucmVuZGVySWNvblNsb3QoKX0gPC9zcGFuPlxuICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICA8L3NwYW4+XG4gICAgICAkeyF0aGlzLmRpc2FibGVkXG4gICAgICAgID8gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX190b2dnbGVcIj5cbiAgICAgICAgICAgIDxzYmItaWNvblxuICAgICAgICAgICAgICBuYW1lPVwiY2hldnJvbi1zbWFsbC1kb3duLW1lZGl1bVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwic2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJfX3RvZ2dsZS1pY29uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvc2JiLWljb24+XG4gICAgICAgICAgPC9zcGFuPmBcbiAgICAgICAgOiBub3RoaW5nfVxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyJzogU2JiRXhwYW5zaW9uUGFuZWxIZWFkZXJFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsiU2JiRXhwYW5zaW9uUGFuZWxIZWFkZXJFbGVtZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUF5Qk0sa0NBQThCLE1BQUE7O0FBSm5DLE1BQUEsbUJBQUEsQ0FBQSxjQUFjLDRCQUE0QixHQUMxQyxlQUFlO0FBQUEsSUFDZCxNQUFNO0FBQUEsRUFBQSxDQUNQLENBQUM7Ozs7QUFDMkMsTUFBQSxjQUFBLCtCQUMzQyxpQkFBaUIsb0JBQW9CLENBQUM7QUFESEEsTUFBQUEsbUNBQUEsbUJBQVEsWUFFNUM7QUFBQTs7QUFPUyxXQUFlLGtCQUFpQixJQUFJLGFBQzFDLE1BQ0FBLGdDQUErQixPQUFPLGdCQUN0QztBQUFBLFFBQ0UsU0FBUztBQUFBLE1BQUEsQ0FDVjtBQUVLLFdBQUEsU0FBUyxJQUFJLDRCQUE0QixJQUFJO0FBQzdDLFdBQUEsY0FBYyxJQUFJLHVCQUF1QixNQUFNLE1BQU0sS0FBSyx1QkFBdUI7QUFBQSxJQUFBO0FBQUEsSUFFekUsb0JBQWlCO0FBQy9CLFlBQU0sa0JBQWlCO0FBQ2pCLFlBQUEsU0FBUyxLQUFLLE9BQU87QUFDdEIsV0FBQSxpQkFBaUIsU0FBUyxNQUFNLEtBQUssbUJBQXNCLEdBQUEsRUFBRSxRQUFRO0FBQ3JFLFdBQUEsaUJBQWlCLGNBQWMsTUFBTSxLQUFLLGlCQUFpQixJQUFJLEdBQUcsRUFBRSxRQUFRO0FBQzVFLFdBQUEsaUJBQWlCLGNBQWMsTUFBTSxLQUFLLGlCQUFpQixLQUFLLEdBQUcsRUFBRSxRQUFRO0FBQUEsSUFBQTtBQUFBLElBRzVFLHFCQUFrQjtBQUNwQixVQUFBLENBQUMsS0FBSyxVQUFVO0FBQ2xCLGFBQUssZ0JBQWdCOztJQUN2QjtBQUFBLElBR00saUJBQWlCLHFCQUE0QjtBQUM3QyxZQUFBLFNBQW1DLEtBQUssUUFBUSxxQkFBcUI7QUFFM0UsVUFBSSxDQUFDLHVCQUF3QixVQUFVLE9BQU8sV0FBVyxvQkFBb0IsRUFBRSxTQUFVO0FBQ2hGLGVBQUEsZ0JBQWdCLHFCQUFxQixtQkFBbUI7QUFBQSxNQUFBO0FBQUEsSUFDakU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFRTSx3QkFBcUI7QUFDdEIsV0FBQSxnQkFBZ0IsYUFBYSxDQUFDLEVBQUUsS0FBSyxZQUFZLEtBQUssWUFBWSxNQUFNLElBQUksTUFBTSxFQUFFO0FBQUEsSUFBQTtBQUFBLElBR3hFLGlCQUFjO0FBQy9CLFdBQUssc0JBQXFCO0FBQ25CLGFBQUE7QUFBQTtBQUFBLDBEQUUrQyxLQUFLLGdCQUFnQjtBQUFBO0FBQUE7QUFBQSxRQUd2RSxDQUFDLEtBQUssV0FDSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFPQSxPQUFPO0FBQUE7QUFBQSxJQUFBO0FBQUE7O0FBakVqQixpQkFvRUMsTUFBQSxtQkFBQSxFQUFBLE9BQUEsV0FBQSxHQUFBLGtCQUFBLEVBQUEsTUFBQSxTQUFBLE1BQUEsV0FBQSxNQUFBLFVBQUEsVUFBQSxHQUFBLE1BQUEsdUJBQUE7OztRQWpFd0IsR0FBTSxTQUFtQixPQUN6QixHQUFBLFNBQVM7QUFBQSxJQUM5QixnQkFBZ0I7QUFBQSxFQUNSLEdBTk4sa0JBQThCLFlBQUEsdUJBQUEsR0FBQzs7OyJ9
177
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwtaGVhZGVyL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaHRtbCwgbm90aGluZywgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJCdXR0b25CYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQge1xuICBTYmJNZWRpYVF1ZXJ5SG92ZXIsXG4gIFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlcixcbiAgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcixcbiAgU2JiU2xvdFN0YXRlQ29udHJvbGxlcixcbn0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7IFNiYkRpc2FibGVkVGFiSW5kZXhBY3Rpb25NaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi8uLi9pY29uLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRXhwYW5zaW9uUGFuZWxFbGVtZW50IH0gZnJvbSAnLi4vZXhwYW5zaW9uLXBhbmVsLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIEl0IGFjdHMgYXMgYSBuYXRpdmUgYHN1bW1hcnlgIHRhZyBmb3IgdGhlIGBzYmItZXhwYW5zaW9uLXBhbmVsYCBjb21wb25lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyYC5cbiAqIEBzbG90IGljb24gLSBTbG90IHVzZWQgdG8gcmVuZGVyIHRoZSBgc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJgIGljb24uXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB0b2dnbGVFeHBhbmRlZCAtIE5vdGlmaWVzIHRoYXQgdGhlIGBzYmItZXhwYW5zaW9uLXBhbmVsYCBoYXMgdG8gZXhwYW5kLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcicpXG5AaG9zdEF0dHJpYnV0ZXMoe1xuICBzbG90OiAnaGVhZGVyJyxcbn0pXG5jbGFzcyBTYmJFeHBhbnNpb25QYW5lbEhlYWRlckVsZW1lbnQgZXh0ZW5kcyBTYmJEaXNhYmxlZFRhYkluZGV4QWN0aW9uTWl4aW4oXG4gIFNiYkljb25OYW1lTWl4aW4oU2JiQnV0dG9uQmFzZUVsZW1lbnQpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICB0b2dnbGVFeHBhbmRlZDogJ3RvZ2dsZUV4cGFuZGVkJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogTm90aWZpZXMgdGhhdCB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWxgIGhhcyB0byBleHBhbmQuICovXG4gIHByaXZhdGUgX3RvZ2dsZUV4cGFuZGVkOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiRXhwYW5zaW9uUGFuZWxIZWFkZXJFbGVtZW50LmV2ZW50cy50b2dnbGVFeHBhbmRlZCxcbiAgICB7XG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgIH0sXG4gICk7XG4gIHByaXZhdGUgX2Fib3J0ID0gbmV3IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfbmFtZWRTbG90cyA9IG5ldyBTYmJTbG90U3RhdGVDb250cm9sbGVyKHRoaXMsICgpID0+IHRoaXMuX3NldERhdGFJY29uQXR0cmlidXRlKCkpO1xuICBwcml2YXRlIF9tZWRpYU1hdGNoZXIgPSBuZXcgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcih0aGlzLCB7XG4gICAgW1NiYk1lZGlhUXVlcnlIb3Zlcl06IChtKSA9PiAodGhpcy5faXNIb3ZlciA9IG0pLFxuICB9KTtcblxuICBwcml2YXRlIF9pc0hvdmVyOiBib29sZWFuID0gdGhpcy5fbWVkaWFNYXRjaGVyLm1hdGNoZXMoU2JiTWVkaWFRdWVyeUhvdmVyKSA/PyBmYWxzZTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBjb25zdCBzaWduYWwgPSB0aGlzLl9hYm9ydC5zaWduYWw7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMuX2VtaXRFeHBhbmRlZEV2ZW50KCksIHsgc2lnbmFsIH0pO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgpID0+IHRoaXMuX29uTW91c2VNb3ZlbWVudCh0cnVlKSwgeyBzaWduYWwgfSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgKCkgPT4gdGhpcy5fb25Nb3VzZU1vdmVtZW50KGZhbHNlKSwgeyBzaWduYWwgfSk7XG4gIH1cblxuICBwcml2YXRlIF9lbWl0RXhwYW5kZWRFdmVudCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX3RvZ2dsZUV4cGFuZGVkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbk1vdXNlTW92ZW1lbnQodG9nZ2xlRGF0YUF0dHJpYnV0ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IHBhcmVudDogU2JiRXhwYW5zaW9uUGFuZWxFbGVtZW50ID0gdGhpcy5jbG9zZXN0KCdzYmItZXhwYW5zaW9uLXBhbmVsJykhO1xuICAgIC8vIFRoZSBgc2JiLmhvdmVyLW1xYCBsb2dpYyBoYXMgYmVlbiByZW1vdmVkIGZyb20gc2NzcywgYnV0IGl0IG11c3QgYmUgcmVwbGljYXRlZCB0byBoYXZlIHRoZSBjb3JyZWN0IGJlaGF2aW9yIG9uIG1vYmlsZS5cbiAgICBpZiAoIXRvZ2dsZURhdGFBdHRyaWJ1dGUgfHwgKHBhcmVudCAmJiB0aGlzLl9pc0hvdmVyKSkge1xuICAgICAgcGFyZW50LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS10b2dnbGUtaG92ZXInLCB0b2dnbGVEYXRhQXR0cmlidXRlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlICdkYXRhLWljb24nIGlzIHVzZWQgYnkgdGhlICdzYmItZXhwYW5zaW9uLXBhbmVsJy5cbiAgICogSXQgbmVlZHMgdG8gYmUgc2V0IGJlZm9yZSB0aGUgQHNsb3RjaGFuZ2UgZXZlbnQgYnViYmxlcyB0byB0aGUgJ2V4cGFuc2lvbi1wYW5lbCdcbiAgICogYnV0IGFmdGVyIHRoZSAnU2JiU2xvdFN0YXRlQ29udHJvbGxlcicgaGFzIHJ1bi5cbiAgICovXG4gIHByaXZhdGUgX3NldERhdGFJY29uQXR0cmlidXRlKCk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWljb24nLCAhISh0aGlzLmljb25OYW1lIHx8IHRoaXMuX25hbWVkU2xvdHMuc2xvdHMuaGFzKCdpY29uJykpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgdGhpcy5fc2V0RGF0YUljb25BdHRyaWJ1dGUoKTtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJfX3RpdGxlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJfX2ljb25cIj4gJHt0aGlzLnJlbmRlckljb25TbG90KCl9IDwvc3Bhbj5cbiAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgPC9zcGFuPlxuICAgICAgJHshdGhpcy5kaXNhYmxlZFxuICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9fdG9nZ2xlXCI+XG4gICAgICAgICAgICA8c2JiLWljb25cbiAgICAgICAgICAgICAgbmFtZT1cImNoZXZyb24tc21hbGwtZG93bi1tZWRpdW1cIlxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX190b2dnbGUtaWNvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3NiYi1pY29uPlxuICAgICAgICAgIDwvc3Bhbj5gXG4gICAgICAgIDogbm90aGluZ31cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcic6IFNiYkV4cGFuc2lvblBhbmVsSGVhZGVyRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlNiYkV4cGFuc2lvblBhbmVsSGVhZGVyRWxlbWVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBOEJNLGtDQUE4QixNQUFBOztBQUpuQyxNQUFBLG1CQUFBLENBQUEsY0FBYyw0QkFBNEIsR0FDMUMsZUFBZTtBQUFBLElBQ2QsTUFBTTtBQUFBLEVBQUEsQ0FDUCxDQUFDOzs7O0FBQzJDLE1BQUEsY0FBQSwrQkFDM0MsaUJBQWlCLG9CQUFvQixDQUFDO0FBREhBLE1BQUFBLG1DQUFBLG1CQUFRLFlBRTVDO0FBQUE7O0FBT1MsV0FBZSxrQkFBaUIsSUFBSSxhQUMxQyxNQUNBQSxnQ0FBK0IsT0FBTyxnQkFDdEM7QUFBQSxRQUNFLFNBQVM7QUFBQSxNQUFBLENBQ1Y7QUFFSyxXQUFBLFNBQVMsSUFBSSw0QkFBNEIsSUFBSTtBQUM3QyxXQUFBLGNBQWMsSUFBSSx1QkFBdUIsTUFBTSxNQUFNLEtBQUssdUJBQXVCO0FBQ2pGLFdBQUEsZ0JBQWdCLElBQUksMEJBQTBCLE1BQU07QUFBQSxRQUMxRCxDQUFDLGtCQUFrQixHQUFHLENBQUMsTUFBTyxLQUFLLFdBQVc7QUFBQSxNQUFBLENBQy9DO0FBRU8sV0FBUSxXQUFZLEtBQUssY0FBYyxRQUFRLGtCQUFrQixLQUFLO0FBQUEsSUFBQTtBQUFBLElBRTlELG9CQUFpQjtBQUMvQixZQUFNLGtCQUFpQjtBQUNqQixZQUFBLFNBQVMsS0FBSyxPQUFPO0FBQ3RCLFdBQUEsaUJBQWlCLFNBQVMsTUFBTSxLQUFLLG1CQUFzQixHQUFBLEVBQUUsUUFBUTtBQUNyRSxXQUFBLGlCQUFpQixjQUFjLE1BQU0sS0FBSyxpQkFBaUIsSUFBSSxHQUFHLEVBQUUsUUFBUTtBQUM1RSxXQUFBLGlCQUFpQixjQUFjLE1BQU0sS0FBSyxpQkFBaUIsS0FBSyxHQUFHLEVBQUUsUUFBUTtBQUFBLElBQUE7QUFBQSxJQUc1RSxxQkFBa0I7QUFDcEIsVUFBQSxDQUFDLEtBQUssVUFBVTtBQUNsQixhQUFLLGdCQUFnQjs7SUFDdkI7QUFBQSxJQUdNLGlCQUFpQixxQkFBNEI7QUFDN0MsWUFBQSxTQUFtQyxLQUFLLFFBQVEscUJBQXFCO0FBRTNFLFVBQUksQ0FBQyx1QkFBd0IsVUFBVSxLQUFLLFVBQVc7QUFDOUMsZUFBQSxnQkFBZ0IscUJBQXFCLG1CQUFtQjtBQUFBLE1BQUE7QUFBQSxJQUNqRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQVFNLHdCQUFxQjtBQUN0QixXQUFBLGdCQUFnQixhQUFhLENBQUMsRUFBRSxLQUFLLFlBQVksS0FBSyxZQUFZLE1BQU0sSUFBSSxNQUFNLEVBQUU7QUFBQSxJQUFBO0FBQUEsSUFHeEUsaUJBQWM7QUFDL0IsV0FBSyxzQkFBcUI7QUFDbkIsYUFBQTtBQUFBO0FBQUEsMERBRStDLEtBQUssZ0JBQWdCO0FBQUE7QUFBQTtBQUFBLFFBR3ZFLENBQUMsS0FBSyxXQUNKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQU9BLE9BQU87QUFBQTtBQUFBLElBQUE7QUFBQTs7QUF0RWpCLGlCQXlFQyxNQUFBLG1CQUFBLEVBQUEsT0FBQSxXQUFBLEdBQUEsa0JBQUEsRUFBQSxNQUFBLFNBQUEsTUFBQSxXQUFBLE1BQUEsVUFBQSxVQUFBLEdBQUEsTUFBQSx1QkFBQTs7O1FBdEV3QixHQUFNLFNBQW1CLE9BQ3pCLEdBQUEsU0FBUztBQUFBLElBQzlCLGdCQUFnQjtBQUFBLEVBQ1IsR0FOTixrQkFBOEIsWUFBQSx1QkFBQSxHQUFDOzs7In0=
@@ -39,6 +39,11 @@ export declare class SbbFileSelectorElement extends SbbFileSelectorElement_base
39
39
  set files(value: File[]);
40
40
  get files(): File[];
41
41
  private _files;
42
+ /**
43
+ * Form type of element.
44
+ * @default 'file'
45
+ */
46
+ get type(): string;
42
47
  /** An event which is emitted each time the file list changes. */
43
48
  private _fileChangedEvent;
44
49
  private _counter;
@@ -1 +1 @@
1
- {"version":3,"file":"file-selector.d.ts","sourceRoot":"","sources":["../../../../src/elements/file-selector/file-selector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,UAAU,EAAW,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAgBpF,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAGtB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,+BAA+B,CAAC;AACvC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,YAAY,CAAC;AAEpB,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC;;AAExC;;;;;;;;GAQG;AACH,qBAGM,sBAAuB,SAAQ,2BAAoD;IACvF,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;MAElB;IAEX,wDAAwD;IACxD,SAA4B,OAAO,EAAE,SAAS,GAAG,UAAU,CAAa;IAExE,mCAAmC;IACnC,SAA6C,IAAI,EAAE,GAAG,GAAG,GAAG,CAAO;IAEnE,kDAAkD;IAClD,SAEgB,QAAQ,EAAE,OAAO,CAAS;IAE1C,+EAA+E;IAC/E,SACgB,YAAY,EAAE,SAAS,GAAG,YAAY,CAAa;IAEnE,qEAAqE;IACrE,SAEgB,MAAM,EAAE,MAAM,CAAM;IAEpC,iDAAiD;IACjD,SAEgB,YAAY,EAAE,MAAM,CAAM;IAE1C,wEAAwE;IACxE,SAEgB,kBAAkB,EAAE,MAAM,CAAM;IAEhD,oFAAoF;IACpF,IACoB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAM7C;IACD,IAAoB,KAAK,IAAI,MAAM,GAAG,IAAI,CAEzC;IAED;;OAEG;IACH,IACW,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,EAS7B;IACD,IAAW,KAAK,IAAI,IAAI,EAAE,CAEzB;IACD,OAAO,CAAC,MAAM,CAAc;IAE5B,iEAAiE;IACjE,OAAO,CAAC,iBAAiB,CAGvB;IAIF,OAAO,CAAC,QAAQ,CAAa;IAE7B,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,WAAW,CAAwB;IAE3C,OAAO,CAAC,SAAS,CAAmC;IAEpD;;OAEG;IACI,QAAQ,IAAI,IAAI,EAAE;IAIT,iBAAiB,IAAI,IAAI;IAIzB,wBAAwB,CACtC,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAC9B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,IAAI;cAOY,eAAe,IAAI,IAAI;IAM1C,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,WAAW;IAUnB,uDAAuD;IACvD,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,eAAe;cA4BJ,MAAM,IAAI,cAAc;CA2C5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,mBAAmB,EAAE,sBAAsB,CAAC;KAC7C;CACF"}
1
+ {"version":3,"file":"file-selector.d.ts","sourceRoot":"","sources":["../../../../src/elements/file-selector/file-selector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,UAAU,EAAW,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAgBpF,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAGtB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,+BAA+B,CAAC;AACvC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,YAAY,CAAC;AAEpB,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC;;AAExC;;;;;;;;GAQG;AACH,qBAGM,sBAAuB,SAAQ,2BAAoD;IACvF,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;MAElB;IAEX,wDAAwD;IACxD,SAA4B,OAAO,EAAE,SAAS,GAAG,UAAU,CAAa;IAExE,mCAAmC;IACnC,SAA6C,IAAI,EAAE,GAAG,GAAG,GAAG,CAAO;IAEnE,kDAAkD;IAClD,SAEgB,QAAQ,EAAE,OAAO,CAAS;IAE1C,+EAA+E;IAC/E,SACgB,YAAY,EAAE,SAAS,GAAG,YAAY,CAAa;IAEnE,qEAAqE;IACrE,SAEgB,MAAM,EAAE,MAAM,CAAM;IAEpC,iDAAiD;IACjD,SAEgB,YAAY,EAAE,MAAM,CAAM;IAE1C,wEAAwE;IACxE,SAEgB,kBAAkB,EAAE,MAAM,CAAM;IAEhD,oFAAoF;IACpF,IACoB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAM7C;IACD,IAAoB,KAAK,IAAI,MAAM,GAAG,IAAI,CAEzC;IAED;;OAEG;IACH,IACW,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,EAS7B;IACD,IAAW,KAAK,IAAI,IAAI,EAAE,CAEzB;IACD,OAAO,CAAC,MAAM,CAAc;IAE5B;;;OAGG;IACH,IAAoB,IAAI,IAAI,MAAM,CAEjC;IAED,iEAAiE;IACjE,OAAO,CAAC,iBAAiB,CAGvB;IAIF,OAAO,CAAC,QAAQ,CAAa;IAE7B,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,WAAW,CAAwB;IAE3C,OAAO,CAAC,SAAS,CAAmC;IAEpD;;OAEG;IACI,QAAQ,IAAI,IAAI,EAAE;IAIT,iBAAiB,IAAI,IAAI;IAIzB,wBAAwB,CACtC,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAC9B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,IAAI;cAOY,eAAe,IAAI,IAAI;IAM1C,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,WAAW;IAUnB,uDAAuD;IACvD,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,eAAe;cA4BJ,MAAM,IAAI,cAAc;CA2C5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,mBAAmB,EAAE,sBAAsB,CAAC;KAC7C;CACF"}
@@ -294,6 +294,13 @@ let SbbFileSelectorElement = (() => {
294
294
  get files() {
295
295
  return this._files;
296
296
  }
297
+ /**
298
+ * Form type of element.
299
+ * @default 'file'
300
+ */
301
+ get type() {
302
+ return "file";
303
+ }
297
304
  /**
298
305
  * @deprecated use the 'files' property instead
299
306
  */
@@ -542,4 +549,4 @@ let SbbFileSelectorElement = (() => {
542
549
  export {
543
550
  SbbFileSelectorElement
544
551
  };
545
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZWxlY3Rvci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2ZpbGUtc2VsZWN0b3IvZmlsZS1zZWxlY3Rvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBMaXRFbGVtZW50LCBub3RoaW5nLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcbmltcG9ydCB7IGh0bWwsIHVuc2FmZVN0YXRpYyB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiU2Vjb25kYXJ5QnV0dG9uU3RhdGljRWxlbWVudCB9IGZyb20gJy4uL2J1dHRvbi5qcyc7XG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUsIHNsb3RTdGF0ZSB9IGZyb20gJy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIGZvcndhcmRFdmVudFRvSG9zdCB9IGZyb20gJy4uL2NvcmUvZXZlbnRpbmcuanMnO1xuaW1wb3J0IHtcbiAgaTE4bkZpbGVTZWxlY3RvckJ1dHRvbkxhYmVsLFxuICBpMThuRmlsZVNlbGVjdG9yQ3VycmVudGx5U2VsZWN0ZWQsXG4gIGkxOG5GaWxlU2VsZWN0b3JEZWxldGVGaWxlLFxuICBpMThuRmlsZVNlbGVjdG9yU3VidGl0bGVMYWJlbCxcbn0gZnJvbSAnLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgRm9ybVJlc3RvcmVSZWFzb24sXG4gIHR5cGUgRm9ybVJlc3RvcmVTdGF0ZSxcbiAgU2JiRGlzYWJsZWRNaXhpbixcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbixcbn0gZnJvbSAnLi4vY29yZS9taXhpbnMuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9maWxlLXNlbGVjdG9yLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vYnV0dG9uL3NlY29uZGFyeS1idXR0b24uanMnO1xuaW1wb3J0ICcuLi9idXR0b24vc2Vjb25kYXJ5LWJ1dHRvbi1zdGF0aWMuanMnO1xuaW1wb3J0ICcuLi9pY29uLmpzJztcblxuZXhwb3J0IHR5cGUgRE9NRXZlbnQgPSBnbG9iYWxUaGlzLkV2ZW50O1xuXG4vKipcbiAqIEl0IGFsbG93cyB0byBzZWxlY3Qgb25lIG9yIG1vcmUgZmlsZSBmcm9tIHN0b3JhZ2UgZGV2aWNlcyBhbmQgZGlzcGxheSB0aGVtLlxuICpcbiAqIEBzbG90IGVycm9yIC0gVXNlIHRoaXMgdG8gcHJvdmlkZSBhIGBzYmItZm9ybS1lcnJvcmAgdG8gc2hvdyBhbiBlcnJvciBtZXNzYWdlLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDxGaWxlW10+fSBmaWxlQ2hhbmdlZCAtIEFuIGV2ZW50IHdoaWNoIGlzIGVtaXR0ZWQgZWFjaCB0aW1lIHRoZSBmaWxlIGxpc3QgY2hhbmdlcy5cbiAqIEBldmVudCBjaGFuZ2UgLSBBbiBldmVudCB3aGljaCBpcyBlbWl0dGVkIGVhY2ggdGltZSB0aGUgdXNlciBtb2RpZmllcyB0aGUgdmFsdWUuIFVubGlrZSB0aGUgaW5wdXQgZXZlbnQsIHRoZSBjaGFuZ2UgZXZlbnQgaXMgbm90IG5lY2Vzc2FyaWx5IGZpcmVkIGZvciBlYWNoIGFsdGVyYXRpb24gdG8gYW4gZWxlbWVudCdzIHZhbHVlXG4gKiBAZXZlbnQgaW5wdXQgLSBBbiBldmVudCB3aGljaCBpcyBlbWl0dGVkIGVhY2ggdGltZSB0aGUgdmFsdWUgY2hhbmdlcyBhcyBhIGRpcmVjdCByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbi5cbiAqIEBvdmVycmlkZVR5cGUgdmFsdWUgLSBzdHJpbmcgfCBudWxsXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1maWxlLXNlbGVjdG9yJylcbkBzbG90U3RhdGUoKVxuY2xhc3MgU2JiRmlsZVNlbGVjdG9yRWxlbWVudCBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihMaXRFbGVtZW50KSkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgZmlsZUNoYW5nZWRFdmVudDogJ2ZpbGVDaGFuZ2VkJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogV2hldGhlciB0aGUgY29tcG9uZW50IGhhcyBhIGRyb3B6b25lIGFyZWEgb3Igbm90LiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgYWNjZXNzb3IgdmFyaWFudDogJ2RlZmF1bHQnIHwgJ2Ryb3B6b25lJyA9ICdkZWZhdWx0JztcblxuICAvKiogU2l6ZSB2YXJpYW50LCBlaXRoZXIgcyBvciBtLiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBzaXplOiAncycgfCAnbScgPSAnbSc7XG5cbiAgLyoqIFdoZXRoZXIgbW9yZSB0aGFuIG9uZSBmaWxlIGNhbiBiZSBzZWxlY3RlZC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG5ld2x5IGFkZGVkIGZpbGVzIHNob3VsZCBvdmVycmlkZSB0aGUgcHJldmlvdXNseSBhZGRlZCBvbmVzLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdtdWx0aXBsZS1tb2RlJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgbXVsdGlwbGVNb2RlOiAnZGVmYXVsdCcgfCAncGVyc2lzdGVudCcgPSAnZGVmYXVsdCc7XG5cbiAgLyoqIEEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgYWxsb3dlZCB1bmlxdWUgZmlsZSB0eXBlIHNwZWNpZmllcnMuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXB0OiBzdHJpbmcgPSAnJztcblxuICAvKiogVGhlIHRpdGxlIGRpc3BsYXllZCBpbiBgZHJvcHpvbmVgIHZhcmlhbnQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd0aXRsZS1jb250ZW50JyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgdGl0bGVDb250ZW50OiBzdHJpbmcgPSAnJztcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5TGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBUaGUgcGF0aCBvZiB0aGUgZmlyc3Qgc2VsZWN0ZWQgZmlsZS4gRW1wdHkgc3RyaW5nICgnJykgaWYgbm8gZmlsZSBpcyBzZWxlY3RlZCAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgICB0aGlzLl9oaWRkZW5JbnB1dC52YWx1ZSA9IHZhbHVlID8/ICcnO1xuXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy5maWxlcyA9IFtdO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9oaWRkZW5JbnB1dD8udmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2Ygc2VsZWN0ZWQgZmlsZXMuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgZmlsZXModmFsdWU6IEZpbGVbXSkge1xuICAgIHRoaXMuX2ZpbGVzID0gdmFsdWUgPz8gW107XG5cbiAgICAvLyB1cGRhdGUgdGhlIGlubmVyIGlucHV0XG4gICAgY29uc3QgZHQ6IERhdGFUcmFuc2ZlciA9IG5ldyBEYXRhVHJhbnNmZXIoKTtcbiAgICB0aGlzLmZpbGVzLmZvckVhY2goKGU6IEZpbGUpID0+IGR0Lml0ZW1zLmFkZChlKSk7XG4gICAgdGhpcy5faGlkZGVuSW5wdXQuZmlsZXMgPSBkdC5maWxlcztcblxuICAgIHRoaXMudXBkYXRlRm9ybVZhbHVlKCk7XG4gIH1cbiAgcHVibGljIGdldCBmaWxlcygpOiBGaWxlW10ge1xuICAgIHJldHVybiB0aGlzLl9maWxlcztcbiAgfVxuICBwcml2YXRlIF9maWxlczogRmlsZVtdID0gW107XG5cbiAgLyoqIEFuIGV2ZW50IHdoaWNoIGlzIGVtaXR0ZWQgZWFjaCB0aW1lIHRoZSBmaWxlIGxpc3QgY2hhbmdlcy4gKi9cbiAgcHJpdmF0ZSBfZmlsZUNoYW5nZWRFdmVudDogRXZlbnRFbWl0dGVyPEZpbGVbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiRmlsZVNlbGVjdG9yRWxlbWVudC5ldmVudHMuZmlsZUNoYW5nZWRFdmVudCxcbiAgKTtcblxuICAvLyBTYWZhcmkgaGFzIGEgcGVjdWxpYXIgYmVoYXZpb3Igd2hlbiBkcmFnZ2luZyBmaWxlcyBvbiB0aGUgaW5uZXIgYnV0dG9uIGluICdkcm9wem9uZScgdmFyaWFudDtcbiAgLy8gdGhpcyB3aWxsIHJlcXVpcmUgYSBjb3VudGVyIHRvIGNvcnJlY3RseSBoYW5kbGUgdGhlIGRyYWdFbnRlci9kcmFnTGVhdmUuXG4gIHByaXZhdGUgX2NvdW50ZXI6IG51bWJlciA9IDA7XG5cbiAgcHJpdmF0ZSBfbG9hZEJ1dHRvbiE6IFNiYlNlY29uZGFyeUJ1dHRvblN0YXRpY0VsZW1lbnQ7XG4gIHByaXZhdGUgX2RyYWdUYXJnZXQ/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfaGlkZGVuSW5wdXQhOiBIVE1MSW5wdXRFbGVtZW50O1xuICBwcml2YXRlIF9zdWZmaXhlczogc3RyaW5nW10gPSBbJ0InLCAna0InLCAnTUInLCAnR0InLCAnVEInXTtcbiAgcHJpdmF0ZSBfbGl2ZVJlZ2lvbiE6IEhUTUxQYXJhZ3JhcGhFbGVtZW50O1xuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIHRoZSAnZmlsZXMnIHByb3BlcnR5IGluc3RlYWRcbiAgICovXG4gIHB1YmxpYyBnZXRGaWxlcygpOiBGaWxlW10ge1xuICAgIHJldHVybiB0aGlzLmZpbGVzO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHRoaXMuZmlsZXMgPSBbXTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgIF9yZWFzb24/OiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgKTogdm9pZCB7XG4gICAgaWYgKCFzdGF0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmZpbGVzID0gKHN0YXRlIGFzIFtzdHJpbmcsIEZvcm1EYXRhRW50cnlWYWx1ZV1bXSkubWFwKChbXywgdmFsdWVdKSA9PiB2YWx1ZSBhcyBGaWxlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybVZhbHVlID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgdGhpcy5maWxlcy5mb3JFYWNoKChmaWxlKSA9PiBmb3JtVmFsdWUuYXBwZW5kKHRoaXMubmFtZSwgZmlsZSkpO1xuICAgIHRoaXMuaW50ZXJuYWxzLnNldEZvcm1WYWx1ZShmb3JtVmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYmxvY2tFdmVudChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrRmlsZUVxdWFsaXR5KGZpbGUxOiBGaWxlLCBmaWxlMjogRmlsZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBmaWxlMS5uYW1lID09PSBmaWxlMi5uYW1lICYmXG4gICAgICBmaWxlMS5zaXplID09PSBmaWxlMi5zaXplICYmXG4gICAgICBmaWxlMS5sYXN0TW9kaWZpZWQgPT09IGZpbGUyLmxhc3RNb2RpZmllZFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9vbkRyYWdFbnRlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fY291bnRlcisrO1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5mb3JtRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX3NldERyYWdTdGF0ZShldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQsIHRydWUpO1xuICAgICAgdGhpcy5fYmxvY2tFdmVudChldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuX2NvdW50ZXItLTtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5kaXNhYmxlZCAmJlxuICAgICAgIXRoaXMuZm9ybURpc2FibGVkICYmXG4gICAgICBldmVudC50YXJnZXQgPT09IHRoaXMuX2RyYWdUYXJnZXQgJiZcbiAgICAgIHRoaXMuX2NvdW50ZXIgPT09IDBcbiAgICApIHtcbiAgICAgIHRoaXMuX3NldERyYWdTdGF0ZSgpO1xuICAgICAgdGhpcy5fYmxvY2tFdmVudChldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25GaWxlRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fY291bnRlciA9IDA7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLmZvcm1EaXNhYmxlZCkge1xuICAgICAgdGhpcy5fc2V0RHJhZ1N0YXRlKCk7XG4gICAgICB0aGlzLl9ibG9ja0V2ZW50KGV2ZW50KTtcbiAgICAgIHRoaXMuX2NyZWF0ZUZpbGVMaXN0KGV2ZW50LmRhdGFUcmFuc2ZlciEuZmlsZXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29uRm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgIHRoaXMuX2xvYWRCdXR0b24udG9nZ2xlQXR0cmlidXRlKCdkYXRhLWZvY3VzLXZpc2libGUnLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbkJsdXIoKTogdm9pZCB7XG4gICAgaWYgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgIHRoaXMuX2xvYWRCdXR0b24ucmVtb3ZlQXR0cmlidXRlKCdkYXRhLWZvY3VzLXZpc2libGUnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXREcmFnU3RhdGUoXG4gICAgZHJhZ1RhcmdldDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgaXNEcmFnRW50ZXI6IGJvb2xlYW4gPSBmYWxzZSxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5fZHJhZ1RhcmdldCA9IGRyYWdUYXJnZXQ7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtYWN0aXZlJywgaXNEcmFnRW50ZXIpO1xuICAgIHRoaXMuX2xvYWRCdXR0b24udG9nZ2xlQXR0cmlidXRlKCdkYXRhLWFjdGl2ZScsIGlzRHJhZ0VudGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlYWRGaWxlcyhldmVudDogRE9NRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBmaWxlSW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBpZiAoZmlsZUlucHV0LmZpbGVzKSB7XG4gICAgICB0aGlzLl9jcmVhdGVGaWxlTGlzdChmaWxlSW5wdXQuZmlsZXMpO1xuICAgIH1cbiAgICBmb3J3YXJkRXZlbnRUb0hvc3QoZXZlbnQsIHRoaXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlRmlsZUxpc3QoZmlsZXM6IEZpbGVMaXN0KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlIHx8IHRoaXMubXVsdGlwbGVNb2RlICE9PSAncGVyc2lzdGVudCcgfHwgdGhpcy5maWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZmlsZXMgPSBBcnJheS5mcm9tKGZpbGVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWxlcyA9IEFycmF5LmZyb20oZmlsZXMpXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgLy8gUmVtb3ZlIGR1cGxpY2F0ZXNcbiAgICAgICAgICAobmV3RmlsZTogRmlsZSk6IGJvb2xlYW4gPT5cbiAgICAgICAgICAgIHRoaXMuZmlsZXMhLmZpbmRJbmRleCgob2xkRmlsZTogRmlsZSkgPT4gdGhpcy5fY2hlY2tGaWxlRXF1YWxpdHkobmV3RmlsZSwgb2xkRmlsZSkpID09PVxuICAgICAgICAgICAgLTEsXG4gICAgICAgIClcbiAgICAgICAgLmNvbmNhdCh0aGlzLmZpbGVzKTtcbiAgICB9XG4gICAgdGhpcy5fdXBkYXRlQTExeUxpdmVSZWdpb24oKTtcbiAgICB0aGlzLl9maWxlQ2hhbmdlZEV2ZW50LmVtaXQodGhpcy5maWxlcyk7XG4gIH1cblxuICBwcml2YXRlIF9yZW1vdmVGaWxlKGZpbGU6IEZpbGUpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVzID0gdGhpcy5maWxlcy5maWx0ZXIoKGY6IEZpbGUpID0+ICF0aGlzLl9jaGVja0ZpbGVFcXVhbGl0eShmaWxlLCBmKSk7XG4gICAgdGhpcy5fdXBkYXRlQTExeUxpdmVSZWdpb24oKTtcblxuICAgIC8vIERpc3BhdGNoIG5hdGl2ZSBldmVudHMgYXMgaWYgdGhlIHJlc2V0IGlzIGRvbmUgdmlhIHRoZSBmaWxlIHNlbGVjdGlvbiB3aW5kb3cuXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnLCB7IGNvbXBvc2VkOiB0cnVlLCBidWJibGVzOiB0cnVlIH0pKTtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIHRoaXMuX2ZpbGVDaGFuZ2VkRXZlbnQuZW1pdCh0aGlzLmZpbGVzKTtcbiAgfVxuXG4gIC8qKiBDYWxjdWxhdGVzIHRoZSBjb3JyZWN0IHVuaXQgZm9yIHRoZSBmaWxlJ3Mgc2l6ZS4gKi9cbiAgcHJpdmF0ZSBfZm9ybWF0RmlsZVNpemUoc2l6ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBpOiBudW1iZXIgPSBNYXRoLmZsb29yKE1hdGgubG9nKHNpemUpIC8gTWF0aC5sb2coMTAyNCkpO1xuICAgIHJldHVybiBgJHsoc2l6ZSAvIE1hdGgucG93KDEwMjQsIGkpKS50b0ZpeGVkKDApfSAke3RoaXMuX3N1ZmZpeGVzW2ldfWA7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVBMTF5TGl2ZVJlZ2lvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9saXZlUmVnaW9uLmlubmVyVGV4dCA9IGkxOG5GaWxlU2VsZWN0b3JDdXJyZW50bHlTZWxlY3RlZCh0aGlzLmZpbGVzLm1hcCgoZSkgPT4gZS5uYW1lKSlbXG4gICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50XG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlckRlZmF1bHRNb2RlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzYmItc2Vjb25kYXJ5LWJ1dHRvbi1zdGF0aWNcbiAgICAgICAgc2l6ZT0ke3RoaXMuc2l6ZX1cbiAgICAgICAgaWNvbi1uYW1lPVwiZm9sZGVyLW9wZW4tc21hbGxcIlxuICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkIHx8IHRoaXMuZm9ybURpc2FibGVkfVxuICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhpcy5fbG9hZEJ1dHRvbiA9IGVsIGFzIFNiYlNlY29uZGFyeUJ1dHRvblN0YXRpY0VsZW1lbnQ7XG4gICAgICAgIH0pfVxuICAgICAgPlxuICAgICAgICAke2kxOG5GaWxlU2VsZWN0b3JCdXR0b25MYWJlbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgIDwvc2JiLXNlY29uZGFyeS1idXR0b24tc3RhdGljPlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJEcm9wem9uZUFyZWEoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZHJvcHpvbmUtYXJlYVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19kcm9wem9uZS1hcmVhLS1pY29uXCI+XG4gICAgICAgICAgPHNiYi1pY29uXG4gICAgICAgICAgICBuYW1lPSR7dGhpcy5zaXplID09PSAnbScgPyAnZm9sZGVyLW9wZW4tbWVkaXVtJyA6ICdmb2xkZXItb3Blbi1zbWFsbCd9XG4gICAgICAgICAgPjwvc2JiLWljb24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZHJvcHpvbmUtYXJlYS0tdGl0bGVcIj4ke3RoaXMudGl0bGVDb250ZW50fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZHJvcHpvbmUtYXJlYS0tc3VidGl0bGVcIj5cbiAgICAgICAgICAke2kxOG5GaWxlU2VsZWN0b3JTdWJ0aXRsZUxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX2Ryb3B6b25lLWFyZWEtLWJ1dHRvblwiPlxuICAgICAgICAgIDxzYmItc2Vjb25kYXJ5LWJ1dHRvbi1zdGF0aWNcbiAgICAgICAgICAgIHNpemU9JHt0aGlzLnNpemV9XG4gICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkIHx8IHRoaXMuZm9ybURpc2FibGVkfVxuICAgICAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICB0aGlzLl9sb2FkQnV0dG9uID0gZWwgYXMgU2JiU2Vjb25kYXJ5QnV0dG9uU3RhdGljRWxlbWVudDtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgICR7aTE4bkZpbGVTZWxlY3RvckJ1dHRvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgIDwvc2JiLXNlY29uZGFyeS1idXR0b24tc3RhdGljPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlckZpbGVMaXN0KCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBUQUdfTkFNRTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9XG4gICAgICB0aGlzLmZpbGVzLmxlbmd0aCA+IDFcbiAgICAgICAgPyB7IFdSQVBQRVI6ICd1bCcsIEVMRU1FTlQ6ICdsaScgfVxuICAgICAgICA6IHsgV1JBUFBFUjogJ2RpdicsIEVMRU1FTlQ6ICdzcGFuJyB9O1xuXG4gICAgLyogZXNsaW50LWRpc2FibGUgbGl0L2JpbmRpbmctcG9zaXRpb25zICovXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8JHt1bnNhZmVTdGF0aWMoVEFHX05BTUUuV1JBUFBFUil9IGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX2ZpbGUtbGlzdFwiPlxuICAgICAgICAke3RoaXMuZmlsZXMubWFwKFxuICAgICAgICAgIChmaWxlOiBGaWxlKSA9PiBodG1sYFxuICAgICAgICAgIDwke3Vuc2FmZVN0YXRpYyhUQUdfTkFNRS5FTEVNRU5UKX0gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZmlsZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZmlsZS1kZXRhaWxzXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX2ZpbGUtbmFtZVwiPiR7ZmlsZS5uYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZmlsZS1zaXplXCI+JHt0aGlzLl9mb3JtYXRGaWxlU2l6ZShmaWxlLnNpemUpfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzYmItc2Vjb25kYXJ5LWJ1dHRvblxuICAgICAgICAgICAgICBzaXplPSR7dGhpcy5zaXplfVxuICAgICAgICAgICAgICBpY29uLW5hbWU9XCJ0cmFzaC1zbWFsbFwiXG4gICAgICAgICAgICAgIEBjbGljaz0keygpID0+IHRoaXMuX3JlbW92ZUZpbGUoZmlsZSl9XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9JHtgJHtpMThuRmlsZVNlbGVjdG9yRGVsZXRlRmlsZVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gLSAke2ZpbGUubmFtZX1gfVxuICAgICAgICAgICAgPjwvc2JiLXNlY29uZGFyeS1idXR0b24+XG4gICAgICAgICAgPC8ke3Vuc2FmZVN0YXRpYyhUQUdfTkFNRS5FTEVNRU5UKX0+YCxcbiAgICAgICAgKX1cbiAgICAgIDwvJHt1bnNhZmVTdGF0aWMoVEFHX05BTUUuV1JBUFBFUil9PlxuICAgIGA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBhcmlhTGFiZWwgPSB0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbFxuICAgICAgPyBgJHtpMThuRmlsZVNlbGVjdG9yQnV0dG9uTGFiZWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19IC0gJHt0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbH1gXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItZmlsZS1zZWxlY3RvclwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9faW5wdXQtY29udGFpbmVyXCJcbiAgICAgICAgICBAZHJhZ2VudGVyPSR7dGhpcy5fb25EcmFnRW50ZXJ9XG4gICAgICAgICAgQGRyYWdvdmVyPSR7dGhpcy5fYmxvY2tFdmVudH1cbiAgICAgICAgICBAZHJhZ2xlYXZlPSR7dGhpcy5fb25EcmFnTGVhdmV9XG4gICAgICAgICAgQGRyb3A9JHt0aGlzLl9vbkZpbGVEcm9wfVxuICAgICAgICA+XG4gICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgJHt0aGlzLnZhcmlhbnQgPT09ICdkZWZhdWx0JyA/IHRoaXMuX3JlbmRlckRlZmF1bHRNb2RlKCkgOiB0aGlzLl9yZW5kZXJEcm9wem9uZUFyZWEoKX1cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX192aXN1YWxseS1oaWRkZW5cIlxuICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWQgfHwgdGhpcy5mb3JtRGlzYWJsZWR9XG4gICAgICAgICAgICAgID9tdWx0aXBsZT0ke3RoaXMubXVsdGlwbGV9XG4gICAgICAgICAgICAgIGFjY2VwdD0ke3RoaXMuYWNjZXB0IHx8IG5vdGhpbmd9XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9JHthcmlhTGFiZWwgfHwgbm90aGluZ31cbiAgICAgICAgICAgICAgQGNoYW5nZT0ke3RoaXMuX3JlYWRGaWxlc31cbiAgICAgICAgICAgICAgQGZvY3VzPSR7dGhpcy5fb25Gb2N1c31cbiAgICAgICAgICAgICAgQGJsdXI9JHt0aGlzLl9vbkJsdXJ9XG4gICAgICAgICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9oaWRkZW5JbnB1dCA9IGVsIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHBcbiAgICAgICAgICByb2xlPVwic3RhdHVzXCJcbiAgICAgICAgICBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX192aXN1YWxseS1oaWRkZW5cIlxuICAgICAgICAgICR7cmVmKChwPzogRWxlbWVudCkgPT4gKHRoaXMuX2xpdmVSZWdpb24gPSBwIGFzIEhUTUxQYXJhZ3JhcGhFbGVtZW50KSl9XG4gICAgICAgID48L3A+XG4gICAgICAgICR7dGhpcy5maWxlcy5sZW5ndGggPiAwID8gdGhpcy5fcmVuZGVyRmlsZUxpc3QoKSA6IG5vdGhpbmd9XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZXJyb3JcIj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwiZXJyb3JcIj48L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWZpbGUtc2VsZWN0b3InOiBTYmJGaWxlU2VsZWN0b3JFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsiU2JiRmlsZVNlbGVjdG9yRWxlbWVudCIsIl9hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBMkNNLDBCQUFzQixNQUFBOztBQUYzQixNQUFBLG1CQUFBLENBQUEsY0FBYyxtQkFBbUIsR0FDakMsV0FBVzs7OztBQUN5QixNQUFBLGNBQUEsaUJBQWlCLHVCQUF1QixVQUFVLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBM0RBLE1BQUFBLDJCQUFBLG1CQUFRLFlBQW9EO0FBQUE7O0FBTzNFO0FBR2lCO0FBSzdCO0FBSUE7QUFLQTtBQUtBO0FBS0E7QUFsQ0kseUJBQUEsNEJBQUEsa0JBQUEsTUFBQSwwQkFBQSxHQU8wRCxrQkFBQSxNQUFBLHVCQUFBLFNBQVM7QUFHMUIseUJBQUEseUJBQUEsa0JBQUEsTUFBQSwwQkFBQSxHQUFBLGtCQUFBLE1BQUEsb0JBQWtCLEdBQUc7QUFLbEQseUJBQUEsNkJBQUEsa0JBQUEsTUFBQSx1QkFBQSxHQUFBLGtCQUFBLE1BQUEsd0JBQW9CLEtBQUs7QUFJekIseUJBQUEsaUNBQUEsa0JBQUEsTUFBQSwyQkFBQSxHQUFBLGtCQUFBLE1BQUEsNEJBQXlDLFNBQVM7QUFLbEQseUJBQUEsMkJBQUEsa0JBQUEsTUFBQSwrQkFBQSxHQUFBLGtCQUFBLE1BQUEsc0JBQWlCLEVBQUU7QUFLbkIseUJBQUEsaUNBQUEsa0JBQUEsTUFBQSx5QkFBQSxHQUFBLGtCQUFBLE1BQUEsNEJBQXVCLEVBQUU7QUFLekIseUJBQUEsdUNBQUEsa0JBQUEsTUFBQSwrQkFBQSxHQUFBLGtCQUFBLE1BQUEsa0NBQTZCLEVBQUU7QUFnQ3ZDLFdBQU0sVUFBQSxrQkFBQSxNQUFBLHFDQUFBLEdBQVcsQ0FBQTtBQUdqQixXQUFBLG9CQUEwQyxJQUFJLGFBQ3BELE1BQ0FBLHdCQUF1QixPQUFPLGdCQUFnQjtBQUt4QyxXQUFRLFdBQVc7QUFLbkIsV0FBQSxZQUFzQixDQUFDLEtBQUssTUFBTSxNQUFNLE1BQU0sSUFBSTtBQUdsRCxXQUFBLFlBQVksSUFBSSxzQkFBc0IsSUFBSTtBQUFBLElBQUE7QUFBQTtBQUFBLElBN0V0QyxJQUFnQixVQUE0QztBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBNUQsSUFBZ0IsUUFBNEMsT0FBQTtBQUFBLHlCQUFBLDJCQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFHM0MsSUFBZ0IsT0FBc0I7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQXRDLElBQWdCLEtBQXNCLE9BQUE7QUFBQSx5QkFBQSx3QkFBQTtBQUFBLElBQUE7QUFBQTtBQUFBLElBS25FLElBQWdCLFdBQTBCO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUExQyxJQUFnQixTQUEwQixPQUFBO0FBQUEseUJBQUEsNEJBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUkxQyxJQUFnQixlQUFtRDtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBbkUsSUFBZ0IsYUFBbUQsT0FBQTtBQUFBLHlCQUFBLGdDQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFLbkUsSUFBZ0IsU0FBb0I7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQXBDLElBQWdCLE9BQW9CLE9BQUE7QUFBQSx5QkFBQSwwQkFBQTtBQUFBLElBQUE7QUFBQTtBQUFBLElBS3BDLElBQWdCLGVBQTBCO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUExQyxJQUFnQixhQUEwQixPQUFBO0FBQUEseUJBQUEsZ0NBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUsxQyxJQUFnQixxQkFBZ0M7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQWhELElBQWdCLG1CQUFnQyxPQUFBO0FBQUEseUJBQUEsc0NBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUloRCxJQUFvQixNQUFNLE9BQW9CO0FBQ3ZDLFdBQUEsYUFBYSxRQUFRLFNBQVM7QUFFbkMsVUFBSSxDQUFDLE9BQU87QUFDVixhQUFLLFFBQVEsQ0FBQTtBQUFBLE1BQUE7QUFBQSxJQUNmO0FBQUEsSUFFRixJQUFvQixRQUFLOztBQUN2QixjQUFPQyxNQUFBLEtBQUssaUJBQUwsZ0JBQUFBLElBQW1CO0FBQUEsSUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBTzVCLElBQVcsTUFBTSxPQUFhO0FBQ3ZCLFdBQUEsU0FBUyxTQUFTO0FBR2pCLFlBQUEsS0FBbUIsSUFBSTtBQUN4QixXQUFBLE1BQU0sUUFBUSxDQUFDLE1BQVksR0FBRyxNQUFNLElBQUksQ0FBQyxDQUFDO0FBQzFDLFdBQUEsYUFBYSxRQUFRLEdBQUc7QUFFN0IsV0FBSyxnQkFBZTtBQUFBLElBQUE7QUFBQSxJQUV0QixJQUFXLFFBQUs7QUFDZCxhQUFPLEtBQUs7QUFBQSxJQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUF5QlAsV0FBUTtBQUNiLGFBQU8sS0FBSztBQUFBLElBQUE7QUFBQSxJQUdFLG9CQUFpQjtBQUMvQixXQUFLLFFBQVEsQ0FBQTtBQUFBLElBQUE7QUFBQSxJQUdDLHlCQUNkLE9BQ0EsU0FBMkI7QUFFM0IsVUFBSSxDQUFDLE9BQU87QUFDVjtBQUFBLE1BQUE7QUFFRyxXQUFBLFFBQVMsTUFBeUMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLE1BQU0sS0FBYTtBQUFBLElBQUE7QUFBQSxJQUd2RSxrQkFBZTtBQUMxQixZQUFBLFlBQVksSUFBSTtBQUNqQixXQUFBLE1BQU0sUUFBUSxDQUFDLFNBQVMsVUFBVSxPQUFPLEtBQUssTUFBTSxJQUFJLENBQUM7QUFDekQsV0FBQSxVQUFVLGFBQWEsU0FBUztBQUFBLElBQUE7QUFBQSxJQUcvQixZQUFZLE9BQWdCO0FBQ2xDLFlBQU0sZ0JBQWU7QUFDckIsWUFBTSxlQUFjO0FBQUEsSUFBQTtBQUFBLElBR2QsbUJBQW1CLE9BQWEsT0FBVztBQUUvQyxhQUFBLE1BQU0sU0FBUyxNQUFNLFFBQ3JCLE1BQU0sU0FBUyxNQUFNLFFBQ3JCLE1BQU0saUJBQWlCLE1BQU07QUFBQSxJQUFBO0FBQUEsSUFJekIsYUFBYSxPQUFnQjtBQUM5QixXQUFBO0FBQ0wsVUFBSSxDQUFDLEtBQUssWUFBWSxDQUFDLEtBQUssY0FBYztBQUNuQyxhQUFBLGNBQWMsTUFBTSxRQUF1QixJQUFJO0FBQ3BELGFBQUssWUFBWSxLQUFLO0FBQUEsTUFBQTtBQUFBLElBQ3hCO0FBQUEsSUFHTSxhQUFhLE9BQWdCO0FBQzlCLFdBQUE7QUFDTCxVQUNFLENBQUMsS0FBSyxZQUNOLENBQUMsS0FBSyxnQkFDTixNQUFNLFdBQVcsS0FBSyxlQUN0QixLQUFLLGFBQWEsR0FDbEI7QUFDQSxhQUFLLGNBQWE7QUFDbEIsYUFBSyxZQUFZLEtBQUs7QUFBQSxNQUFBO0FBQUEsSUFDeEI7QUFBQSxJQUdNLFlBQVksT0FBZ0I7QUFDbEMsV0FBSyxXQUFXO0FBQ2hCLFVBQUksQ0FBQyxLQUFLLFlBQVksQ0FBQyxLQUFLLGNBQWM7QUFDeEMsYUFBSyxjQUFhO0FBQ2xCLGFBQUssWUFBWSxLQUFLO0FBQ2pCLGFBQUEsZ0JBQWdCLE1BQU0sYUFBYyxLQUFLO0FBQUEsTUFBQTtBQUFBLElBQ2hEO0FBQUEsSUFHTSxXQUFRO0FBQ1YsVUFBQSx5QkFBeUIsdUJBQXVCLFlBQVk7QUFDekQsYUFBQSxZQUFZLGdCQUFnQixzQkFBc0IsSUFBSTtBQUFBLE1BQUE7QUFBQSxJQUM3RDtBQUFBLElBR00sVUFBTztBQUNULFVBQUEseUJBQXlCLHVCQUF1QixZQUFZO0FBQ3pELGFBQUEsWUFBWSxnQkFBZ0Isb0JBQW9CO0FBQUEsTUFBQTtBQUFBLElBQ3ZEO0FBQUEsSUFHTSxjQUNOLGFBQXNDLFFBQ3RDLGNBQXVCLE9BQUs7QUFFNUIsV0FBSyxjQUFjO0FBQ2QsV0FBQSxnQkFBZ0IsZUFBZSxXQUFXO0FBQzFDLFdBQUEsWUFBWSxnQkFBZ0IsZUFBZSxXQUFXO0FBQUEsSUFBQTtBQUFBLElBR3JELFdBQVcsT0FBZTtBQUNoQyxZQUFNLFlBQVksTUFBTTtBQUN4QixVQUFJLFVBQVUsT0FBTztBQUNkLGFBQUEsZ0JBQWdCLFVBQVUsS0FBSztBQUFBLE1BQUE7QUFFdEMseUJBQW1CLE9BQU8sSUFBSTtBQUFBLElBQUE7QUFBQSxJQUd4QixnQkFBZ0IsT0FBZTtBQUNqQyxVQUFBLENBQUMsS0FBSyxZQUFZLEtBQUssaUJBQWlCLGdCQUFnQixLQUFLLE1BQU0sV0FBVyxHQUFHO0FBQzlFLGFBQUEsUUFBUSxNQUFNLEtBQUssS0FBSztBQUFBLE1BQUEsT0FDeEI7QUFDTCxhQUFLLFFBQVEsTUFBTSxLQUFLLEtBQUssRUFDMUI7QUFBQTtBQUFBLFVBRUMsQ0FBQyxZQUNDLEtBQUssTUFBTyxVQUFVLENBQUMsWUFBa0IsS0FBSyxtQkFBbUIsU0FBUyxPQUFPLENBQUMsTUFDbEY7QUFBQSxRQUFBLEVBRUgsT0FBTyxLQUFLLEtBQUs7QUFBQSxNQUFBO0FBRXRCLFdBQUssc0JBQXFCO0FBQ3JCLFdBQUEsa0JBQWtCLEtBQUssS0FBSyxLQUFLO0FBQUEsSUFBQTtBQUFBLElBR2hDLFlBQVksTUFBVTtBQUN2QixXQUFBLFFBQVEsS0FBSyxNQUFNLE9BQU8sQ0FBQyxNQUFZLENBQUMsS0FBSyxtQkFBbUIsTUFBTSxDQUFDLENBQUM7QUFDN0UsV0FBSyxzQkFBcUI7QUFHckIsV0FBQSxjQUFjLElBQUksTUFBTSxTQUFTLEVBQUUsVUFBVSxNQUFNLFNBQVMsS0FBTSxDQUFBLENBQUM7QUFDbkUsV0FBQSxjQUFjLElBQUksTUFBTSxVQUFVLEVBQUUsU0FBUyxLQUFBLENBQU0sQ0FBQztBQUNwRCxXQUFBLGtCQUFrQixLQUFLLEtBQUssS0FBSztBQUFBLElBQUE7QUFBQTtBQUFBLElBSWhDLGdCQUFnQixNQUFZO0FBQzVCLFlBQUEsSUFBWSxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDO0FBQzVELGFBQU8sSUFBSSxPQUFPLEtBQUssSUFBSSxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUM7QUFBQSxJQUFBO0FBQUEsSUFHOUQsd0JBQXFCO0FBQzNCLFdBQUssWUFBWSxZQUFZLGtDQUFrQyxLQUFLLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFDMUYsS0FBSyxVQUFVLE9BQU87QUFBQSxJQUFBO0FBQUEsSUFJbEIscUJBQWtCO0FBQ2pCLGFBQUE7QUFBQTtBQUFBLGVBRUksS0FBSyxJQUFJO0FBQUE7QUFBQSxvQkFFSixLQUFLLFlBQVksS0FBSyxZQUFZO0FBQUEsVUFDNUMsSUFBSSxDQUFDLE9BQXNCO0FBQzNCLGFBQUssY0FBYztBQUFBLE1BQUEsQ0FDcEIsQ0FBQztBQUFBO0FBQUEsVUFFQSw0QkFBNEIsS0FBSyxVQUFVLE9BQU8sQ0FBQztBQUFBO0FBQUE7QUFBQSxJQUFBO0FBQUEsSUFLbkQsc0JBQW1CO0FBQ2xCLGFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFJUSxLQUFLLFNBQVMsTUFBTSx1QkFBdUIsbUJBQW1CO0FBQUE7QUFBQTtBQUFBLGdFQUdqQixLQUFLLFlBQVk7QUFBQTtBQUFBLFlBRXJFLDhCQUE4QixLQUFLLFVBQVUsT0FBTyxDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBSTlDLEtBQUssSUFBSTtBQUFBLHdCQUNKLEtBQUssWUFBWSxLQUFLLFlBQVk7QUFBQSxjQUM1QyxJQUFJLENBQUMsT0FBc0I7QUFDM0IsYUFBSyxjQUFjO0FBQUEsTUFBQSxDQUNwQixDQUFDO0FBQUE7QUFBQSxjQUVBLDRCQUE0QixLQUFLLFVBQVUsT0FBTyxDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQUFBO0FBQUEsSUFPdkQsa0JBQWU7QUFDckIsWUFBTSxXQUNKLEtBQUssTUFBTSxTQUFTLElBQ2hCLEVBQUUsU0FBUyxNQUFNLFNBQVMsU0FDMUIsRUFBRSxTQUFTLE9BQU8sU0FBUyxPQUFNO0FBR2hDLGFBQUE7QUFBQSxTQUNGLGFBQWEsU0FBUyxPQUFPLENBQUM7QUFBQSxVQUM3QixLQUFLLE1BQU0sSUFDWCxDQUFDLFNBQWU7QUFBQSxhQUNiLGFBQWEsU0FBUyxPQUFPLENBQUM7QUFBQTtBQUFBLDJEQUVnQixLQUFLLElBQUk7QUFBQSwyREFDVCxLQUFLLGdCQUFnQixLQUFLLElBQUksQ0FBQztBQUFBO0FBQUE7QUFBQSxxQkFHckUsS0FBSyxJQUFJO0FBQUE7QUFBQSx1QkFFUCxNQUFNLEtBQUssWUFBWSxJQUFJLENBQUM7QUFBQSwyQkFDeEIsR0FBRywyQkFBMkIsS0FBSyxVQUFVLE9BQU8sQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFO0FBQUE7QUFBQSxjQUVuRixhQUFhLFNBQVMsT0FBTyxDQUFDLEdBQUcsQ0FDdEM7QUFBQSxVQUNDLGFBQWEsU0FBUyxPQUFPLENBQUM7QUFBQTtBQUFBLElBQUE7QUFBQSxJQUluQixTQUFNO0FBQ3ZCLFlBQU0sWUFBWSxLQUFLLHFCQUNuQixHQUFHLDRCQUE0QixLQUFLLFVBQVUsT0FBTyxDQUFDLE1BQU0sS0FBSyxrQkFBa0IsS0FDbkY7QUFDRyxhQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBSVksS0FBSyxZQUFZO0FBQUEsc0JBQ2xCLEtBQUssV0FBVztBQUFBLHVCQUNmLEtBQUssWUFBWTtBQUFBLGtCQUN0QixLQUFLLFdBQVc7QUFBQTtBQUFBO0FBQUEsY0FHcEIsS0FBSyxZQUFZLFlBQVksS0FBSyxtQkFBdUIsSUFBQSxLQUFLLG9CQUFxQixDQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsMEJBSXZFLEtBQUssWUFBWSxLQUFLLFlBQVk7QUFBQSwwQkFDbEMsS0FBSyxRQUFRO0FBQUEsdUJBQ2hCLEtBQUssVUFBVSxPQUFPO0FBQUEsMkJBQ2xCLGFBQWEsT0FBTztBQUFBLHdCQUN2QixLQUFLLFVBQVU7QUFBQSx1QkFDaEIsS0FBSyxRQUFRO0FBQUEsc0JBQ2QsS0FBSyxPQUFPO0FBQUEsZ0JBQ2xCLElBQUksQ0FBQyxPQUFzQjtBQUMzQixhQUFLLGVBQWU7QUFBQSxNQUFBLENBQ3JCLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQU9KLElBQUksQ0FBQyxNQUFpQixLQUFLLGNBQWMsQ0FBMEIsQ0FBQztBQUFBO0FBQUEsVUFFdEUsS0FBSyxNQUFNLFNBQVMsSUFBSSxLQUFLLGdCQUFBLElBQW9CLE9BQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFBQTtBQUFBLEtBblVwRCwyQ0FHaUIsd0NBSzdCLDRDQUlBLGdEQUtBLDBDQUtBLGdEQUtBOztBQTNCQywwQkFBQSxDQUFBLFVBQVU7QUFHVix1QkFBQSxDQUFBLFNBQVMsRUFBRSxTQUFTLEtBQU0sQ0FBQSxDQUFDOzRCQUczQixhQUNBLFNBQVMsRUFBRSxNQUFNLFFBQUEsQ0FBUyxDQUFDO0FBSTNCLCtCQUFBLENBQUEsU0FBUyxFQUFFLFdBQVcsZ0JBQWlCLENBQUEsQ0FBQzswQkFJeEMsYUFDQSxVQUFVO2dDQUlWLGFBQ0EsU0FBUyxFQUFFLFdBQVcsZ0JBQUEsQ0FBaUIsQ0FBQztzQ0FJeEMsYUFDQSxTQUFTLEVBQUUsV0FBVyxzQkFBQSxDQUF1QixDQUFDO0FBSTlDLDRCQUFBLENBQUEsU0FBUyxFQUFFLFdBQVcsTUFBTyxDQUFBLENBQUM7QUFlOUIsNEJBQUEsQ0FBQSxTQUFTLEVBQUUsV0FBVyxNQUFPLENBQUEsQ0FBQztBQTdDSCxpQkFBQSxJQUFBLE1BQUEscUJBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxXQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGFBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFBLFNBQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUEsVUFBNEM7QUFBQSxTQUFBLFVBQUEsYUFBQSx1QkFBQSwwQkFBQTtBQUczQixpQkFBQSxJQUFBLE1BQUEsa0JBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxRQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLFVBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFBLE1BQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUEsT0FBc0I7QUFBQSxTQUFBLFVBQUEsYUFBQSxvQkFBQSx1QkFBQTtBQUtuRCxpQkFBQSxJQUFBLE1BQUEsc0JBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxZQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGNBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFBLFVBQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUEsV0FBMEI7QUFBQSxTQUFBLFVBQUEsYUFBQSx3QkFBQSwyQkFBQTtBQUkxQixpQkFBQSxJQUFBLE1BQUEsMEJBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxnQkFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxrQkFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQUEsY0FBQSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBQSxlQUFtRDtBQUFBLFNBQUEsVUFBQSxhQUFBLDRCQUFBLCtCQUFBO0FBS25ELGlCQUFBLElBQUEsTUFBQSxvQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLFVBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsWUFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQUEsUUFBQSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBQSxTQUFvQjtBQUFBLFNBQUEsVUFBQSxhQUFBLHNCQUFBLHlCQUFBO0FBS3BCLGlCQUFBLElBQUEsTUFBQSwwQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLGdCQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGtCQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBQSxjQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFBLGVBQTBCO0FBQUEsU0FBQSxVQUFBLGFBQUEsNEJBQUEsK0JBQUE7QUFLMUIsaUJBQUEsSUFBQSxNQUFBLGdDQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsc0JBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsd0JBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFBLG9CQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFBLHFCQUFnQztBQUFBLFNBQUEsVUFBQSxhQUFBLGtDQUFBLHFDQUFBO0FBSWhELGlCQUFBLElBQUEsTUFBQSx1QkFBQSxFQUFBLE1BQUEsVUFBQSxNQUFBLFNBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsV0FBQSxLQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFvQixRQU1uQjtBQUFBLFNBQUEsVUFBQSxhQUFBLE1BQUEsMEJBQUE7QUFTRCxpQkFBQSxJQUFBLE1BQUEsdUJBQUEsRUFBQSxNQUFBLFVBQUEsTUFBQSxTQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLFdBQUEsS0FBQSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBVyxRQVNWO0FBQUEsU0FBQSxVQUFBLGFBQUEsTUFBQSwwQkFBQTtBQTlESCxpQkFpVkMsTUFBQSxtQkFBQSxFQUFBLE9BQUEsV0FBQSxHQUFBLGtCQUFBLEVBQUEsTUFBQSxTQUFBLE1BQUEsV0FBQSxNQUFBLFVBQUEsVUFBQSxHQUFBLE1BQUEsdUJBQUE7OztRQWhWd0IsR0FBTSxTQUFtQixPQUN6QixHQUFBLFNBQVM7QUFBQSxJQUM5QixrQkFBa0I7QUFBQSxFQUNWLEdBSk4sa0JBQXNCLFlBQUEsdUJBQUEsR0FBQzs7OyJ9
552
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZWxlY3Rvci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2ZpbGUtc2VsZWN0b3IvZmlsZS1zZWxlY3Rvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBMaXRFbGVtZW50LCBub3RoaW5nLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcbmltcG9ydCB7IGh0bWwsIHVuc2FmZVN0YXRpYyB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiU2Vjb25kYXJ5QnV0dG9uU3RhdGljRWxlbWVudCB9IGZyb20gJy4uL2J1dHRvbi5qcyc7XG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUsIHNsb3RTdGF0ZSB9IGZyb20gJy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIGZvcndhcmRFdmVudFRvSG9zdCB9IGZyb20gJy4uL2NvcmUvZXZlbnRpbmcuanMnO1xuaW1wb3J0IHtcbiAgaTE4bkZpbGVTZWxlY3RvckJ1dHRvbkxhYmVsLFxuICBpMThuRmlsZVNlbGVjdG9yQ3VycmVudGx5U2VsZWN0ZWQsXG4gIGkxOG5GaWxlU2VsZWN0b3JEZWxldGVGaWxlLFxuICBpMThuRmlsZVNlbGVjdG9yU3VidGl0bGVMYWJlbCxcbn0gZnJvbSAnLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgRm9ybVJlc3RvcmVSZWFzb24sXG4gIHR5cGUgRm9ybVJlc3RvcmVTdGF0ZSxcbiAgU2JiRGlzYWJsZWRNaXhpbixcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbixcbn0gZnJvbSAnLi4vY29yZS9taXhpbnMuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9maWxlLXNlbGVjdG9yLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vYnV0dG9uL3NlY29uZGFyeS1idXR0b24uanMnO1xuaW1wb3J0ICcuLi9idXR0b24vc2Vjb25kYXJ5LWJ1dHRvbi1zdGF0aWMuanMnO1xuaW1wb3J0ICcuLi9pY29uLmpzJztcblxuZXhwb3J0IHR5cGUgRE9NRXZlbnQgPSBnbG9iYWxUaGlzLkV2ZW50O1xuXG4vKipcbiAqIEl0IGFsbG93cyB0byBzZWxlY3Qgb25lIG9yIG1vcmUgZmlsZSBmcm9tIHN0b3JhZ2UgZGV2aWNlcyBhbmQgZGlzcGxheSB0aGVtLlxuICpcbiAqIEBzbG90IGVycm9yIC0gVXNlIHRoaXMgdG8gcHJvdmlkZSBhIGBzYmItZm9ybS1lcnJvcmAgdG8gc2hvdyBhbiBlcnJvciBtZXNzYWdlLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDxGaWxlW10+fSBmaWxlQ2hhbmdlZCAtIEFuIGV2ZW50IHdoaWNoIGlzIGVtaXR0ZWQgZWFjaCB0aW1lIHRoZSBmaWxlIGxpc3QgY2hhbmdlcy5cbiAqIEBldmVudCBjaGFuZ2UgLSBBbiBldmVudCB3aGljaCBpcyBlbWl0dGVkIGVhY2ggdGltZSB0aGUgdXNlciBtb2RpZmllcyB0aGUgdmFsdWUuIFVubGlrZSB0aGUgaW5wdXQgZXZlbnQsIHRoZSBjaGFuZ2UgZXZlbnQgaXMgbm90IG5lY2Vzc2FyaWx5IGZpcmVkIGZvciBlYWNoIGFsdGVyYXRpb24gdG8gYW4gZWxlbWVudCdzIHZhbHVlXG4gKiBAZXZlbnQgaW5wdXQgLSBBbiBldmVudCB3aGljaCBpcyBlbWl0dGVkIGVhY2ggdGltZSB0aGUgdmFsdWUgY2hhbmdlcyBhcyBhIGRpcmVjdCByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbi5cbiAqIEBvdmVycmlkZVR5cGUgdmFsdWUgLSBzdHJpbmcgfCBudWxsXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1maWxlLXNlbGVjdG9yJylcbkBzbG90U3RhdGUoKVxuY2xhc3MgU2JiRmlsZVNlbGVjdG9yRWxlbWVudCBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihMaXRFbGVtZW50KSkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgZmlsZUNoYW5nZWRFdmVudDogJ2ZpbGVDaGFuZ2VkJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogV2hldGhlciB0aGUgY29tcG9uZW50IGhhcyBhIGRyb3B6b25lIGFyZWEgb3Igbm90LiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgYWNjZXNzb3IgdmFyaWFudDogJ2RlZmF1bHQnIHwgJ2Ryb3B6b25lJyA9ICdkZWZhdWx0JztcblxuICAvKiogU2l6ZSB2YXJpYW50LCBlaXRoZXIgcyBvciBtLiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBzaXplOiAncycgfCAnbScgPSAnbSc7XG5cbiAgLyoqIFdoZXRoZXIgbW9yZSB0aGFuIG9uZSBmaWxlIGNhbiBiZSBzZWxlY3RlZC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG5ld2x5IGFkZGVkIGZpbGVzIHNob3VsZCBvdmVycmlkZSB0aGUgcHJldmlvdXNseSBhZGRlZCBvbmVzLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdtdWx0aXBsZS1tb2RlJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgbXVsdGlwbGVNb2RlOiAnZGVmYXVsdCcgfCAncGVyc2lzdGVudCcgPSAnZGVmYXVsdCc7XG5cbiAgLyoqIEEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgYWxsb3dlZCB1bmlxdWUgZmlsZSB0eXBlIHNwZWNpZmllcnMuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXB0OiBzdHJpbmcgPSAnJztcblxuICAvKiogVGhlIHRpdGxlIGRpc3BsYXllZCBpbiBgZHJvcHpvbmVgIHZhcmlhbnQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd0aXRsZS1jb250ZW50JyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgdGl0bGVDb250ZW50OiBzdHJpbmcgPSAnJztcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5TGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBUaGUgcGF0aCBvZiB0aGUgZmlyc3Qgc2VsZWN0ZWQgZmlsZS4gRW1wdHkgc3RyaW5nICgnJykgaWYgbm8gZmlsZSBpcyBzZWxlY3RlZCAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgICB0aGlzLl9oaWRkZW5JbnB1dC52YWx1ZSA9IHZhbHVlID8/ICcnO1xuXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy5maWxlcyA9IFtdO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9oaWRkZW5JbnB1dD8udmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2Ygc2VsZWN0ZWQgZmlsZXMuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgZmlsZXModmFsdWU6IEZpbGVbXSkge1xuICAgIHRoaXMuX2ZpbGVzID0gdmFsdWUgPz8gW107XG5cbiAgICAvLyB1cGRhdGUgdGhlIGlubmVyIGlucHV0XG4gICAgY29uc3QgZHQ6IERhdGFUcmFuc2ZlciA9IG5ldyBEYXRhVHJhbnNmZXIoKTtcbiAgICB0aGlzLmZpbGVzLmZvckVhY2goKGU6IEZpbGUpID0+IGR0Lml0ZW1zLmFkZChlKSk7XG4gICAgdGhpcy5faGlkZGVuSW5wdXQuZmlsZXMgPSBkdC5maWxlcztcblxuICAgIHRoaXMudXBkYXRlRm9ybVZhbHVlKCk7XG4gIH1cbiAgcHVibGljIGdldCBmaWxlcygpOiBGaWxlW10ge1xuICAgIHJldHVybiB0aGlzLl9maWxlcztcbiAgfVxuICBwcml2YXRlIF9maWxlczogRmlsZVtdID0gW107XG5cbiAgLyoqXG4gICAqIEZvcm0gdHlwZSBvZiBlbGVtZW50LlxuICAgKiBAZGVmYXVsdCAnZmlsZSdcbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnZmlsZSc7XG4gIH1cblxuICAvKiogQW4gZXZlbnQgd2hpY2ggaXMgZW1pdHRlZCBlYWNoIHRpbWUgdGhlIGZpbGUgbGlzdCBjaGFuZ2VzLiAqL1xuICBwcml2YXRlIF9maWxlQ2hhbmdlZEV2ZW50OiBFdmVudEVtaXR0ZXI8RmlsZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJGaWxlU2VsZWN0b3JFbGVtZW50LmV2ZW50cy5maWxlQ2hhbmdlZEV2ZW50LFxuICApO1xuXG4gIC8vIFNhZmFyaSBoYXMgYSBwZWN1bGlhciBiZWhhdmlvciB3aGVuIGRyYWdnaW5nIGZpbGVzIG9uIHRoZSBpbm5lciBidXR0b24gaW4gJ2Ryb3B6b25lJyB2YXJpYW50O1xuICAvLyB0aGlzIHdpbGwgcmVxdWlyZSBhIGNvdW50ZXIgdG8gY29ycmVjdGx5IGhhbmRsZSB0aGUgZHJhZ0VudGVyL2RyYWdMZWF2ZS5cbiAgcHJpdmF0ZSBfY291bnRlcjogbnVtYmVyID0gMDtcblxuICBwcml2YXRlIF9sb2FkQnV0dG9uITogU2JiU2Vjb25kYXJ5QnV0dG9uU3RhdGljRWxlbWVudDtcbiAgcHJpdmF0ZSBfZHJhZ1RhcmdldD86IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF9oaWRkZW5JbnB1dCE6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gIHByaXZhdGUgX3N1ZmZpeGVzOiBzdHJpbmdbXSA9IFsnQicsICdrQicsICdNQicsICdHQicsICdUQiddO1xuICBwcml2YXRlIF9saXZlUmVnaW9uITogSFRNTFBhcmFncmFwaEVsZW1lbnQ7XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgdGhlICdmaWxlcycgcHJvcGVydHkgaW5zdGVhZFxuICAgKi9cbiAgcHVibGljIGdldEZpbGVzKCk6IEZpbGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZXM7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5maWxlcyA9IFtdO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgX3JlYXNvbj86IEZvcm1SZXN0b3JlUmVhc29uLFxuICApOiB2b2lkIHtcbiAgICBpZiAoIXN0YXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZmlsZXMgPSAoc3RhdGUgYXMgW3N0cmluZywgRm9ybURhdGFFbnRyeVZhbHVlXVtdKS5tYXAoKFtfLCB2YWx1ZV0pID0+IHZhbHVlIGFzIEZpbGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHVwZGF0ZUZvcm1WYWx1ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtVmFsdWUgPSBuZXcgRm9ybURhdGEoKTtcbiAgICB0aGlzLmZpbGVzLmZvckVhY2goKGZpbGUpID0+IGZvcm1WYWx1ZS5hcHBlbmQodGhpcy5uYW1lLCBmaWxlKSk7XG4gICAgdGhpcy5pbnRlcm5hbHMuc2V0Rm9ybVZhbHVlKGZvcm1WYWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9ibG9ja0V2ZW50KGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tGaWxlRXF1YWxpdHkoZmlsZTE6IEZpbGUsIGZpbGUyOiBGaWxlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGZpbGUxLm5hbWUgPT09IGZpbGUyLm5hbWUgJiZcbiAgICAgIGZpbGUxLnNpemUgPT09IGZpbGUyLnNpemUgJiZcbiAgICAgIGZpbGUxLmxhc3RNb2RpZmllZCA9PT0gZmlsZTIubGFzdE1vZGlmaWVkXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uRHJhZ0VudGVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9jb3VudGVyKys7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLmZvcm1EaXNhYmxlZCkge1xuICAgICAgdGhpcy5fc2V0RHJhZ1N0YXRlKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCwgdHJ1ZSk7XG4gICAgICB0aGlzLl9ibG9ja0V2ZW50KGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fY291bnRlci0tO1xuICAgIGlmIChcbiAgICAgICF0aGlzLmRpc2FibGVkICYmXG4gICAgICAhdGhpcy5mb3JtRGlzYWJsZWQgJiZcbiAgICAgIGV2ZW50LnRhcmdldCA9PT0gdGhpcy5fZHJhZ1RhcmdldCAmJlxuICAgICAgdGhpcy5fY291bnRlciA9PT0gMFxuICAgICkge1xuICAgICAgdGhpcy5fc2V0RHJhZ1N0YXRlKCk7XG4gICAgICB0aGlzLl9ibG9ja0V2ZW50KGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbkZpbGVEcm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9jb3VudGVyID0gMDtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMuZm9ybURpc2FibGVkKSB7XG4gICAgICB0aGlzLl9zZXREcmFnU3RhdGUoKTtcbiAgICAgIHRoaXMuX2Jsb2NrRXZlbnQoZXZlbnQpO1xuICAgICAgdGhpcy5fY3JlYXRlRmlsZUxpc3QoZXZlbnQuZGF0YVRyYW5zZmVyIS5maWxlcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25Gb2N1cygpOiB2b2lkIHtcbiAgICBpZiAoc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJykge1xuICAgICAgdGhpcy5fbG9hZEJ1dHRvbi50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtZm9jdXMtdmlzaWJsZScsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29uQmx1cigpOiB2b2lkIHtcbiAgICBpZiAoc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJykge1xuICAgICAgdGhpcy5fbG9hZEJ1dHRvbi5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtZm9jdXMtdmlzaWJsZScpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NldERyYWdTdGF0ZShcbiAgICBkcmFnVGFyZ2V0OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBpc0RyYWdFbnRlcjogYm9vbGVhbiA9IGZhbHNlLFxuICApOiB2b2lkIHtcbiAgICB0aGlzLl9kcmFnVGFyZ2V0ID0gZHJhZ1RhcmdldDtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1hY3RpdmUnLCBpc0RyYWdFbnRlcik7XG4gICAgdGhpcy5fbG9hZEJ1dHRvbi50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtYWN0aXZlJywgaXNEcmFnRW50ZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVhZEZpbGVzKGV2ZW50OiBET01FdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGZpbGVJbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGlmIChmaWxlSW5wdXQuZmlsZXMpIHtcbiAgICAgIHRoaXMuX2NyZWF0ZUZpbGVMaXN0KGZpbGVJbnB1dC5maWxlcyk7XG4gICAgfVxuICAgIGZvcndhcmRFdmVudFRvSG9zdChldmVudCwgdGhpcyk7XG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGVGaWxlTGlzdChmaWxlczogRmlsZUxpc3QpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUgfHwgdGhpcy5tdWx0aXBsZU1vZGUgIT09ICdwZXJzaXN0ZW50JyB8fCB0aGlzLmZpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5maWxlcyA9IEFycmF5LmZyb20oZmlsZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbGVzID0gQXJyYXkuZnJvbShmaWxlcylcbiAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAvLyBSZW1vdmUgZHVwbGljYXRlc1xuICAgICAgICAgIChuZXdGaWxlOiBGaWxlKTogYm9vbGVhbiA9PlxuICAgICAgICAgICAgdGhpcy5maWxlcyEuZmluZEluZGV4KChvbGRGaWxlOiBGaWxlKSA9PiB0aGlzLl9jaGVja0ZpbGVFcXVhbGl0eShuZXdGaWxlLCBvbGRGaWxlKSkgPT09XG4gICAgICAgICAgICAtMSxcbiAgICAgICAgKVxuICAgICAgICAuY29uY2F0KHRoaXMuZmlsZXMpO1xuICAgIH1cbiAgICB0aGlzLl91cGRhdGVBMTF5TGl2ZVJlZ2lvbigpO1xuICAgIHRoaXMuX2ZpbGVDaGFuZ2VkRXZlbnQuZW1pdCh0aGlzLmZpbGVzKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbW92ZUZpbGUoZmlsZTogRmlsZSk6IHZvaWQge1xuICAgIHRoaXMuZmlsZXMgPSB0aGlzLmZpbGVzLmZpbHRlcigoZjogRmlsZSkgPT4gIXRoaXMuX2NoZWNrRmlsZUVxdWFsaXR5KGZpbGUsIGYpKTtcbiAgICB0aGlzLl91cGRhdGVBMTF5TGl2ZVJlZ2lvbigpO1xuXG4gICAgLy8gRGlzcGF0Y2ggbmF0aXZlIGV2ZW50cyBhcyBpZiB0aGUgcmVzZXQgaXMgZG9uZSB2aWEgdGhlIGZpbGUgc2VsZWN0aW9uIHdpbmRvdy5cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcsIHsgY29tcG9zZWQ6IHRydWUsIGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgdGhpcy5fZmlsZUNoYW5nZWRFdmVudC5lbWl0KHRoaXMuZmlsZXMpO1xuICB9XG5cbiAgLyoqIENhbGN1bGF0ZXMgdGhlIGNvcnJlY3QgdW5pdCBmb3IgdGhlIGZpbGUncyBzaXplLiAqL1xuICBwcml2YXRlIF9mb3JtYXRGaWxlU2l6ZShzaXplOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGk6IG51bWJlciA9IE1hdGguZmxvb3IoTWF0aC5sb2coc2l6ZSkgLyBNYXRoLmxvZygxMDI0KSk7XG4gICAgcmV0dXJuIGAkeyhzaXplIC8gTWF0aC5wb3coMTAyNCwgaSkpLnRvRml4ZWQoMCl9ICR7dGhpcy5fc3VmZml4ZXNbaV19YDtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUExMXlMaXZlUmVnaW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX2xpdmVSZWdpb24uaW5uZXJUZXh0ID0gaTE4bkZpbGVTZWxlY3RvckN1cnJlbnRseVNlbGVjdGVkKHRoaXMuZmlsZXMubWFwKChlKSA9PiBlLm5hbWUpKVtcbiAgICAgIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnRcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyRGVmYXVsdE1vZGUoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNiYi1zZWNvbmRhcnktYnV0dG9uLXN0YXRpY1xuICAgICAgICBzaXplPSR7dGhpcy5zaXplfVxuICAgICAgICBpY29uLW5hbWU9XCJmb2xkZXItb3Blbi1zbWFsbFwiXG4gICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWQgfHwgdGhpcy5mb3JtRGlzYWJsZWR9XG4gICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICB0aGlzLl9sb2FkQnV0dG9uID0gZWwgYXMgU2JiU2Vjb25kYXJ5QnV0dG9uU3RhdGljRWxlbWVudDtcbiAgICAgICAgfSl9XG4gICAgICA+XG4gICAgICAgICR7aTE4bkZpbGVTZWxlY3RvckJ1dHRvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgPC9zYmItc2Vjb25kYXJ5LWJ1dHRvbi1zdGF0aWM+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlckRyb3B6b25lQXJlYSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19kcm9wem9uZS1hcmVhXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX2Ryb3B6b25lLWFyZWEtLWljb25cIj5cbiAgICAgICAgICA8c2JiLWljb25cbiAgICAgICAgICAgIG5hbWU9JHt0aGlzLnNpemUgPT09ICdtJyA/ICdmb2xkZXItb3Blbi1tZWRpdW0nIDogJ2ZvbGRlci1vcGVuLXNtYWxsJ31cbiAgICAgICAgICA+PC9zYmItaWNvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19kcm9wem9uZS1hcmVhLS10aXRsZVwiPiR7dGhpcy50aXRsZUNvbnRlbnR9PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19kcm9wem9uZS1hcmVhLS1zdWJ0aXRsZVwiPlxuICAgICAgICAgICR7aTE4bkZpbGVTZWxlY3RvclN1YnRpdGxlTGFiZWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZHJvcHpvbmUtYXJlYS0tYnV0dG9uXCI+XG4gICAgICAgICAgPHNiYi1zZWNvbmRhcnktYnV0dG9uLXN0YXRpY1xuICAgICAgICAgICAgc2l6ZT0ke3RoaXMuc2l6ZX1cbiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWQgfHwgdGhpcy5mb3JtRGlzYWJsZWR9XG4gICAgICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuX2xvYWRCdXR0b24gPSBlbCBhcyBTYmJTZWNvbmRhcnlCdXR0b25TdGF0aWNFbGVtZW50O1xuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgJHtpMThuRmlsZVNlbGVjdG9yQnV0dG9uTGFiZWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgICAgPC9zYmItc2Vjb25kYXJ5LWJ1dHRvbi1zdGF0aWM+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyRmlsZUxpc3QoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IFRBR19OQU1FOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID1cbiAgICAgIHRoaXMuZmlsZXMubGVuZ3RoID4gMVxuICAgICAgICA/IHsgV1JBUFBFUjogJ3VsJywgRUxFTUVOVDogJ2xpJyB9XG4gICAgICAgIDogeyBXUkFQUEVSOiAnZGl2JywgRUxFTUVOVDogJ3NwYW4nIH07XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBsaXQvYmluZGluZy1wb3NpdGlvbnMgKi9cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDwke3Vuc2FmZVN0YXRpYyhUQUdfTkFNRS5XUkFQUEVSKX0gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZmlsZS1saXN0XCI+XG4gICAgICAgICR7dGhpcy5maWxlcy5tYXAoXG4gICAgICAgICAgKGZpbGU6IEZpbGUpID0+IGh0bWxgXG4gICAgICAgICAgPCR7dW5zYWZlU3RhdGljKFRBR19OQU1FLkVMRU1FTlQpfSBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19maWxlXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19maWxlLWRldGFpbHNcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZmlsZS1uYW1lXCI+JHtmaWxlLm5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19maWxlLXNpemVcIj4ke3RoaXMuX2Zvcm1hdEZpbGVTaXplKGZpbGUuc2l6ZSl9PC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNiYi1zZWNvbmRhcnktYnV0dG9uXG4gICAgICAgICAgICAgIHNpemU9JHt0aGlzLnNpemV9XG4gICAgICAgICAgICAgIGljb24tbmFtZT1cInRyYXNoLXNtYWxsXCJcbiAgICAgICAgICAgICAgQGNsaWNrPSR7KCkgPT4gdGhpcy5fcmVtb3ZlRmlsZShmaWxlKX1cbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD0ke2Ake2kxOG5GaWxlU2VsZWN0b3JEZWxldGVGaWxlW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAtICR7ZmlsZS5uYW1lfWB9XG4gICAgICAgICAgICA+PC9zYmItc2Vjb25kYXJ5LWJ1dHRvbj5cbiAgICAgICAgICA8LyR7dW5zYWZlU3RhdGljKFRBR19OQU1FLkVMRU1FTlQpfT5gLFxuICAgICAgICApfVxuICAgICAgPC8ke3Vuc2FmZVN0YXRpYyhUQUdfTkFNRS5XUkFQUEVSKX0+XG4gICAgYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGFyaWFMYWJlbCA9IHRoaXMuYWNjZXNzaWJpbGl0eUxhYmVsXG4gICAgICA/IGAke2kxOG5GaWxlU2VsZWN0b3JCdXR0b25MYWJlbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gLSAke3RoaXMuYWNjZXNzaWJpbGl0eUxhYmVsfWBcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19pbnB1dC1jb250YWluZXJcIlxuICAgICAgICAgIEBkcmFnZW50ZXI9JHt0aGlzLl9vbkRyYWdFbnRlcn1cbiAgICAgICAgICBAZHJhZ292ZXI9JHt0aGlzLl9ibG9ja0V2ZW50fVxuICAgICAgICAgIEBkcmFnbGVhdmU9JHt0aGlzLl9vbkRyYWdMZWF2ZX1cbiAgICAgICAgICBAZHJvcD0ke3RoaXMuX29uRmlsZURyb3B9XG4gICAgICAgID5cbiAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICAke3RoaXMudmFyaWFudCA9PT0gJ2RlZmF1bHQnID8gdGhpcy5fcmVuZGVyRGVmYXVsdE1vZGUoKSA6IHRoaXMuX3JlbmRlckRyb3B6b25lQXJlYSgpfVxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX3Zpc3VhbGx5LWhpZGRlblwiXG4gICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZCB8fCB0aGlzLmZvcm1EaXNhYmxlZH1cbiAgICAgICAgICAgICAgP211bHRpcGxlPSR7dGhpcy5tdWx0aXBsZX1cbiAgICAgICAgICAgICAgYWNjZXB0PSR7dGhpcy5hY2NlcHQgfHwgbm90aGluZ31cbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD0ke2FyaWFMYWJlbCB8fCBub3RoaW5nfVxuICAgICAgICAgICAgICBAY2hhbmdlPSR7dGhpcy5fcmVhZEZpbGVzfVxuICAgICAgICAgICAgICBAZm9jdXM9JHt0aGlzLl9vbkZvY3VzfVxuICAgICAgICAgICAgICBAYmx1cj0ke3RoaXMuX29uQmx1cn1cbiAgICAgICAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2hpZGRlbklucHV0ID0gZWwgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8cFxuICAgICAgICAgIHJvbGU9XCJzdGF0dXNcIlxuICAgICAgICAgIGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX3Zpc3VhbGx5LWhpZGRlblwiXG4gICAgICAgICAgJHtyZWYoKHA/OiBFbGVtZW50KSA9PiAodGhpcy5fbGl2ZVJlZ2lvbiA9IHAgYXMgSFRNTFBhcmFncmFwaEVsZW1lbnQpKX1cbiAgICAgICAgPjwvcD5cbiAgICAgICAgJHt0aGlzLmZpbGVzLmxlbmd0aCA+IDAgPyB0aGlzLl9yZW5kZXJGaWxlTGlzdCgpIDogbm90aGluZ31cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19lcnJvclwiPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJlcnJvclwiPjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZmlsZS1zZWxlY3Rvcic6IFNiYkZpbGVTZWxlY3RvckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJTYmJGaWxlU2VsZWN0b3JFbGVtZW50IiwiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUEyQ00sMEJBQXNCLE1BQUE7O0FBRjNCLE1BQUEsbUJBQUEsQ0FBQSxjQUFjLG1CQUFtQixHQUNqQyxXQUFXOzs7O0FBQ3lCLE1BQUEsY0FBQSxpQkFBaUIsdUJBQXVCLFVBQVUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUEzREEsTUFBQUEsMkJBQUEsbUJBQVEsWUFBb0Q7QUFBQTs7QUFPM0U7QUFHaUI7QUFLN0I7QUFJQTtBQUtBO0FBS0E7QUFLQTtBQWxDSSx5QkFBQSw0QkFBQSxrQkFBQSxNQUFBLDBCQUFBLEdBTzBELGtCQUFBLE1BQUEsdUJBQUEsU0FBUztBQUcxQix5QkFBQSx5QkFBQSxrQkFBQSxNQUFBLDBCQUFBLEdBQUEsa0JBQUEsTUFBQSxvQkFBa0IsR0FBRztBQUtsRCx5QkFBQSw2QkFBQSxrQkFBQSxNQUFBLHVCQUFBLEdBQUEsa0JBQUEsTUFBQSx3QkFBb0IsS0FBSztBQUl6Qix5QkFBQSxpQ0FBQSxrQkFBQSxNQUFBLDJCQUFBLEdBQUEsa0JBQUEsTUFBQSw0QkFBeUMsU0FBUztBQUtsRCx5QkFBQSwyQkFBQSxrQkFBQSxNQUFBLCtCQUFBLEdBQUEsa0JBQUEsTUFBQSxzQkFBaUIsRUFBRTtBQUtuQix5QkFBQSxpQ0FBQSxrQkFBQSxNQUFBLHlCQUFBLEdBQUEsa0JBQUEsTUFBQSw0QkFBdUIsRUFBRTtBQUt6Qix5QkFBQSx1Q0FBQSxrQkFBQSxNQUFBLCtCQUFBLEdBQUEsa0JBQUEsTUFBQSxrQ0FBNkIsRUFBRTtBQWdDdkMsV0FBTSxVQUFBLGtCQUFBLE1BQUEscUNBQUEsR0FBVyxDQUFBO0FBV2pCLFdBQUEsb0JBQTBDLElBQUksYUFDcEQsTUFDQUEsd0JBQXVCLE9BQU8sZ0JBQWdCO0FBS3hDLFdBQVEsV0FBVztBQUtuQixXQUFBLFlBQXNCLENBQUMsS0FBSyxNQUFNLE1BQU0sTUFBTSxJQUFJO0FBR2xELFdBQUEsWUFBWSxJQUFJLHNCQUFzQixJQUFJO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFyRnRDLElBQWdCLFVBQTRDO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUE1RCxJQUFnQixRQUE0QyxPQUFBO0FBQUEseUJBQUEsMkJBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUczQyxJQUFnQixPQUFzQjtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBdEMsSUFBZ0IsS0FBc0IsT0FBQTtBQUFBLHlCQUFBLHdCQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFLbkUsSUFBZ0IsV0FBMEI7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQTFDLElBQWdCLFNBQTBCLE9BQUE7QUFBQSx5QkFBQSw0QkFBQTtBQUFBLElBQUE7QUFBQTtBQUFBLElBSTFDLElBQWdCLGVBQW1EO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUFuRSxJQUFnQixhQUFtRCxPQUFBO0FBQUEseUJBQUEsZ0NBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUtuRSxJQUFnQixTQUFvQjtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBcEMsSUFBZ0IsT0FBb0IsT0FBQTtBQUFBLHlCQUFBLDBCQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFLcEMsSUFBZ0IsZUFBMEI7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQTFDLElBQWdCLGFBQTBCLE9BQUE7QUFBQSx5QkFBQSxnQ0FBQTtBQUFBLElBQUE7QUFBQTtBQUFBLElBSzFDLElBQWdCLHFCQUFnQztBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBaEQsSUFBZ0IsbUJBQWdDLE9BQUE7QUFBQSx5QkFBQSxzQ0FBQTtBQUFBLElBQUE7QUFBQTtBQUFBLElBSWhELElBQW9CLE1BQU0sT0FBb0I7QUFDdkMsV0FBQSxhQUFhLFFBQVEsU0FBUztBQUVuQyxVQUFJLENBQUMsT0FBTztBQUNWLGFBQUssUUFBUSxDQUFBO0FBQUEsTUFBQTtBQUFBLElBQ2Y7QUFBQSxJQUVGLElBQW9CLFFBQUs7O0FBQ3ZCLGNBQU9DLE1BQUEsS0FBSyxpQkFBTCxnQkFBQUEsSUFBbUI7QUFBQSxJQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFPNUIsSUFBVyxNQUFNLE9BQWE7QUFDdkIsV0FBQSxTQUFTLFNBQVM7QUFHakIsWUFBQSxLQUFtQixJQUFJO0FBQ3hCLFdBQUEsTUFBTSxRQUFRLENBQUMsTUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLENBQUM7QUFDMUMsV0FBQSxhQUFhLFFBQVEsR0FBRztBQUU3QixXQUFLLGdCQUFlO0FBQUEsSUFBQTtBQUFBLElBRXRCLElBQVcsUUFBSztBQUNkLGFBQU8sS0FBSztBQUFBLElBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBUWQsSUFBb0IsT0FBSTtBQUNmLGFBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUF3QkYsV0FBUTtBQUNiLGFBQU8sS0FBSztBQUFBLElBQUE7QUFBQSxJQUdFLG9CQUFpQjtBQUMvQixXQUFLLFFBQVEsQ0FBQTtBQUFBLElBQUE7QUFBQSxJQUdDLHlCQUNkLE9BQ0EsU0FBMkI7QUFFM0IsVUFBSSxDQUFDLE9BQU87QUFDVjtBQUFBLE1BQUE7QUFFRyxXQUFBLFFBQVMsTUFBeUMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLE1BQU0sS0FBYTtBQUFBLElBQUE7QUFBQSxJQUd2RSxrQkFBZTtBQUMxQixZQUFBLFlBQVksSUFBSTtBQUNqQixXQUFBLE1BQU0sUUFBUSxDQUFDLFNBQVMsVUFBVSxPQUFPLEtBQUssTUFBTSxJQUFJLENBQUM7QUFDekQsV0FBQSxVQUFVLGFBQWEsU0FBUztBQUFBLElBQUE7QUFBQSxJQUcvQixZQUFZLE9BQWdCO0FBQ2xDLFlBQU0sZ0JBQWU7QUFDckIsWUFBTSxlQUFjO0FBQUEsSUFBQTtBQUFBLElBR2QsbUJBQW1CLE9BQWEsT0FBVztBQUUvQyxhQUFBLE1BQU0sU0FBUyxNQUFNLFFBQ3JCLE1BQU0sU0FBUyxNQUFNLFFBQ3JCLE1BQU0saUJBQWlCLE1BQU07QUFBQSxJQUFBO0FBQUEsSUFJekIsYUFBYSxPQUFnQjtBQUM5QixXQUFBO0FBQ0wsVUFBSSxDQUFDLEtBQUssWUFBWSxDQUFDLEtBQUssY0FBYztBQUNuQyxhQUFBLGNBQWMsTUFBTSxRQUF1QixJQUFJO0FBQ3BELGFBQUssWUFBWSxLQUFLO0FBQUEsTUFBQTtBQUFBLElBQ3hCO0FBQUEsSUFHTSxhQUFhLE9BQWdCO0FBQzlCLFdBQUE7QUFDTCxVQUNFLENBQUMsS0FBSyxZQUNOLENBQUMsS0FBSyxnQkFDTixNQUFNLFdBQVcsS0FBSyxlQUN0QixLQUFLLGFBQWEsR0FDbEI7QUFDQSxhQUFLLGNBQWE7QUFDbEIsYUFBSyxZQUFZLEtBQUs7QUFBQSxNQUFBO0FBQUEsSUFDeEI7QUFBQSxJQUdNLFlBQVksT0FBZ0I7QUFDbEMsV0FBSyxXQUFXO0FBQ2hCLFVBQUksQ0FBQyxLQUFLLFlBQVksQ0FBQyxLQUFLLGNBQWM7QUFDeEMsYUFBSyxjQUFhO0FBQ2xCLGFBQUssWUFBWSxLQUFLO0FBQ2pCLGFBQUEsZ0JBQWdCLE1BQU0sYUFBYyxLQUFLO0FBQUEsTUFBQTtBQUFBLElBQ2hEO0FBQUEsSUFHTSxXQUFRO0FBQ1YsVUFBQSx5QkFBeUIsdUJBQXVCLFlBQVk7QUFDekQsYUFBQSxZQUFZLGdCQUFnQixzQkFBc0IsSUFBSTtBQUFBLE1BQUE7QUFBQSxJQUM3RDtBQUFBLElBR00sVUFBTztBQUNULFVBQUEseUJBQXlCLHVCQUF1QixZQUFZO0FBQ3pELGFBQUEsWUFBWSxnQkFBZ0Isb0JBQW9CO0FBQUEsTUFBQTtBQUFBLElBQ3ZEO0FBQUEsSUFHTSxjQUNOLGFBQXNDLFFBQ3RDLGNBQXVCLE9BQUs7QUFFNUIsV0FBSyxjQUFjO0FBQ2QsV0FBQSxnQkFBZ0IsZUFBZSxXQUFXO0FBQzFDLFdBQUEsWUFBWSxnQkFBZ0IsZUFBZSxXQUFXO0FBQUEsSUFBQTtBQUFBLElBR3JELFdBQVcsT0FBZTtBQUNoQyxZQUFNLFlBQVksTUFBTTtBQUN4QixVQUFJLFVBQVUsT0FBTztBQUNkLGFBQUEsZ0JBQWdCLFVBQVUsS0FBSztBQUFBLE1BQUE7QUFFdEMseUJBQW1CLE9BQU8sSUFBSTtBQUFBLElBQUE7QUFBQSxJQUd4QixnQkFBZ0IsT0FBZTtBQUNqQyxVQUFBLENBQUMsS0FBSyxZQUFZLEtBQUssaUJBQWlCLGdCQUFnQixLQUFLLE1BQU0sV0FBVyxHQUFHO0FBQzlFLGFBQUEsUUFBUSxNQUFNLEtBQUssS0FBSztBQUFBLE1BQUEsT0FDeEI7QUFDTCxhQUFLLFFBQVEsTUFBTSxLQUFLLEtBQUssRUFDMUI7QUFBQTtBQUFBLFVBRUMsQ0FBQyxZQUNDLEtBQUssTUFBTyxVQUFVLENBQUMsWUFBa0IsS0FBSyxtQkFBbUIsU0FBUyxPQUFPLENBQUMsTUFDbEY7QUFBQSxRQUFBLEVBRUgsT0FBTyxLQUFLLEtBQUs7QUFBQSxNQUFBO0FBRXRCLFdBQUssc0JBQXFCO0FBQ3JCLFdBQUEsa0JBQWtCLEtBQUssS0FBSyxLQUFLO0FBQUEsSUFBQTtBQUFBLElBR2hDLFlBQVksTUFBVTtBQUN2QixXQUFBLFFBQVEsS0FBSyxNQUFNLE9BQU8sQ0FBQyxNQUFZLENBQUMsS0FBSyxtQkFBbUIsTUFBTSxDQUFDLENBQUM7QUFDN0UsV0FBSyxzQkFBcUI7QUFHckIsV0FBQSxjQUFjLElBQUksTUFBTSxTQUFTLEVBQUUsVUFBVSxNQUFNLFNBQVMsS0FBTSxDQUFBLENBQUM7QUFDbkUsV0FBQSxjQUFjLElBQUksTUFBTSxVQUFVLEVBQUUsU0FBUyxLQUFBLENBQU0sQ0FBQztBQUNwRCxXQUFBLGtCQUFrQixLQUFLLEtBQUssS0FBSztBQUFBLElBQUE7QUFBQTtBQUFBLElBSWhDLGdCQUFnQixNQUFZO0FBQzVCLFlBQUEsSUFBWSxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDO0FBQzVELGFBQU8sSUFBSSxPQUFPLEtBQUssSUFBSSxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUM7QUFBQSxJQUFBO0FBQUEsSUFHOUQsd0JBQXFCO0FBQzNCLFdBQUssWUFBWSxZQUFZLGtDQUFrQyxLQUFLLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFDMUYsS0FBSyxVQUFVLE9BQU87QUFBQSxJQUFBO0FBQUEsSUFJbEIscUJBQWtCO0FBQ2pCLGFBQUE7QUFBQTtBQUFBLGVBRUksS0FBSyxJQUFJO0FBQUE7QUFBQSxvQkFFSixLQUFLLFlBQVksS0FBSyxZQUFZO0FBQUEsVUFDNUMsSUFBSSxDQUFDLE9BQXNCO0FBQzNCLGFBQUssY0FBYztBQUFBLE1BQUEsQ0FDcEIsQ0FBQztBQUFBO0FBQUEsVUFFQSw0QkFBNEIsS0FBSyxVQUFVLE9BQU8sQ0FBQztBQUFBO0FBQUE7QUFBQSxJQUFBO0FBQUEsSUFLbkQsc0JBQW1CO0FBQ2xCLGFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFJUSxLQUFLLFNBQVMsTUFBTSx1QkFBdUIsbUJBQW1CO0FBQUE7QUFBQTtBQUFBLGdFQUdqQixLQUFLLFlBQVk7QUFBQTtBQUFBLFlBRXJFLDhCQUE4QixLQUFLLFVBQVUsT0FBTyxDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBSTlDLEtBQUssSUFBSTtBQUFBLHdCQUNKLEtBQUssWUFBWSxLQUFLLFlBQVk7QUFBQSxjQUM1QyxJQUFJLENBQUMsT0FBc0I7QUFDM0IsYUFBSyxjQUFjO0FBQUEsTUFBQSxDQUNwQixDQUFDO0FBQUE7QUFBQSxjQUVBLDRCQUE0QixLQUFLLFVBQVUsT0FBTyxDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQUFBO0FBQUEsSUFPdkQsa0JBQWU7QUFDckIsWUFBTSxXQUNKLEtBQUssTUFBTSxTQUFTLElBQ2hCLEVBQUUsU0FBUyxNQUFNLFNBQVMsU0FDMUIsRUFBRSxTQUFTLE9BQU8sU0FBUyxPQUFNO0FBR2hDLGFBQUE7QUFBQSxTQUNGLGFBQWEsU0FBUyxPQUFPLENBQUM7QUFBQSxVQUM3QixLQUFLLE1BQU0sSUFDWCxDQUFDLFNBQWU7QUFBQSxhQUNiLGFBQWEsU0FBUyxPQUFPLENBQUM7QUFBQTtBQUFBLDJEQUVnQixLQUFLLElBQUk7QUFBQSwyREFDVCxLQUFLLGdCQUFnQixLQUFLLElBQUksQ0FBQztBQUFBO0FBQUE7QUFBQSxxQkFHckUsS0FBSyxJQUFJO0FBQUE7QUFBQSx1QkFFUCxNQUFNLEtBQUssWUFBWSxJQUFJLENBQUM7QUFBQSwyQkFDeEIsR0FBRywyQkFBMkIsS0FBSyxVQUFVLE9BQU8sQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFO0FBQUE7QUFBQSxjQUVuRixhQUFhLFNBQVMsT0FBTyxDQUFDLEdBQUcsQ0FDdEM7QUFBQSxVQUNDLGFBQWEsU0FBUyxPQUFPLENBQUM7QUFBQTtBQUFBLElBQUE7QUFBQSxJQUluQixTQUFNO0FBQ3ZCLFlBQU0sWUFBWSxLQUFLLHFCQUNuQixHQUFHLDRCQUE0QixLQUFLLFVBQVUsT0FBTyxDQUFDLE1BQU0sS0FBSyxrQkFBa0IsS0FDbkY7QUFDRyxhQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBSVksS0FBSyxZQUFZO0FBQUEsc0JBQ2xCLEtBQUssV0FBVztBQUFBLHVCQUNmLEtBQUssWUFBWTtBQUFBLGtCQUN0QixLQUFLLFdBQVc7QUFBQTtBQUFBO0FBQUEsY0FHcEIsS0FBSyxZQUFZLFlBQVksS0FBSyxtQkFBdUIsSUFBQSxLQUFLLG9CQUFxQixDQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsMEJBSXZFLEtBQUssWUFBWSxLQUFLLFlBQVk7QUFBQSwwQkFDbEMsS0FBSyxRQUFRO0FBQUEsdUJBQ2hCLEtBQUssVUFBVSxPQUFPO0FBQUEsMkJBQ2xCLGFBQWEsT0FBTztBQUFBLHdCQUN2QixLQUFLLFVBQVU7QUFBQSx1QkFDaEIsS0FBSyxRQUFRO0FBQUEsc0JBQ2QsS0FBSyxPQUFPO0FBQUEsZ0JBQ2xCLElBQUksQ0FBQyxPQUFzQjtBQUMzQixhQUFLLGVBQWU7QUFBQSxNQUFBLENBQ3JCLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQU9KLElBQUksQ0FBQyxNQUFpQixLQUFLLGNBQWMsQ0FBMEIsQ0FBQztBQUFBO0FBQUEsVUFFdEUsS0FBSyxNQUFNLFNBQVMsSUFBSSxLQUFLLGdCQUFBLElBQW9CLE9BQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFBQTtBQUFBLEtBM1VwRCwyQ0FHaUIsd0NBSzdCLDRDQUlBLGdEQUtBLDBDQUtBLGdEQUtBOztBQTNCQywwQkFBQSxDQUFBLFVBQVU7QUFHVix1QkFBQSxDQUFBLFNBQVMsRUFBRSxTQUFTLEtBQU0sQ0FBQSxDQUFDOzRCQUczQixhQUNBLFNBQVMsRUFBRSxNQUFNLFFBQUEsQ0FBUyxDQUFDO0FBSTNCLCtCQUFBLENBQUEsU0FBUyxFQUFFLFdBQVcsZ0JBQWlCLENBQUEsQ0FBQzswQkFJeEMsYUFDQSxVQUFVO2dDQUlWLGFBQ0EsU0FBUyxFQUFFLFdBQVcsZ0JBQUEsQ0FBaUIsQ0FBQztzQ0FJeEMsYUFDQSxTQUFTLEVBQUUsV0FBVyxzQkFBQSxDQUF1QixDQUFDO0FBSTlDLDRCQUFBLENBQUEsU0FBUyxFQUFFLFdBQVcsTUFBTyxDQUFBLENBQUM7QUFlOUIsNEJBQUEsQ0FBQSxTQUFTLEVBQUUsV0FBVyxNQUFPLENBQUEsQ0FBQztBQTdDSCxpQkFBQSxJQUFBLE1BQUEscUJBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxXQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGFBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFBLFNBQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUEsVUFBNEM7QUFBQSxTQUFBLFVBQUEsYUFBQSx1QkFBQSwwQkFBQTtBQUczQixpQkFBQSxJQUFBLE1BQUEsa0JBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxRQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLFVBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFBLE1BQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUEsT0FBc0I7QUFBQSxTQUFBLFVBQUEsYUFBQSxvQkFBQSx1QkFBQTtBQUtuRCxpQkFBQSxJQUFBLE1BQUEsc0JBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxZQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGNBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFBLFVBQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUEsV0FBMEI7QUFBQSxTQUFBLFVBQUEsYUFBQSx3QkFBQSwyQkFBQTtBQUkxQixpQkFBQSxJQUFBLE1BQUEsMEJBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxnQkFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxrQkFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQUEsY0FBQSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBQSxlQUFtRDtBQUFBLFNBQUEsVUFBQSxhQUFBLDRCQUFBLCtCQUFBO0FBS25ELGlCQUFBLElBQUEsTUFBQSxvQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLFVBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsWUFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQUEsUUFBQSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBQSxTQUFvQjtBQUFBLFNBQUEsVUFBQSxhQUFBLHNCQUFBLHlCQUFBO0FBS3BCLGlCQUFBLElBQUEsTUFBQSwwQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLGdCQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGtCQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBQSxjQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFBLGVBQTBCO0FBQUEsU0FBQSxVQUFBLGFBQUEsNEJBQUEsK0JBQUE7QUFLMUIsaUJBQUEsSUFBQSxNQUFBLGdDQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsc0JBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsd0JBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFBLG9CQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFBLHFCQUFnQztBQUFBLFNBQUEsVUFBQSxhQUFBLGtDQUFBLHFDQUFBO0FBSWhELGlCQUFBLElBQUEsTUFBQSx1QkFBQSxFQUFBLE1BQUEsVUFBQSxNQUFBLFNBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsV0FBQSxLQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFvQixRQU1uQjtBQUFBLFNBQUEsVUFBQSxhQUFBLE1BQUEsMEJBQUE7QUFTRCxpQkFBQSxJQUFBLE1BQUEsdUJBQUEsRUFBQSxNQUFBLFVBQUEsTUFBQSxTQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLFdBQUEsS0FBQSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBVyxRQVNWO0FBQUEsU0FBQSxVQUFBLGFBQUEsTUFBQSwwQkFBQTtBQTlESCxpQkF5VkMsTUFBQSxtQkFBQSxFQUFBLE9BQUEsV0FBQSxHQUFBLGtCQUFBLEVBQUEsTUFBQSxTQUFBLE1BQUEsV0FBQSxNQUFBLFVBQUEsVUFBQSxHQUFBLE1BQUEsdUJBQUE7OztRQXhWd0IsR0FBTSxTQUFtQixPQUN6QixHQUFBLFNBQVM7QUFBQSxJQUM5QixrQkFBa0I7QUFBQSxFQUNWLEdBSk4sa0JBQXNCLFlBQUEsdUJBQUEsR0FBQzs7OyJ9
@@ -26,15 +26,19 @@ export declare class SbbFlipCardElement extends SbbFlipCardElement_base {
26
26
  get summary(): SbbFlipCardSummaryElement | null;
27
27
  /** Returns the slotted sbb-flip-card-details. */
28
28
  get details(): SbbFlipCardDetailsElement | null;
29
+ /** Returns the card details content element wrapper. */
30
+ private get _detailsContentElement();
29
31
  /** Whether the flip card is flipped. */
30
32
  get isFlipped(): boolean;
31
33
  /** Whether the card is flipped or not. */
32
34
  private accessor _flipped;
33
35
  private _abort;
34
36
  private _language;
37
+ private _cardDetailsResizeObserver;
35
38
  connectedCallback(): void;
36
39
  /** Toggles the state of the sbb-flip-card. */
37
40
  toggle(): void;
41
+ private _setCardDetailsHeight;
38
42
  private _accessibilityLabel;
39
43
  protected render(): TemplateResult;
40
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"flip-card.d.ts","sourceRoot":"","sources":["../../../../../src/elements/flip-card/flip-card/flip-card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAkB,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAO3F,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAIzE,OAAO,yCAAyC,CAAC;AACjD,OAAO,6BAA6B,CAAC;;AAErC;;;;;;GAMG;AACH,qBAEM,kBAAmB,SAAQ,uBAA6B;IAC5D,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;MAElB;IAEX;;;OAGG;IACH,SAEgB,kBAAkB,EAAE,MAAM,CAAM;IAEhD,+CAA+C;IAC/C,SAAS,CAAC,IAAI,EAAE,YAAY,CAA0D;IAEtF,iDAAiD;IACjD,IAAW,OAAO,IAAI,yBAAyB,GAAG,IAAI,CAErD;IAED,iDAAiD;IACjD,IAAW,OAAO,IAAI,yBAAyB,GAAG,IAAI,CAErD;IAED,wCAAwC;IACxC,IAAW,SAAS,IAAI,OAAO,CAE9B;IAED,0CAA0C;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAE3C,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,SAAS,CAAmC;IAEpC,iBAAiB,IAAI,IAAI;IAgBzC,8CAA8C;IACvC,MAAM,IAAI,IAAI;YASP,mBAAmB;cAWd,MAAM,IAAI,cAAc;CAsB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,eAAe,EAAE,kBAAkB,CAAC;KACrC;CACF"}
1
+ {"version":3,"file":"flip-card.d.ts","sourceRoot":"","sources":["../../../../../src/elements/flip-card/flip-card/flip-card.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAkB,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAO3F,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAIzE,OAAO,yCAAyC,CAAC;AACjD,OAAO,6BAA6B,CAAC;;AAErC;;;;;;GAMG;AACH,qBAEM,kBAAmB,SAAQ,uBAA6B;IAC5D,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;MAElB;IAEX;;;OAGG;IACH,SAEgB,kBAAkB,EAAE,MAAM,CAAM;IAEhD,+CAA+C;IAC/C,SAAS,CAAC,IAAI,EAAE,YAAY,CAA0D;IAEtF,iDAAiD;IACjD,IAAW,OAAO,IAAI,yBAAyB,GAAG,IAAI,CAErD;IAED,iDAAiD;IACjD,IAAW,OAAO,IAAI,yBAAyB,GAAG,IAAI,CAErD;IAED,wDAAwD;IACxD,OAAO,KAAK,sBAAsB,GAEjC;IAED,wCAAwC;IACxC,IAAW,SAAS,IAAI,OAAO,CAE9B;IAED,0CAA0C;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAE3C,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,0BAA0B,CAI/B;IAEa,iBAAiB,IAAI,IAAI;IAgBzC,8CAA8C;IACvC,MAAM,IAAI,IAAI;IAerB,OAAO,CAAC,qBAAqB;YAKf,mBAAmB;cAWd,MAAM,IAAI,cAAc;CAsB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,eAAe,EAAE,kBAAkB,CAAC;KACrC;CACF"}