@sbb-esta/lyne-elements 3.6.0 → 3.8.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 (491) hide show
  1. package/a11y.css +1 -1
  2. package/alert/alert/alert.component.d.ts +2 -0
  3. package/alert/alert/alert.component.d.ts.map +1 -1
  4. package/alert/alert/alert.component.js +44 -39
  5. package/alert/alert-group/alert-group.component.js +12 -12
  6. package/autocomplete/autocomplete-base-element.d.ts +14 -0
  7. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  8. package/autocomplete/autocomplete-base-element.js +110 -77
  9. package/autocomplete/autocomplete.component.d.ts.map +1 -1
  10. package/autocomplete/autocomplete.component.js +9 -9
  11. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts.map +1 -1
  12. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +5 -5
  13. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +14 -14
  14. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +1 -1
  15. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +9 -9
  16. package/badge.css +2 -2
  17. package/breadcrumb/breadcrumb/breadcrumb.component.js +12 -12
  18. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +15 -15
  19. package/button/common.js +1 -1
  20. package/button/mini-button/mini-button.component.js +7 -7
  21. package/button/mini-button-group/mini-button-group.component.js +21 -21
  22. package/button.js +1 -1
  23. package/calendar/calendar.component.js +36 -36
  24. package/card/card/card.component.js +10 -10
  25. package/card/card-badge/card-badge.component.js +15 -15
  26. package/carousel/carousel/carousel.component.d.ts +33 -0
  27. package/carousel/carousel/carousel.component.d.ts.map +1 -0
  28. package/carousel/carousel/carousel.component.js +82 -0
  29. package/carousel/carousel-item/carousel-item.component.d.ts +29 -0
  30. package/carousel/carousel-item/carousel-item.component.d.ts.map +1 -0
  31. package/carousel/carousel-item/carousel-item.component.js +26 -0
  32. package/carousel/carousel-item.d.ts +5 -0
  33. package/carousel/carousel-item.d.ts.map +1 -0
  34. package/carousel/carousel-item.js +4 -0
  35. package/carousel/carousel-list/carousel-list.component.d.ts +30 -0
  36. package/carousel/carousel-list/carousel-list.component.d.ts.map +1 -0
  37. package/carousel/carousel-list/carousel-list.component.js +81 -0
  38. package/carousel/carousel-list.d.ts +5 -0
  39. package/carousel/carousel-list.d.ts.map +1 -0
  40. package/carousel/carousel-list.js +4 -0
  41. package/carousel/carousel.d.ts +5 -0
  42. package/carousel/carousel.d.ts.map +1 -0
  43. package/carousel/carousel.js +4 -0
  44. package/carousel.d.ts +7 -0
  45. package/carousel.d.ts.map +1 -0
  46. package/carousel.js +8 -0
  47. package/checkbox/common.js +1 -1
  48. package/checkbox-common-gjHkSAmN.js +5 -0
  49. package/checkbox.js +1 -1
  50. package/chip/chip/chip.component.js +23 -23
  51. package/chip-label/chip-label.component.js +22 -22
  52. package/clock/clock.component.js +29 -29
  53. package/container/container/container.component.js +21 -21
  54. package/container/sticky-bar/sticky-bar.component.js +13 -13
  55. package/core/config/config.d.ts +6 -0
  56. package/core/config/config.d.ts.map +1 -1
  57. package/core/controllers/media-matchers-controller.d.ts +29 -0
  58. package/core/controllers/media-matchers-controller.d.ts.map +1 -1
  59. package/core/controllers/media-matchers-controller.js +73 -23
  60. package/core/controllers.js +16 -14
  61. package/core/dom/contains-pierce-shadow-dom.d.ts +3 -0
  62. package/core/dom/contains-pierce-shadow-dom.d.ts.map +1 -0
  63. package/core/dom/contains-pierce-shadow-dom.js +12 -0
  64. package/core/dom/queue-dom-content-loaded.d.ts +5 -0
  65. package/core/dom/queue-dom-content-loaded.d.ts.map +1 -0
  66. package/core/dom/queue-dom-content-loaded.js +7 -0
  67. package/core/dom/set-or-remove-attribute.d.ts +14 -0
  68. package/core/dom/set-or-remove-attribute.d.ts.map +1 -1
  69. package/core/dom/set-or-remove-attribute.js +11 -3
  70. package/core/dom.d.ts +2 -0
  71. package/core/dom.d.ts.map +1 -1
  72. package/core/dom.js +28 -22
  73. package/core/i18n/i18n.d.ts +6 -0
  74. package/core/i18n/i18n.d.ts.map +1 -1
  75. package/core/i18n/i18n.js +196 -160
  76. package/core/i18n.js +94 -88
  77. package/core/images.d.ts +4 -0
  78. package/core/images.d.ts.map +1 -1
  79. package/core/images.js +12 -12
  80. package/core/mixins.js +10 -10
  81. package/core/overlay/overlay-outside-pointer-event-listener.d.ts +26 -0
  82. package/core/overlay/overlay-outside-pointer-event-listener.d.ts.map +1 -0
  83. package/core/overlay/overlay-outside-pointer-event-listener.js +37 -0
  84. package/core/overlay.d.ts +1 -0
  85. package/core/overlay.d.ts.map +1 -1
  86. package/core/overlay.js +14 -11
  87. package/core/styles/core.scss +40 -13
  88. package/core/styles/mixins/a11y.scss +1 -1
  89. package/core/styles/mixins/badge.scss +2 -2
  90. package/core/styles/mixins/buttons.scss +14 -14
  91. package/core/styles/mixins/card.scss +9 -6
  92. package/core/styles/mixins/chip.scss +8 -8
  93. package/core/styles/mixins/image.scss +3 -0
  94. package/core/styles/mixins/link.scss +12 -7
  95. package/core/styles/mixins/lists.scss +6 -4
  96. package/core/styles/mixins/overlay.scss +6 -3
  97. package/core/styles/mixins/panel.scss +3 -3
  98. package/core/styles/mixins/pearl-chain-bullet.scss +9 -5
  99. package/core/styles/mixins/scrollbar.scss +17 -9
  100. package/core/styles/mixins/shadows.scss +32 -64
  101. package/core/styles/mixins/table.scss +13 -10
  102. package/core/styles/mixins/timetable-form.scss +63 -0
  103. package/core/styles/mixins/typo.scss +4 -4
  104. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +49 -1
  105. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +203 -5
  106. package/core/styles/off-brand-theme.scss +3 -0
  107. package/core/styles/safety-theme.scss +3 -0
  108. package/core/styles/standard-theme.scss +3 -13
  109. package/core/styles/theme.scss +18 -0
  110. package/core/styles/timetable-form.scss +27 -0
  111. package/core.css +283 -51
  112. package/custom-elements.json +19396 -15212
  113. package/date-input/date-input.component.js +1 -1
  114. package/datepicker/datepicker/datepicker.component.js +1 -1
  115. package/datepicker/datepicker-next-day/datepicker-next-day.component.js +4 -4
  116. package/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +6 -6
  117. package/datepicker/datepicker-toggle/datepicker-toggle.component.js +7 -7
  118. package/development/alert/alert/alert.component.d.ts +2 -0
  119. package/development/alert/alert/alert.component.d.ts.map +1 -1
  120. package/development/alert/alert/alert.component.js +22 -8
  121. package/development/alert/alert-group/alert-group.component.js +1 -1
  122. package/development/autocomplete/autocomplete-base-element.d.ts +14 -0
  123. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  124. package/development/autocomplete/autocomplete-base-element.js +86 -19
  125. package/development/autocomplete/autocomplete.component.d.ts.map +1 -1
  126. package/development/autocomplete/autocomplete.component.js +4 -1
  127. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts.map +1 -1
  128. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +4 -1
  129. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +15 -14
  130. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +5 -4
  131. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +19 -11
  132. package/development/breadcrumb/breadcrumb/breadcrumb.component.js +4 -1
  133. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +16 -8
  134. package/development/button/common.js +1 -1
  135. package/development/button/mini-button/mini-button.component.js +15 -14
  136. package/development/button/mini-button-group/mini-button-group.component.js +4 -4
  137. package/development/button.js +1 -1
  138. package/development/calendar/calendar.component.js +21 -11
  139. package/development/card/card/card.component.js +11 -6
  140. package/development/card/card-badge/card-badge.component.js +10 -9
  141. package/development/carousel/carousel/carousel.component.d.ts +33 -0
  142. package/development/carousel/carousel/carousel.component.d.ts.map +1 -0
  143. package/development/carousel/carousel/carousel.component.js +163 -0
  144. package/development/carousel/carousel-item/carousel-item.component.d.ts +29 -0
  145. package/development/carousel/carousel-item/carousel-item.component.d.ts.map +1 -0
  146. package/development/carousel/carousel-item/carousel-item.component.js +46 -0
  147. package/development/carousel/carousel-item.d.ts +5 -0
  148. package/development/carousel/carousel-item.d.ts.map +1 -0
  149. package/development/carousel/carousel-item.js +5 -0
  150. package/development/carousel/carousel-list/carousel-list.component.d.ts +30 -0
  151. package/development/carousel/carousel-list/carousel-list.component.d.ts.map +1 -0
  152. package/development/carousel/carousel-list/carousel-list.component.js +151 -0
  153. package/development/carousel/carousel-list.d.ts +5 -0
  154. package/development/carousel/carousel-list.d.ts.map +1 -0
  155. package/development/carousel/carousel-list.js +5 -0
  156. package/development/carousel/carousel.d.ts +5 -0
  157. package/development/carousel/carousel.d.ts.map +1 -0
  158. package/development/carousel/carousel.js +5 -0
  159. package/development/carousel.d.ts +7 -0
  160. package/development/carousel.d.ts.map +1 -0
  161. package/development/carousel.js +9 -0
  162. package/development/checkbox/common.js +1 -1
  163. package/development/{checkbox-common-aMPOsPVA.js → checkbox-common-Dy_ofVhp.js} +4 -3
  164. package/development/checkbox.js +1 -1
  165. package/development/chip/chip/chip.component.js +15 -14
  166. package/development/chip-label/chip-label.component.js +12 -15
  167. package/development/clock/clock.component.js +11 -3
  168. package/development/container/container/container.component.js +6 -6
  169. package/development/container/sticky-bar/sticky-bar.component.js +6 -6
  170. package/development/core/config/config.d.ts +6 -0
  171. package/development/core/config/config.d.ts.map +1 -1
  172. package/development/core/config/config.js +1 -1
  173. package/development/core/controllers/media-matchers-controller.d.ts +29 -0
  174. package/development/core/controllers/media-matchers-controller.d.ts.map +1 -1
  175. package/development/core/controllers/media-matchers-controller.js +74 -1
  176. package/development/core/controllers.js +3 -1
  177. package/development/core/dom/contains-pierce-shadow-dom.d.ts +3 -0
  178. package/development/core/dom/contains-pierce-shadow-dom.d.ts.map +1 -0
  179. package/development/core/dom/contains-pierce-shadow-dom.js +14 -0
  180. package/development/core/dom/queue-dom-content-loaded.d.ts +5 -0
  181. package/development/core/dom/queue-dom-content-loaded.d.ts.map +1 -0
  182. package/development/core/dom/queue-dom-content-loaded.js +12 -0
  183. package/development/core/dom/set-or-remove-attribute.d.ts +14 -0
  184. package/development/core/dom/set-or-remove-attribute.d.ts.map +1 -1
  185. package/development/core/dom/set-or-remove-attribute.js +9 -1
  186. package/development/core/dom.d.ts +2 -0
  187. package/development/core/dom.d.ts.map +1 -1
  188. package/development/core/dom.js +8 -2
  189. package/development/core/i18n/i18n.d.ts +6 -0
  190. package/development/core/i18n/i18n.d.ts.map +1 -1
  191. package/development/core/i18n/i18n.js +43 -1
  192. package/development/core/i18n.js +7 -1
  193. package/development/core/images.d.ts +4 -0
  194. package/development/core/images.d.ts.map +1 -1
  195. package/development/core/images.js +11 -11
  196. package/development/core/mixins.js +7 -6
  197. package/development/core/overlay/overlay-outside-pointer-event-listener.d.ts +26 -0
  198. package/development/core/overlay/overlay-outside-pointer-event-listener.d.ts.map +1 -0
  199. package/development/core/overlay/overlay-outside-pointer-event-listener.js +61 -0
  200. package/development/core/overlay.d.ts +1 -0
  201. package/development/core/overlay.d.ts.map +1 -1
  202. package/development/core/overlay.js +4 -1
  203. package/development/date-input/date-input.component.js +2 -2
  204. package/development/datepicker/datepicker/datepicker.component.js +1 -1
  205. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.js +15 -14
  206. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +15 -14
  207. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.js +15 -14
  208. package/development/dialog/dialog/dialog.component.d.ts +1 -0
  209. package/development/dialog/dialog/dialog.component.d.ts.map +1 -1
  210. package/development/dialog/dialog/dialog.component.js +28 -14
  211. package/development/dialog/dialog-actions/dialog-actions.component.js +1 -1
  212. package/development/dialog/dialog-title/dialog-title.component.js +1 -1
  213. package/development/divider/divider.component.js +2 -2
  214. package/development/expansion-panel/expansion-panel/expansion-panel.component.js +6 -6
  215. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +6 -2
  216. package/development/file-selector/common.js +1 -1
  217. package/development/{file-selector-common-B4I8rwJE.js → file-selector-common-CRNAWFM_.js} +9 -6
  218. package/development/file-selector.js +1 -1
  219. package/development/flip-card/flip-card/flip-card.component.js +8 -3
  220. package/development/footer/footer.component.js +6 -5
  221. package/development/form-error/form-error.component.js +2 -2
  222. package/development/form-field/form-field/form-field.component.d.ts +3 -0
  223. package/development/form-field/form-field/form-field.component.d.ts.map +1 -1
  224. package/development/form-field/form-field/form-field.component.js +39 -23
  225. package/development/form-field/form-field-clear/form-field-clear.component.js +15 -14
  226. package/development/header/common/header-action-common.js +12 -12
  227. package/development/header/header/header.component.js +2 -2
  228. package/development/header/header-environment/header-environment.component.js +1 -1
  229. package/development/{icon-sidebar-button-common-CA_8TnFu.js → icon-sidebar-button-common-BGrKtvyM.js} +3 -2
  230. package/development/journey-header/journey-header.component.js +1 -1
  231. package/development/lead-container/lead-container.component.js +4 -2
  232. package/development/link/common/block-link-common.js +17 -5
  233. package/development/link/common/inline-link-common.js +9 -3
  234. package/development/link-list/link-list/link-list.component.js +8 -8
  235. package/development/link-list/link-list-anchor/link-list-anchor.component.js +11 -9
  236. package/development/loading-indicator/loading-indicator.component.js +1 -1
  237. package/development/loading-indicator-circle/loading-indicator-circle.component.js +2 -2
  238. package/development/logo/logo.component.js +3 -2
  239. package/development/map-container/map-container.component.js +14 -6
  240. package/development/menu/common/menu-action-common.js +4 -3
  241. package/development/menu/menu/menu.component.d.ts +2 -0
  242. package/development/menu/menu/menu.component.d.ts.map +1 -1
  243. package/development/menu/menu/menu.component.js +36 -13
  244. package/development/message/message.component.js +3 -1
  245. package/development/navigation/common/navigation-action-common.js +4 -4
  246. package/development/navigation/navigation/navigation.component.js +21 -19
  247. package/development/navigation/navigation-list/navigation-list.component.js +1 -1
  248. package/development/navigation/navigation-marker/navigation-marker.component.js +1 -1
  249. package/development/navigation/navigation-section/navigation-section.component.js +4 -4
  250. package/development/notification/notification.component.js +38 -18
  251. package/development/option/optgroup/optgroup-base-element.js +3 -2
  252. package/development/option/option/option.component.js +13 -11
  253. package/development/option/option-hint/option-hint.component.js +3 -2
  254. package/development/overlay/overlay.component.d.ts.map +1 -1
  255. package/development/overlay/overlay.component.js +28 -22
  256. package/development/paginator/compact-paginator/compact-paginator.component.js +3 -2
  257. package/development/paginator/paginator/paginator.component.js +19 -18
  258. package/development/popover/popover/popover.component.js +8 -6
  259. package/development/popover/popover-trigger/popover-trigger.component.js +20 -17
  260. package/development/radio-button/common.js +1 -1
  261. package/development/radio-button/radio-button/radio-button.component.js +3 -3
  262. package/development/radio-button/radio-button-panel/radio-button-panel.component.js +3 -3
  263. package/development/{radio-button-common-BRyEhlYf.js → radio-button-common-CgM3kQSW.js} +10 -9
  264. package/development/radio-button.js +1 -1
  265. package/development/sbb-tokens-CVLcOi-S.js +1 -1
  266. package/development/screen-reader-only/screen-reader-only.component.js +1 -1
  267. package/development/select/select.component.js +31 -13
  268. package/development/selection-action-panel/selection-action-panel.component.js +9 -5
  269. package/development/selection-expansion-panel/selection-expansion-panel.component.js +10 -6
  270. package/development/sidebar/common.js +1 -1
  271. package/development/sidebar/icon-sidebar/icon-sidebar.component.js +2 -2
  272. package/development/sidebar/sidebar/sidebar.component.js +14 -6
  273. package/development/sidebar.js +1 -1
  274. package/development/signet/signet.component.js +2 -2
  275. package/development/skiplink-list/skiplink-list.component.d.ts +3 -1
  276. package/development/skiplink-list/skiplink-list.component.d.ts.map +1 -1
  277. package/development/skiplink-list/skiplink-list.component.js +27 -10
  278. package/development/slider/slider.component.js +15 -9
  279. package/development/status/status.component.js +7 -7
  280. package/development/stepper/step/step.component.js +1 -3
  281. package/development/stepper/step-label/step-label.component.js +7 -6
  282. package/development/stepper/stepper/stepper.component.js +5 -5
  283. package/development/tabs/tab-label/tab-label.component.js +7 -14
  284. package/development/tag/tag/tag.component.js +15 -9
  285. package/development/teaser/teaser.component.js +3 -2
  286. package/development/teaser-hero/teaser-hero.component.js +3 -3
  287. package/development/teaser-product/common.js +1 -1
  288. package/development/{teaser-product-common-D6fa6x3w.js → teaser-product-common-DvlBRkE_.js} +14 -6
  289. package/development/teaser-product.js +1 -1
  290. package/development/time-input/time-input.component.js +2 -2
  291. package/development/timetable-form/timetable-form/timetable-form.component.d.ts +17 -0
  292. package/development/timetable-form/timetable-form/timetable-form.component.d.ts.map +1 -0
  293. package/development/timetable-form/timetable-form/timetable-form.component.js +40 -0
  294. package/development/timetable-form/timetable-form-details/timetable-form-details.component.d.ts +16 -0
  295. package/development/timetable-form/timetable-form-details/timetable-form-details.component.d.ts.map +1 -0
  296. package/development/timetable-form/timetable-form-details/timetable-form-details.component.js +57 -0
  297. package/development/timetable-form/timetable-form-details.d.ts +5 -0
  298. package/development/timetable-form/timetable-form-details.d.ts.map +1 -0
  299. package/development/timetable-form/timetable-form-details.js +5 -0
  300. package/development/timetable-form/timetable-form-field/timetable-form-field.component.d.ts +18 -0
  301. package/development/timetable-form/timetable-form-field/timetable-form-field.component.d.ts.map +1 -0
  302. package/development/timetable-form/timetable-form-field/timetable-form-field.component.js +130 -0
  303. package/development/timetable-form/timetable-form-field.d.ts +5 -0
  304. package/development/timetable-form/timetable-form-field.d.ts.map +1 -0
  305. package/development/timetable-form/timetable-form-field.js +5 -0
  306. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.d.ts +23 -0
  307. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.d.ts.map +1 -0
  308. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +80 -0
  309. package/development/timetable-form/timetable-form-swap-button.d.ts +5 -0
  310. package/development/timetable-form/timetable-form-swap-button.d.ts.map +1 -0
  311. package/development/timetable-form/timetable-form-swap-button.js +5 -0
  312. package/development/timetable-form/timetable-form.d.ts +5 -0
  313. package/development/timetable-form/timetable-form.d.ts.map +1 -0
  314. package/development/timetable-form/timetable-form.js +5 -0
  315. package/development/timetable-form.d.ts +8 -0
  316. package/development/timetable-form.d.ts.map +1 -0
  317. package/development/timetable-form.js +11 -0
  318. package/development/timetable-occupancy/timetable-occupancy.component.js +2 -2
  319. package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.d.ts +1 -0
  320. package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.d.ts.map +1 -1
  321. package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.js +4 -3
  322. package/development/title/title-base.js +2 -5
  323. package/development/title/title.component.js +1 -1
  324. package/development/toast/toast.component.d.ts +3 -1
  325. package/development/toast/toast.component.d.ts.map +1 -1
  326. package/development/toast/toast.component.js +31 -15
  327. package/development/toggle/toggle/toggle.component.js +8 -4
  328. package/development/toggle/toggle-option/toggle-option.component.js +5 -3
  329. package/development/toggle-check/toggle-check.component.js +13 -14
  330. package/development/tooltip/tooltip.component.d.ts +89 -0
  331. package/development/tooltip/tooltip.component.d.ts.map +1 -0
  332. package/development/tooltip/tooltip.component.js +466 -0
  333. package/development/tooltip.d.ts +5 -0
  334. package/development/tooltip.d.ts.map +1 -0
  335. package/development/tooltip.js +5 -0
  336. package/development/train/train/train.component.js +1 -1
  337. package/development/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  338. package/development/train/train-formation/train-formation.component.js +16 -4
  339. package/development/train/train-wagon/train-wagon.component.js +4 -13
  340. package/development/{transparent-button-COe-YB_U.js → transparent-button-DdSaBp_-.js} +141 -86
  341. package/development/visual-checkbox/visual-checkbox.component.js +12 -12
  342. package/dialog/dialog/dialog.component.d.ts +1 -0
  343. package/dialog/dialog/dialog.component.d.ts.map +1 -1
  344. package/dialog/dialog/dialog.component.js +37 -36
  345. package/dialog/dialog-actions/dialog-actions.component.js +6 -6
  346. package/dialog/dialog-title/dialog-title.component.js +4 -4
  347. package/divider/divider.component.js +16 -16
  348. package/expansion-panel/expansion-panel/expansion-panel.component.js +1 -1
  349. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +3 -3
  350. package/file-selector/common.js +1 -1
  351. package/file-selector-common-D88J9PEh.js +5 -0
  352. package/file-selector.js +1 -1
  353. package/flip-card/flip-card/flip-card.component.js +14 -14
  354. package/footer/footer.component.js +18 -18
  355. package/form-error/form-error.component.js +4 -4
  356. package/form-field/form-field/form-field.component.d.ts +3 -0
  357. package/form-field/form-field/form-field.component.d.ts.map +1 -1
  358. package/form-field/form-field/form-field.component.js +1 -1
  359. package/form-field/form-field-clear/form-field-clear.component.js +9 -9
  360. package/header/common/header-action-common.js +5 -5
  361. package/header/header/header.component.js +19 -19
  362. package/header/header-environment/header-environment.component.js +1 -1
  363. package/icon-sidebar-button-common-BeRXvifI.js +7 -0
  364. package/index.d.ts +16 -0
  365. package/index.js +16 -0
  366. package/journey-header/journey-header.component.js +1 -1
  367. package/lead-container/lead-container.component.js +5 -5
  368. package/link/common/block-link-common.js +23 -23
  369. package/link/common/inline-link-common.js +7 -7
  370. package/link-list/link-list/link-list.component.js +8 -8
  371. package/link-list/link-list-anchor/link-list-anchor.component.js +11 -11
  372. package/lists.css +5 -3
  373. package/loading-indicator/loading-indicator.component.js +1 -1
  374. package/loading-indicator-circle/loading-indicator-circle.component.js +13 -13
  375. package/logo/logo.component.js +9 -9
  376. package/map-container/map-container.component.js +15 -15
  377. package/menu/common/menu-action-common.js +5 -5
  378. package/menu/menu/menu.component.d.ts +2 -0
  379. package/menu/menu/menu.component.d.ts.map +1 -1
  380. package/menu/menu/menu.component.js +45 -38
  381. package/message/message.component.js +9 -9
  382. package/navigation/common/navigation-action-common.js +6 -6
  383. package/navigation/navigation/navigation.component.js +19 -19
  384. package/navigation/navigation-list/navigation-list.component.js +1 -1
  385. package/navigation/navigation-marker/navigation-marker.component.js +1 -1
  386. package/navigation/navigation-section/navigation-section.component.js +1 -1
  387. package/notification/notification.component.js +8 -8
  388. package/off-brand-theme.css +3017 -0
  389. package/option/optgroup/optgroup-base-element.js +1 -1
  390. package/option/option/option.component.js +3 -3
  391. package/option/option-hint/option-hint.component.js +8 -8
  392. package/overlay/overlay.component.d.ts.map +1 -1
  393. package/overlay/overlay.component.js +47 -48
  394. package/package.json +63 -1
  395. package/paginator/compact-paginator/compact-paginator.component.js +4 -4
  396. package/paginator/paginator/paginator.component.js +10 -10
  397. package/popover/popover/popover.component.js +9 -9
  398. package/popover/popover-trigger/popover-trigger.component.js +5 -5
  399. package/radio-button/common.js +1 -1
  400. package/radio-button/radio-button/radio-button.component.js +13 -13
  401. package/radio-button/radio-button-panel/radio-button-panel.component.js +2 -2
  402. package/radio-button-common-Nm9ULjVb.js +5 -0
  403. package/radio-button.js +1 -1
  404. package/safety-theme.css +3017 -0
  405. package/screen-reader-only/screen-reader-only.component.js +1 -1
  406. package/scrollbar.css +52 -20
  407. package/select/select.component.js +45 -45
  408. package/selection-action-panel/selection-action-panel.component.js +6 -6
  409. package/selection-expansion-panel/selection-expansion-panel.component.js +11 -11
  410. package/sidebar/common.js +1 -1
  411. package/sidebar/icon-sidebar/icon-sidebar.component.js +12 -12
  412. package/sidebar/sidebar/sidebar.component.js +29 -29
  413. package/sidebar.js +1 -1
  414. package/signet/signet.component.js +1 -1
  415. package/skiplink-list/skiplink-list.component.d.ts +3 -1
  416. package/skiplink-list/skiplink-list.component.d.ts.map +1 -1
  417. package/skiplink-list/skiplink-list.component.js +37 -30
  418. package/slider/slider.component.js +16 -16
  419. package/standard-theme.css +436 -86
  420. package/status/status.component.js +13 -13
  421. package/stepper/step/step.component.js +5 -5
  422. package/stepper/step-label/step-label.component.js +1 -1
  423. package/stepper/stepper/stepper.component.js +7 -7
  424. package/table.css +15 -9
  425. package/tabs/tab-label/tab-label.component.js +19 -19
  426. package/tag/tag/tag.component.js +14 -14
  427. package/teaser/teaser.component.js +1 -1
  428. package/teaser-hero/teaser-hero.component.js +12 -12
  429. package/teaser-product/common.js +1 -1
  430. package/teaser-product-common-DIra6aVg.js +5 -0
  431. package/teaser-product.js +1 -1
  432. package/time-input/time-input.component.js +1 -1
  433. package/timetable-form/timetable-form/timetable-form.component.d.ts +17 -0
  434. package/timetable-form/timetable-form/timetable-form.component.d.ts.map +1 -0
  435. package/timetable-form/timetable-form/timetable-form.component.js +19 -0
  436. package/timetable-form/timetable-form-details/timetable-form-details.component.d.ts +16 -0
  437. package/timetable-form/timetable-form-details/timetable-form-details.component.d.ts.map +1 -0
  438. package/timetable-form/timetable-form-details/timetable-form-details.component.js +19 -0
  439. package/timetable-form/timetable-form-details.d.ts +5 -0
  440. package/timetable-form/timetable-form-details.d.ts.map +1 -0
  441. package/timetable-form/timetable-form-details.js +4 -0
  442. package/timetable-form/timetable-form-field/timetable-form-field.component.d.ts +18 -0
  443. package/timetable-form/timetable-form-field/timetable-form-field.component.d.ts.map +1 -0
  444. package/timetable-form/timetable-form-field/timetable-form-field.component.js +32 -0
  445. package/timetable-form/timetable-form-field.d.ts +5 -0
  446. package/timetable-form/timetable-form-field.d.ts.map +1 -0
  447. package/timetable-form/timetable-form-field.js +4 -0
  448. package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.d.ts +23 -0
  449. package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.d.ts.map +1 -0
  450. package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +38 -0
  451. package/timetable-form/timetable-form-swap-button.d.ts +5 -0
  452. package/timetable-form/timetable-form-swap-button.d.ts.map +1 -0
  453. package/timetable-form/timetable-form-swap-button.js +4 -0
  454. package/timetable-form/timetable-form.d.ts +5 -0
  455. package/timetable-form/timetable-form.d.ts.map +1 -0
  456. package/timetable-form/timetable-form.js +4 -0
  457. package/timetable-form.css +73 -0
  458. package/timetable-form.d.ts +8 -0
  459. package/timetable-form.d.ts.map +1 -0
  460. package/timetable-form.js +10 -0
  461. package/timetable-occupancy/timetable-occupancy.component.js +7 -7
  462. package/timetable-occupancy-icon/timetable-occupancy-icon.component.d.ts +1 -0
  463. package/timetable-occupancy-icon/timetable-occupancy-icon.component.d.ts.map +1 -1
  464. package/timetable-occupancy-icon/timetable-occupancy-icon.component.js +23 -23
  465. package/title/title-base.js +1 -1
  466. package/title/title.component.js +1 -1
  467. package/toast/toast.component.d.ts +3 -1
  468. package/toast/toast.component.d.ts.map +1 -1
  469. package/toast/toast.component.js +67 -59
  470. package/toggle/toggle/toggle.component.js +1 -1
  471. package/toggle/toggle-option/toggle-option.component.js +5 -5
  472. package/toggle-check/toggle-check.component.js +16 -16
  473. package/tooltip/tooltip.component.d.ts +89 -0
  474. package/tooltip/tooltip.component.d.ts.map +1 -0
  475. package/tooltip/tooltip.component.js +215 -0
  476. package/tooltip.d.ts +5 -0
  477. package/tooltip.d.ts.map +1 -0
  478. package/tooltip.js +4 -0
  479. package/train/train/train.component.js +1 -1
  480. package/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  481. package/train/train-formation/train-formation.component.js +16 -16
  482. package/train/train-wagon/train-wagon.component.js +1 -1
  483. package/transparent-button-Bg9fU_iZ.js +9 -0
  484. package/typography.css +1 -0
  485. package/visual-checkbox/visual-checkbox.component.js +14 -14
  486. package/checkbox-common-CDzcyq8p.js +0 -5
  487. package/file-selector-common-Cn6U8goV.js +0 -5
  488. package/icon-sidebar-button-common-CM-ueEhH.js +0 -7
  489. package/radio-button-common-DzALx3X7.js +0 -5
  490. package/teaser-product-common-C8oSkIxy.js +0 -5
  491. package/transparent-button-xudJxob_.js +0 -9
@@ -21,8 +21,8 @@ const style = css`*,
21
21
  }
22
22
 
23
23
  :host {
24
- --sbb-selection-expansion-panel-background: var(--sbb-color-white);
25
- --sbb-selection-expansion-panel-border-color: var(--sbb-color-cloud);
24
+ --sbb-selection-expansion-panel-background: var(--sbb-background-color-1);
25
+ --sbb-selection-expansion-panel-border-color: var(--sbb-border-color-4-inverted);
26
26
  --sbb-selection-panel-inner-background: transparent;
27
27
  --sbb-selection-panel-inner-border-width: 0px;
28
28
  --sbb-selection-expansion-panel-animation-duration: var(
@@ -34,6 +34,10 @@ const style = css`*,
34
34
  --sbb-selection-expansion-panel-content-padding-inline: var(--sbb-spacing-responsive-xxs);
35
35
  --sbb-selection-expansion-panel-border-radius: var(--sbb-border-radius-4x);
36
36
  --sbb-focus-outline-color: var(--sbb-focus-outline-color-default);
37
+ --sbb-focus-outline-color: light-dark(
38
+ var(--sbb-focus-outline-color-default),
39
+ var(--sbb-focus-outline-color-dark)
40
+ );
37
41
  display: contents;
38
42
  }
39
43
 
@@ -42,16 +46,16 @@ const style = css`*,
42
46
  }
43
47
 
44
48
  :host([color=milk]) {
45
- --sbb-selection-expansion-panel-background: var(--sbb-color-milk);
49
+ --sbb-selection-expansion-panel-background: var(--sbb-background-color-3);
46
50
  }
47
51
 
48
52
  :host(:where(:is(:state(checked),[state--checked])):not(:where(:is(:state(disabled),[state--disabled])))) {
49
- --sbb-selection-expansion-panel-border-color: var(--sbb-color-charcoal);
53
+ --sbb-selection-expansion-panel-border-color: var(--sbb-border-color-3);
50
54
  --sbb-selection-expansion-panel-border-width: var(--sbb-border-width-2x);
51
55
  }
52
56
 
53
57
  :host([data-slot-names~=content]:where(:is(:state(disabled),[state--disabled]))) {
54
- --sbb-selection-expansion-panel-border-color: var(--sbb-color-cloud);
58
+ --sbb-selection-expansion-panel-border-color: var(--sbb-border-color-4-inverted);
55
59
  }
56
60
 
57
61
  :host([borderless]:not(:where(:is(:state(checked),[state--checked])))) {
@@ -308,4 +312,4 @@ let SbbSelectionExpansionPanelElement = (() => {
308
312
  export {
309
313
  SbbSelectionExpansionPanelElement
310
314
  };
311
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsL3NlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIExpdEVsZW1lbnQsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiQ2hlY2tib3hQYW5lbEVsZW1lbnQgfSBmcm9tICcuLi9jaGVja2JveC5qcyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSwgc2xvdFN0YXRlIH0gZnJvbSAnLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uIH0gZnJvbSAnLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgaTE4bkNvbGxhcHNlZCwgaTE4bkV4cGFuZGVkIH0gZnJvbSAnLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiT3BlbmVkQ2xvc2VkU3RhdGUsIFNiYlN0YXRlQ2hhbmdlIH0gZnJvbSAnLi4vY29yZS9pbnRlcmZhY2VzLmpzJztcbmltcG9ydCB7IFNiYkh5ZHJhdGlvbk1peGluLCBTYmJTZWxlY3Rpb25QYW5lbE1peGluIH0gZnJvbSAnLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJSYWRpb0J1dHRvblBhbmVsRWxlbWVudCB9IGZyb20gJy4uL3JhZGlvLWJ1dHRvbi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi9kaXZpZGVyLmpzJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhbiBleHBhbmRhYmxlIHBhbmVsIGNvbm5lY3RlZCB0byBhIGBzYmItY2hlY2tib3hgIG9yIHRvIGEgYHNiYi1yYWRpby1idXR0b25gLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItY2hlY2tib3hgIG9yIGBzYmItcmFkaW8tYnV0dG9uYCBlbGVtZW50cyB0byB0aGUgYHNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsYC5cbiAqIEBzbG90IGNvbnRlbnQgLSBVc2UgdGhpcyBzbG90IHRvIHByb3ZpZGUgY3VzdG9tIGNvbnRlbnQgZm9yIHRoZSBwYW5lbCAob3B0aW9uYWwpLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbCcpXG5Ac2xvdFN0YXRlKClcbmNsYXNzIFNiYlNlbGVjdGlvbkV4cGFuc2lvblBhbmVsRWxlbWVudCBleHRlbmRzIFNiYlNlbGVjdGlvblBhbmVsTWl4aW4oXG4gIFNiYkh5ZHJhdGlvbk1peGluKExpdEVsZW1lbnQpLFxuKSB7XG4gIC8vIFRPRE86IGZpeCBpbmhlcml0aW5nIGZyb20gU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgcmVxdWlyZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXdjL2N1c3RvbS1lbGVtZW50cy1tYW5pZmVzdC9pc3N1ZXMvMjUzXG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBiZWZvcmVvcGVuOiAnYmVmb3Jlb3BlbicsXG4gICAgb3BlbjogJ29wZW4nLFxuICAgIGJlZm9yZWNsb3NlOiAnYmVmb3JlY2xvc2UnLFxuICAgIGNsb3NlOiAnY2xvc2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBjb250ZW50IHNlY3Rpb24gaXMgYWx3YXlzIHZpc2libGUuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdmb3JjZS1vcGVuJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZm9yY2VPcGVuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFRoZSBzdGF0ZSBvZiB0aGUgc2VsZWN0aW9uIHBhbmVsLiAqL1xuICBAc3RhdGUoKVxuICBwcml2YXRlIHNldCBfc3RhdGUoc3RhdGU6IFNiYk9wZW5lZENsb3NlZFN0YXRlKSB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnLCBzdGF0ZSk7XG4gIH1cbiAgcHJpdmF0ZSBnZXQgX3N0YXRlKCk6IFNiYk9wZW5lZENsb3NlZFN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnKSBhcyBTYmJPcGVuZWRDbG9zZWRTdGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAvKiogV2hldGhlciBpdCBoYXMgYW4gZXhwYW5kYWJsZSBjb250ZW50ICovXG4gIHByaXZhdGUgZ2V0IF9oYXNDb250ZW50KCk6IGJvb2xlYW4ge1xuICAgIC8vIFdlIGNhbm5vdCB1c2UgdGhlIE5hbWVkU2xvdHMgYmVjYXVzZSBpdCdzIHRvbyBzbG93IHRvIGluaXRpYWxpemVcbiAgICByZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oJ1tzbG90PVwiY29udGVudFwiXScpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIHRoaXMuX3N0YXRlIHx8PSAnY2xvc2VkJztcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZm9yY2VPcGVuJykpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVN0YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGluaXRGcm9tSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdEZyb21JbnB1dChldmVudCk7XG4gICAgdGhpcy5fdXBkYXRlU3RhdGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBvbklucHV0U3RhdGVDaGFuZ2UoZXZlbnQ6IEN1c3RvbUV2ZW50PFNiYlN0YXRlQ2hhbmdlPik6IHZvaWQge1xuICAgIHN1cGVyLm9uSW5wdXRTdGF0ZUNoYW5nZShldmVudCk7XG4gICAgdGhpcy5fdXBkYXRlU3RhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVN0YXRlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faGFzQ29udGVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvcmNlT3BlbiB8fCB0aGlzLmNoZWNrZWQpIHtcbiAgICAgIHRoaXMuX29wZW4oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICB9XG4gICAgdGhpcy5fdXBkYXRlRXhwYW5kZWRMYWJlbCh0aGlzLmZvcmNlT3BlbiB8fCB0aGlzLmNoZWNrZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhdGUgIT09ICdjbG9zZWQnICYmIHRoaXMuX3N0YXRlICE9PSAnY2xvc2luZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbnRlbnQgc2VjdGlvbiBzdGFydHMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdiZWZvcmVvcGVuJywgeyBjYW5jZWxhYmxlOiB0cnVlIH0pKTtcblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBvcGVuZWRgIHN0YXRlLlxuICAgIGlmICghdGhpcy5oYXNVcGRhdGVkIHx8IHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhdGUgIT09ICdvcGVuZWQnICYmIHRoaXMuX3N0YXRlICE9PSAnb3BlbmluZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbnRlbnQgc2VjdGlvbiBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdiZWZvcmVjbG9zZScsIHsgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUgPSAnY2xvc2VkJztcbiAgICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbnRlbnQgc2VjdGlvbiBpcyBjbG9zZWQuICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2xvc2UnKSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVPcGVuaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlID0gJ29wZW5lZCc7XG4gICAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb250ZW50IHNlY3Rpb24gaXMgb3BlbmVkLiAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ29wZW4nKSk7XG4gIH1cblxuICBwcml2YXRlIF9vbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4tb3BhY2l0eScgJiYgdGhpcy5fc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLl9zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfdXBkYXRlRXhwYW5kZWRMYWJlbChvcGVuOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5oeWRyYXRpb25Db21wbGV0ZTtcblxuICAgIGNvbnN0IHBhbmVsRWxlbWVudCA9IHRoaXMucXVlcnlTZWxlY3RvcjxTYmJSYWRpb0J1dHRvblBhbmVsRWxlbWVudCB8IFNiYkNoZWNrYm94UGFuZWxFbGVtZW50PihcbiAgICAgICdzYmItcmFkaW8tYnV0dG9uLXBhbmVsLCBzYmItY2hlY2tib3gtcGFuZWwnLFxuICAgICk7XG4gICAgaWYgKCFwYW5lbEVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuX2hhc0NvbnRlbnQpIHtcbiAgICAgIHBhbmVsRWxlbWVudC5leHBhbnNpb25TdGF0ZSA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHBhbmVsRWxlbWVudC5leHBhbnNpb25TdGF0ZSA9IG9wZW5cbiAgICAgID8gJywgJyArIGkxOG5FeHBhbmRlZFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XVxuICAgICAgOiAnLCAnICsgaTE4bkNvbGxhcHNlZFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbF9faW5wdXRcIiBAc3RhdGVjaGFuZ2U9JHt0aGlzLm9uSW5wdXRTdGF0ZUNoYW5nZX0+XG4gICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwic2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWxfX2NvbnRlbnQtLXdyYXBwZXJcIlxuICAgICAgICAgID9pbmVydD0ke3RoaXMuX3N0YXRlICE9PSAnb3BlbmVkJ31cbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWxfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgIDxzYmItZGl2aWRlcj48L3NiYi1kaXZpZGVyPlxuICAgICAgICAgICAgPHNsb3QgbmFtZT1cImNvbnRlbnRcIj48L3Nsb3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwnOiBTYmJTZWxlY3Rpb25FeHBhbnNpb25QYW5lbEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJzdGF0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQStCTSxxQ0FBaUMsTUFBQTs7QUFGdEMsTUFBQSxtQkFBQSxDQUFBLGNBQWMsK0JBQStCLEdBQzdDLFdBQVc7Ozs7QUFDb0MsTUFBQSxjQUFBLHVCQUM5QyxrQkFBa0IsVUFBVSxDQUFDOzs7Ozs7QUFEUyxFQUFBLG1CQUFRLFlBRS9DO0FBQUE7O0FBYUM7QUFBZ0IseUJBQUEsOEJBZlosa0JBQUEs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
315
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsL3NlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIExpdEVsZW1lbnQsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiQ2hlY2tib3hQYW5lbEVsZW1lbnQgfSBmcm9tICcuLi9jaGVja2JveC5qcyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSwgc2xvdFN0YXRlIH0gZnJvbSAnLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uIH0gZnJvbSAnLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgaTE4bkNvbGxhcHNlZCwgaTE4bkV4cGFuZGVkIH0gZnJvbSAnLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiT3BlbmVkQ2xvc2VkU3RhdGUsIFNiYlN0YXRlQ2hhbmdlIH0gZnJvbSAnLi4vY29yZS9pbnRlcmZhY2VzLmpzJztcbmltcG9ydCB7IFNiYkh5ZHJhdGlvbk1peGluLCBTYmJTZWxlY3Rpb25QYW5lbE1peGluIH0gZnJvbSAnLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJSYWRpb0J1dHRvblBhbmVsRWxlbWVudCB9IGZyb20gJy4uL3JhZGlvLWJ1dHRvbi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi9kaXZpZGVyLmpzJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhbiBleHBhbmRhYmxlIHBhbmVsIGNvbm5lY3RlZCB0byBhIGBzYmItY2hlY2tib3hgIG9yIHRvIGEgYHNiYi1yYWRpby1idXR0b25gLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItY2hlY2tib3hgIG9yIGBzYmItcmFkaW8tYnV0dG9uYCBlbGVtZW50cyB0byB0aGUgYHNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsYC5cbiAqIEBzbG90IGNvbnRlbnQgLSBVc2UgdGhpcyBzbG90IHRvIHByb3ZpZGUgY3VzdG9tIGNvbnRlbnQgZm9yIHRoZSBwYW5lbCAob3B0aW9uYWwpLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbCcpXG5Ac2xvdFN0YXRlKClcbmNsYXNzIFNiYlNlbGVjdGlvbkV4cGFuc2lvblBhbmVsRWxlbWVudCBleHRlbmRzIFNiYlNlbGVjdGlvblBhbmVsTWl4aW4oXG4gIFNiYkh5ZHJhdGlvbk1peGluKExpdEVsZW1lbnQpLFxuKSB7XG4gIC8vIFRPRE86IGZpeCBpbmhlcml0aW5nIGZyb20gU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgcmVxdWlyZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXdjL2N1c3RvbS1lbGVtZW50cy1tYW5pZmVzdC9pc3N1ZXMvMjUzXG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBiZWZvcmVvcGVuOiAnYmVmb3Jlb3BlbicsXG4gICAgb3BlbjogJ29wZW4nLFxuICAgIGJlZm9yZWNsb3NlOiAnYmVmb3JlY2xvc2UnLFxuICAgIGNsb3NlOiAnY2xvc2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBjb250ZW50IHNlY3Rpb24gaXMgYWx3YXlzIHZpc2libGUuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdmb3JjZS1vcGVuJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZm9yY2VPcGVuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFRoZSBzdGF0ZSBvZiB0aGUgc2VsZWN0aW9uIHBhbmVsLiAqL1xuICBAc3RhdGUoKVxuICBwcml2YXRlIHNldCBfc3RhdGUoc3RhdGU6IFNiYk9wZW5lZENsb3NlZFN0YXRlKSB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnLCBzdGF0ZSk7XG4gIH1cbiAgcHJpdmF0ZSBnZXQgX3N0YXRlKCk6IFNiYk9wZW5lZENsb3NlZFN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnKSBhcyBTYmJPcGVuZWRDbG9zZWRTdGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAvKiogV2hldGhlciBpdCBoYXMgYW4gZXhwYW5kYWJsZSBjb250ZW50ICovXG4gIHByaXZhdGUgZ2V0IF9oYXNDb250ZW50KCk6IGJvb2xlYW4ge1xuICAgIC8vIFdlIGNhbm5vdCB1c2UgdGhlIE5hbWVkU2xvdHMgYmVjYXVzZSBpdCdzIHRvbyBzbG93IHRvIGluaXRpYWxpemVcbiAgICByZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oJ1tzbG90PVwiY29udGVudFwiXScpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIHRoaXMuX3N0YXRlIHx8PSAnY2xvc2VkJztcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZm9yY2VPcGVuJykpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVN0YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGluaXRGcm9tSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdEZyb21JbnB1dChldmVudCk7XG4gICAgdGhpcy5fdXBkYXRlU3RhdGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBvbklucHV0U3RhdGVDaGFuZ2UoZXZlbnQ6IEN1c3RvbUV2ZW50PFNiYlN0YXRlQ2hhbmdlPik6IHZvaWQge1xuICAgIHN1cGVyLm9uSW5wdXRTdGF0ZUNoYW5nZShldmVudCk7XG4gICAgdGhpcy5fdXBkYXRlU3RhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVN0YXRlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faGFzQ29udGVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvcmNlT3BlbiB8fCB0aGlzLmNoZWNrZWQpIHtcbiAgICAgIHRoaXMuX29wZW4oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICB9XG4gICAgdGhpcy5fdXBkYXRlRXhwYW5kZWRMYWJlbCh0aGlzLmZvcmNlT3BlbiB8fCB0aGlzLmNoZWNrZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhdGUgIT09ICdjbG9zZWQnICYmIHRoaXMuX3N0YXRlICE9PSAnY2xvc2luZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbnRlbnQgc2VjdGlvbiBzdGFydHMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdiZWZvcmVvcGVuJywgeyBjYW5jZWxhYmxlOiB0cnVlIH0pKTtcblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBvcGVuZWRgIHN0YXRlLlxuICAgIGlmICghdGhpcy5oYXNVcGRhdGVkIHx8IHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhdGUgIT09ICdvcGVuZWQnICYmIHRoaXMuX3N0YXRlICE9PSAnb3BlbmluZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbnRlbnQgc2VjdGlvbiBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdiZWZvcmVjbG9zZScsIHsgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUgPSAnY2xvc2VkJztcbiAgICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbnRlbnQgc2VjdGlvbiBpcyBjbG9zZWQuICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2xvc2UnKSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVPcGVuaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlID0gJ29wZW5lZCc7XG4gICAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb250ZW50IHNlY3Rpb24gaXMgb3BlbmVkLiAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ29wZW4nKSk7XG4gIH1cblxuICBwcml2YXRlIF9vbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4tb3BhY2l0eScgJiYgdGhpcy5fc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLl9zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfdXBkYXRlRXhwYW5kZWRMYWJlbChvcGVuOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5oeWRyYXRpb25Db21wbGV0ZTtcblxuICAgIGNvbnN0IHBhbmVsRWxlbWVudCA9IHRoaXMucXVlcnlTZWxlY3RvcjxTYmJSYWRpb0J1dHRvblBhbmVsRWxlbWVudCB8IFNiYkNoZWNrYm94UGFuZWxFbGVtZW50PihcbiAgICAgICdzYmItcmFkaW8tYnV0dG9uLXBhbmVsLCBzYmItY2hlY2tib3gtcGFuZWwnLFxuICAgICk7XG4gICAgaWYgKCFwYW5lbEVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuX2hhc0NvbnRlbnQpIHtcbiAgICAgIHBhbmVsRWxlbWVudC5leHBhbnNpb25TdGF0ZSA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHBhbmVsRWxlbWVudC5leHBhbnNpb25TdGF0ZSA9IG9wZW5cbiAgICAgID8gJywgJyArIGkxOG5FeHBhbmRlZFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XVxuICAgICAgOiAnLCAnICsgaTE4bkNvbGxhcHNlZFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbF9faW5wdXRcIiBAc3RhdGVjaGFuZ2U9JHt0aGlzLm9uSW5wdXRTdGF0ZUNoYW5nZX0+XG4gICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwic2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWxfX2NvbnRlbnQtLXdyYXBwZXJcIlxuICAgICAgICAgID9pbmVydD0ke3RoaXMuX3N0YXRlICE9PSAnb3BlbmVkJ31cbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWxfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgIDxzYmItZGl2aWRlcj48L3NiYi1kaXZpZGVyPlxuICAgICAgICAgICAgPHNsb3QgbmFtZT1cImNvbnRlbnRcIj48L3Nsb3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwnOiBTYmJTZWxlY3Rpb25FeHBhbnNpb25QYW5lbEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJzdGF0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUErQk0scUNBQWlDLE1BQUE7O0FBRnRDLE1BQUEsbUJBQUEsQ0FBQSxjQUFjLCtCQUErQixHQUM3QyxXQUFXOzs7O0FBQ29DLE1BQUEsY0FBQSx1QkFDOUMsa0JBQWtCLFVBQVUsQ0FBQzs7Ozs7O0FBRFMsRUFBQSxtQkFBUSxZQUUvQztBQUFBOztBQWFDO0FBQWdCLHlCQUFBLDhCQWZaLGtC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
@@ -1,4 +1,4 @@
1
- import { i, s, a } from "../icon-sidebar-button-common-CA_8TnFu.js";
1
+ import { i, s, a } from "../icon-sidebar-button-common-BGrKtvyM.js";
2
2
  export {
3
3
  i as iconSidebarButtonCommonStyle,
4
4
  s as sidebarContainerCommonStyle,
@@ -21,7 +21,7 @@ const style = css`*,
21
21
  flex-shrink: 0;
22
22
  width: var(--sbb-size-element-m);
23
23
  overflow-y: auto;
24
- background-color: var(--sbb-color-white);
24
+ background-color: var(--sbb-background-color-1);
25
25
  margin-block-start: var(--sbb-spacing-fixed-3x);
26
26
  padding-block-start: var(--sbb-spacing-fixed-1x);
27
27
  border-start-end-radius: var(--sbb-icon-sidebar-border-radius);
@@ -30,7 +30,7 @@ const style = css`*,
30
30
  }
31
31
 
32
32
  :host([color=milk]) {
33
- background-color: var(--sbb-color-milk);
33
+ background-color: var(--sbb-background-color-3);
34
34
  }`;
35
35
  let SbbIconSidebarElement = (() => {
36
36
  var _color_accessor_storage, _a;
@@ -25,7 +25,7 @@ const style = css`*,
25
25
  display: block;
26
26
  width: 20rem;
27
27
  --sbb-link-text-decoration-line: none;
28
- --sbb-sidebar-background-color: var(--sbb-color-white);
28
+ --sbb-sidebar-background-color: var(--sbb-background-color-1);
29
29
  --sbb-sidebar-title-padding-block: var(--sbb-spacing-fixed-3x);
30
30
  --sbb-sidebar-padding: var(--sbb-spacing-responsive-xs);
31
31
  --sbb-sidebar-scrollbar-placeholder-width: var(--sbb-spacing-fixed-3x);
@@ -51,7 +51,7 @@ const style = css`*,
51
51
  }
52
52
 
53
53
  :host([color=milk]) {
54
- --sbb-sidebar-background-color: var(--sbb-color-milk);
54
+ --sbb-sidebar-background-color: var(--sbb-background-color-3);
55
55
  }
56
56
 
57
57
  :host(:is([mode=over], [data-mode-over-forced]:not([data-mode-over-forced-closing]))) {
@@ -109,15 +109,23 @@ const style = css`*,
109
109
  box-shadow: none;
110
110
  }
111
111
  :host([data-scrolled]) .sbb-sidebar-title-section {
112
- box-shadow: var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-soft-2-color), var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-soft-1-color);
112
+ box-shadow: var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-color-soft-2), var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-color-soft-1);
113
113
  }
114
114
 
115
115
  .sbb-sidebar-content-section {
116
116
  --sbb-scrollbar-thumb-width: 0.125rem;
117
117
  --sbb-scrollbar-thumb-width-hover: 0.25rem;
118
118
  --sbb-scrollbar-width-firefox: thin;
119
- --sbb-scrollbar-color: var(--sbb-color-black-alpha-30);
120
- --sbb-scrollbar-color-hover: var(--sbb-color-black-alpha-60);
119
+ --sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);
120
+ --sbb-scrollbar-color: light-dark(
121
+ color-mix(in srgb, var(--sbb-color-black) 30%, transparent),
122
+ color-mix(in srgb, var(--sbb-color-white) 30%, transparent)
123
+ );
124
+ --sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-black) 60%, transparent);
125
+ --sbb-scrollbar-color-hover: light-dark(
126
+ color-mix(in srgb, var(--sbb-color-black) 60%, transparent),
127
+ color-mix(in srgb, var(--sbb-color-white) 60%, transparent)
128
+ );
121
129
  --sbb-scrollbar-track-color: transparent;
122
130
  --sbb-scrollbar-width: var(--sbb-spacing-fixed-3x);
123
131
  }
@@ -475,4 +483,4 @@ let SbbSidebarElement = (() => {
475
483
  export {
476
484
  SbbSidebarElement
477
485
  };
478
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9zaWRlYmFyL3NpZGViYXIvc2lkZWJhci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaHRtbCwgaXNTZXJ2ZXIsIHR5cGUgUHJvcGVydHlWYWx1ZXMsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgZXZlbnRPcHRpb25zLCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiRm9jdXNUcmFwQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvYTExeS5qcyc7XG5pbXBvcnQgeyBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlLCBoYW5kbGVEaXN0aW5jdENoYW5nZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpc1plcm9BbmltYXRpb25EdXJhdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7IFNiYkFuaW1hdGlvbkNvbXBsZXRlTWl4aW4gfSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYlNpZGViYXJDb250YWluZXJFbGVtZW50IH0gZnJvbSAnLi4vc2lkZWJhci1jb250YWluZXIuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zaWRlYmFyLnNjc3M/bGl0JmlubGluZSc7XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgY29ycmVzcG9uZHMgdG8gYSBzaWRlYmFyIHRoYXQgY2FuIGJlIG9wZW5lZCBvbiB0aGUgc2lkZWJhciBjb250YWluZXIuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBzbG90IGFueSBjb250ZW50IGludG8gdGhlIHNpZGViYXIuXG4gKiBAc2xvdCB0aXRsZSAtIFVzZSB0aGUgdGl0bGUgc2xvdCB0byBhZGQgYW4gPHNiYi10aXRsZT4uXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1zaWRlYmFyJylcbmNsYXNzIFNiYlNpZGViYXJFbGVtZW50IGV4dGVuZHMgU2JiQW5pbWF0aW9uQ29tcGxldGVNaXhpbihTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKiogQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgc2lkZWJhci4gRWl0aGVyIGB3aGl0ZWAgb3IgYG1pbGtgLiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBjb2xvcjogJ3doaXRlJyB8ICdtaWxrJyA9ICd3aGl0ZSc7XG5cbiAgLyoqIE1vZGUgb2YgdGhlIHNpZGViYXI7IG9uZSBvZiAnc2lkZScgb3IgJ292ZXInLiAqL1xuICBAZm9yY2VUeXBlKCh2KSA9PiAodiA9PT0gJ292ZXInID8gJ292ZXInIDogJ3NpZGUnKSlcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgbW9kZTogJ3NpZGUnIHwgJ292ZXInID0gJ3NpZGUnO1xuXG4gIC8qKiBUaGUgc2lkZSB0aGF0IHRoZSBzaWRlYmFyIGlzIGF0dGFjaGVkIHRvLiAqL1xuICBAZm9yY2VUeXBlKCh2KSA9PiAodiA9PT0gJ2VuZCcgPyAnZW5kJyA6ICdzdGFydCcpKVxuICBAaGFuZGxlRGlzdGluY3RDaGFuZ2UoKGluc3RhbmNlLCBfbmV3VmFsdWUsIG9sZFZhbHVlKSA9PiBpbnN0YW5jZS5fdXBkYXRlU2lkZWJhcldpZHRoKG9sZFZhbHVlKSlcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcG9zaXRpb246ICdzdGFydCcgfCAnZW5kJyA9ICdzdGFydCc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHNpZGViYXIgaXMgb3BlbmVkIG9yIGNsb3NlZC5cbiAgICogQ2FuIGJlIHVzZWQgdG8gaW5pdGlhbGx5IHNldCB0aGUgb3BlbmVkIHN0YXRlLCB3aGVyZVxuICAgKiB0aGUgYW5pbWF0aW9uIHdpbGwgYmUgc2tpcHBlZC5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBvcGVuZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgc2lkZWJhciBzaG91bGQgZm9jdXMgdGhlIGZpcnN0IGZvY3VzYWJsZSBlbGVtZW50IGF1dG9tYXRpY2FsbHkgd2hlbiBvcGVuZWQuXG4gICAqIERlZmF1bHRzIHRvIGZhbHNlIGluIHdoZW4gbW9kZSBpcyBzZXQgdG8gYHNpZGVgLCBvdGhlcndpc2UgZGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICogSWYgZXhwbGljaXRseSBlbmFibGVkLCBmb2N1cyB3aWxsIGJlIG1vdmVkIGludG8gdGhlIHNpZGViYXIgaW4gYHNpZGVgIG1vZGUgYXMgd2VsbC5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuLCBhdHRyaWJ1dGU6ICdmb2N1cy1vbi1vcGVuJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZm9jdXNPbk9wZW46IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogUmV0dXJucyB0aGUgU2JiU2lkZWJhckNvbnRhaW5lckVsZW1lbnQgd2hlcmUgdGhpcyBzaWRlYmFyIGlzIGNvbnRhaW5lZC4gKi9cbiAgcHVibGljIGdldCBjb250YWluZXIoKTogU2JiU2lkZWJhckNvbnRhaW5lckVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGFpbmVyO1xuICB9XG4gIHByaXZhdGUgX2NvbnRhaW5lcjogU2JiU2lkZWJhckNvbnRhaW5lckVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9sYXN0Rm9jdXNlZEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2ZvY3VzVHJhcENvbnRyb2xsZXIgPSBuZXcgU2JiRm9jdXNUcmFwQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIgPSBuZXcgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgICAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICAgICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuX3VwZGF0ZVNpZGViYXJXaWR0aCgpLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsIChlKSA9PiB7XG4gICAgICBpZiAoKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkKT8ubG9jYWxOYW1lID09PSAnc2JiLXNpZGViYXItY2xvc2UtYnV0dG9uJykge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIHRoaXMuX2NvbnRhaW5lciA9IHRoaXMuY2xvc2VzdD8uKCdzYmItc2lkZWJhci1jb250YWluZXInKTtcbiAgICB0aGlzLl91cGRhdGVTaWRlYmFyV2lkdGgoKTtcblxuICAgIGlmICh0aGlzLmlzT3BlbiAmJiB0aGlzLl9pc01vZGVPdmVyKCkpIHtcbiAgICAgIHRoaXMuX3Rha2VGb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuY29udGFpbmVyPy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0aGlzLl9idWlsZENzc1dpZHRoVmFyKCkpO1xuICAgIHRoaXMuX2NvbnRhaW5lciA9IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ29wZW5lZCcpKSB7XG4gICAgICBpZiAodGhpcy5vcGVuZWQpIHtcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLm9wZW5lZCkge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbW9kZScpKSB7XG4gICAgICBpZiAodGhpcy5tb2RlID09PSAnb3ZlcicgJiYgdGhpcy5pc09wZW4pIHtcbiAgICAgICAgdGhpcy5fdGFrZUZvY3VzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNlZGVGb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMuX3VwZGF0ZVNpZGViYXJXaWR0aCgpO1xuICB9XG5cbiAgLyoqIFRvZ2dsZXMgdGhlIHNpZGViYXIgdmlzaWJpbGl0eS4gKi9cbiAgcHVibGljIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBPcGVucyB0aGUgc2lkZWJhci4gKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJyB8fCB0aGlzLnN0YXRlID09PSAnb3BlbmVkJyB8fCAhdGhpcy5kaXNwYXRjaEJlZm9yZU9wZW5FdmVudCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGFydEFuaW1hdGlvbigpO1xuXG4gICAgaWYgKCFpc1NlcnZlciAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50Py5sb2NhbE5hbWUgIT09ICdib2R5Jykge1xuICAgICAgdGhpcy5fbGFzdEZvY3VzZWRFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG5cbiAgICB0aGlzLm9wZW5lZCA9IHRydWU7XG5cbiAgICBjb25zdCBpc1plcm9BbmltYXRpb25EdXJhdGlvbiA9IHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkgfHwgIXRoaXMuaXNDb25uZWN0ZWQ7XG4gICAgY29uc3QgaXNEdXJpbmdJbml0aWFsaXphdGlvbiA9ICF0aGlzLmhhc1VwZGF0ZWQ7XG5cbiAgICBpZiAoaXNEdXJpbmdJbml0aWFsaXphdGlvbiB8fCBpc1plcm9BbmltYXRpb25EdXJhdGlvbikge1xuICAgICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtc2tpcC1hbmltYXRpb24nLCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBXZSBoYXZlIHRvIHdhaXQgZm9yIHRoZSBmaXJzdCB1cGRhdGUgdG8gYmUgY29tcGxldGVkXG4gICAgLy8gaW4gb3JkZXIgdG8gaGF2ZSB0aGUgc2l6ZSBvZiB0aGUgc2lkZWJhciByZWFkeSBmb3IgdGhlIGFuaW1hdGlvbi5cbiAgICBpZiAoaXNEdXJpbmdJbml0aWFsaXphdGlvbikge1xuICAgICAgdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpID0+IHRoaXMuX2hhbmRsZU9wZW5pbmcoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKHRoaXMsICctLXNiYi1zaWRlYmFyLWNvbnRhaW5lci1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuXG4gICAgLy8gV2UgaGF2ZSB0byBlbnN1cmUgdGhhdCByZW1vdmluZyB0aGUgYW5pbWF0aW9uIHNraXAgaW5zdHJ1Y3Rpb24gaXMgZG9uZSBhIHRpY2sgbGF0ZXIuXG4gICAgLy8gT3RoZXJ3aXNlLCBpdCdzIHJlbW92ZWQgdG9vIGVhcmx5IGFuZCBpdCBkb2Vzbid0IGhhdmUgYW55IGVmZmVjdC5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLXNraXAtYW5pbWF0aW9uJywgZmFsc2UpKTtcblxuICAgIHRoaXMuX3Rha2VGb2N1cygpO1xuICAgIHRoaXMuc3RvcEFuaW1hdGlvbigpO1xuICAgIHRoaXMuZGlzcGF0Y2hPcGVuRXZlbnQoKTtcbiAgfVxuXG4gIC8qKiBDbG9zZXMgdGhlIHNpZGViYXIuICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnIHx8IHRoaXMuc3RhdGUgPT09ICdjbG9zZWQnIHx8ICF0aGlzLmRpc3BhdGNoQmVmb3JlQ2xvc2VFdmVudCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGFydEFuaW1hdGlvbigpO1xuXG4gICAgY29uc3QgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24gPSB0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpO1xuXG4gICAgaWYgKCF0aGlzLmhhc1VwZGF0ZWQgfHwgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24pIHtcbiAgICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLXNraXAtYW5pbWF0aW9uJywgdHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgfVxuXG4gICAgdGhpcy5vcGVuZWQgPSBmYWxzZTtcblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBvcGVuZWRgIHN0YXRlLlxuICAgIGlmICghdGhpcy5oYXNVcGRhdGVkIHx8IGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgLy8gV2UgaGF2ZSB0byBlbnN1cmUgdGhhdCByZW1vdmluZyB0aGUgYW5pbWF0aW9uIHNraXAgaW5zdHJ1Y3Rpb24gaXMgZG9uZSBhIHRpY2sgbGF0ZXIuXG4gICAgLy8gT3RoZXJ3aXNlLCBpdCdzIHJlbW92ZWQgdG9vIGVhcmx5IGFuZCBpdCBkb2Vzbid0IGhhdmUgYW55IGVmZmVjdC5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLXNraXAtYW5pbWF0aW9uJywgZmFsc2UpKTtcbiAgICB0aGlzLmNlZGVGb2N1cygpO1xuXG4gICAgaWYgKCFpc1NlcnZlciAmJiAodGhpcy5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB8fCB0aGlzLl9pc01vZGVPdmVyKCkpKSB7XG4gICAgICBpZiAodGhpcy5fbGFzdEZvY3VzZWRFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuX2xhc3RGb2N1c2VkRWxlbWVudD8uZm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFdlIGRvbid0IGtub3cgd2hlcmUgdG8gc2V0IHRoZSBmb2N1cywgYnV0IGhhdmUgdG8gcmVtb3ZlIGl0LCBzbyB3ZSBjYWxsIGJsdXJcbiAgICAgICAgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmJsdXIoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fbGFzdEZvY3VzZWRFbGVtZW50ID0gbnVsbDtcblxuICAgIHRoaXMuc3RvcEFuaW1hdGlvbigpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KCk7XG4gIH1cblxuICBwcml2YXRlIF90YWtlRm9jdXMoKTogdm9pZCB7XG4gICAgLy8gV2UgcHJldmVudCBjYWxsaW5nIHRoZSBmb2N1cyBzdHVmZiB3aGVuIG5vdCBuZWVkZWRcbiAgICBpZiAoIXRoaXMuaXNDb25uZWN0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaXNNb2RlT3ZlciA9IHRoaXMuX2lzTW9kZU92ZXIoKTtcblxuICAgIGlmIChpc01vZGVPdmVyIHx8IHRoaXMuZm9jdXNPbk9wZW4pIHtcbiAgICAgIHRoaXMuX2ZvY3VzVHJhcENvbnRyb2xsZXIuZm9jdXNJbml0aWFsRWxlbWVudCgpO1xuICAgIH1cblxuICAgIGlmIChpc01vZGVPdmVyKSB7XG4gICAgICB0aGlzLl9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5jb25uZWN0KCk7XG4gICAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8vIEludGVybmFsIG1ldGhvZCB0aGF0IHdlIHVzZSBleHRlcm5hbGx5LiBgcHJvdGVjdGVkYCBwcmVzZXJ2ZXMgdHlwZSBpbmZvcm1hdGlvbiBmb3IgdHlwZSBzYWZlIGFjY2Vzcy5cbiAgcHJvdGVjdGVkIGNlZGVGb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLl9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTaWRlYmFyV2lkdGgob2xkUG9zaXRpb24/OiB0aGlzWydwb3NpdGlvbiddKTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAob2xkUG9zaXRpb24pIHtcbiAgICAgIGNvbnRhaW5lci5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0aGlzLl9idWlsZENzc1dpZHRoVmFyKG9sZFBvc2l0aW9uKSk7XG4gICAgfVxuXG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLm9mZnNldFdpZHRoO1xuICAgIGlmICghd2lkdGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdWYWx1ZSA9IGAke3dpZHRofXB4YDtcbiAgICBjb25zdCBhY3R1YWxWYWx1ZSA9IGNvbnRhaW5lci5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHRoaXMuX2J1aWxkQ3NzV2lkdGhWYXIoKSk7XG5cbiAgICBpZiAoYWN0dWFsVmFsdWUgPT09IG5ld1ZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29udGFpbmVyLnN0eWxlLnNldFByb3BlcnR5KHRoaXMuX2J1aWxkQ3NzV2lkdGhWYXIoKSwgbmV3VmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYnVpbGRDc3NXaWR0aFZhcihwb3NpdGlvbiA9IHRoaXMucG9zaXRpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBgLS1zYmItc2lkZWJhci1jb250YWluZXJfXyR7cG9zaXRpb259LXdpZHRoYDtcbiAgfVxuXG4gIHByaXZhdGUgX2lzTW9kZU92ZXIoKTogYm9vbGVhbiB7XG4gICAgLy8gSWYgdGhlIG1pbmltdW0gc3BhY2UgYXR0cmlidXRlIGlzIHNldCwgdGhlIHNpZGViYXIgc2hvdWxkIGJlaGF2ZSBsaWtlIGluIG1vZGUgb3Zlci5cbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnb3ZlcicgfHwgdGhpcy5oYXNBdHRyaWJ1dGUoJ2RhdGEtbW9kZS1vdmVyLWZvcmNlZCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25UcmFuc2l0aW9uRW5kKGV2ZW50OiBUcmFuc2l0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBXZSBlbnN1cmUgdGhhdCB3ZSByZWFjdCB0byB0aGUgZmFkZSBpbiB0cmFuc2l0aW9uIG9uIHRoZSBzYmItc2lkZWJhciBkaXZcbiAgICBpZiAoZXZlbnQucHJvcGVydHlOYW1lICE9PSAndHJhbnNsYXRlJyB8fCBldmVudC50YXJnZXQgIT09IGV2ZW50LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBAZXZlbnRPcHRpb25zKHsgcGFzc2l2ZTogdHJ1ZSB9KVxuICBwcml2YXRlIF9kZXRlY3RTY3JvbGxlZFN0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKFxuICAgICAgJ2RhdGEtc2Nyb2xsZWQnLFxuICAgICAgKHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignLnNiYi1zaWRlYmFyLWNvbnRlbnQtc2VjdGlvbicpPy5zY3JvbGxUb3AgPz8gMCkgPiAwLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwic2JiLXNpZGViYXJcIiBAdHJhbnNpdGlvbmVuZD0ke3RoaXMuX29uVHJhbnNpdGlvbkVuZH0+XG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXNpZGViYXItdGl0bGUtc2VjdGlvblwiPjxzbG90IG5hbWU9XCJ0aXRsZS1zZWN0aW9uXCI+PC9zbG90PjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1zaWRlYmFyLWNvbnRlbnQtc2VjdGlvblwiIEBzY3JvbGw9JHsoKSA9PiB0aGlzLl9kZXRlY3RTY3JvbGxlZFN0YXRlKCl9PlxuICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5gO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc2lkZWJhcic6IFNiYlNpZGViYXJFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsiaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQXNCTSxxQkFBaUIsTUFBQTs7MEJBRHRCLGNBQWMsYUFBYSxDQUFDOzs7O29CQUNHLDBCQUEwQix1QkFBdUI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF6RCxFQUFBLG1CQUFRLFlBQWtEO0FBQUEsSUE4Q2hGLGNBQUE7QUFDRSxZQUFBO0FBMUNGO0FBS0E7QUFNQTtBQVNBO0FBU0E7QUE3QmdCLHlCQUFBLDBCQUxaLGtCQUFBLE1BQUEsMEJBQUEsR0FBaUIsa0JBQUEsTUFBQSxxQkFLcUIsT0FBTztBQUtqQyx5QkFBQSx5QkFBQSxrQkFBQSxNQUFBLHdCQUFBLEdBQUEsa0JBQUEsTUFBQSxvQkFBd0IsTUFBTTtBQU05Qix5QkFBQSw2QkFBQSxrQkFBQSxNQUFBLHVCQUFBLEdBQUEsa0JBQUEsTUFBQSx3QkFBNEIsT0FBTztBQVNuQyx5QkFBQSwyQkFBQSxrQkFBQSxNQUFBLDJCQUFBLEdBQUEsa0JBQUEsTUFBQSxzQkFBa0IsS0FBSztBQVN2Qix5QkFBQSxnQ0FBQSxrQkFBQSxNQUFBLHlCQUFBLEdBQUEsa0JBQUEsTUFBQSwyQkFBdUIsS0FBSztBQU1wQyxXQUFBLGNBQVUsa0JBQUEsTUFBQSw4QkFBQSxHQUFzQztBQUVoRCxXQUFBLHNCQUEwQztBQUMxQyxXQUFBLHVCQUF1QixJQUFJLHVCQUF1QixJQUFJO0FBQ3RELFdB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
486
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9zaWRlYmFyL3NpZGViYXIvc2lkZWJhci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaHRtbCwgaXNTZXJ2ZXIsIHR5cGUgUHJvcGVydHlWYWx1ZXMsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgZXZlbnRPcHRpb25zLCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiRm9jdXNUcmFwQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvYTExeS5qcyc7XG5pbXBvcnQgeyBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlLCBoYW5kbGVEaXN0aW5jdENoYW5nZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpc1plcm9BbmltYXRpb25EdXJhdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7IFNiYkFuaW1hdGlvbkNvbXBsZXRlTWl4aW4gfSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYlNpZGViYXJDb250YWluZXJFbGVtZW50IH0gZnJvbSAnLi4vc2lkZWJhci1jb250YWluZXIuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zaWRlYmFyLnNjc3M/bGl0JmlubGluZSc7XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgY29ycmVzcG9uZHMgdG8gYSBzaWRlYmFyIHRoYXQgY2FuIGJlIG9wZW5lZCBvbiB0aGUgc2lkZWJhciBjb250YWluZXIuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBzbG90IGFueSBjb250ZW50IGludG8gdGhlIHNpZGViYXIuXG4gKiBAc2xvdCB0aXRsZSAtIFVzZSB0aGUgdGl0bGUgc2xvdCB0byBhZGQgYW4gPHNiYi10aXRsZT4uXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1zaWRlYmFyJylcbmNsYXNzIFNiYlNpZGViYXJFbGVtZW50IGV4dGVuZHMgU2JiQW5pbWF0aW9uQ29tcGxldGVNaXhpbihTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKiogQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgc2lkZWJhci4gRWl0aGVyIGB3aGl0ZWAgb3IgYG1pbGtgLiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBjb2xvcjogJ3doaXRlJyB8ICdtaWxrJyA9ICd3aGl0ZSc7XG5cbiAgLyoqIE1vZGUgb2YgdGhlIHNpZGViYXI7IG9uZSBvZiAnc2lkZScgb3IgJ292ZXInLiAqL1xuICBAZm9yY2VUeXBlKCh2KSA9PiAodiA9PT0gJ292ZXInID8gJ292ZXInIDogJ3NpZGUnKSlcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgbW9kZTogJ3NpZGUnIHwgJ292ZXInID0gJ3NpZGUnO1xuXG4gIC8qKiBUaGUgc2lkZSB0aGF0IHRoZSBzaWRlYmFyIGlzIGF0dGFjaGVkIHRvLiAqL1xuICBAZm9yY2VUeXBlKCh2KSA9PiAodiA9PT0gJ2VuZCcgPyAnZW5kJyA6ICdzdGFydCcpKVxuICBAaGFuZGxlRGlzdGluY3RDaGFuZ2UoKGluc3RhbmNlLCBfbmV3VmFsdWUsIG9sZFZhbHVlKSA9PiBpbnN0YW5jZS5fdXBkYXRlU2lkZWJhcldpZHRoKG9sZFZhbHVlKSlcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcG9zaXRpb246ICdzdGFydCcgfCAnZW5kJyA9ICdzdGFydCc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHNpZGViYXIgaXMgb3BlbmVkIG9yIGNsb3NlZC5cbiAgICogQ2FuIGJlIHVzZWQgdG8gaW5pdGlhbGx5IHNldCB0aGUgb3BlbmVkIHN0YXRlLCB3aGVyZVxuICAgKiB0aGUgYW5pbWF0aW9uIHdpbGwgYmUgc2tpcHBlZC5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBvcGVuZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgc2lkZWJhciBzaG91bGQgZm9jdXMgdGhlIGZpcnN0IGZvY3VzYWJsZSBlbGVtZW50IGF1dG9tYXRpY2FsbHkgd2hlbiBvcGVuZWQuXG4gICAqIERlZmF1bHRzIHRvIGZhbHNlIGluIHdoZW4gbW9kZSBpcyBzZXQgdG8gYHNpZGVgLCBvdGhlcndpc2UgZGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICogSWYgZXhwbGljaXRseSBlbmFibGVkLCBmb2N1cyB3aWxsIGJlIG1vdmVkIGludG8gdGhlIHNpZGViYXIgaW4gYHNpZGVgIG1vZGUgYXMgd2VsbC5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuLCBhdHRyaWJ1dGU6ICdmb2N1cy1vbi1vcGVuJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZm9jdXNPbk9wZW46IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogUmV0dXJucyB0aGUgU2JiU2lkZWJhckNvbnRhaW5lckVsZW1lbnQgd2hlcmUgdGhpcyBzaWRlYmFyIGlzIGNvbnRhaW5lZC4gKi9cbiAgcHVibGljIGdldCBjb250YWluZXIoKTogU2JiU2lkZWJhckNvbnRhaW5lckVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGFpbmVyO1xuICB9XG4gIHByaXZhdGUgX2NvbnRhaW5lcjogU2JiU2lkZWJhckNvbnRhaW5lckVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9sYXN0Rm9jdXNlZEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2ZvY3VzVHJhcENvbnRyb2xsZXIgPSBuZXcgU2JiRm9jdXNUcmFwQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIgPSBuZXcgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgICAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICAgICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuX3VwZGF0ZVNpZGViYXJXaWR0aCgpLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsIChlKSA9PiB7XG4gICAgICBpZiAoKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkKT8ubG9jYWxOYW1lID09PSAnc2JiLXNpZGViYXItY2xvc2UtYnV0dG9uJykge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIHRoaXMuX2NvbnRhaW5lciA9IHRoaXMuY2xvc2VzdD8uKCdzYmItc2lkZWJhci1jb250YWluZXInKTtcbiAgICB0aGlzLl91cGRhdGVTaWRlYmFyV2lkdGgoKTtcblxuICAgIGlmICh0aGlzLmlzT3BlbiAmJiB0aGlzLl9pc01vZGVPdmVyKCkpIHtcbiAgICAgIHRoaXMuX3Rha2VGb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuY29udGFpbmVyPy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0aGlzLl9idWlsZENzc1dpZHRoVmFyKCkpO1xuICAgIHRoaXMuX2NvbnRhaW5lciA9IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ29wZW5lZCcpKSB7XG4gICAgICBpZiAodGhpcy5vcGVuZWQpIHtcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLm9wZW5lZCkge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbW9kZScpKSB7XG4gICAgICBpZiAodGhpcy5tb2RlID09PSAnb3ZlcicgJiYgdGhpcy5pc09wZW4pIHtcbiAgICAgICAgdGhpcy5fdGFrZUZvY3VzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNlZGVGb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMuX3VwZGF0ZVNpZGViYXJXaWR0aCgpO1xuICB9XG5cbiAgLyoqIFRvZ2dsZXMgdGhlIHNpZGViYXIgdmlzaWJpbGl0eS4gKi9cbiAgcHVibGljIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBPcGVucyB0aGUgc2lkZWJhci4gKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJyB8fCB0aGlzLnN0YXRlID09PSAnb3BlbmVkJyB8fCAhdGhpcy5kaXNwYXRjaEJlZm9yZU9wZW5FdmVudCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGFydEFuaW1hdGlvbigpO1xuXG4gICAgaWYgKCFpc1NlcnZlciAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50Py5sb2NhbE5hbWUgIT09ICdib2R5Jykge1xuICAgICAgdGhpcy5fbGFzdEZvY3VzZWRFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG5cbiAgICB0aGlzLm9wZW5lZCA9IHRydWU7XG5cbiAgICBjb25zdCBpc1plcm9BbmltYXRpb25EdXJhdGlvbiA9IHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkgfHwgIXRoaXMuaXNDb25uZWN0ZWQ7XG4gICAgY29uc3QgaXNEdXJpbmdJbml0aWFsaXphdGlvbiA9ICF0aGlzLmhhc1VwZGF0ZWQ7XG5cbiAgICBpZiAoaXNEdXJpbmdJbml0aWFsaXphdGlvbiB8fCBpc1plcm9BbmltYXRpb25EdXJhdGlvbikge1xuICAgICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtc2tpcC1hbmltYXRpb24nLCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBXZSBoYXZlIHRvIHdhaXQgZm9yIHRoZSBmaXJzdCB1cGRhdGUgdG8gYmUgY29tcGxldGVkXG4gICAgLy8gaW4gb3JkZXIgdG8gaGF2ZSB0aGUgc2l6ZSBvZiB0aGUgc2lkZWJhciByZWFkeSBmb3IgdGhlIGFuaW1hdGlvbi5cbiAgICBpZiAoaXNEdXJpbmdJbml0aWFsaXphdGlvbikge1xuICAgICAgdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpID0+IHRoaXMuX2hhbmRsZU9wZW5pbmcoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKHRoaXMsICctLXNiYi1zaWRlYmFyLWNvbnRhaW5lci1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuXG4gICAgLy8gV2UgaGF2ZSB0byBlbnN1cmUgdGhhdCByZW1vdmluZyB0aGUgYW5pbWF0aW9uIHNraXAgaW5zdHJ1Y3Rpb24gaXMgZG9uZSBhIHRpY2sgbGF0ZXIuXG4gICAgLy8gT3RoZXJ3aXNlLCBpdCdzIHJlbW92ZWQgdG9vIGVhcmx5IGFuZCBpdCBkb2Vzbid0IGhhdmUgYW55IGVmZmVjdC5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLXNraXAtYW5pbWF0aW9uJywgZmFsc2UpKTtcblxuICAgIHRoaXMuX3Rha2VGb2N1cygpO1xuICAgIHRoaXMuc3RvcEFuaW1hdGlvbigpO1xuICAgIHRoaXMuZGlzcGF0Y2hPcGVuRXZlbnQoKTtcbiAgfVxuXG4gIC8qKiBDbG9zZXMgdGhlIHNpZGViYXIuICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnIHx8IHRoaXMuc3RhdGUgPT09ICdjbG9zZWQnIHx8ICF0aGlzLmRpc3BhdGNoQmVmb3JlQ2xvc2VFdmVudCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGFydEFuaW1hdGlvbigpO1xuXG4gICAgY29uc3QgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24gPSB0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpO1xuXG4gICAgaWYgKCF0aGlzLmhhc1VwZGF0ZWQgfHwgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24pIHtcbiAgICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLXNraXAtYW5pbWF0aW9uJywgdHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgfVxuXG4gICAgdGhpcy5vcGVuZWQgPSBmYWxzZTtcblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBvcGVuZWRgIHN0YXRlLlxuICAgIGlmICghdGhpcy5oYXNVcGRhdGVkIHx8IGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgLy8gV2UgaGF2ZSB0byBlbnN1cmUgdGhhdCByZW1vdmluZyB0aGUgYW5pbWF0aW9uIHNraXAgaW5zdHJ1Y3Rpb24gaXMgZG9uZSBhIHRpY2sgbGF0ZXIuXG4gICAgLy8gT3RoZXJ3aXNlLCBpdCdzIHJlbW92ZWQgdG9vIGVhcmx5IGFuZCBpdCBkb2Vzbid0IGhhdmUgYW55IGVmZmVjdC5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLXNraXAtYW5pbWF0aW9uJywgZmFsc2UpKTtcbiAgICB0aGlzLmNlZGVGb2N1cygpO1xuXG4gICAgaWYgKCFpc1NlcnZlciAmJiAodGhpcy5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB8fCB0aGlzLl9pc01vZGVPdmVyKCkpKSB7XG4gICAgICBpZiAodGhpcy5fbGFzdEZvY3VzZWRFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuX2xhc3RGb2N1c2VkRWxlbWVudD8uZm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFdlIGRvbid0IGtub3cgd2hlcmUgdG8gc2V0IHRoZSBmb2N1cywgYnV0IGhhdmUgdG8gcmVtb3ZlIGl0LCBzbyB3ZSBjYWxsIGJsdXJcbiAgICAgICAgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmJsdXIoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fbGFzdEZvY3VzZWRFbGVtZW50ID0gbnVsbDtcblxuICAgIHRoaXMuc3RvcEFuaW1hdGlvbigpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KCk7XG4gIH1cblxuICBwcml2YXRlIF90YWtlRm9jdXMoKTogdm9pZCB7XG4gICAgLy8gV2UgcHJldmVudCBjYWxsaW5nIHRoZSBmb2N1cyBzdHVmZiB3aGVuIG5vdCBuZWVkZWRcbiAgICBpZiAoIXRoaXMuaXNDb25uZWN0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaXNNb2RlT3ZlciA9IHRoaXMuX2lzTW9kZU92ZXIoKTtcblxuICAgIGlmIChpc01vZGVPdmVyIHx8IHRoaXMuZm9jdXNPbk9wZW4pIHtcbiAgICAgIHRoaXMuX2ZvY3VzVHJhcENvbnRyb2xsZXIuZm9jdXNJbml0aWFsRWxlbWVudCgpO1xuICAgIH1cblxuICAgIGlmIChpc01vZGVPdmVyKSB7XG4gICAgICB0aGlzLl9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5jb25uZWN0KCk7XG4gICAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8vIEludGVybmFsIG1ldGhvZCB0aGF0IHdlIHVzZSBleHRlcm5hbGx5LiBgcHJvdGVjdGVkYCBwcmVzZXJ2ZXMgdHlwZSBpbmZvcm1hdGlvbiBmb3IgdHlwZSBzYWZlIGFjY2Vzcy5cbiAgcHJvdGVjdGVkIGNlZGVGb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLl9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTaWRlYmFyV2lkdGgob2xkUG9zaXRpb24/OiB0aGlzWydwb3NpdGlvbiddKTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAob2xkUG9zaXRpb24pIHtcbiAgICAgIGNvbnRhaW5lci5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0aGlzLl9idWlsZENzc1dpZHRoVmFyKG9sZFBvc2l0aW9uKSk7XG4gICAgfVxuXG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLm9mZnNldFdpZHRoO1xuICAgIGlmICghd2lkdGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdWYWx1ZSA9IGAke3dpZHRofXB4YDtcbiAgICBjb25zdCBhY3R1YWxWYWx1ZSA9IGNvbnRhaW5lci5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHRoaXMuX2J1aWxkQ3NzV2lkdGhWYXIoKSk7XG5cbiAgICBpZiAoYWN0dWFsVmFsdWUgPT09IG5ld1ZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29udGFpbmVyLnN0eWxlLnNldFByb3BlcnR5KHRoaXMuX2J1aWxkQ3NzV2lkdGhWYXIoKSwgbmV3VmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYnVpbGRDc3NXaWR0aFZhcihwb3NpdGlvbiA9IHRoaXMucG9zaXRpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBgLS1zYmItc2lkZWJhci1jb250YWluZXJfXyR7cG9zaXRpb259LXdpZHRoYDtcbiAgfVxuXG4gIHByaXZhdGUgX2lzTW9kZU92ZXIoKTogYm9vbGVhbiB7XG4gICAgLy8gSWYgdGhlIG1pbmltdW0gc3BhY2UgYXR0cmlidXRlIGlzIHNldCwgdGhlIHNpZGViYXIgc2hvdWxkIGJlaGF2ZSBsaWtlIGluIG1vZGUgb3Zlci5cbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnb3ZlcicgfHwgdGhpcy5oYXNBdHRyaWJ1dGUoJ2RhdGEtbW9kZS1vdmVyLWZvcmNlZCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25UcmFuc2l0aW9uRW5kKGV2ZW50OiBUcmFuc2l0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBXZSBlbnN1cmUgdGhhdCB3ZSByZWFjdCB0byB0aGUgZmFkZSBpbiB0cmFuc2l0aW9uIG9uIHRoZSBzYmItc2lkZWJhciBkaXZcbiAgICBpZiAoZXZlbnQucHJvcGVydHlOYW1lICE9PSAndHJhbnNsYXRlJyB8fCBldmVudC50YXJnZXQgIT09IGV2ZW50LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBAZXZlbnRPcHRpb25zKHsgcGFzc2l2ZTogdHJ1ZSB9KVxuICBwcml2YXRlIF9kZXRlY3RTY3JvbGxlZFN0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKFxuICAgICAgJ2RhdGEtc2Nyb2xsZWQnLFxuICAgICAgKHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignLnNiYi1zaWRlYmFyLWNvbnRlbnQtc2VjdGlvbicpPy5zY3JvbGxUb3AgPz8gMCkgPiAwLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwic2JiLXNpZGViYXJcIiBAdHJhbnNpdGlvbmVuZD0ke3RoaXMuX29uVHJhbnNpdGlvbkVuZH0+XG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXNpZGViYXItdGl0bGUtc2VjdGlvblwiPjxzbG90IG5hbWU9XCJ0aXRsZS1zZWN0aW9uXCI+PC9zbG90PjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1zaWRlYmFyLWNvbnRlbnQtc2VjdGlvblwiIEBzY3JvbGw9JHsoKSA9PiB0aGlzLl9kZXRlY3RTY3JvbGxlZFN0YXRlKCl9PlxuICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5gO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc2lkZWJhcic6IFNiYlNpZGViYXJFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsiaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBc0JNLHFCQUFpQixNQUFBOzswQkFEdEIsY0FBYyxhQUFhLENBQUM7Ozs7b0JBQ0csMEJBQTBCLHVCQUF1Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXpELEVBQUEsbUJBQVEsWUFBa0Q7QUFBQSxJQThDaEYsY0FBQTtBQUNFLFlBQUE7QUExQ0Y7QUFLQTtBQU1BO0FBU0E7QUFTQTtBQTdCZ0IseUJBQUEsMEJBTFosa0JBQUEsTUFBQSwwQkFBQSxHQUFpQixrQkFBQSxNQUFBLHFCQUtxQixPQUFPO0FBS2pDLHlCQUFBLHlCQUFBLGtCQUFBLE1BQUEsd0JBQUEsR0FBQSxrQkFBQSxNQUFBLG9CQUF3QixNQUFNO0FBTTlCLHlCQUFBLDZCQUFBLGtCQUFBLE1BQUEsdUJBQUEsR0FBQSxrQkFBQSxNQUFBLHdCQUE0QixPQUFPO0FBU25DLHlCQUFBLDJCQUFBLGtCQUFBLE1BQUEsMkJBQUEsR0FBQSxrQkFBQSxNQUFBLHNCQUFrQixLQUFLO0FBU3ZCLHlCQUFBLGdDQUFBLGtCQUFBLE1BQUEseUJBQUEsR0FBQSxrQkFBQSxNQUFBLDJCQUF1QixLQUFLO0FBTXBDLFdBQUEsY0FBVSxrQkFBQSxNQUFBLDhCQUFBLEdBQXNDO0FBRWhELFdBQUEsc0JBQTBDO0FBQzFDLFdBQUEsdUJBQXVCLElBQUksdUJBQXVCLElBQUk7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
@@ -1,4 +1,4 @@
1
- import { i, s, a } from "./icon-sidebar-button-common-CA_8TnFu.js";
1
+ import { i, s, a } from "./icon-sidebar-button-common-BGrKtvyM.js";
2
2
  import { SbbIconSidebarElement } from "./sidebar/icon-sidebar/icon-sidebar.component.js";
3
3
  import { SbbIconSidebarButtonElement } from "./sidebar/icon-sidebar-button/icon-sidebar-button.component.js";
4
4
  import { SbbIconSidebarContainerElement } from "./sidebar/icon-sidebar-container/icon-sidebar-container.component.js";
@@ -18,8 +18,8 @@ const style = css`*,
18
18
  :host {
19
19
  display: block;
20
20
  height: var(--sbb-signet-height);
21
- --sbb-signet-background-color: var(--sbb-color-red);
22
- --sbb-signet-panel-color: var(--sbb-color-red);
21
+ --sbb-signet-background-color: var(--sbb-color-brand);
22
+ --sbb-signet-panel-color: var(--sbb-color-brand);
23
23
  --sbb-signet-icon-color: var(--sbb-color-white);
24
24
  --sbb-signet-aspect-ratio: 2 / 1;
25
25
  --sbb-signet-svg-container-height: auto;
@@ -2,7 +2,7 @@ import { CSSResultGroup, LitElement, PropertyValues, TemplateResult } from 'lit'
2
2
  import { WithListChildren } from '../core/mixins.js';
3
3
  import { SbbBlockLinkButtonElement, SbbBlockLinkElement } from '../link.js';
4
4
  import { SbbTitleLevel } from '../title.js';
5
- declare const SbbSkiplinkListElement_base: import('../core/mixins.js').AbstractConstructor<import('../core/mixins.js').SbbNamedSlotListMixinType<SbbBlockLinkElement | SbbBlockLinkButtonElement>> & typeof LitElement;
5
+ declare const SbbSkiplinkListElement_base: import('../core/mixins.js').AbstractConstructor<import('../core/mixins.js').SbbElementInternalsMixinType> & import('../core/mixins.js').AbstractConstructor<import('../core/mixins.js').SbbNamedSlotListMixinType<SbbBlockLinkElement | SbbBlockLinkButtonElement>> & typeof LitElement & import('../core/mixins.js').SbbElementInternalsConstructor;
6
6
  /**
7
7
  * It displays a list of `sbb-block-link`/`sbb-block-link-button` which are visible only when focused.
8
8
  *
@@ -19,7 +19,9 @@ export declare class SbbSkiplinkListElement extends SbbSkiplinkListElement_base
19
19
  accessor titleContent: string;
20
20
  /** The semantic level of the title, e.g. 2 = h2. */
21
21
  accessor titleLevel: SbbTitleLevel;
22
+ private _darkModeController;
22
23
  protected willUpdate(changedProperties: PropertyValues<WithListChildren<this>>): void;
24
+ private _isLightMode;
23
25
  protected render(): TemplateResult;
24
26
  }
25
27
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"skiplink-list.component.d.ts","sourceRoot":"","sources":["../../../../src/elements/skiplink-list/skiplink-list.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAMhG,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,KAAK,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;;AAIjD;;;;;;;;GAQG;AACH,qBAEM,sBAAuB,SAAQ,2BAGxB;IACX,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,mBAA4B,mBAAmB,WAA+C;IAE9F,uDAAuD;IACvD,SAEgB,YAAY,EAAE,MAAM,CAAM;IAE1C,oDAAoD;IACpD,SAAwD,UAAU,EAAE,aAAa,CAAO;cAErE,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI;cAW3E,MAAM,IAAI,cAAc;CAiB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,mBAAmB,EAAE,sBAAsB,CAAC;KAC7C;CACF"}
1
+ {"version":3,"file":"skiplink-list.component.d.ts","sourceRoot":"","sources":["../../../../src/elements/skiplink-list/skiplink-list.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAOhG,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;;AAIjD;;;;;;;;GAQG;AACH,qBAEM,sBAAuB,SAAQ,2BAIpC;IACC,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,mBAA4B,mBAAmB,WAA+C;IAE9F,uDAAuD;IACvD,SAEgB,YAAY,EAAE,MAAM,CAAM;IAE1C,oDAAoD;IACpD,SAAwD,UAAU,EAAE,aAAa,CAAO;IAExF,OAAO,CAAC,mBAAmB,CAIxB;cAEgB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI;IAW9F,OAAO,CAAC,YAAY;cAID,MAAM,IAAI,cAAc;CAiB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,mBAAmB,EAAE,sBAAsB,CAAC;KAC7C;CACF"}
@@ -5,13 +5,14 @@ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot
5
5
  var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
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
- import { __esDecorate, __runInitializers } from "tslib";
8
+ import { __runInitializers, __esDecorate } from "tslib";
9
9
  import { css, LitElement } from "lit";
10
10
  import { customElement, property } from "lit/decorators.js";
11
11
  import { unsafeStatic, html } from "lit/static-html.js";
12
+ import { SbbDarkModeController } from "../core/controllers.js";
12
13
  import { forceType, omitEmptyConverter } from "../core/decorators.js";
13
14
  import { isLean } from "../core/dom.js";
14
- import { SbbNamedSlotListMixin } from "../core/mixins.js";
15
+ import { SbbElementInternalsMixin, SbbNamedSlotListMixin } from "../core/mixins.js";
15
16
  const style = css`*,
16
17
  ::before,
17
18
  ::after {
@@ -35,7 +36,7 @@ const style = css`*,
35
36
 
36
37
  .sbb-skiplink-list-title {
37
38
  border: 0;
38
- clip: rect(0 0 0 0);
39
+ clip-path: rect(0 0 0 0);
39
40
  height: 1px;
40
41
  margin: -1px;
41
42
  overflow: hidden;
@@ -52,7 +53,7 @@ const style = css`*,
52
53
  font-size: inherit;
53
54
  }
54
55
  .sbb-skiplink-list > :is(li, span) {
55
- box-shadow: var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-2-color), var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-1-color);
56
+ box-shadow: var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-color-hard-2), var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-color-hard-1);
56
57
  display: list-item;
57
58
  height: var(--sbb-skiplink-list-height);
58
59
  overflow: var(--sbb-skiplink-list-overflow);
@@ -64,13 +65,22 @@ const style = css`*,
64
65
  .sbb-skiplink-list > :is(li, span):focus-within {
65
66
  --sbb-skiplink-list-height: auto;
66
67
  --sbb-skiplink-list-overflow: visible;
67
- --sbb-skiplink-list-background: var(--sbb-color-black);
68
- --sbb-skiplink-list-border: var(--sbb-border-width-2x) solid var(--sbb-color-white);
68
+ --sbb-skiplink-list-background: var(--sbb-background-color-1-inverted);
69
+ --sbb-skiplink-list-border: var(--sbb-border-width-2x) solid
70
+ var(--sbb-border-color-1-inverted);
69
71
  }
70
72
 
71
73
  ::slotted([data-sbb-link]) {
72
74
  --sbb-focus-outline-color: transparent;
73
75
  --sbb-link-padding: var(--sbb-spacing-fixed-2x) var(--sbb-spacing-responsive-xxs);
76
+ }
77
+
78
+ ::slotted(*) {
79
+ color-scheme: only light;
80
+ }
81
+
82
+ :host(:is(:state(dark),[state--dark])) ::slotted(*) {
83
+ --sbb-link-color-normal: var(--sbb-color-midnight);
74
84
  }`;
75
85
  let SbbSkiplinkListElement = (() => {
76
86
  var _titleContent_accessor_storage, _titleLevel_accessor_storage, _a;
@@ -78,7 +88,7 @@ let SbbSkiplinkListElement = (() => {
78
88
  let _classDescriptor;
79
89
  let _classExtraInitializers = [];
80
90
  let _classThis;
81
- let _classSuper = SbbNamedSlotListMixin(LitElement);
91
+ let _classSuper = SbbElementInternalsMixin(SbbNamedSlotListMixin(LitElement));
82
92
  let _titleContent_decorators;
83
93
  let _titleContent_initializers = [];
84
94
  let _titleContent_extraInitializers = [];
@@ -93,7 +103,11 @@ let SbbSkiplinkListElement = (() => {
93
103
  this.listChildLocalNames = ["sbb-block-link", "sbb-block-link-button"];
94
104
  __privateSet(this, _titleContent_accessor_storage, __runInitializers(this, _titleContent_initializers, ""));
95
105
  __privateSet(this, _titleLevel_accessor_storage, (__runInitializers(this, _titleContent_extraInitializers), __runInitializers(this, _titleLevel_initializers, "2")));
96
- __runInitializers(this, _titleLevel_extraInitializers);
106
+ this._darkModeController = (__runInitializers(this, _titleLevel_extraInitializers), new SbbDarkModeController(this, () => {
107
+ for (const child of this.listChildren) {
108
+ child.negative = this._isLightMode();
109
+ }
110
+ }));
97
111
  }
98
112
  /** The title text we want to place before the list. */
99
113
  get titleContent() {
@@ -114,10 +128,13 @@ let SbbSkiplinkListElement = (() => {
114
128
  if (changedProperties.has("listChildren")) {
115
129
  for (const child of this.listChildren) {
116
130
  child.size = isLean() ? "xs" : "m";
117
- child.negative = true;
131
+ child.negative = this._isLightMode();
118
132
  }
119
133
  }
120
134
  }
135
+ _isLightMode() {
136
+ return !this._darkModeController.matches();
137
+ }
121
138
  render() {
122
139
  const TITLE_TAG_NAME = `h${this.titleLevel || "2"}`;
123
140
  return html`
@@ -151,4 +168,4 @@ let SbbSkiplinkListElement = (() => {
151
168
  export {
152
169
  SbbSkiplinkListElement
153
170
  };
154
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tpcGxpbmstbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9za2lwbGluay1saXN0L3NraXBsaW5rLWxpc3QuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIExpdEVsZW1lbnQsIHR5cGUgUHJvcGVydHlWYWx1ZXMsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBodG1sLCB1bnNhZmVTdGF0aWMgfSBmcm9tICdsaXQvc3RhdGljLWh0bWwuanMnO1xuXG5pbXBvcnQgeyBmb3JjZVR5cGUsIG9taXRFbXB0eUNvbnZlcnRlciB9IGZyb20gJy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpc0xlYW4gfSBmcm9tICcuLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBTYmJOYW1lZFNsb3RMaXN0TWl4aW4sIHR5cGUgV2l0aExpc3RDaGlsZHJlbiB9IGZyb20gJy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiQmxvY2tMaW5rQnV0dG9uRWxlbWVudCwgU2JiQmxvY2tMaW5rRWxlbWVudCB9IGZyb20gJy4uL2xpbmsuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUaXRsZUxldmVsIH0gZnJvbSAnLi4vdGl0bGUuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9za2lwbGluay1saXN0LnNjc3M/bGl0JmlubGluZSc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSBsaXN0IG9mIGBzYmItYmxvY2stbGlua2AvYHNiYi1ibG9jay1saW5rLWJ1dHRvbmAgd2hpY2ggYXJlIHZpc2libGUgb25seSB3aGVuIGZvY3VzZWQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1ibG9jay1saW5rYC9gc2JiLWJsb2NrLWxpbmstYnV0dG9uYCBlbGVtZW50cyB0byB0aGUgYHNiYi1za2lwbGluay1saXN0YC5cbiAqIEBzbG90IHRpdGxlIC0gVXNlIHRoaXMgdG8gcHJvdmlkZSBhIHRpdGxlIGZvciB0aGUgc2tpcGxpbmstbGlzdCAob3B0aW9uYWwpLlxuICogQGNzc3Byb3AgWy0tc2JiLXNraXBsaW5rLWxpc3Qtei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc2tpcGxpbmstbGlzdCcpXG5jbGFzcyBTYmJTa2lwbGlua0xpc3RFbGVtZW50IGV4dGVuZHMgU2JiTmFtZWRTbG90TGlzdE1peGluPFxuICBTYmJCbG9ja0xpbmtFbGVtZW50IHwgU2JiQmxvY2tMaW5rQnV0dG9uRWxlbWVudCxcbiAgdHlwZW9mIExpdEVsZW1lbnRcbj4oTGl0RWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IGxpc3RDaGlsZExvY2FsTmFtZXMgPSBbJ3NiYi1ibG9jay1saW5rJywgJ3NiYi1ibG9jay1saW5rLWJ1dHRvbiddO1xuXG4gIC8qKiBUaGUgdGl0bGUgdGV4dCB3ZSB3YW50IHRvIHBsYWNlIGJlZm9yZSB0aGUgbGlzdC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3RpdGxlLWNvbnRlbnQnLCByZWZsZWN0OiB0cnVlLCBjb252ZXJ0ZXI6IG9taXRFbXB0eUNvbnZlcnRlciB9KVxuICBwdWJsaWMgYWNjZXNzb3IgdGl0bGVDb250ZW50OiBzdHJpbmcgPSAnJztcblxuICAvKiogVGhlIHNlbWFudGljIGxldmVsIG9mIHRoZSB0aXRsZSwgZS5nLiAyID0gaDIuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3RpdGxlLWxldmVsJyB9KSBwdWJsaWMgYWNjZXNzb3IgdGl0bGVMZXZlbDogU2JiVGl0bGVMZXZlbCA9ICcyJztcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8V2l0aExpc3RDaGlsZHJlbjx0aGlzPj4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xpc3RDaGlsZHJlbicpKSB7XG4gICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMubGlzdENoaWxkcmVuKSB7XG4gICAgICAgIGNoaWxkLnNpemUgPSBpc0xlYW4oKSA/ICd4cycgOiAnbSc7XG4gICAgICAgIGNoaWxkLm5lZ2F0aXZlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBUSVRMRV9UQUdfTkFNRSA9IGBoJHt0aGlzLnRpdGxlTGV2ZWwgfHwgJzInfWA7XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBsaXQvYmluZGluZy1wb3NpdGlvbnMgKi9cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2tpcGxpbmstbGlzdF9fd3JhcHBlclwiPlxuICAgICAgICA8JHt1bnNhZmVTdGF0aWMoVElUTEVfVEFHX05BTUUpfVxuICAgICAgICAgIGNsYXNzPVwic2JiLXNraXBsaW5rLWxpc3QtdGl0bGVcIlxuICAgICAgICAgIGlkPVwic2JiLXNraXBsaW5rLWxpc3QtdGl0bGUtaWRcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cInRpdGxlXCI+JHt0aGlzLnRpdGxlQ29udGVudH08L3Nsb3Q+XG4gICAgICAgIDwvJHt1bnNhZmVTdGF0aWMoVElUTEVfVEFHX05BTUUpfT5cbiAgICAgICAgJHt0aGlzLnJlbmRlckxpc3QoeyBhcmlhTGFiZWxsZWRieTogJ3NiYi1za2lwbGluay1saXN0LXRpdGxlLWlkJyB9KX1cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gICAgLyogZXNsaW50LWVuYWJsZSBsaXQvYmluZGluZy1wb3NpdGlvbnMgKi9cbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNraXBsaW5rLWxpc3QnOiBTYmJTa2lwbGlua0xpc3RFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUF1Qk0sMEJBQXNCLE1BQUE7OzBCQUQzQixjQUFjLG1CQUFtQixDQUFDOzs7O29CQUNFLHNCQUduQyxVQUFVOzs7Ozs7O0FBSGlCLEVBQUEsbUJBQVEsWUFHeEI7QUFBQTs7QUFPWDtBQUd3QztBQVJaLFdBQUEsc0JBQXNCLENBQUMsa0JBQWtCLHVCQUF1QjtBQUs1RSx5QkFBQSxnQ0FBQSxrQkFBQSxNQUFBLDRCQUF1QixFQUFFO0FBR2UseUJBQUEsK0JBQUEsa0JBQUEsTUFBQSwrQkFBQSxHQUFBLGtCQUFBLE1BQUEsMEJBQTRCLEdBQUc7Ozs7SUFIdkYsSUFBZ0IsZUFBWTtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBNUIsSUFBZ0IsYUFBWSxPQUFBO0FBQUEseUJBQUEsZ0NBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUdZLElBQWdCLGFBQVU7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQTFCLElBQWdCLFdBQVUsT0FBQTtBQUFBLHlCQUFBLDhCQUFBO0FBQUEsSUFBQTtBQUFBLElBRS9DLFdBQVcsbUJBQXlEO0FBQ3JGLFlBQU0sV0FBVyxpQkFBaUI7QUFFbEMsVUFBSSxrQkFBa0IsSUFBSSxjQUFjLEdBQUc7QUFDekMsbUJBQVcsU0FBUyxLQUFLLGNBQWM7QUFDckMsZ0JBQU0sT0FBTyxPQUFBLElBQVcsT0FBTztBQUMvQixnQkFBTSxXQUFXO0FBQUEsUUFDbkI7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLElBRW1CLFNBQU07QUFDdkIsWUFBTSxpQkFBaUIsSUFBSSxLQUFLLGNBQWMsR0FBRztBQUdqRCxhQUFPO0FBQUE7QUFBQSxXQUVBLGFBQWEsY0FBYyxDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUEsK0JBSVIsS0FBSyxZQUFZO0FBQUEsWUFDcEMsYUFBYSxjQUFjLENBQUM7QUFBQSxVQUM5QixLQUFLLFdBQVcsRUFBRSxnQkFBZ0IsNkJBQUEsQ0FBOEIsQ0FBQztBQUFBO0FBQUE7QUFBQSxJQUl6RTtBQUFBLEtBaENBLGdEQUd3Qzs7QUFMdkMsK0JBQUEsQ0FBQSxhQUNBLFNBQVMsRUFBRSxXQUFXLGlCQUFpQixTQUFTLE1BQU0sV0FBVyxtQkFBQSxDQUFvQixDQUFDO0FBSXRGLDZCQUFBLENBQUEsU0FBUyxFQUFFLFdBQVcsY0FBQSxDQUFlLENBQUM7QUFIdkMsaUJBQUEsSUFBQSxNQUFBLDBCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsZ0JBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsa0JBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFnQixjQUFZLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFaLGVBQVk7QUFBQSxJQUFBLEtBQUEsVUFBQSxVQUFBLEdBQUEsNEJBQUEsK0JBQUE7QUFHWSxpQkFBQSxJQUFBLE1BQUEsd0JBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxjQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGdCQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBZ0IsWUFBVSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBVixhQUFVO0FBQUEsSUFBQSxLQUFBLFVBQUEsVUFBQSxHQUFBLDBCQUFBLDZCQUFBO0FBYnBFLGlCQUFBLE1BQUEsbUJBQUEsRUFBQSxPQUFBLFdBQUEsR0FBQSxrQkFBQSxFQUFBLE1BQUEsU0FBQSxNQUFBLFdBQUEsTUFBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLHVCQUFBOzs7UUFJeUIsR0FBQSxTQUF5QixPQUo1QyxrQkFBQSxZQUFBLHVCQUFBLEdBQXVCOzs7In0=
171
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tpcGxpbmstbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9za2lwbGluay1saXN0L3NraXBsaW5rLWxpc3QuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIExpdEVsZW1lbnQsIHR5cGUgUHJvcGVydHlWYWx1ZXMsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBodG1sLCB1bnNhZmVTdGF0aWMgfSBmcm9tICdsaXQvc3RhdGljLWh0bWwuanMnO1xuXG5pbXBvcnQgeyBTYmJEYXJrTW9kZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSwgb21pdEVtcHR5Q29udmVydGVyIH0gZnJvbSAnLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzTGVhbiB9IGZyb20gJy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7XG4gIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbixcbiAgU2JiTmFtZWRTbG90TGlzdE1peGluLFxuICB0eXBlIFdpdGhMaXN0Q2hpbGRyZW4sXG59IGZyb20gJy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiQmxvY2tMaW5rQnV0dG9uRWxlbWVudCwgU2JiQmxvY2tMaW5rRWxlbWVudCB9IGZyb20gJy4uL2xpbmsuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUaXRsZUxldmVsIH0gZnJvbSAnLi4vdGl0bGUuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9za2lwbGluay1saXN0LnNjc3M/bGl0JmlubGluZSc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSBsaXN0IG9mIGBzYmItYmxvY2stbGlua2AvYHNiYi1ibG9jay1saW5rLWJ1dHRvbmAgd2hpY2ggYXJlIHZpc2libGUgb25seSB3aGVuIGZvY3VzZWQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1ibG9jay1saW5rYC9gc2JiLWJsb2NrLWxpbmstYnV0dG9uYCBlbGVtZW50cyB0byB0aGUgYHNiYi1za2lwbGluay1saXN0YC5cbiAqIEBzbG90IHRpdGxlIC0gVXNlIHRoaXMgdG8gcHJvdmlkZSBhIHRpdGxlIGZvciB0aGUgc2tpcGxpbmstbGlzdCAob3B0aW9uYWwpLlxuICogQGNzc3Byb3AgWy0tc2JiLXNraXBsaW5rLWxpc3Qtei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc2tpcGxpbmstbGlzdCcpXG5jbGFzcyBTYmJTa2lwbGlua0xpc3RFbGVtZW50IGV4dGVuZHMgU2JiRWxlbWVudEludGVybmFsc01peGluKFxuICBTYmJOYW1lZFNsb3RMaXN0TWl4aW48U2JiQmxvY2tMaW5rRWxlbWVudCB8IFNiYkJsb2NrTGlua0J1dHRvbkVsZW1lbnQsIHR5cGVvZiBMaXRFbGVtZW50PihcbiAgICBMaXRFbGVtZW50LFxuICApLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgbGlzdENoaWxkTG9jYWxOYW1lcyA9IFsnc2JiLWJsb2NrLWxpbmsnLCAnc2JiLWJsb2NrLWxpbmstYnV0dG9uJ107XG5cbiAgLyoqIFRoZSB0aXRsZSB0ZXh0IHdlIHdhbnQgdG8gcGxhY2UgYmVmb3JlIHRoZSBsaXN0LiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAndGl0bGUtY29udGVudCcsIHJlZmxlY3Q6IHRydWUsIGNvbnZlcnRlcjogb21pdEVtcHR5Q29udmVydGVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB0aXRsZUNvbnRlbnQ6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBUaGUgc2VtYW50aWMgbGV2ZWwgb2YgdGhlIHRpdGxlLCBlLmcuIDIgPSBoMi4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAndGl0bGUtbGV2ZWwnIH0pIHB1YmxpYyBhY2Nlc3NvciB0aXRsZUxldmVsOiBTYmJUaXRsZUxldmVsID0gJzInO1xuXG4gIHByaXZhdGUgX2RhcmtNb2RlQ29udHJvbGxlciA9IG5ldyBTYmJEYXJrTW9kZUNvbnRyb2xsZXIodGhpcywgKCkgPT4ge1xuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5saXN0Q2hpbGRyZW4pIHtcbiAgICAgIGNoaWxkLm5lZ2F0aXZlID0gdGhpcy5faXNMaWdodE1vZGUoKTtcbiAgICB9XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczxXaXRoTGlzdENoaWxkcmVuPHRoaXM+Pik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbGlzdENoaWxkcmVuJykpIHtcbiAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5saXN0Q2hpbGRyZW4pIHtcbiAgICAgICAgY2hpbGQuc2l6ZSA9IGlzTGVhbigpID8gJ3hzJyA6ICdtJztcbiAgICAgICAgY2hpbGQubmVnYXRpdmUgPSB0aGlzLl9pc0xpZ2h0TW9kZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzTGlnaHRNb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5fZGFya01vZGVDb250cm9sbGVyLm1hdGNoZXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IFRJVExFX1RBR19OQU1FID0gYGgke3RoaXMudGl0bGVMZXZlbCB8fCAnMid9YDtcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIGxpdC9iaW5kaW5nLXBvc2l0aW9ucyAqL1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1za2lwbGluay1saXN0X193cmFwcGVyXCI+XG4gICAgICAgIDwke3Vuc2FmZVN0YXRpYyhUSVRMRV9UQUdfTkFNRSl9XG4gICAgICAgICAgY2xhc3M9XCJzYmItc2tpcGxpbmstbGlzdC10aXRsZVwiXG4gICAgICAgICAgaWQ9XCJzYmItc2tpcGxpbmstbGlzdC10aXRsZS1pZFwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwidGl0bGVcIj4ke3RoaXMudGl0bGVDb250ZW50fTwvc2xvdD5cbiAgICAgICAgPC8ke3Vuc2FmZVN0YXRpYyhUSVRMRV9UQUdfTkFNRSl9PlxuICAgICAgICAke3RoaXMucmVuZGVyTGlzdCh7IGFyaWFMYWJlbGxlZGJ5OiAnc2JiLXNraXBsaW5rLWxpc3QtdGl0bGUtaWQnIH0pfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIGxpdC9iaW5kaW5nLXBvc2l0aW9ucyAqL1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc2tpcGxpbmstbGlzdCc6IFNiYlNraXBsaW5rTGlzdEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUE0Qk0sMEJBQXNCLE1BQUE7OzBCQUQzQixjQUFjLG1CQUFtQixDQUFDOzs7O0FBQ0UsTUFBQSxjQUFBLHlCQUNuQyxzQkFDRSxVQUFVLENBQ1g7Ozs7Ozs7QUFIMEIsRUFBQSxtQkFBUSxZQUlwQztBQUFBOztBQU9DO0FBR3dDO0FBUlosV0FBQSxzQkFBc0IsQ0FBQyxrQkFBa0IsdUJBQXVCO0FBSzVFLHlCQUFBLGdDQUFBLGtCQUFBLE1BQUEsNEJBQXVCLEVBQUU7QUFHZSx5QkFBQSwrQkFBQSxrQkFBQSxNQUFBLCtCQUFBLEdBQUEsa0JBQUEsTUFBQSwwQkFBNEIsR0FBRztBQUUvRSxXQUFBLCtFQUFzQixJQUFJLHNCQUFzQixNQUFNLE1BQUs7QUFDakUsbUJBQVcsU0FBUyxLQUFLLGNBQWM7QUFDckMsZ0JBQU0sV0FBVyxLQUFLLGFBQUE7QUFBQSxRQUN4QjtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBa0NIO0FBQUE7QUFBQSxJQTNDRSxJQUFnQixlQUFZO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUE1QixJQUFnQixhQUFZLE9BQUE7QUFBQSx5QkFBQSxnQ0FBQTtBQUFBLElBQUE7QUFBQTtBQUFBLElBR1ksSUFBZ0IsYUFBVTtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBMUIsSUFBZ0IsV0FBVSxPQUFBO0FBQUEseUJBQUEsOEJBQUE7QUFBQSxJQUFBO0FBQUEsSUFRL0MsV0FBVyxtQkFBeUQ7QUFDckYsWUFBTSxXQUFXLGlCQUFpQjtBQUVsQyxVQUFJLGtCQUFrQixJQUFJLGNBQWMsR0FBRztBQUN6QyxtQkFBVyxTQUFTLEtBQUssY0FBYztBQUNyQyxnQkFBTSxPQUFPLE9BQUEsSUFBVyxPQUFPO0FBQy9CLGdCQUFNLFdBQVcsS0FBSyxhQUFBO0FBQUEsUUFDeEI7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLElBRVEsZUFBWTtBQUNsQixhQUFPLENBQUMsS0FBSyxvQkFBb0IsUUFBQTtBQUFBLElBQ25DO0FBQUEsSUFFbUIsU0FBTTtBQUN2QixZQUFNLGlCQUFpQixJQUFJLEtBQUssY0FBYyxHQUFHO0FBR2pELGFBQU87QUFBQTtBQUFBLFdBRUEsYUFBYSxjQUFjLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQSwrQkFJUixLQUFLLFlBQVk7QUFBQSxZQUNwQyxhQUFhLGNBQWMsQ0FBQztBQUFBLFVBQzlCLEtBQUssV0FBVyxFQUFFLGdCQUFnQiw2QkFBQSxDQUE4QixDQUFDO0FBQUE7QUFBQTtBQUFBLElBSXpFO0FBQUEsS0ExQ0EsZ0RBR3dDOztBQUx2QywrQkFBQSxDQUFBLGFBQ0EsU0FBUyxFQUFFLFdBQVcsaUJBQWlCLFNBQVMsTUFBTSxXQUFXLG1CQUFBLENBQW9CLENBQUM7QUFJdEYsNkJBQUEsQ0FBQSxTQUFTLEVBQUUsV0FBVyxjQUFBLENBQWUsQ0FBQztBQUh2QyxpQkFBQSxJQUFBLE1BQUEsMEJBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxnQkFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxrQkFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQWdCLGNBQVksS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVosZUFBWTtBQUFBLElBQUEsS0FBQSxVQUFBLFVBQUEsR0FBQSw0QkFBQSwrQkFBQTtBQUdZLGlCQUFBLElBQUEsTUFBQSx3QkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLGNBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsZ0JBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFnQixZQUFVLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFWLGFBQVU7QUFBQSxJQUFBLEtBQUEsVUFBQSxVQUFBLEdBQUEsMEJBQUEsNkJBQUE7QUFkcEUsaUJBQUEsTUFBQSxtQkFBQSxFQUFBLE9BQUEsV0FBQSxHQUFBLGtCQUFBLEVBQUEsTUFBQSxTQUFBLE1BQUEsV0FBQSxNQUFBLFVBQUEsVUFBQSxHQUFBLE1BQUEsdUJBQUE7OztRQUt5QixHQUFBLFNBQXlCLE9BTDVDLGtCQUFBLFlBQUEsdUJBQUEsR0FBdUI7OzsifQ==
@@ -30,13 +30,18 @@ const style = css`@charset "UTF-8";
30
30
  --sbb-slider-knob-size-active: 1.9375rem;
31
31
  --sbb-slider-knob-border-size: 0.1875rem;
32
32
  --sbb-slider-knob-border-style: solid;
33
- --sbb-slider-knob-color: var(--sbb-color-white);
34
- --sbb-slider-knob-border-color: var(--sbb-color-red);
35
- --sbb-slider-icon-color: var(--sbb-color-black);
36
- --sbb-slider-selected-line-color: var(--sbb-color-red);
33
+ --sbb-slider-knob-color: var(--sbb-background-color-1);
34
+ --sbb-slider-knob-border-color: var(--sbb-color-primary);
35
+ --sbb-slider-icon-color: var(--sbb-color-1);
36
+ --sbb-slider-selected-line-color: var(--sbb-color-primary);
37
37
  --sbb-slider-selected-line-disabled-color: var(--sbb-color-smoke);
38
- --sbb-slider-line-color: var(--sbb-color-smoke);
38
+ --sbb-slider-selected-line-disabled-color: light-dark(
39
+ var(--sbb-color-smoke),
40
+ var(--sbb-color-cement)
41
+ );
42
+ --sbb-slider-line-color: var(--sbb-border-color-5);
39
43
  --sbb-slider-line-disabled-color: var(--sbb-color-graphite);
44
+ --sbb-slider-line-disabled-color: light-dark(var(--sbb-color-graphite), var(--sbb-color-granite));
40
45
  }
41
46
  @media (forced-colors: active) {
42
47
  :host {
@@ -47,13 +52,14 @@ const style = css`@charset "UTF-8";
47
52
 
48
53
  :host(:disabled) {
49
54
  --sbb-slider-icon-color: var(--sbb-color-graphite);
50
- --sbb-slider-knob-border-color: var(--sbb-color-smoke);
55
+ --sbb-slider-icon-color: light-dark(var(--sbb-color-graphite), var(--sbb-color-smoke));
56
+ --sbb-slider-knob-border-color: var(--sbb-border-color-5);
51
57
  --sbb-slider-knob-border-size: var(--sbb-border-width-2x);
52
58
  --sbb-slider-knob-border-style: dashed;
53
59
  }
54
60
 
55
61
  :host([readonly]) {
56
- --sbb-slider-icon-color: var(--sbb-color-smoke);
62
+ --sbb-slider-icon-color: var(--sbb-color-5);
57
63
  --sbb-slider-knob-border-color: var(--sbb-slider-selected-line-disabled-color);
58
64
  }
59
65
 
@@ -126,7 +132,7 @@ const style = css`@charset "UTF-8";
126
132
  position: absolute;
127
133
  top: 50%;
128
134
  transform: translateY(-50%);
129
- box-shadow: var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-2-color), var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-1-color);
135
+ box-shadow: var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-color-hard-2), var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-color-hard-1);
130
136
  width: var(--sbb-slider-knob-size);
131
137
  height: var(--sbb-slider-knob-size);
132
138
  inset-inline-start: calc(var(--sbb-slider-value-fraction) * 100% - var(--sbb-slider-knob-size) * var(--sbb-slider-value-fraction));
@@ -394,4 +400,4 @@ let SbbSliderElement = (() => {
394
400
  export {
395
401
  SbbSliderElement
396
402
  };
397
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3NsaWRlci9zbGlkZXIuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFByb3BlcnR5VmFsdWVzLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBMaXRFbGVtZW50LCBub3RoaW5nIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcblxuaW1wb3J0IHsgZm9yY2VUeXBlLCBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQge1xuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIFNiYkRpc2FibGVkTWl4aW4sXG4gIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbixcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbixcbiAgU2JiUmVhZG9ubHlNaXhpbixcbn0gZnJvbSAnLi4vY29yZS9taXhpbnMuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zbGlkZXIuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi9pY29uLmpzJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhbiBpbnB1dCBrbm9iIHRoYXQgY2FuIGJlIG1vdmVkIGluIGEgcmFuZ2UuXG4gKlxuICogQHNsb3QgcHJlZml4IC0gVXNlIHRoaXMgc2xvdCB0byByZW5kZXIgYW4gaWNvbiBvbiB0aGUgbGVmdCBzaWRlIG9mIHRoZSBpbnB1dC5cbiAqIEBzbG90IHN1ZmZpeCAtIFVzZSB0aGlzIHNsb3QgdG8gcmVuZGVyIGFuIGljb24gb24gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIGlucHV0LlxuICogQGV2ZW50IHtJbnB1dEV2ZW50fSBpbnB1dCAtIFRoZSBpbnB1dCBldmVudCBmaXJlcyB3aGVuIHRoZSB2YWx1ZSBoYXMgYmVlbiBjaGFuZ2VkIGFzIGEgZGlyZWN0IHJlc3VsdCBvZiBhIHVzZXIgYWN0aW9uLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc2xpZGVyJylcbkBob3N0QXR0cmlidXRlcyh7XG4gIHRhYmluZGV4OiAnMCcsXG59KVxuY2xhc3MgU2JiU2xpZGVyRWxlbWVudCBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oXG4gIFNiYlJlYWRvbmx5TWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oTGl0RWxlbWVudCkpKSxcbikge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAnc2xpZGVyJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIGRpZENoYW5nZTogJ2RpZENoYW5nZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqXG4gICAqIFZhbHVlIG9mIHRoZSBmb3JtIGVsZW1lbnQuXG4gICAqIElmIG5vIHZhbHVlIGlzIHByb3ZpZGVkLCBkZWZhdWx0IGlzIHRoZSBtaWRkbGUgcG9pbnQgYmV0d2VlbiBtaW4gYW5kIG1heC5cbiAgICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgICBpZiAodGhpcy5faXNWYWxpZE51bWJlcih2YWx1ZSkpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fYm91bmRCZXR3ZWVuTWluTWF4KHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xuICAgIH1cbiAgICB0aGlzLmludGVybmFscy5hcmlhVmFsdWVOb3cgPSB0aGlzLnZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWUgPz8gdGhpcy5fZGVmYXVsdFZhbHVlKCk7XG4gIH1cbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBOdW1lcmljIHZhbHVlIGZvciB0aGUgaW5uZXIgSFRNTElucHV0RWxlbWVudC4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAndmFsdWUtYXMtbnVtYmVyJywgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBzZXQgdmFsdWVBc051bWJlcih2YWx1ZTogbnVtYmVyIHwgbnVsbCkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZT8udG9TdHJpbmcoKSA/PyBudWxsO1xuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWVBc051bWJlcigpOiBudW1iZXIgfCBudWxsIHtcbiAgICByZXR1cm4gTnVtYmVyKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgLyoqIE1pbmltdW0gYWNjZXB0YWJsZSB2YWx1ZSBmb3IgdGhlIGlubmVyIEhUTUxJbnB1dEVsZW1lbnQuICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgbWluKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuX2lzVmFsaWROdW1iZXIodmFsdWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fbWluID0gdmFsdWU7XG4gICAgdGhpcy5pbnRlcm5hbHMuYXJpYVZhbHVlTWluID0gdGhpcy5taW47XG4gICAgY29uc3QgYm91bmRWYWx1ZSA9IHRoaXMuX2JvdW5kQmV0d2Vlbk1pbk1heCh0aGlzLnZhbHVlKTtcbiAgICBpZiAodGhpcy52YWx1ZSAhPT0gYm91bmRWYWx1ZSkge1xuICAgICAgdGhpcy52YWx1ZSA9IGJvdW5kVmFsdWU7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgbWluKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX21pbjtcbiAgfVxuICBwcml2YXRlIF9taW46IHN0cmluZyA9ICcwJztcblxuICAvKiogTWF4aW11bSBhY2NlcHRhYmxlIHZhbHVlIGZvciB0aGUgaW5uZXIgSFRNTElucHV0RWxlbWVudC4gKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCBtYXgodmFsdWU6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5faXNWYWxpZE51bWJlcih2YWx1ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9tYXggPSB2YWx1ZTtcbiAgICB0aGlzLmludGVybmFscy5hcmlhVmFsdWVNYXggPSB0aGlzLm1heDtcbiAgICBjb25zdCBib3VuZFZhbHVlID0gdGhpcy5fYm91bmRCZXR3ZWVuTWluTWF4KHRoaXMudmFsdWUpO1xuICAgIGlmICh0aGlzLnZhbHVlICE9PSBib3VuZFZhbHVlKSB7XG4gICAgICB0aGlzLnZhbHVlID0gYm91bmRWYWx1ZTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCBtYXgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4O1xuICB9XG4gIHByaXZhdGUgX21heDogc3RyaW5nID0gJzEwMCc7XG5cbiAgLyoqIE5hbWUgb2YgdGhlIGljb24gYXQgY29tcG9uZW50J3Mgc3RhcnQsIHdoaWNoIHdpbGwgYmUgZm9yd2FyZCB0byB0aGUgbmVzdGVkIGBzYmItaWNvbmAuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdzdGFydC1pY29uJyB9KVxuICBwdWJsaWMgYWNjZXNzb3Igc3RhcnRJY29uOiBzdHJpbmcgPSAnJztcblxuICAvKiogTmFtZSBvZiB0aGUgaWNvbiBhdCBjb21wb25lbnQncyBlbmQsIHdoaWNoIHdpbGwgYmUgZm9yd2FyZCB0byB0aGUgbmVzdGVkIGBzYmItaWNvbmAuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdlbmQtaWNvbicgfSlcbiAgcHVibGljIGFjY2Vzc29yIGVuZEljb246IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBGb3JtIHR5cGUgb2YgZWxlbWVudC5cbiAgICogQGRlZmF1bHQgJ3JhbmdlJ1xuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdyYW5nZSc7XG4gIH1cblxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBpbm5lciBIVE1MSW5wdXRFbGVtZW50IHdpdGggdHlwZT0ncmFuZ2UnLiAqL1xuICBwcml2YXRlIF9yYW5nZUlucHV0ITogSFRNTElucHV0RWxlbWVudDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVLZXlkb3duKGUpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygncmVhZE9ubHknKSkge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYVJlYWRPbmx5ID0gQm9vbGVhbih0aGlzLnJlYWRPbmx5KS50b1N0cmluZygpO1xuICAgIH1cbiAgICB0aGlzLnN0eWxlPy5zZXRQcm9wZXJ0eSgnLS1zYmItc2xpZGVyLXZhbHVlLWZyYWN0aW9uJywgdGhpcy5fdmFsdWVGcmFjdGlvbigpLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSByZXNldCB2YWx1ZSBpcyB0aGUgYXR0cmlidXRlIHZhbHVlICh0aGUgc2V0dXAgdmFsdWUpLiBJZiBub3QgcHJlc2VudCwgY2FsY3VsYXRlcyB0aGUgZGVmYXVsdC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpID8/IHRoaXMuX2RlZmF1bHRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgX3JlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24sXG4gICk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBzdGF0ZSBhcyBzdHJpbmcgfCBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqICBJZiBubyB2YWx1ZSBpcyBwcm92aWRlZCwgZGVmYXVsdCBpcyB0aGUgbWlkZGxlIHBvaW50IGJldHdlZW4gbWluIGFuZCBtYXhcbiAgICogIChzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRNTC9FbGVtZW50L2lucHV0L3JhbmdlI3ZhbHVlKVxuICAgKi9cbiAgcHJpdmF0ZSBfZGVmYXVsdFZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICgrdGhpcy5taW4gKyAoK3RoaXMubWF4IC0gK3RoaXMubWluKSAvIDIpLnRvU3RyaW5nKCk7XG4gIH1cblxuICBwcml2YXRlIF9pc1ZhbGlkTnVtYmVyKHZhbHVlOiBzdHJpbmcgfCBudWxsKTogdmFsdWUgaXMgc3RyaW5nIHtcbiAgICByZXR1cm4gISF2YWx1ZSAmJiAhaXNOYU4oTnVtYmVyKHZhbHVlKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzdHJhaW5zIHRoZSB2YWx1ZSBiZXR3ZWVuIHRoZSBtaW4gYW5kIG1heFxuICAgKi9cbiAgcHJpdmF0ZSBfYm91bmRCZXR3ZWVuTWluTWF4KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBNYXRoLm1heCgrdGhpcy5taW4sIE1hdGgubWluKCt0aGlzLm1heCwgK3ZhbHVlKSkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3ZhbHVlRnJhY3Rpb24oKTogbnVtYmVyIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWVBc051bWJlciE7XG4gICAgY29uc3QgbWluID0gK3RoaXMubWluO1xuICAgIGNvbnN0IG1heCA9ICt0aGlzLm1heDtcblxuICAgIGNvbnN0IG1hdGhGcmFjdGlvbjogbnVtYmVyID0gKHZhbHVlIC0gbWluKSAvIChtYXggLSBtaW4pO1xuICAgIHJldHVybiBpc05hTihtYXRoRnJhY3Rpb24pID8gMCA6IE1hdGgubWF4KDAsIE1hdGgubWluKDEsIG1hdGhGcmFjdGlvbikpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfaGFuZGxlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChldmVudC5rZXkgIT09ICdUYWInKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0hvbWUnKSB7XG4gICAgICB0aGlzLl9yYW5nZUlucHV0LnZhbHVlID0gdGhpcy5taW47XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdFbmQnKSB7XG4gICAgICB0aGlzLl9yYW5nZUlucHV0LnZhbHVlID0gdGhpcy5tYXg7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0xlZnQnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIHRoaXMuX3JhbmdlSW5wdXQuc3RlcERvd24oKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93UmlnaHQnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICB0aGlzLl9yYW5nZUlucHV0LnN0ZXBVcCgpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnUGFnZURvd24nKSB7XG4gICAgICB0aGlzLl9yYW5nZUlucHV0LnN0ZXBEb3duKCgrdGhpcy5tYXggLSArdGhpcy5taW4pIC8gMTApO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnUGFnZVVwJykge1xuICAgICAgdGhpcy5fcmFuZ2VJbnB1dC5zdGVwVXAoKCt0aGlzLm1heCAtICt0aGlzLm1pbikgLyAxMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBXZSBoYXZlIHRvIG1hbnVhbGx5IGZpcmUgZXZlbnRzIGJlY2F1c2UgcHJvZ3JhbW1hdGljIGNoYW5nZXMgZG9uJ3QgdHJpZ2dlciB0aGVtXG4gICAgdGhpcy5fcmFuZ2VJbnB1dC5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSxcbiAgICApO1xuICAgIHRoaXMuX3JhbmdlSW5wdXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gIH1cblxuICAvKiogRW1pdHMgdGhlIGNoYW5nZSBldmVudC4gKi9cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hDaGFuZ2VFdmVudCgpOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKiBUaGUgY2hhbmdlIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgbW9kaWZpZXMgdGhlIGVsZW1lbnQncyB2YWx1ZS5cbiAgICAgKiBVbmxpa2UgdGhlIGlucHV0IGV2ZW50LCB0aGUgY2hhbmdlIGV2ZW50IGlzIG5vdCBuZWNlc3NhcmlseSBmaXJlZFxuICAgICAqIGZvciBlYWNoIGFsdGVyYXRpb24gdG8gYW4gZWxlbWVudCdzIHZhbHVlLlxuICAgICAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG5cbiAgICAvKipcbiAgICAgKiBEZXByZWNhdGVkLiBNaXJyb3JzIGNoYW5nZSBldmVudCBmb3IgUmVhY3QuIFdpbGwgYmUgcmVtb3ZlZCBvbmNlIFJlYWN0IHByb3Blcmx5IHN1cHBvcnRzIGNoYW5nZSBldmVudHMuXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdkaWRDaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXNsaWRlcl9faGVpZ2h0LWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXNsaWRlcl9fd3JhcHBlclwiPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJwcmVmaXhcIj5cbiAgICAgICAgICAgICR7dGhpcy5zdGFydEljb24gPyBodG1sYDxzYmItaWNvbiBuYW1lPVwiJHt0aGlzLnN0YXJ0SWNvbn1cIj48L3NiYi1pY29uPmAgOiBub3RoaW5nfVxuICAgICAgICAgIDwvc2xvdD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXNsaWRlcl9fY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgIG1pbj0ke3RoaXMubWlufVxuICAgICAgICAgICAgICBtYXg9JHt0aGlzLm1heH1cbiAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZCB8fCB0aGlzLmZvcm1EaXNhYmxlZCB8fCB0aGlzLnJlYWRPbmx5fVxuICAgICAgICAgICAgICB2YWx1ZT0ke3RoaXMudmFsdWUgfHwgbm90aGluZ31cbiAgICAgICAgICAgICAgY2xhc3M9XCJzYmItc2xpZGVyX19yYW5nZS1pbnB1dFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJyYW5nZVwiXG4gICAgICAgICAgICAgIEBjaGFuZ2U9JHsoKSA9PiB0aGlzLl9kaXNwYXRjaENoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgIEBpbnB1dD0keygpID0+ICh0aGlzLnZhbHVlID0gdGhpcy5fcmFuZ2VJbnB1dC52YWx1ZSl9XG4gICAgICAgICAgICAgICR7cmVmKChpbnB1dD86IEVsZW1lbnQpID0+ICh0aGlzLl9yYW5nZUlucHV0ID0gaW5wdXQgYXMgSFRNTElucHV0RWxlbWVudCkpfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2xpZGVyX19saW5lXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2xpZGVyX19zZWxlY3RlZC1saW5lXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2xpZGVyX19rbm9iXCI+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cInN1ZmZpeFwiPlxuICAgICAgICAgICAgJHt0aGlzLmVuZEljb24gPyBodG1sYDxzYmItaWNvbiBuYW1lPVwiJHt0aGlzLmVuZEljb259XCI+PC9zYmItaWNvbj5gIDogbm90aGluZ31cbiAgICAgICAgICA8L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNsaWRlcic6IFNiYlNsaWRlckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
403
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3NsaWRlci9zbGlkZXIuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFByb3BlcnR5VmFsdWVzLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBMaXRFbGVtZW50LCBub3RoaW5nIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcblxuaW1wb3J0IHsgZm9yY2VUeXBlLCBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQge1xuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIFNiYkRpc2FibGVkTWl4aW4sXG4gIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbixcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbixcbiAgU2JiUmVhZG9ubHlNaXhpbixcbn0gZnJvbSAnLi4vY29yZS9taXhpbnMuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zbGlkZXIuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi9pY29uLmpzJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhbiBpbnB1dCBrbm9iIHRoYXQgY2FuIGJlIG1vdmVkIGluIGEgcmFuZ2UuXG4gKlxuICogQHNsb3QgcHJlZml4IC0gVXNlIHRoaXMgc2xvdCB0byByZW5kZXIgYW4gaWNvbiBvbiB0aGUgbGVmdCBzaWRlIG9mIHRoZSBpbnB1dC5cbiAqIEBzbG90IHN1ZmZpeCAtIFVzZSB0aGlzIHNsb3QgdG8gcmVuZGVyIGFuIGljb24gb24gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIGlucHV0LlxuICogQGV2ZW50IHtJbnB1dEV2ZW50fSBpbnB1dCAtIFRoZSBpbnB1dCBldmVudCBmaXJlcyB3aGVuIHRoZSB2YWx1ZSBoYXMgYmVlbiBjaGFuZ2VkIGFzIGEgZGlyZWN0IHJlc3VsdCBvZiBhIHVzZXIgYWN0aW9uLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc2xpZGVyJylcbkBob3N0QXR0cmlidXRlcyh7XG4gIHRhYmluZGV4OiAnMCcsXG59KVxuY2xhc3MgU2JiU2xpZGVyRWxlbWVudCBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oXG4gIFNiYlJlYWRvbmx5TWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oTGl0RWxlbWVudCkpKSxcbikge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAnc2xpZGVyJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIGRpZENoYW5nZTogJ2RpZENoYW5nZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqXG4gICAqIFZhbHVlIG9mIHRoZSBmb3JtIGVsZW1lbnQuXG4gICAqIElmIG5vIHZhbHVlIGlzIHByb3ZpZGVkLCBkZWZhdWx0IGlzIHRoZSBtaWRkbGUgcG9pbnQgYmV0d2VlbiBtaW4gYW5kIG1heC5cbiAgICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgICBpZiAodGhpcy5faXNWYWxpZE51bWJlcih2YWx1ZSkpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fYm91bmRCZXR3ZWVuTWluTWF4KHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xuICAgIH1cbiAgICB0aGlzLmludGVybmFscy5hcmlhVmFsdWVOb3cgPSB0aGlzLnZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWUgPz8gdGhpcy5fZGVmYXVsdFZhbHVlKCk7XG4gIH1cbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBOdW1lcmljIHZhbHVlIGZvciB0aGUgaW5uZXIgSFRNTElucHV0RWxlbWVudC4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAndmFsdWUtYXMtbnVtYmVyJywgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBzZXQgdmFsdWVBc051bWJlcih2YWx1ZTogbnVtYmVyIHwgbnVsbCkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZT8udG9TdHJpbmcoKSA/PyBudWxsO1xuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWVBc051bWJlcigpOiBudW1iZXIgfCBudWxsIHtcbiAgICByZXR1cm4gTnVtYmVyKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgLyoqIE1pbmltdW0gYWNjZXB0YWJsZSB2YWx1ZSBmb3IgdGhlIGlubmVyIEhUTUxJbnB1dEVsZW1lbnQuICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgbWluKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuX2lzVmFsaWROdW1iZXIodmFsdWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fbWluID0gdmFsdWU7XG4gICAgdGhpcy5pbnRlcm5hbHMuYXJpYVZhbHVlTWluID0gdGhpcy5taW47XG4gICAgY29uc3QgYm91bmRWYWx1ZSA9IHRoaXMuX2JvdW5kQmV0d2Vlbk1pbk1heCh0aGlzLnZhbHVlKTtcbiAgICBpZiAodGhpcy52YWx1ZSAhPT0gYm91bmRWYWx1ZSkge1xuICAgICAgdGhpcy52YWx1ZSA9IGJvdW5kVmFsdWU7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgbWluKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX21pbjtcbiAgfVxuICBwcml2YXRlIF9taW46IHN0cmluZyA9ICcwJztcblxuICAvKiogTWF4aW11bSBhY2NlcHRhYmxlIHZhbHVlIGZvciB0aGUgaW5uZXIgSFRNTElucHV0RWxlbWVudC4gKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCBtYXgodmFsdWU6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5faXNWYWxpZE51bWJlcih2YWx1ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9tYXggPSB2YWx1ZTtcbiAgICB0aGlzLmludGVybmFscy5hcmlhVmFsdWVNYXggPSB0aGlzLm1heDtcbiAgICBjb25zdCBib3VuZFZhbHVlID0gdGhpcy5fYm91bmRCZXR3ZWVuTWluTWF4KHRoaXMudmFsdWUpO1xuICAgIGlmICh0aGlzLnZhbHVlICE9PSBib3VuZFZhbHVlKSB7XG4gICAgICB0aGlzLnZhbHVlID0gYm91bmRWYWx1ZTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCBtYXgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4O1xuICB9XG4gIHByaXZhdGUgX21heDogc3RyaW5nID0gJzEwMCc7XG5cbiAgLyoqIE5hbWUgb2YgdGhlIGljb24gYXQgY29tcG9uZW50J3Mgc3RhcnQsIHdoaWNoIHdpbGwgYmUgZm9yd2FyZCB0byB0aGUgbmVzdGVkIGBzYmItaWNvbmAuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdzdGFydC1pY29uJyB9KVxuICBwdWJsaWMgYWNjZXNzb3Igc3RhcnRJY29uOiBzdHJpbmcgPSAnJztcblxuICAvKiogTmFtZSBvZiB0aGUgaWNvbiBhdCBjb21wb25lbnQncyBlbmQsIHdoaWNoIHdpbGwgYmUgZm9yd2FyZCB0byB0aGUgbmVzdGVkIGBzYmItaWNvbmAuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdlbmQtaWNvbicgfSlcbiAgcHVibGljIGFjY2Vzc29yIGVuZEljb246IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBGb3JtIHR5cGUgb2YgZWxlbWVudC5cbiAgICogQGRlZmF1bHQgJ3JhbmdlJ1xuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdyYW5nZSc7XG4gIH1cblxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBpbm5lciBIVE1MSW5wdXRFbGVtZW50IHdpdGggdHlwZT0ncmFuZ2UnLiAqL1xuICBwcml2YXRlIF9yYW5nZUlucHV0ITogSFRNTElucHV0RWxlbWVudDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVLZXlkb3duKGUpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygncmVhZE9ubHknKSkge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYVJlYWRPbmx5ID0gQm9vbGVhbih0aGlzLnJlYWRPbmx5KS50b1N0cmluZygpO1xuICAgIH1cbiAgICB0aGlzLnN0eWxlPy5zZXRQcm9wZXJ0eSgnLS1zYmItc2xpZGVyLXZhbHVlLWZyYWN0aW9uJywgdGhpcy5fdmFsdWVGcmFjdGlvbigpLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSByZXNldCB2YWx1ZSBpcyB0aGUgYXR0cmlidXRlIHZhbHVlICh0aGUgc2V0dXAgdmFsdWUpLiBJZiBub3QgcHJlc2VudCwgY2FsY3VsYXRlcyB0aGUgZGVmYXVsdC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpID8/IHRoaXMuX2RlZmF1bHRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgX3JlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24sXG4gICk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBzdGF0ZSBhcyBzdHJpbmcgfCBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqICBJZiBubyB2YWx1ZSBpcyBwcm92aWRlZCwgZGVmYXVsdCBpcyB0aGUgbWlkZGxlIHBvaW50IGJldHdlZW4gbWluIGFuZCBtYXhcbiAgICogIChzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRNTC9FbGVtZW50L2lucHV0L3JhbmdlI3ZhbHVlKVxuICAgKi9cbiAgcHJpdmF0ZSBfZGVmYXVsdFZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICgrdGhpcy5taW4gKyAoK3RoaXMubWF4IC0gK3RoaXMubWluKSAvIDIpLnRvU3RyaW5nKCk7XG4gIH1cblxuICBwcml2YXRlIF9pc1ZhbGlkTnVtYmVyKHZhbHVlOiBzdHJpbmcgfCBudWxsKTogdmFsdWUgaXMgc3RyaW5nIHtcbiAgICByZXR1cm4gISF2YWx1ZSAmJiAhaXNOYU4oTnVtYmVyKHZhbHVlKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzdHJhaW5zIHRoZSB2YWx1ZSBiZXR3ZWVuIHRoZSBtaW4gYW5kIG1heFxuICAgKi9cbiAgcHJpdmF0ZSBfYm91bmRCZXR3ZWVuTWluTWF4KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBNYXRoLm1heCgrdGhpcy5taW4sIE1hdGgubWluKCt0aGlzLm1heCwgK3ZhbHVlKSkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3ZhbHVlRnJhY3Rpb24oKTogbnVtYmVyIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWVBc051bWJlciE7XG4gICAgY29uc3QgbWluID0gK3RoaXMubWluO1xuICAgIGNvbnN0IG1heCA9ICt0aGlzLm1heDtcblxuICAgIGNvbnN0IG1hdGhGcmFjdGlvbjogbnVtYmVyID0gKHZhbHVlIC0gbWluKSAvIChtYXggLSBtaW4pO1xuICAgIHJldHVybiBpc05hTihtYXRoRnJhY3Rpb24pID8gMCA6IE1hdGgubWF4KDAsIE1hdGgubWluKDEsIG1hdGhGcmFjdGlvbikpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfaGFuZGxlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChldmVudC5rZXkgIT09ICdUYWInKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0hvbWUnKSB7XG4gICAgICB0aGlzLl9yYW5nZUlucHV0LnZhbHVlID0gdGhpcy5taW47XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdFbmQnKSB7XG4gICAgICB0aGlzLl9yYW5nZUlucHV0LnZhbHVlID0gdGhpcy5tYXg7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0xlZnQnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIHRoaXMuX3JhbmdlSW5wdXQuc3RlcERvd24oKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93UmlnaHQnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICB0aGlzLl9yYW5nZUlucHV0LnN0ZXBVcCgpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnUGFnZURvd24nKSB7XG4gICAgICB0aGlzLl9yYW5nZUlucHV0LnN0ZXBEb3duKCgrdGhpcy5tYXggLSArdGhpcy5taW4pIC8gMTApO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnUGFnZVVwJykge1xuICAgICAgdGhpcy5fcmFuZ2VJbnB1dC5zdGVwVXAoKCt0aGlzLm1heCAtICt0aGlzLm1pbikgLyAxMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBXZSBoYXZlIHRvIG1hbnVhbGx5IGZpcmUgZXZlbnRzIGJlY2F1c2UgcHJvZ3JhbW1hdGljIGNoYW5nZXMgZG9uJ3QgdHJpZ2dlciB0aGVtXG4gICAgdGhpcy5fcmFuZ2VJbnB1dC5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSxcbiAgICApO1xuICAgIHRoaXMuX3JhbmdlSW5wdXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gIH1cblxuICAvKiogRW1pdHMgdGhlIGNoYW5nZSBldmVudC4gKi9cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hDaGFuZ2VFdmVudCgpOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKiBUaGUgY2hhbmdlIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgbW9kaWZpZXMgdGhlIGVsZW1lbnQncyB2YWx1ZS5cbiAgICAgKiBVbmxpa2UgdGhlIGlucHV0IGV2ZW50LCB0aGUgY2hhbmdlIGV2ZW50IGlzIG5vdCBuZWNlc3NhcmlseSBmaXJlZFxuICAgICAqIGZvciBlYWNoIGFsdGVyYXRpb24gdG8gYW4gZWxlbWVudCdzIHZhbHVlLlxuICAgICAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG5cbiAgICAvKipcbiAgICAgKiBEZXByZWNhdGVkLiBNaXJyb3JzIGNoYW5nZSBldmVudCBmb3IgUmVhY3QuIFdpbGwgYmUgcmVtb3ZlZCBvbmNlIFJlYWN0IHByb3Blcmx5IHN1cHBvcnRzIGNoYW5nZSBldmVudHMuXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdkaWRDaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXNsaWRlcl9faGVpZ2h0LWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXNsaWRlcl9fd3JhcHBlclwiPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJwcmVmaXhcIj5cbiAgICAgICAgICAgICR7dGhpcy5zdGFydEljb24gPyBodG1sYDxzYmItaWNvbiBuYW1lPVwiJHt0aGlzLnN0YXJ0SWNvbn1cIj48L3NiYi1pY29uPmAgOiBub3RoaW5nfVxuICAgICAgICAgIDwvc2xvdD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXNsaWRlcl9fY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgIG1pbj0ke3RoaXMubWlufVxuICAgICAgICAgICAgICBtYXg9JHt0aGlzLm1heH1cbiAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZCB8fCB0aGlzLmZvcm1EaXNhYmxlZCB8fCB0aGlzLnJlYWRPbmx5fVxuICAgICAgICAgICAgICB2YWx1ZT0ke3RoaXMudmFsdWUgfHwgbm90aGluZ31cbiAgICAgICAgICAgICAgY2xhc3M9XCJzYmItc2xpZGVyX19yYW5nZS1pbnB1dFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJyYW5nZVwiXG4gICAgICAgICAgICAgIEBjaGFuZ2U9JHsoKSA9PiB0aGlzLl9kaXNwYXRjaENoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgIEBpbnB1dD0keygpID0+ICh0aGlzLnZhbHVlID0gdGhpcy5fcmFuZ2VJbnB1dC52YWx1ZSl9XG4gICAgICAgICAgICAgICR7cmVmKChpbnB1dD86IEVsZW1lbnQpID0+ICh0aGlzLl9yYW5nZUlucHV0ID0gaW5wdXQgYXMgSFRNTElucHV0RWxlbWVudCkpfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2xpZGVyX19saW5lXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2xpZGVyX19zZWxlY3RlZC1saW5lXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2xpZGVyX19rbm9iXCI+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cInN1ZmZpeFwiPlxuICAgICAgICAgICAgJHt0aGlzLmVuZEljb24gPyBodG1sYDxzYmItaWNvbiBuYW1lPVwiJHt0aGlzLmVuZEljb259XCI+PC9zYmItaWNvbj5gIDogbm90aGluZ31cbiAgICAgICAgICA8L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNsaWRlcic6IFNiYlNsaWRlckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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