@sbb-esta/lyne-elements 2.1.0 → 2.3.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 (268) hide show
  1. package/accordion.js +6 -6
  2. package/action-group.js +3 -3
  3. package/alert/alert-group.js +4 -4
  4. package/alert/alert.js +9 -9
  5. package/autocomplete/autocomplete-base-element.d.ts +4 -0
  6. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  7. package/autocomplete-grid/autocomplete-grid-button.js +4 -4
  8. package/autocomplete-grid/autocomplete-grid-cell.js +3 -3
  9. package/autocomplete-grid/autocomplete-grid-optgroup.js +4 -4
  10. package/autocomplete-grid/autocomplete-grid-row.js +5 -5
  11. package/autocomplete.js +26 -20
  12. package/badge.css +31 -0
  13. package/breadcrumb/breadcrumb-group.js +5 -5
  14. package/breadcrumb/breadcrumb.js +19 -19
  15. package/button/accent-button-link.js +9 -9
  16. package/button/accent-button-static.js +6 -6
  17. package/button/accent-button.js +6 -6
  18. package/button/button-link.js +7 -7
  19. package/button/button-static.js +7 -7
  20. package/button/button.js +8 -8
  21. package/button/common.js +15 -15
  22. package/button/mini-button-group.js +8 -8
  23. package/button/secondary-button-link.js +7 -7
  24. package/button/secondary-button-static.js +7 -7
  25. package/button/secondary-button.js +3 -3
  26. package/button/transparent-button-link.js +6 -6
  27. package/button/transparent-button-static.js +5 -5
  28. package/button/transparent-button.js +6 -6
  29. package/calendar.js +1 -1
  30. package/card/card-badge.js +11 -11
  31. package/card/card-button.js +5 -5
  32. package/card/card-link.js +7 -7
  33. package/card/card.js +3 -3
  34. package/checkbox/checkbox-panel.js +16 -16
  35. package/checkbox/checkbox.js +15 -15
  36. package/checkbox/common.js +3 -3
  37. package/chip-label.js +3 -3
  38. package/clock.js +10 -10
  39. package/container/container.js +6 -6
  40. package/core/a11y/focus.d.ts.map +1 -1
  41. package/core/a11y.js +8 -8
  42. package/core/base-elements/link-base-element.d.ts +2 -0
  43. package/core/base-elements/link-base-element.d.ts.map +1 -1
  44. package/core/base-elements.js +125 -114
  45. package/core/controllers.js +4 -4
  46. package/core/datetime.js +6 -6
  47. package/core/dom/scroll.d.ts +1 -0
  48. package/core/dom/scroll.d.ts.map +1 -1
  49. package/core/dom.js +31 -31
  50. package/core/eventing.js +4 -4
  51. package/core/i18n/i18n.d.ts +2 -0
  52. package/core/i18n/i18n.d.ts.map +1 -1
  53. package/core/i18n.js +43 -31
  54. package/core/images.d.ts.map +1 -1
  55. package/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  56. package/core/mixins/form-associated-mixin.d.ts +3 -0
  57. package/core/mixins/form-associated-mixin.d.ts.map +1 -1
  58. package/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
  59. package/core/mixins.js +342 -248
  60. package/core/styles/badge.scss +3 -0
  61. package/core/styles/core.scss +2 -0
  62. package/core/styles/mixins/badge.scss +26 -1
  63. package/core/styles/mixins/font-face.scss +12 -12
  64. package/core/styles/mixins/link.scss +32 -8
  65. package/core/styles/standard-theme.scss +1 -0
  66. package/core/testing.js +14 -14
  67. package/core.css +5 -3
  68. package/custom-elements.json +7788 -173
  69. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  70. package/datepicker/datepicker-toggle.js +23 -26
  71. package/datepicker/datepicker.js +4 -4
  72. package/development/action-group.js +1 -1
  73. package/development/alert/alert-group.js +1 -1
  74. package/development/alert/alert.js +1 -1
  75. package/development/autocomplete/autocomplete-base-element.d.ts +4 -0
  76. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  77. package/development/autocomplete-grid/autocomplete-grid-cell.js +1 -1
  78. package/development/autocomplete-grid/autocomplete-grid-row.js +1 -1
  79. package/development/autocomplete.js +15 -2
  80. package/development/breadcrumb/breadcrumb-group.js +3 -3
  81. package/development/breadcrumb/breadcrumb.js +5 -2
  82. package/development/button/common.js +75 -74
  83. package/development/calendar.js +1 -1
  84. package/development/card/card-badge.js +1 -1
  85. package/development/card/card.js +1 -1
  86. package/development/checkbox/checkbox-panel.js +1 -1
  87. package/development/chip-label.js +1 -1
  88. package/development/clock.js +1 -1
  89. package/development/container/container.js +1 -1
  90. package/development/core/a11y/focus.d.ts.map +1 -1
  91. package/development/core/a11y.js +3 -3
  92. package/development/core/base-elements/link-base-element.d.ts +2 -0
  93. package/development/core/base-elements/link-base-element.d.ts.map +1 -1
  94. package/development/core/base-elements.js +22 -5
  95. package/development/core/controllers.js +1 -1
  96. package/development/core/dom/scroll.d.ts +1 -0
  97. package/development/core/dom/scroll.d.ts.map +1 -1
  98. package/development/core/dom.js +5 -2
  99. package/development/core/i18n/i18n.d.ts +2 -0
  100. package/development/core/i18n/i18n.d.ts.map +1 -1
  101. package/development/core/i18n.js +15 -1
  102. package/development/core/images.d.ts.map +1 -1
  103. package/development/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  104. package/development/core/mixins/form-associated-mixin.d.ts +3 -0
  105. package/development/core/mixins/form-associated-mixin.d.ts.map +1 -1
  106. package/development/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
  107. package/development/core/mixins.js +159 -22
  108. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  109. package/development/datepicker/datepicker-toggle.js +13 -6
  110. package/development/datepicker/datepicker.js +1 -1
  111. package/development/dialog/dialog-content.js +1 -1
  112. package/development/dialog/dialog-title.js +1 -1
  113. package/development/dialog/dialog.js +1 -1
  114. package/development/expansion-panel/expansion-panel-content.js +1 -1
  115. package/development/expansion-panel/expansion-panel-header.js +1 -1
  116. package/development/expansion-panel/expansion-panel.js +1 -1
  117. package/development/file-selector/common.js +1 -1
  118. package/development/flip-card/flip-card-details.js +1 -1
  119. package/development/flip-card/flip-card-summary.js +1 -1
  120. package/development/footer.js +1 -1
  121. package/development/form-field/form-field/form-field.d.ts.map +1 -1
  122. package/development/form-field/form-field.js +5 -2
  123. package/development/icon.js +1 -1
  124. package/development/image.js +2 -2
  125. package/development/journey-header.js +1 -1
  126. package/development/lead-container.js +1 -1
  127. package/development/link/common.js +19 -7
  128. package/development/link-list/common.js +1 -1
  129. package/development/link-list/link-list-anchor.js +1 -1
  130. package/development/link-list/link-list.js +1 -1
  131. package/development/loading-indicator-circle.js +1 -1
  132. package/development/loading-indicator.js +1 -1
  133. package/development/map-container.js +1 -1
  134. package/development/menu/common/menu-action-common.d.ts +3 -0
  135. package/development/menu/common/menu-action-common.d.ts.map +1 -1
  136. package/development/menu/common.js +35 -12
  137. package/development/message.js +1 -1
  138. package/development/navigation/navigation-section.js +1 -1
  139. package/development/notification.js +1 -1
  140. package/development/option/optgroup.js +1 -1
  141. package/development/option/option.js +1 -1
  142. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  143. package/development/overlay.js +3 -3
  144. package/development/paginator/paginator.js +1 -1
  145. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  146. package/development/radio-button/radio-button-group.js +2 -2
  147. package/development/radio-button/radio-button-panel.js +1 -1
  148. package/development/{sbb-tokens-BdGhUJjM.js → sbb-tokens-CSAKTXUi.js} +15 -15
  149. package/development/screen-reader-only.js +1 -1
  150. package/development/select/select.d.ts +4 -1
  151. package/development/select/select.d.ts.map +1 -1
  152. package/development/select.js +22 -4
  153. package/development/signet.js +1 -1
  154. package/development/skiplink-list.js +1 -1
  155. package/development/slider.js +1 -1
  156. package/development/stepper/step.js +1 -1
  157. package/development/tabs/tab-label.js +1 -1
  158. package/development/tabs/tab.js +1 -1
  159. package/development/time-input.js +1 -1
  160. package/development/timetable-occupancy.js +1 -1
  161. package/development/title/title-base.d.ts.map +1 -1
  162. package/development/title.js +4 -5
  163. package/development/toast.js +1 -1
  164. package/development/toggle/toggle/toggle.d.ts +25 -6
  165. package/development/toggle/toggle/toggle.d.ts.map +1 -1
  166. package/development/toggle/toggle-option/toggle-option.d.ts +2 -6
  167. package/development/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  168. package/development/toggle/toggle-option.js +21 -39
  169. package/development/toggle/toggle.js +58 -40
  170. package/development/train/train-blocked-passage.js +1 -1
  171. package/development/train/train-formation.js +1 -1
  172. package/development/train/train.js +1 -1
  173. package/development/visual-checkbox.js +1 -1
  174. package/dialog/dialog-content.js +4 -4
  175. package/dialog/dialog-title.js +8 -8
  176. package/dialog/dialog.js +1 -1
  177. package/divider.js +12 -12
  178. package/expansion-panel/expansion-panel-content.js +3 -3
  179. package/expansion-panel/expansion-panel-header.js +1 -1
  180. package/expansion-panel/expansion-panel.js +1 -1
  181. package/file-selector/common.js +9 -9
  182. package/file-selector/file-selector-dropzone.js +5 -5
  183. package/file-selector/file-selector.js +6 -6
  184. package/flip-card/flip-card-details.js +7 -7
  185. package/flip-card/flip-card-summary.js +12 -12
  186. package/font-characters-extension.css +3 -3
  187. package/footer.js +4 -4
  188. package/form-field/form-field/form-field.d.ts.map +1 -1
  189. package/form-field/form-field.js +7 -5
  190. package/header/header-button.js +5 -5
  191. package/header/header-link.js +5 -5
  192. package/icon.js +37 -37
  193. package/image.js +16 -16
  194. package/journey-header.js +5 -5
  195. package/lead-container.js +3 -3
  196. package/link/block-link-button.js +4 -4
  197. package/link/block-link-static.js +9 -9
  198. package/link/block-link.js +4 -4
  199. package/link/common.js +28 -28
  200. package/link/link-button.js +7 -7
  201. package/link/link-static.js +7 -7
  202. package/link/link.js +4 -4
  203. package/link-list/common.js +15 -15
  204. package/link-list/link-list-anchor.js +3 -3
  205. package/link-list/link-list.js +3 -3
  206. package/loading-indicator-circle.js +14 -14
  207. package/loading-indicator.js +3 -3
  208. package/map-container.js +6 -6
  209. package/menu/common/menu-action-common.d.ts +3 -0
  210. package/menu/common/menu-action-common.d.ts.map +1 -1
  211. package/menu/common.js +34 -30
  212. package/menu/menu-button.js +8 -8
  213. package/menu/menu-link.js +6 -6
  214. package/menu/menu.js +7 -7
  215. package/message.js +3 -3
  216. package/navigation/navigation-button.js +4 -4
  217. package/navigation/navigation-link.js +7 -7
  218. package/navigation/navigation-list.js +4 -4
  219. package/navigation/navigation-marker.js +3 -3
  220. package/navigation/navigation-section.js +1 -1
  221. package/notification.js +19 -19
  222. package/option/optgroup.js +14 -14
  223. package/option/option.js +3 -3
  224. package/overlay/overlay-base-element.d.ts.map +1 -1
  225. package/overlay.js +14 -14
  226. package/package.json +6 -2
  227. package/paginator/common.js +6 -6
  228. package/paginator/paginator.js +1 -1
  229. package/popover/popover.js +13 -13
  230. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  231. package/radio-button/radio-button-group.js +1 -1
  232. package/radio-button/radio-button-panel.js +6 -6
  233. package/{sbb-tokens-Dx20OtVg.js → sbb-tokens-BgDF8jIh.js} +14 -14
  234. package/screen-reader-only.js +8 -8
  235. package/select/select.d.ts +4 -1
  236. package/select/select.d.ts.map +1 -1
  237. package/select.js +35 -28
  238. package/signet.js +1 -1
  239. package/skiplink-list.js +3 -3
  240. package/slider.js +13 -13
  241. package/standard-theme.css +37 -3
  242. package/status.js +3 -3
  243. package/stepper/step-label.js +4 -4
  244. package/stepper/step.js +3 -3
  245. package/table/table-wrapper.js +4 -4
  246. package/tabs/tab-group.js +24 -24
  247. package/tabs/tab-label.js +1 -1
  248. package/tabs/tab.js +4 -4
  249. package/tag/tag-group.js +7 -7
  250. package/teaser-product/common.js +5 -5
  251. package/teaser-product/teaser-product-static.js +2 -2
  252. package/time-input.js +3 -3
  253. package/timetable-occupancy-icon.js +3 -3
  254. package/timetable-occupancy.js +6 -6
  255. package/title/title-base.d.ts.map +1 -1
  256. package/title.js +41 -42
  257. package/toast.js +5 -5
  258. package/toggle/toggle/toggle.d.ts +25 -6
  259. package/toggle/toggle/toggle.d.ts.map +1 -1
  260. package/toggle/toggle-option/toggle-option.d.ts +2 -6
  261. package/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  262. package/toggle/toggle-option.js +44 -52
  263. package/toggle/toggle.js +103 -83
  264. package/toggle-check.js +5 -5
  265. package/train/train-blocked-passage.js +3 -3
  266. package/train/train-formation.js +1 -1
  267. package/train/train.js +29 -29
  268. package/visual-checkbox.js +1 -1
@@ -75,16 +75,13 @@ const buttonCommon = css`*,
75
75
  display: inline-block;
76
76
  outline: none !important;
77
77
  --sbb-button-icon-size: var(--sbb-size-icon-ui-small);
78
- --sbb-button-color-disabled-background: var(--sbb-color-milk);
79
- --sbb-button-color-disabled-border: var(--sbb-color-smoke);
80
- --sbb-button-color-disabled-text: var(--sbb-color-granite);
81
78
  --sbb-button-shadow-1-offset-y: var(--sbb-shadow-elevation-level-3-shadow-1-offset-y);
82
79
  --sbb-button-shadow-2-offset-y: var(--sbb-shadow-elevation-level-3-shadow-2-offset-y);
83
80
  --sbb-button-shadow-1-blur: var(--sbb-shadow-elevation-level-3-shadow-1-blur);
84
81
  --sbb-button-shadow-2-blur: var(--sbb-shadow-elevation-level-3-shadow-2-blur);
85
- --sbb-button-shadow-1-color: var(--sbb-color-red-alpha-20);
86
- --sbb-button-shadow-2-color: var(--sbb-color-red125-alpha-20);
87
- --sbb-button-border-style: solid;
82
+ --sbb-button-color-disabled-background: var(--sbb-color-milk);
83
+ --sbb-button-color-disabled-border: var(--sbb-color-smoke);
84
+ --sbb-button-color-disabled-text: var(--sbb-color-granite);
88
85
  --sbb-button-border-disabled-style: dashed;
89
86
  --sbb-button-border-width: var(--sbb-border-width-2x);
90
87
  --sbb-button-border-disabled-width: var(--sbb-border-width-1x);
@@ -98,14 +95,22 @@ const buttonCommon = css`*,
98
95
  --sbb-button-padding-block-min: var(--sbb-spacing-fixed-1x);
99
96
  --sbb-button-padding-inline: var(--sbb-spacing-fixed-8x);
100
97
  --sbb-button-gap: var(--sbb-spacing-fixed-2x);
101
- --sbb-button-inset: 0;
102
- --sbb-button-box-shadow: transparent;
103
- --sbb-button-box-shadow-definition: var(--sbb-shadow-elevation-level-3-shadow-2-offset-x)
104
- var(--sbb-button-shadow-2-offset-y) var(--sbb-button-shadow-2-blur)
105
- var(--sbb-shadow-elevation-level-3-shadow-2-spread) var(--sbb-button-shadow-2-color),
98
+ --sbb-button-box-shadow: transparent 0 0;
99
+ --sbb-button-box-shadow-definition:
100
+ var(--sbb-shadow-elevation-level-3-shadow-2-offset-x) var(--sbb-button-shadow-2-offset-y)
101
+ var(--sbb-button-shadow-2-blur) var(--sbb-shadow-elevation-level-3-shadow-2-spread)
102
+ var(--sbb-button-shadow-2-color),
106
103
  var(--sbb-shadow-elevation-level-3-shadow-1-offset-x) var(--sbb-button-shadow-1-offset-y)
107
104
  var(--sbb-button-shadow-1-blur) var(--sbb-shadow-elevation-level-3-shadow-1-spread)
108
105
  var(--sbb-button-shadow-1-color);
106
+ --_width: unset;
107
+ --_border-color: var(--sbb-button-color-default-border);
108
+ --_background-color: var(--sbb-button-color-default-background);
109
+ --_color: var(--sbb-button-color-default-text);
110
+ --_button-inset: 0;
111
+ --_outline-width: 0;
112
+ --_border: calc(var(--sbb-button-border-width) + var(--sbb-button-border-overlap-fix, 1px)) solid
113
+ var(--_border-color);
109
114
  }
110
115
  @media (min-width: calc(52.5rem)) {
111
116
  :host {
@@ -124,6 +129,7 @@ const buttonCommon = css`*,
124
129
  --sbb-button-color-default-text: CanvasText !important;
125
130
  --sbb-button-color-hover-text: CanvasText !important;
126
131
  --sbb-button-color-active-text: CanvasText !important;
132
+ --sbb-button-border-overlap-fix: 0rem;
127
133
  }
128
134
  }
129
135
 
@@ -171,6 +177,7 @@ const buttonCommon = css`*,
171
177
 
172
178
  :host(:where([data-slot-names~=icon], [icon-name]):not([data-slot-names~=unnamed])) {
173
179
  --sbb-button-padding-inline: 0;
180
+ --_width: var(--sbb-button-min-height);
174
181
  }
175
182
 
176
183
  @media (any-hover: hover) {
@@ -181,6 +188,11 @@ const buttonCommon = css`*,
181
188
  );
182
189
  --sbb-button-shadow-1-blur: calc(0.5 * var(--sbb-shadow-elevation-level-3-shadow-1-blur));
183
190
  --sbb-button-shadow-2-blur: calc(0.5 * var(--sbb-shadow-elevation-level-3-shadow-2-blur));
191
+ --sbb-button-cursor: pointer;
192
+ --_border-color: var(--sbb-button-color-hover-border);
193
+ --_color: var(--sbb-button-color-hover-text);
194
+ --_background-color: var(--sbb-button-color-hover-background);
195
+ --_button-inset: calc(var(--sbb-button-border-width) * -1);
184
196
  }
185
197
  }
186
198
  @media (forced-colors: active) {
@@ -189,6 +201,27 @@ const buttonCommon = css`*,
189
201
  }
190
202
  }
191
203
 
204
+ :host(:is([disabled], :disabled, [disabled-interactive])) {
205
+ --sbb-button-cursor: default;
206
+ --_color: var(--sbb-button-color-disabled-text);
207
+ --_background-color: var(--sbb-button-color-disabled-background);
208
+ --_border-color: var(--sbb-button-color-disabled-border);
209
+ --_border: var(--sbb-button-border-disabled-width) var(--sbb-button-border-disabled-style)
210
+ var(--_border-color);
211
+ }
212
+
213
+ :host(:not([disabled], :disabled, [disabled-interactive]):is(:active, [data-active])) {
214
+ --_color: var(--sbb-button-color-active-text);
215
+ --_background-color: var(--sbb-button-color-active-background);
216
+ --_border-color: var(--sbb-button-color-active-border);
217
+ }
218
+
219
+ :host([data-focus-visible]),
220
+ :host(:focus-visible:not([data-focus-origin=mouse], [data-focus-origin=touch])),
221
+ :host(:not([data-focus-origin=mouse], [data-focus-origin=touch])) .sbb-action-base:focus-visible {
222
+ --_outline-width: var(--sbb-focus-outline-width);
223
+ }
224
+
192
225
  .sbb-action-base {
193
226
  --sbb-text-font-size: var(--sbb-font-size-text-xs);
194
227
  font-family: var(--sbb-typo-font-family);
@@ -197,92 +230,57 @@ const buttonCommon = css`*,
197
230
  letter-spacing: var(--sbb-typo-letter-spacing-body-text);
198
231
  font-size: var(--sbb-text-font-size);
199
232
  font-weight: bold;
200
- text-decoration: none;
201
- width: 100%;
202
- position: relative;
203
233
  display: flex;
204
234
  gap: var(--sbb-button-gap);
205
235
  align-items: center;
206
236
  justify-content: center;
207
237
  text-align: left;
208
- transition-duration: var(--sbb-button-transition-duration);
209
- transition-timing-function: var(--sbb-button-transition-easing-function);
210
- transition-property: color;
238
+ white-space: nowrap;
239
+ text-decoration: none;
211
240
  min-height: var(--sbb-button-min-height);
241
+ outline: none;
242
+ width: var(--_width);
212
243
  border-radius: var(--sbb-button-border-radius);
244
+ color: var(--_color);
245
+ cursor: var(--sbb-button-cursor);
246
+ user-select: none;
247
+ background-color: var(--_background-color);
248
+ transition-duration: var(--sbb-button-transition-duration);
249
+ transition-timing-function: var(--sbb-button-transition-easing-function);
250
+ transition-property: color, background-color;
213
251
  padding-block: var(--sbb-button-padding-block-min);
214
252
  padding-inline: var(--sbb-button-padding-inline);
215
- color: var(--sbb-button-color-default-text);
216
- cursor: pointer;
217
- user-select: none;
218
- outline: none;
253
+ position: relative;
219
254
  }
220
255
  .sbb-action-base::before {
221
- position: absolute;
222
256
  content: "";
223
- inset: var(--sbb-button-inset);
224
- border: var(--sbb-button-border-width) var(--sbb-button-border-style) var(--sbb-button-color-default-border);
257
+ position: absolute;
258
+ inset: var(--_button-inset);
259
+ border: var(--_border);
225
260
  border-radius: var(--sbb-button-border-radius);
226
- background-color: var(--sbb-button-color-default-background);
227
- transition-duration: var(--sbb-button-transition-duration);
228
- transition-timing-function: var(--sbb-button-transition-easing-function);
229
- transition-property: inset, background-color, border-color, box-shadow;
230
- box-shadow: var(--sbb-button-box-shadow);
231
- }
232
- :host(:is([disabled], :disabled, [disabled-interactive])) .sbb-action-base::before {
233
- background-color: var(--sbb-button-color-disabled-background);
234
- border-width: var(--sbb-button-border-disabled-width);
235
- border-color: var(--sbb-button-color-disabled-border);
236
- border-style: var(--sbb-button-border-disabled-style);
237
- }
238
- @media (any-hover: hover) {
239
- :host(:not([disabled], :disabled, [disabled-interactive], :active, [data-active]):hover) .sbb-action-base::before {
240
- inset: calc(var(--sbb-button-border-width) * -1);
241
- background-color: var(--sbb-button-color-hover-background);
242
- border-color: var(--sbb-button-color-hover-border);
243
- }
244
- }
245
- :host(:not([disabled], :disabled, [disabled-interactive]):is(:active, [data-active])) .sbb-action-base::before {
246
- background-color: var(--sbb-button-color-active-background);
247
- border-color: var(--sbb-button-color-active-border);
248
- }
249
- :host(:where([data-slot-names~=icon], [icon-name]):not([data-slot-names~=unnamed])) .sbb-action-base {
250
- width: var(--sbb-button-min-height);
251
- justify-content: center;
252
- }
253
- :host(:is([disabled], :disabled, [disabled-interactive])) .sbb-action-base {
254
- color: var(--sbb-button-color-disabled-text);
255
- cursor: default;
256
261
  pointer-events: none;
257
- }
258
- :host(:not([disabled], :disabled, [disabled-interactive]):is(:active, [data-active])) .sbb-action-base {
259
- color: var(--sbb-button-color-active-text);
260
- }
261
- @media (any-hover: hover) {
262
- :host(:not([disabled], :disabled, [disabled-interactive], :active, [data-active]):hover) .sbb-action-base {
263
- color: var(--sbb-button-color-hover-text);
264
- }
265
- }
266
- :host([data-focus-visible]) .sbb-action-base::before, :host(:focus-visible:not([data-focus-origin=mouse], [data-focus-origin=touch])) .sbb-action-base::before, :host(:not([data-focus-origin=mouse], [data-focus-origin=touch])) .sbb-action-base:focus-visible::before {
262
+ box-shadow: var(--sbb-button-box-shadow);
263
+ outline: var(--sbb-focus-outline-color) solid var(--_outline-width);
267
264
  outline-offset: var(--sbb-focus-outline-offset);
268
- outline: var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);
269
- }
270
-
271
- .sbb-button__label,
272
- ::slotted([slot=icon]),
273
- sbb-icon {
274
- transition: transform var(--sbb-button-transition-duration) var(--sbb-button-transition-easing-function);
275
- transform: translateY(var(--sbb-button-translate-y-content-hover, 0rem));
265
+ transition-duration: var(--sbb-button-transition-duration);
266
+ transition-timing-function: var(--sbb-button-transition-easing-function);
267
+ transition-property: inset, border, box-shadow;
276
268
  }
277
269
 
278
270
  .sbb-button__label {
279
271
  overflow: hidden;
280
272
  white-space: nowrap;
281
273
  text-overflow: ellipsis;
282
- display: block;
283
274
  }
284
275
  :host(:where([data-slot-names~=icon], [icon-name]):not([data-slot-names~=unnamed])) .sbb-button__label {
285
276
  display: none;
277
+ }
278
+
279
+ .sbb-button__label,
280
+ ::slotted([slot=icon]),
281
+ sbb-icon {
282
+ transition: translate var(--sbb-button-transition-duration) var(--sbb-button-transition-easing-function);
283
+ translate: 0 var(--sbb-button-translate-y-content-hover, 0);
286
284
  }`;
287
285
  const primaryButton = css`:host {
288
286
  --sbb-button-color-active-background: var(--sbb-color-red150);
@@ -294,6 +292,8 @@ const primaryButton = css`:host {
294
292
  --sbb-button-color-hover-background: var(--sbb-color-red125);
295
293
  --sbb-button-color-hover-border: var(--sbb-color-red125);
296
294
  --sbb-button-color-hover-text: var(--sbb-color-milk);
295
+ --sbb-button-shadow-1-color: var(--sbb-color-red-alpha-20);
296
+ --sbb-button-shadow-2-color: var(--sbb-color-red125-alpha-20);
297
297
  }
298
298
 
299
299
  :host([negative]) {
@@ -325,6 +325,7 @@ const secondaryButton = css`:host {
325
325
  --sbb-button-color-hover-text: var(--sbb-color-iron);
326
326
  --sbb-button-shadow-1-color: var(--sbb-color-platinum-alpha-20);
327
327
  --sbb-button-shadow-2-color: var(--sbb-color-cement-alpha-20);
328
+ --sbb-button-border-overlap-fix: 0rem;
328
329
  }
329
330
 
330
331
  :host([negative]) {
@@ -404,4 +405,4 @@ export {
404
405
  secondaryButton as buttonSecondaryStyle,
405
406
  transparentButton as buttonTransparentStyle
406
407
  };
407
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvYnV0dG9uL2NvbW1vbi9idXR0b24tY29tbW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnbGl0L3N0YXRpYy1odG1sLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJBY3Rpb25CYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcywgc2xvdFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzTGVhbiB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgQWJzdHJhY3RDb25zdHJ1Y3RvcixcbiAgU2JiRGlzYWJsZWRNaXhpblR5cGUsXG4gIFNiYk5lZ2F0aXZlTWl4aW5UeXBlLFxufSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgeyBTYmJOZWdhdGl2ZU1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiwgdHlwZSBTYmJJY29uTmFtZU1peGluVHlwZSB9IGZyb20gJy4uLy4uL2ljb24uanMnO1xuXG5leHBvcnQgdHlwZSBTYmJCdXR0b25Db21tb25FbGVtZW50ID0gU2JiQnV0dG9uQ29tbW9uRWxlbWVudE1peGluVHlwZSAmIFNiYkFjdGlvbkJhc2VFbGVtZW50O1xuXG5leHBvcnQgdHlwZSBTYmJCdXR0b25TaXplID0gJ2wnIHwgJ20nIHwgJ3MnO1xuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJCdXR0b25Db21tb25FbGVtZW50TWl4aW5UeXBlXG4gIGltcGxlbWVudHMgU2JiTmVnYXRpdmVNaXhpblR5cGUsIFBhcnRpYWw8U2JiRGlzYWJsZWRNaXhpblR5cGU+LCBQYXJ0aWFsPFNiYkljb25OYW1lTWl4aW5UeXBlPlxue1xuICBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogU2JiQnV0dG9uU2l6ZTtcbiAgcHVibGljIGFjY2Vzc29yIGRpc2FibGVkOiBib29sZWFuO1xuICBwdWJsaWMgYWNjZXNzb3IgaWNvbk5hbWU6IHN0cmluZztcbiAgcHVibGljIGFjY2Vzc29yIG5lZ2F0aXZlOiBib29sZWFuO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiQnV0dG9uQ29tbW9uRWxlbWVudE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkFjdGlvbkJhc2VFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkJ1dHRvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIEBob3N0QXR0cmlidXRlcyh7XG4gICAgJ2RhdGEtc2JiLWJ1dHRvbic6ICcnLFxuICB9KVxuICBAc2xvdFN0YXRlKClcbiAgYWJzdHJhY3QgY2xhc3MgU2JiQnV0dG9uQ29tbW9uRWxlbWVudENsYXNzXG4gICAgZXh0ZW5kcyBTYmJOZWdhdGl2ZU1peGluKFNiYkljb25OYW1lTWl4aW4oc3VwZXJDbGFzcykpXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkJ1dHRvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+XG4gIHtcbiAgICAvKipcbiAgICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBsLCBtIG9yIHMuXG4gICAgICogQGRlZmF1bHQgJ2wnIC8gJ3MnIChsZWFuKVxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHNpemU6IFNiYkJ1dHRvblNpemUgPSBpc0xlYW4oKSA/ICdzJyA6ICdsJztcblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgJHtzdXBlci5yZW5kZXJJY29uU2xvdCgpfVxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1idXR0b25fX2xhYmVsXCI+XG4gICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICA8L3NwYW4+XG4gICAgICBgO1xuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiQnV0dG9uQ29tbW9uRWxlbWVudENsYXNzIGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJCdXR0b25Db21tb25FbGVtZW50TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBNkJhLE1BQUEsOEJBQThCLENBQ3pDLGVBQzREO01BSzdDLCtCQUEyQixNQUFBOztBQUp6QyxRQUFBLG1CQUFBLENBQUEsZUFBZTtBQUFBLE1BQ2QsbUJBQW1CO0FBQUEsSUFBQSxDQUNwQixHQUNBLFVBQUEsQ0FBVzs7OztBQUVGLFFBQUEsY0FBQSxpQkFBaUIsaUJBQWlCLFVBQVUsQ0FBQzs7OztBQUFyRCxJQUFBLG1CQUFRLFlBQThDO0FBQUE7O0FBT3pCLG1EQUFzQyxrQkFBQSxNQUFBLG9CQUFBLE9BQVEsSUFBRyxNQUFNLEdBQUc7Ozs7Ozs7TUFBMUQsSUFBZ0IsT0FBMkM7QUFBQSxlQUFBLG1CQUFBO0FBQUEsTUFBQTtBQUFBLE1BQTNELElBQWdCLEtBQTJDLE9BQUE7QUFBQSwyQkFBQSx3QkFBQTtBQUFBLE1BQUE7QUFBQSxNQUVyRSxpQkFBYztBQUN4QixlQUFBO0FBQUEsVUFDSCxNQUFNLGVBQWdCLENBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BQUE7QUFBQSxPQUpDOztBQUE1Qix5QkFBQSxDQUFBLFNBQVMsRUFBRSxTQUFTLEtBQU0sQ0FBQSxDQUFDO0FBQWlCLG1CQUFBLElBQUEsTUFBQSxrQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLFFBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsVUFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQUEsTUFBQSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsWUFBQSxPQUEyQztBQUFBLFdBQUEsVUFBQSxhQUFBLG9CQUFBLHVCQUFBO0FBUjFGLG1CQWtCQyxNQUFBLG1CQUFBLEVBQUEsT0FBQSxXQUFBLEdBQUEsa0JBQUEsRUFBQSxNQUFBLFNBQUEsTUFBQSxXQUFBLE1BQUEsVUFBQSxVQUFBLEdBQUEsTUFBQSx1QkFBQTs7O0FBbEJjLHdCQUEyQixZQUFBLHVCQUFBO0FBQUEsSUFBQSxNQUN4Qzs7O0FBa0JLLFNBQUE7QUFFVDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7In0=
408
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvYnV0dG9uL2NvbW1vbi9idXR0b24tY29tbW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnbGl0L3N0YXRpYy1odG1sLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJBY3Rpb25CYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcywgc2xvdFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzTGVhbiB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgQWJzdHJhY3RDb25zdHJ1Y3RvcixcbiAgU2JiRGlzYWJsZWRNaXhpblR5cGUsXG4gIFNiYk5lZ2F0aXZlTWl4aW5UeXBlLFxufSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgeyBTYmJOZWdhdGl2ZU1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiwgdHlwZSBTYmJJY29uTmFtZU1peGluVHlwZSB9IGZyb20gJy4uLy4uL2ljb24uanMnO1xuXG5leHBvcnQgdHlwZSBTYmJCdXR0b25Db21tb25FbGVtZW50ID0gU2JiQnV0dG9uQ29tbW9uRWxlbWVudE1peGluVHlwZSAmIFNiYkFjdGlvbkJhc2VFbGVtZW50O1xuXG5leHBvcnQgdHlwZSBTYmJCdXR0b25TaXplID0gJ2wnIHwgJ20nIHwgJ3MnO1xuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJCdXR0b25Db21tb25FbGVtZW50TWl4aW5UeXBlXG4gIGltcGxlbWVudHMgU2JiTmVnYXRpdmVNaXhpblR5cGUsIFBhcnRpYWw8U2JiRGlzYWJsZWRNaXhpblR5cGU+LCBQYXJ0aWFsPFNiYkljb25OYW1lTWl4aW5UeXBlPlxue1xuICBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogU2JiQnV0dG9uU2l6ZTtcbiAgcHVibGljIGFjY2Vzc29yIGRpc2FibGVkOiBib29sZWFuO1xuICBwdWJsaWMgYWNjZXNzb3IgaWNvbk5hbWU6IHN0cmluZztcbiAgcHVibGljIGFjY2Vzc29yIG5lZ2F0aXZlOiBib29sZWFuO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiQnV0dG9uQ29tbW9uRWxlbWVudE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkFjdGlvbkJhc2VFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkJ1dHRvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIEBob3N0QXR0cmlidXRlcyh7XG4gICAgJ2RhdGEtc2JiLWJ1dHRvbic6ICcnLFxuICB9KVxuICBAc2xvdFN0YXRlKClcbiAgYWJzdHJhY3QgY2xhc3MgU2JiQnV0dG9uQ29tbW9uRWxlbWVudENsYXNzXG4gICAgZXh0ZW5kcyBTYmJOZWdhdGl2ZU1peGluKFNiYkljb25OYW1lTWl4aW4oc3VwZXJDbGFzcykpXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkJ1dHRvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+XG4gIHtcbiAgICAvKipcbiAgICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBsLCBtIG9yIHMuXG4gICAgICogQGRlZmF1bHQgJ2wnIC8gJ3MnIChsZWFuKVxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHNpemU6IFNiYkJ1dHRvblNpemUgPSBpc0xlYW4oKSA/ICdzJyA6ICdsJztcblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgJHtzdXBlci5yZW5kZXJJY29uU2xvdCgpfVxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1idXR0b25fX2xhYmVsXCI+XG4gICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICA8L3NwYW4+XG4gICAgICBgO1xuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiQnV0dG9uQ29tbW9uRWxlbWVudENsYXNzIGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJCdXR0b25Db21tb25FbGVtZW50TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBNkJhLE1BQUEsOEJBQThCLENBQ3pDLGVBQzREO01BSzdDLCtCQUEyQixNQUFBOztBQUp6QyxRQUFBLG1CQUFBLENBQUEsZUFBZTtBQUFBLE1BQ2QsbUJBQW1CO0FBQUEsSUFBQSxDQUNwQixHQUNBLFVBQUEsQ0FBVzs7OztBQUVGLFFBQUEsY0FBQSxpQkFBaUIsaUJBQWlCLFVBQVUsQ0FBQzs7OztBQUFyRCxJQUFBLG1CQUFRLFlBQThDO0FBQUE7O0FBT3pCLG1EQUFzQyxrQkFBQSxNQUFBLG9CQUFBLE9BQVEsSUFBRyxNQUFNLEdBQUc7Ozs7Ozs7TUFBMUQsSUFBZ0IsT0FBMkM7QUFBQSxlQUFBLG1CQUFBO0FBQUEsTUFBQTtBQUFBLE1BQTNELElBQWdCLEtBQTJDLE9BQUE7QUFBQSwyQkFBQSx3QkFBQTtBQUFBLE1BQUE7QUFBQSxNQUVyRSxpQkFBYztBQUN4QixlQUFBO0FBQUEsVUFDSCxNQUFNLGVBQWdCLENBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BQUE7QUFBQSxPQUpDOztBQUE1Qix5QkFBQSxDQUFBLFNBQVMsRUFBRSxTQUFTLEtBQU0sQ0FBQSxDQUFDO0FBQWlCLG1CQUFBLElBQUEsTUFBQSxrQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLFFBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsVUFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQUEsTUFBQSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsWUFBQSxPQUEyQztBQUFBLFdBQUEsVUFBQSxhQUFBLG9CQUFBLHVCQUFBO0FBUjFGLG1CQWtCQyxNQUFBLG1CQUFBLEVBQUEsT0FBQSxXQUFBLEdBQUEsa0JBQUEsRUFBQSxNQUFBLFNBQUEsTUFBQSxXQUFBLE1BQUEsVUFBQSxVQUFBLEdBQUEsTUFBQSx1QkFBQTs7O0FBbEJjLHdCQUEyQixZQUFBLHVCQUFBO0FBQUEsSUFBQSxNQUN4Qzs7O0FBa0JLLFNBQUE7QUFFVDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9
@@ -6,7 +6,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
6
6
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
7
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
8
  import { __esDecorate, __runInitializers } from "tslib";
9
- import { css, LitElement, isServer, html, nothing } from "lit";
9
+ import { css, LitElement, isServer, nothing, html } from "lit";
10
10
  import { customElement, property, state } from "lit/decorators.js";
11
11
  import { classMap } from "lit/directives/class-map.js";
12
12
  import { sbbInputModalityDetector, isArrowKeyOrPageKeysPressed } from "./core/a11y.js";
@@ -6,7 +6,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
6
6
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
7
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
8
  import { __runInitializers, __esDecorate } from "tslib";
9
- import { css, html, LitElement } from "lit";
9
+ import { css, LitElement, html } from "lit";
10
10
  import { customElement, property } from "lit/decorators.js";
11
11
  import { hostAttributes } from "../core/decorators.js";
12
12
  const style = css`*,
@@ -6,7 +6,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
6
6
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
7
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
8
  import { __esDecorate, __runInitializers } from "tslib";
9
- import { css, html, nothing, LitElement } from "lit";
9
+ import { css, LitElement, nothing, html } from "lit";
10
10
  import { customElement, property } from "lit/decorators.js";
11
11
  import { isLean } from "../core/dom.js";
12
12
  const style = css`*,
@@ -6,7 +6,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
6
6
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
7
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
8
  import { __runInitializers, __esDecorate } from "tslib";
9
- import { LitElement, html, nothing } from "lit";
9
+ import { LitElement, nothing, html } from "lit";
10
10
  import { customElement, property } from "lit/decorators.js";
11
11
  import { slotState, getOverride } from "../core/decorators.js";
12
12
  import { isLean } from "../core/dom.js";
@@ -6,7 +6,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
6
6
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
7
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
8
  import { __esDecorate, __runInitializers } from "tslib";
9
- import { css, html, LitElement } from "lit";
9
+ import { css, LitElement, html } from "lit";
10
10
  import { customElement, property } from "lit/decorators.js";
11
11
  const style = css`*,
12
12
  ::before,
@@ -6,7 +6,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
6
6
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
7
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
8
  import { __runInitializers, __esDecorate } from "tslib";
9
- import { css, isServer, html, LitElement } from "lit";
9
+ import { css, LitElement, isServer, html } from "lit";
10
10
  import { customElement, property } from "lit/decorators.js";
11
11
  import { ref } from "lit/directives/ref.js";
12
12
  const clockFaceSVG = '<svg focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 105 105"><g class="face"><circle fill="#FFF" cx="52.5" cy="52.5" r="52.5"/><path d="M50.75 4h3.5v12h-3.5zM50.75 89h3.5v12h-3.5zM75.233 9.623l3.03 1.75-6 10.392-3.03-1.75zM32.734 83.233l3.03 1.75-6 10.392-3.03-1.75zM93.628 26.732l1.75 3.031-10.392 6-1.75-3.03zM20.017 69.234l1.75 3.031-10.392 6-1.75-3.03zM101 50.75v3.5H89v-3.5zM16 50.75v3.5H4v-3.5zM95.379 75.232l-1.75 3.031-10.392-6 1.75-3.03zM21.766 32.734l-1.75 3.031-10.392-6 1.75-3.03zM78.267 93.63l-3.03 1.75-6-10.393 3.03-1.75zM35.766 20.015l-3.03 1.75-6-10.392 3.03-1.75z"/><g><path d="M56.873 4.19l1.392.147-.366 3.48-1.392-.145zM47.101 97.177l1.393.146-.366 3.481-1.392-.146zM61.896 4.914l1.37.29-.728 3.424-1.37-.29zM42.458 96.366l1.37.29-.728 3.424-1.37-.291zM66.825 6.157l1.332.432-1.082 3.33-1.331-.434zM37.931 95.085l1.332.432-1.082 3.33-1.331-.433zM71.584 7.906l1.28.569-1.424 3.197-1.28-.57zM33.56 93.32l1.278.569-1.423 3.197-1.28-.57zM80.44 12.852l1.133.823-2.058 2.831-1.132-.823zM25.481 88.494l1.133.822-2.057 2.832-1.133-.823zM84.43 15.986l1.04.937-2.342 2.6-1.04-.936zM21.87 85.469l1.04.936-2.341 2.601-1.04-.937zM88.072 19.522l.937 1.04-2.6 2.343-.937-1.04zM18.593 82.088l.937 1.04-2.601 2.342-.937-1.04zM91.328 23.425l.823 1.133-2.832 2.057-.823-1.132zM15.684 78.385l.823 1.132-2.832 2.058-.822-1.133zM96.52 32.128l.57 1.279-3.198 1.423-.57-1.278zM11.109 70.161l.569 1.279-3.197 1.423-.57-1.279zM98.407 36.85l.433 1.332-3.33 1.081-.432-1.331zM9.483 65.74l.432 1.33-3.329 1.082-.432-1.331zM99.795 41.726l.291 1.37-3.423.727-.29-1.37zM8.34 61.17l.292 1.37-3.424.728-.29-1.37zM100.66 46.73l.146 1.393-3.48.366-.147-1.392zM7.674 56.506l.146 1.392-3.48.366-.147-1.392zM100.811 56.873l-.146 1.392-3.48-.365.145-1.393zM7.821 47.101l-.146 1.392-3.48-.365.145-1.393zM100.09 61.895l-.291 1.369-3.424-.728.291-1.369zM8.631 42.46l-.291 1.37-3.423-.728.29-1.37zM98.84 66.827l-.432 1.331-3.329-1.081.433-1.332zM9.918 37.93l-.433 1.331-3.329-1.082.433-1.331zM97.098 71.585l-.569 1.28-3.197-1.424.57-1.28zM11.677 33.558l-.57 1.28-3.197-1.424.57-1.279zM92.149 80.439l-.823 1.133-2.832-2.058.823-1.132zM16.506 25.482l-.823 1.133-2.831-2.057.823-1.133zM89.017 84.431l-.937 1.04-2.6-2.341.936-1.04zM19.528 21.869l-.936 1.04-2.601-2.342.936-1.04zM85.48 88.076l-1.041.936-2.342-2.6 1.04-.937zM22.91 18.59l-1.04.937-2.341-2.601 1.04-.937zM81.574 91.328l-1.133.823-2.057-2.831 1.132-.823zM26.617 15.684l-1.133.823-2.057-2.832 1.132-.823zM72.873 96.524l-1.279.57-1.423-3.198 1.278-.57zM34.838 11.105l-1.279.57-1.423-3.198 1.279-.57zM68.151 98.405l-1.331.432-1.082-3.329 1.332-.432zM39.259 9.485l-1.332.433-1.081-3.33 1.331-.432zM63.272 99.799l-1.369.29-.728-3.422 1.37-.291zM43.83 8.337l-1.369.291-.727-3.423 1.37-.291zM58.27 100.662l-1.393.146-.366-3.48 1.393-.147zM48.494 7.672l-1.392.147-.366-3.481 1.392-.147z"/></g></g></svg>\n';
@@ -6,7 +6,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
6
6
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
7
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
8
  import { __esDecorate, __runInitializers } from "tslib";
9
- import { css, html, LitElement } from "lit";
9
+ import { css, LitElement, html } from "lit";
10
10
  import { customElement, property } from "lit/decorators.js";
11
11
  import { slotState, forceType } from "../core/decorators.js";
12
12
  const style = css`@charset "UTF-8";
@@ -1 +1 @@
1
- {"version":3,"file":"focus.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/a11y/focus.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,QAYnB,CAAC;AAGb,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,WAAW,EAAE,EACvB,UAAU,CAAC,EAAE;IACX,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC;IACtC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,GACA,WAAW,EAAE,CAuCf;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,WAAW,EAAE,EACvB,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,GACpC,WAAW,GAAG,IAAI,CAMpB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAyB;IAE5C;;;;;OAKG;IACI,IAAI,CACT,OAAO,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC;QACtC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC;KAC3C,GACA,IAAI;IA4CA,UAAU,IAAI,IAAI;CAI1B"}
1
+ {"version":3,"file":"focus.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/a11y/focus.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,QAWnB,CAAC;AAGb,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,WAAW,EAAE,EACvB,UAAU,CAAC,EAAE;IACX,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC;IACtC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,GACA,WAAW,EAAE,CAuCf;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,WAAW,EAAE,EACvB,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,GACpC,WAAW,GAAG,IAAI,CAMpB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAyB;IAE5C;;;;;OAKG;IACI,IAAI,CACT,OAAO,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC;QACtC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC;KAC3C,GACA,IAAI;IA4CA,UAAU,IAAI,IAAI;CAI1B"}
@@ -176,9 +176,9 @@ const IS_FOCUSABLE_QUERY = [
176
176
  "select",
177
177
  "textarea",
178
178
  "details",
179
- "summary:not(:disabled)",
179
+ "summary",
180
180
  "[tabindex]"
181
- ].map((selector) => `${selector}:not([disabled],[tabindex="-1"],[inert])`).concat('[disabled][disabled-interactive]:not([inert],[tabindex="-1"])').join(",");
181
+ ].map((selector) => `${selector}:not([disabled],:disabled,[tabindex="-1"],[inert])`).join(",");
182
182
  function getFocusableElements(elements, properties) {
183
183
  const focusableEls = /* @__PURE__ */ new Set();
184
184
  function getFocusables(elements2, filter) {
@@ -269,4 +269,4 @@ export {
269
269
  sbbInputModalityDetector,
270
270
  setModalityOnNextFocus
271
271
  };
272
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYTExeS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYTExeS9hcnJvdy1uYXZpZ2F0aW9uLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYTExeS9mYWtlLWV2ZW50LWRldGVjdGlvbi50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2ExMXkvaW5wdXQtbW9kYWxpdHktZGV0ZWN0b3IudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9hMTF5L2ZvY3VzLXZpc2libGUtd2l0aGluLWNvbnRyb2xsZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9hMTF5L2ludGVyYWN0aXZpdHktY2hlY2tlci50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2ExMXkvZm9jdXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW50ZXJmYWNlIFByZXZBbmROZXh0S2V5cyB7XG4gIHByZXZLZXk6IHN0cmluZztcbiAgbmV4dEtleTogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBnZXRQcmV2QW5kTmV4dEtleXMoKTogUHJldkFuZE5leHRLZXlzIHtcbiAgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5tYXRjaGVzKCc6ZGlyKHJ0bCknKSkge1xuICAgIHJldHVybiB7IHByZXZLZXk6ICdBcnJvd1JpZ2h0JywgbmV4dEtleTogJ0Fycm93TGVmdCcgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geyBwcmV2S2V5OiAnQXJyb3dMZWZ0JywgbmV4dEtleTogJ0Fycm93UmlnaHQnIH07XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUga2V5IHByZXNzZWQgaXMgYW1vbmcgdGhvc2UgYWxsb3dlZCBmb3IgbmF2aWdhdGlvbi5cbiAqIEBwYXJhbSBldmVudCBUaGUga2V5Ym9hcmQgZXZlbnQgdG8gY2hlY2suXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Fycm93S2V5UHJlc3NlZChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gWydBcnJvd1JpZ2h0JywgJ0Fycm93TGVmdCcsICdBcnJvd1VwJywgJ0Fycm93RG93biddLmluY2x1ZGVzKGV2ZW50LmtleSk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGtleSBwcmVzc2VkIHNob3VsZCBtb3ZlIHRoZSBuYXZpZ2F0aW9uIHRvIHRoZSBuZXh0IGVsZW1lbnQuXG4gKiBAcGFyYW0gZXZlbnQgVGhlIGtleWJvYXJkIGV2ZW50IHRvIGNoZWNrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQcmV2aW91c0Fycm93S2V5UHJlc3NlZChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZXZlbnQua2V5ID09PSAnQXJyb3dVcCcgfHwgZXZlbnQua2V5ID09PSBnZXRQcmV2QW5kTmV4dEtleXMoKS5wcmV2S2V5O1xufVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBrZXkgcHJlc3NlZCBzaG91bGQgbW92ZSB0aGUgbmF2aWdhdGlvbiB0byB0aGUgbmV4dCBlbGVtZW50LlxuICogQHBhcmFtIGV2ZW50IFRoZSBrZXlib2FyZCBldmVudCB0byBjaGVjay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTmV4dEFycm93S2V5UHJlc3NlZChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJyB8fCBldmVudC5rZXkgPT09IGdldFByZXZBbmROZXh0S2V5cygpLm5leHRLZXk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGtleSBwcmVzc2VkIGlzIGFtb25nIHRob3NlIGFsbG93ZWQgZm9yIG5hdmlnYXRpb24uXG4gKiBAcGFyYW0gZXZlbnQgVGhlIGtleWJvYXJkIGV2ZW50IHRvIGNoZWNrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBcnJvd0tleU9yUGFnZUtleXNQcmVzc2VkKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XG4gIHJldHVybiBpc0Fycm93S2V5UHJlc3NlZChldmVudCkgfHwgWydQYWdlVXAnLCAnUGFnZURvd24nLCAnSG9tZScsICdFbmQnXS5pbmNsdWRlcyhldmVudC5rZXkpO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZSB0aGUgaW5kZXggb2YgdGhlIG5leHQgZWxlbWVudCBiYXNlZCBvbiB0aGUgZ2l2ZW4gb2Zmc2V0LlxuICogQHBhcmFtIGN1cnJlbnRJbmRleCBUaGUgaW5kZXggb2YgdGhlIGN1cnJlbnQgZWxlbWVudC5cbiAqIEBwYXJhbSBtYXhJbmRleCBUaGUgbWF4aW11bSBwZXJtaXR0ZWQgdmFsdWUgKGUuZy4gYXJyYXkgc2l6ZSkuXG4gKiBAcGFyYW0gb2Zmc2V0IFRoZSBhbW91bnQgdG8gbW92ZSBieS5cbiAqL1xuZnVuY3Rpb24gY2FsY05leHRJbmRleEluUmFuZ2UoY3VycmVudEluZGV4OiBudW1iZXIsIG1heEluZGV4OiBudW1iZXIsIG9mZnNldDogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIChjdXJyZW50SW5kZXggKyBvZmZzZXQgKyBtYXhJbmRleCkgJSBtYXhJbmRleDtcbn1cblxuZnVuY3Rpb24gZ2V0TGFzdEluZGV4KHNpemU6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiBzaXplIC0gMTtcbn1cblxuY29uc3QgZmlyc3RJbmRleCA9IDA7XG5cbi8qKlxuICogR2V0cyB0aGUgaW5kZXggb2YgdGhlIGVsZW1lbnQgdG8gbW92ZSB0bywgYmFzZWQgb24gdGhlIGtleWJvYXJkIGlucHV0LCB0aGUgY3VycmVudCBlbGVtZW50IGluIHRoZSBsaXN0IGFuZCB0aGUgbGlzdCBzaXplLlxuICogQHBhcmFtIGV2ZW50IFRoZSBrZXlib2FyZCBldmVudCB0byBjaGVjay5cbiAqIEBwYXJhbSBjdXJyZW50IFRoZSBpbmRleCBvZiB0aGUgY3VycmVudCBlbGVtZW50IGluIHRoZSBsaXN0LlxuICogQHBhcmFtIHNpemUgVGhlIHNpemUgb2YgdGhlIGxpc3QuXG4gKiBAcmV0dXJucyBpZiBpdCBpcyBhICdwcmV2aW91cycgZXZlbnQsIHJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBwcmV2aW91cyBlbGVtZW50LFxuICogb3IgdGhlIGluZGV4IG9mIHRoZSBsYXN0IG9uZSBpZiB0aGUgY3VycmVudCBlbGVtZW50IGlzIHRoZSBmaXJzdCBpbiB0aGUgbGlzdDtcbiAqIGlmIGl0IGlzIGEgJ25leHQnIGV2ZW50LCByZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbmV4dCBlbGVtZW50LFxuICogb3IgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBvbmUsIGlmIHRoZSBjdXJyZW50IGlzIHRoZSBsYXN0IGluIHRoZSBsaXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV4dEVsZW1lbnRJbmRleChldmVudDogS2V5Ym9hcmRFdmVudCwgY3VycmVudDogbnVtYmVyLCBzaXplOiBudW1iZXIpOiBudW1iZXIge1xuICBjb25zdCB7IHByZXZLZXksIG5leHRLZXkgfSA9IGdldFByZXZBbmROZXh0S2V5cygpO1xuXG4gIGlmIChldmVudC5rZXkgPT09IHByZXZLZXkgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICByZXR1cm4gY3VycmVudCA8IGZpcnN0SW5kZXggPyBnZXRMYXN0SW5kZXgoc2l6ZSkgOiBjYWxjTmV4dEluZGV4SW5SYW5nZShjdXJyZW50LCBzaXplLCAtMSk7XG4gIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSBuZXh0S2V5IHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICByZXR1cm4gY3VycmVudCA+PSBzaXplID8gZmlyc3RJbmRleCA6IGNhbGNOZXh0SW5kZXhJblJhbmdlKGN1cnJlbnQsIHNpemUsIDEpO1xuICB9XG4gIHJldHVybiBjdXJyZW50O1xufVxuIiwiLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyB0YWtlbiBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi9tYWluL3NyYy9jZGsvYTExeS9mYWtlLWV2ZW50LWRldGVjdGlvbi50c1xuXG4vKiogR2V0cyB3aGV0aGVyIGFuIGV2ZW50IGNvdWxkIGJlIGEgZmFrZWQgYG1vdXNlZG93bmAgZXZlbnQgZGlzcGF0Y2hlZCBieSBhIHNjcmVlbiByZWFkZXIuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGYWtlTW91c2Vkb3duRnJvbVNjcmVlblJlYWRlcihldmVudDogTW91c2VFdmVudCk6IGJvb2xlYW4ge1xuICAvLyBTb21lIHNjcmVlbiByZWFkZXJzIHdpbGwgZGlzcGF0Y2ggYSBmYWtlIGBtb3VzZWRvd25gIGV2ZW50IHdoZW4gcHJlc3NpbmcgZW50ZXIgb3Igc3BhY2Ugb25cbiAgLy8gYSBjbGlja2FibGUgZWxlbWVudC4gV2UgY2FuIGRpc3Rpbmd1aXNoIHRoZXNlIGV2ZW50cyB3aGVuIGBldmVudC5idXR0b25zYCBpcyB6ZXJvLCBvclxuICAvLyBgZXZlbnQuZGV0YWlsYCBpcyB6ZXJvIGRlcGVuZGluZyBvbiB0aGUgYnJvd3NlcjpcbiAgLy8gLSBgZXZlbnQuYnV0dG9uc2Agd29ya3Mgb24gRmlyZWZveCwgYnV0IGZhaWxzIG9uIENocm9tZS5cbiAgLy8gLSBgZGV0YWlsYCB3b3JrcyBvbiBDaHJvbWUsIGJ1dCBmYWlscyBvbiBGaXJlZm94LlxuICByZXR1cm4gZXZlbnQuYnV0dG9ucyA9PT0gMCB8fCBldmVudC5kZXRhaWwgPT09IDA7XG59XG5cbi8qKiBHZXRzIHdoZXRoZXIgYW4gZXZlbnQgY291bGQgYmUgYSBmYWtlZCBgdG91Y2hzdGFydGAgZXZlbnQgZGlzcGF0Y2hlZCBieSBhIHNjcmVlbiByZWFkZXIuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGYWtlVG91Y2hzdGFydEZyb21TY3JlZW5SZWFkZXIoZXZlbnQ6IFRvdWNoRXZlbnQpOiBib29sZWFuIHtcbiAgY29uc3QgdG91Y2g6IFRvdWNoIHwgdW5kZWZpbmVkID1cbiAgICAoZXZlbnQudG91Y2hlcyAmJiBldmVudC50b3VjaGVzWzBdKSB8fCAoZXZlbnQuY2hhbmdlZFRvdWNoZXMgJiYgZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0pO1xuXG4gIC8vIEEgZmFrZSBgdG91Y2hzdGFydGAgY2FuIGJlIGRpc3Rpbmd1aXNoZWQgZnJvbSBhIHJlYWwgb25lIGJ5IGxvb2tpbmcgYXQgdGhlIGBpZGVudGlmaWVyYFxuICAvLyB3aGljaCBpcyB0eXBpY2FsbHkgPj0gMCBvbiBhIHJlYWwgZGV2aWNlIHZlcnN1cyAtMSBmcm9tIGEgc2NyZWVuIHJlYWRlci4gSnVzdCB0byBiZSBzYWZlLFxuICAvLyB3ZSBjYW4gYWxzbyBsb29rIGF0IGByYWRpdXNYYCBhbmQgYHJhZGl1c1lgLiBUaGlzIGJlaGF2aW9yIHdhcyBvYnNlcnZlZCBhZ2FpbnN0IGEgV2luZG93cyAxMFxuICAvLyBkZXZpY2Ugd2l0aCBhIHRvdWNoIHNjcmVlbiBydW5uaW5nIE5WREEgdjIwMjAuNCBhbmQgRmlyZWZveCA4NSBvciBDaHJvbWUgODguXG4gIHJldHVybiAoXG4gICAgISF0b3VjaCAmJlxuICAgIHRvdWNoLmlkZW50aWZpZXIgPT09IC0xICYmXG4gICAgKHRvdWNoLnJhZGl1c1ggPT0gbnVsbCB8fCB0b3VjaC5yYWRpdXNYID09PSAxKSAmJlxuICAgICh0b3VjaC5yYWRpdXNZID09IG51bGwgfHwgdG91Y2gucmFkaXVzWSA9PT0gMSlcbiAgKTtcbn1cbiIsIi8vIFRoaXMgaW1wbGVtZW50YXRpb24gaXMgaW5zcGlyZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9ibG9iL21haW4vc3JjL2Nkay9hMTF5L2lucHV0LW1vZGFsaXR5L2lucHV0LW1vZGFsaXR5LWRldGVjdG9yLnRzXG5cbmltcG9ydCB7IGlzU2VydmVyIH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHsgZ2V0RXZlbnRUYXJnZXQgfSBmcm9tICcuLi9ldmVudGluZy5qcyc7XG5cbmltcG9ydCB7XG4gIGlzRmFrZU1vdXNlZG93bkZyb21TY3JlZW5SZWFkZXIsXG4gIGlzRmFrZVRvdWNoc3RhcnRGcm9tU2NyZWVuUmVhZGVyLFxufSBmcm9tICcuL2Zha2UtZXZlbnQtZGV0ZWN0aW9uLmpzJztcblxuZXhwb3J0IHR5cGUgU2JiSW5wdXRNb2RhbGl0eSA9ICd0b3VjaCcgfCAnbW91c2UnIHwgJ2tleWJvYXJkJyB8ICdwcm9ncmFtJyB8IG51bGw7XG5cbi8qKiBPcHRpb25zIHRvIGNvbmZpZ3VyZSB0aGUgYmVoYXZpb3Igb2YgdGhlIFNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci4gKi9cbmludGVyZmFjZSBTYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3JPcHRpb25zIHtcbiAgLyoqIEtleXMgdG8gaWdub3JlIHdoZW4gZGV0ZWN0aW5nIGtleWJvYXJkIGlucHV0IG1vZGFsaXR5LiAqL1xuICBpZ25vcmVLZXlzPzogbnVtYmVyW107XG59XG5cbmNvbnN0IFNISUZUID0gMTY7XG5jb25zdCBDT05UUk9MID0gMTc7XG5jb25zdCBBTFQgPSAxODtcbmNvbnN0IE1FVEEgPSA5MTsgLy8gV0lOX0tFWV9MRUZUXG5jb25zdCBNQUNfTUVUQSA9IDIyNDtcblxuLyoqXG4gKiBEZWZhdWx0IG9wdGlvbnMgZm9yIHRoZSBTYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IuXG4gKlxuICogTW9kaWZpZXIga2V5cyBhcmUgaWdub3JlZCBieSBkZWZhdWx0IChpLmUuIHdoZW4gcHJlc3NlZCB3b24ndCBjYXVzZSB0aGUgc2VydmljZSB0byBkZXRlY3RcbiAqIGtleWJvYXJkIGlucHV0IG1vZGFsaXR5KSBmb3IgdHdvIHJlYXNvbnM6XG4gKlxuICogMS4gTW9kaWZpZXIga2V5cyBhcmUgY29tbW9ubHkgdXNlZCB3aXRoIG1vdXNlIHRvIHBlcmZvcm0gYWN0aW9ucyBzdWNoIGFzICdyaWdodCBjbGljaycgb3IgJ29wZW5cbiAqICAgIGluIG5ldyB0YWInLCBhbmQgYXJlIHRodXMgbGVzcyByZXByZXNlbnRhdGl2ZSBvZiBhY3R1YWwga2V5Ym9hcmQgaW50ZXJhY3Rpb24uXG4gKiAyLiBWb2ljZU92ZXIgdHJpZ2dlcnMgc29tZSBrZXlib2FyZCBldmVudHMgd2hlbiBsaW5lYXJseSBuYXZpZ2F0aW5nIHdpdGggQ29udHJvbCArIE9wdGlvbiAoYnV0XG4gKiAgICBjb25mdXNpbmdseSBub3Qgd2l0aCBDYXBzIExvY2spLiBUaHVzLCB0byBoYXZlIHBhcml0eSB3aXRoIG90aGVyIHNjcmVlbiByZWFkZXJzLCB3ZSBpZ25vcmVcbiAqICAgIHRoZXNlIGtleXMgc28sIGFzIHRvIG5vdCB1cGRhdGUgdGhlIGlucHV0IG1vZGFsaXR5LlxuICpcbiAqIE5vdGUgdGhhdCB3ZSBkbyBub3QgYnkgZGVmYXVsdCBpZ25vcmUgdGhlIHJpZ2h0IE1ldGEga2V5IG9uIFNhZmFyaSBiZWNhdXNlIGl0IGhhcyB0aGUgc2FtZSBrZXlcbiAqIGNvZGUgYXMgdGhlIENvbnRleHRNZW51IGtleSBvbiBvdGhlciBicm93c2Vycy4gV2hlbiB3ZSBzd2l0Y2ggdG8gdXNpbmcgZXZlbnQua2V5LCB3ZSBjYW5cbiAqIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlIHR3by5cbiAqL1xuY29uc3QgaW5wdXRNb2RhbGl0eURldGVjdG9yT3B0aW9uczogU2JiSW5wdXRNb2RhbGl0eURldGVjdG9yT3B0aW9ucyA9IHtcbiAgaWdub3JlS2V5czogW0FMVCwgQ09OVFJPTCwgTUFDX01FVEEsIE1FVEEsIFNISUZUXSxcbn07XG5cbi8qKlxuICogVGhlIGFtb3VudCBvZiB0aW1lIG5lZWRlZCB0byBwYXNzIGFmdGVyIGEgdG91Y2hzdGFydCBldmVudCBpbiBvcmRlciBmb3IgYSBzdWJzZXF1ZW50IG1vdXNlZG93blxuICogZXZlbnQgdG8gYmUgYXR0cmlidXRlZCBhcyBtb3VzZSBhbmQgbm90IHRvdWNoLlxuICpcbiAqIFRocm91Z2ggdHJpYWwgYW5kIGVycm9yIGl0IHdhcyBmb3VuZCB0aGF0IGEgdmFsdWUgb2YgYXJvdW5kIDY1MG1zIHNlZW1zIGFwcHJvcHJpYXRlLlxuICovXG5jb25zdCB0b3VjaEJ1ZmZlck1zID0gNjUwO1xuXG4vKipcbiAqIEV2ZW50IGxpc3RlbmVyIG9wdGlvbnMgdGhhdCBlbmFibGUgY2FwdHVyaW5nIGFuZCBhbHNvIG1hcmsgdGhlIGxpc3RlbmVyIGFzIHBhc3NpdmUgaWYgdGhlIGJyb3dzZXJcbiAqIHN1cHBvcnRzIGl0LlxuICovXG5jb25zdCBtb2RhbGl0eUV2ZW50TGlzdGVuZXJPcHRpb25zID0ge1xuICBwYXNzaXZlOiB0cnVlLFxuICBjYXB0dXJlOiB0cnVlLFxufTtcblxuLyoqXG4gKiBTZXJ2aWNlIHRoYXQgZGV0ZWN0cyB0aGUgdXNlcidzIGlucHV0IG1vZGFsaXR5LlxuICpcbiAqIFRoaXMgc2VydmljZSBkb2VzIG5vdCB1cGRhdGUgdGhlIGlucHV0IG1vZGFsaXR5IHdoZW4gYSB1c2VyIG5hdmlnYXRlcyB3aXRoIGEgc2NyZWVuIHJlYWRlclxuICogKGUuZy4gbGluZWFyIG5hdmlnYXRpb24gd2l0aCBWb2ljZU92ZXIsIG9iamVjdCBuYXZpZ2F0aW9uIC8gYnJvd3NlIG1vZGUgd2l0aCBOVkRBLCB2aXJ0dWFsIFBDXG4gKiBjdXJzb3IgbW9kZSB3aXRoIEpBV1MpLiBUaGlzIGlzIGluIHBhcnQgZHVlIHRvIHRlY2huaWNhbCBsaW1pdGF0aW9ucyAoaS5lLiBrZXlib2FyZCBldmVudHMgZG8gbm90XG4gKiBmaXJlIGFzIGV4cGVjdGVkIGluIHRoZXNlIG1vZGVzKSBidXQgaXMgYWxzbyBhcmd1YWJseSB0aGUgY29ycmVjdCBiZWhhdmlvci4gTmF2aWdhdGluZyB3aXRoIGFcbiAqIHNjcmVlbiByZWFkZXIgaXMgYWtpbiB0byB2aXN1YWxseSBzY2FubmluZyBhIHBhZ2UsIGFuZCBzaG91bGQgbm90IGJlIGludGVycHJldGVkIGFzIGFjdHVhbCB1c2VyXG4gKiBpbnB1dCBpbnRlcmFjdGlvbi5cbiAqXG4gKiBXaGVuIGEgdXNlciBpcyBub3QgbmF2aWdhdGluZyBidXQgKmludGVyYWN0aW5nKiB3aXRoIGEgc2NyZWVuIHJlYWRlciwgdGhpcyBzZXJ2aWNlIGF0dGVtcHRzIHRvXG4gKiB1cGRhdGUgdGhlIGlucHV0IG1vZGFsaXR5IHRvIGtleWJvYXJkLCBidXQgaW4gZ2VuZXJhbCB0aGlzIHNlcnZpY2UncyBiZWhhdmlvciBpcyBsYXJnZWx5XG4gKiB1bmRlZmluZWQuXG4gKi9cbmNsYXNzIFNiYklucHV0TW9kYWxpdHlEZXRlY3RvciB7XG4gIC8qKiBUaGUgbW9zdCByZWNlbnRseSBkZXRlY3RlZCBpbnB1dCBtb2RhbGl0eS4gKi9cbiAgcHVibGljIGdldCBtb3N0UmVjZW50TW9kYWxpdHkoKTogU2JiSW5wdXRNb2RhbGl0eSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9tb3N0UmVjZW50TW9kYWxpdHk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG1vc3QgcmVjZW50IG1vZGFsaXR5IG11c3QgYmUgaW5pdGlhbGlzZWQgd2l0aCB0aGUgdmFsdWUgJ21vdXNlJyB0byBjb3ZlciB0aGUgY2FzZSB3aGVyZSBhbiBhY3Rpb24gaXNcbiAgICogcGVyZm9ybWVkIGJ1dCBubyBtb3VzZSBvciBrZXlib2FyZCBldmVudCBoYXMgeWV0IG9jY3VycmVkIG9uIHRoZSBwYWdlIChlLmcuIGBzYmItcG9wb3ZlcmAgd2l0aCBob3ZlciB0cmlnZ2VyKS5cbiAgICovXG4gIHByaXZhdGUgX21vc3RSZWNlbnRNb2RhbGl0eTogU2JiSW5wdXRNb2RhbGl0eSB8IG51bGwgPSAnbW91c2UnO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9zdCByZWNlbnRseSBkZXRlY3RlZCBpbnB1dCBtb2RhbGl0eSBldmVudCB0YXJnZXQuIElzIG51bGwgaWYgbm8gaW5wdXQgbW9kYWxpdHkgaGFzIGJlZW5cbiAgICogZGV0ZWN0ZWQgb3IgaWYgdGhlIGFzc29jaWF0ZWQgZXZlbnQgdGFyZ2V0IGlzIG51bGwgZm9yIHNvbWUgdW5rbm93biByZWFzb24uXG4gICAqL1xuICBwdWJsaWMgZ2V0IG1vc3RSZWNlbnRUYXJnZXQoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fbW9zdFJlY2VudFRhcmdldDtcbiAgfVxuICBwcml2YXRlIF9tb3N0UmVjZW50VGFyZ2V0OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBPcHRpb25zIGZvciB0aGlzIFNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfb3B0aW9uczogU2JiSW5wdXRNb2RhbGl0eURldGVjdG9yT3B0aW9ucyA9IHtcbiAgICAuLi5pbnB1dE1vZGFsaXR5RGV0ZWN0b3JPcHRpb25zLFxuICB9O1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZXN0YW1wIG9mIHRoZSBsYXN0IHRvdWNoIGlucHV0IG1vZGFsaXR5LiBVc2VkIHRvIGRldGVybWluZSB3aGV0aGVyIG1vdXNlZG93biBldmVudHNcbiAgICogc2hvdWxkIGJlIGF0dHJpYnV0ZWQgdG8gbW91c2Ugb3IgdG91Y2guXG4gICAqL1xuICBwcml2YXRlIF9sYXN0VG91Y2hNcyA9IDA7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl9vbktleWRvd24sIG1vZGFsaXR5RXZlbnRMaXN0ZW5lck9wdGlvbnMpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5fb25Nb3VzZWRvd24sIG1vZGFsaXR5RXZlbnRMaXN0ZW5lck9wdGlvbnMpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMuX29uVG91Y2hzdGFydCwgbW9kYWxpdHlFdmVudExpc3RlbmVyT3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuX21vc3RSZWNlbnRNb2RhbGl0eSA9ICdtb3VzZSc7XG4gICAgdGhpcy5fbW9zdFJlY2VudFRhcmdldCA9IG51bGw7XG4gICAgdGhpcy5fbGFzdFRvdWNoTXMgPSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMga2V5ZG93biBldmVudHMuIE11c3QgYmUgYW4gYXJyb3cgZnVuY3Rpb24gaW4gb3JkZXIgdG8gcHJlc2VydmUgdGhlIGNvbnRleHQgd2hlbiBpdCBnZXRzXG4gICAqIGJvdW5kLlxuICAgKi9cbiAgcHJpdmF0ZSBfb25LZXlkb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgLy8gSWYgdGhpcyBpcyBvbmUgb2YgdGhlIGtleXMgd2Ugc2hvdWxkIGlnbm9yZSwgdGhlbiBpZ25vcmUgaXQgYW5kIGRvbid0IHVwZGF0ZSB0aGUgaW5wdXRcbiAgICAvLyBtb2RhbGl0eSB0byBrZXlib2FyZC5cbiAgICBpZiAodGhpcy5fb3B0aW9ucz8uaWdub3JlS2V5cz8uc29tZSgoa2V5Q29kZSkgPT4ga2V5Q29kZSA9PT0gZXZlbnQua2V5Q29kZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9tb3N0UmVjZW50TW9kYWxpdHkgPSAna2V5Ym9hcmQnO1xuICAgIHRoaXMuX21vc3RSZWNlbnRUYXJnZXQgPSBnZXRFdmVudFRhcmdldChldmVudCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgbW91c2Vkb3duIGV2ZW50cy4gTXVzdCBiZSBhbiBhcnJvdyBmdW5jdGlvbiBpbiBvcmRlciB0byBwcmVzZXJ2ZSB0aGUgY29udGV4dCB3aGVuIGl0XG4gICAqIGdldHMgYm91bmQuXG4gICAqL1xuICBwcml2YXRlIF9vbk1vdXNlZG93biA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgIC8vIFRvdWNoZXMgdHJpZ2dlciBib3RoIHRvdWNoIGFuZCBtb3VzZSBldmVudHMsIHNvIHdlIG5lZWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBtb3VzZSBldmVudHNcbiAgICAvLyB0aGF0IHdlcmUgdHJpZ2dlcmVkIHZpYSBtb3VzZSB2cyB0b3VjaC4gVG8gZG8gc28sIGNoZWNrIGlmIHRoZSBtb3VzZSBldmVudCBvY2N1cnMgY2xvc2VseVxuICAgIC8vIGFmdGVyIHRoZSBwcmV2aW91cyB0b3VjaCBldmVudC5cbiAgICBpZiAoRGF0ZS5ub3coKSAtIHRoaXMuX2xhc3RUb3VjaE1zIDwgdG91Y2hCdWZmZXJNcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEZha2UgbW91c2Vkb3duIGV2ZW50cyBhcmUgZmlyZWQgYnkgc29tZSBzY3JlZW4gcmVhZGVycyB3aGVuIGNvbnRyb2xzIGFyZSBhY3RpdmF0ZWQgYnkgdGhlXG4gICAgLy8gc2NyZWVuIHJlYWRlci4gQXR0cmlidXRlIHRoZW0gdG8ga2V5Ym9hcmQgaW5wdXQgbW9kYWxpdHkuXG4gICAgdGhpcy5fbW9zdFJlY2VudE1vZGFsaXR5ID0gaXNGYWtlTW91c2Vkb3duRnJvbVNjcmVlblJlYWRlcihldmVudCkgPyAna2V5Ym9hcmQnIDogJ21vdXNlJztcbiAgICB0aGlzLl9tb3N0UmVjZW50VGFyZ2V0ID0gZ2V0RXZlbnRUYXJnZXQoZXZlbnQpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRvdWNoc3RhcnQgZXZlbnRzLiBNdXN0IGJlIGFuIGFycm93IGZ1bmN0aW9uIGluIG9yZGVyIHRvIHByZXNlcnZlIHRoZSBjb250ZXh0IHdoZW4gaXRcbiAgICogZ2V0cyBib3VuZC5cbiAgICovXG4gIHByaXZhdGUgX29uVG91Y2hzdGFydCA9IChldmVudDogVG91Y2hFdmVudCk6IHZvaWQgPT4ge1xuICAgIC8vIFNhbWUgc2NlbmFyaW8gYXMgbWVudGlvbmVkIGluIF9vbk1vdXNlZG93biwgYnV0IG9uIHRvdWNoIHNjcmVlbiBkZXZpY2VzLCBmYWtlIHRvdWNoc3RhcnRcbiAgICAvLyBldmVudHMgYXJlIGZpcmVkLiBBZ2FpbiwgYXR0cmlidXRlIHRvIGtleWJvYXJkIGlucHV0IG1vZGFsaXR5LlxuICAgIGlmIChpc0Zha2VUb3VjaHN0YXJ0RnJvbVNjcmVlblJlYWRlcihldmVudCkpIHtcbiAgICAgIHRoaXMuX21vc3RSZWNlbnRNb2RhbGl0eSA9ICdrZXlib2FyZCc7XG4gICAgICB0aGlzLl9tb3N0UmVjZW50VGFyZ2V0ID0gZ2V0RXZlbnRUYXJnZXQoZXZlbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFN0b3JlIHRoZSB0aW1lc3RhbXAgb2YgdGhpcyB0b3VjaCBldmVudCwgYXMgaXQncyB1c2VkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gbW91c2UgZXZlbnRzXG4gICAgLy8gdHJpZ2dlcmVkIHZpYSBtb3VzZSB2cyB0b3VjaC5cbiAgICB0aGlzLl9sYXN0VG91Y2hNcyA9IERhdGUubm93KCk7XG5cbiAgICB0aGlzLl9tb3N0UmVjZW50TW9kYWxpdHkgPSAndG91Y2gnO1xuICAgIHRoaXMuX21vc3RSZWNlbnRUYXJnZXQgPSBnZXRFdmVudFRhcmdldChldmVudCk7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgPSBuZXcgU2JiSW5wdXRNb2RhbGl0eURldGVjdG9yKCk7XG5cbi8vIFNldCB0aGUgaW5wdXQgbW9kYWxpdHkgaW4gb3JkZXIgdG8gYXZvaWQgc2hvd2luZyB0aGUgb3V0bGluZSBpbiBTYWZhcmkuXG5leHBvcnQgZnVuY3Rpb24gc2V0TW9kYWxpdHlPbk5leHRGb2N1cyhlbGVtZW50VG9Gb2N1czogSFRNTEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gIGlmICghZWxlbWVudFRvRm9jdXMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBtb3N0UmVjZW50TW9kYWxpdHkgPSBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5O1xuXG4gIC8vIFNldCBmb2N1cyBvcmlnaW4gdG8gZWxlbWVudCB3aGljaCBzaG91bGQgcmVjZWl2ZSBmb2N1c1xuICBpZiAoIShlbGVtZW50VG9Gb2N1cyAmJiBtb3N0UmVjZW50TW9kYWxpdHkgIT09IG51bGwpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGVsZW1lbnRUb0ZvY3VzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgJ2ZvY3VzJyxcbiAgICAoKSA9PiB7XG4gICAgICBlbGVtZW50VG9Gb2N1cy5zZXRBdHRyaWJ1dGUoJ2RhdGEtZm9jdXMtb3JpZ2luJywgbW9zdFJlY2VudE1vZGFsaXR5KTtcbiAgICAgIGVsZW1lbnRUb0ZvY3VzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICdibHVyJyxcbiAgICAgICAgKCkgPT4gZWxlbWVudFRvRm9jdXMucmVtb3ZlQXR0cmlidXRlKCdkYXRhLWZvY3VzLW9yaWdpbicpLFxuICAgICAgICB7XG4gICAgICAgICAgb25jZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSxcbiAgICB7IG9uY2U6IHRydWUgfSxcbiAgKTtcbn1cbiIsImltcG9ydCB0eXBlIHsgUmVhY3RpdmVDb250cm9sbGVyLCBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHsgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yIH0gZnJvbSAnLi9pbnB1dC1tb2RhbGl0eS1kZXRlY3Rvci5qcyc7XG5cbi8vIERldGVybWluZSB3aGV0aGVyIHRoZSBlbGVtZW50IGhhcyBhIHZpc2libGUgZm9jdXMgd2l0aGluLlxuZXhwb3J0IGNsYXNzIFNiYkZvY3VzVmlzaWJsZVdpdGhpbkNvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZm9jdXNpbkhhbmRsZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5faG9zdC50b2dnbGVBdHRyaWJ1dGUoXG4gICAgICAnZGF0YS1oYXMtdmlzaWJsZS1mb2N1cy13aXRoaW4nLFxuICAgICAgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJyxcbiAgICApO1xuICB9O1xuXG4gIHByaXZhdGUgX2ZvY3Vzb3V0SGFuZGxlciA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLl9ob3N0LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1oYXMtdmlzaWJsZS1mb2N1cy13aXRoaW4nKTtcbiAgfTtcblxuICBwdWJsaWMgaG9zdENvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9ob3N0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCB0aGlzLl9mb2N1c2luSGFuZGxlcik7XG4gICAgdGhpcy5faG9zdC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIHRoaXMuX2ZvY3Vzb3V0SGFuZGxlcik7XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9ob3N0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCB0aGlzLl9mb2N1c2luSGFuZGxlcik7XG4gICAgdGhpcy5faG9zdC5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIHRoaXMuX2ZvY3Vzb3V0SGFuZGxlcik7XG4gIH1cbn1cbiIsImV4cG9ydCBmdW5jdGlvbiBoYXNHZW9tZXRyeShlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAvLyBVc2UgbG9naWMgZnJvbSBqUXVlcnkgdG8gY2hlY2sgZm9yIGFuIGludmlzaWJsZSBlbGVtZW50LlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnkvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9oaWRkZW5WaXNpYmxlU2VsZWN0b3JzLmpzI0wxMlxuICByZXR1cm4gISEoXG4gICAgZWxlbWVudC5vZmZzZXRXaWR0aCB8fFxuICAgIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IHx8XG4gICAgKHR5cGVvZiBlbGVtZW50LmdldENsaWVudFJlY3RzID09PSAnZnVuY3Rpb24nICYmIGVsZW1lbnQuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpXG4gICk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJmYWNlSW50ZXJhY3Rpdml0eUNoZWNrZXIge1xuICBpc1Zpc2libGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgSW50ZXJhY3Rpdml0eUNoZWNrZXIgaW1wbGVtZW50cyBJbnRlcmZhY2VJbnRlcmFjdGl2aXR5Q2hlY2tlciB7XG4gIC8qKlxuICAgKiBHZXRzIHdoZXRoZXIgYW4gZWxlbWVudCBpcyB2aXNpYmxlIGZvciB0aGUgcHVycG9zZXMgb2YgaW50ZXJhY3Rpdml0eS5cbiAgICpcbiAgICogVGhpcyB3aWxsIGNhcHR1cmUgc3RhdGVzIGxpa2UgYGRpc3BsYXk6IG5vbmVgIGFuZCBgdmlzaWJpbGl0eTogaGlkZGVuYCwgYnV0IG5vdCB0aGluZ3MgbGlrZVxuICAgKiBiZWluZyBjbGlwcGVkIGJ5IGFuIGBvdmVyZmxvdzogaGlkZGVuYCBwYXJlbnQgb3IgYmVpbmcgb3V0c2lkZSB0aGUgdmlld3BvcnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZS5cbiAgICovXG4gIHB1YmxpYyBpc1Zpc2libGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaGFzR2VvbWV0cnkoZWxlbWVudCkgJiYgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS52aXNpYmlsaXR5ID09PSAndmlzaWJsZSc7XG4gIH1cbn1cblxuY2xhc3MgSW50ZXJhY3Rpdml0eUNoZWNrZXJNb2NrIGltcGxlbWVudHMgSW50ZXJmYWNlSW50ZXJhY3Rpdml0eUNoZWNrZXIge1xuICBwdWJsaWMgaXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbi8vIEZvciB1bml0IHRlc3RzIHdlIG5lZWQgdG8gcHJldGVuZCB0aGF0IGFuIGVsZW1lbnQgaXMgYWx3YXlzIHZpc2libGUuXG4vLyBUaGlzIGNhbiBiZSBkb25lIGJ5IGNoZWNraW5nIGlmIHZpc2liaWxpdHkgcHJvcGVydHkgaXMgc2V0IHRvIGVtcHR5LlxuZXhwb3J0IGNvbnN0IGludGVyYWN0aXZpdHlDaGVja2VyOiBJbnRlcmZhY2VJbnRlcmFjdGl2aXR5Q2hlY2tlciA9XG4gIHR5cGVvZiBnZXRDb21wdXRlZFN0eWxlID09PSAndW5kZWZpbmVkJyB8fFxuICBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkudmlzaWJpbGl0eSA9PT0gJydcbiAgICA/IG5ldyBJbnRlcmFjdGl2aXR5Q2hlY2tlck1vY2soKVxuICAgIDogbmV3IEludGVyYWN0aXZpdHlDaGVja2VyKCk7XG4iLCJpbXBvcnQgeyBpbnRlcmFjdGl2aXR5Q2hlY2tlciB9IGZyb20gJy4vaW50ZXJhY3Rpdml0eS1jaGVja2VyLmpzJztcblxuZXhwb3J0IGNvbnN0IElTX0ZPQ1VTQUJMRV9RVUVSWSA9IFtcbiAgJ2J1dHRvbicsXG4gICdbaHJlZl0nLFxuICAnaW5wdXQnLFxuICAnc2VsZWN0JyxcbiAgJ3RleHRhcmVhJyxcbiAgJ2RldGFpbHMnLFxuICAnc3VtbWFyeTpub3QoOmRpc2FibGVkKScsXG4gICdbdGFiaW5kZXhdJyxcbl1cbiAgLm1hcCgoc2VsZWN0b3IpID0+IGAke3NlbGVjdG9yfTpub3QoW2Rpc2FibGVkXSxbdGFiaW5kZXg9XCItMVwiXSxbaW5lcnRdKWApXG4gIC5jb25jYXQoJ1tkaXNhYmxlZF1bZGlzYWJsZWQtaW50ZXJhY3RpdmVdOm5vdChbaW5lcnRdLFt0YWJpbmRleD1cIi0xXCJdKScpXG4gIC5qb2luKCcsJyk7XG5cbi8vIE5vdGU6IHRoZSB1c2Ugb2YgdGhpcyBmdW5jdGlvbiBmb3IgbW9yZSBjb21wbGV4IHNjZW5hcmlvcyAod2l0aCBtYW55IG5lc3RlZCBlbGVtZW50cykgbWF5IGJlIGV4cGVuc2l2ZS5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb2N1c2FibGVFbGVtZW50cyhcbiAgZWxlbWVudHM6IEhUTUxFbGVtZW50W10sXG4gIHByb3BlcnRpZXM/OiB7XG4gICAgZmlsdGVyPzogKGVsOiBIVE1MRWxlbWVudCkgPT4gYm9vbGVhbjtcbiAgICBmaW5kRmlyc3RGb2N1c2FibGU/OiBib29sZWFuO1xuICAgIGluY2x1ZGVJbnZpc2libGVFbGVtZW50cz86IGJvb2xlYW47XG4gIH0sXG4pOiBIVE1MRWxlbWVudFtdIHtcbiAgY29uc3QgZm9jdXNhYmxlRWxzID0gbmV3IFNldDxIVE1MRWxlbWVudD4oKTtcblxuICBmdW5jdGlvbiBnZXRGb2N1c2FibGVzKGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdLCBmaWx0ZXI/OiAoZWw6IEhUTUxFbGVtZW50KSA9PiBib29sZWFuKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBlbCBvZiBlbGVtZW50cykge1xuICAgICAgaWYgKGZpbHRlciAmJiAhZmlsdGVyKGVsKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGVsLm5vZGVOYW1lID09PSAnU0xPVCcpIHtcbiAgICAgICAgZ2V0Rm9jdXNhYmxlcyhcbiAgICAgICAgICBBcnJheS5mcm9tKChlbCBhcyBIVE1MU2xvdEVsZW1lbnQpLmFzc2lnbmVkRWxlbWVudHMoKSkgYXMgSFRNTEVsZW1lbnRbXSxcbiAgICAgICAgICBmaWx0ZXIsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIGVsLm1hdGNoZXMoSVNfRk9DVVNBQkxFX1FVRVJZKSAmJlxuICAgICAgICAocHJvcGVydGllcz8uaW5jbHVkZUludmlzaWJsZUVsZW1lbnRzID8/IGludGVyYWN0aXZpdHlDaGVja2VyLmlzVmlzaWJsZShlbCkpXG4gICAgICApIHtcbiAgICAgICAgZm9jdXNhYmxlRWxzLmFkZChlbCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwcm9wZXJ0aWVzPy5maW5kRmlyc3RGb2N1c2FibGUgJiYgZm9jdXNhYmxlRWxzLnNpemUgPiAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpZiAoZWwuY2hpbGRyZW4ubGVuZ3RoIHx8IGVsLnNoYWRvd1Jvb3Q/LmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IEFycmF5LmZyb20oZWwuY2hpbGRyZW4pLmxlbmd0aFxuICAgICAgICAgID8gKEFycmF5LmZyb20oZWwuY2hpbGRyZW4pIGFzIEhUTUxFbGVtZW50W10pXG4gICAgICAgICAgOiAoQXJyYXkuZnJvbShlbC5zaGFkb3dSb290IS5jaGlsZHJlbikgYXMgSFRNTEVsZW1lbnRbXSk7XG4gICAgICAgIGdldEZvY3VzYWJsZXMoY2hpbGRyZW4sIGZpbHRlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGdldEZvY3VzYWJsZXMoZWxlbWVudHMsIHByb3BlcnRpZXM/LmZpbHRlcik7XG5cbiAgcmV0dXJuIFsuLi5mb2N1c2FibGVFbHNdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rmlyc3RGb2N1c2FibGVFbGVtZW50KFxuICBlbGVtZW50czogSFRNTEVsZW1lbnRbXSxcbiAgZmlsdGVyPzogKGVsOiBIVE1MRWxlbWVudCkgPT4gYm9vbGVhbixcbik6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IGZvY3VzYWJsZUVsZW1lbnRzID0gZ2V0Rm9jdXNhYmxlRWxlbWVudHMoZWxlbWVudHMsIHtcbiAgICBmaWx0ZXIsXG4gICAgZmluZEZpcnN0Rm9jdXNhYmxlOiB0cnVlLFxuICB9KTtcbiAgcmV0dXJuIGZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCA/IGZvY3VzYWJsZUVsZW1lbnRzWzBdIDogbnVsbDtcbn1cblxuZXhwb3J0IGNsYXNzIFNiYkZvY3VzSGFuZGxlciB7XG4gIHByaXZhdGUgX2NvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBlbGVtZW50IGluIHdoaWNoIHRoZSBmb2N1cyBzaG91bGQgYmUgdHJhcHBlZC5cbiAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSBvcHRpb25zLmZpbHRlciBmaWx0ZXIgZnVuY3Rpb24gd2hpY2ggaXMgYXBwbGllZCBkdXJpbmcgc2VhcmNoaW5nIGZvciBmb2N1c2FibGUgZWxlbWVudC4gSWYgYW4gZWxlbWVudCBpcyBmaWx0ZXJlZCwgYWxzbyBjaGlsZCBlbGVtZW50cyBhcmUgZmlsdGVyZWQuXG4gICAqIEBwYXJhbSBvcHRpb25zLnBvc3RGaWx0ZXIgZmlsdGVyIGZ1bmN0aW9uIHdoaWNoIGlzIGFwcGxpZWQgYWZ0ZXIgY29sbGVjdGluZyBmb2N1c2FibGUgZWxlbWVudHMuXG4gICAqL1xuICBwdWJsaWMgdHJhcChcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICBvcHRpb25zPzoge1xuICAgICAgZmlsdGVyPzogKGVsOiBIVE1MRWxlbWVudCkgPT4gYm9vbGVhbjtcbiAgICAgIHBvc3RGaWx0ZXI/OiAoZWw6IEhUTUxFbGVtZW50KSA9PiBib29sZWFuO1xuICAgIH0sXG4gICk6IHZvaWQge1xuICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdrZXlkb3duJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQua2V5ICE9PSAnVGFiJykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIER5bmFtaWNhbGx5IGdldCBmaXJzdCBhbmQgbGFzdCBmb2N1c2FibGUgZWxlbWVudCwgYXMgdGhpcyBtaWdodCBoYXZlIGNoYW5nZWQgc2luY2Ugb3BlbmluZyBvdmVybGF5XG4gICAgICAgIGNvbnN0IGVsZW1lbnRDaGlsZHJlbjogSFRNTEVsZW1lbnRbXSA9IEFycmF5LmZyb20oXG4gICAgICAgICAgZWxlbWVudC5zaGFkb3dSb290IS5jaGlsZHJlbiB8fCBbXSxcbiAgICAgICAgKSBhcyBIVE1MRWxlbWVudFtdO1xuICAgICAgICBjb25zdCBmb2N1c2FibGVFbGVtZW50cyA9IGdldEZvY3VzYWJsZUVsZW1lbnRzKGVsZW1lbnRDaGlsZHJlbiwge1xuICAgICAgICAgIGZpbHRlcjogb3B0aW9ucz8uZmlsdGVyLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRGb2N1c2FibGVFbGVtZW50cyA9IGZvY3VzYWJsZUVsZW1lbnRzLmZpbHRlcihcbiAgICAgICAgICBvcHRpb25zPy5wb3N0RmlsdGVyID8/ICgoKSA9PiB0cnVlKSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIWZpbHRlcmVkRm9jdXNhYmxlRWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlyc3RGb2N1c2FibGUgPSBmaWx0ZXJlZEZvY3VzYWJsZUVsZW1lbnRzWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCBsYXN0Rm9jdXNhYmxlID0gZmlsdGVyZWRGb2N1c2FibGVFbGVtZW50c1tcbiAgICAgICAgICBmaWx0ZXJlZEZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCAtIDFcbiAgICAgICAgXSBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICBjb25zdCBbcGl2b3QsIG5leHRdID0gZXZlbnQuc2hpZnRLZXlcbiAgICAgICAgICA/IFtmaXJzdEZvY3VzYWJsZSwgbGFzdEZvY3VzYWJsZV1cbiAgICAgICAgICA6IFtsYXN0Rm9jdXNhYmxlLCBmaXJzdEZvY3VzYWJsZV07XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIChmaXJzdEZvY3VzYWJsZS5nZXRSb290Tm9kZSgpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdCkuYWN0aXZlRWxlbWVudCA9PT0gcGl2b3QgfHxcbiAgICAgICAgICAobGFzdEZvY3VzYWJsZS5nZXRSb290Tm9kZSgpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdCkuYWN0aXZlRWxlbWVudCA9PT0gcGl2b3RcbiAgICAgICAgKSB7XG4gICAgICAgICAgbmV4dC5mb2N1cygpO1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IHNpZ25hbDogdGhpcy5fY29udHJvbGxlci5zaWduYWwgfSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGRpc2Nvbm5lY3QoKTogdm9pZCB7XG4gICAgdGhpcy5fY29udHJvbGxlci5hYm9ydCgpO1xuICAgIHRoaXMuX2NvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJlbGVtZW50cyJdLCJtYXBwaW5ncyI6Ijs7QUFLQSxTQUFTLHFCQUFrQjtBQUN6QixNQUFJLFNBQVMsZ0JBQWdCLFFBQVEsV0FBVyxHQUFHO0FBQ2pELFdBQU8sRUFBRSxTQUFTLGNBQWMsU0FBUyxZQUFXO0FBQUEsRUFBQSxPQUMvQztBQUNMLFdBQU8sRUFBRSxTQUFTLGFBQWEsU0FBUyxhQUFZO0FBQUEsRUFBQTtBQUV4RDtBQU1NLFNBQVUsa0JBQWtCLE9BQW9CO0FBQzdDLFNBQUEsQ0FBQyxjQUFjLGFBQWEsV0FBVyxXQUFXLEVBQUUsU0FBUyxNQUFNLEdBQUc7QUFDL0U7QUFNTSxTQUFVLDBCQUEwQixPQUFvQjtBQUM1RCxTQUFPLE1BQU0sUUFBUSxhQUFhLE1BQU0sUUFBUSxxQkFBcUI7QUFDdkU7QUFNTSxTQUFVLHNCQUFzQixPQUFvQjtBQUN4RCxTQUFPLE1BQU0sUUFBUSxlQUFlLE1BQU0sUUFBUSxxQkFBcUI7QUFDekU7QUFNTSxTQUFVLDRCQUE0QixPQUFvQjtBQUN2RCxTQUFBLGtCQUFrQixLQUFLLEtBQUssQ0FBQyxVQUFVLFlBQVksUUFBUSxLQUFLLEVBQUUsU0FBUyxNQUFNLEdBQUc7QUFDN0Y7QUFRQSxTQUFTLHFCQUFxQixjQUFzQixVQUFrQixRQUFjO0FBQzFFLFVBQUEsZUFBZSxTQUFTLFlBQVk7QUFDOUM7QUFFQSxTQUFTLGFBQWEsTUFBWTtBQUNoQyxTQUFPLE9BQU87QUFDaEI7QUFFQSxNQUFNLGFBQWE7QUFZSCxTQUFBLG9CQUFvQixPQUFzQixTQUFpQixNQUFZO0FBQ3JGLFFBQU0sRUFBRSxTQUFTLFlBQVk7QUFFN0IsTUFBSSxNQUFNLFFBQVEsV0FBVyxNQUFN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
272
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYTExeS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYTExeS9hcnJvdy1uYXZpZ2F0aW9uLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYTExeS9mYWtlLWV2ZW50LWRldGVjdGlvbi50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2ExMXkvaW5wdXQtbW9kYWxpdHktZGV0ZWN0b3IudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9hMTF5L2ZvY3VzLXZpc2libGUtd2l0aGluLWNvbnRyb2xsZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9hMTF5L2ludGVyYWN0aXZpdHktY2hlY2tlci50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2ExMXkvZm9jdXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW50ZXJmYWNlIFByZXZBbmROZXh0S2V5cyB7XG4gIHByZXZLZXk6IHN0cmluZztcbiAgbmV4dEtleTogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBnZXRQcmV2QW5kTmV4dEtleXMoKTogUHJldkFuZE5leHRLZXlzIHtcbiAgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5tYXRjaGVzKCc6ZGlyKHJ0bCknKSkge1xuICAgIHJldHVybiB7IHByZXZLZXk6ICdBcnJvd1JpZ2h0JywgbmV4dEtleTogJ0Fycm93TGVmdCcgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geyBwcmV2S2V5OiAnQXJyb3dMZWZ0JywgbmV4dEtleTogJ0Fycm93UmlnaHQnIH07XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUga2V5IHByZXNzZWQgaXMgYW1vbmcgdGhvc2UgYWxsb3dlZCBmb3IgbmF2aWdhdGlvbi5cbiAqIEBwYXJhbSBldmVudCBUaGUga2V5Ym9hcmQgZXZlbnQgdG8gY2hlY2suXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Fycm93S2V5UHJlc3NlZChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gWydBcnJvd1JpZ2h0JywgJ0Fycm93TGVmdCcsICdBcnJvd1VwJywgJ0Fycm93RG93biddLmluY2x1ZGVzKGV2ZW50LmtleSk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGtleSBwcmVzc2VkIHNob3VsZCBtb3ZlIHRoZSBuYXZpZ2F0aW9uIHRvIHRoZSBuZXh0IGVsZW1lbnQuXG4gKiBAcGFyYW0gZXZlbnQgVGhlIGtleWJvYXJkIGV2ZW50IHRvIGNoZWNrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQcmV2aW91c0Fycm93S2V5UHJlc3NlZChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZXZlbnQua2V5ID09PSAnQXJyb3dVcCcgfHwgZXZlbnQua2V5ID09PSBnZXRQcmV2QW5kTmV4dEtleXMoKS5wcmV2S2V5O1xufVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBrZXkgcHJlc3NlZCBzaG91bGQgbW92ZSB0aGUgbmF2aWdhdGlvbiB0byB0aGUgbmV4dCBlbGVtZW50LlxuICogQHBhcmFtIGV2ZW50IFRoZSBrZXlib2FyZCBldmVudCB0byBjaGVjay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTmV4dEFycm93S2V5UHJlc3NlZChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJyB8fCBldmVudC5rZXkgPT09IGdldFByZXZBbmROZXh0S2V5cygpLm5leHRLZXk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGtleSBwcmVzc2VkIGlzIGFtb25nIHRob3NlIGFsbG93ZWQgZm9yIG5hdmlnYXRpb24uXG4gKiBAcGFyYW0gZXZlbnQgVGhlIGtleWJvYXJkIGV2ZW50IHRvIGNoZWNrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBcnJvd0tleU9yUGFnZUtleXNQcmVzc2VkKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XG4gIHJldHVybiBpc0Fycm93S2V5UHJlc3NlZChldmVudCkgfHwgWydQYWdlVXAnLCAnUGFnZURvd24nLCAnSG9tZScsICdFbmQnXS5pbmNsdWRlcyhldmVudC5rZXkpO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZSB0aGUgaW5kZXggb2YgdGhlIG5leHQgZWxlbWVudCBiYXNlZCBvbiB0aGUgZ2l2ZW4gb2Zmc2V0LlxuICogQHBhcmFtIGN1cnJlbnRJbmRleCBUaGUgaW5kZXggb2YgdGhlIGN1cnJlbnQgZWxlbWVudC5cbiAqIEBwYXJhbSBtYXhJbmRleCBUaGUgbWF4aW11bSBwZXJtaXR0ZWQgdmFsdWUgKGUuZy4gYXJyYXkgc2l6ZSkuXG4gKiBAcGFyYW0gb2Zmc2V0IFRoZSBhbW91bnQgdG8gbW92ZSBieS5cbiAqL1xuZnVuY3Rpb24gY2FsY05leHRJbmRleEluUmFuZ2UoY3VycmVudEluZGV4OiBudW1iZXIsIG1heEluZGV4OiBudW1iZXIsIG9mZnNldDogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIChjdXJyZW50SW5kZXggKyBvZmZzZXQgKyBtYXhJbmRleCkgJSBtYXhJbmRleDtcbn1cblxuZnVuY3Rpb24gZ2V0TGFzdEluZGV4KHNpemU6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiBzaXplIC0gMTtcbn1cblxuY29uc3QgZmlyc3RJbmRleCA9IDA7XG5cbi8qKlxuICogR2V0cyB0aGUgaW5kZXggb2YgdGhlIGVsZW1lbnQgdG8gbW92ZSB0bywgYmFzZWQgb24gdGhlIGtleWJvYXJkIGlucHV0LCB0aGUgY3VycmVudCBlbGVtZW50IGluIHRoZSBsaXN0IGFuZCB0aGUgbGlzdCBzaXplLlxuICogQHBhcmFtIGV2ZW50IFRoZSBrZXlib2FyZCBldmVudCB0byBjaGVjay5cbiAqIEBwYXJhbSBjdXJyZW50IFRoZSBpbmRleCBvZiB0aGUgY3VycmVudCBlbGVtZW50IGluIHRoZSBsaXN0LlxuICogQHBhcmFtIHNpemUgVGhlIHNpemUgb2YgdGhlIGxpc3QuXG4gKiBAcmV0dXJucyBpZiBpdCBpcyBhICdwcmV2aW91cycgZXZlbnQsIHJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBwcmV2aW91cyBlbGVtZW50LFxuICogb3IgdGhlIGluZGV4IG9mIHRoZSBsYXN0IG9uZSBpZiB0aGUgY3VycmVudCBlbGVtZW50IGlzIHRoZSBmaXJzdCBpbiB0aGUgbGlzdDtcbiAqIGlmIGl0IGlzIGEgJ25leHQnIGV2ZW50LCByZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbmV4dCBlbGVtZW50LFxuICogb3IgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBvbmUsIGlmIHRoZSBjdXJyZW50IGlzIHRoZSBsYXN0IGluIHRoZSBsaXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV4dEVsZW1lbnRJbmRleChldmVudDogS2V5Ym9hcmRFdmVudCwgY3VycmVudDogbnVtYmVyLCBzaXplOiBudW1iZXIpOiBudW1iZXIge1xuICBjb25zdCB7IHByZXZLZXksIG5leHRLZXkgfSA9IGdldFByZXZBbmROZXh0S2V5cygpO1xuXG4gIGlmIChldmVudC5rZXkgPT09IHByZXZLZXkgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICByZXR1cm4gY3VycmVudCA8IGZpcnN0SW5kZXggPyBnZXRMYXN0SW5kZXgoc2l6ZSkgOiBjYWxjTmV4dEluZGV4SW5SYW5nZShjdXJyZW50LCBzaXplLCAtMSk7XG4gIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSBuZXh0S2V5IHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICByZXR1cm4gY3VycmVudCA+PSBzaXplID8gZmlyc3RJbmRleCA6IGNhbGNOZXh0SW5kZXhJblJhbmdlKGN1cnJlbnQsIHNpemUsIDEpO1xuICB9XG4gIHJldHVybiBjdXJyZW50O1xufVxuIiwiLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyB0YWtlbiBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi9tYWluL3NyYy9jZGsvYTExeS9mYWtlLWV2ZW50LWRldGVjdGlvbi50c1xuXG4vKiogR2V0cyB3aGV0aGVyIGFuIGV2ZW50IGNvdWxkIGJlIGEgZmFrZWQgYG1vdXNlZG93bmAgZXZlbnQgZGlzcGF0Y2hlZCBieSBhIHNjcmVlbiByZWFkZXIuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGYWtlTW91c2Vkb3duRnJvbVNjcmVlblJlYWRlcihldmVudDogTW91c2VFdmVudCk6IGJvb2xlYW4ge1xuICAvLyBTb21lIHNjcmVlbiByZWFkZXJzIHdpbGwgZGlzcGF0Y2ggYSBmYWtlIGBtb3VzZWRvd25gIGV2ZW50IHdoZW4gcHJlc3NpbmcgZW50ZXIgb3Igc3BhY2Ugb25cbiAgLy8gYSBjbGlja2FibGUgZWxlbWVudC4gV2UgY2FuIGRpc3Rpbmd1aXNoIHRoZXNlIGV2ZW50cyB3aGVuIGBldmVudC5idXR0b25zYCBpcyB6ZXJvLCBvclxuICAvLyBgZXZlbnQuZGV0YWlsYCBpcyB6ZXJvIGRlcGVuZGluZyBvbiB0aGUgYnJvd3NlcjpcbiAgLy8gLSBgZXZlbnQuYnV0dG9uc2Agd29ya3Mgb24gRmlyZWZveCwgYnV0IGZhaWxzIG9uIENocm9tZS5cbiAgLy8gLSBgZGV0YWlsYCB3b3JrcyBvbiBDaHJvbWUsIGJ1dCBmYWlscyBvbiBGaXJlZm94LlxuICByZXR1cm4gZXZlbnQuYnV0dG9ucyA9PT0gMCB8fCBldmVudC5kZXRhaWwgPT09IDA7XG59XG5cbi8qKiBHZXRzIHdoZXRoZXIgYW4gZXZlbnQgY291bGQgYmUgYSBmYWtlZCBgdG91Y2hzdGFydGAgZXZlbnQgZGlzcGF0Y2hlZCBieSBhIHNjcmVlbiByZWFkZXIuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGYWtlVG91Y2hzdGFydEZyb21TY3JlZW5SZWFkZXIoZXZlbnQ6IFRvdWNoRXZlbnQpOiBib29sZWFuIHtcbiAgY29uc3QgdG91Y2g6IFRvdWNoIHwgdW5kZWZpbmVkID1cbiAgICAoZXZlbnQudG91Y2hlcyAmJiBldmVudC50b3VjaGVzWzBdKSB8fCAoZXZlbnQuY2hhbmdlZFRvdWNoZXMgJiYgZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0pO1xuXG4gIC8vIEEgZmFrZSBgdG91Y2hzdGFydGAgY2FuIGJlIGRpc3Rpbmd1aXNoZWQgZnJvbSBhIHJlYWwgb25lIGJ5IGxvb2tpbmcgYXQgdGhlIGBpZGVudGlmaWVyYFxuICAvLyB3aGljaCBpcyB0eXBpY2FsbHkgPj0gMCBvbiBhIHJlYWwgZGV2aWNlIHZlcnN1cyAtMSBmcm9tIGEgc2NyZWVuIHJlYWRlci4gSnVzdCB0byBiZSBzYWZlLFxuICAvLyB3ZSBjYW4gYWxzbyBsb29rIGF0IGByYWRpdXNYYCBhbmQgYHJhZGl1c1lgLiBUaGlzIGJlaGF2aW9yIHdhcyBvYnNlcnZlZCBhZ2FpbnN0IGEgV2luZG93cyAxMFxuICAvLyBkZXZpY2Ugd2l0aCBhIHRvdWNoIHNjcmVlbiBydW5uaW5nIE5WREEgdjIwMjAuNCBhbmQgRmlyZWZveCA4NSBvciBDaHJvbWUgODguXG4gIHJldHVybiAoXG4gICAgISF0b3VjaCAmJlxuICAgIHRvdWNoLmlkZW50aWZpZXIgPT09IC0xICYmXG4gICAgKHRvdWNoLnJhZGl1c1ggPT0gbnVsbCB8fCB0b3VjaC5yYWRpdXNYID09PSAxKSAmJlxuICAgICh0b3VjaC5yYWRpdXNZID09IG51bGwgfHwgdG91Y2gucmFkaXVzWSA9PT0gMSlcbiAgKTtcbn1cbiIsIi8vIFRoaXMgaW1wbGVtZW50YXRpb24gaXMgaW5zcGlyZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9ibG9iL21haW4vc3JjL2Nkay9hMTF5L2lucHV0LW1vZGFsaXR5L2lucHV0LW1vZGFsaXR5LWRldGVjdG9yLnRzXG5cbmltcG9ydCB7IGlzU2VydmVyIH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHsgZ2V0RXZlbnRUYXJnZXQgfSBmcm9tICcuLi9ldmVudGluZy5qcyc7XG5cbmltcG9ydCB7XG4gIGlzRmFrZU1vdXNlZG93bkZyb21TY3JlZW5SZWFkZXIsXG4gIGlzRmFrZVRvdWNoc3RhcnRGcm9tU2NyZWVuUmVhZGVyLFxufSBmcm9tICcuL2Zha2UtZXZlbnQtZGV0ZWN0aW9uLmpzJztcblxuZXhwb3J0IHR5cGUgU2JiSW5wdXRNb2RhbGl0eSA9ICd0b3VjaCcgfCAnbW91c2UnIHwgJ2tleWJvYXJkJyB8ICdwcm9ncmFtJyB8IG51bGw7XG5cbi8qKiBPcHRpb25zIHRvIGNvbmZpZ3VyZSB0aGUgYmVoYXZpb3Igb2YgdGhlIFNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci4gKi9cbmludGVyZmFjZSBTYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3JPcHRpb25zIHtcbiAgLyoqIEtleXMgdG8gaWdub3JlIHdoZW4gZGV0ZWN0aW5nIGtleWJvYXJkIGlucHV0IG1vZGFsaXR5LiAqL1xuICBpZ25vcmVLZXlzPzogbnVtYmVyW107XG59XG5cbmNvbnN0IFNISUZUID0gMTY7XG5jb25zdCBDT05UUk9MID0gMTc7XG5jb25zdCBBTFQgPSAxODtcbmNvbnN0IE1FVEEgPSA5MTsgLy8gV0lOX0tFWV9MRUZUXG5jb25zdCBNQUNfTUVUQSA9IDIyNDtcblxuLyoqXG4gKiBEZWZhdWx0IG9wdGlvbnMgZm9yIHRoZSBTYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IuXG4gKlxuICogTW9kaWZpZXIga2V5cyBhcmUgaWdub3JlZCBieSBkZWZhdWx0IChpLmUuIHdoZW4gcHJlc3NlZCB3b24ndCBjYXVzZSB0aGUgc2VydmljZSB0byBkZXRlY3RcbiAqIGtleWJvYXJkIGlucHV0IG1vZGFsaXR5KSBmb3IgdHdvIHJlYXNvbnM6XG4gKlxuICogMS4gTW9kaWZpZXIga2V5cyBhcmUgY29tbW9ubHkgdXNlZCB3aXRoIG1vdXNlIHRvIHBlcmZvcm0gYWN0aW9ucyBzdWNoIGFzICdyaWdodCBjbGljaycgb3IgJ29wZW5cbiAqICAgIGluIG5ldyB0YWInLCBhbmQgYXJlIHRodXMgbGVzcyByZXByZXNlbnRhdGl2ZSBvZiBhY3R1YWwga2V5Ym9hcmQgaW50ZXJhY3Rpb24uXG4gKiAyLiBWb2ljZU92ZXIgdHJpZ2dlcnMgc29tZSBrZXlib2FyZCBldmVudHMgd2hlbiBsaW5lYXJseSBuYXZpZ2F0aW5nIHdpdGggQ29udHJvbCArIE9wdGlvbiAoYnV0XG4gKiAgICBjb25mdXNpbmdseSBub3Qgd2l0aCBDYXBzIExvY2spLiBUaHVzLCB0byBoYXZlIHBhcml0eSB3aXRoIG90aGVyIHNjcmVlbiByZWFkZXJzLCB3ZSBpZ25vcmVcbiAqICAgIHRoZXNlIGtleXMgc28sIGFzIHRvIG5vdCB1cGRhdGUgdGhlIGlucHV0IG1vZGFsaXR5LlxuICpcbiAqIE5vdGUgdGhhdCB3ZSBkbyBub3QgYnkgZGVmYXVsdCBpZ25vcmUgdGhlIHJpZ2h0IE1ldGEga2V5IG9uIFNhZmFyaSBiZWNhdXNlIGl0IGhhcyB0aGUgc2FtZSBrZXlcbiAqIGNvZGUgYXMgdGhlIENvbnRleHRNZW51IGtleSBvbiBvdGhlciBicm93c2Vycy4gV2hlbiB3ZSBzd2l0Y2ggdG8gdXNpbmcgZXZlbnQua2V5LCB3ZSBjYW5cbiAqIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlIHR3by5cbiAqL1xuY29uc3QgaW5wdXRNb2RhbGl0eURldGVjdG9yT3B0aW9uczogU2JiSW5wdXRNb2RhbGl0eURldGVjdG9yT3B0aW9ucyA9IHtcbiAgaWdub3JlS2V5czogW0FMVCwgQ09OVFJPTCwgTUFDX01FVEEsIE1FVEEsIFNISUZUXSxcbn07XG5cbi8qKlxuICogVGhlIGFtb3VudCBvZiB0aW1lIG5lZWRlZCB0byBwYXNzIGFmdGVyIGEgdG91Y2hzdGFydCBldmVudCBpbiBvcmRlciBmb3IgYSBzdWJzZXF1ZW50IG1vdXNlZG93blxuICogZXZlbnQgdG8gYmUgYXR0cmlidXRlZCBhcyBtb3VzZSBhbmQgbm90IHRvdWNoLlxuICpcbiAqIFRocm91Z2ggdHJpYWwgYW5kIGVycm9yIGl0IHdhcyBmb3VuZCB0aGF0IGEgdmFsdWUgb2YgYXJvdW5kIDY1MG1zIHNlZW1zIGFwcHJvcHJpYXRlLlxuICovXG5jb25zdCB0b3VjaEJ1ZmZlck1zID0gNjUwO1xuXG4vKipcbiAqIEV2ZW50IGxpc3RlbmVyIG9wdGlvbnMgdGhhdCBlbmFibGUgY2FwdHVyaW5nIGFuZCBhbHNvIG1hcmsgdGhlIGxpc3RlbmVyIGFzIHBhc3NpdmUgaWYgdGhlIGJyb3dzZXJcbiAqIHN1cHBvcnRzIGl0LlxuICovXG5jb25zdCBtb2RhbGl0eUV2ZW50TGlzdGVuZXJPcHRpb25zID0ge1xuICBwYXNzaXZlOiB0cnVlLFxuICBjYXB0dXJlOiB0cnVlLFxufTtcblxuLyoqXG4gKiBTZXJ2aWNlIHRoYXQgZGV0ZWN0cyB0aGUgdXNlcidzIGlucHV0IG1vZGFsaXR5LlxuICpcbiAqIFRoaXMgc2VydmljZSBkb2VzIG5vdCB1cGRhdGUgdGhlIGlucHV0IG1vZGFsaXR5IHdoZW4gYSB1c2VyIG5hdmlnYXRlcyB3aXRoIGEgc2NyZWVuIHJlYWRlclxuICogKGUuZy4gbGluZWFyIG5hdmlnYXRpb24gd2l0aCBWb2ljZU92ZXIsIG9iamVjdCBuYXZpZ2F0aW9uIC8gYnJvd3NlIG1vZGUgd2l0aCBOVkRBLCB2aXJ0dWFsIFBDXG4gKiBjdXJzb3IgbW9kZSB3aXRoIEpBV1MpLiBUaGlzIGlzIGluIHBhcnQgZHVlIHRvIHRlY2huaWNhbCBsaW1pdGF0aW9ucyAoaS5lLiBrZXlib2FyZCBldmVudHMgZG8gbm90XG4gKiBmaXJlIGFzIGV4cGVjdGVkIGluIHRoZXNlIG1vZGVzKSBidXQgaXMgYWxzbyBhcmd1YWJseSB0aGUgY29ycmVjdCBiZWhhdmlvci4gTmF2aWdhdGluZyB3aXRoIGFcbiAqIHNjcmVlbiByZWFkZXIgaXMgYWtpbiB0byB2aXN1YWxseSBzY2FubmluZyBhIHBhZ2UsIGFuZCBzaG91bGQgbm90IGJlIGludGVycHJldGVkIGFzIGFjdHVhbCB1c2VyXG4gKiBpbnB1dCBpbnRlcmFjdGlvbi5cbiAqXG4gKiBXaGVuIGEgdXNlciBpcyBub3QgbmF2aWdhdGluZyBidXQgKmludGVyYWN0aW5nKiB3aXRoIGEgc2NyZWVuIHJlYWRlciwgdGhpcyBzZXJ2aWNlIGF0dGVtcHRzIHRvXG4gKiB1cGRhdGUgdGhlIGlucHV0IG1vZGFsaXR5IHRvIGtleWJvYXJkLCBidXQgaW4gZ2VuZXJhbCB0aGlzIHNlcnZpY2UncyBiZWhhdmlvciBpcyBsYXJnZWx5XG4gKiB1bmRlZmluZWQuXG4gKi9cbmNsYXNzIFNiYklucHV0TW9kYWxpdHlEZXRlY3RvciB7XG4gIC8qKiBUaGUgbW9zdCByZWNlbnRseSBkZXRlY3RlZCBpbnB1dCBtb2RhbGl0eS4gKi9cbiAgcHVibGljIGdldCBtb3N0UmVjZW50TW9kYWxpdHkoKTogU2JiSW5wdXRNb2RhbGl0eSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9tb3N0UmVjZW50TW9kYWxpdHk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG1vc3QgcmVjZW50IG1vZGFsaXR5IG11c3QgYmUgaW5pdGlhbGlzZWQgd2l0aCB0aGUgdmFsdWUgJ21vdXNlJyB0byBjb3ZlciB0aGUgY2FzZSB3aGVyZSBhbiBhY3Rpb24gaXNcbiAgICogcGVyZm9ybWVkIGJ1dCBubyBtb3VzZSBvciBrZXlib2FyZCBldmVudCBoYXMgeWV0IG9jY3VycmVkIG9uIHRoZSBwYWdlIChlLmcuIGBzYmItcG9wb3ZlcmAgd2l0aCBob3ZlciB0cmlnZ2VyKS5cbiAgICovXG4gIHByaXZhdGUgX21vc3RSZWNlbnRNb2RhbGl0eTogU2JiSW5wdXRNb2RhbGl0eSB8IG51bGwgPSAnbW91c2UnO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9zdCByZWNlbnRseSBkZXRlY3RlZCBpbnB1dCBtb2RhbGl0eSBldmVudCB0YXJnZXQuIElzIG51bGwgaWYgbm8gaW5wdXQgbW9kYWxpdHkgaGFzIGJlZW5cbiAgICogZGV0ZWN0ZWQgb3IgaWYgdGhlIGFzc29jaWF0ZWQgZXZlbnQgdGFyZ2V0IGlzIG51bGwgZm9yIHNvbWUgdW5rbm93biByZWFzb24uXG4gICAqL1xuICBwdWJsaWMgZ2V0IG1vc3RSZWNlbnRUYXJnZXQoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fbW9zdFJlY2VudFRhcmdldDtcbiAgfVxuICBwcml2YXRlIF9tb3N0UmVjZW50VGFyZ2V0OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBPcHRpb25zIGZvciB0aGlzIFNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfb3B0aW9uczogU2JiSW5wdXRNb2RhbGl0eURldGVjdG9yT3B0aW9ucyA9IHtcbiAgICAuLi5pbnB1dE1vZGFsaXR5RGV0ZWN0b3JPcHRpb25zLFxuICB9O1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZXN0YW1wIG9mIHRoZSBsYXN0IHRvdWNoIGlucHV0IG1vZGFsaXR5LiBVc2VkIHRvIGRldGVybWluZSB3aGV0aGVyIG1vdXNlZG93biBldmVudHNcbiAgICogc2hvdWxkIGJlIGF0dHJpYnV0ZWQgdG8gbW91c2Ugb3IgdG91Y2guXG4gICAqL1xuICBwcml2YXRlIF9sYXN0VG91Y2hNcyA9IDA7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl9vbktleWRvd24sIG1vZGFsaXR5RXZlbnRMaXN0ZW5lck9wdGlvbnMpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5fb25Nb3VzZWRvd24sIG1vZGFsaXR5RXZlbnRMaXN0ZW5lck9wdGlvbnMpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMuX29uVG91Y2hzdGFydCwgbW9kYWxpdHlFdmVudExpc3RlbmVyT3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuX21vc3RSZWNlbnRNb2RhbGl0eSA9ICdtb3VzZSc7XG4gICAgdGhpcy5fbW9zdFJlY2VudFRhcmdldCA9IG51bGw7XG4gICAgdGhpcy5fbGFzdFRvdWNoTXMgPSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMga2V5ZG93biBldmVudHMuIE11c3QgYmUgYW4gYXJyb3cgZnVuY3Rpb24gaW4gb3JkZXIgdG8gcHJlc2VydmUgdGhlIGNvbnRleHQgd2hlbiBpdCBnZXRzXG4gICAqIGJvdW5kLlxuICAgKi9cbiAgcHJpdmF0ZSBfb25LZXlkb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgLy8gSWYgdGhpcyBpcyBvbmUgb2YgdGhlIGtleXMgd2Ugc2hvdWxkIGlnbm9yZSwgdGhlbiBpZ25vcmUgaXQgYW5kIGRvbid0IHVwZGF0ZSB0aGUgaW5wdXRcbiAgICAvLyBtb2RhbGl0eSB0byBrZXlib2FyZC5cbiAgICBpZiAodGhpcy5fb3B0aW9ucz8uaWdub3JlS2V5cz8uc29tZSgoa2V5Q29kZSkgPT4ga2V5Q29kZSA9PT0gZXZlbnQua2V5Q29kZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9tb3N0UmVjZW50TW9kYWxpdHkgPSAna2V5Ym9hcmQnO1xuICAgIHRoaXMuX21vc3RSZWNlbnRUYXJnZXQgPSBnZXRFdmVudFRhcmdldChldmVudCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgbW91c2Vkb3duIGV2ZW50cy4gTXVzdCBiZSBhbiBhcnJvdyBmdW5jdGlvbiBpbiBvcmRlciB0byBwcmVzZXJ2ZSB0aGUgY29udGV4dCB3aGVuIGl0XG4gICAqIGdldHMgYm91bmQuXG4gICAqL1xuICBwcml2YXRlIF9vbk1vdXNlZG93biA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgIC8vIFRvdWNoZXMgdHJpZ2dlciBib3RoIHRvdWNoIGFuZCBtb3VzZSBldmVudHMsIHNvIHdlIG5lZWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBtb3VzZSBldmVudHNcbiAgICAvLyB0aGF0IHdlcmUgdHJpZ2dlcmVkIHZpYSBtb3VzZSB2cyB0b3VjaC4gVG8gZG8gc28sIGNoZWNrIGlmIHRoZSBtb3VzZSBldmVudCBvY2N1cnMgY2xvc2VseVxuICAgIC8vIGFmdGVyIHRoZSBwcmV2aW91cyB0b3VjaCBldmVudC5cbiAgICBpZiAoRGF0ZS5ub3coKSAtIHRoaXMuX2xhc3RUb3VjaE1zIDwgdG91Y2hCdWZmZXJNcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEZha2UgbW91c2Vkb3duIGV2ZW50cyBhcmUgZmlyZWQgYnkgc29tZSBzY3JlZW4gcmVhZGVycyB3aGVuIGNvbnRyb2xzIGFyZSBhY3RpdmF0ZWQgYnkgdGhlXG4gICAgLy8gc2NyZWVuIHJlYWRlci4gQXR0cmlidXRlIHRoZW0gdG8ga2V5Ym9hcmQgaW5wdXQgbW9kYWxpdHkuXG4gICAgdGhpcy5fbW9zdFJlY2VudE1vZGFsaXR5ID0gaXNGYWtlTW91c2Vkb3duRnJvbVNjcmVlblJlYWRlcihldmVudCkgPyAna2V5Ym9hcmQnIDogJ21vdXNlJztcbiAgICB0aGlzLl9tb3N0UmVjZW50VGFyZ2V0ID0gZ2V0RXZlbnRUYXJnZXQoZXZlbnQpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRvdWNoc3RhcnQgZXZlbnRzLiBNdXN0IGJlIGFuIGFycm93IGZ1bmN0aW9uIGluIG9yZGVyIHRvIHByZXNlcnZlIHRoZSBjb250ZXh0IHdoZW4gaXRcbiAgICogZ2V0cyBib3VuZC5cbiAgICovXG4gIHByaXZhdGUgX29uVG91Y2hzdGFydCA9IChldmVudDogVG91Y2hFdmVudCk6IHZvaWQgPT4ge1xuICAgIC8vIFNhbWUgc2NlbmFyaW8gYXMgbWVudGlvbmVkIGluIF9vbk1vdXNlZG93biwgYnV0IG9uIHRvdWNoIHNjcmVlbiBkZXZpY2VzLCBmYWtlIHRvdWNoc3RhcnRcbiAgICAvLyBldmVudHMgYXJlIGZpcmVkLiBBZ2FpbiwgYXR0cmlidXRlIHRvIGtleWJvYXJkIGlucHV0IG1vZGFsaXR5LlxuICAgIGlmIChpc0Zha2VUb3VjaHN0YXJ0RnJvbVNjcmVlblJlYWRlcihldmVudCkpIHtcbiAgICAgIHRoaXMuX21vc3RSZWNlbnRNb2RhbGl0eSA9ICdrZXlib2FyZCc7XG4gICAgICB0aGlzLl9tb3N0UmVjZW50VGFyZ2V0ID0gZ2V0RXZlbnRUYXJnZXQoZXZlbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFN0b3JlIHRoZSB0aW1lc3RhbXAgb2YgdGhpcyB0b3VjaCBldmVudCwgYXMgaXQncyB1c2VkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gbW91c2UgZXZlbnRzXG4gICAgLy8gdHJpZ2dlcmVkIHZpYSBtb3VzZSB2cyB0b3VjaC5cbiAgICB0aGlzLl9sYXN0VG91Y2hNcyA9IERhdGUubm93KCk7XG5cbiAgICB0aGlzLl9tb3N0UmVjZW50TW9kYWxpdHkgPSAndG91Y2gnO1xuICAgIHRoaXMuX21vc3RSZWNlbnRUYXJnZXQgPSBnZXRFdmVudFRhcmdldChldmVudCk7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgPSBuZXcgU2JiSW5wdXRNb2RhbGl0eURldGVjdG9yKCk7XG5cbi8vIFNldCB0aGUgaW5wdXQgbW9kYWxpdHkgaW4gb3JkZXIgdG8gYXZvaWQgc2hvd2luZyB0aGUgb3V0bGluZSBpbiBTYWZhcmkuXG5leHBvcnQgZnVuY3Rpb24gc2V0TW9kYWxpdHlPbk5leHRGb2N1cyhlbGVtZW50VG9Gb2N1czogSFRNTEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gIGlmICghZWxlbWVudFRvRm9jdXMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBtb3N0UmVjZW50TW9kYWxpdHkgPSBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5O1xuXG4gIC8vIFNldCBmb2N1cyBvcmlnaW4gdG8gZWxlbWVudCB3aGljaCBzaG91bGQgcmVjZWl2ZSBmb2N1c1xuICBpZiAoIShlbGVtZW50VG9Gb2N1cyAmJiBtb3N0UmVjZW50TW9kYWxpdHkgIT09IG51bGwpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGVsZW1lbnRUb0ZvY3VzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgJ2ZvY3VzJyxcbiAgICAoKSA9PiB7XG4gICAgICBlbGVtZW50VG9Gb2N1cy5zZXRBdHRyaWJ1dGUoJ2RhdGEtZm9jdXMtb3JpZ2luJywgbW9zdFJlY2VudE1vZGFsaXR5KTtcbiAgICAgIGVsZW1lbnRUb0ZvY3VzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICdibHVyJyxcbiAgICAgICAgKCkgPT4gZWxlbWVudFRvRm9jdXMucmVtb3ZlQXR0cmlidXRlKCdkYXRhLWZvY3VzLW9yaWdpbicpLFxuICAgICAgICB7XG4gICAgICAgICAgb25jZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSxcbiAgICB7IG9uY2U6IHRydWUgfSxcbiAgKTtcbn1cbiIsImltcG9ydCB0eXBlIHsgUmVhY3RpdmVDb250cm9sbGVyLCBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHsgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yIH0gZnJvbSAnLi9pbnB1dC1tb2RhbGl0eS1kZXRlY3Rvci5qcyc7XG5cbi8vIERldGVybWluZSB3aGV0aGVyIHRoZSBlbGVtZW50IGhhcyBhIHZpc2libGUgZm9jdXMgd2l0aGluLlxuZXhwb3J0IGNsYXNzIFNiYkZvY3VzVmlzaWJsZVdpdGhpbkNvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZm9jdXNpbkhhbmRsZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5faG9zdC50b2dnbGVBdHRyaWJ1dGUoXG4gICAgICAnZGF0YS1oYXMtdmlzaWJsZS1mb2N1cy13aXRoaW4nLFxuICAgICAgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJyxcbiAgICApO1xuICB9O1xuXG4gIHByaXZhdGUgX2ZvY3Vzb3V0SGFuZGxlciA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLl9ob3N0LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1oYXMtdmlzaWJsZS1mb2N1cy13aXRoaW4nKTtcbiAgfTtcblxuICBwdWJsaWMgaG9zdENvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9ob3N0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCB0aGlzLl9mb2N1c2luSGFuZGxlcik7XG4gICAgdGhpcy5faG9zdC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIHRoaXMuX2ZvY3Vzb3V0SGFuZGxlcik7XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9ob3N0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCB0aGlzLl9mb2N1c2luSGFuZGxlcik7XG4gICAgdGhpcy5faG9zdC5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIHRoaXMuX2ZvY3Vzb3V0SGFuZGxlcik7XG4gIH1cbn1cbiIsImV4cG9ydCBmdW5jdGlvbiBoYXNHZW9tZXRyeShlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAvLyBVc2UgbG9naWMgZnJvbSBqUXVlcnkgdG8gY2hlY2sgZm9yIGFuIGludmlzaWJsZSBlbGVtZW50LlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnkvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9oaWRkZW5WaXNpYmxlU2VsZWN0b3JzLmpzI0wxMlxuICByZXR1cm4gISEoXG4gICAgZWxlbWVudC5vZmZzZXRXaWR0aCB8fFxuICAgIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IHx8XG4gICAgKHR5cGVvZiBlbGVtZW50LmdldENsaWVudFJlY3RzID09PSAnZnVuY3Rpb24nICYmIGVsZW1lbnQuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpXG4gICk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJmYWNlSW50ZXJhY3Rpdml0eUNoZWNrZXIge1xuICBpc1Zpc2libGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgSW50ZXJhY3Rpdml0eUNoZWNrZXIgaW1wbGVtZW50cyBJbnRlcmZhY2VJbnRlcmFjdGl2aXR5Q2hlY2tlciB7XG4gIC8qKlxuICAgKiBHZXRzIHdoZXRoZXIgYW4gZWxlbWVudCBpcyB2aXNpYmxlIGZvciB0aGUgcHVycG9zZXMgb2YgaW50ZXJhY3Rpdml0eS5cbiAgICpcbiAgICogVGhpcyB3aWxsIGNhcHR1cmUgc3RhdGVzIGxpa2UgYGRpc3BsYXk6IG5vbmVgIGFuZCBgdmlzaWJpbGl0eTogaGlkZGVuYCwgYnV0IG5vdCB0aGluZ3MgbGlrZVxuICAgKiBiZWluZyBjbGlwcGVkIGJ5IGFuIGBvdmVyZmxvdzogaGlkZGVuYCBwYXJlbnQgb3IgYmVpbmcgb3V0c2lkZSB0aGUgdmlld3BvcnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZS5cbiAgICovXG4gIHB1YmxpYyBpc1Zpc2libGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaGFzR2VvbWV0cnkoZWxlbWVudCkgJiYgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS52aXNpYmlsaXR5ID09PSAndmlzaWJsZSc7XG4gIH1cbn1cblxuY2xhc3MgSW50ZXJhY3Rpdml0eUNoZWNrZXJNb2NrIGltcGxlbWVudHMgSW50ZXJmYWNlSW50ZXJhY3Rpdml0eUNoZWNrZXIge1xuICBwdWJsaWMgaXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbi8vIEZvciB1bml0IHRlc3RzIHdlIG5lZWQgdG8gcHJldGVuZCB0aGF0IGFuIGVsZW1lbnQgaXMgYWx3YXlzIHZpc2libGUuXG4vLyBUaGlzIGNhbiBiZSBkb25lIGJ5IGNoZWNraW5nIGlmIHZpc2liaWxpdHkgcHJvcGVydHkgaXMgc2V0IHRvIGVtcHR5LlxuZXhwb3J0IGNvbnN0IGludGVyYWN0aXZpdHlDaGVja2VyOiBJbnRlcmZhY2VJbnRlcmFjdGl2aXR5Q2hlY2tlciA9XG4gIHR5cGVvZiBnZXRDb21wdXRlZFN0eWxlID09PSAndW5kZWZpbmVkJyB8fFxuICBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkudmlzaWJpbGl0eSA9PT0gJydcbiAgICA/IG5ldyBJbnRlcmFjdGl2aXR5Q2hlY2tlck1vY2soKVxuICAgIDogbmV3IEludGVyYWN0aXZpdHlDaGVja2VyKCk7XG4iLCJpbXBvcnQgeyBpbnRlcmFjdGl2aXR5Q2hlY2tlciB9IGZyb20gJy4vaW50ZXJhY3Rpdml0eS1jaGVja2VyLmpzJztcblxuZXhwb3J0IGNvbnN0IElTX0ZPQ1VTQUJMRV9RVUVSWSA9IFtcbiAgJ2J1dHRvbicsXG4gICdbaHJlZl0nLFxuICAnaW5wdXQnLFxuICAnc2VsZWN0JyxcbiAgJ3RleHRhcmVhJyxcbiAgJ2RldGFpbHMnLFxuICAnc3VtbWFyeScsXG4gICdbdGFiaW5kZXhdJyxcbl1cbiAgLm1hcCgoc2VsZWN0b3IpID0+IGAke3NlbGVjdG9yfTpub3QoW2Rpc2FibGVkXSw6ZGlzYWJsZWQsW3RhYmluZGV4PVwiLTFcIl0sW2luZXJ0XSlgKVxuICAuam9pbignLCcpO1xuXG4vLyBOb3RlOiB0aGUgdXNlIG9mIHRoaXMgZnVuY3Rpb24gZm9yIG1vcmUgY29tcGxleCBzY2VuYXJpb3MgKHdpdGggbWFueSBuZXN0ZWQgZWxlbWVudHMpIG1heSBiZSBleHBlbnNpdmUuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9jdXNhYmxlRWxlbWVudHMoXG4gIGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdLFxuICBwcm9wZXJ0aWVzPzoge1xuICAgIGZpbHRlcj86IChlbDogSFRNTEVsZW1lbnQpID0+IGJvb2xlYW47XG4gICAgZmluZEZpcnN0Rm9jdXNhYmxlPzogYm9vbGVhbjtcbiAgICBpbmNsdWRlSW52aXNpYmxlRWxlbWVudHM/OiBib29sZWFuO1xuICB9LFxuKTogSFRNTEVsZW1lbnRbXSB7XG4gIGNvbnN0IGZvY3VzYWJsZUVscyA9IG5ldyBTZXQ8SFRNTEVsZW1lbnQ+KCk7XG5cbiAgZnVuY3Rpb24gZ2V0Rm9jdXNhYmxlcyhlbGVtZW50czogSFRNTEVsZW1lbnRbXSwgZmlsdGVyPzogKGVsOiBIVE1MRWxlbWVudCkgPT4gYm9vbGVhbik6IHZvaWQge1xuICAgIGZvciAoY29uc3QgZWwgb2YgZWxlbWVudHMpIHtcbiAgICAgIGlmIChmaWx0ZXIgJiYgIWZpbHRlcihlbCkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChlbC5ub2RlTmFtZSA9PT0gJ1NMT1QnKSB7XG4gICAgICAgIGdldEZvY3VzYWJsZXMoXG4gICAgICAgICAgQXJyYXkuZnJvbSgoZWwgYXMgSFRNTFNsb3RFbGVtZW50KS5hc3NpZ25lZEVsZW1lbnRzKCkpIGFzIEhUTUxFbGVtZW50W10sXG4gICAgICAgICAgZmlsdGVyLFxuICAgICAgICApO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBlbC5tYXRjaGVzKElTX0ZPQ1VTQUJMRV9RVUVSWSkgJiZcbiAgICAgICAgKHByb3BlcnRpZXM/LmluY2x1ZGVJbnZpc2libGVFbGVtZW50cyA/PyBpbnRlcmFjdGl2aXR5Q2hlY2tlci5pc1Zpc2libGUoZWwpKVxuICAgICAgKSB7XG4gICAgICAgIGZvY3VzYWJsZUVscy5hZGQoZWwpO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJvcGVydGllcz8uZmluZEZpcnN0Rm9jdXNhYmxlICYmIGZvY3VzYWJsZUVscy5zaXplID4gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKGVsLmNoaWxkcmVuLmxlbmd0aCB8fCBlbC5zaGFkb3dSb290Py5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBBcnJheS5mcm9tKGVsLmNoaWxkcmVuKS5sZW5ndGhcbiAgICAgICAgICA/IChBcnJheS5mcm9tKGVsLmNoaWxkcmVuKSBhcyBIVE1MRWxlbWVudFtdKVxuICAgICAgICAgIDogKEFycmF5LmZyb20oZWwuc2hhZG93Um9vdCEuY2hpbGRyZW4pIGFzIEhUTUxFbGVtZW50W10pO1xuICAgICAgICBnZXRGb2N1c2FibGVzKGNoaWxkcmVuLCBmaWx0ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBnZXRGb2N1c2FibGVzKGVsZW1lbnRzLCBwcm9wZXJ0aWVzPy5maWx0ZXIpO1xuXG4gIHJldHVybiBbLi4uZm9jdXNhYmxlRWxzXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpcnN0Rm9jdXNhYmxlRWxlbWVudChcbiAgZWxlbWVudHM6IEhUTUxFbGVtZW50W10sXG4gIGZpbHRlcj86IChlbDogSFRNTEVsZW1lbnQpID0+IGJvb2xlYW4sXG4pOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICBjb25zdCBmb2N1c2FibGVFbGVtZW50cyA9IGdldEZvY3VzYWJsZUVsZW1lbnRzKGVsZW1lbnRzLCB7XG4gICAgZmlsdGVyLFxuICAgIGZpbmRGaXJzdEZvY3VzYWJsZTogdHJ1ZSxcbiAgfSk7XG4gIHJldHVybiBmb2N1c2FibGVFbGVtZW50cy5sZW5ndGggPyBmb2N1c2FibGVFbGVtZW50c1swXSA6IG51bGw7XG59XG5cbmV4cG9ydCBjbGFzcyBTYmJGb2N1c0hhbmRsZXIge1xuICBwcml2YXRlIF9jb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gZWxlbWVudCBpbiB3aGljaCB0aGUgZm9jdXMgc2hvdWxkIGJlIHRyYXBwZWQuXG4gICAqIEBwYXJhbSBvcHRpb25zIG9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0gb3B0aW9ucy5maWx0ZXIgZmlsdGVyIGZ1bmN0aW9uIHdoaWNoIGlzIGFwcGxpZWQgZHVyaW5nIHNlYXJjaGluZyBmb3IgZm9jdXNhYmxlIGVsZW1lbnQuIElmIGFuIGVsZW1lbnQgaXMgZmlsdGVyZWQsIGFsc28gY2hpbGQgZWxlbWVudHMgYXJlIGZpbHRlcmVkLlxuICAgKiBAcGFyYW0gb3B0aW9ucy5wb3N0RmlsdGVyIGZpbHRlciBmdW5jdGlvbiB3aGljaCBpcyBhcHBsaWVkIGFmdGVyIGNvbGxlY3RpbmcgZm9jdXNhYmxlIGVsZW1lbnRzLlxuICAgKi9cbiAgcHVibGljIHRyYXAoXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGZpbHRlcj86IChlbDogSFRNTEVsZW1lbnQpID0+IGJvb2xlYW47XG4gICAgICBwb3N0RmlsdGVyPzogKGVsOiBIVE1MRWxlbWVudCkgPT4gYm9vbGVhbjtcbiAgICB9LFxuICApOiB2b2lkIHtcbiAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAna2V5ZG93bicsXG4gICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSAhPT0gJ1RhYicpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEeW5hbWljYWxseSBnZXQgZmlyc3QgYW5kIGxhc3QgZm9jdXNhYmxlIGVsZW1lbnQsIGFzIHRoaXMgbWlnaHQgaGF2ZSBjaGFuZ2VkIHNpbmNlIG9wZW5pbmcgb3ZlcmxheVxuICAgICAgICBjb25zdCBlbGVtZW50Q2hpbGRyZW46IEhUTUxFbGVtZW50W10gPSBBcnJheS5mcm9tKFxuICAgICAgICAgIGVsZW1lbnQuc2hhZG93Um9vdCEuY2hpbGRyZW4gfHwgW10sXG4gICAgICAgICkgYXMgSFRNTEVsZW1lbnRbXTtcbiAgICAgICAgY29uc3QgZm9jdXNhYmxlRWxlbWVudHMgPSBnZXRGb2N1c2FibGVFbGVtZW50cyhlbGVtZW50Q2hpbGRyZW4sIHtcbiAgICAgICAgICBmaWx0ZXI6IG9wdGlvbnM/LmZpbHRlcixcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkRm9jdXNhYmxlRWxlbWVudHMgPSBmb2N1c2FibGVFbGVtZW50cy5maWx0ZXIoXG4gICAgICAgICAgb3B0aW9ucz8ucG9zdEZpbHRlciA/PyAoKCkgPT4gdHJ1ZSksXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCFmaWx0ZXJlZEZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlID0gZmlsdGVyZWRGb2N1c2FibGVFbGVtZW50c1swXSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3QgbGFzdEZvY3VzYWJsZSA9IGZpbHRlcmVkRm9jdXNhYmxlRWxlbWVudHNbXG4gICAgICAgICAgZmlsdGVyZWRGb2N1c2FibGVFbGVtZW50cy5sZW5ndGggLSAxXG4gICAgICAgIF0gYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgICAgY29uc3QgW3Bpdm90LCBuZXh0XSA9IGV2ZW50LnNoaWZ0S2V5XG4gICAgICAgICAgPyBbZmlyc3RGb2N1c2FibGUsIGxhc3RGb2N1c2FibGVdXG4gICAgICAgICAgOiBbbGFzdEZvY3VzYWJsZSwgZmlyc3RGb2N1c2FibGVdO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAoZmlyc3RGb2N1c2FibGUuZ2V0Um9vdE5vZGUoKSBhcyBEb2N1bWVudCB8IFNoYWRvd1Jvb3QpLmFjdGl2ZUVsZW1lbnQgPT09IHBpdm90IHx8XG4gICAgICAgICAgKGxhc3RGb2N1c2FibGUuZ2V0Um9vdE5vZGUoKSBhcyBEb2N1bWVudCB8IFNoYWRvd1Jvb3QpLmFjdGl2ZUVsZW1lbnQgPT09IHBpdm90XG4gICAgICAgICkge1xuICAgICAgICAgIG5leHQuZm9jdXMoKTtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBzaWduYWw6IHRoaXMuX2NvbnRyb2xsZXIuc2lnbmFsIH0sXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNjb25uZWN0KCk6IHZvaWQge1xuICAgIHRoaXMuX2NvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICB0aGlzLl9jb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICB9XG59XG4iXSwibmFtZXMiOlsiZWxlbWVudHMiXSwibWFwcGluZ3MiOiI7O0FBS0EsU0FBUyxxQkFBa0I7QUFDekIsTUFBSSxTQUFTLGdCQUFnQixRQUFRLFdBQVcsR0FBRztBQUNqRCxXQUFPLEVBQUUsU0FBUyxjQUFjLFNBQVMsWUFBVztBQUFBLEVBQUEsT0FDL0M7QUFDTCxXQUFPLEVBQUUsU0FBUyxhQUFhLFNBQVMsYUFBWTtBQUFBLEVBQUE7QUFFeEQ7QUFNTSxTQUFVLGtCQUFrQixPQUFvQjtBQUM3QyxTQUFBLENBQUMsY0FBYyxhQUFhLFdBQVcsV0FBVyxFQUFFLFNBQVMsTUFBTSxHQUFHO0FBQy9FO0FBTU0sU0FBVSwwQkFBMEIsT0FBb0I7QUFDNUQsU0FBTyxNQUFNLFFBQVEsYUFBYSxNQUFNLFFBQVEscUJBQXFCO0FBQ3ZFO0FBTU0sU0FBVSxzQkFBc0IsT0FBb0I7QUFDeEQsU0FBTyxNQUFNLFFBQVEsZUFBZSxNQUFNLFFBQVEscUJBQXFCO0FBQ3pFO0FBTU0sU0FBVSw0QkFBNEIsT0FBb0I7QUFDdkQsU0FBQSxrQkFBa0IsS0FBSyxLQUFLLENBQUMsVUFBVSxZQUFZLFFBQVEsS0FBSyxFQUFFLFNBQVMsTUFBTSxHQUFHO0FBQzdGO0FBUUEsU0FBUyxxQkFBcUIsY0FBc0IsVUFBa0IsUUFBYztBQUMxRSxVQUFBLGVBQWUsU0FBUyxZQUFZO0FBQzlDO0FBRUEsU0FBUyxhQUFhLE1BQVk7QUFDaEMsU0FBTyxPQUFPO0FBQ2hCO0FBRUEsTUFBTSxhQUFhO0FBWUgsU0FBQSxvQkFBb0IsT0FBc0IsU0FBaUIsTUFBWTtBQUNyRixRQUFNLEVBQUUsU0FBUyxZQUFZO0FBRTdCLE1BQUksTUFBTSxRQUFRLFdBQVcsTUFBTSxRQUFRLFdBQVc7QUFDN0MsV0FBQSxVQUFVLGFBQWEsYUFBYSxJQUFJLElBQUkscUJBQXFCLFNBQVMsTUFBTSxFQUFFO0FBQUEsRUFBQSxXQUNo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
@@ -15,6 +15,8 @@ export declare abstract class SbbLinkBaseElement extends SbbActionBaseElement {
15
15
  accessor download: boolean;
16
16
  /** This will be forwarded as aria-label to the inner anchor element. */
17
17
  accessor accessibilityLabel: string;
18
+ /** This will be forwarded as aria-current to the inner anchor element. */
19
+ accessor accessibilityCurrent: string;
18
20
  protected language: SbbLanguageController;
19
21
  constructor();
20
22
  /** @internal */
@@ -1 +1 @@
1
- {"version":3,"file":"link-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/base-elements/link-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,6BAA6B,CAAC;AAErC,0DAA0D;AAC1D,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAErE,uBAAuB;AACvB,8BAIe,kBAAmB,SAAQ,oBAAoB;IAC5D,0CAA0C;IAC1C,SAEgB,IAAI,EAAE,MAAM,CAAM;IAElC,uCAAuC;IACvC,SAEgB,MAAM,EAAE,cAAc,GAAG,MAAM,CAAM;IAErD,wEAAwE;IACxE,SAEgB,GAAG,EAAE,MAAM,CAAM;IAEjC,kEAAkE;IAClE,SAEgB,QAAQ,EAAE,OAAO,CAAS;IAE1C,wEAAwE;IACxE,SAEgB,kBAAkB,EAAE,MAAM,CAAM;IAEhD,SAAS,CAAC,QAAQ,wBAAmC;;IASrD,gBAAgB;IACA,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI;IAI/D,gBAAgB;IACA,IAAI,IAAI,IAAI;IAI5B,gBAAgB;IACA,KAAK,IAAI,IAAI;IAI7B,OAAO,CAAC,qBAAqB,CAE3B;IAEF,mHAAmH;cAChG,MAAM,IAAI,cAAc;IAI3C,SAAS,CAAC,UAAU,CAAC,aAAa,EAAE,cAAc,GAAG,cAAc;CAqBpE"}
1
+ {"version":3,"file":"link-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/base-elements/link-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,6BAA6B,CAAC;AAErC,0DAA0D;AAC1D,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAErE,uBAAuB;AACvB,8BAIe,kBAAmB,SAAQ,oBAAoB;IAC5D,0CAA0C;IAC1C,SAEgB,IAAI,EAAE,MAAM,CAAM;IAElC,uCAAuC;IACvC,SAEgB,MAAM,EAAE,cAAc,GAAG,MAAM,CAAM;IAErD,wEAAwE;IACxE,SAEgB,GAAG,EAAE,MAAM,CAAM;IAEjC,kEAAkE;IAClE,SAEgB,QAAQ,EAAE,OAAO,CAAS;IAE1C,wEAAwE;IACxE,SAEgB,kBAAkB,EAAE,MAAM,CAAM;IAEhD,0EAA0E;IAC1E,SAEgB,oBAAoB,EAAE,MAAM,CAAM;IAElD,SAAS,CAAC,QAAQ,wBAAmC;;IASrD,gBAAgB;IACA,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI;IAI/D,gBAAgB;IACA,IAAI,IAAI,IAAI;IAI5B,gBAAgB;IACA,KAAK,IAAI,IAAI;IAI7B,OAAO,CAAC,qBAAqB,CAE3B;IAEF,mHAAmH;cAChG,MAAM,IAAI,cAAc;IAI3C,SAAS,CAAC,UAAU,CAAC,aAAa,EAAE,cAAc,GAAG,cAAc;CAsBpE"}