@sbb-esta/lyne-elements-dev 5.0.0-next.3-dev.1778655126 → 5.0.0-next.3-dev.1778781274

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 (340) hide show
  1. package/development/accordion.component-xx7XabDY.js +1 -1
  2. package/development/accordion.js +1 -1
  3. package/development/action-group.component-wgXPpkQe.js +1 -1
  4. package/development/action-group.js +1 -1
  5. package/development/alert-group.component-w5PbU_4C.js +1 -1
  6. package/development/alert.component-Dzm5z0jh.js +1 -1
  7. package/development/alert.js +1 -1
  8. package/development/autocomplete/autocomplete.component.js +1 -1
  9. package/development/autocomplete-base-element-DQiZ6hhk.js +1 -1
  10. package/development/autocomplete.js +1 -1
  11. package/development/block-link-common-DNvRfeay.js +1 -1
  12. package/development/breadcrumb-group.component-BUBfl6LV.js +1 -1
  13. package/development/breadcrumb.component-D6Cd2FPo.js +1 -1
  14. package/development/breadcrumb.js +1 -1
  15. package/development/button/accent-button/accent-button.component.js +1 -1
  16. package/development/button/accent-button-link/accent-button-link.component.js +1 -1
  17. package/development/button/accent-button-static/accent-button-static.component.js +1 -1
  18. package/development/button/button/button.component.js +1 -1
  19. package/development/button/button-link/button-link.component.js +1 -1
  20. package/development/button/button-static/button-static.component.js +1 -1
  21. package/development/button/mini-button/mini-button.component.js +1 -1
  22. package/development/button/secondary-button/secondary-button.component.js +1 -1
  23. package/development/button/secondary-button-link/secondary-button-link.component.js +1 -1
  24. package/development/button/secondary-button-static/secondary-button-static.component.js +1 -1
  25. package/development/button/transparent-button/transparent-button.component.js +1 -1
  26. package/development/button/transparent-button-link/transparent-button-link.component.js +1 -1
  27. package/development/button/transparent-button-static/transparent-button-static.component.js +1 -1
  28. package/development/button-common-C-A7Dulr.js +1 -1
  29. package/development/button.js +1 -1
  30. package/development/calendar/calendar-month/calendar-month.component.js +1 -1
  31. package/development/calendar/calendar-weekday/calendar-weekday.component.js +1 -1
  32. package/development/calendar/calendar-weeknumber/calendar-weeknumber.component.js +1 -1
  33. package/development/calendar/calendar-year/calendar-year.component.js +1 -1
  34. package/development/calendar-cell-base-element-mWRSDeWc.js +1 -1
  35. package/development/calendar-day.component-BHvdRxll.js +1 -1
  36. package/development/calendar.component-CjlcDyS5.js +1 -1
  37. package/development/calendar.js +1 -1
  38. package/development/card/card-button/card-button.component.js +1 -1
  39. package/development/card/card-link/card-link.component.js +1 -1
  40. package/development/card-action-common-zS5iNz23.js +1 -1
  41. package/development/card-badge.component-CEfJdJBs.js +1 -1
  42. package/development/card.component-CL2gHoyP.js +1 -1
  43. package/development/card.js +1 -1
  44. package/development/carousel-item.component-B_0wdIAu.js +1 -1
  45. package/development/carousel-list.component-DpDh5tqB.js +1 -1
  46. package/development/carousel.component-ClWvnZ8s.js +1 -1
  47. package/development/carousel.js +1 -1
  48. package/development/checkbox-common-C3Ekixul.js +1 -1
  49. package/development/checkbox-group/checkbox-group.component.js +1 -1
  50. package/development/checkbox-group.js +1 -1
  51. package/development/checkbox-panel/checkbox-panel.component.js +1 -1
  52. package/development/checkbox-panel.js +1 -1
  53. package/development/checkbox.component-UbxCpZmi.js +1 -1
  54. package/development/checkbox.js +1 -1
  55. package/development/chip-group.component-Sgmi-kSy.js +1 -1
  56. package/development/chip-label.component-DHHNtvTt.js +1 -1
  57. package/development/chip-label.js +1 -1
  58. package/development/chip.component-Uuf3tGFz.js +1 -1
  59. package/development/chip.js +1 -1
  60. package/development/clock.component-DcM1WFTN.js +1 -1
  61. package/development/clock.js +1 -1
  62. package/development/compact-paginator.component-BgkpxaaD.js +1 -1
  63. package/development/container.component-D1Qgp4HW.js +1 -1
  64. package/development/container.js +1 -1
  65. package/development/core/a11y/arrow-navigation.js +1 -1
  66. package/development/core/a11y/fake-event-detection.js +1 -1
  67. package/development/core/a11y/focus-trap-controller.js +1 -1
  68. package/development/core/a11y/focus-visible-within-controller.js +1 -1
  69. package/development/core/a11y/focus.js +1 -1
  70. package/development/core/a11y/input-modality-detector.js +1 -1
  71. package/development/core/a11y/interactivity-checker.js +1 -1
  72. package/development/core/a11y/live-announcer.js +1 -1
  73. package/development/core/base-elements/action-base-element.js +1 -1
  74. package/development/core/base-elements/button-base-element.js +1 -1
  75. package/development/core/base-elements/link-base-element.js +1 -1
  76. package/development/core/base-elements/open-close-base-element.js +1 -1
  77. package/development/core/config/config.js +1 -1
  78. package/development/core/controllers/escapable-overlay-controller.js +1 -1
  79. package/development/core/controllers/id-reference-controller.js +1 -1
  80. package/development/core/controllers/inert-controller.js +1 -1
  81. package/development/core/controllers/language-controller.js +1 -1
  82. package/development/core/controllers/media-matchers-controller.js +1 -1
  83. package/development/core/controllers/overlay-position-controller.js +1 -1
  84. package/development/core/controllers/property-watcher-controller.js +1 -1
  85. package/development/core/datetime/date-adapter.js +1 -1
  86. package/development/core/datetime/native-date-adapter.js +1 -1
  87. package/development/core/datetime/temporal-date-adapter.js +1 -1
  88. package/development/core/decorators/force-type.js +1 -1
  89. package/development/core/decorators/get-override.js +1 -1
  90. package/development/core/decorators/handle-distinct-change.js +1 -1
  91. package/development/core/decorators/host-attributes.js +1 -1
  92. package/development/core/decorators/id-reference.js +1 -1
  93. package/development/core/decorators/omit-empty-converter.js +1 -1
  94. package/development/core/decorators/plain-date.js +1 -1
  95. package/development/core/dom/animation.js +1 -1
  96. package/development/core/dom/contains-pierce-shadow-dom.js +1 -1
  97. package/development/core/dom/platform.js +1 -1
  98. package/development/core/dom/queue-dom-content-loaded.js +1 -1
  99. package/development/core/dom/scroll.js +1 -1
  100. package/development/core/dom/set-or-remove-attribute.js +1 -1
  101. package/development/core/eventing/composed-path-has-attribute.js +1 -1
  102. package/development/core/eventing/event-target.js +1 -1
  103. package/development/core/eventing/form-element-handlers.js +1 -1
  104. package/development/core/eventing/forward-event.js +1 -1
  105. package/development/core/eventing/is-event-prevented.js +1 -1
  106. package/development/core/eventing/throttle.js +1 -1
  107. package/development/core/i18n/i18n.js +1 -1
  108. package/development/core/mixins/animation-complete-mixin.js +1 -1
  109. package/development/core/mixins/disabled-mixin.js +1 -1
  110. package/development/core/mixins/form-associated-checkbox-mixin.js +1 -1
  111. package/development/core/mixins/form-associated-input-mixin.js +1 -1
  112. package/development/core/mixins/form-associated-mixin.js +1 -1
  113. package/development/core/mixins/form-associated-radio-button-mixin.js +1 -1
  114. package/development/core/mixins/named-slot-list-mixin.js +1 -1
  115. package/development/core/mixins/negative-mixin.js +1 -1
  116. package/development/core/mixins/readonly-mixin.js +1 -1
  117. package/development/core/mixins/required-mixin.js +1 -1
  118. package/development/core/mixins/selection-panel-mixin.js +1 -1
  119. package/development/core/mixins/update-scheduler-mixin.js +1 -1
  120. package/development/core/overlay/overlay-option-panel.js +1 -1
  121. package/development/core/overlay/overlay-outside-pointer-event-listener.js +1 -1
  122. package/development/core/overlay/overlay-trigger-attributes.js +1 -1
  123. package/development/core/overlay/position.js +1 -1
  124. package/development/core/testing/event-spy.js +1 -1
  125. package/development/core/testing/mocha-extensions.js +1 -1
  126. package/development/core/testing/wait-for-condition.js +1 -1
  127. package/development/core/testing/wait-for-image-ready.js +1 -1
  128. package/development/core/testing/wait-for-render.js +1 -1
  129. package/development/date-input.component-HxRyCudr.js +1 -1
  130. package/development/date-input.js +1 -1
  131. package/development/datepicker/datepicker/datepicker.component.js +1 -1
  132. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.js +1 -1
  133. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +1 -1
  134. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.js +1 -1
  135. package/development/datepicker-button-BAT1ebzJ.js +1 -1
  136. package/development/datepicker.js +1 -1
  137. package/development/dialog-actions.component-e0ZTTUin.js +1 -1
  138. package/development/dialog-close-button.component-Idc00dB9.js +1 -1
  139. package/development/dialog-content.component-CThU7Z8A.js +1 -1
  140. package/development/dialog-title.component-0uNsUR2C.js +1 -1
  141. package/development/dialog.component-AItB8ixG.js +1 -1
  142. package/development/dialog.js +1 -1
  143. package/development/divider.component-Ck_0vISe.js +1 -1
  144. package/development/divider.js +1 -1
  145. package/development/element-BAsBayf5.js +1 -1
  146. package/development/error.component-WCkiwM7_.js +1 -1
  147. package/development/expansion-panel-content.component-Bs0pYNJO.js +1 -1
  148. package/development/expansion-panel-header.component-gg5A_7Pz.js +1 -1
  149. package/development/expansion-panel.component-DptYMbwV.js +1 -1
  150. package/development/expansion-panel.js +1 -1
  151. package/development/file-selector/file-selector/file-selector.component.js +1 -1
  152. package/development/file-selector-common-CGL95Rnw.js +1 -1
  153. package/development/file-selector-dropzone.component-B84OL4Xd.js +1 -1
  154. package/development/file-selector.js +1 -1
  155. package/development/flip-card-details.component-BYv_W66a.js +1 -1
  156. package/development/flip-card-summary.component-jLNjJUNl.js +1 -1
  157. package/development/flip-card.component-DujrPKzU.js +1 -1
  158. package/development/flip-card.js +1 -1
  159. package/development/footer.component-K2bWizjw.js +1 -1
  160. package/development/footer.js +1 -1
  161. package/development/form-field/form-field-clear/form-field-clear.component.js +1 -1
  162. package/development/form-field/form-field-text-counter/form-field-text-counter.component.js +1 -1
  163. package/development/form-field.component-CPWBCHer.js +1 -1
  164. package/development/form-field.js +1 -1
  165. package/development/header/header-button/header-button.component.js +1 -1
  166. package/development/header/header-link/header-link.component.js +1 -1
  167. package/development/header-action-common-Be0XQge2.js +1 -1
  168. package/development/header-environment.component-CIyxQwkQ.js +1 -1
  169. package/development/header.component-C4e7CNql.js +1 -1
  170. package/development/header.js +1 -1
  171. package/development/hint.component-BB9QLGGx.js +1 -1
  172. package/development/icon/icon-name-mixin.js +1 -1
  173. package/development/icon/icon-request.js +1 -1
  174. package/development/icon/icon-validate.js +1 -1
  175. package/development/icon/icon.component.js +1 -1
  176. package/development/icon-base-DrBHy9BT.js +1 -1
  177. package/development/icon-sidebar/icon-sidebar-button/icon-sidebar-button.component.js +1 -1
  178. package/development/icon-sidebar/icon-sidebar-link/icon-sidebar-link.component.js +1 -1
  179. package/development/icon-sidebar-container.component-CM94Spwy.js +1 -1
  180. package/development/icon-sidebar-content.component-BP9W5ZxR.js +1 -1
  181. package/development/icon-sidebar.component-B68P2aNh.js +1 -1
  182. package/development/icon-sidebar.js +1 -1
  183. package/development/icon.js +1 -1
  184. package/development/image.component-EfSMgHI_.js +1 -1
  185. package/development/image.js +1 -1
  186. package/development/inline-link-common-gmt6yz3v.js +1 -1
  187. package/development/journey-header.component-CA4juz9x.js +1 -1
  188. package/development/journey-header.js +1 -1
  189. package/development/lead-container.component-C_mFeq1B.js +1 -1
  190. package/development/lead-container.js +1 -1
  191. package/development/link/block-link/block-link.component.js +1 -1
  192. package/development/link/block-link-button/block-link-button.component.js +1 -1
  193. package/development/link/block-link-static/block-link-static.component.js +1 -1
  194. package/development/link/link/link.component.js +1 -1
  195. package/development/link/link-button/link-button.component.js +1 -1
  196. package/development/link/link-static/link-static.component.js +1 -1
  197. package/development/link-common-2RGn9Qz_.js +1 -1
  198. package/development/link-list-anchor.component-Csb-FOQL.js +1 -1
  199. package/development/link-list-anchor.js +1 -1
  200. package/development/link-list-base-CKT3c8yW.js +1 -1
  201. package/development/link-list.component-B90qHOUD.js +1 -1
  202. package/development/link-list.js +1 -1
  203. package/development/link.js +1 -1
  204. package/development/loading-indicator-circle.component-Cfjw5vyz.js +1 -1
  205. package/development/loading-indicator-circle.js +1 -1
  206. package/development/loading-indicator.component-By2VaLCf.js +1 -1
  207. package/development/loading-indicator.js +1 -1
  208. package/development/logo.component-DYKgAgq0.js +1 -1
  209. package/development/logo.js +1 -1
  210. package/development/map-container.component-D0UVTolK.js +1 -1
  211. package/development/map-container.js +1 -1
  212. package/development/menu/menu-button/menu-button.component.js +1 -1
  213. package/development/menu/menu-link/menu-link.component.js +1 -1
  214. package/development/menu-action-common-DRXQc85Y.js +1 -1
  215. package/development/menu.component-Cv9wRj4H.js +1 -1
  216. package/development/menu.js +1 -1
  217. package/development/message.component-CdO5GyE2.js +1 -1
  218. package/development/message.js +1 -1
  219. package/development/mini-button-group.component-VYKZf1rq.js +1 -1
  220. package/development/mini-button-link.component-kpRsi8I2.js +1 -1
  221. package/development/mini-calendar-day.component-BLkJ12Bw.js +1 -1
  222. package/development/mini-calendar-month.component-D8XjjLmN.js +1 -1
  223. package/development/mini-calendar.component-BOk8JovO.js +1 -1
  224. package/development/mini-calendar.js +1 -1
  225. package/development/navigation/navigation-button/navigation-button.component.js +1 -1
  226. package/development/navigation/navigation-link/navigation-link.component.js +1 -1
  227. package/development/navigation-action-common-fkYNyX19.js +1 -1
  228. package/development/navigation-list.component-Dvv-bZ2V.js +1 -1
  229. package/development/navigation-marker.component-DMqe-VlY.js +1 -1
  230. package/development/navigation-section.component-iaypc6yQ.js +1 -1
  231. package/development/navigation.component-CqNkBvEs.js +1 -1
  232. package/development/navigation.js +1 -1
  233. package/development/notification.component-BiJSo7Pl.js +1 -1
  234. package/development/notification.js +1 -1
  235. package/development/optgroup-base-element-CLfE6pmz.js +1 -1
  236. package/development/option/optgroup/optgroup.component.js +1 -1
  237. package/development/option/option/option-base-element.js +1 -1
  238. package/development/option-hint.component-DPfgcpVn.js +1 -1
  239. package/development/option.component-CV6cZnJe.js +1 -1
  240. package/development/option.js +1 -1
  241. package/development/overlay/overlay-base-element.js +1 -1
  242. package/development/overlay.component-rFmitc_r.js +1 -1
  243. package/development/overlay.js +1 -1
  244. package/development/paginator-common-BCeNUko_.js +1 -1
  245. package/development/paginator.component-BwLUSpDj.js +1 -1
  246. package/development/paginator.js +1 -1
  247. package/development/panel-mixin-DPybe45K.js +1 -1
  248. package/development/popover.component-BmTfHMFw.js +1 -1
  249. package/development/popover.js +1 -1
  250. package/development/radio-button-common-G0jLFo41.js +1 -1
  251. package/development/radio-button-group/radio-button-group.component.js +1 -1
  252. package/development/radio-button-group.js +1 -1
  253. package/development/radio-button-panel/radio-button-panel.component.js +1 -1
  254. package/development/radio-button-panel.js +1 -1
  255. package/development/radio-button.component-DnErH-1J.js +1 -1
  256. package/development/radio-button.js +1 -1
  257. package/development/select.component-CUjF11sq.js +1 -1
  258. package/development/select.js +1 -1
  259. package/development/selection-action-panel.component-BT0HmTja.js +1 -1
  260. package/development/selection-action-panel.js +1 -1
  261. package/development/selection-expansion-panel.component-BT78Qhbf.js +1 -1
  262. package/development/selection-expansion-panel.js +1 -1
  263. package/development/selection-group-base-element-DRT3Ctp2.js +1 -1
  264. package/development/sidebar/common/styles.js +1 -1
  265. package/development/sidebar-close-button.component-CXnf-P5H.js +1 -1
  266. package/development/sidebar-container.component-CxwDKxv9.js +1 -1
  267. package/development/sidebar-content.component-DbcREBUa.js +1 -1
  268. package/development/sidebar-title.component-BW04otyD.js +1 -1
  269. package/development/sidebar.component-mfXnE6WQ.js +1 -1
  270. package/development/sidebar.js +1 -1
  271. package/development/signet.component-k14RJ8FA.js +1 -1
  272. package/development/signet.js +1 -1
  273. package/development/skiplink-list.component-m7xm-pns.js +1 -1
  274. package/development/skiplink-list.js +1 -1
  275. package/development/slider.component-D_nLTlRF.js +1 -1
  276. package/development/slider.js +1 -1
  277. package/development/status.component-B9en2l26.js +1 -1
  278. package/development/status.js +1 -1
  279. package/development/step-label.component-Bo7Z0w7N.js +1 -1
  280. package/development/step.component-CcjtUFyR.js +1 -1
  281. package/development/stepper.component-80S-oXrH.js +1 -1
  282. package/development/stepper.js +1 -1
  283. package/development/sticky-bar.component-BJLtRvcd.js +1 -1
  284. package/development/styles-Cctez2BS.js +1 -1
  285. package/development/styles-WppEBrlW.js +1 -1
  286. package/development/tab-group.component-D4fvd6Uu.js +1 -1
  287. package/development/tab-label.component-CNX8bsJL.js +1 -1
  288. package/development/tab-nav-bar.component-B_mi8GGR.js +1 -1
  289. package/development/tab.component-BVhYPy5Y.js +1 -1
  290. package/development/table-wrapper.component-By59zmcU.js +1 -1
  291. package/development/table.js +1 -1
  292. package/development/tabs.js +1 -1
  293. package/development/tag-group.component-Db8prSBL.js +1 -1
  294. package/development/tag.component-DG1uxD28.js +1 -1
  295. package/development/tag.js +1 -1
  296. package/development/teaser-hero.component-BHMcPmdh.js +1 -1
  297. package/development/teaser-hero.js +1 -1
  298. package/development/teaser-panel.component-BRfbvmkb.js +1 -1
  299. package/development/teaser-panel.js +1 -1
  300. package/development/teaser-product/teaser-product-static/teaser-product-static.component.js +1 -1
  301. package/development/teaser-product-common-DOyLdTks.js +1 -1
  302. package/development/teaser-product.component-DMyuB-cH.js +1 -1
  303. package/development/teaser-product.js +1 -1
  304. package/development/teaser.component-CF_NUbwJ.js +1 -1
  305. package/development/teaser.js +1 -1
  306. package/development/time-input.component-XxzRoupm.js +1 -1
  307. package/development/time-input.js +1 -1
  308. package/development/timetable-form-details.component-BeuAZUQe.js +1 -1
  309. package/development/timetable-form-field.component-DC2z1Cwf.js +1 -1
  310. package/development/timetable-form-swap-button.component-CnbVc8Ok.js +1 -1
  311. package/development/timetable-form.component-C8DfPePn.js +1 -1
  312. package/development/timetable-form.js +1 -1
  313. package/development/timetable-occupancy-icon.component-UBmyZsTO.js +1 -1
  314. package/development/timetable-occupancy-icon.js +1 -1
  315. package/development/timetable-occupancy.component-DMm242Fr.js +1 -1
  316. package/development/timetable-occupancy.js +1 -1
  317. package/development/title-base-D_Rjyk_j.js +1 -1
  318. package/development/title.component-CMxYhTfw.js +1 -1
  319. package/development/title.js +1 -1
  320. package/development/toast.component-DonS3uQm.js +1 -1
  321. package/development/toast.js +1 -1
  322. package/development/toggle-check.component-BIV7jFIc.js +1 -1
  323. package/development/toggle-check.js +1 -1
  324. package/development/toggle-option.component-DRxwLSKU.js +1 -1
  325. package/development/toggle.component-B03k5qc1.js +1 -1
  326. package/development/toggle.js +1 -1
  327. package/development/tooltip.component-D8zik3p4.js +1 -1
  328. package/development/tooltip.js +1 -1
  329. package/development/train/train-formation-orientation-mixin.js +1 -1
  330. package/development/train/train-wagon/train-wagon.component.js +1 -1
  331. package/development/train/train-wagon-button/train-wagon-button.component.js +1 -1
  332. package/development/train/train-wagon-link/train-wagon-link.component.js +1 -1
  333. package/development/train-blocked-passage.component-Cxd7dBDC.js +1 -1
  334. package/development/train-formation.component-BEg6OPib.js +1 -1
  335. package/development/train-wagon-common-Dg-BjUtC.js +1 -1
  336. package/development/train.component-dECIGw2x.js +1 -1
  337. package/development/train.js +1 -1
  338. package/development/visual-checkbox.component-Dm8DNhH2.js +1 -1
  339. package/development/visual-checkbox.js +1 -1
  340. package/package.json +2 -2
@@ -804,4 +804,4 @@ var SbbSelectElement = (() => {
804
804
  //#endregion
805
805
  export { SbbSelectElement as t };
806
806
 
807
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC1DVWpGMTFzcS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvc2VsZWN0L3NlbGVjdC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLXNlbGVjdC1wbGFjZWhvbGRlci1mYWxsYmFjay1jb2xvcjogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3ItbWV0YWwpLFxuICAgIHZhcigtLXNiYi1jb2xvci1zbW9rZSlcbiAgKTtcbiAgLS1zYmItb3B0aW9ucy1wYW5lbC1pbnRlcm5hbC16LWluZGV4OiB2YXIoXG4gICAgLS1zYmItc2VsZWN0LXotaW5kZXgsXG4gICAgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KVxuICApO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG46aG9zdChbbmVnYXRpdmVdKSB7XG4gIC0tc2JiLXNlbGVjdC1wbGFjZWhvbGRlci1mYWxsYmFjay1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTUpO1xufVxuXG4uc2JiLXNlbGVjdF9fdHJpZ2dlciB7XG4gIEBpbmNsdWRlIHNiYi5lbGxpcHNpcztcblxuICBjdXJzb3I6IHZhcigtLXNiYi1jdXJzb3ItZGVmYXVsdCk7XG4gIGhlaWdodDogY2FsYygxZW0gKiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KSk7XG5cbiAgOmhvc3QoOm5vdCg6c3RhdGUoaGFzLWRpc3BsYXktdmFsdWUpKSkgJiB7XG4gICAgY29sb3I6IHZhcigtLXNiYi1zZWxlY3QtcGxhY2Vob2xkZXItY29sb3IsIHZhcigtLXNiYi1zZWxlY3QtcGxhY2Vob2xkZXItZmFsbGJhY2stY29sb3IpKTtcblxuICAgIC8vIE5vdGU6IHdoZW4gdGhlIHNiYi1zZWxlY3QgaXMgdXNlZCB3aXRoaW4gYSBzYmItZm9ybS1maWVsZCwgc29tZSBzdHlsZSBhcmUgYXBwbGllZCBmcm9tIGl0XG4gICAgLy8gKHNlZSBzZWxlY3RvciBgLnNiYi1mb3JtLWZpZWxkX19pbnB1dCA6OnNsb3R0ZWQoOndoZXJlKGlucHV0LCBzZWxlY3QsIHNiYi1zZWxlY3QpKWAgaW4gdGhlIHNiYi1mb3JtLWZpZWxkLnNjc3MpO1xuICAgIC8vIHNvLCBuZXh0IGxpbmUgaXMgbWFuZGF0b3J5IGJlY2F1c2Ugd2UgbmVlZCB0byBvdmVycmlkZSB0aGUgcnVsZSBmcm9tIHRoZSBwYXJlbnQuXG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHZhcihcbiAgICAgIC0tc2JiLXNlbGVjdC1wbGFjZWhvbGRlci1jb2xvcixcbiAgICAgIHZhcigtLXNiYi1zZWxlY3QtcGxhY2Vob2xkZXItZmFsbGJhY2stY29sb3IpXG4gICAgKTtcbiAgfVxufVxuXG4uc2JiLW9wdGlvbi1wYW5lbF9fb3ZlcmxheS1jb250YWluZXJbcG9wb3Zlcl0ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4iLCJpbXBvcnQgeyBNdXRhdGlvbkNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL211dGF0aW9uLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIG5vdGhpbmcsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHksIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcbmltcG9ydCB7IHVudGlsIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvdW50aWwuanMnO1xuXG5pbXBvcnQge1xuICBmb3JjZVR5cGUsXG4gIHR5cGUgRm9ybVJlc3RvcmVSZWFzb24sXG4gIHR5cGUgRm9ybVJlc3RvcmVTdGF0ZSxcbiAgZ2V0TmV4dEVsZW1lbnRJbmRleCxcbiAgZ2V0T3ZlcnJpZGUsXG4gIGhhbmRsZURpc3RpbmN0Q2hhbmdlLFxuICBpMThuU2VsZWN0aW9uUmVxdWlyZWQsXG4gIGlzRXZlbnRPbkVsZW1lbnQsXG4gIGlzTmV4dGpzLFxuICBpc1NhZmFyaSxcbiAgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24sXG4gIG9wdGlvblBhbmVsU3R5bGVzLFxuICBTYmJEaXNhYmxlZE1peGluLFxuICBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcixcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbixcbiAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLFxuICBTYmJOZWdhdGl2ZU1peGluLFxuICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbiAgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcixcbiAgU2JiUmVhZG9ubHlNaXhpbixcbiAgU2JiUmVxdWlyZWRNaXhpbixcbiAgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4sXG4gIHNjcm9sbGJhclN0eWxlcyxcbiAgc2V0T3JSZW1vdmVBdHRyaWJ1dGUsXG4gIHNldE92ZXJsYXlQb3NpdGlvbixcbn0gZnJvbSAnLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRpdmlkZXJFbGVtZW50IH0gZnJvbSAnLi4vZGl2aWRlci5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiRm9ybUZpZWxkRWxlbWVudCB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk9wdGlvbkVsZW1lbnQsIFNiYk9wdGlvbkhpbnRFbGVtZW50IH0gZnJvbSAnLi4vb3B0aW9uLnB1cmUudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zZWxlY3Quc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIE9uIFNhZmFyaSwgdGhlIGFyaWEgcm9sZSAnbGlzdGJveCcgbXVzdCBiZSBvbiB0aGUgaG9zdCBlbGVtZW50LCBvciBlbHNlIFZvaWNlT3ZlciB3b24ndCB3b3JrIGF0IGFsbC5cbiAqIE9uIHRoZSBvdGhlciBoYW5kLCBKQVdTIGFuZCBOVkRBIG5lZWQgdGhlIHJvbGUgdG8gYmUgYW4gXCJpbW1lZGlhdGUgcGFyZW50XCIgdG8gdGhlIG9wdGlvbnMsIG9yIGVsc2Ugb3B0Z3JvdXBzIHdvbid0IHdvcmsuXG4gKi9cbmNvbnN0IGFyaWFSb2xlT25Ib3N0ID0gaXNTYWZhcmk7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgcGFuZWwgd2l0aCBzZWxlY3RhYmxlIG9wdGlvbnMuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgb3B0aW9ucy5cbiAqIEBjc3Nwcm9wIFstLXNiYi1zZWxlY3Qtei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICogQGNzc3Byb3AgWy0tc2JiLW9wdGlvbnMtcGFuZWwtbWF4LWhlaWdodF0gLSBNYXhpbXVtIGhlaWdodCBvZiB0aGUgb3B0aW9ucyBwYW5lbC5cbiAqIElmIHRoZSBjYWxjdWxhdGVkIHJlbWFpbmluZyBzcGFjZSBpcyBzbWFsbGVyLCB0aGUgdmFsdWUgZ2V0cyBpZ25vcmVkLlxuICogQG92ZXJyaWRlVHlwZSB2YWx1ZSAtIChUID0gc3RyaW5nIHwgc3RyaW5nW10pIHwgbnVsbFxuICovXG5leHBvcnQgY2xhc3MgU2JiU2VsZWN0RWxlbWVudDxUID0gc3RyaW5nPiBleHRlbmRzIFNiYlVwZGF0ZVNjaGVkdWxlck1peGluKFxuICBTYmJEaXNhYmxlZE1peGluKFxuICAgIFNiYk5lZ2F0aXZlTWl4aW4oXG4gICAgICBTYmJSZXF1aXJlZE1peGluKFxuICAgICAgICBTYmJSZWFkb25seU1peGluKFxuICAgICAgICAgIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW48dHlwZW9mIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50PihTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICksXG4gICksXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1zZWxlY3QnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSBhcmlhUm9sZU9uSG9zdCA/ICdsaXN0Ym94JyA6IG51bGw7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtcbiAgICBzY3JvbGxiYXJTdHlsZXMsXG4gICAgb3B0aW9uUGFuZWxTdHlsZXMsXG4gICAgdW5zYWZlQ1NTKHN0eWxlKSxcbiAgXTtcblxuICAvLyBUT0RPOiBmaXggdXNpbmcgLi4uc3VwZXIuZXZlbnRzIHJlcXVpcmVzOiBodHRwczovL2dpdGh1Yi5jb20vc2JiLWRlc2lnbi1zeXN0ZW1zL2x5bmUtY29tcG9uZW50cy9pc3N1ZXMvMjYwMFxuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBjaGFuZ2U6ICdjaGFuZ2UnLFxuICAgIGlucHV0OiAnaW5wdXQnLFxuICAgIGRpc3BsYXl2YWx1ZWNoYW5nZTogJ2Rpc3BsYXl2YWx1ZWNoYW5nZScsXG4gICAgYmVmb3Jlb3BlbjogJ2JlZm9yZW9wZW4nLFxuICAgIG9wZW46ICdvcGVuJyxcbiAgICBiZWZvcmVjbG9zZTogJ2JlZm9yZWNsb3NlJyxcbiAgICBjbG9zZTogJ2Nsb3NlJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogVGhlIHBsYWNlaG9sZGVyIHVzZWQgaWYgbm8gdmFsdWUgaGFzIGJlZW4gc2VsZWN0ZWQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBzZWxlY3QgYWxsb3dzIGZvciBtdWx0aXBsZSBzZWxlY3Rpb24uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAaGFuZGxlRGlzdGluY3RDaGFuZ2UoKGU6IFNiYlNlbGVjdEVsZW1lbnQ8VD4sIG5ld1ZhbHVlOiBib29sZWFuKSA9PlxuICAgIGUuX29uTXVsdGlwbGVDaGFuZ2VkKG5ld1ZhbHVlKSxcbiAgKVxuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBGdW5jdGlvbiB1c2VkIHRvIGNvbXBhcmUgb3B0aW9uIHZhbHVlcy4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgY29tcGFyZVdpdGg6ICh2MTogVCB8IG51bGwsIHYyOiBUIHwgbnVsbCkgPT4gYm9vbGVhbiA9ICh2MSwgdjIpID0+IHYxID09PSB2MjtcblxuICBAZm9yY2VUeXBlKClcbiAgQGhhbmRsZURpc3RpbmN0Q2hhbmdlKChlOiBTYmJTZWxlY3RFbGVtZW50PFQ+LCBuZXdWYWx1ZTogYm9vbGVhbikgPT5cbiAgICBlLl9jbG9zZU9uRGlzYWJsZWRSZWFkb25seUNoYW5nZWQobmV3VmFsdWUpLFxuICApXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgQGdldE92ZXJyaWRlKChlOiBTYmJTZWxlY3RFbGVtZW50PFQ+LCB2OiBib29sZWFuKTogYm9vbGVhbiA9PiB2IHx8IGUuaXNEaXNhYmxlZEV4dGVybmFsbHkoKSlcbiAgcHVibGljIG92ZXJyaWRlIGFjY2Vzc29yIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFZhbHVlIG9mIHRoZSBmb3JtIGVsZW1lbnQuICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IFRbXSB8IFQpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuX2lzVmFsdWVNYW51YWxseUFzc2lnbmVkID0gdHJ1ZTtcbiAgICB0aGlzLl91cGRhdGVPcHRpb25zRnJvbVZhbHVlKCk7XG4gIH1cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBUW10gfCBUIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG4gIHByaXZhdGUgX3ZhbHVlOiBUIHwgVFtdIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFNpemUgdmFyaWFudCwgZWl0aGVyIHMgKGxlYW4gdGhlbWUgZGVmYXVsdCkgb3IgbSAoc3RhbmRhcmQgdGhlbWUgZGVmYXVsdCkuXG4gICAqIFdoZW4gcGxhY2VkIGluc2lkZSBhbiBgPHNiYi1mb3JtLWZpZWxkPmAsIHRoZSBzaXplIGlzIGluaGVyaXRlZCBmcm9tIHRoZSBmb3JtIGZpZWxkLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3MnIHwgJ20nIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIEZvcm0gdHlwZSBvZiBlbGVtZW50LlxuICAgKiBAZGVmYXVsdCAnc2VsZWN0LW9uZSAvIHNlbGVjdC1tdWx0aXBsZSdcbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm11bHRpcGxlID8gJ3NlbGVjdC1tdWx0aXBsZScgOiAnc2VsZWN0LW9uZSc7XG4gIH1cblxuICAvKiogVGhlIHZhbHVlIGRpc3BsYXllZCBieSB0aGUgY29tcG9uZW50LiAqL1xuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9kaXNwbGF5VmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgX3Jlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgIHRhcmdldDogbnVsbCxcbiAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICAvLyBUaGlzIGlzIGFuIElJRkUsIGJlY2F1c2Ugd2UgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoZSB0aW1lb3V0IHN0YXRlXG4gICAgLy8gZm9yIGRlYm91bmNpbmcgdGhlIHJlc2l6ZSBjYWxsYmFja3MuXG4gICAgY2FsbGJhY2s6ICgoKSA9PiB7XG4gICAgICBsZXQgdGltZW91dElkOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICAgICAgICB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldE92ZXJsYXlQb3NpdGlvbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMTApO1xuICAgICAgfTtcbiAgICB9KSgpLFxuICB9KTtcblxuICBwcml2YXRlIF9vdmVybGF5ITogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX29yaWdpbkVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyPzogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlciA9IG5ldyBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfb3ZlcmxheUlkID0gYHNiYi1zZWxlY3QtJHsrK25leHRJZH1gO1xuICBwcml2YXRlIF9hY3RpdmVJdGVtSW5kZXggPSAtMTtcbiAgcHJpdmF0ZSBfc2VhcmNoVGltZW91dD86IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuICBwcml2YXRlIF9zZWFyY2hTdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBfZGlkTG9hZCA9IGZhbHNlO1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPbk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2VDb250cm9sbGVyID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfaXNWYWx1ZU1hbnVhbGx5QXNzaWduZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlICdjb21ib2JveCcgaW5wdXQgZWxlbWVudFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBnZXQgaW5wdXRFbGVtZW50KCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3RyaWdnZXJFbGVtZW50ID8/IG51bGw7XG4gIH1cblxuICAvKiogUmV0dXJucyBhbGwgU2JiT3B0aW9uRWxlbWVudHMgZnJvbSB0aGlzIHNiYi1zZWxlY3QgaW5zdGFuY2UuICovXG4gIHB1YmxpYyBnZXQgb3B0aW9ucygpOiBTYmJPcHRpb25FbGVtZW50PFQ+W10ge1xuICAgIGNvbnN0IG9wdGlvbnM6IFNiYk9wdGlvbkVsZW1lbnQ8VD5bXSA9IFtdO1xuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbD8uPFNiYk9wdGlvbkVsZW1lbnQ8VD4+KCdzYmItb3B0aW9uJykuZm9yRWFjaCgob3B0aW9uKSA9PiB7XG4gICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKG9wdGlvbik7XG4gICAgICBvcHRpb25zLnB1c2gob3B0aW9uKTtcbiAgICB9KTtcbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdvcHRpb25zZWxlY3Rpb25jaGFuZ2UnLCAoZTogRXZlbnQpID0+IHRoaXMuX29uT3B0aW9uQ2hhbmdlZChlKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ29wdGlvbkxhYmVsQ2hhbmdlZCcsIChlOiBFdmVudCkgPT4gdGhpcy5fb25PcHRpb25MYWJlbENoYW5nZWQoZSkpO1xuICAgIC8qKiBGb3JjZXMgdGhlIHNiYi1zZWxlY3QgdG8gdXBkYXRlIGhpcyB2YWx1ZS4gKi9cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignybVvcHRpb252YWx1ZWNoYW5nZScsICgpID0+IHRoaXMuX3VwZGF0ZVZhbHVlT3B0aW9uU3RhdGUoKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ8m1b3B0Z3JvdXBzbG90Y2hhbmdlJywgKCkgPT4gdGhpcy5fdXBkYXRlVmFsdWVPcHRpb25TdGF0ZSgpLCB7XG4gICAgICBjYXB0dXJlOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsIChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBlLnRhcmdldCBhcyBTYmJTZWxlY3RFbGVtZW50PFQ+IHwgU2JiT3B0aW9uRWxlbWVudDxUPjtcbiAgICAgIGlmICh0YXJnZXQubG9jYWxOYW1lID09PSAnc2JiLW9wdGlvbicpIHtcbiAgICAgICAgLy8gT3B0aW9uIGNsaWNrXG4gICAgICAgIGlmICghdGhpcy5tdWx0aXBsZSAmJiAhdGFyZ2V0LmRpc2FibGVkKSB7XG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fdG9nZ2xlT3BlbmluZygpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgbmV3IE11dGF0aW9uQ29udHJvbGxlcih0aGlzLCB7XG4gICAgICAgIGNvbmZpZzogeyBhdHRyaWJ1dGVGaWx0ZXI6IFsnYXJpYS1sYWJlbGxlZGJ5JywgJ2FyaWEtbGFiZWwnLCAnYXJpYS1kZXNjcmliZWRieSddIH0sXG4gICAgICAgIGNhbGxiYWNrOiAoKSA9PiB0aGlzLl9zeW5jQXJpYUxhYmVscygpLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIHRoaXMuYWRkQ29udHJvbGxlcihcbiAgICAgIG5ldyBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyKHRoaXMsICgpID0+IHRoaXMuY2xvc2VzdCgnc2JiLWZvcm0tZmllbGQnKSwge1xuICAgICAgICBuZWdhdGl2ZTogKGUpID0+IHtcbiAgICAgICAgICB0aGlzLm5lZ2F0aXZlID0gZS5uZWdhdGl2ZTtcbiAgICAgICAgICB0aGlzLl9zeW5jTmVnYXRpdmUoKTtcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9zeW5jQXJpYUxhYmVscygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3RyaWdnZXJFbGVtZW50IHx8IGlzU2VydmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc2V0T3JSZW1vdmVBdHRyaWJ1dGUoXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCxcbiAgICAgICdhcmlhLWxhYmVsbGVkYnknLFxuICAgICAgdGhpcy5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWxsZWRieScpLFxuICAgICk7XG4gICAgc2V0T3JSZW1vdmVBdHRyaWJ1dGUodGhpcy5fdHJpZ2dlckVsZW1lbnQsICdhcmlhLWxhYmVsJywgdGhpcy5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnKSk7XG4gICAgc2V0T3JSZW1vdmVBdHRyaWJ1dGUoXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCxcbiAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JyxcbiAgICAgIHRoaXMuZ2V0QXR0cmlidXRlKCdhcmlhLWRlc2NyaWJlZGJ5JyksXG4gICAgKTtcblxuICAgIC8vIFVzaW5nIHRoZSBhc3NvY2lhdGVkIGxhYmVscyBpcyBvbmx5IGEgZmFsbGJhY2suXG4gICAgLy8gVGhlIGRyYXdiYWNrIGlzLCB0aGF0IGl0IGRvZXNuJ3QgZ2V0IHVwZGF0ZWQgYXV0b21hdGljYWxseSB3aGVuIHRoZSBsaXN0IG9mIGxhYmVsIGNoYW5nZXMuXG4gICAgaWYgKFxuICAgICAgIXRoaXMuZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJykgJiZcbiAgICAgICF0aGlzLmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbGxlZGJ5JykgJiZcbiAgICAgIHRoaXMuaW50ZXJuYWxzLmxhYmVscy5sZW5ndGhcbiAgICApIHtcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICdhcmlhLWxhYmVsJyxcbiAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmludGVybmFscy5sYWJlbHMsIChsYWJlbCkgPT4gbGFiZWwudGV4dENvbnRlbnQpLmpvaW4oJywgJyksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBPcGVucyB0aGUgc2VsZWN0aW9uIHBhbmVsLiAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnN0YXRlID09PSAnb3BlbmluZycgfHxcbiAgICAgIHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnIHx8XG4gICAgICAhdGhpcy5fb3ZlcmxheSB8fFxuICAgICAgdGhpcy5vcHRpb25zLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgdGhpcy5kaXNhYmxlZCB8fFxuICAgICAgdGhpcy5mb3JtRGlzYWJsZWQgfHxcbiAgICAgICF0aGlzLmRpc3BhdGNoQmVmb3JlT3BlbkV2ZW50KClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCdbcG9wb3Zlcl0nKT8uc2hvd1BvcG92ZXI/LigpO1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnZXhwYW5kZWQnKTtcbiAgICB0aGlzLl9zZXRPdmVybGF5UG9zaXRpb24oKTtcbiAgICB0aGlzLl9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5jb25uZWN0KCk7XG4gICAgdGhpcy5fYXR0YWNoT3BlblBhbmVsRXZlbnRzKCk7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDbG9zZXMgdGhlIHNlbGVjdGlvbiBwYW5lbC4gKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnY2xvc2luZycgfHwgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NlZCcgfHwgIXRoaXMuZGlzcGF0Y2hCZWZvcmVDbG9zZUV2ZW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NpbmcnO1xuICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ2V4cGFuZGVkJyk7XG4gICAgdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICBpZiAodGhpcy5fb3JpZ2luRWxlbWVudCkge1xuICAgICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIudW5vYnNlcnZlKHRoaXMuX29yaWdpbkVsZW1lbnQpO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBjbG9zZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKHRoaXMsICctLXNiYi1vcHRpb25zLXBhbmVsLWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGN1cnJlbnQgZGlzcGxheWVkIHZhbHVlLiAqL1xuICBwdWJsaWMgZ2V0RGlzcGxheVZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlWYWx1ZSA/PyAnJztcbiAgfVxuXG4gIHByaXZhdGUgX3NlbGVjdGFibGVPcHRpb25zKCk6IFNiYk9wdGlvbkVsZW1lbnQ8VD5bXSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5maWx0ZXIoKG9wdCkgPT4gIW9wdC5tYXRjaGVzKCc6c3RhdGUoZGlzYWJsZWQpJykpO1xuICB9XG5cbiAgLyoqIExpc3RlbnMgdG8gb3B0aW9uIGNoYW5nZXMuICovXG4gIHByaXZhdGUgX29uT3B0aW9uQ2hhbmdlZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgU2JiT3B0aW9uRWxlbWVudDxUPjtcbiAgICBpZiAodGFyZ2V0LnNlbGVjdGVkKSB7XG4gICAgICB0aGlzLl9vbk9wdGlvblNlbGVjdGVkKHRhcmdldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX29uT3B0aW9uRGVzZWxlY3RlZCh0YXJnZXQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBMaXN0ZW5zIHRvIG9wdGlvbiBjaGFuZ2VzLiAqL1xuICBwcml2YXRlIF9vbk9wdGlvbkxhYmVsQ2hhbmdlZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgU2JiT3B0aW9uRWxlbWVudDxUPjtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuX2dldFNlbGVjdGVkKCk7XG5cbiAgICBpZiAoXG4gICAgICAoIUFycmF5LmlzQXJyYXkoc2VsZWN0ZWQpICYmIHRhcmdldCAhPT0gc2VsZWN0ZWQpIHx8XG4gICAgICAoQXJyYXkuaXNBcnJheShzZWxlY3RlZCkgJiYgIXNlbGVjdGVkLmluY2x1ZGVzKHRhcmdldCkpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVEaXNwbGF5VmFsdWUoKTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLl9nZXRTZWxlY3RlZCgpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHNlbGVjdGVkKSkge1xuICAgICAgdGhpcy5fZGlzcGxheVZhbHVlID0gc2VsZWN0ZWQubWFwKChvKSA9PiBvLnRleHRDb250ZW50Py50cmltKCkpLmpvaW4oJywgJykgfHwgbnVsbDtcbiAgICB9IGVsc2UgaWYgKHNlbGVjdGVkKSB7XG4gICAgICB0aGlzLl9kaXNwbGF5VmFsdWUgPSBzZWxlY3RlZD8udGV4dENvbnRlbnQ/LnRyaW0oKSB8fCBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9kaXNwbGF5VmFsdWUgPSBudWxsO1xuICAgIH1cblxuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ2hhcy1kaXNwbGF5LXZhbHVlJywgISF0aGlzLl9kaXNwbGF5VmFsdWUpO1xuXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2Rpc3BsYXl2YWx1ZWNoYW5nZScsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBgdmFsdWVgIHByb3BlcnR5IHNob3VsZCBiZSBhZGFwdGVkIHdoZW4gdGhlIGBtdWx0aXBsZWAgcHJvcGVydHkgY2hhbmdlczpcbiAgICogICAtIGlmIGl0IGNoYW5nZXMgdG8gdHJ1ZSwgdGhlICd2YWx1ZScgaXMgc2V0IHRvIGFuIGFycmF5O1xuICAgKiAgIC0gaWYgaXQgY2hhbmdlcyB0byBmYWxzZSwgdGhlIGZpcnN0IGF2YWlsYWJsZSBvcHRpb24gaXMgc2V0IGFzICd2YWx1ZScgb3RoZXJ3aXNlIGl0J3Mgc2V0IHRvIG51bGwuXG4gICAqL1xuICBwcml2YXRlIF9vbk11bHRpcGxlQ2hhbmdlZChpc0NoYW5naW5nVG9NdWx0aXBsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChpc0NoYW5naW5nVG9NdWx0aXBsZSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9pc1ZhbHVlTWFudWFsbHlBc3NpZ25lZCB8fCB0aGlzLnZhbHVlICE9IG51bGwgPyBbdGhpcy52YWx1ZSBhcyBUXSA6IFtdO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLnZhbHVlLmxlbmd0aCA/IHRoaXMudmFsdWVbMF0gOiBudWxsO1xuICAgIH1cbiAgICB0aGlzLl91cGRhdGVEaXNwbGF5VmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgYGRpc2FibGVkYCBvciB0aGUgYHJlYWRvbmx5YCBwcm9wZXJ0aWVzIGFyZSBzZXQsIGFuZCB0aGUgcGFuZWwgaXMgb3BlbiwgY2xvc2UgaXQuXG4gICAqL1xuICBwcml2YXRlIF9jbG9zZU9uRGlzYWJsZWRSZWFkb25seUNoYW5nZWQobmV3VmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoKHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJyB8fCB0aGlzLnN0YXRlID09PSAnb3BlbmVkJykgJiYgbmV3VmFsdWUpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy5fdXBkYXRlVmFsdWVPcHRpb25TdGF0ZSgpO1xuXG4gICAgLy8gV2FpdCBmb3Igc3NyIGh5ZHJhdGlvblxuICAgIGlmICghaXNOZXh0anMoKSkge1xuICAgICAgdGhpcy5zdGFydFVwZGF0ZSgpO1xuICAgICAgdGhpcy5fc2V0dXBTZWxlY3QoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBvdmVycmlkZSBmb2N1cygpOiB2b2lkIHtcbiAgICAvLyBGb3J3YXJkIGZvY3VzIHRvIHRoZSB0cmlnZ2VyIGVsZW1lbnQuXG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LmZvY3VzKCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBvdmVycmlkZSBibHVyKCk6IHZvaWQge1xuICAgIC8vIEZvcndhcmQgYmx1ciB0byB0aGUgdHJpZ2dlciBlbGVtZW50LlxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5ibHVyKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBlbGVtZW50J3MgZmlyc3QgYXR0cmlidXRlIHdob3NlIHF1YWxpZmllZCBuYW1lIGlzIHF1YWxpZmllZE5hbWUuXG4gICAqXG4gICAqIFtNRE4gUmVmZXJlbmNlXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvRWxlbWVudC9yZW1vdmVBdHRyaWJ1dGUpXG4gICAqIEBpbnRlcm5hbCBXZSBuZWVkIHRvIG92ZXJyaWRlIHRoaXMgZHVlIHRvIGEgaHlkcmF0aW9uIGlzc3VlIHdpdGggTmV4dC5qcy5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSByZW1vdmVBdHRyaWJ1dGUocXVhbGlmaWVkTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gSW4gTmV4dC5qcyB0aGUgaHlkcmF0aW9uIG5lZWRzIHRvIGZpbmlzaCBiZWZvcmUgd2UgY2FuIG1hbmlwdWxhdGUgdGhlIGxpZ2h0IERPTS5cbiAgICAvLyBAbGl0L3JlYWN0IGNhbGxzIHJlbW92ZUF0dHJpYnV0ZSgnZGVmZXItaHlkcmF0aW9uJykgaW4gYSB1c2VMYXlvdXRFZmZlY3QsXG4gICAgLy8gd2hpY2ggaXMgZG9uZSBhZnRlciBoeWRyYXRpb24gaXMgZmluaXNoZWQuIER1ZSB0byB0aGlzIHdlIGludGVyY2VwdCB0aGlzIGNhbGxcbiAgICAvLyBpbiBvdmVycmlkaW5nIHJlbW92ZUF0dHJpYnV0ZSB0byBmaW5pc2ggaW5pdGlhbGl6YXRpb24gb2YgdGhlIHNiYi1zZWxlY3QuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2xpdC9saXQvYmxvYi9tYWluL3BhY2thZ2VzL3JlYWN0L3NyYy9jcmVhdGUtY29tcG9uZW50LnRzI0wyOTMtTDI5NlxuICAgIC8vIFdlIGFsc28gbmVlZCB0byB3YWl0IGZvciB1cGRhdGUgY29tcGxldGUgaW4gb3JkZXIgdG8gYmUgc3VyZSB0aGF0IHRoZSBzaGFkb3cgRE9NIGhhcyBiZWVuIHJlbmRlcmVkLlxuICAgIGlmIChpc05leHRqcygpICYmIHF1YWxpZmllZE5hbWUgPT09ICdkZWZlci1oeWRyYXRpb24nICYmICF0aGlzLl9kaWRMb2FkKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4gdGhpcy5fc2V0dXBTZWxlY3QoKSk7XG4gICAgfVxuICAgIHN1cGVyLnJlbW92ZUF0dHJpYnV0ZShxdWFsaWZpZWROYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgaWYgKGFyaWFSb2xlT25Ib3N0KSB7XG4gICAgICB0aGlzLmlkIHx8PSB0aGlzLl9vdmVybGF5SWQ7XG4gICAgfVxuXG4gICAgdGhpcy5fc3luY05lZ2F0aXZlKCk7XG4gICAgdGhpcy5fc3luY0FyaWFMYWJlbHMoKTtcblxuICAgIGlmICh0aGlzLl9kaWRMb2FkKSB7XG4gICAgICB0aGlzLl9zZXR1cE9yaWdpbigpO1xuICAgICAgdGhpcy5fc2V0dXBUcmlnZ2VyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG4gICAgaWYgKCFuYW1lICYmIHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl9zeW5jQXJpYUxhYmVscygpKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ25lZ2F0aXZlJykpIHtcbiAgICAgIHRoaXMuX3N5bmNOZWdhdGl2ZSgpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdyZWFkT25seScpKSB7XG4gICAgICB0aGlzLl9jbG9zZU9uRGlzYWJsZWRSZWFkb25seUNoYW5nZWQodGhpcy5yZWFkT25seSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIC8vIFRha2UgYmFjayB0aGUgdHJpZ2dlciBlbGVtZW50IHByZXZpb3VzbHkgbW92ZWQgdG8gdGhlIGxpZ2h0IERPTS5cbiAgICAvLyBEdWUgdG8gdGltaW5nIGlzc3VlcywgdGhpcyBuZWVkcyB0byBiZSBkb25lIGJlZm9yZSBjYWxsaW5nIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCkuXG4gICAgaWYgKHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICB0aGlzLnByZXBlbmQodGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuICAgIH1cbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHJlc2V0IHZhbHVlIGlzIHRoZSBhdHRyaWJ1dGUgdmFsdWUgKHRoZSBzZXR1cCB2YWx1ZSksIG51bGwgb3RoZXJ3aXNlLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gKHRoaXMuaGFzQXR0cmlidXRlKCd2YWx1ZScpID8gdGhpcy5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJykgOiBudWxsKSBhcyBUO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgX3JlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24sXG4gICk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IHZhbHVlLCBtYW51YWxseUFzc2lnbmVkIH0gPSBKU09OLnBhcnNlKHN0YXRlIGFzIHN0cmluZykgYXMge1xuICAgICAgICB2YWx1ZTogVCB8IFRbXTtcbiAgICAgICAgbWFudWFsbHlBc3NpZ25lZDogYm9vbGVhbjtcbiAgICAgIH07XG5cbiAgICAgIHRoaXMuX2lzVmFsdWVNYW51YWxseUFzc2lnbmVkID0gbWFudWFsbHlBc3NpZ25lZDtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLl91cGRhdGVPcHRpb25zRnJvbVZhbHVlKCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICBjb25zb2xlLndhcm4oYEZhaWxlZCB0byByZXN0b3JlIHNiYi1zZWxlY3Qgd2l0aCBzdGF0ZSAke3N0YXRlfWApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmb3JtU3RhdGUoKTogRm9ybVJlc3RvcmVTdGF0ZSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHsgdmFsdWU6IHRoaXMudmFsdWUsIG1hbnVhbGx5QXNzaWduZWQ6IHRoaXMuX2lzVmFsdWVNYW51YWxseUFzc2lnbmVkIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3luY05lZ2F0aXZlKCk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbD8uPFNiYkRpdmlkZXJFbGVtZW50IHwgU2JiT3B0aW9uSGludEVsZW1lbnQ+KFxuICAgICAgJ3NiYi1kaXZpZGVyLCBzYmItb3B0aW9uLWhpbnQnLFxuICAgICkuZm9yRWFjaCgoZWwpID0+IChlbC5uZWdhdGl2ZSA9IHRoaXMubmVnYXRpdmUpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdXBlci5zaG91bGRWYWxpZGF0ZShuYW1lKSB8fCBuYW1lID09PSAndmFsdWUnIHx8IG5hbWUgPT09ICdyZXF1aXJlZCc7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgc3VwZXIudmFsaWRhdGUoKTtcblxuICAgIGNvbnN0IHZhbHVlOiBUW10gPSBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpXG4gICAgICA/IHRoaXMudmFsdWVcbiAgICAgIDogdGhpcy52YWx1ZSA9PT0gbnVsbFxuICAgICAgICA/IFtdXG4gICAgICAgIDogW3RoaXMudmFsdWVdO1xuXG4gICAgaWYgKFxuICAgICAgdGhpcy5yZXF1aXJlZCAmJlxuICAgICAgKHRoaXMub3B0aW9ucy5ldmVyeSgobykgPT4gdmFsdWUuZXZlcnkoKHYpID0+ICF0aGlzLmNvbXBhcmVXaXRoKHYsIG8udmFsdWUpKSkgfHxcbiAgICAgICAgKCF0aGlzLl9pc1ZhbHVlTWFudWFsbHlBc3NpZ25lZCAmJiB0aGlzLnZhbHVlID09IG51bGwpKVxuICAgICkge1xuICAgICAgdGhpcy5zZXRWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycsIGkxOG5TZWxlY3Rpb25SZXF1aXJlZFt0aGlzLl9sYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0dXBTZWxlY3QoKTogdm9pZCB7XG4gICAgdGhpcy5fc2V0dXBPcmlnaW4oKTtcbiAgICB0aGlzLl9zZXR1cFRyaWdnZXIoKTtcbiAgICB0aGlzLl9kaWRMb2FkID0gdHJ1ZTtcbiAgICB0aGlzLmNvbXBsZXRlVXBkYXRlKCk7XG4gIH1cblxuICAvKiogU2V0cyB0aGUgb3JpZ2luRWxlbWVudDsgaWYgdGhlIGNvbXBvbmVudCBpcyB1c2VkIGluIGEgc2JiLWZvcm0tZmllbGQgdXNlcyBpdCwgb3RoZXJ3aXNlIHVzZXMgdGhlIHBhcmVudEVsZW1lbnQuICovXG4gIHByaXZhdGUgX3NldHVwT3JpZ2luKCk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1GaWVsZCA9IHRoaXMuY2xvc2VzdD8uPFNiYkZvcm1GaWVsZEVsZW1lbnQ+KCdzYmItZm9ybS1maWVsZCcpO1xuICAgIGlmICh0aGlzLl9vcmlnaW5FbGVtZW50KSB7XG4gICAgICB0aGlzLl9yZXNpemVPYnNlcnZlci51bm9ic2VydmUodGhpcy5fb3JpZ2luRWxlbWVudCk7XG4gICAgfVxuICAgIHRoaXMuX29yaWdpbkVsZW1lbnQgPVxuICAgICAgZm9ybUZpZWxkPy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yPy4oJyNvdmVybGF5LWFuY2hvcicpID8/IHRoaXMucGFyZW50RWxlbWVudCE7XG4gICAgaWYgKHRoaXMuX29yaWdpbkVsZW1lbnQpIHtcbiAgICAgIHRoaXMudG9nZ2xlU3RhdGUoJ29wdGlvbi1wYW5lbC1vcmlnaW4tYm9yZGVybGVzcycsIGZvcm1GaWVsZD8uaGFzQXR0cmlidXRlPy4oJ2JvcmRlcmxlc3MnKSk7XG5cbiAgICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuX29yaWdpbkVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUbyBhc3Nlc3Mgc2NyZWVuLXJlYWRlcnMgcHJvYmxlbXMgY2F1c2VkIGJ5IHRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIGFyaWEgcGF0dGVybnMgYW5kIHNoYWRvdyBET00sXG4gICAqIHdlIGFyZSBmb3JjZWQgdG8gbW92ZSB0aGUgJ2NvbWJvYm94JyB0cmlnZ2VyIGVsZW1lbnQgdG8gdGhlIGxpZ2h0IERPTVxuICAgKi9cbiAgcHJpdmF0ZSBfc2V0dXBUcmlnZ2VyKCk6IHZvaWQge1xuICAgIC8vIE1vdmUgdGhlIHRyaWdnZXIgYmVmb3JlIHRoZSBzYmItc2VsZWN0XG4gICAgaWYgKHRoaXMucGFyZW50RWxlbWVudCAmJiB0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5wYXJlbnRFbGVtZW50Lmluc2VydEJlZm9yZT8uKHRoaXMuX3RyaWdnZXJFbGVtZW50LCB0aGlzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXRPdmVybGF5UG9zaXRpb24oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9vcmlnaW5FbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHNldE92ZXJsYXlQb3NpdGlvbihcbiAgICAgIHRoaXMuX292ZXJsYXksXG4gICAgICB0aGlzLl9vcmlnaW5FbGVtZW50LFxuICAgICAgdGhpcy5fb3ZlcmxheSxcbiAgICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignLnNiYi1vcHRpb24tcGFuZWxfX292ZXJsYXktY29udGFpbmVyJykhLFxuICAgICAgdGhpcyxcbiAgICApO1xuICB9XG5cbiAgLy8gSW4gcmFyZSBjYXNlcyBpdCBjYW4gYmUgdGhhdCB0aGUgYW5pbWF0aW9uRW5kIGV2ZW50IGlzIHRyaWdnZXJlZCB0d2ljZS5cbiAgLy8gVG8gYXZvaWQgZW50ZXJpbmcgYSBjb3JydXB0IHN0YXRlLCBleGl0IHdoZW4gc3RhdGUgaXMgbm90IGV4cGVjdGVkLlxuICBwcml2YXRlIF9vbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4nICYmIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVPcGVuaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ3RydWUnKTtcbiAgICBpZiAodGhpcy5fb3JpZ2luRWxlbWVudCkge1xuICAgICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9vcmlnaW5FbGVtZW50KTtcbiAgICB9XG4gICAgdGhpcy5kaXNwYXRjaE9wZW5FdmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignW3BvcG92ZXJdJyk/LmhpZGVQb3BvdmVyPy4oKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gICAgdGhpcy5fcmVzZXRBY3RpdmVFbGVtZW50KCk7XG4gICAgdGhpcy5fb3ZlcmxheS5zY3JvbGxUb3AgPSAwO1xuICAgIHRoaXMuX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLmRpc3BhdGNoQ2xvc2VFdmVudCgpO1xuICB9XG5cbiAgLyoqIFdoZW4gYW4gb3B0aW9uIGlzIHNlbGVjdGVkLCB1cGRhdGVzIHRoZSBkaXNwbGF5VmFsdWU7IGl0IGFsc28gY2xvc2VzIHRoZSBzZWxlY3QgaWYgbm90IGBtdWx0aXBsZWAuICovXG4gIHByaXZhdGUgX29uT3B0aW9uU2VsZWN0ZWQob3B0aW9uOiBTYmJPcHRpb25FbGVtZW50PFQ+KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IG9wdGlvbi52YWx1ZTtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IFtvcHRpb24udmFsdWUhXTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSAmJlxuICAgICAgIXRoaXMudmFsdWUuc29tZSgodikgPT4gdGhpcy5jb21wYXJlV2l0aCh2LCBvcHRpb24udmFsdWUhKSlcbiAgICApIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gWy4uLnRoaXMudmFsdWUsIG9wdGlvbi52YWx1ZSFdO1xuICAgIH1cblxuICAgIHRoaXMuX3VwZGF0ZU9wdGlvbnNGcm9tVmFsdWUoKTtcbiAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnRzKCk7XG4gIH1cblxuICAvKiogV2hlbiBhbiBvcHRpb24gaXMgdW5zZWxlY3RlZCBpbiBgbXVsdGlwbGVgLCByZW1vdmVzIGl0IGZyb20gdmFsdWUgYW5kIHVwZGF0ZXMgZGlzcGxheVZhbHVlLiAqL1xuICBwcml2YXRlIF9vbk9wdGlvbkRlc2VsZWN0ZWQob3B0aW9uU2VsZWN0aW9uQ2hhbmdlOiBTYmJPcHRpb25FbGVtZW50PFQ+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLnZhbHVlLmZpbHRlcigoZWwpID0+ICF0aGlzLmNvbXBhcmVXaXRoKGVsLCBvcHRpb25TZWxlY3Rpb25DaGFuZ2UudmFsdWUpKTtcbiAgICAgIHRoaXMuX3VwZGF0ZU9wdGlvbnNGcm9tVmFsdWUoKTtcbiAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudHMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9kaXNwYXRjaElucHV0RXZlbnRzKCk6IHZvaWQge1xuICAgIC8qKiBUaGUgaW5wdXQgZXZlbnQgZmlyZXMgd2hlbiB0aGUgdmFsdWUgaGFzIGJlZW4gY2hhbmdlZCBhcyBhIGRpcmVjdCByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbi4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7XG4gICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBjaGFuZ2UgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBtb2RpZmllcyB0aGUgZWxlbWVudCdzIHZhbHVlLlxuICAgICAqIFVubGlrZSB0aGUgaW5wdXQgZXZlbnQsIHRoZSBjaGFuZ2UgZXZlbnQgaXMgbm90IG5lY2Vzc2FyaWx5IGZpcmVkXG4gICAgICogZm9yIGVhY2ggYWx0ZXJhdGlvbiB0byBhbiBlbGVtZW50J3MgdmFsdWUuXG4gICAgICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgX2F0dGFjaE9wZW5QYW5lbEV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gICAgLy8gUmVjYWxjdWxhdGUgdGhlIG92ZXJsYXkgcG9zaXRpb24gb24gc2Nyb2xsIGFuZCB3aW5kb3cgcmVzaXplXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4gdGhpcy5fc2V0T3ZlcmxheVBvc2l0aW9uKCksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgLy8gV2l0aG91dCBjYXB0dXJlLCBvdGhlciBzY3JvbGwgY29udGV4dHMgd291bGQgbm90IGJ1YmJsZSB0byB0aGlzIGV2ZW50IGxpc3RlbmVyLlxuICAgICAgLy8gQ2FwdHVyZSBhbGxvd3MgdXMgdG8gcmVhY3QgdG8gYWxsIHNjcm9sbCBjb250ZXh0cyBpbiB0aGlzIERPTS5cbiAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsICgpID0+IHRoaXMuX3NldE92ZXJsYXlQb3NpdGlvbigpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcblxuICAgIC8vIENsb3NlIG1lbnUgb24gYmFja2Ryb3AgY2xpY2tcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCAoZXYpID0+IHRoaXMuX3BvaW50ZXJEb3duTGlzdGVuZXIoZXYpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCAoZXYpID0+IHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrKGV2KSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX29uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJyB8fCB0aGlzLnN0YXRlID09PSAnb3BlbmVkJykge1xuICAgICAgdGhpcy5fb3BlbmVkUGFuZWxLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdGUgPT09ICdjbG9zZWQnIHx8IHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJykge1xuICAgICAgdGhpcy5fY2xvc2VkUGFuZWxLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jbG9zZWRQYW5lbEtleWJvYXJkSW50ZXJhY3Rpb24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fY2hlY2tGb3JMZXR0ZXJTZWxlY3Rpb24oZXZlbnQpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2V0TmV4dEFjdGl2ZU9wdGlvbkJ5VGV4dChldmVudCk7XG4gICAgfVxuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgIGNhc2UgJyAnOlxuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb3BlbmVkUGFuZWxLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fY2hlY2tGb3JMZXR0ZXJTZWxlY3Rpb24oZXZlbnQpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2V0TmV4dEFjdGl2ZU9wdGlvbkJ5VGV4dChldmVudCk7XG4gICAgfVxuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ1RhYic6XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgIGNhc2UgJyAnOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLl9zZWxlY3RCeUtleWJvYXJkKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuX3NldE5leHRBY3RpdmVPcHRpb24oZXZlbnQpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnSG9tZSc6XG4gICAgICBjYXNlICdQYWdlVXAnOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLl9zZXROZXh0QWN0aXZlT3B0aW9uKGV2ZW50LCAwKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0VuZCc6XG4gICAgICBjYXNlICdQYWdlRG93bic6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuX3NldE5leHRBY3RpdmVPcHRpb24oZXZlbnQsIHRoaXMuX3NlbGVjdGFibGVPcHRpb25zKCkubGVuZ3RoIC0gMSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrRm9yTGV0dGVyU2VsZWN0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgfHxcbiAgICAgIGV2ZW50LmtleSA9PT0gJ0NsZWFyJyB8fFxuICAgICAgKGV2ZW50LmtleS5sZW5ndGggPT09IDEgJiZcbiAgICAgICAgZXZlbnQua2V5ICE9PSAnICcgJiZcbiAgICAgICAgIWV2ZW50LmFsdEtleSAmJlxuICAgICAgICAhZXZlbnQuY3RybEtleSAmJlxuICAgICAgICAhZXZlbnQubWV0YUtleSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0TmV4dEFjdGl2ZU9wdGlvbkJ5VGV4dChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIC8vIFNldCB0aW1lb3V0IGFuZCB0aGUgc3RyaW5nIHRvIHNlYXJjaC5cbiAgICBpZiAodHlwZW9mIHRoaXMuX3NlYXJjaFRpbWVvdXQgPT09IHR5cGVvZiBzZXRUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fc2VhcmNoVGltZW91dCk7XG4gICAgfVxuICAgIHRoaXMuX3NlYXJjaFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLl9zZWFyY2hTdHJpbmcgPSAnJyksIDEwMDApO1xuICAgIHRoaXMuX3NlYXJjaFN0cmluZyArPSBldmVudC5rZXk7XG5cbiAgICAvLyBSZW9yZGVyIHRoZSBfZmlsdGVyZWRPcHRpb24gYXJyYXkgdG8gaGF2ZSB0aGUgbGFzdCBzZWxlY3RlZCBlbGVtZW50IGF0IHRoZSBib3R0b20uXG4gICAgY29uc3QgaW5kZXhGb3JTbGljZTogbnVtYmVyID0gdGhpcy5fYWN0aXZlSXRlbUluZGV4ICsgMTtcbiAgICBjb25zdCBzZWxlY3RhYmxlT3B0aW9ucyA9IHRoaXMuX3NlbGVjdGFibGVPcHRpb25zKCk7XG4gICAgY29uc3QgZmlsdGVyZWRPcHRpb25zU29ydGVkID0gW1xuICAgICAgLi4uc2VsZWN0YWJsZU9wdGlvbnMuc2xpY2UoaW5kZXhGb3JTbGljZSksXG4gICAgICAuLi5zZWxlY3RhYmxlT3B0aW9ucy5zbGljZSgwLCBpbmRleEZvclNsaWNlKSxcbiAgICBdO1xuXG4gICAgY29uc3QgbWF0Y2ggPSBmaWx0ZXJlZE9wdGlvbnNTb3J0ZWQuZmluZChcbiAgICAgIChvcHRpb24pID0+IG9wdGlvbi50ZXh0Q29udGVudD8udG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMuX3NlYXJjaFN0cmluZy50b0xvd2VyQ2FzZSgpKSA9PT0gMCxcbiAgICApO1xuICAgIGlmIChtYXRjaCkge1xuICAgICAgLy8gSWYgYW4gZXhhY3QgbWF0Y2ggaGFzIGJlZW4gZm91bmQsIGdvIHRvIHRoYXQgb3B0aW9uLlxuICAgICAgdGhpcy5fc2V0TmV4dEFjdGl2ZU9wdGlvbihldmVudCwgc2VsZWN0YWJsZU9wdGlvbnMuaW5kZXhPZihtYXRjaCkpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0aGlzLl9zZWFyY2hTdHJpbmcubGVuZ3RoID4gMSAmJlxuICAgICAgbmV3IFJlZ0V4cChgXiR7dGhpcy5fc2VhcmNoU3RyaW5nLmNoYXJBdCgwKX0qJGApLnRlc3QodGhpcy5fc2VhcmNoU3RyaW5nKVxuICAgICkge1xuICAgICAgLy8gSWYgbm8gZXhhY3QgbWF0Y2ggaGFzIGJlZW4gZm91bmQgYnV0IHRoZSBzdHJpbmcgdG8gc2VhcmNoIGlzIG1hZGUgYnkgdGhlIHNhbWUgcmVwZWF0ZWQgbGV0dGVyLFxuICAgICAgLy8gZ28gdG8gdGhlIGZpcnN0IGVsZW1lbnQsIGlmIGV4aXN0cywgdGhhdCBtYXRjaGVzIHRoZSBsZXR0ZXIuXG4gICAgICBjb25zdCBmaXJzdE1hdGNoID0gZmlsdGVyZWRPcHRpb25zU29ydGVkLmZpbmQoXG4gICAgICAgIChvcHRpb24pID0+XG4gICAgICAgICAgb3B0aW9uLnRleHRDb250ZW50Py50b0xvd2VyQ2FzZSgpLmluZGV4T2YodGhpcy5fc2VhcmNoU3RyaW5nWzBdLnRvTG93ZXJDYXNlKCkpID09PSAwLFxuICAgICAgKTtcbiAgICAgIGlmIChmaXJzdE1hdGNoKSB7XG4gICAgICAgIHRoaXMuX3NldE5leHRBY3RpdmVPcHRpb24oZXZlbnQsIHNlbGVjdGFibGVPcHRpb25zLmluZGV4T2YoZmlyc3RNYXRjaCkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBObyBtYXRjaCBmb3VuZCwgY2xlYXIgdGhlIHRpbWVvdXQgYW5kIHRoZSBzZWFyY2ggdGVybS5cbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9zZWFyY2hUaW1lb3V0KTtcbiAgICAgIHRoaXMuX3NlYXJjaFN0cmluZyA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NlbGVjdEJ5S2V5Ym9hcmQoKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlT3B0aW9uID0gdGhpcy5fc2VsZWN0YWJsZU9wdGlvbnMoKVt0aGlzLl9hY3RpdmVJdGVtSW5kZXhdO1xuXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIGFjdGl2ZU9wdGlvbj8uWydzZWxlY3RWaWFVc2VySW50ZXJhY3Rpb24nXSghYWN0aXZlT3B0aW9uLnNlbGVjdGVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NldE5leHRBY3RpdmVPcHRpb24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGluZGV4PzogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gdGhpcy5fc2VsZWN0YWJsZU9wdGlvbnMoKTtcblxuICAgIC8vIFByZXZlbnQga2V5Ym9hcmQgbmF2aWdhdGlvbiBpZiBhbGwgb3B0aW9ucyBhcmUgZGlzYWJsZWRcbiAgICBpZiAoZmlsdGVyZWRPcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5leHRJbmRleCA9XG4gICAgICBpbmRleCA/PyBnZXROZXh0RWxlbWVudEluZGV4KGV2ZW50LCB0aGlzLl9hY3RpdmVJdGVtSW5kZXgsIGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpO1xuICAgIGNvbnN0IG5leHRPcHRpb24gPSBmaWx0ZXJlZE9wdGlvbnNbbmV4dEluZGV4XTtcbiAgICBjb25zdCBhY3RpdmVPcHRpb24gPSBmaWx0ZXJlZE9wdGlvbnNbdGhpcy5fYWN0aXZlSXRlbUluZGV4XTtcblxuICAgIHRoaXMuX3NldEFjdGl2ZUVsZW1lbnQobmV4dE9wdGlvbiwgYWN0aXZlT3B0aW9uKTtcblxuICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgdGhpcy5fc2V0U2VsZWN0ZWRFbGVtZW50KG5leHRPcHRpb24sIGFjdGl2ZU9wdGlvbik7XG4gICAgfSBlbHNlIGlmIChldmVudD8uc2hpZnRLZXkpIHtcbiAgICAgIG5leHRPcHRpb25bJ3NlbGVjdFZpYVVzZXJJbnRlcmFjdGlvbiddKCFuZXh0T3B0aW9uLnNlbGVjdGVkKTtcbiAgICB9XG4gICAgdGhpcy5fYWN0aXZlSXRlbUluZGV4ID0gbmV4dEluZGV4O1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0QWN0aXZlRWxlbWVudChcbiAgICBuZXh0QWN0aXZlT3B0aW9uOiBTYmJPcHRpb25FbGVtZW50PFQ+LFxuICAgIGxhc3RBY3RpdmVPcHRpb246IFNiYk9wdGlvbkVsZW1lbnQ8VD4gfCBudWxsID0gbnVsbCxcbiAgICBzZXRBY3RpdmVEZXNjZW5kYW50ID0gdHJ1ZSxcbiAgKTogdm9pZCB7XG4gICAgbmV4dEFjdGl2ZU9wdGlvbi5zZXRBY3RpdmUodHJ1ZSk7XG4gICAgbmV4dEFjdGl2ZU9wdGlvbi5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcgfSk7XG5cbiAgICBpZiAoc2V0QWN0aXZlRGVzY2VuZGFudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1hY3RpdmVkZXNjZW5kYW50JywgbmV4dEFjdGl2ZU9wdGlvbi5pZCk7XG4gICAgfVxuXG4gICAgLy8gUmVzZXQgdGhlIHByZXZpb3VzXG4gICAgaWYgKGxhc3RBY3RpdmVPcHRpb24gJiYgIXRoaXMuY29tcGFyZVdpdGgobGFzdEFjdGl2ZU9wdGlvbi52YWx1ZSwgbmV4dEFjdGl2ZU9wdGlvbi52YWx1ZSkpIHtcbiAgICAgIGxhc3RBY3RpdmVPcHRpb24uc2V0QWN0aXZlKGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXRTZWxlY3RlZEVsZW1lbnQoXG4gICAgbmV4dEFjdGl2ZU9wdGlvbjogU2JiT3B0aW9uRWxlbWVudDxUPixcbiAgICBsYXN0QWN0aXZlT3B0aW9uOiBTYmJPcHRpb25FbGVtZW50PFQ+LFxuICApOiB2b2lkIHtcbiAgICBuZXh0QWN0aXZlT3B0aW9uWydzZWxlY3RWaWFVc2VySW50ZXJhY3Rpb24nXSh0cnVlKTtcblxuICAgIGlmIChsYXN0QWN0aXZlT3B0aW9uICYmICF0aGlzLmNvbXBhcmVXaXRoKGxhc3RBY3RpdmVPcHRpb24udmFsdWUsIG5leHRBY3RpdmVPcHRpb24udmFsdWUpKSB7XG4gICAgICBsYXN0QWN0aXZlT3B0aW9uWydzZWxlY3RWaWFVc2VySW50ZXJhY3Rpb24nXShmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXRBY3RpdmVFbGVtZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSB0aGlzLl9zZWxlY3RhYmxlT3B0aW9ucygpW3RoaXMuX2FjdGl2ZUl0ZW1JbmRleF07XG5cbiAgICBpZiAoYWN0aXZlRWxlbWVudCkge1xuICAgICAgYWN0aXZlRWxlbWVudC5zZXRBY3RpdmUoZmFsc2UpO1xuICAgIH1cbiAgICB0aGlzLl9hY3RpdmVJdGVtSW5kZXggPSAtMTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8ucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnKTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBwb2ludGVyZG93biBldmVudCB0YXJnZXQgaXMgdHJpZ2dlcmVkIG9uIHRoZSBtZW51LlxuICBwcml2YXRlIF9wb2ludGVyRG93bkxpc3RlbmVyID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICB0aGlzLl9pc1BvaW50ZXJEb3duRXZlbnRPbk1lbnUgPSBpc0V2ZW50T25FbGVtZW50KHRoaXMuX292ZXJsYXksIGV2ZW50KTtcbiAgfTtcblxuICAvLyBDbG9zZSBtZW51IG9uIGJhY2tkcm9wIGNsaWNrLlxuICBwcml2YXRlIF9jbG9zZU9uQmFja2Ryb3BDbGljayA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uTWVudSAmJlxuICAgICAgIWlzRXZlbnRPbkVsZW1lbnQodGhpcy5fb3ZlcmxheSwgZXZlbnQpICYmXG4gICAgICAhaXNFdmVudE9uRWxlbWVudCh0aGlzLl9vcmlnaW5FbGVtZW50LCBldmVudClcbiAgICApIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfdXBkYXRlT3B0aW9uc0Zyb21WYWx1ZSgpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgPyB0aGlzLnZhbHVlIDogW3RoaXMudmFsdWVdO1xuXG4gICAgY29uc3QgZGlzcGxheVZhbHVlcyA9IFtdO1xuICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIHRoaXMub3B0aW9ucykge1xuICAgICAgb3B0aW9uLnNlbGVjdGVkID0gdmFsdWUuc29tZSgodikgPT4gdGhpcy5jb21wYXJlV2l0aCh2LCBvcHRpb24udmFsdWUpKTtcbiAgICAgIGlmIChvcHRpb24uc2VsZWN0ZWQpIHtcbiAgICAgICAgZGlzcGxheVZhbHVlcy5wdXNoKG9wdGlvbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fdXBkYXRlRGlzcGxheVZhbHVlKCk7XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkpIHtcbiAgICAgIGNvbnN0IHZhbHVlOiBUIHwgbnVsbCA9IHRoaXMudmFsdWU7XG4gICAgICB0aGlzLl9hY3RpdmVJdGVtSW5kZXggPSB0aGlzLl9zZWxlY3RhYmxlT3B0aW9ucygpLmZpbmRJbmRleCgob3B0aW9uKSA9PlxuICAgICAgICB0aGlzLmNvbXBhcmVXaXRoKG9wdGlvbi52YWx1ZSwgdmFsdWUpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVWYWx1ZUZyb21PcHRpb25zKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5fZ2V0U2VsZWN0ZWQoKTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHNlbGVjdGVkKSkge1xuICAgICAgaWYgKHNlbGVjdGVkICYmIHNlbGVjdGVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgdmFsdWU6IFRbXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBzZWxlY3RlZCkge1xuICAgICAgICAgIHZhbHVlLnB1c2gob3B0aW9uLnZhbHVlISk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHNlbGVjdGVkKSB7XG4gICAgICB0aGlzLl9hY3RpdmVJdGVtSW5kZXggPSB0aGlzLl9zZWxlY3RhYmxlT3B0aW9ucygpLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24gPT09IHNlbGVjdGVkKTtcbiAgICAgIHRoaXMuX3ZhbHVlID0gc2VsZWN0ZWQudmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy5fdXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVWYWx1ZU9wdGlvblN0YXRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pc1ZhbHVlTWFudWFsbHlBc3NpZ25lZCkge1xuICAgICAgdGhpcy5fdXBkYXRlT3B0aW9uc0Zyb21WYWx1ZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl91cGRhdGVWYWx1ZUZyb21PcHRpb25zKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0U2VsZWN0ZWQoKTogU2JiT3B0aW9uRWxlbWVudDxUPiB8IFNiYk9wdGlvbkVsZW1lbnQ8VD5bXSB8IG51bGwge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PiBvcHRpb24uc2VsZWN0ZWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnNlbGVjdGVkKSA/PyBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3RvZ2dsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5mb3JtRGlzYWJsZWQgfHwgdGhpcy5yZWFkT25seSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8uZm9jdXMoKTtcblxuICAgIHN3aXRjaCAodGhpcy5zdGF0ZSkge1xuICAgICAgY2FzZSAnb3BlbmluZyc6XG4gICAgICBjYXNlICdvcGVuZWQnOiB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdjbG9zaW5nJzpcbiAgICAgIGNhc2UgJ2Nsb3NlZCc6IHtcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc3ByZWFkRGVmZXJyZWREaXNwbGF5VmFsdWUoXG4gICAgcGxhY2Vob2xkZXI6IFRlbXBsYXRlUmVzdWx0LFxuICApOiAoVGVtcGxhdGVSZXN1bHQgfCBQcm9taXNlPFRlbXBsYXRlUmVzdWx0PilbXSB7XG4gICAgcmV0dXJuIFt0aGlzLl9kZWZlcnJlZERpc3BsYXlWYWx1ZShwbGFjZWhvbGRlciksIHBsYWNlaG9sZGVyXTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2RlZmVycmVkRGlzcGxheVZhbHVlKHBsYWNlaG9sZGVyOiBUZW1wbGF0ZVJlc3VsdCk6IFByb21pc2U8VGVtcGxhdGVSZXN1bHQ+IHtcbiAgICBpZiAodGhpcy5oeWRyYXRpb25SZXF1aXJlZCkge1xuICAgICAgYXdhaXQgdGhpcy5oeWRyYXRpb25Db21wbGV0ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlWYWx1ZSA/IGh0bWxgJHt0aGlzLl9kaXNwbGF5VmFsdWV9YCA6IHBsYWNlaG9sZGVyO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgLy8gU2Nyb2xsIGFyZWFzIHdpdGhvdXQgY29udGFpbmluZyBhbiBpbnRlcmFjdGl2ZSBlbGVtZW50IHdpbGwgcmVjZWl2ZSBmb2N1cyB3aGVuIHRhYmJpbmcgdGhyb3VnaCB0aGUgZG9jdW1lbnQuXG4gICAgLy8gSWYgdGhlcmUgYXJlIGEgbG90IG9mIG9wdGlvbnMgYW5kIHdoZW4gcHJlc3NpbmcgdGFiIGtleSwgdGhlIHNjcm9sbCBhcmVhIG9uIHNiYi1zZWxlY3RfX29wdGlvbnMgZ2V0cyBmb2N1cy5cbiAgICAvLyBBcyBlbGVtZW50cyBpbnNpZGUgdGhlIHBhbmVsIHNob3VsZCBuZXZlciBnZXQgZm9jdXMsIHdlIGhhdmUgdG8gYXZvaWQgdGhhdCBieSBzZXR0aW5nIHRhYmluZGV4PS0xLlxuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8IS0tIFRoaXMgZWxlbWVudCBpcyB2aXN1YWxseSBoaWRkZW4gYW5kIHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlIGxpZ2h0IERPTSB0byBhbGxvdyBzY3JlZW5cbiAgICAgIHJlYWRlcnMgdG8gd29yayBwcm9wZXJseSAtLT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5IHNiYi1zZWxlY3QtdHJpZ2dlclwiXG4gICAgICAgIHRhYmluZGV4PSR7dGhpcy5kaXNhYmxlZCB8fCB0aGlzLmZvcm1EaXNhYmxlZCA/IG5vdGhpbmcgOiAnMCd9XG4gICAgICAgIHJvbGU9XCJjb21ib2JveFwiXG4gICAgICAgIGFyaWEtaGFzcG9wdXA9XCJsaXN0Ym94XCJcbiAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcbiAgICAgICAgYXJpYS1yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWQudG9TdHJpbmcoKX1cbiAgICAgICAgYXJpYS1jb250cm9scz0ke3RoaXMuX292ZXJsYXlJZH1cbiAgICAgICAgYXJpYS1vd25zPSR7dGhpcy5fb3ZlcmxheUlkfVxuICAgICAgICBAa2V5ZG93bj0ke3RoaXMuX29uS2V5RG93bn1cbiAgICAgICAgQGNsaWNrPSR7dGhpcy5fdG9nZ2xlT3BlbmluZ31cbiAgICAgICAgJHtyZWYoKHJlZikgPT4gKHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gcmVmIGFzIEhUTUxFbGVtZW50KSl9XG4gICAgICA+XG4gICAgICAgICR7dW50aWwoLi4udGhpcy5fc3ByZWFkRGVmZXJyZWREaXNwbGF5VmFsdWUoaHRtbGAke3RoaXMucGxhY2Vob2xkZXJ9YCkpfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gVmlzdWFsbHkgZGlzcGxheSB0aGUgdmFsdWUgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXNlbGVjdF9fdHJpZ2dlclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAke3VudGlsKC4uLnRoaXMuX3NwcmVhZERlZmVycmVkRGlzcGxheVZhbHVlKGh0bWxgJHt0aGlzLnBsYWNlaG9sZGVyfWApKX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLW9wdGlvbi1wYW5lbF9fb3ZlcmxheS1jb250YWluZXJcIiBwb3BvdmVyPVwibWFudWFsXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNiYi1vcHRpb24tcGFuZWxfX292ZXJsYXkgJHt0aGlzLm5lZ2F0aXZlXG4gICAgICAgICAgICA/ICdzYmItc2Nyb2xsYmFyLW5lZ2F0aXZlJ1xuICAgICAgICAgICAgOiAnc2JiLXNjcm9sbGJhcid9XCJcbiAgICAgICAgICBpZD0keyFhcmlhUm9sZU9uSG9zdCA/IHRoaXMuX292ZXJsYXlJZCA6IG5vdGhpbmd9XG4gICAgICAgICAgcm9sZT0keyFhcmlhUm9sZU9uSG9zdCA/ICdsaXN0Ym94JyA6IG5vdGhpbmd9XG4gICAgICAgICAgP2FyaWEtbXVsdGlzZWxlY3RhYmxlPSR7dGhpcy5tdWx0aXBsZX1cbiAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9XG4gICAgICAgICAgJHtyZWYoKGRpYWxvZ1JlZikgPT4gKHRoaXMuX292ZXJsYXkgPSBkaWFsb2dSZWYgYXMgSFRNTEVsZW1lbnQpKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5fdXBkYXRlVmFsdWVPcHRpb25TdGF0ZX0+PC9zbG90PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1zZWxlY3QnOiBTYmJTZWxlY3RFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUNxREEsSUFBTSxpQkFBaUI7QUFFdkIsSUFBSSxTQUFTOzs7Ozs7Ozs7Ozs7SUFhQSwwQkFBZ0I7bUJBQXFCLHdCQUNoRCxpQkFDRSxpQkFDRSxpQkFDRSxpQkFDRSx1QkFBdUQsd0JBQXdCLENBQ2hGLENBQ0YsQ0FDRixDQUNGLENBQ0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztjQVZZLHlCQUFxQyxZQVVqRDs7OzhCQXFCRSxXQUFXLEVBQ1gsVUFBVSxDQUFBOztJQUlWLFdBQVc7SUFDWCxzQkFBc0IsR0FBd0IsYUFDN0MsRUFBRSxtQkFBbUIsU0FBUyxDQUMvQjtJQUNBLFNBQVM7S0FBRSxTQUFTO0tBQU0sTUFBTTtLQUFTLENBQUE7SUFBQzs4QkFJMUMsU0FBUyxFQUFFLFdBQVcsT0FBTyxDQUFDLENBQUE7O0lBRzlCLFdBQVc7SUFDWCxzQkFBc0IsR0FBd0IsYUFDN0MsRUFBRSxnQ0FBZ0MsU0FBUyxDQUM1QztJQUNBLFNBQVM7S0FBRSxTQUFTO0tBQU0sTUFBTTtLQUFTLENBQUM7SUFDMUMsYUFBYSxHQUF3QixNQUF3QixLQUFLLEVBQUUsc0JBQXNCLENBQUE7SUFBQzs0QkFJM0YsVUFBVSxDQUFBO3VCQWVWLFNBQVMsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFBO2dDQVczQixPQUFPLENBQUE7R0FqRFIsYUFBQSxNQUFBLE1BQUEseUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxpQkFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFXLE1BQUEsS0FBQSxVQUFBO01BQUEsSUFBWCxjQUFXOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsMkJBQUEs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
807
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC1DVWpGMTFzcS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvc2VsZWN0L3NlbGVjdC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLXNlbGVjdC1wbGFjZWhvbGRlci1mYWxsYmFjay1jb2xvcjogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3ItbWV0YWwpLFxuICAgIHZhcigtLXNiYi1jb2xvci1zbW9rZSlcbiAgKTtcbiAgLS1zYmItb3B0aW9ucy1wYW5lbC1pbnRlcm5hbC16LWluZGV4OiB2YXIoXG4gICAgLS1zYmItc2VsZWN0LXotaW5kZXgsXG4gICAgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KVxuICApO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG46aG9zdChbbmVnYXRpdmVdKSB7XG4gIC0tc2JiLXNlbGVjdC1wbGFjZWhvbGRlci1mYWxsYmFjay1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTUpO1xufVxuXG4uc2JiLXNlbGVjdF9fdHJpZ2dlciB7XG4gIEBpbmNsdWRlIHNiYi5lbGxpcHNpcztcblxuICBjdXJzb3I6IHZhcigtLXNiYi1jdXJzb3ItZGVmYXVsdCk7XG4gIGhlaWdodDogY2FsYygxZW0gKiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KSk7XG5cbiAgOmhvc3QoOm5vdCg6c3RhdGUoaGFzLWRpc3BsYXktdmFsdWUpKSkgJiB7XG4gICAgY29sb3I6IHZhcigtLXNiYi1zZWxlY3QtcGxhY2Vob2xkZXItY29sb3IsIHZhcigtLXNiYi1zZWxlY3QtcGxhY2Vob2xkZXItZmFsbGJhY2stY29sb3IpKTtcblxuICAgIC8vIE5vdGU6IHdoZW4gdGhlIHNiYi1zZWxlY3QgaXMgdXNlZCB3aXRoaW4gYSBzYmItZm9ybS1maWVsZCwgc29tZSBzdHlsZSBhcmUgYXBwbGllZCBmcm9tIGl0XG4gICAgLy8gKHNlZSBzZWxlY3RvciBgLnNiYi1mb3JtLWZpZWxkX19pbnB1dCA6OnNsb3R0ZWQoOndoZXJlKGlucHV0LCBzZWxlY3QsIHNiYi1zZWxlY3QpKWAgaW4gdGhlIHNiYi1mb3JtLWZpZWxkLnNjc3MpO1xuICAgIC8vIHNvLCBuZXh0IGxpbmUgaXMgbWFuZGF0b3J5IGJlY2F1c2Ugd2UgbmVlZCB0byBvdmVycmlkZSB0aGUgcnVsZSBmcm9tIHRoZSBwYXJlbnQuXG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHZhcihcbiAgICAgIC0tc2JiLXNlbGVjdC1wbGFjZWhvbGRlci1jb2xvcixcbiAgICAgIHZhcigtLXNiYi1zZWxlY3QtcGxhY2Vob2xkZXItZmFsbGJhY2stY29sb3IpXG4gICAgKTtcbiAgfVxufVxuXG4uc2JiLW9wdGlvbi1wYW5lbF9fb3ZlcmxheS1jb250YWluZXJbcG9wb3Zlcl0ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4iLCJpbXBvcnQgeyBNdXRhdGlvbkNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL211dGF0aW9uLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIG5vdGhpbmcsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHksIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcbmltcG9ydCB7IHVudGlsIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvdW50aWwuanMnO1xuXG5pbXBvcnQge1xuICBmb3JjZVR5cGUsXG4gIHR5cGUgRm9ybVJlc3RvcmVSZWFzb24sXG4gIHR5cGUgRm9ybVJlc3RvcmVTdGF0ZSxcbiAgZ2V0TmV4dEVsZW1lbnRJbmRleCxcbiAgZ2V0T3ZlcnJpZGUsXG4gIGhhbmRsZURpc3RpbmN0Q2hhbmdlLFxuICBpMThuU2VsZWN0aW9uUmVxdWlyZWQsXG4gIGlzRXZlbnRPbkVsZW1lbnQsXG4gIGlzTmV4dGpzLFxuICBpc1NhZmFyaSxcbiAgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24sXG4gIG9wdGlvblBhbmVsU3R5bGVzLFxuICBTYmJEaXNhYmxlZE1peGluLFxuICBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcixcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbixcbiAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLFxuICBTYmJOZWdhdGl2ZU1peGluLFxuICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbiAgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcixcbiAgU2JiUmVhZG9ubHlNaXhpbixcbiAgU2JiUmVxdWlyZWRNaXhpbixcbiAgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4sXG4gIHNjcm9sbGJhclN0eWxlcyxcbiAgc2V0T3JSZW1vdmVBdHRyaWJ1dGUsXG4gIHNldE92ZXJsYXlQb3NpdGlvbixcbn0gZnJvbSAnLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRpdmlkZXJFbGVtZW50IH0gZnJvbSAnLi4vZGl2aWRlci5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiRm9ybUZpZWxkRWxlbWVudCB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk9wdGlvbkVsZW1lbnQsIFNiYk9wdGlvbkhpbnRFbGVtZW50IH0gZnJvbSAnLi4vb3B0aW9uLnB1cmUudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zZWxlY3Quc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIE9uIFNhZmFyaSwgdGhlIGFyaWEgcm9sZSAnbGlzdGJveCcgbXVzdCBiZSBvbiB0aGUgaG9zdCBlbGVtZW50LCBvciBlbHNlIFZvaWNlT3ZlciB3b24ndCB3b3JrIGF0IGFsbC5cbiAqIE9uIHRoZSBvdGhlciBoYW5kLCBKQVdTIGFuZCBOVkRBIG5lZWQgdGhlIHJvbGUgdG8gYmUgYW4gXCJpbW1lZGlhdGUgcGFyZW50XCIgdG8gdGhlIG9wdGlvbnMsIG9yIGVsc2Ugb3B0Z3JvdXBzIHdvbid0IHdvcmsuXG4gKi9cbmNvbnN0IGFyaWFSb2xlT25Ib3N0ID0gaXNTYWZhcmk7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgcGFuZWwgd2l0aCBzZWxlY3RhYmxlIG9wdGlvbnMuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgb3B0aW9ucy5cbiAqIEBjc3Nwcm9wIFstLXNiYi1zZWxlY3Qtei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICogQGNzc3Byb3AgWy0tc2JiLW9wdGlvbnMtcGFuZWwtbWF4LWhlaWdodF0gLSBNYXhpbXVtIGhlaWdodCBvZiB0aGUgb3B0aW9ucyBwYW5lbC5cbiAqIElmIHRoZSBjYWxjdWxhdGVkIHJlbWFpbmluZyBzcGFjZSBpcyBzbWFsbGVyLCB0aGUgdmFsdWUgZ2V0cyBpZ25vcmVkLlxuICogQG92ZXJyaWRlVHlwZSB2YWx1ZSAtIChUID0gc3RyaW5nIHwgc3RyaW5nW10pIHwgbnVsbFxuICovXG5leHBvcnQgY2xhc3MgU2JiU2VsZWN0RWxlbWVudDxUID0gc3RyaW5nPiBleHRlbmRzIFNiYlVwZGF0ZVNjaGVkdWxlck1peGluKFxuICBTYmJEaXNhYmxlZE1peGluKFxuICAgIFNiYk5lZ2F0aXZlTWl4aW4oXG4gICAgICBTYmJSZXF1aXJlZE1peGluKFxuICAgICAgICBTYmJSZWFkb25seU1peGluKFxuICAgICAgICAgIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW48dHlwZW9mIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50PihTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICksXG4gICksXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1zZWxlY3QnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSBhcmlhUm9sZU9uSG9zdCA/ICdsaXN0Ym94JyA6IG51bGw7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtcbiAgICBzY3JvbGxiYXJTdHlsZXMsXG4gICAgb3B0aW9uUGFuZWxTdHlsZXMsXG4gICAgdW5zYWZlQ1NTKHN0eWxlKSxcbiAgXTtcblxuICAvLyBUT0RPOiBmaXggdXNpbmcgLi4uc3VwZXIuZXZlbnRzIHJlcXVpcmVzOiBodHRwczovL2dpdGh1Yi5jb20vc2JiLWRlc2lnbi1zeXN0ZW1zL2x5bmUtY29tcG9uZW50cy9pc3N1ZXMvMjYwMFxuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBjaGFuZ2U6ICdjaGFuZ2UnLFxuICAgIGlucHV0OiAnaW5wdXQnLFxuICAgIGRpc3BsYXl2YWx1ZWNoYW5nZTogJ2Rpc3BsYXl2YWx1ZWNoYW5nZScsXG4gICAgYmVmb3Jlb3BlbjogJ2JlZm9yZW9wZW4nLFxuICAgIG9wZW46ICdvcGVuJyxcbiAgICBiZWZvcmVjbG9zZTogJ2JlZm9yZWNsb3NlJyxcbiAgICBjbG9zZTogJ2Nsb3NlJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogVGhlIHBsYWNlaG9sZGVyIHVzZWQgaWYgbm8gdmFsdWUgaGFzIGJlZW4gc2VsZWN0ZWQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBzZWxlY3QgYWxsb3dzIGZvciBtdWx0aXBsZSBzZWxlY3Rpb24uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAaGFuZGxlRGlzdGluY3RDaGFuZ2UoKGU6IFNiYlNlbGVjdEVsZW1lbnQ8VD4sIG5ld1ZhbHVlOiBib29sZWFuKSA9PlxuICAgIGUuX29uTXVsdGlwbGVDaGFuZ2VkKG5ld1ZhbHVlKSxcbiAgKVxuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBGdW5jdGlvbiB1c2VkIHRvIGNvbXBhcmUgb3B0aW9uIHZhbHVlcy4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgY29tcGFyZVdpdGg6ICh2MTogVCB8IG51bGwsIHYyOiBUIHwgbnVsbCkgPT4gYm9vbGVhbiA9ICh2MSwgdjIpID0+IHYxID09PSB2MjtcblxuICBAZm9yY2VUeXBlKClcbiAgQGhhbmRsZURpc3RpbmN0Q2hhbmdlKChlOiBTYmJTZWxlY3RFbGVtZW50PFQ+LCBuZXdWYWx1ZTogYm9vbGVhbikgPT5cbiAgICBlLl9jbG9zZU9uRGlzYWJsZWRSZWFkb25seUNoYW5nZWQobmV3VmFsdWUpLFxuICApXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgQGdldE92ZXJyaWRlKChlOiBTYmJTZWxlY3RFbGVtZW50PFQ+LCB2OiBib29sZWFuKTogYm9vbGVhbiA9PiB2IHx8IGUuaXNEaXNhYmxlZEV4dGVybmFsbHkoKSlcbiAgcHVibGljIG92ZXJyaWRlIGFjY2Vzc29yIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFZhbHVlIG9mIHRoZSBmb3JtIGVsZW1lbnQuICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IFRbXSB8IFQpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuX2lzVmFsdWVNYW51YWxseUFzc2lnbmVkID0gdHJ1ZTtcbiAgICB0aGlzLl91cGRhdGVPcHRpb25zRnJvbVZhbHVlKCk7XG4gIH1cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBUW10gfCBUIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG4gIHByaXZhdGUgX3ZhbHVlOiBUIHwgVFtdIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFNpemUgdmFyaWFudCwgZWl0aGVyIHMgKGxlYW4gdGhlbWUgZGVmYXVsdCkgb3IgbSAoc3RhbmRhcmQgdGhlbWUgZGVmYXVsdCkuXG4gICAqIFdoZW4gcGxhY2VkIGluc2lkZSBhbiBgPHNiYi1mb3JtLWZpZWxkPmAsIHRoZSBzaXplIGlzIGluaGVyaXRlZCBmcm9tIHRoZSBmb3JtIGZpZWxkLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3MnIHwgJ20nIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIEZvcm0gdHlwZSBvZiBlbGVtZW50LlxuICAgKiBAZGVmYXVsdCAnc2VsZWN0LW9uZSAvIHNlbGVjdC1tdWx0aXBsZSdcbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm11bHRpcGxlID8gJ3NlbGVjdC1tdWx0aXBsZScgOiAnc2VsZWN0LW9uZSc7XG4gIH1cblxuICAvKiogVGhlIHZhbHVlIGRpc3BsYXllZCBieSB0aGUgY29tcG9uZW50LiAqL1xuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9kaXNwbGF5VmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgX3Jlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgIHRhcmdldDogbnVsbCxcbiAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICAvLyBUaGlzIGlzIGFuIElJRkUsIGJlY2F1c2Ugd2UgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoZSB0aW1lb3V0IHN0YXRlXG4gICAgLy8gZm9yIGRlYm91bmNpbmcgdGhlIHJlc2l6ZSBjYWxsYmFja3MuXG4gICAgY2FsbGJhY2s6ICgoKSA9PiB7XG4gICAgICBsZXQgdGltZW91dElkOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICAgICAgICB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldE92ZXJsYXlQb3NpdGlvbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMTApO1xuICAgICAgfTtcbiAgICB9KSgpLFxuICB9KTtcblxuICBwcml2YXRlIF9vdmVybGF5ITogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX29yaWdpbkVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyPzogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlciA9IG5ldyBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfb3ZlcmxheUlkID0gYHNiYi1zZWxlY3QtJHsrK25leHRJZH1gO1xuICBwcml2YXRlIF9hY3RpdmVJdGVtSW5kZXggPSAtMTtcbiAgcHJpdmF0ZSBfc2VhcmNoVGltZW91dD86IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuICBwcml2YXRlIF9zZWFyY2hTdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBfZGlkTG9hZCA9IGZhbHNlO1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPbk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2VDb250cm9sbGVyID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfaXNWYWx1ZU1hbnVhbGx5QXNzaWduZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlICdjb21ib2JveCcgaW5wdXQgZWxlbWVudFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBnZXQgaW5wdXRFbGVtZW50KCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3RyaWdnZXJFbGVtZW50ID8/IG51bGw7XG4gIH1cblxuICAvKiogUmV0dXJucyBhbGwgU2JiT3B0aW9uRWxlbWVudHMgZnJvbSB0aGlzIHNiYi1zZWxlY3QgaW5zdGFuY2UuICovXG4gIHB1YmxpYyBnZXQgb3B0aW9ucygpOiBTYmJPcHRpb25FbGVtZW50PFQ+W10ge1xuICAgIGNvbnN0IG9wdGlvbnM6IFNiYk9wdGlvbkVsZW1lbnQ8VD5bXSA9IFtdO1xuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbD8uPFNiYk9wdGlvbkVsZW1lbnQ8VD4+KCdzYmItb3B0aW9uJykuZm9yRWFjaCgob3B0aW9uKSA9PiB7XG4gICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKG9wdGlvbik7XG4gICAgICBvcHRpb25zLnB1c2gob3B0aW9uKTtcbiAgICB9KTtcbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdvcHRpb25zZWxlY3Rpb25jaGFuZ2UnLCAoZTogRXZlbnQpID0+IHRoaXMuX29uT3B0aW9uQ2hhbmdlZChlKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ29wdGlvbkxhYmVsQ2hhbmdlZCcsIChlOiBFdmVudCkgPT4gdGhpcy5fb25PcHRpb25MYWJlbENoYW5nZWQoZSkpO1xuICAgIC8qKiBGb3JjZXMgdGhlIHNiYi1zZWxlY3QgdG8gdXBkYXRlIGhpcyB2YWx1ZS4gKi9cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignybVvcHRpb252YWx1ZWNoYW5nZScsICgpID0+IHRoaXMuX3VwZGF0ZVZhbHVlT3B0aW9uU3RhdGUoKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ8m1b3B0Z3JvdXBzbG90Y2hhbmdlJywgKCkgPT4gdGhpcy5fdXBkYXRlVmFsdWVPcHRpb25TdGF0ZSgpLCB7XG4gICAgICBjYXB0dXJlOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsIChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBlLnRhcmdldCBhcyBTYmJTZWxlY3RFbGVtZW50PFQ+IHwgU2JiT3B0aW9uRWxlbWVudDxUPjtcbiAgICAgIGlmICh0YXJnZXQubG9jYWxOYW1lID09PSAnc2JiLW9wdGlvbicpIHtcbiAgICAgICAgLy8gT3B0aW9uIGNsaWNrXG4gICAgICAgIGlmICghdGhpcy5tdWx0aXBsZSAmJiAhdGFyZ2V0LmRpc2FibGVkKSB7XG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fdG9nZ2xlT3BlbmluZygpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgbmV3IE11dGF0aW9uQ29udHJvbGxlcih0aGlzLCB7XG4gICAgICAgIGNvbmZpZzogeyBhdHRyaWJ1dGVGaWx0ZXI6IFsnYXJpYS1sYWJlbGxlZGJ5JywgJ2FyaWEtbGFiZWwnLCAnYXJpYS1kZXNjcmliZWRieSddIH0sXG4gICAgICAgIGNhbGxiYWNrOiAoKSA9PiB0aGlzLl9zeW5jQXJpYUxhYmVscygpLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIHRoaXMuYWRkQ29udHJvbGxlcihcbiAgICAgIG5ldyBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyKHRoaXMsICgpID0+IHRoaXMuY2xvc2VzdCgnc2JiLWZvcm0tZmllbGQnKSwge1xuICAgICAgICBuZWdhdGl2ZTogKGUpID0+IHtcbiAgICAgICAgICB0aGlzLm5lZ2F0aXZlID0gZS5uZWdhdGl2ZTtcbiAgICAgICAgICB0aGlzLl9zeW5jTmVnYXRpdmUoKTtcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9zeW5jQXJpYUxhYmVscygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3RyaWdnZXJFbGVtZW50IHx8IGlzU2VydmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc2V0T3JSZW1vdmVBdHRyaWJ1dGUoXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCxcbiAgICAgICdhcmlhLWxhYmVsbGVkYnknLFxuICAgICAgdGhpcy5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWxsZWRieScpLFxuICAgICk7XG4gICAgc2V0T3JSZW1vdmVBdHRyaWJ1dGUodGhpcy5fdHJpZ2dlckVsZW1lbnQsICdhcmlhLWxhYmVsJywgdGhpcy5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnKSk7XG4gICAgc2V0T3JSZW1vdmVBdHRyaWJ1dGUoXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCxcbiAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JyxcbiAgICAgIHRoaXMuZ2V0QXR0cmlidXRlKCdhcmlhLWRlc2NyaWJlZGJ5JyksXG4gICAgKTtcblxuICAgIC8vIFVzaW5nIHRoZSBhc3NvY2lhdGVkIGxhYmVscyBpcyBvbmx5IGEgZmFsbGJhY2suXG4gICAgLy8gVGhlIGRyYXdiYWNrIGlzLCB0aGF0IGl0IGRvZXNuJ3QgZ2V0IHVwZGF0ZWQgYXV0b21hdGljYWxseSB3aGVuIHRoZSBsaXN0IG9mIGxhYmVsIGNoYW5nZXMuXG4gICAgaWYgKFxuICAgICAgIXRoaXMuZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJykgJiZcbiAgICAgICF0aGlzLmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbGxlZGJ5JykgJiZcbiAgICAgIHRoaXMuaW50ZXJuYWxzLmxhYmVscy5sZW5ndGhcbiAgICApIHtcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICdhcmlhLWxhYmVsJyxcbiAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmludGVybmFscy5sYWJlbHMsIChsYWJlbCkgPT4gbGFiZWwudGV4dENvbnRlbnQpLmpvaW4oJywgJyksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBPcGVucyB0aGUgc2VsZWN0aW9uIHBhbmVsLiAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnN0YXRlID09PSAnb3BlbmluZycgfHxcbiAgICAgIHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnIHx8XG4gICAgICAhdGhpcy5fb3ZlcmxheSB8fFxuICAgICAgdGhpcy5vcHRpb25zLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgdGhpcy5kaXNhYmxlZCB8fFxuICAgICAgdGhpcy5mb3JtRGlzYWJsZWQgfHxcbiAgICAgICF0aGlzLmRpc3BhdGNoQmVmb3JlT3BlbkV2ZW50KClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCdbcG9wb3Zlcl0nKT8uc2hvd1BvcG92ZXI/LigpO1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnZXhwYW5kZWQnKTtcbiAgICB0aGlzLl9zZXRPdmVybGF5UG9zaXRpb24oKTtcbiAgICB0aGlzLl9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5jb25uZWN0KCk7XG4gICAgdGhpcy5fYXR0YWNoT3BlblBhbmVsRXZlbnRzKCk7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDbG9zZXMgdGhlIHNlbGVjdGlvbiBwYW5lbC4gKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnY2xvc2luZycgfHwgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NlZCcgfHwgIXRoaXMuZGlzcGF0Y2hCZWZvcmVDbG9zZUV2ZW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NpbmcnO1xuICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ2V4cGFuZGVkJyk7XG4gICAgdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICBpZiAodGhpcy5fb3JpZ2luRWxlbWVudCkge1xuICAgICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIudW5vYnNlcnZlKHRoaXMuX29yaWdpbkVsZW1lbnQpO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBjbG9zZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKHRoaXMsICctLXNiYi1vcHRpb25zLXBhbmVsLWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGN1cnJlbnQgZGlzcGxheWVkIHZhbHVlLiAqL1xuICBwdWJsaWMgZ2V0RGlzcGxheVZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlWYWx1ZSA/PyAnJztcbiAgfVxuXG4gIHByaXZhdGUgX3NlbGVjdGFibGVPcHRpb25zKCk6IFNiYk9wdGlvbkVsZW1lbnQ8VD5bXSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5maWx0ZXIoKG9wdCkgPT4gIW9wdC5tYXRjaGVzKCc6c3RhdGUoZGlzYWJsZWQpJykpO1xuICB9XG5cbiAgLyoqIExpc3RlbnMgdG8gb3B0aW9uIGNoYW5nZXMuICovXG4gIHByaXZhdGUgX29uT3B0aW9uQ2hhbmdlZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgU2JiT3B0aW9uRWxlbWVudDxUPjtcbiAgICBpZiAodGFyZ2V0LnNlbGVjdGVkKSB7XG4gICAgICB0aGlzLl9vbk9wdGlvblNlbGVjdGVkKHRhcmdldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX29uT3B0aW9uRGVzZWxlY3RlZCh0YXJnZXQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBMaXN0ZW5zIHRvIG9wdGlvbiBjaGFuZ2VzLiAqL1xuICBwcml2YXRlIF9vbk9wdGlvbkxhYmVsQ2hhbmdlZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgU2JiT3B0aW9uRWxlbWVudDxUPjtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuX2dldFNlbGVjdGVkKCk7XG5cbiAgICBpZiAoXG4gICAgICAoIUFycmF5LmlzQXJyYXkoc2VsZWN0ZWQpICYmIHRhcmdldCAhPT0gc2VsZWN0ZWQpIHx8XG4gICAgICAoQXJyYXkuaXNBcnJheShzZWxlY3RlZCkgJiYgIXNlbGVjdGVkLmluY2x1ZGVzKHRhcmdldCkpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVEaXNwbGF5VmFsdWUoKTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLl9nZXRTZWxlY3RlZCgpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHNlbGVjdGVkKSkge1xuICAgICAgdGhpcy5fZGlzcGxheVZhbHVlID0gc2VsZWN0ZWQubWFwKChvKSA9PiBvLnRleHRDb250ZW50Py50cmltKCkpLmpvaW4oJywgJykgfHwgbnVsbDtcbiAgICB9IGVsc2UgaWYgKHNlbGVjdGVkKSB7XG4gICAgICB0aGlzLl9kaXNwbGF5VmFsdWUgPSBzZWxlY3RlZD8udGV4dENvbnRlbnQ/LnRyaW0oKSB8fCBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9kaXNwbGF5VmFsdWUgPSBudWxsO1xuICAgIH1cblxuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ2hhcy1kaXNwbGF5LXZhbHVlJywgISF0aGlzLl9kaXNwbGF5VmFsdWUpO1xuXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2Rpc3BsYXl2YWx1ZWNoYW5nZScsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBgdmFsdWVgIHByb3BlcnR5IHNob3VsZCBiZSBhZGFwdGVkIHdoZW4gdGhlIGBtdWx0aXBsZWAgcHJvcGVydHkgY2hhbmdlczpcbiAgICogICAtIGlmIGl0IGNoYW5nZXMgdG8gdHJ1ZSwgdGhlICd2YWx1ZScgaXMgc2V0IHRvIGFuIGFycmF5O1xuICAgKiAgIC0gaWYgaXQgY2hhbmdlcyB0byBmYWxzZSwgdGhlIGZpcnN0IGF2YWlsYWJsZSBvcHRpb24gaXMgc2V0IGFzICd2YWx1ZScgb3RoZXJ3aXNlIGl0J3Mgc2V0IHRvIG51bGwuXG4gICAqL1xuICBwcml2YXRlIF9vbk11bHRpcGxlQ2hhbmdlZChpc0NoYW5naW5nVG9NdWx0aXBsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChpc0NoYW5naW5nVG9NdWx0aXBsZSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9pc1ZhbHVlTWFudWFsbHlBc3NpZ25lZCB8fCB0aGlzLnZhbHVlICE9IG51bGwgPyBbdGhpcy52YWx1ZSBhcyBUXSA6IFtdO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLnZhbHVlLmxlbmd0aCA/IHRoaXMudmFsdWVbMF0gOiBudWxsO1xuICAgIH1cbiAgICB0aGlzLl91cGRhdGVEaXNwbGF5VmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgYGRpc2FibGVkYCBvciB0aGUgYHJlYWRvbmx5YCBwcm9wZXJ0aWVzIGFyZSBzZXQsIGFuZCB0aGUgcGFuZWwgaXMgb3BlbiwgY2xvc2UgaXQuXG4gICAqL1xuICBwcml2YXRlIF9jbG9zZU9uRGlzYWJsZWRSZWFkb25seUNoYW5nZWQobmV3VmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoKHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJyB8fCB0aGlzLnN0YXRlID09PSAnb3BlbmVkJykgJiYgbmV3VmFsdWUpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy5fdXBkYXRlVmFsdWVPcHRpb25TdGF0ZSgpO1xuXG4gICAgLy8gV2FpdCBmb3Igc3NyIGh5ZHJhdGlvblxuICAgIGlmICghaXNOZXh0anMoKSkge1xuICAgICAgdGhpcy5zdGFydFVwZGF0ZSgpO1xuICAgICAgdGhpcy5fc2V0dXBTZWxlY3QoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBvdmVycmlkZSBmb2N1cygpOiB2b2lkIHtcbiAgICAvLyBGb3J3YXJkIGZvY3VzIHRvIHRoZSB0cmlnZ2VyIGVsZW1lbnQuXG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LmZvY3VzKCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBvdmVycmlkZSBibHVyKCk6IHZvaWQge1xuICAgIC8vIEZvcndhcmQgYmx1ciB0byB0aGUgdHJpZ2dlciBlbGVtZW50LlxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5ibHVyKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBlbGVtZW50J3MgZmlyc3QgYXR0cmlidXRlIHdob3NlIHF1YWxpZmllZCBuYW1lIGlzIHF1YWxpZmllZE5hbWUuXG4gICAqXG4gICAqIFtNRE4gUmVmZXJlbmNlXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvRWxlbWVudC9yZW1vdmVBdHRyaWJ1dGUpXG4gICAqIEBpbnRlcm5hbCBXZSBuZWVkIHRvIG92ZXJyaWRlIHRoaXMgZHVlIHRvIGEgaHlkcmF0aW9uIGlzc3VlIHdpdGggTmV4dC5qcy5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSByZW1vdmVBdHRyaWJ1dGUocXVhbGlmaWVkTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gSW4gTmV4dC5qcyB0aGUgaHlkcmF0aW9uIG5lZWRzIHRvIGZpbmlzaCBiZWZvcmUgd2UgY2FuIG1hbmlwdWxhdGUgdGhlIGxpZ2h0IERPTS5cbiAgICAvLyBAbGl0L3JlYWN0IGNhbGxzIHJlbW92ZUF0dHJpYnV0ZSgnZGVmZXItaHlkcmF0aW9uJykgaW4gYSB1c2VMYXlvdXRFZmZlY3QsXG4gICAgLy8gd2hpY2ggaXMgZG9uZSBhZnRlciBoeWRyYXRpb24gaXMgZmluaXNoZWQuIER1ZSB0byB0aGlzIHdlIGludGVyY2VwdCB0aGlzIGNhbGxcbiAgICAvLyBpbiBvdmVycmlkaW5nIHJlbW92ZUF0dHJpYnV0ZSB0byBmaW5pc2ggaW5pdGlhbGl6YXRpb24gb2YgdGhlIHNiYi1zZWxlY3QuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2xpdC9saXQvYmxvYi9tYWluL3BhY2thZ2VzL3JlYWN0L3NyYy9jcmVhdGUtY29tcG9uZW50LnRzI0wyOTMtTDI5NlxuICAgIC8vIFdlIGFsc28gbmVlZCB0byB3YWl0IGZvciB1cGRhdGUgY29tcGxldGUgaW4gb3JkZXIgdG8gYmUgc3VyZSB0aGF0IHRoZSBzaGFkb3cgRE9NIGhhcyBiZWVuIHJlbmRlcmVkLlxuICAgIGlmIChpc05leHRqcygpICYmIHF1YWxpZmllZE5hbWUgPT09ICdkZWZlci1oeWRyYXRpb24nICYmICF0aGlzLl9kaWRMb2FkKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4gdGhpcy5fc2V0dXBTZWxlY3QoKSk7XG4gICAgfVxuICAgIHN1cGVyLnJlbW92ZUF0dHJpYnV0ZShxdWFsaWZpZWROYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgaWYgKGFyaWFSb2xlT25Ib3N0KSB7XG4gICAgICB0aGlzLmlkIHx8PSB0aGlzLl9vdmVybGF5SWQ7XG4gICAgfVxuXG4gICAgdGhpcy5fc3luY05lZ2F0aXZlKCk7XG4gICAgdGhpcy5fc3luY0FyaWFMYWJlbHMoKTtcblxuICAgIGlmICh0aGlzLl9kaWRMb2FkKSB7XG4gICAgICB0aGlzLl9zZXR1cE9yaWdpbigpO1xuICAgICAgdGhpcy5fc2V0dXBUcmlnZ2VyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG4gICAgaWYgKCFuYW1lICYmIHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl9zeW5jQXJpYUxhYmVscygpKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ25lZ2F0aXZlJykpIHtcbiAgICAgIHRoaXMuX3N5bmNOZWdhdGl2ZSgpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdyZWFkT25seScpKSB7XG4gICAgICB0aGlzLl9jbG9zZU9uRGlzYWJsZWRSZWFkb25seUNoYW5nZWQodGhpcy5yZWFkT25seSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIC8vIFRha2UgYmFjayB0aGUgdHJpZ2dlciBlbGVtZW50IHByZXZpb3VzbHkgbW92ZWQgdG8gdGhlIGxpZ2h0IERPTS5cbiAgICAvLyBEdWUgdG8gdGltaW5nIGlzc3VlcywgdGhpcyBuZWVkcyB0byBiZSBkb25lIGJlZm9yZSBjYWxsaW5nIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCkuXG4gICAgaWYgKHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICB0aGlzLnByZXBlbmQodGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuICAgIH1cbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHJlc2V0IHZhbHVlIGlzIHRoZSBhdHRyaWJ1dGUgdmFsdWUgKHRoZSBzZXR1cCB2YWx1ZSksIG51bGwgb3RoZXJ3aXNlLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gKHRoaXMuaGFzQXR0cmlidXRlKCd2YWx1ZScpID8gdGhpcy5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJykgOiBudWxsKSBhcyBUO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgX3JlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24sXG4gICk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IHZhbHVlLCBtYW51YWxseUFzc2lnbmVkIH0gPSBKU09OLnBhcnNlKHN0YXRlIGFzIHN0cmluZykgYXMge1xuICAgICAgICB2YWx1ZTogVCB8IFRbXTtcbiAgICAgICAgbWFudWFsbHlBc3NpZ25lZDogYm9vbGVhbjtcbiAgICAgIH07XG5cbiAgICAgIHRoaXMuX2lzVmFsdWVNYW51YWxseUFzc2lnbmVkID0gbWFudWFsbHlBc3NpZ25lZDtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLl91cGRhdGVPcHRpb25zRnJvbVZhbHVlKCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICBjb25zb2xlLndhcm4oYEZhaWxlZCB0byByZXN0b3JlIHNiYi1zZWxlY3Qgd2l0aCBzdGF0ZSAke3N0YXRlfWApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmb3JtU3RhdGUoKTogRm9ybVJlc3RvcmVTdGF0ZSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHsgdmFsdWU6IHRoaXMudmFsdWUsIG1hbnVhbGx5QXNzaWduZWQ6IHRoaXMuX2lzVmFsdWVNYW51YWxseUFzc2lnbmVkIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3luY05lZ2F0aXZlKCk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbD8uPFNiYkRpdmlkZXJFbGVtZW50IHwgU2JiT3B0aW9uSGludEVsZW1lbnQ+KFxuICAgICAgJ3NiYi1kaXZpZGVyLCBzYmItb3B0aW9uLWhpbnQnLFxuICAgICkuZm9yRWFjaCgoZWwpID0+IChlbC5uZWdhdGl2ZSA9IHRoaXMubmVnYXRpdmUpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdXBlci5zaG91bGRWYWxpZGF0ZShuYW1lKSB8fCBuYW1lID09PSAndmFsdWUnIHx8IG5hbWUgPT09ICdyZXF1aXJlZCc7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgc3VwZXIudmFsaWRhdGUoKTtcblxuICAgIGNvbnN0IHZhbHVlOiBUW10gPSBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpXG4gICAgICA/IHRoaXMudmFsdWVcbiAgICAgIDogdGhpcy52YWx1ZSA9PT0gbnVsbFxuICAgICAgICA/IFtdXG4gICAgICAgIDogW3RoaXMudmFsdWVdO1xuXG4gICAgaWYgKFxuICAgICAgdGhpcy5yZXF1aXJlZCAmJlxuICAgICAgKHRoaXMub3B0aW9ucy5ldmVyeSgobykgPT4gdmFsdWUuZXZlcnkoKHYpID0+ICF0aGlzLmNvbXBhcmVXaXRoKHYsIG8udmFsdWUpKSkgfHxcbiAgICAgICAgKCF0aGlzLl9pc1ZhbHVlTWFudWFsbHlBc3NpZ25lZCAmJiB0aGlzLnZhbHVlID09IG51bGwpKVxuICAgICkge1xuICAgICAgdGhpcy5zZXRWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycsIGkxOG5TZWxlY3Rpb25SZXF1aXJlZFt0aGlzLl9sYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0dXBTZWxlY3QoKTogdm9pZCB7XG4gICAgdGhpcy5fc2V0dXBPcmlnaW4oKTtcbiAgICB0aGlzLl9zZXR1cFRyaWdnZXIoKTtcbiAgICB0aGlzLl9kaWRMb2FkID0gdHJ1ZTtcbiAgICB0aGlzLmNvbXBsZXRlVXBkYXRlKCk7XG4gIH1cblxuICAvKiogU2V0cyB0aGUgb3JpZ2luRWxlbWVudDsgaWYgdGhlIGNvbXBvbmVudCBpcyB1c2VkIGluIGEgc2JiLWZvcm0tZmllbGQgdXNlcyBpdCwgb3RoZXJ3aXNlIHVzZXMgdGhlIHBhcmVudEVsZW1lbnQuICovXG4gIHByaXZhdGUgX3NldHVwT3JpZ2luKCk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1GaWVsZCA9IHRoaXMuY2xvc2VzdD8uPFNiYkZvcm1GaWVsZEVsZW1lbnQ+KCdzYmItZm9ybS1maWVsZCcpO1xuICAgIGlmICh0aGlzLl9vcmlnaW5FbGVtZW50KSB7XG4gICAgICB0aGlzLl9yZXNpemVPYnNlcnZlci51bm9ic2VydmUodGhpcy5fb3JpZ2luRWxlbWVudCk7XG4gICAgfVxuICAgIHRoaXMuX29yaWdpbkVsZW1lbnQgPVxuICAgICAgZm9ybUZpZWxkPy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yPy4oJyNvdmVybGF5LWFuY2hvcicpID8/IHRoaXMucGFyZW50RWxlbWVudCE7XG4gICAgaWYgKHRoaXMuX29yaWdpbkVsZW1lbnQpIHtcbiAgICAgIHRoaXMudG9nZ2xlU3RhdGUoJ29wdGlvbi1wYW5lbC1vcmlnaW4tYm9yZGVybGVzcycsIGZvcm1GaWVsZD8uaGFzQXR0cmlidXRlPy4oJ2JvcmRlcmxlc3MnKSk7XG5cbiAgICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuX29yaWdpbkVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUbyBhc3Nlc3Mgc2NyZWVuLXJlYWRlcnMgcHJvYmxlbXMgY2F1c2VkIGJ5IHRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIGFyaWEgcGF0dGVybnMgYW5kIHNoYWRvdyBET00sXG4gICAqIHdlIGFyZSBmb3JjZWQgdG8gbW92ZSB0aGUgJ2NvbWJvYm94JyB0cmlnZ2VyIGVsZW1lbnQgdG8gdGhlIGxpZ2h0IERPTVxuICAgKi9cbiAgcHJpdmF0ZSBfc2V0dXBUcmlnZ2VyKCk6IHZvaWQge1xuICAgIC8vIE1vdmUgdGhlIHRyaWdnZXIgYmVmb3JlIHRoZSBzYmItc2VsZWN0XG4gICAgaWYgKHRoaXMucGFyZW50RWxlbWVudCAmJiB0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5wYXJlbnRFbGVtZW50Lmluc2VydEJlZm9yZT8uKHRoaXMuX3RyaWdnZXJFbGVtZW50LCB0aGlzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXRPdmVybGF5UG9zaXRpb24oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9vcmlnaW5FbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHNldE92ZXJsYXlQb3NpdGlvbihcbiAgICAgIHRoaXMuX292ZXJsYXksXG4gICAgICB0aGlzLl9vcmlnaW5FbGVtZW50LFxuICAgICAgdGhpcy5fb3ZlcmxheSxcbiAgICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignLnNiYi1vcHRpb24tcGFuZWxfX292ZXJsYXktY29udGFpbmVyJykhLFxuICAgICAgdGhpcyxcbiAgICApO1xuICB9XG5cbiAgLy8gSW4gcmFyZSBjYXNlcyBpdCBjYW4gYmUgdGhhdCB0aGUgYW5pbWF0aW9uRW5kIGV2ZW50IGlzIHRyaWdnZXJlZCB0d2ljZS5cbiAgLy8gVG8gYXZvaWQgZW50ZXJpbmcgYSBjb3JydXB0IHN0YXRlLCBleGl0IHdoZW4gc3RhdGUgaXMgbm90IGV4cGVjdGVkLlxuICBwcml2YXRlIF9vbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4nICYmIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVPcGVuaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ3RydWUnKTtcbiAgICBpZiAodGhpcy5fb3JpZ2luRWxlbWVudCkge1xuICAgICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9vcmlnaW5FbGVtZW50KTtcbiAgICB9XG4gICAgdGhpcy5kaXNwYXRjaE9wZW5FdmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignW3BvcG92ZXJdJyk/LmhpZGVQb3BvdmVyPy4oKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gICAgdGhpcy5fcmVzZXRBY3RpdmVFbGVtZW50KCk7XG4gICAgdGhpcy5fb3ZlcmxheS5zY3JvbGxUb3AgPSAwO1xuICAgIHRoaXMuX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLmRpc3BhdGNoQ2xvc2VFdmVudCgpO1xuICB9XG5cbiAgLyoqIFdoZW4gYW4gb3B0aW9uIGlzIHNlbGVjdGVkLCB1cGRhdGVzIHRoZSBkaXNwbGF5VmFsdWU7IGl0IGFsc28gY2xvc2VzIHRoZSBzZWxlY3QgaWYgbm90IGBtdWx0aXBsZWAuICovXG4gIHByaXZhdGUgX29uT3B0aW9uU2VsZWN0ZWQob3B0aW9uOiBTYmJPcHRpb25FbGVtZW50PFQ+KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IG9wdGlvbi52YWx1ZTtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IFtvcHRpb24udmFsdWUhXTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSAmJlxuICAgICAgIXRoaXMudmFsdWUuc29tZSgodikgPT4gdGhpcy5jb21wYXJlV2l0aCh2LCBvcHRpb24udmFsdWUhKSlcbiAgICApIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gWy4uLnRoaXMudmFsdWUsIG9wdGlvbi52YWx1ZSFdO1xuICAgIH1cblxuICAgIHRoaXMuX3VwZGF0ZU9wdGlvbnNGcm9tVmFsdWUoKTtcbiAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnRzKCk7XG4gIH1cblxuICAvKiogV2hlbiBhbiBvcHRpb24gaXMgdW5zZWxlY3RlZCBpbiBgbXVsdGlwbGVgLCByZW1vdmVzIGl0IGZyb20gdmFsdWUgYW5kIHVwZGF0ZXMgZGlzcGxheVZhbHVlLiAqL1xuICBwcml2YXRlIF9vbk9wdGlvbkRlc2VsZWN0ZWQob3B0aW9uU2VsZWN0aW9uQ2hhbmdlOiBTYmJPcHRpb25FbGVtZW50PFQ+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLnZhbHVlLmZpbHRlcigoZWwpID0+ICF0aGlzLmNvbXBhcmVXaXRoKGVsLCBvcHRpb25TZWxlY3Rpb25DaGFuZ2UudmFsdWUpKTtcbiAgICAgIHRoaXMuX3VwZGF0ZU9wdGlvbnNGcm9tVmFsdWUoKTtcbiAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudHMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9kaXNwYXRjaElucHV0RXZlbnRzKCk6IHZvaWQge1xuICAgIC8qKiBUaGUgaW5wdXQgZXZlbnQgZmlyZXMgd2hlbiB0aGUgdmFsdWUgaGFzIGJlZW4gY2hhbmdlZCBhcyBhIGRpcmVjdCByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbi4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7XG4gICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBjaGFuZ2UgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBtb2RpZmllcyB0aGUgZWxlbWVudCdzIHZhbHVlLlxuICAgICAqIFVubGlrZSB0aGUgaW5wdXQgZXZlbnQsIHRoZSBjaGFuZ2UgZXZlbnQgaXMgbm90IG5lY2Vzc2FyaWx5IGZpcmVkXG4gICAgICogZm9yIGVhY2ggYWx0ZXJhdGlvbiB0byBhbiBlbGVtZW50J3MgdmFsdWUuXG4gICAgICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgX2F0dGFjaE9wZW5QYW5lbEV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gICAgLy8gUmVjYWxjdWxhdGUgdGhlIG92ZXJsYXkgcG9zaXRpb24gb24gc2Nyb2xsIGFuZCB3aW5kb3cgcmVzaXplXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4gdGhpcy5fc2V0T3ZlcmxheVBvc2l0aW9uKCksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgLy8gV2l0aG91dCBjYXB0dXJlLCBvdGhlciBzY3JvbGwgY29udGV4dHMgd291bGQgbm90IGJ1YmJsZSB0byB0aGlzIGV2ZW50IGxpc3RlbmVyLlxuICAgICAgLy8gQ2FwdHVyZSBhbGxvd3MgdXMgdG8gcmVhY3QgdG8gYWxsIHNjcm9sbCBjb250ZXh0cyBpbiB0aGlzIERPTS5cbiAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsICgpID0+IHRoaXMuX3NldE92ZXJsYXlQb3NpdGlvbigpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcblxuICAgIC8vIENsb3NlIG1lbnUgb24gYmFja2Ryb3AgY2xpY2tcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCAoZXYpID0+IHRoaXMuX3BvaW50ZXJEb3duTGlzdGVuZXIoZXYpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCAoZXYpID0+IHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrKGV2KSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX29uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJyB8fCB0aGlzLnN0YXRlID09PSAnb3BlbmVkJykge1xuICAgICAgdGhpcy5fb3BlbmVkUGFuZWxLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdGUgPT09ICdjbG9zZWQnIHx8IHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJykge1xuICAgICAgdGhpcy5fY2xvc2VkUGFuZWxLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jbG9zZWRQYW5lbEtleWJvYXJkSW50ZXJhY3Rpb24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fY2hlY2tGb3JMZXR0ZXJTZWxlY3Rpb24oZXZlbnQpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2V0TmV4dEFjdGl2ZU9wdGlvbkJ5VGV4dChldmVudCk7XG4gICAgfVxuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgIGNhc2UgJyAnOlxuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb3BlbmVkUGFuZWxLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fY2hlY2tGb3JMZXR0ZXJTZWxlY3Rpb24oZXZlbnQpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2V0TmV4dEFjdGl2ZU9wdGlvbkJ5VGV4dChldmVudCk7XG4gICAgfVxuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ1RhYic6XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgIGNhc2UgJyAnOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLl9zZWxlY3RCeUtleWJvYXJkKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuX3NldE5leHRBY3RpdmVPcHRpb24oZXZlbnQpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnSG9tZSc6XG4gICAgICBjYXNlICdQYWdlVXAnOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLl9zZXROZXh0QWN0aXZlT3B0aW9uKGV2ZW50LCAwKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0VuZCc6XG4gICAgICBjYXNlICdQYWdlRG93bic6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuX3NldE5leHRBY3RpdmVPcHRpb24oZXZlbnQsIHRoaXMuX3NlbGVjdGFibGVPcHRpb25zKCkubGVuZ3RoIC0gMSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrRm9yTGV0dGVyU2VsZWN0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgfHxcbiAgICAgIGV2ZW50LmtleSA9PT0gJ0NsZWFyJyB8fFxuICAgICAgKGV2ZW50LmtleS5sZW5ndGggPT09IDEgJiZcbiAgICAgICAgZXZlbnQua2V5ICE9PSAnICcgJiZcbiAgICAgICAgIWV2ZW50LmFsdEtleSAmJlxuICAgICAgICAhZXZlbnQuY3RybEtleSAmJlxuICAgICAgICAhZXZlbnQubWV0YUtleSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0TmV4dEFjdGl2ZU9wdGlvbkJ5VGV4dChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIC8vIFNldCB0aW1lb3V0IGFuZCB0aGUgc3RyaW5nIHRvIHNlYXJjaC5cbiAgICBpZiAodHlwZW9mIHRoaXMuX3NlYXJjaFRpbWVvdXQgPT09IHR5cGVvZiBzZXRUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fc2VhcmNoVGltZW91dCk7XG4gICAgfVxuICAgIHRoaXMuX3NlYXJjaFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLl9zZWFyY2hTdHJpbmcgPSAnJyksIDEwMDApO1xuICAgIHRoaXMuX3NlYXJjaFN0cmluZyArPSBldmVudC5rZXk7XG5cbiAgICAvLyBSZW9yZGVyIHRoZSBfZmlsdGVyZWRPcHRpb24gYXJyYXkgdG8gaGF2ZSB0aGUgbGFzdCBzZWxlY3RlZCBlbGVtZW50IGF0IHRoZSBib3R0b20uXG4gICAgY29uc3QgaW5kZXhGb3JTbGljZTogbnVtYmVyID0gdGhpcy5fYWN0aXZlSXRlbUluZGV4ICsgMTtcbiAgICBjb25zdCBzZWxlY3RhYmxlT3B0aW9ucyA9IHRoaXMuX3NlbGVjdGFibGVPcHRpb25zKCk7XG4gICAgY29uc3QgZmlsdGVyZWRPcHRpb25zU29ydGVkID0gW1xuICAgICAgLi4uc2VsZWN0YWJsZU9wdGlvbnMuc2xpY2UoaW5kZXhGb3JTbGljZSksXG4gICAgICAuLi5zZWxlY3RhYmxlT3B0aW9ucy5zbGljZSgwLCBpbmRleEZvclNsaWNlKSxcbiAgICBdO1xuXG4gICAgY29uc3QgbWF0Y2ggPSBmaWx0ZXJlZE9wdGlvbnNTb3J0ZWQuZmluZChcbiAgICAgIChvcHRpb24pID0+IG9wdGlvbi50ZXh0Q29udGVudD8udG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMuX3NlYXJjaFN0cmluZy50b0xvd2VyQ2FzZSgpKSA9PT0gMCxcbiAgICApO1xuICAgIGlmIChtYXRjaCkge1xuICAgICAgLy8gSWYgYW4gZXhhY3QgbWF0Y2ggaGFzIGJlZW4gZm91bmQsIGdvIHRvIHRoYXQgb3B0aW9uLlxuICAgICAgdGhpcy5fc2V0TmV4dEFjdGl2ZU9wdGlvbihldmVudCwgc2VsZWN0YWJsZU9wdGlvbnMuaW5kZXhPZihtYXRjaCkpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0aGlzLl9zZWFyY2hTdHJpbmcubGVuZ3RoID4gMSAmJlxuICAgICAgbmV3IFJlZ0V4cChgXiR7dGhpcy5fc2VhcmNoU3RyaW5nLmNoYXJBdCgwKX0qJGApLnRlc3QodGhpcy5fc2VhcmNoU3RyaW5nKVxuICAgICkge1xuICAgICAgLy8gSWYgbm8gZXhhY3QgbWF0Y2ggaGFzIGJlZW4gZm91bmQgYnV0IHRoZSBzdHJpbmcgdG8gc2VhcmNoIGlzIG1hZGUgYnkgdGhlIHNhbWUgcmVwZWF0ZWQgbGV0dGVyLFxuICAgICAgLy8gZ28gdG8gdGhlIGZpcnN0IGVsZW1lbnQsIGlmIGV4aXN0cywgdGhhdCBtYXRjaGVzIHRoZSBsZXR0ZXIuXG4gICAgICBjb25zdCBmaXJzdE1hdGNoID0gZmlsdGVyZWRPcHRpb25zU29ydGVkLmZpbmQoXG4gICAgICAgIChvcHRpb24pID0+XG4gICAgICAgICAgb3B0aW9uLnRleHRDb250ZW50Py50b0xvd2VyQ2FzZSgpLmluZGV4T2YodGhpcy5fc2VhcmNoU3RyaW5nWzBdLnRvTG93ZXJDYXNlKCkpID09PSAwLFxuICAgICAgKTtcbiAgICAgIGlmIChmaXJzdE1hdGNoKSB7XG4gICAgICAgIHRoaXMuX3NldE5leHRBY3RpdmVPcHRpb24oZXZlbnQsIHNlbGVjdGFibGVPcHRpb25zLmluZGV4T2YoZmlyc3RNYXRjaCkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBObyBtYXRjaCBmb3VuZCwgY2xlYXIgdGhlIHRpbWVvdXQgYW5kIHRoZSBzZWFyY2ggdGVybS5cbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9zZWFyY2hUaW1lb3V0KTtcbiAgICAgIHRoaXMuX3NlYXJjaFN0cmluZyA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NlbGVjdEJ5S2V5Ym9hcmQoKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlT3B0aW9uID0gdGhpcy5fc2VsZWN0YWJsZU9wdGlvbnMoKVt0aGlzLl9hY3RpdmVJdGVtSW5kZXhdO1xuXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIGFjdGl2ZU9wdGlvbj8uWydzZWxlY3RWaWFVc2VySW50ZXJhY3Rpb24nXSghYWN0aXZlT3B0aW9uLnNlbGVjdGVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NldE5leHRBY3RpdmVPcHRpb24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGluZGV4PzogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gdGhpcy5fc2VsZWN0YWJsZU9wdGlvbnMoKTtcblxuICAgIC8vIFByZXZlbnQga2V5Ym9hcmQgbmF2aWdhdGlvbiBpZiBhbGwgb3B0aW9ucyBhcmUgZGlzYWJsZWRcbiAgICBpZiAoZmlsdGVyZWRPcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5leHRJbmRleCA9XG4gICAgICBpbmRleCA/PyBnZXROZXh0RWxlbWVudEluZGV4KGV2ZW50LCB0aGlzLl9hY3RpdmVJdGVtSW5kZXgsIGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpO1xuICAgIGNvbnN0IG5leHRPcHRpb24gPSBmaWx0ZXJlZE9wdGlvbnNbbmV4dEluZGV4XTtcbiAgICBjb25zdCBhY3RpdmVPcHRpb24gPSBmaWx0ZXJlZE9wdGlvbnNbdGhpcy5fYWN0aXZlSXRlbUluZGV4XTtcblxuICAgIHRoaXMuX3NldEFjdGl2ZUVsZW1lbnQobmV4dE9wdGlvbiwgYWN0aXZlT3B0aW9uKTtcblxuICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgdGhpcy5fc2V0U2VsZWN0ZWRFbGVtZW50KG5leHRPcHRpb24sIGFjdGl2ZU9wdGlvbik7XG4gICAgfSBlbHNlIGlmIChldmVudD8uc2hpZnRLZXkpIHtcbiAgICAgIG5leHRPcHRpb25bJ3NlbGVjdFZpYVVzZXJJbnRlcmFjdGlvbiddKCFuZXh0T3B0aW9uLnNlbGVjdGVkKTtcbiAgICB9XG4gICAgdGhpcy5fYWN0aXZlSXRlbUluZGV4ID0gbmV4dEluZGV4O1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0QWN0aXZlRWxlbWVudChcbiAgICBuZXh0QWN0aXZlT3B0aW9uOiBTYmJPcHRpb25FbGVtZW50PFQ+LFxuICAgIGxhc3RBY3RpdmVPcHRpb246IFNiYk9wdGlvbkVsZW1lbnQ8VD4gfCBudWxsID0gbnVsbCxcbiAgICBzZXRBY3RpdmVEZXNjZW5kYW50ID0gdHJ1ZSxcbiAgKTogdm9pZCB7XG4gICAgbmV4dEFjdGl2ZU9wdGlvbi5zZXRBY3RpdmUodHJ1ZSk7XG4gICAgbmV4dEFjdGl2ZU9wdGlvbi5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcgfSk7XG5cbiAgICBpZiAoc2V0QWN0aXZlRGVzY2VuZGFudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1hY3RpdmVkZXNjZW5kYW50JywgbmV4dEFjdGl2ZU9wdGlvbi5pZCk7XG4gICAgfVxuXG4gICAgLy8gUmVzZXQgdGhlIHByZXZpb3VzXG4gICAgaWYgKGxhc3RBY3RpdmVPcHRpb24gJiYgIXRoaXMuY29tcGFyZVdpdGgobGFzdEFjdGl2ZU9wdGlvbi52YWx1ZSwgbmV4dEFjdGl2ZU9wdGlvbi52YWx1ZSkpIHtcbiAgICAgIGxhc3RBY3RpdmVPcHRpb24uc2V0QWN0aXZlKGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXRTZWxlY3RlZEVsZW1lbnQoXG4gICAgbmV4dEFjdGl2ZU9wdGlvbjogU2JiT3B0aW9uRWxlbWVudDxUPixcbiAgICBsYXN0QWN0aXZlT3B0aW9uOiBTYmJPcHRpb25FbGVtZW50PFQ+LFxuICApOiB2b2lkIHtcbiAgICBuZXh0QWN0aXZlT3B0aW9uWydzZWxlY3RWaWFVc2VySW50ZXJhY3Rpb24nXSh0cnVlKTtcblxuICAgIGlmIChsYXN0QWN0aXZlT3B0aW9uICYmICF0aGlzLmNvbXBhcmVXaXRoKGxhc3RBY3RpdmVPcHRpb24udmFsdWUsIG5leHRBY3RpdmVPcHRpb24udmFsdWUpKSB7XG4gICAgICBsYXN0QWN0aXZlT3B0aW9uWydzZWxlY3RWaWFVc2VySW50ZXJhY3Rpb24nXShmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXRBY3RpdmVFbGVtZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSB0aGlzLl9zZWxlY3RhYmxlT3B0aW9ucygpW3RoaXMuX2FjdGl2ZUl0ZW1JbmRleF07XG5cbiAgICBpZiAoYWN0aXZlRWxlbWVudCkge1xuICAgICAgYWN0aXZlRWxlbWVudC5zZXRBY3RpdmUoZmFsc2UpO1xuICAgIH1cbiAgICB0aGlzLl9hY3RpdmVJdGVtSW5kZXggPSAtMTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8ucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnKTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBwb2ludGVyZG93biBldmVudCB0YXJnZXQgaXMgdHJpZ2dlcmVkIG9uIHRoZSBtZW51LlxuICBwcml2YXRlIF9wb2ludGVyRG93bkxpc3RlbmVyID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICB0aGlzLl9pc1BvaW50ZXJEb3duRXZlbnRPbk1lbnUgPSBpc0V2ZW50T25FbGVtZW50KHRoaXMuX292ZXJsYXksIGV2ZW50KTtcbiAgfTtcblxuICAvLyBDbG9zZSBtZW51IG9uIGJhY2tkcm9wIGNsaWNrLlxuICBwcml2YXRlIF9jbG9zZU9uQmFja2Ryb3BDbGljayA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uTWVudSAmJlxuICAgICAgIWlzRXZlbnRPbkVsZW1lbnQodGhpcy5fb3ZlcmxheSwgZXZlbnQpICYmXG4gICAgICAhaXNFdmVudE9uRWxlbWVudCh0aGlzLl9vcmlnaW5FbGVtZW50LCBldmVudClcbiAgICApIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfdXBkYXRlT3B0aW9uc0Zyb21WYWx1ZSgpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgPyB0aGlzLnZhbHVlIDogW3RoaXMudmFsdWVdO1xuXG4gICAgY29uc3QgZGlzcGxheVZhbHVlcyA9IFtdO1xuICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIHRoaXMub3B0aW9ucykge1xuICAgICAgb3B0aW9uLnNlbGVjdGVkID0gdmFsdWUuc29tZSgodikgPT4gdGhpcy5jb21wYXJlV2l0aCh2LCBvcHRpb24udmFsdWUpKTtcbiAgICAgIGlmIChvcHRpb24uc2VsZWN0ZWQpIHtcbiAgICAgICAgZGlzcGxheVZhbHVlcy5wdXNoKG9wdGlvbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fdXBkYXRlRGlzcGxheVZhbHVlKCk7XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkpIHtcbiAgICAgIGNvbnN0IHZhbHVlOiBUIHwgbnVsbCA9IHRoaXMudmFsdWU7XG4gICAgICB0aGlzLl9hY3RpdmVJdGVtSW5kZXggPSB0aGlzLl9zZWxlY3RhYmxlT3B0aW9ucygpLmZpbmRJbmRleCgob3B0aW9uKSA9PlxuICAgICAgICB0aGlzLmNvbXBhcmVXaXRoKG9wdGlvbi52YWx1ZSwgdmFsdWUpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVWYWx1ZUZyb21PcHRpb25zKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5fZ2V0U2VsZWN0ZWQoKTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHNlbGVjdGVkKSkge1xuICAgICAgaWYgKHNlbGVjdGVkICYmIHNlbGVjdGVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgdmFsdWU6IFRbXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBzZWxlY3RlZCkge1xuICAgICAgICAgIHZhbHVlLnB1c2gob3B0aW9uLnZhbHVlISk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHNlbGVjdGVkKSB7XG4gICAgICB0aGlzLl9hY3RpdmVJdGVtSW5kZXggPSB0aGlzLl9zZWxlY3RhYmxlT3B0aW9ucygpLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24gPT09IHNlbGVjdGVkKTtcbiAgICAgIHRoaXMuX3ZhbHVlID0gc2VsZWN0ZWQudmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy5fdXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVWYWx1ZU9wdGlvblN0YXRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pc1ZhbHVlTWFudWFsbHlBc3NpZ25lZCkge1xuICAgICAgdGhpcy5fdXBkYXRlT3B0aW9uc0Zyb21WYWx1ZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl91cGRhdGVWYWx1ZUZyb21PcHRpb25zKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0U2VsZWN0ZWQoKTogU2JiT3B0aW9uRWxlbWVudDxUPiB8IFNiYk9wdGlvbkVsZW1lbnQ8VD5bXSB8IG51bGwge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PiBvcHRpb24uc2VsZWN0ZWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnNlbGVjdGVkKSA/PyBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3RvZ2dsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5mb3JtRGlzYWJsZWQgfHwgdGhpcy5yZWFkT25seSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8uZm9jdXMoKTtcblxuICAgIHN3aXRjaCAodGhpcy5zdGF0ZSkge1xuICAgICAgY2FzZSAnb3BlbmluZyc6XG4gICAgICBjYXNlICdvcGVuZWQnOiB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdjbG9zaW5nJzpcbiAgICAgIGNhc2UgJ2Nsb3NlZCc6IHtcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc3ByZWFkRGVmZXJyZWREaXNwbGF5VmFsdWUoXG4gICAgcGxhY2Vob2xkZXI6IFRlbXBsYXRlUmVzdWx0LFxuICApOiAoVGVtcGxhdGVSZXN1bHQgfCBQcm9taXNlPFRlbXBsYXRlUmVzdWx0PilbXSB7XG4gICAgcmV0dXJuIFt0aGlzLl9kZWZlcnJlZERpc3BsYXlWYWx1ZShwbGFjZWhvbGRlciksIHBsYWNlaG9sZGVyXTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2RlZmVycmVkRGlzcGxheVZhbHVlKHBsYWNlaG9sZGVyOiBUZW1wbGF0ZVJlc3VsdCk6IFByb21pc2U8VGVtcGxhdGVSZXN1bHQ+IHtcbiAgICBpZiAodGhpcy5oeWRyYXRpb25SZXF1aXJlZCkge1xuICAgICAgYXdhaXQgdGhpcy5oeWRyYXRpb25Db21wbGV0ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlWYWx1ZSA/IGh0bWxgJHt0aGlzLl9kaXNwbGF5VmFsdWV9YCA6IHBsYWNlaG9sZGVyO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgLy8gU2Nyb2xsIGFyZWFzIHdpdGhvdXQgY29udGFpbmluZyBhbiBpbnRlcmFjdGl2ZSBlbGVtZW50IHdpbGwgcmVjZWl2ZSBmb2N1cyB3aGVuIHRhYmJpbmcgdGhyb3VnaCB0aGUgZG9jdW1lbnQuXG4gICAgLy8gSWYgdGhlcmUgYXJlIGEgbG90IG9mIG9wdGlvbnMgYW5kIHdoZW4gcHJlc3NpbmcgdGFiIGtleSwgdGhlIHNjcm9sbCBhcmVhIG9uIHNiYi1zZWxlY3RfX29wdGlvbnMgZ2V0cyBmb2N1cy5cbiAgICAvLyBBcyBlbGVtZW50cyBpbnNpZGUgdGhlIHBhbmVsIHNob3VsZCBuZXZlciBnZXQgZm9jdXMsIHdlIGhhdmUgdG8gYXZvaWQgdGhhdCBieSBzZXR0aW5nIHRhYmluZGV4PS0xLlxuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8IS0tIFRoaXMgZWxlbWVudCBpcyB2aXN1YWxseSBoaWRkZW4gYW5kIHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlIGxpZ2h0IERPTSB0byBhbGxvdyBzY3JlZW5cbiAgICAgIHJlYWRlcnMgdG8gd29yayBwcm9wZXJseSAtLT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5IHNiYi1zZWxlY3QtdHJpZ2dlclwiXG4gICAgICAgIHRhYmluZGV4PSR7dGhpcy5kaXNhYmxlZCB8fCB0aGlzLmZvcm1EaXNhYmxlZCA/IG5vdGhpbmcgOiAnMCd9XG4gICAgICAgIHJvbGU9XCJjb21ib2JveFwiXG4gICAgICAgIGFyaWEtaGFzcG9wdXA9XCJsaXN0Ym94XCJcbiAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcbiAgICAgICAgYXJpYS1yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWQudG9TdHJpbmcoKX1cbiAgICAgICAgYXJpYS1jb250cm9scz0ke3RoaXMuX292ZXJsYXlJZH1cbiAgICAgICAgYXJpYS1vd25zPSR7dGhpcy5fb3ZlcmxheUlkfVxuICAgICAgICBAa2V5ZG93bj0ke3RoaXMuX29uS2V5RG93bn1cbiAgICAgICAgQGNsaWNrPSR7dGhpcy5fdG9nZ2xlT3BlbmluZ31cbiAgICAgICAgJHtyZWYoKHJlZikgPT4gKHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gcmVmIGFzIEhUTUxFbGVtZW50KSl9XG4gICAgICA+XG4gICAgICAgICR7dW50aWwoLi4udGhpcy5fc3ByZWFkRGVmZXJyZWREaXNwbGF5VmFsdWUoaHRtbGAke3RoaXMucGxhY2Vob2xkZXJ9YCkpfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gVmlzdWFsbHkgZGlzcGxheSB0aGUgdmFsdWUgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXNlbGVjdF9fdHJpZ2dlclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAke3VudGlsKC4uLnRoaXMuX3NwcmVhZERlZmVycmVkRGlzcGxheVZhbHVlKGh0bWxgJHt0aGlzLnBsYWNlaG9sZGVyfWApKX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLW9wdGlvbi1wYW5lbF9fb3ZlcmxheS1jb250YWluZXJcIiBwb3BvdmVyPVwibWFudWFsXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNiYi1vcHRpb24tcGFuZWxfX292ZXJsYXkgJHt0aGlzLm5lZ2F0aXZlXG4gICAgICAgICAgICA/ICdzYmItc2Nyb2xsYmFyLW5lZ2F0aXZlJ1xuICAgICAgICAgICAgOiAnc2JiLXNjcm9sbGJhcid9XCJcbiAgICAgICAgICBpZD0keyFhcmlhUm9sZU9uSG9zdCA/IHRoaXMuX292ZXJsYXlJZCA6IG5vdGhpbmd9XG4gICAgICAgICAgcm9sZT0keyFhcmlhUm9sZU9uSG9zdCA/ICdsaXN0Ym94JyA6IG5vdGhpbmd9XG4gICAgICAgICAgP2FyaWEtbXVsdGlzZWxlY3RhYmxlPSR7dGhpcy5tdWx0aXBsZX1cbiAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9XG4gICAgICAgICAgJHtyZWYoKGRpYWxvZ1JlZikgPT4gKHRoaXMuX292ZXJsYXkgPSBkaWFsb2dSZWYgYXMgSFRNTEVsZW1lbnQpKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5fdXBkYXRlVmFsdWVPcHRpb25TdGF0ZX0+PC9zbG90PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1zZWxlY3QnOiBTYmJTZWxlY3RFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUNxREEsSUFBTSxpQkFBaUI7QUFFdkIsSUFBSSxTQUFTOzs7Ozs7Ozs7Ozs7SUFhQSwwQkFBZ0I7bUJBQXFCLHdCQUNoRCxpQkFDRSxpQkFDRSxpQkFDRSxpQkFDRSx1QkFBdUQsdUJBQXVCLENBQUMsQ0FDaEYsQ0FDRixDQUNGLENBQ0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztjQVRVLHlCQUFxQyxZQVVqRDs7OzhCQXFCRSxVQUFTLEdBQ1QsU0FBUSxDQUFFOztJQUlWLFVBQVM7SUFDVCxzQkFBc0IsR0FBd0IsYUFDN0MsRUFBRSxtQkFBbUIsUUFBUSxDQUFDO0lBRS9CLFNBQVM7S0FBRSxTQUFTO0tBQU0sTUFBTTtJQUFPLENBQUU7R0FBQzs4QkFJMUMsU0FBUyxFQUFFLFdBQVcsTUFBSyxDQUFFLENBQUM7O0lBRzlCLFVBQVM7SUFDVCxzQkFBc0IsR0FBd0IsYUFDN0MsRUFBRSxnQ0FBZ0MsUUFBUSxDQUFDO0lBRTVDLFNBQVM7S0FBRSxTQUFTO0tBQU0sTUFBTTtJQUFPLENBQUU7SUFDekMsYUFBYSxHQUF3QixNQUF3QixLQUFLLEVBQUUscUJBQW9CLENBQUU7R0FBQzs0QkFJM0YsU0FBUSxDQUFFO3VCQWVWLFNBQVMsRUFBRSxTQUFTLEtBQUksQ0FBRSxDQUFDO2dDQVczQixNQUFLLENBQUU7R0FqRFIsYUFBQSxNQUFBLE1BQUEseUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxpQkFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFXLE1BQUEsS0FBQSxVQUFBO01BQUEsSUFBWCxjQUFXO0tBQUE7SUFBQTtJQUFBLFVBQUE7R0FBQSxHQUFBLDJC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
@@ -6,4 +6,4 @@ SbbSelectElement.define();
6
6
  //#endregion
7
7
  export { SbbSelectElement };
8
8
 
9
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9zZWxlY3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBlbnRyeXBvaW50ICovXG5pbXBvcnQgeyBTYmJTZWxlY3RFbGVtZW50IH0gZnJvbSAnLi9zZWxlY3QucHVyZS50cyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LnB1cmUudHMnO1xuXG5TYmJTZWxlY3RFbGVtZW50LmRlZmluZSgpO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBS0EsaUJBQWlCLFFBQVEifQ==
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9zZWxlY3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBlbnRyeXBvaW50ICovXG5pbXBvcnQgeyBTYmJTZWxlY3RFbGVtZW50IH0gZnJvbSAnLi9zZWxlY3QucHVyZS50cyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LnB1cmUudHMnO1xuXG5TYmJTZWxlY3RFbGVtZW50LmRlZmluZSgpO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBS0EsaUJBQWlCLE9BQU0ifQ==
@@ -44,4 +44,4 @@ var SbbSelectionActionPanelElement = class extends SbbSelectionPanelMixin(SbbEle
44
44
  //#endregion
45
45
  export { SbbSelectionActionPanelElement as t };
46
46
 
47
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWFjdGlvbi1wYW5lbC5jb21wb25lbnQtQlQwSG1UamEuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3NlbGVjdGlvbi1hY3Rpb24tcGFuZWwvc2VsZWN0aW9uLWFjdGlvbi1wYW5lbC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9zZWxlY3Rpb24tYWN0aW9uLXBhbmVsL3NlbGVjdGlvbi1hY3Rpb24tcGFuZWwuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLy8gVmFyaWFibGUgdXNlZCB0byBvdmVycmlkZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHNlbGVjdGlvbiBwYW5lbHMuXG4gIC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1pbm5lci1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAvLyBWYXJpYWJsZSB1c2VkIHRvIG92ZXJyaWRlIGJvcmRlciB3aWR0aCBvZiBzZWxlY3Rpb24gcGFuZWxzLlxuICAtLXNiYi1zZWxlY3Rpb24tcGFuZWwtaW5uZXItYm9yZGVyLXdpZHRoOiAwcHg7XG5cbiAgLy8gQXMgdGhlIHNlbGVjdGlvbiBwYW5lbCBoYXMgYWx3YXlzIGEgd2hpdGUvbWlsayBiYWNrZ3JvdW5kLCB3ZSBoYXZlIHRvIGZpeCB0aGUgZm9jdXMgb3V0bGluZSBjb2xvclxuICAvLyB0byBkZWZhdWx0IGNvbG9yIGZvciBjYXNlcyB3aGVyZSB0aGUgc2VsZWN0aW9uIHBhbmVsIGlzIHVzZWQgaW4gYSBuZWdhdGl2ZSBjb250ZXh0LlxuICAtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRlZmF1bHQpLFxuICAgIHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRhcmspXG4gICk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleDogYXV0bztcbiAgd2lkdGg6IHZhcigtLXNiYi1zZWxlY3Rpb24tZ3JvdXAtZWxlbWVudHMtd2lkdGgsIDEwMCUpO1xufVxuXG46aG9zdCg6d2hlcmUoOnN0YXRlKGNvbG9yLW1pbGspKSkge1xuICAtLXNiYi1zZWxlY3Rpb24tYWN0aW9uLXBhbmVsLWJhY2tncm91bmQ6IHZhcigtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYmFja2dyb3VuZC1taWxrKTtcbn1cblxuLy8gOndoZXJlIGlzIHRvIGFsaWduIHNwZWNpZmljaXR5XG46aG9zdCg6d2hlcmUoOnN0YXRlKGNoZWNrZWQpKTpub3QoOndoZXJlKDpzdGF0ZShkaXNhYmxlZCkpKSkge1xuICAtLXNiYi1zZWxlY3Rpb24tYWN0aW9uLXBhbmVsLWJvcmRlci1jb2xvcjogdmFyKC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1ib3JkZXItY29sb3ItY2hlY2tlZCk7XG4gIC0tc2JiLXNlbGVjdGlvbi1hY3Rpb24tcGFuZWwtYm9yZGVyLXdpZHRoOiB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci13aWR0aC1jaGVja2VkKTtcbn1cblxuLy8gOndoZXJlIGlzIHRvIGFsaWduIHNwZWNpZmljaXR5XG46aG9zdCg6c3RhdGUoYm9yZGVybGVzcyk6bm90KDp3aGVyZSg6c3RhdGUoY2hlY2tlZCkpKSkge1xuICAtLXNiYi1zZWxlY3Rpb24tYWN0aW9uLXBhbmVsLWJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbjpob3N0KDp3aGVyZSg6c3RhdGUod2l0aC1leHBhbnNpb24tcGFuZWwpKSkge1xuICAtLXNiYi1zZWxlY3Rpb24tYWN0aW9uLXBhbmVsLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAtLXNiYi1zZWxlY3Rpb24tYWN0aW9uLXBhbmVsLWJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbjpob3N0KDpub3QoOnN0YXRlKHdpdGgtZXhwYW5zaW9uLXBhbmVsKSkpIHtcbiAgLy8gRm9yIGhpZ2ggY29udHJhc3QgbW9kZSB3ZSBuZWVkIGEgcmVhbCBib3JkZXIsIGJ1dCBvbmx5IHdpdGhvdXQgYW4gb3V0ZXIgZXhwYW5zaW9uLXBhbmVsXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaW5zZXQ6IDA7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGJvcmRlcjogdmFyKC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1ib3JkZXItd2lkdGgtZGVmYXVsdCkgc29saWRcbiAgICAgICAgdmFyKC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1ib3JkZXItY29sb3ItZGVmYXVsdCk7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci1yYWRpdXMpO1xuICAgIH1cbiAgfVxufVxuXG46OnNsb3R0ZWQoOmlzKHNiYi1jaGVja2JveC1wYW5lbCwgc2JiLXJhZGlvLWJ1dHRvbi1wYW5lbCkpIHtcbiAgZmxleDogYXV0bztcbn1cblxuOmhvc3QoOnN0YXRlKHNpemUteHMpKSB7XG4gIC0tc2JiLXNlbGVjdGlvbi1hY3Rpb24tcGFuZWwtYWN0aW9uLW1hcmdpbi1pbmxpbmU6IHZhcihcbiAgICAtLXNiYi1zZWxlY3Rpb24tYWN0aW9uLXBhbmVsLWFjdGlvbi1tYXJnaW4taW5saW5lLXhzXG4gICk7XG59XG5cbjpob3N0KDpzdGF0ZShzaXplLXMpKSB7XG4gIC0tc2JiLXNlbGVjdGlvbi1hY3Rpb24tcGFuZWwtYWN0aW9uLW1hcmdpbi1pbmxpbmU6IHZhcihcbiAgICAtLXNiYi1zZWxlY3Rpb24tYWN0aW9uLXBhbmVsLWFjdGlvbi1tYXJnaW4taW5saW5lLXNcbiAgKTtcbn1cblxuOmhvc3QoOnN0YXRlKHNpemUtbSkpIHtcbiAgLS1zYmItc2VsZWN0aW9uLWFjdGlvbi1wYW5lbC1hY3Rpb24tbWFyZ2luLWlubGluZTogdmFyKFxuICAgIC0tc2JiLXNlbGVjdGlvbi1hY3Rpb24tcGFuZWwtYWN0aW9uLW1hcmdpbi1pbmxpbmUtbVxuICApO1xufVxuXG46OnNsb3R0ZWQoOmlzKDpzdGF0ZShhY3Rpb24pLCAuc2JiLWFjdGlvbikpIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBtYXJnaW4taW5saW5lOiB2YXIoLS1zYmItc2VsZWN0aW9uLWFjdGlvbi1wYW5lbC1hY3Rpb24tbWFyZ2luLWlubGluZSk7XG59XG5cbi5zYmItc2VsZWN0aW9uLWFjdGlvbi1wYW5lbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1zZWxlY3Rpb24tYWN0aW9uLXBhbmVsLWJhY2tncm91bmQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci1yYWRpdXMpO1xuXG4gIC8vIFdlIHVzZSB0aGUgYm94LXNoYWRvdyBpbnN0ZWFkIG9mIHRoZSBib3JkZXIgdG8gYXZvaWQgdGhlIHNpemUtY2hhbmdlIGZsaWNrZXJpbmcuXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIHZhcigtLXNiYi1zZWxlY3Rpb24tYWN0aW9uLXBhbmVsLWJvcmRlci13aWR0aClcbiAgICB2YXIoLS1zYmItc2VsZWN0aW9uLWFjdGlvbi1wYW5lbC1ib3JkZXItY29sb3IpO1xufVxuXG4uc2JiLXNlbGVjdGlvbi1hY3Rpb24tcGFuZWxfX2JhZGdlIHtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci1yYWRpdXMpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuIiwiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaHRtbCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCwgdW5zYWZlQ1NTIH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHR5cGUgeyBTYmJDYXJkQmFkZ2VFbGVtZW50IH0gZnJvbSAnLi4vY2FyZC5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiQ2hlY2tib3hQYW5lbEVsZW1lbnQgfSBmcm9tICcuLi9jaGVja2JveC1wYW5lbC5wdXJlLnRzJztcbmltcG9ydCB7IFNiYkVsZW1lbnQsIFNiYlNlbGVjdGlvblBhbmVsTWl4aW4gfSBmcm9tICcuLi9jb3JlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiUmFkaW9CdXR0b25QYW5lbEVsZW1lbnQgfSBmcm9tICcuLi9yYWRpby1idXR0b24tcGFuZWwucHVyZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NlbGVjdGlvbi1hY3Rpb24tcGFuZWwuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgcGFuZWwgY29ubmVjdGVkIHRvIGEgYHNiYi1jaGVja2JveGAgb3IgdG8gYSBgc2JiLXJhZGlvLWJ1dHRvbmAuXG4gKiBJdCBjYW4gYWxzbyBjb250YWluIGFuIGFjdGlvbiBlbGVtZW50IChlLmcuIGFuIGBzYmItYnV0dG9uYClcbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGlzIHNsb3QgdG8gcmVuZGVyIGEgYHNiYi1jaGVja2JveC1wYW5lbGAgb3IgYHNiYi1yYWRpby1idXR0b24tcGFuZWxgIGVsZW1lbnQgYW5kIHRoZSBhY3Rpb24gZWxlbWVudC5cbiAqIEBzbG90IGJhZGdlIC0gVXNlIHRoaXMgc2xvdCB0byByZW5kZXIgYSBgc2JiLWNhcmQtYmFkZ2VgIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlNlbGVjdGlvbkFjdGlvblBhbmVsRWxlbWVudCBleHRlbmRzIFNiYlNlbGVjdGlvblBhbmVsTWl4aW4oU2JiRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXNlbGVjdGlvbi1hY3Rpb24tcGFuZWwnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICB0aGlzLnRvZ2dsZVN0YXRlKFxuICAgICAgJ3dpdGgtZXhwYW5zaW9uLXBhbmVsJyxcbiAgICAgIHRoaXMucGFyZW50RWxlbWVudD8ubG9jYWxOYW1lID09PSAnc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwnLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVTbG90Y2hhbmdlKCk6IHZvaWQge1xuICAgIGNvbnN0IGJhZGdlRWxlbWVudHMgPSAodGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yPEhUTUxTbG90RWxlbWVudD4oXG4gICAgICAnc2xvdFtuYW1lPVwiYmFkZ2VcIl0nLFxuICAgICk/LmFzc2lnbmVkRWxlbWVudHMoKSA/PyBbXSkgYXMgU2JiQ2FyZEJhZGdlRWxlbWVudFtdO1xuICAgIGNvbnN0IHBhbmVsRWxlbWVudHMgPVxuICAgICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yPEhUTUxTbG90RWxlbWVudD4oJ3Nsb3Q6bm90KFtuYW1lXSknKT8uYXNzaWduZWRFbGVtZW50cyh7XG4gICAgICAgIGZsYXR0ZW46IHRydWUsXG4gICAgICB9KSA/PyBbXTtcbiAgICBpZiAoYmFkZ2VFbGVtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBwYW5lbCA9IHBhbmVsRWxlbWVudHMuZmluZChcbiAgICAgICAgKHBhbmVsKSA9PlxuICAgICAgICAgIHBhbmVsLmxvY2FsTmFtZSA9PT0gJ3NiYi1yYWRpby1idXR0b24tcGFuZWwnIHx8IHBhbmVsLmxvY2FsTmFtZSA9PT0gJ3NiYi1jaGVja2JveC1wYW5lbCcsXG4gICAgICApIGFzIFNiYkNoZWNrYm94UGFuZWxFbGVtZW50IHwgU2JiUmFkaW9CdXR0b25QYW5lbEVsZW1lbnQ7XG4gICAgICBpZiAocGFuZWwgJiYgIXBhbmVsLmFyaWFEZXNjcmlwdGlvbikge1xuICAgICAgICBwYW5lbC5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cyA9IGJhZGdlRWxlbWVudHM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXNlbGVjdGlvbi1hY3Rpb24tcGFuZWxfX2JhZGdlXCI+XG4gICAgICAgIDxzbG90IG5hbWU9XCJiYWRnZVwiIEBzbG90Y2hhbmdlPSR7dGhpcy5faGFuZGxlU2xvdGNoYW5nZX0+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXNlbGVjdGlvbi1hY3Rpb24tcGFuZWxcIj5cbiAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9oYW5kbGVTbG90Y2hhbmdlfT48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc2VsZWN0aW9uLWFjdGlvbi1wYW5lbCc6IFNiYlNlbGVjdGlvbkFjdGlvblBhbmVsRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FDZ0JBLElBQWEsaUNBQWIsY0FBb0QsdUJBQXVCLFdBQVcsQ0FBQTs7RUFDcEQsS0FBQSxjQUFzQjs7O0VBQy9CLEtBQUEsU0FBeUIsQ0FBQyxVQUFVLCtCQUFNLENBQUM7O0NBRWxELG9CQUFpQjtFQUMvQixNQUFNLG1CQUFtQjtFQUV6QixLQUFLLFlBQ0gsd0JBQ0EsS0FBSyxlQUFlLGNBQWMsZ0NBQ25DOztDQUdLLG9CQUFpQjtFQUN2QixNQUFNLGdCQUFpQixLQUFLLFdBQVksY0FDdEMsdUJBQ0QsRUFBRSxrQkFBa0IsSUFBSSxFQUFFO0VBQzNCLE1BQU0sZ0JBQ0osS0FBSyxXQUFZLGNBQStCLG1CQUFtQixFQUFFLGlCQUFpQixFQUNwRixTQUFTLE1BQ1YsQ0FBQyxJQUFJLEVBQUU7RUFDVixJQUFJLGNBQWMsU0FBUyxHQUFHO0dBQzVCLE1BQU0sUUFBUSxjQUFjLE1BQ3pCLFVBQ0MsTUFBTSxjQUFjLDRCQUE0QixNQUFNLGNBQWMscUJBQ2Y7R0FDekQsSUFBSSxTQUFTLENBQUMsTUFBTSxpQkFDbEIsTUFBTSwwQkFBMEI7OztDQUtuQixTQUFNO0VBQ3ZCLE9BQU8sSUFBSTs7eUNBRTBCLEtBQUssa0JBQWlCOzs7NEJBR25DLEtBQUssa0JBQWlCIn0=
47
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWFjdGlvbi1wYW5lbC5jb21wb25lbnQtQlQwSG1UamEuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3NlbGVjdGlvbi1hY3Rpb24tcGFuZWwvc2VsZWN0aW9uLWFjdGlvbi1wYW5lbC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9zZWxlY3Rpb24tYWN0aW9uLXBhbmVsL3NlbGVjdGlvbi1hY3Rpb24tcGFuZWwuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLy8gVmFyaWFibGUgdXNlZCB0byBvdmVycmlkZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHNlbGVjdGlvbiBwYW5lbHMuXG4gIC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1pbm5lci1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAvLyBWYXJpYWJsZSB1c2VkIHRvIG92ZXJyaWRlIGJvcmRlciB3aWR0aCBvZiBzZWxlY3Rpb24gcGFuZWxzLlxuICAtLXNiYi1zZWxlY3Rpb24tcGFuZWwtaW5uZXItYm9yZGVyLXdpZHRoOiAwcHg7XG5cbiAgLy8gQXMgdGhlIHNlbGVjdGlvbiBwYW5lbCBoYXMgYWx3YXlzIGEgd2hpdGUvbWlsayBiYWNrZ3JvdW5kLCB3ZSBoYXZlIHRvIGZpeCB0aGUgZm9jdXMgb3V0bGluZSBjb2xvclxuICAvLyB0byBkZWZhdWx0IGNvbG9yIGZvciBjYXNlcyB3aGVyZSB0aGUgc2VsZWN0aW9uIHBhbmVsIGlzIHVzZWQgaW4gYSBuZWdhdGl2ZSBjb250ZXh0LlxuICAtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRlZmF1bHQpLFxuICAgIHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRhcmspXG4gICk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleDogYXV0bztcbiAgd2lkdGg6IHZhcigtLXNiYi1zZWxlY3Rpb24tZ3JvdXAtZWxlbWVudHMtd2lkdGgsIDEwMCUpO1xufVxuXG46aG9zdCg6d2hlcmUoOnN0YXRlKGNvbG9yLW1pbGspKSkge1xuICAtLXNiYi1zZWxlY3Rpb24tYWN0aW9uLXBhbmVsLWJhY2tncm91bmQ6IHZhcigtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYmFja2dyb3VuZC1taWxrKTtcbn1cblxuLy8gOndoZXJlIGlzIHRvIGFsaWduIHNwZWNpZmljaXR5XG46aG9zdCg6d2hlcmUoOnN0YXRlKGNoZWNrZWQpKTpub3QoOndoZXJlKDpzdGF0ZShkaXNhYmxlZCkpKSkge1xuICAtLXNiYi1zZWxlY3Rpb24tYWN0aW9uLXBhbmVsLWJvcmRlci1jb2xvcjogdmFyKC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1ib3JkZXItY29sb3ItY2hlY2tlZCk7XG4gIC0tc2JiLXNlbGVjdGlvbi1hY3Rpb24tcGFuZWwtYm9yZGVyLXdpZHRoOiB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci13aWR0aC1jaGVja2VkKTtcbn1cblxuLy8gOndoZXJlIGlzIHRvIGFsaWduIHNwZWNpZmljaXR5XG46aG9zdCg6c3RhdGUoYm9yZGVybGVzcyk6bm90KDp3aGVyZSg6c3RhdGUoY2hlY2tlZCkpKSkge1xuICAtLXNiYi1zZWxlY3Rpb24tYWN0aW9uLXBhbmVsLWJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbjpob3N0KDp3aGVyZSg6c3RhdGUod2l0aC1leHBhbnNpb24tcGFuZWwpKSkge1xuICAtLXNiYi1zZWxlY3Rpb24tYWN0aW9uLXBhbmVsLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAtLXNiYi1zZWxlY3Rpb24tYWN0aW9uLXBhbmVsLWJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbjpob3N0KDpub3QoOnN0YXRlKHdpdGgtZXhwYW5zaW9uLXBhbmVsKSkpIHtcbiAgLy8gRm9yIGhpZ2ggY29udHJhc3QgbW9kZSB3ZSBuZWVkIGEgcmVhbCBib3JkZXIsIGJ1dCBvbmx5IHdpdGhvdXQgYW4gb3V0ZXIgZXhwYW5zaW9uLXBhbmVsXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaW5zZXQ6IDA7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGJvcmRlcjogdmFyKC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1ib3JkZXItd2lkdGgtZGVmYXVsdCkgc29saWRcbiAgICAgICAgdmFyKC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1ib3JkZXItY29sb3ItZGVmYXVsdCk7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci1yYWRpdXMpO1xuICAgIH1cbiAgfVxufVxuXG46OnNsb3R0ZWQoOmlzKHNiYi1jaGVja2JveC1wYW5lbCwgc2JiLXJhZGlvLWJ1dHRvbi1wYW5lbCkpIHtcbiAgZmxleDogYXV0bztcbn1cblxuOmhvc3QoOnN0YXRlKHNpemUteHMpKSB7XG4gIC0tc2JiLXNlbGVjdGlvbi1hY3Rpb24tcGFuZWwtYWN0aW9uLW1hcmdpbi1pbmxpbmU6IHZhcihcbiAgICAtLXNiYi1zZWxlY3Rpb24tYWN0aW9uLXBhbmVsLWFjdGlvbi1tYXJnaW4taW5saW5lLXhzXG4gICk7XG59XG5cbjpob3N0KDpzdGF0ZShzaXplLXMpKSB7XG4gIC0tc2JiLXNlbGVjdGlvbi1hY3Rpb24tcGFuZWwtYWN0aW9uLW1hcmdpbi1pbmxpbmU6IHZhcihcbiAgICAtLXNiYi1zZWxlY3Rpb24tYWN0aW9uLXBhbmVsLWFjdGlvbi1tYXJnaW4taW5saW5lLXNcbiAgKTtcbn1cblxuOmhvc3QoOnN0YXRlKHNpemUtbSkpIHtcbiAgLS1zYmItc2VsZWN0aW9uLWFjdGlvbi1wYW5lbC1hY3Rpb24tbWFyZ2luLWlubGluZTogdmFyKFxuICAgIC0tc2JiLXNlbGVjdGlvbi1hY3Rpb24tcGFuZWwtYWN0aW9uLW1hcmdpbi1pbmxpbmUtbVxuICApO1xufVxuXG46OnNsb3R0ZWQoOmlzKDpzdGF0ZShhY3Rpb24pLCAuc2JiLWFjdGlvbikpIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBtYXJnaW4taW5saW5lOiB2YXIoLS1zYmItc2VsZWN0aW9uLWFjdGlvbi1wYW5lbC1hY3Rpb24tbWFyZ2luLWlubGluZSk7XG59XG5cbi5zYmItc2VsZWN0aW9uLWFjdGlvbi1wYW5lbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1zZWxlY3Rpb24tYWN0aW9uLXBhbmVsLWJhY2tncm91bmQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci1yYWRpdXMpO1xuXG4gIC8vIFdlIHVzZSB0aGUgYm94LXNoYWRvdyBpbnN0ZWFkIG9mIHRoZSBib3JkZXIgdG8gYXZvaWQgdGhlIHNpemUtY2hhbmdlIGZsaWNrZXJpbmcuXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIHZhcigtLXNiYi1zZWxlY3Rpb24tYWN0aW9uLXBhbmVsLWJvcmRlci13aWR0aClcbiAgICB2YXIoLS1zYmItc2VsZWN0aW9uLWFjdGlvbi1wYW5lbC1ib3JkZXItY29sb3IpO1xufVxuXG4uc2JiLXNlbGVjdGlvbi1hY3Rpb24tcGFuZWxfX2JhZGdlIHtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci1yYWRpdXMpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuIiwiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaHRtbCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCwgdW5zYWZlQ1NTIH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHR5cGUgeyBTYmJDYXJkQmFkZ2VFbGVtZW50IH0gZnJvbSAnLi4vY2FyZC5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiQ2hlY2tib3hQYW5lbEVsZW1lbnQgfSBmcm9tICcuLi9jaGVja2JveC1wYW5lbC5wdXJlLnRzJztcbmltcG9ydCB7IFNiYkVsZW1lbnQsIFNiYlNlbGVjdGlvblBhbmVsTWl4aW4gfSBmcm9tICcuLi9jb3JlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiUmFkaW9CdXR0b25QYW5lbEVsZW1lbnQgfSBmcm9tICcuLi9yYWRpby1idXR0b24tcGFuZWwucHVyZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NlbGVjdGlvbi1hY3Rpb24tcGFuZWwuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgcGFuZWwgY29ubmVjdGVkIHRvIGEgYHNiYi1jaGVja2JveGAgb3IgdG8gYSBgc2JiLXJhZGlvLWJ1dHRvbmAuXG4gKiBJdCBjYW4gYWxzbyBjb250YWluIGFuIGFjdGlvbiBlbGVtZW50IChlLmcuIGFuIGBzYmItYnV0dG9uYClcbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGlzIHNsb3QgdG8gcmVuZGVyIGEgYHNiYi1jaGVja2JveC1wYW5lbGAgb3IgYHNiYi1yYWRpby1idXR0b24tcGFuZWxgIGVsZW1lbnQgYW5kIHRoZSBhY3Rpb24gZWxlbWVudC5cbiAqIEBzbG90IGJhZGdlIC0gVXNlIHRoaXMgc2xvdCB0byByZW5kZXIgYSBgc2JiLWNhcmQtYmFkZ2VgIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlNlbGVjdGlvbkFjdGlvblBhbmVsRWxlbWVudCBleHRlbmRzIFNiYlNlbGVjdGlvblBhbmVsTWl4aW4oU2JiRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXNlbGVjdGlvbi1hY3Rpb24tcGFuZWwnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICB0aGlzLnRvZ2dsZVN0YXRlKFxuICAgICAgJ3dpdGgtZXhwYW5zaW9uLXBhbmVsJyxcbiAgICAgIHRoaXMucGFyZW50RWxlbWVudD8ubG9jYWxOYW1lID09PSAnc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwnLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVTbG90Y2hhbmdlKCk6IHZvaWQge1xuICAgIGNvbnN0IGJhZGdlRWxlbWVudHMgPSAodGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yPEhUTUxTbG90RWxlbWVudD4oXG4gICAgICAnc2xvdFtuYW1lPVwiYmFkZ2VcIl0nLFxuICAgICk/LmFzc2lnbmVkRWxlbWVudHMoKSA/PyBbXSkgYXMgU2JiQ2FyZEJhZGdlRWxlbWVudFtdO1xuICAgIGNvbnN0IHBhbmVsRWxlbWVudHMgPVxuICAgICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yPEhUTUxTbG90RWxlbWVudD4oJ3Nsb3Q6bm90KFtuYW1lXSknKT8uYXNzaWduZWRFbGVtZW50cyh7XG4gICAgICAgIGZsYXR0ZW46IHRydWUsXG4gICAgICB9KSA/PyBbXTtcbiAgICBpZiAoYmFkZ2VFbGVtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBwYW5lbCA9IHBhbmVsRWxlbWVudHMuZmluZChcbiAgICAgICAgKHBhbmVsKSA9PlxuICAgICAgICAgIHBhbmVsLmxvY2FsTmFtZSA9PT0gJ3NiYi1yYWRpby1idXR0b24tcGFuZWwnIHx8IHBhbmVsLmxvY2FsTmFtZSA9PT0gJ3NiYi1jaGVja2JveC1wYW5lbCcsXG4gICAgICApIGFzIFNiYkNoZWNrYm94UGFuZWxFbGVtZW50IHwgU2JiUmFkaW9CdXR0b25QYW5lbEVsZW1lbnQ7XG4gICAgICBpZiAocGFuZWwgJiYgIXBhbmVsLmFyaWFEZXNjcmlwdGlvbikge1xuICAgICAgICBwYW5lbC5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cyA9IGJhZGdlRWxlbWVudHM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXNlbGVjdGlvbi1hY3Rpb24tcGFuZWxfX2JhZGdlXCI+XG4gICAgICAgIDxzbG90IG5hbWU9XCJiYWRnZVwiIEBzbG90Y2hhbmdlPSR7dGhpcy5faGFuZGxlU2xvdGNoYW5nZX0+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXNlbGVjdGlvbi1hY3Rpb24tcGFuZWxcIj5cbiAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9oYW5kbGVTbG90Y2hhbmdlfT48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc2VsZWN0aW9uLWFjdGlvbi1wYW5lbCc6IFNiYlNlbGVjdGlvbkFjdGlvblBhbmVsRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FDZ0JBLElBQWEsaUNBQWIsY0FBb0QsdUJBQXVCLFVBQVUsRUFBQzs7RUFDcEQsS0FBQSxjQUFzQjtDQUE2Qjs7RUFDNUQsS0FBQSxTQUF5QixDQUFDLFVBQVUsOEJBQUssQ0FBQztDQUFFO0NBRW5ELG9CQUFpQjtFQUMvQixNQUFNLGtCQUFpQjtFQUV2QixLQUFLLFlBQ0gsd0JBQ0EsS0FBSyxlQUFlLGNBQWMsK0JBQStCO0NBRXJFO0NBRVEsb0JBQWlCO0VBQ3ZCLE1BQU0sZ0JBQWlCLEtBQUssV0FBWSxjQUN0QyxzQkFBb0IsR0FDbkIsaUJBQWdCLEtBQU0sQ0FBQTtFQUN6QixNQUFNLGdCQUNKLEtBQUssV0FBWSxjQUErQixrQkFBa0IsR0FBRyxpQkFBaUIsRUFDcEYsU0FBUyxLQUFBLENBQ1YsS0FBSyxDQUFBO0VBQ1IsSUFBSSxjQUFjLFNBQVMsR0FBRztHQUM1QixNQUFNLFFBQVEsY0FBYyxNQUN6QixVQUNDLE1BQU0sY0FBYyw0QkFBNEIsTUFBTSxjQUFjLG9CQUFvQjtHQUU1RixJQUFJLFNBQVMsQ0FBQyxNQUFNLGlCQUNsQixNQUFNLDBCQUEwQjtFQUVwQztDQUNGO0NBRW1CLFNBQU07RUFDdkIsT0FBTyxJQUFJOzt5Q0FFMEIsS0FBSyxrQkFBaUI7Ozs0QkFHbkMsS0FBSyxrQkFBaUI7OztDQUdoRCJ9
@@ -6,4 +6,4 @@ SbbSelectionActionPanelElement.define();
6
6
  //#endregion
7
7
  export { SbbSelectionActionPanelElement };
8
8
 
9
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWFjdGlvbi1wYW5lbC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvc2VsZWN0aW9uLWFjdGlvbi1wYW5lbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGVudHJ5cG9pbnQgKi9cbmltcG9ydCB7IFNiYlNlbGVjdGlvbkFjdGlvblBhbmVsRWxlbWVudCB9IGZyb20gJy4vc2VsZWN0aW9uLWFjdGlvbi1wYW5lbC5wdXJlLnRzJztcblxuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3Rpb24tYWN0aW9uLXBhbmVsLnB1cmUudHMnO1xuXG5TYmJTZWxlY3Rpb25BY3Rpb25QYW5lbEVsZW1lbnQuZGVmaW5lKCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFLQSwrQkFBK0IsUUFBUSJ9
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWFjdGlvbi1wYW5lbC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvc2VsZWN0aW9uLWFjdGlvbi1wYW5lbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGVudHJ5cG9pbnQgKi9cbmltcG9ydCB7IFNiYlNlbGVjdGlvbkFjdGlvblBhbmVsRWxlbWVudCB9IGZyb20gJy4vc2VsZWN0aW9uLWFjdGlvbi1wYW5lbC5wdXJlLnRzJztcblxuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3Rpb24tYWN0aW9uLXBhbmVsLnB1cmUudHMnO1xuXG5TYmJTZWxlY3Rpb25BY3Rpb25QYW5lbEVsZW1lbnQuZGVmaW5lKCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFLQSwrQkFBK0IsT0FBTSJ9
@@ -183,4 +183,4 @@ var SbbSelectionExpansionPanelElement = (() => {
183
183
  //#endregion
184
184
  export { SbbSelectionExpansionPanelElement as t };
185
185
 
186
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC5jb21wb25lbnQtQlQ3OFFoYmYuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3NlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwvc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsL3NlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbi8vIE9wZW4vQ2xvc2UgYW5pbWF0aW9uIHZhcnNcbiRvcGVuLWFuaW0tcm93cy1mcm9tOiAwZnI7XG4kb3Blbi1hbmltLXJvd3MtdG86IDFmcjtcbiRvcGVuLWFuaW0tb3BhY2l0eS1mcm9tOiAwO1xuJG9wZW4tYW5pbS1vcGFjaXR5LXRvOiAxO1xuXG46aG9zdCB7XG4gIC8vIFZhcmlhYmxlIHVzZWQgdG8gb3ZlcnJpZGUgYmFja2dyb3VuZCBjb2xvciBvZiBzZWxlY3Rpb24gcGFuZWxzLlxuICAtLXNiYi1zZWxlY3Rpb24tcGFuZWwtaW5uZXItYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgLy8gVmFyaWFibGUgdXNlZCB0byBvdmVycmlkZSBib3JkZXIgd2lkdGggb2Ygc2VsZWN0aW9uIHBhbmVscy5cbiAgLS1zYmItc2VsZWN0aW9uLXBhbmVsLWlubmVyLWJvcmRlci13aWR0aDogMHB4O1xuICAtLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNHgpXG4gICk7XG5cbiAgLy8gQXMgdGhlIHNlbGVjdGlvbiBwYW5lbCBoYXMgYWx3YXlzIGEgd2hpdGUvbWlsayBiYWNrZ3JvdW5kLCB3ZSBoYXZlIHRvIGZpeCB0aGUgZm9jdXMgb3V0bGluZSBjb2xvclxuICAvLyB0byBkZWZhdWx0IGNvbG9yIGZvciBjYXNlcyB3aGVyZSB0aGUgc2VsZWN0aW9uIHBhbmVsIGlzIHVzZWQgaW4gYSBuZWdhdGl2ZSBjb250ZXh0LlxuICAtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRlZmF1bHQpLFxuICAgIHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRhcmspXG4gICk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IHZhcigtLXNiYi1zZWxlY3Rpb24tZ3JvdXAtZWxlbWVudHMtd2lkdGgsIDEwMCUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC1iYWNrZ3JvdW5kKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1ib3JkZXItcmFkaXVzKTtcblxuICAvLyBUbyBwcm92aWRlIGEgc21vb3RoIHRyYW5zaXRpb24gb2Ygd2lkdGgsIHdlIHVzZSBib3gtc2hhZG93IHRvIGltaXRhdGUgdGhlIGJvcmRlci5cbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgdmFyKC0tc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwtYm9yZGVyLXdpZHRoKVxuICAgIHZhcigtLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWJvcmRlci1jb2xvcik7XG5cbiAgdHJhbnNpdGlvbjoge1xuICAgIGR1cmF0aW9uOiB2YXIoLS1zYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLWFuaW1hdGlvbi1lYXNpbmcpO1xuICAgIHByb3BlcnR5OiBib3gtc2hhZG93O1xuICB9XG5cbiAgLy8gRm9yIGhpZ2ggY29udHJhc3QgbW9kZSB3ZSBuZWVkIGEgcmVhbCBib3JkZXJcbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBpbnNldDogMDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgYm9yZGVyOiB2YXIoLS1zYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC1ib3JkZXItd2lkdGgpIHNvbGlkXG4gICAgICAgIHZhcigtLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWJvcmRlci1jb2xvcik7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci1yYWRpdXMpO1xuICAgIH1cbiAgfVxufVxuXG46aG9zdCg6c3RhdGUoc2l6ZS14cykpIHtcbiAgLS1zYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC1jb250ZW50LXBhZGRpbmctaW5saW5lOiB2YXIoXG4gICAgLS1zYmItc2VsZWN0aW9uLXBhbmVsLWlucHV0LXBhZGRpbmctaW5saW5lLXhzXG4gICk7XG59XG5cbjpob3N0KDpzdGF0ZShzaXplLXMpKSB7XG4gIC0tc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwtY29udGVudC1wYWRkaW5nLWlubGluZTogdmFyKFxuICAgIC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1pbnB1dC1wYWRkaW5nLWlubGluZS1zXG4gICk7XG59XG5cbjpob3N0KDpzdGF0ZShzaXplLW0pKSB7XG4gIC0tc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwtY29udGVudC1wYWRkaW5nLWlubGluZTogdmFyKFxuICAgIC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1pbnB1dC1wYWRkaW5nLWlubGluZS1tXG4gICk7XG59XG5cbjpob3N0KDpzdGF0ZShjb2xvci1taWxrKSkge1xuICAtLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWJhY2tncm91bmQ6IHZhcigtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYmFja2dyb3VuZC1taWxrKTtcbn1cblxuLy8gOndoZXJlIGlzIHRvIGFsaWduIHNwZWNpZmljaXR5XG46aG9zdCg6d2hlcmUoOnN0YXRlKGNoZWNrZWQpKTpub3QoOndoZXJlKDpzdGF0ZShkaXNhYmxlZCkpKSkge1xuICAtLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWJvcmRlci1jb2xvcjogdmFyKC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1ib3JkZXItY29sb3ItY2hlY2tlZCk7XG4gIC0tc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwtYm9yZGVyLXdpZHRoOiB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci13aWR0aC1jaGVja2VkKTtcbn1cblxuLy8gOndoZXJlIGlzIHRvIGFsaWduIHNwZWNpZmljaXR5XG46aG9zdCg6c3RhdGUoc2xvdHRlZC1jb250ZW50KTp3aGVyZSg6c3RhdGUoZGlzYWJsZWQpKSkge1xuICAtLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWJvcmRlci1jb2xvcjogdmFyKC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1ib3JkZXItY29sb3ItZGVmYXVsdCk7XG59XG5cbi8vIDp3aGVyZSBpcyB0byBhbGlnbiBzcGVjaWZpY2l0eVxuOmhvc3QoOnN0YXRlKGJvcmRlcmxlc3MpOm5vdCg6d2hlcmUoOnN0YXRlKGNoZWNrZWQpKSkpIHtcbiAgLS1zYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC1ib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vLyBXaGVuIHRoZSBwYW5lbCBpcyBjbG9zZWQsIHdlIHJlbW92ZSB0aGUgcGFkZGluZyBhdCB0aGUgYm90dG9tIGZvciBhIG5pY2UgdHJhbnNpdGlvbiB3aGVuIG9wZW5pbmcuXG46aG9zdCg6bm90KDpzdGF0ZShzbG90dGVkLWNvbnRlbnQpOndoZXJlKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCkpKSkge1xuICAtLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQtcGFkZGluZy1ibG9jay1lbmQ6IDBweDtcbiAgLS1zYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC1jb250ZW50LXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsX19jb250ZW50LS13cmFwcGVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgdmlzaWJpbGl0eTogdmFyKC0tc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwtY29udGVudC12aXNpYmlsaXR5KTtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAjeyRvcGVuLWFuaW0tcm93cy1mcm9tfTtcbiAgb3BhY2l0eTogI3skb3Blbi1hbmltLW9wYWNpdHktZnJvbX07XG5cbiAgOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5lZCkpICYge1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogI3skb3Blbi1hbmltLXJvd3MtdG99O1xuICAgIG9wYWNpdHk6ICN7JG9wZW4tYW5pbS1vcGFjaXR5LXRvfTtcbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSkgJiB7XG4gICAgYW5pbWF0aW9uLW5hbWU6IG9wZW4sIG9wZW4tb3BhY2l0eTtcbiAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcbiAgICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLWFuaW1hdGlvbi1lYXNpbmcpO1xuICAgIGFuaW1hdGlvbi1kZWxheTogMHMsIHZhcigtLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gIH1cblxuICA6aG9zdCg6c3RhdGUoc3RhdGUtY2xvc2luZykpICYge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjbG9zZTtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLWFuaW1hdGlvbi1lYXNpbmcpO1xuICB9XG5cbiAgOmhvc3QoOm5vdCg6c3RhdGUoc2xvdHRlZC1jb250ZW50KSkpICYge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsX19jb250ZW50IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQtcGFkZGluZy1pbmxpbmUpO1xuICBwYWRkaW5nLWJsb2NrLWVuZDogdmFyKC0tc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwtY29udGVudC1wYWRkaW5nLWJsb2NrLWVuZCk7XG4gIHRyYW5zaXRpb246IHBhZGRpbmcgdmFyKC0tc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwtYW5pbWF0aW9uLWR1cmF0aW9uKVxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZWFzaW5nKTtcbn1cblxuc2JiLWRpdmlkZXIge1xuICBtYXJnaW4tYmxvY2stZW5kOiB2YXIoLS1zYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC1jb250ZW50LXBhZGRpbmctYmxvY2stc3RhcnQpO1xufVxuXG5Aa2V5ZnJhbWVzIG9wZW4ge1xuICBmcm9tIHtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6ICN7JG9wZW4tYW5pbS1yb3dzLWZyb219O1xuICB9XG5cbiAgdG8ge1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogI3skb3Blbi1hbmltLXJvd3MtdG99O1xuICB9XG59XG5cbkBrZXlmcmFtZXMgb3Blbi1vcGFjaXR5IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogI3skb3Blbi1hbmltLW9wYWNpdHktZnJvbX07XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogI3skb3Blbi1hbmltLW9wYWNpdHktdG99O1xuICB9XG59XG5cbkBrZXlmcmFtZXMgY2xvc2Uge1xuICBmcm9tIHtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6ICN7JG9wZW4tYW5pbS1yb3dzLXRvfTtcbiAgICBvcGFjaXR5OiAjeyRvcGVuLWFuaW0tb3BhY2l0eS10b307XG4gIH1cblxuICB0byB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAjeyRvcGVuLWFuaW0tcm93cy1mcm9tfTtcbiAgICBvcGFjaXR5OiAjeyRvcGVuLWFuaW0tb3BhY2l0eS1mcm9tfTtcbiAgfVxufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHksIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQge1xuICBmb3JjZVR5cGUsXG4gIGkxOG5Db2xsYXBzZWQsXG4gIGkxOG5FeHBhbmRlZCxcbiAgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24sXG4gIFNiYkVsZW1lbnQsXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIFNiYkxhbmd1YWdlQ29udHJvbGxlcixcbiAgdHlwZSBTYmJPcGVuZWRDbG9zZWRTdGF0ZSxcbiAgU2JiU2VsZWN0aW9uUGFuZWxNaXhpbixcbn0gZnJvbSAnLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJEaXZpZGVyRWxlbWVudCB9IGZyb20gJy4uL2RpdmlkZXIucHVyZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGFuIGV4cGFuZGFibGUgcGFuZWwgY29ubmVjdGVkIHRvIGEgYHNiYi1jaGVja2JveGAgb3IgdG8gYSBgc2JiLXJhZGlvLWJ1dHRvbmAuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1jaGVja2JveC1wYW5lbGAgb3IgYHNiYi1yYWRpby1idXR0b24tcGFuZWxgIGVsZW1lbnRzIHRvIHRoZSBgc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWxgLlxuICogQHNsb3QgY29udGVudCAtIFVzZSB0aGlzIHNsb3QgdG8gcHJvdmlkZSBjdXN0b20gY29udGVudCBmb3IgdGhlIHBhbmVsIChvcHRpb25hbCkuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTZWxlY3Rpb25FeHBhbnNpb25QYW5lbEVsZW1lbnQgZXh0ZW5kcyBTYmJTZWxlY3Rpb25QYW5lbE1peGluKFNiYkVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBlbGVtZW50RGVwZW5kZW5jaWVzOiBTYmJFbGVtZW50VHlwZVtdID0gW1NiYkRpdmlkZXJFbGVtZW50XTtcbiAgLy8gVE9ETzogZml4IGluaGVyaXRpbmcgZnJvbSBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCByZXF1aXJlczogaHR0cHM6Ly9naXRodWIuY29tL29wZW4td2MvY3VzdG9tLWVsZW1lbnRzLW1hbmlmZXN0L2lzc3Vlcy8yNTNcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBiZWZvcmVvcGVuOiAnYmVmb3Jlb3BlbicsXG4gICAgb3BlbjogJ29wZW4nLFxuICAgIGJlZm9yZWNsb3NlOiAnYmVmb3JlY2xvc2UnLFxuICAgIGNsb3NlOiAnY2xvc2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBjb250ZW50IHNlY3Rpb24gaXMgYWx3YXlzIHZpc2libGUuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdmb3JjZS1vcGVuJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZm9yY2VPcGVuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFRoZSBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LiAqL1xuICBAc3RhdGUoKVxuICBwcml2YXRlIHNldCBfc3RhdGUoc3RhdGU6IFNiYk9wZW5lZENsb3NlZFN0YXRlKSB7XG4gICAgaWYgKHRoaXMuX3N0YXRlSW50ZXJuYWwpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoYHN0YXRlLSR7dGhpcy5fc3RhdGVJbnRlcm5hbH1gKTtcbiAgICB9XG4gICAgdGhpcy5fc3RhdGVJbnRlcm5hbCA9IHN0YXRlO1xuICAgIGlmICh0aGlzLl9zdGF0ZUludGVybmFsKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKGBzdGF0ZS0ke3RoaXMuX3N0YXRlSW50ZXJuYWx9YCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgZ2V0IF9zdGF0ZSgpOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlSW50ZXJuYWw7XG4gIH1cbiAgcHJpdmF0ZSBfc3RhdGVJbnRlcm5hbCE6IFNiYk9wZW5lZENsb3NlZFN0YXRlO1xuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAvKiogV2hldGhlciBpdCBoYXMgYW4gZXhwYW5kYWJsZSBjb250ZW50ICovXG4gIHByaXZhdGUgZ2V0IF9oYXNDb250ZW50KCk6IGJvb2xlYW4ge1xuICAgIC8vIFdlIGNhbm5vdCB1c2UgdGhlIE5hbWVkU2xvdHMgYmVjYXVzZSBpdCdzIHRvbyBzbG93IHRvIGluaXRpYWxpemVcbiAgICByZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oJ1tzbG90PVwiY29udGVudFwiXScpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuX3N0YXRlID0gJ2Nsb3NlZCc7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2ZvcmNlT3BlbicpKSB7XG4gICAgICB0aGlzLl91cGRhdGVTdGF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBvbklucHV0U3RhdGVDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5fdXBkYXRlU3RhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVN0YXRlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faGFzQ29udGVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvcmNlT3BlbiB8fCB0aGlzLm1hdGNoZXMoJzpzdGF0ZShjaGVja2VkKScpKSB7XG4gICAgICB0aGlzLl9vcGVuKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2Nsb3NlKCk7XG4gICAgfVxuICAgIHRoaXMuX3VwZGF0ZUV4cGFuZGVkTGFiZWwodGhpcy5mb3JjZU9wZW4gfHwgdGhpcy5tYXRjaGVzKCc6c3RhdGUoY2hlY2tlZCknKSk7XG4gIH1cblxuICBwcml2YXRlIF9vcGVuKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdGF0ZSAhPT0gJ2Nsb3NlZCcgJiYgdGhpcy5fc3RhdGUgIT09ICdjbG9zaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3N0YXRlID0gJ29wZW5pbmcnO1xuICAgIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29udGVudCBzZWN0aW9uIHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2JlZm9yZW9wZW4nLCB7IGNhbmNlbGFibGU6IHRydWUgfSkpO1xuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgaWYgKCF0aGlzLmhhc1VwZGF0ZWQgfHwgdGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdGF0ZSAhPT0gJ29wZW5lZCcgJiYgdGhpcy5fc3RhdGUgIT09ICdvcGVuaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3N0YXRlID0gJ2Nsb3NpbmcnO1xuICAgIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29udGVudCBzZWN0aW9uIGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2JlZm9yZWNsb3NlJywgeyBjYW5jZWxhYmxlOiB0cnVlIH0pKTtcblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBjbG9zZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKHRoaXMsICctLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29udGVudCBzZWN0aW9uIGlzIGNsb3NlZC4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjbG9zZScpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUgPSAnb3BlbmVkJztcbiAgICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbnRlbnQgc2VjdGlvbiBpcyBvcGVuZWQuICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnb3BlbicpKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3Blbi1vcGFjaXR5JyAmJiB0aGlzLl9zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnY2xvc2UnICYmIHRoaXMuX3N0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF91cGRhdGVFeHBhbmRlZExhYmVsKG9wZW46IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmh5ZHJhdGlvbkNvbXBsZXRlO1xuXG4gICAgY29uc3QgcGFuZWxFbGVtZW50ID0gdGhpcy5wYW5lbDtcbiAgICBpZiAoIXBhbmVsRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5faGFzQ29udGVudCkge1xuICAgICAgcGFuZWxFbGVtZW50LmV4cGFuc2lvblN0YXRlID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcGFuZWxFbGVtZW50LmV4cGFuc2lvblN0YXRlID0gb3BlblxuICAgICAgPyAnLCAnICsgaTE4bkV4cGFuZGVkW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdXG4gICAgICA6ICcsICcgKyBpMThuQ29sbGFwc2VkW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWxfX2lucHV0XCI+XG4gICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsX19jb250ZW50LS13cmFwcGVyXCJcbiAgICAgICAgP2luZXJ0PSR7dGhpcy5fc3RhdGUgIT09ICdvcGVuZWQnfVxuICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbF9fY29udGVudFwiPlxuICAgICAgICAgIDxzYmItZGl2aWRlcj48L3NiYi1kaXZpZGVyPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJjb250ZW50XCI+PC9zbG90PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsJzogU2JiU2VsZWN0aW9uRXhwYW5zaW9uUGFuZWxFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztJQzhCYSwyQ0FBaUM7bUJBQVMsdUJBQXVCLFdBQVc7Ozs7OztjQUE1RSwwQ0FBMEMsWUFBa0M7Ozs0QkFhdEYsV0FBVyxFQUNYLFNBQVM7SUFBRSxXQUFXO0lBQWMsTUFBTTtJQUFTLENBQUMsQ0FBQTs2QkFJcEQsT0FBTyxDQUFBO0dBSFIsYUFBQSxNQUFBLE1BQUEsdUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxlQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQVMsTUFBQSxLQUFBLFVBQUE7TUFBQSxJQUFULFlBQVM7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSx5QkFBQSw2QkFBQTtHQUl6QixhQUFBLE1BQUEsTUFBQSx3QkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLFlBQUE7S0FBQSxNQUFBLEtBQUEsVUFBQTtNQUFBLElBQVksU0FBTTs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLE1BQUEsMkJBQUE7Ozs7Ozs7OztHQWxCYyxLQUFBLGNBQXNCOzs7R0FDL0IsS0FBQSxzQkFBd0MsQ0FBQyxrQkFBa0I7OztHQUUzRCxLQUFBLFNBQXlCLENBQUMsVUFBVSxrQ0FBTSxDQUFDOzs7R0FDM0MsS0FBQSxTQUFTO0lBQzlCLFlBQVk7SUFDWixNQUFNO0lBQ04sYUFBYTtJQUNiLE9BQU87SUFDQzs7RUFLVjs7RUFBQSxJQUFnQixZQUFTO0dBQUEsT0FBQSxLQUFBOztFQUF6QixJQUFnQixVQUFTLE9BQUE7R0FBQSxLQUFBLDhCQUFBOzs7RUFJekIsSUFBWSxPQUFPLE9BQTJCO0dBQzVDLElBQUksS0FBSyxnQkFDUCxLQUFLLFVBQVUsT0FBTyxPQUFPLFNBQVMsS0FBSyxpQkFBaUI7R0FFOUQsS0FBSyxpQkFBaUI7R0FDdEIsSUFBSSxLQUFLLGdCQUNQLEtBQUssVUFBVSxPQUFPLElBQUksU0FBUyxLQUFLLGlCQUFpQjs7RUFHN0QsSUFBWSxTQUFNO0dBQ2hCLE9BQU8sS0FBSzs7O0VBT2QsSUFBWSxjQUFXO0dBRXJCLE9BQU8sS0FBSyxtQkFBbUIscUJBQW1CLENBQUMsU0FBUzs7RUFHOUQsY0FBQTtHQUNFLE9BQU87R0EzQk8sS0FBQSwrQkFmTCxrQkFBQSxNQUFBLDJCQUFpQyxFQUFBLGtCQUFBLE1BQUEseUJBZVAsTUFBSztHQWdCbEMsS0FBQSxpQkFBYyxrQkFBQSxNQUFBLDZCQUFBO0dBRWQsS0FBQSxZQUFZLElBQUksc0JBQXNCLEtBQUs7R0FXakQsS0FBSyxTQUFTOztFQUdHLFdBQVcsbUJBQXVDO0dBQ25FLE1BQU0sV0FBVyxrQkFBa0I7R0FFbkMsSUFBSSxrQkFBa0IsSUFBSSxZQUFZLEVBQ3BDLEtBQUssY0FBYzs7RUFJSixxQkFBa0I7R0FDbkMsS0FBSyxjQUFjOztFQUdiLGVBQVk7R0FDbEIsSUFBSSxDQUFDLEtBQUssYUFDUjtHQUdGLElBQUksS0FBSyxhQUFhLEtBQUssUUFBUSx3Q0FBa0IsRUFDbkQsS0FBSyxPQUFPO1FBRVosS0FBSyxRQUFRO0dBRWYsS0FBSyxxQkFBcUIsS0FBSyxhQUFhLEtBQUssUUFBUSx3Q0FBa0IsQ0FBQzs7RUFHdEUsUUFBSztHQUNYLElBQUksS0FBSyxXQUFXLFlBQVksS0FBSyxXQUFXLFdBQzlDO0dBR0YsS0FBSyxTQUFTOztHQUVkLEtBQUssY0FBYyxJQUFJLE1BQU0sY0FBYyxFQUFFLFlBQVksTUFBTSxDQUFDLENBQUM7R0FJakUsSUFBSSxDQUFDLEtBQUssY0FBYyxLQUFLLDBCQUEwQixFQUNyRCxLQUFLLGdCQUFnQjs7RUFJakIsU0FBTTtHQUNaLElBQUksS0FBSyxXQUFXLFlBQVksS0FBSyxXQUFXLFdBQzlDO0dBR0YsS0FBSyxTQUFTOztHQUVkLEtBQUssY0FBYyxJQUFJLE1BQU0sZUFBZSxFQUFFLFlBQVksTUFBTSxDQUFDLENBQUM7R0FJbEUsSUFBSSxLQUFLLDBCQUEwQixFQUNqQyxLQUFLLGdCQUFnQjs7RUFJakIsMkJBQXdCO0dBQzlCLE9BQU8sd0JBQXdCLE1BQU0scURBQXFEOztFQUdwRixpQkFBYztHQUNwQixLQUFLLFNBQVM7O0dBRWQsS0FBSyxjQUFjLElBQUksTUFBTSxRQUFRLENBQUM7O0VBR2hDLGlCQUFjO0dBQ3BCLEtBQUssU0FBUzs7R0FFZCxLQUFLLGNBQWMsSUFBSSxNQUFNLE9BQU8sQ0FBQzs7RUFHL0IsZ0JBQWdCLE9BQXFCO0dBQzNDLElBQUksTUFBTSxrQkFBa0Isa0JBQWtCLEtBQUssV0FBVyxXQUM1RCxLQUFLLGdCQUFnQjtRQUNoQixJQUFJLE1BQU0sa0JBQWtCLFdBQVcsS0FBSyxXQUFXLFdBQzVELEtBQUssZ0JBQWdCOztFQUlqQixNQUFNLHFCQUFxQixNQUFhO0dBQzlDLE1BQU0sS0FBSztHQUVYLE1BQU0sZUFBZSxLQUFLO0dBQzFCLElBQUksQ0FBQyxjQUNIO0dBR0YsSUFBSSxDQUFDLEtBQUssYUFBYTtJQUNyQixhQUFhLGlCQUFpQjtJQUM5Qjs7R0FHRixhQUFhLGlCQUFpQixPQUMxQixPQUFPLGFBQWEsS0FBSyxVQUFVLFdBQ25DLE9BQU8sY0FBYyxLQUFLLFVBQVU7O0VBR3ZCLFNBQU07R0FDdkIsT0FBTyxJQUFJOzs7Ozs7aUJBTUUsS0FBSyxXQUFXLFNBQUE7d0JBQ1QsS0FBSyxnQkFBQSJ9
186
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC5jb21wb25lbnQtQlQ3OFFoYmYuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3NlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwvc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsL3NlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbi8vIE9wZW4vQ2xvc2UgYW5pbWF0aW9uIHZhcnNcbiRvcGVuLWFuaW0tcm93cy1mcm9tOiAwZnI7XG4kb3Blbi1hbmltLXJvd3MtdG86IDFmcjtcbiRvcGVuLWFuaW0tb3BhY2l0eS1mcm9tOiAwO1xuJG9wZW4tYW5pbS1vcGFjaXR5LXRvOiAxO1xuXG46aG9zdCB7XG4gIC8vIFZhcmlhYmxlIHVzZWQgdG8gb3ZlcnJpZGUgYmFja2dyb3VuZCBjb2xvciBvZiBzZWxlY3Rpb24gcGFuZWxzLlxuICAtLXNiYi1zZWxlY3Rpb24tcGFuZWwtaW5uZXItYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgLy8gVmFyaWFibGUgdXNlZCB0byBvdmVycmlkZSBib3JkZXIgd2lkdGggb2Ygc2VsZWN0aW9uIHBhbmVscy5cbiAgLS1zYmItc2VsZWN0aW9uLXBhbmVsLWlubmVyLWJvcmRlci13aWR0aDogMHB4O1xuICAtLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNHgpXG4gICk7XG5cbiAgLy8gQXMgdGhlIHNlbGVjdGlvbiBwYW5lbCBoYXMgYWx3YXlzIGEgd2hpdGUvbWlsayBiYWNrZ3JvdW5kLCB3ZSBoYXZlIHRvIGZpeCB0aGUgZm9jdXMgb3V0bGluZSBjb2xvclxuICAvLyB0byBkZWZhdWx0IGNvbG9yIGZvciBjYXNlcyB3aGVyZSB0aGUgc2VsZWN0aW9uIHBhbmVsIGlzIHVzZWQgaW4gYSBuZWdhdGl2ZSBjb250ZXh0LlxuICAtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRlZmF1bHQpLFxuICAgIHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRhcmspXG4gICk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IHZhcigtLXNiYi1zZWxlY3Rpb24tZ3JvdXAtZWxlbWVudHMtd2lkdGgsIDEwMCUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC1iYWNrZ3JvdW5kKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1ib3JkZXItcmFkaXVzKTtcblxuICAvLyBUbyBwcm92aWRlIGEgc21vb3RoIHRyYW5zaXRpb24gb2Ygd2lkdGgsIHdlIHVzZSBib3gtc2hhZG93IHRvIGltaXRhdGUgdGhlIGJvcmRlci5cbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgdmFyKC0tc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwtYm9yZGVyLXdpZHRoKVxuICAgIHZhcigtLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWJvcmRlci1jb2xvcik7XG5cbiAgdHJhbnNpdGlvbjoge1xuICAgIGR1cmF0aW9uOiB2YXIoLS1zYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLWFuaW1hdGlvbi1lYXNpbmcpO1xuICAgIHByb3BlcnR5OiBib3gtc2hhZG93O1xuICB9XG5cbiAgLy8gRm9yIGhpZ2ggY29udHJhc3QgbW9kZSB3ZSBuZWVkIGEgcmVhbCBib3JkZXJcbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBpbnNldDogMDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgYm9yZGVyOiB2YXIoLS1zYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC1ib3JkZXItd2lkdGgpIHNvbGlkXG4gICAgICAgIHZhcigtLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWJvcmRlci1jb2xvcik7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci1yYWRpdXMpO1xuICAgIH1cbiAgfVxufVxuXG46aG9zdCg6c3RhdGUoc2l6ZS14cykpIHtcbiAgLS1zYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC1jb250ZW50LXBhZGRpbmctaW5saW5lOiB2YXIoXG4gICAgLS1zYmItc2VsZWN0aW9uLXBhbmVsLWlucHV0LXBhZGRpbmctaW5saW5lLXhzXG4gICk7XG59XG5cbjpob3N0KDpzdGF0ZShzaXplLXMpKSB7XG4gIC0tc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwtY29udGVudC1wYWRkaW5nLWlubGluZTogdmFyKFxuICAgIC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1pbnB1dC1wYWRkaW5nLWlubGluZS1zXG4gICk7XG59XG5cbjpob3N0KDpzdGF0ZShzaXplLW0pKSB7XG4gIC0tc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwtY29udGVudC1wYWRkaW5nLWlubGluZTogdmFyKFxuICAgIC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1pbnB1dC1wYWRkaW5nLWlubGluZS1tXG4gICk7XG59XG5cbjpob3N0KDpzdGF0ZShjb2xvci1taWxrKSkge1xuICAtLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWJhY2tncm91bmQ6IHZhcigtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYmFja2dyb3VuZC1taWxrKTtcbn1cblxuLy8gOndoZXJlIGlzIHRvIGFsaWduIHNwZWNpZmljaXR5XG46aG9zdCg6d2hlcmUoOnN0YXRlKGNoZWNrZWQpKTpub3QoOndoZXJlKDpzdGF0ZShkaXNhYmxlZCkpKSkge1xuICAtLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWJvcmRlci1jb2xvcjogdmFyKC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1ib3JkZXItY29sb3ItY2hlY2tlZCk7XG4gIC0tc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwtYm9yZGVyLXdpZHRoOiB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci13aWR0aC1jaGVja2VkKTtcbn1cblxuLy8gOndoZXJlIGlzIHRvIGFsaWduIHNwZWNpZmljaXR5XG46aG9zdCg6c3RhdGUoc2xvdHRlZC1jb250ZW50KTp3aGVyZSg6c3RhdGUoZGlzYWJsZWQpKSkge1xuICAtLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWJvcmRlci1jb2xvcjogdmFyKC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1ib3JkZXItY29sb3ItZGVmYXVsdCk7XG59XG5cbi8vIDp3aGVyZSBpcyB0byBhbGlnbiBzcGVjaWZpY2l0eVxuOmhvc3QoOnN0YXRlKGJvcmRlcmxlc3MpOm5vdCg6d2hlcmUoOnN0YXRlKGNoZWNrZWQpKSkpIHtcbiAgLS1zYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC1ib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vLyBXaGVuIHRoZSBwYW5lbCBpcyBjbG9zZWQsIHdlIHJlbW92ZSB0aGUgcGFkZGluZyBhdCB0aGUgYm90dG9tIGZvciBhIG5pY2UgdHJhbnNpdGlvbiB3aGVuIG9wZW5pbmcuXG46aG9zdCg6bm90KDpzdGF0ZShzbG90dGVkLWNvbnRlbnQpOndoZXJlKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCkpKSkge1xuICAtLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQtcGFkZGluZy1ibG9jay1lbmQ6IDBweDtcbiAgLS1zYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC1jb250ZW50LXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsX19jb250ZW50LS13cmFwcGVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgdmlzaWJpbGl0eTogdmFyKC0tc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwtY29udGVudC12aXNpYmlsaXR5KTtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAjeyRvcGVuLWFuaW0tcm93cy1mcm9tfTtcbiAgb3BhY2l0eTogI3skb3Blbi1hbmltLW9wYWNpdHktZnJvbX07XG5cbiAgOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5lZCkpICYge1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogI3skb3Blbi1hbmltLXJvd3MtdG99O1xuICAgIG9wYWNpdHk6ICN7JG9wZW4tYW5pbS1vcGFjaXR5LXRvfTtcbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSkgJiB7XG4gICAgYW5pbWF0aW9uLW5hbWU6IG9wZW4sIG9wZW4tb3BhY2l0eTtcbiAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcbiAgICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLWFuaW1hdGlvbi1lYXNpbmcpO1xuICAgIGFuaW1hdGlvbi1kZWxheTogMHMsIHZhcigtLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gIH1cblxuICA6aG9zdCg6c3RhdGUoc3RhdGUtY2xvc2luZykpICYge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjbG9zZTtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLWFuaW1hdGlvbi1lYXNpbmcpO1xuICB9XG5cbiAgOmhvc3QoOm5vdCg6c3RhdGUoc2xvdHRlZC1jb250ZW50KSkpICYge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsX19jb250ZW50IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQtcGFkZGluZy1pbmxpbmUpO1xuICBwYWRkaW5nLWJsb2NrLWVuZDogdmFyKC0tc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwtY29udGVudC1wYWRkaW5nLWJsb2NrLWVuZCk7XG4gIHRyYW5zaXRpb246IHBhZGRpbmcgdmFyKC0tc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwtYW5pbWF0aW9uLWR1cmF0aW9uKVxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZWFzaW5nKTtcbn1cblxuc2JiLWRpdmlkZXIge1xuICBtYXJnaW4tYmxvY2stZW5kOiB2YXIoLS1zYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC1jb250ZW50LXBhZGRpbmctYmxvY2stc3RhcnQpO1xufVxuXG5Aa2V5ZnJhbWVzIG9wZW4ge1xuICBmcm9tIHtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6ICN7JG9wZW4tYW5pbS1yb3dzLWZyb219O1xuICB9XG5cbiAgdG8ge1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogI3skb3Blbi1hbmltLXJvd3MtdG99O1xuICB9XG59XG5cbkBrZXlmcmFtZXMgb3Blbi1vcGFjaXR5IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogI3skb3Blbi1hbmltLW9wYWNpdHktZnJvbX07XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogI3skb3Blbi1hbmltLW9wYWNpdHktdG99O1xuICB9XG59XG5cbkBrZXlmcmFtZXMgY2xvc2Uge1xuICBmcm9tIHtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6ICN7JG9wZW4tYW5pbS1yb3dzLXRvfTtcbiAgICBvcGFjaXR5OiAjeyRvcGVuLWFuaW0tb3BhY2l0eS10b307XG4gIH1cblxuICB0byB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAjeyRvcGVuLWFuaW0tcm93cy1mcm9tfTtcbiAgICBvcGFjaXR5OiAjeyRvcGVuLWFuaW0tb3BhY2l0eS1mcm9tfTtcbiAgfVxufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHksIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQge1xuICBmb3JjZVR5cGUsXG4gIGkxOG5Db2xsYXBzZWQsXG4gIGkxOG5FeHBhbmRlZCxcbiAgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24sXG4gIFNiYkVsZW1lbnQsXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIFNiYkxhbmd1YWdlQ29udHJvbGxlcixcbiAgdHlwZSBTYmJPcGVuZWRDbG9zZWRTdGF0ZSxcbiAgU2JiU2VsZWN0aW9uUGFuZWxNaXhpbixcbn0gZnJvbSAnLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJEaXZpZGVyRWxlbWVudCB9IGZyb20gJy4uL2RpdmlkZXIucHVyZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGFuIGV4cGFuZGFibGUgcGFuZWwgY29ubmVjdGVkIHRvIGEgYHNiYi1jaGVja2JveGAgb3IgdG8gYSBgc2JiLXJhZGlvLWJ1dHRvbmAuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1jaGVja2JveC1wYW5lbGAgb3IgYHNiYi1yYWRpby1idXR0b24tcGFuZWxgIGVsZW1lbnRzIHRvIHRoZSBgc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWxgLlxuICogQHNsb3QgY29udGVudCAtIFVzZSB0aGlzIHNsb3QgdG8gcHJvdmlkZSBjdXN0b20gY29udGVudCBmb3IgdGhlIHBhbmVsIChvcHRpb25hbCkuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTZWxlY3Rpb25FeHBhbnNpb25QYW5lbEVsZW1lbnQgZXh0ZW5kcyBTYmJTZWxlY3Rpb25QYW5lbE1peGluKFNiYkVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBlbGVtZW50RGVwZW5kZW5jaWVzOiBTYmJFbGVtZW50VHlwZVtdID0gW1NiYkRpdmlkZXJFbGVtZW50XTtcbiAgLy8gVE9ETzogZml4IGluaGVyaXRpbmcgZnJvbSBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCByZXF1aXJlczogaHR0cHM6Ly9naXRodWIuY29tL29wZW4td2MvY3VzdG9tLWVsZW1lbnRzLW1hbmlmZXN0L2lzc3Vlcy8yNTNcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBiZWZvcmVvcGVuOiAnYmVmb3Jlb3BlbicsXG4gICAgb3BlbjogJ29wZW4nLFxuICAgIGJlZm9yZWNsb3NlOiAnYmVmb3JlY2xvc2UnLFxuICAgIGNsb3NlOiAnY2xvc2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBjb250ZW50IHNlY3Rpb24gaXMgYWx3YXlzIHZpc2libGUuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdmb3JjZS1vcGVuJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZm9yY2VPcGVuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFRoZSBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LiAqL1xuICBAc3RhdGUoKVxuICBwcml2YXRlIHNldCBfc3RhdGUoc3RhdGU6IFNiYk9wZW5lZENsb3NlZFN0YXRlKSB7XG4gICAgaWYgKHRoaXMuX3N0YXRlSW50ZXJuYWwpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoYHN0YXRlLSR7dGhpcy5fc3RhdGVJbnRlcm5hbH1gKTtcbiAgICB9XG4gICAgdGhpcy5fc3RhdGVJbnRlcm5hbCA9IHN0YXRlO1xuICAgIGlmICh0aGlzLl9zdGF0ZUludGVybmFsKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKGBzdGF0ZS0ke3RoaXMuX3N0YXRlSW50ZXJuYWx9YCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgZ2V0IF9zdGF0ZSgpOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlSW50ZXJuYWw7XG4gIH1cbiAgcHJpdmF0ZSBfc3RhdGVJbnRlcm5hbCE6IFNiYk9wZW5lZENsb3NlZFN0YXRlO1xuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAvKiogV2hldGhlciBpdCBoYXMgYW4gZXhwYW5kYWJsZSBjb250ZW50ICovXG4gIHByaXZhdGUgZ2V0IF9oYXNDb250ZW50KCk6IGJvb2xlYW4ge1xuICAgIC8vIFdlIGNhbm5vdCB1c2UgdGhlIE5hbWVkU2xvdHMgYmVjYXVzZSBpdCdzIHRvbyBzbG93IHRvIGluaXRpYWxpemVcbiAgICByZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oJ1tzbG90PVwiY29udGVudFwiXScpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuX3N0YXRlID0gJ2Nsb3NlZCc7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2ZvcmNlT3BlbicpKSB7XG4gICAgICB0aGlzLl91cGRhdGVTdGF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBvbklucHV0U3RhdGVDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5fdXBkYXRlU3RhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVN0YXRlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faGFzQ29udGVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvcmNlT3BlbiB8fCB0aGlzLm1hdGNoZXMoJzpzdGF0ZShjaGVja2VkKScpKSB7XG4gICAgICB0aGlzLl9vcGVuKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2Nsb3NlKCk7XG4gICAgfVxuICAgIHRoaXMuX3VwZGF0ZUV4cGFuZGVkTGFiZWwodGhpcy5mb3JjZU9wZW4gfHwgdGhpcy5tYXRjaGVzKCc6c3RhdGUoY2hlY2tlZCknKSk7XG4gIH1cblxuICBwcml2YXRlIF9vcGVuKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdGF0ZSAhPT0gJ2Nsb3NlZCcgJiYgdGhpcy5fc3RhdGUgIT09ICdjbG9zaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3N0YXRlID0gJ29wZW5pbmcnO1xuICAgIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29udGVudCBzZWN0aW9uIHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2JlZm9yZW9wZW4nLCB7IGNhbmNlbGFibGU6IHRydWUgfSkpO1xuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgaWYgKCF0aGlzLmhhc1VwZGF0ZWQgfHwgdGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdGF0ZSAhPT0gJ29wZW5lZCcgJiYgdGhpcy5fc3RhdGUgIT09ICdvcGVuaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3N0YXRlID0gJ2Nsb3NpbmcnO1xuICAgIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29udGVudCBzZWN0aW9uIGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2JlZm9yZWNsb3NlJywgeyBjYW5jZWxhYmxlOiB0cnVlIH0pKTtcblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBjbG9zZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKHRoaXMsICctLXNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29udGVudCBzZWN0aW9uIGlzIGNsb3NlZC4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjbG9zZScpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUgPSAnb3BlbmVkJztcbiAgICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbnRlbnQgc2VjdGlvbiBpcyBvcGVuZWQuICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnb3BlbicpKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3Blbi1vcGFjaXR5JyAmJiB0aGlzLl9zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnY2xvc2UnICYmIHRoaXMuX3N0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF91cGRhdGVFeHBhbmRlZExhYmVsKG9wZW46IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmh5ZHJhdGlvbkNvbXBsZXRlO1xuXG4gICAgY29uc3QgcGFuZWxFbGVtZW50ID0gdGhpcy5wYW5lbDtcbiAgICBpZiAoIXBhbmVsRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5faGFzQ29udGVudCkge1xuICAgICAgcGFuZWxFbGVtZW50LmV4cGFuc2lvblN0YXRlID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcGFuZWxFbGVtZW50LmV4cGFuc2lvblN0YXRlID0gb3BlblxuICAgICAgPyAnLCAnICsgaTE4bkV4cGFuZGVkW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdXG4gICAgICA6ICcsICcgKyBpMThuQ29sbGFwc2VkW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWxfX2lucHV0XCI+XG4gICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsX19jb250ZW50LS13cmFwcGVyXCJcbiAgICAgICAgP2luZXJ0PSR7dGhpcy5fc3RhdGUgIT09ICdvcGVuZWQnfVxuICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbF9fY29udGVudFwiPlxuICAgICAgICAgIDxzYmItZGl2aWRlcj48L3NiYi1kaXZpZGVyPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJjb250ZW50XCI+PC9zbG90PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsJzogU2JiU2VsZWN0aW9uRXhwYW5zaW9uUGFuZWxFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztJQzhCYSwyQ0FBaUM7bUJBQVMsdUJBQXVCLFVBQVU7Ozs7OztjQUEzRSwwQ0FBMEMsWUFBa0M7Ozs0QkFhdEYsVUFBUyxHQUNULFNBQVM7SUFBRSxXQUFXO0lBQWMsTUFBTTtHQUFPLENBQUUsQ0FBQzs2QkFJcEQsTUFBSyxDQUFFO0dBSFIsYUFBQSxNQUFBLE1BQUEsdUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxlQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQVMsTUFBQSxLQUFBLFVBQUE7TUFBQSxJQUFULFlBQVM7S0FBQTtJQUFBO0lBQUEsVUFBQTtHQUFBLEdBQUEseUJBQUEsNEJBQUE7R0FJekIsYUFBQSxNQUFBLE1BQUEsd0JBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxZQUFBO0tBQUEsTUFBQSxLQUFBLFVBQUE7TUFBQSxJQUFZLFNBQU07S0FBQTtJQUFBO0lBQUEsVUFBQTtHQUFBLEdBQUEsTUFBQSwwQkFBQTs7Ozs7Ozs7O0dBbEJjLEtBQUEsY0FBc0I7RUFBZ0M7O0dBQy9ELEtB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
@@ -6,4 +6,4 @@ SbbSelectionExpansionPanelElement.define();
6
6
  //#endregion
7
7
  export { SbbSelectionExpansionPanelElement };
8
8
 
9
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGVudHJ5cG9pbnQgKi9cbmltcG9ydCB7IFNiYlNlbGVjdGlvbkV4cGFuc2lvblBhbmVsRWxlbWVudCB9IGZyb20gJy4vc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC5wdXJlLnRzJztcblxuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLnB1cmUudHMnO1xuXG5TYmJTZWxlY3Rpb25FeHBhbnNpb25QYW5lbEVsZW1lbnQuZGVmaW5lKCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFLQSxrQ0FBa0MsUUFBUSJ9
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGVudHJ5cG9pbnQgKi9cbmltcG9ydCB7IFNiYlNlbGVjdGlvbkV4cGFuc2lvblBhbmVsRWxlbWVudCB9IGZyb20gJy4vc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC5wdXJlLnRzJztcblxuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLnB1cmUudHMnO1xuXG5TYmJTZWxlY3Rpb25FeHBhbnNpb25QYW5lbEVsZW1lbnQuZGVmaW5lKCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFLQSxrQ0FBa0MsT0FBTSJ9
@@ -149,4 +149,4 @@ var SbbSelectionGroupBaseElement = (() => {
149
149
  //#endregion
150
150
  export { SbbSelectionGroupBaseElement as t };
151
151
 
152
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWdyb3VwLWJhc2UtZWxlbWVudC1EUlQzQ3RwMi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9iYXNlLWVsZW1lbnRzL3NlbGVjdGlvbi1ncm91cC1iYXNlLWVsZW1lbnQuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9iYXNlLWVsZW1lbnRzL3NlbGVjdGlvbi1ncm91cC1iYXNlLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vc3R5bGVzJyBhcyBzYmI7XG5cbkBtaXhpbiBob3Jpem9udGFsLW9yaWVudGF0aW9uIHtcbiAgLS1zYmItc2VsZWN0aW9uLWdyb3VwLW9yaWVudGF0aW9uOiByb3c7XG4gIC0tc2JiLXNlbGVjdGlvbi1ncm91cC1lbGVtZW50cy13aWR0aDogYXV0bztcbn1cblxuJGJyZWFrcG9pbnRzOiAnemVybycsICdzbWFsbCcsICdsYXJnZScsICd1bHRyYSc7XG5cbjpob3N0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiB2YXIoLS1zYmItc2VsZWN0aW9uLWdyb3VwLW9yaWVudGF0aW9uKSB3cmFwO1xuICBnYXA6IHZhcigtLXNiYi1zZWxlY3Rpb24tZ3JvdXAtZ2FwKTtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIHdpZHRoOiB2YXIoLS1zYmItc2VsZWN0aW9uLWdyb3VwLXdpZHRoKTtcbn1cblxuOmhvc3QoW29yaWVudGF0aW9uPSd2ZXJ0aWNhbCddKSB7XG4gIC0tc2JiLXNlbGVjdGlvbi1ncm91cC1vcmllbnRhdGlvbjogY29sdW1uO1xuICAtLXNiYi1zZWxlY3Rpb24tZ3JvdXAtd2lkdGg6IDEwMCU7XG4gIC0tc2JiLXNlbGVjdGlvbi1ncm91cC1lbGVtZW50cy13aWR0aDogMTAwJTtcbn1cblxuOmhvc3QoOnN0YXRlKGhhcy1wYW5lbCkpIHtcbiAgLS1zYmItc2VsZWN0aW9uLWdyb3VwLXdpZHRoOiAxMDAlO1xuICAtLXNiYi1zZWxlY3Rpb24tZ3JvdXAtZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0yeCkgdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtNHgpO1xuXG4gIC8vIERpc3RyaWJ1dGUgYXZhaWxhYmxlIHNwYWNlIHRvIHRoZSBwYW5lbHNcbiAgLS1zYmItc2VsZWN0aW9uLWdyb3VwLWVsZW1lbnRzLWZsZXg6IGF1dG87XG59XG5cbkBlYWNoICRicmVha3BvaW50IGluICRicmVha3BvaW50cyB7XG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogI3skYnJlYWtwb2ludH0pIHtcbiAgICAvLyBob3Jpem9udGFsLWZyb20gb3ZlcnJpZGVzIG9yaWVudGF0aW9uIHZlcnRpY2FsXG4gICAgOmhvc3QoW29yaWVudGF0aW9uPSd2ZXJ0aWNhbCddW2hvcml6b250YWwtZnJvbT0nI3skYnJlYWtwb2ludH0nXSkge1xuICAgICAgQGluY2x1ZGUgaG9yaXpvbnRhbC1vcmllbnRhdGlvbjtcbiAgICB9XG5cbiAgICA6aG9zdChbb3JpZW50YXRpb249J3ZlcnRpY2FsJ11baG9yaXpvbnRhbC1mcm9tPScjeyRicmVha3BvaW50fSddOm5vdCg6c3RhdGUoaGFzLXBhbmVsKSkpIHtcbiAgICAgIC0tc2JiLXNlbGVjdGlvbi1ncm91cC13aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuLy8gTW92ZSB0aGUgZXJyb3IgbWVzc2FnZSB0byBhIHNlcGFyYXRlIGxpbmUuXG5zbG90W25hbWU9J2Vycm9yJ106OnNsb3R0ZWQoKikge1xuICBmbGV4LWJhc2lzOiAxMDAlO1xufVxuXG46OnNsb3R0ZWQoOmlzKHNiYi1jaGVja2JveC1wYW5lbCwgc2JiLXJhZGlvLWJ1dHRvbi1wYW5lbCkpIHtcbiAgZmxleDogdmFyKC0tc2JiLXNlbGVjdGlvbi1ncm91cC1lbGVtZW50cy1mbGV4KTtcbn1cblxuOjpzbG90dGVkKDppcyhzYmItY2hlY2tib3gsIHNiYi1jaGVja2JveC1wYW5lbCwgc2JiLXJhZGlvLWJ1dHRvbi1wYW5lbCkpIHtcbiAgd2lkdGg6IHZhcigtLXNiYi1zZWxlY3Rpb24tZ3JvdXAtZWxlbWVudHMtd2lkdGgpO1xufVxuIiwiaW1wb3J0IHsgTXV0YXRpb25Db250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9tdXRhdGlvbi1jb250cm9sbGVyLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYkhvcml6b250YWxGcm9tIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90eXBlcy50cyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZE1peGluIH0gZnJvbSAnLi4vbWl4aW5zL2Rpc2FibGVkLW1peGluLnRzJztcbmltcG9ydCB7IFNiYlJlcXVpcmVkTWl4aW4gfSBmcm9tICcuLi9taXhpbnMvcmVxdWlyZWQtbWl4aW4udHMnO1xuXG5pbXBvcnQgeyBTYmJFbGVtZW50IH0gZnJvbSAnLi9lbGVtZW50LnRzJztcbmltcG9ydCBzdHlsZSBmcm9tICcuL3NlbGVjdGlvbi1ncm91cC1iYXNlLWVsZW1lbnQuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBvbmUgb3IgbW9yZSBgc2JiLWNoZWNrYm94YC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBgc2JiLWNoZWNrYm94YCBlbGVtZW50cyB0byB0aGUgYHNiYi1jaGVja2JveC1ncm91cGAuXG4gKiBAc2xvdCBlcnJvciAtIFNsb3QgdXNlZCB0byByZW5kZXIgYSBgc2JiLWVycm9yYCBpbnNpZGUgdGhlIGBzYmItY2hlY2tib3gtZ3JvdXBgLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiU2VsZWN0aW9uR3JvdXBCYXNlRWxlbWVudDxUIGV4dGVuZHMgU2JiRWxlbWVudD4gZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFxuICBTYmJSZXF1aXJlZE1peGluKFNiYkVsZW1lbnQpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFt1bnNhZmVDU1Moc3R5bGUpXTtcblxuICAvKipcbiAgICogU2l6ZSB2YXJpYW50LCBlaXRoZXIgeHMgKGxlYW4gdGhlbWUgZGVmYXVsdCksIHMgb3IgbSAoc3RhbmRhcmQgdGhlbWUgZGVmYXVsdCkuXG4gICAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3hzJyB8ICdzJyB8ICdtJyB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBPdmVycmlkZXMgdGhlIGJlaGF2aW9yIG9mIGBvcmllbnRhdGlvbmAgcHJvcGVydHkuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2hvcml6b250YWwtZnJvbScsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIGhvcml6b250YWxGcm9tOiBTYmJIb3Jpem9udGFsRnJvbSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBJbmRpY2F0ZXMgdGhlIG9yaWVudGF0aW9uIG9mIHRoZSBjaGVja2JveGVzIG9yIHBhbmVscyBpbnNpZGUgdGhlIGdyb3VwLiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBvcmllbnRhdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJyA9ICdob3Jpem9udGFsJztcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZG9ubHkgc2VsZWN0aW9uRWxlbWVudFNlbGVjdG9yczogc3RyaW5nO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZG9ubHkgcGFuZWxFbGVtZW50U2VsZWN0b3I6IHN0cmluZztcblxuICAvKipcbiAgICogTGlzdCBvZiBjb250YWluZWQgc2VsZWN0aW9uIGVsZW1lbnRzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBnZXQgc2VsZWN0aW9uRWxlbWVudHMoKTogVFtdIHtcbiAgICByZXR1cm4gPFRbXT4oXG4gICAgICBBcnJheS5mcm9tKHRoaXMucXVlcnlTZWxlY3RvckFsbD8uKHRoaXMuc2VsZWN0aW9uRWxlbWVudFNlbGVjdG9ycykgPz8gW10pLmZpbHRlcihcbiAgICAgICAgKGVsKSA9PiBlbC5jbG9zZXN0Py4odGhpcy5sb2NhbE5hbWUpID09PSB0aGlzLFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZENvbnRyb2xsZXIoXG4gICAgICBuZXcgTXV0YXRpb25Db250cm9sbGVyKHRoaXMsIHtcbiAgICAgICAgY29uZmlnOiB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9LFxuICAgICAgICBjYWxsYmFjazogKCkgPT5cbiAgICAgICAgICB0aGlzLnRvZ2dsZVN0YXRlKCdoYXMtcGFuZWwnLCAhIXRoaXMucXVlcnlTZWxlY3Rvcj8uKHRoaXMucGFuZWxFbGVtZW50U2VsZWN0b3IpKSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIC8vIFRPRE86IFVzZSBQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyIGluIHNlbGVjdGlvbiBlbGVtZW50c1xuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Rpc2FibGVkJykpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uRWxlbWVudHMuZm9yRWFjaCgoYykgPT4gYy5yZXF1ZXN0VXBkYXRlPy4oJ2Rpc2FibGVkJykpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdyZXF1aXJlZCcpKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbkVsZW1lbnRzLmZvckVhY2goKGMpID0+IGMucmVxdWVzdFVwZGF0ZT8uKCdyZXF1aXJlZCcpKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2l6ZScpKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbkVsZW1lbnRzLmZvckVhY2goKGMpID0+IGMucmVxdWVzdFVwZGF0ZT8uKCdzaXplJykpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvblNsb3RDaGFuZ2UoKTogdm9pZCB7fVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHsoKSA9PiB0aGlzLm9uU2xvdENoYW5nZSgpfT48L3Nsb3Q+XG4gICAgICA8c2xvdCBuYW1lPVwiZXJyb3JcIj48L3Nsb3Q+XG4gICAgYDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztJQ3VCc0Isc0NBQTRCO21CQUErQixpQkFDL0UsaUJBQWlCLFdBQVcsQ0FDN0I7Ozs7Ozs7Ozs7Y0FGcUIscUNBQTJELFlBRWhGOzs7dUJBTUUsVUFBVSxDQUFBO2lDQUdWLFNBQVM7SUFBRSxXQUFXO0lBQW1CLFNBQVM7SUFBTSxDQUFDLENBQUE7OEJBSXpELFNBQVMsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFBO0dBUGhCLGFBQUEsTUFBQSxNQUFBLGtCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsVUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFJLE1BQUEsS0FBQSxVQUFBO01BQUEsSUFBSixPQUFJOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsb0JBQUEsd0JBQUE7R0FJaEMsYUFBQSxNQUFBLE1BQUEsNEJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxvQkFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFjLE1BQUEsS0FBQSxVQUFBO01BQUEsSUFBZCxpQkFBYzs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLDhCQUFBLGtDQUFBO0dBSTlCLGFBQUEsTUFBQSxNQUFBLHlCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsaUJBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBVyxNQUFBLEtBQUEsVUFBQTtNQUFBLElBQVgsY0FBVzs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLDJCQUFBLCtCQUFBOzs7Ozs7Ozs7R0FiSixLQUFBLFNBQXlCLENBQUMsVUFBVSxxQ0FBTSxDQUFDOztFQUt0RCx5QkFBQSxrQkFBQSxNQUFBLG9CQUFnRCxLQUFJOzs7O0VBQXBELElBQWdCLE9BQUk7R0FBQSxPQUFBLEtBQUE7O0VBQXBCLElBQWdCLEtBQUksT0FBQTtHQUFBLEtBQUEseUJBQUE7O0VBSWhDLG9DQUFBLGtCQUFBLE1BQUEsd0JBQUEsRUFBQSxrQkFBQSxNQUFBLDhCQUEyRCxLQUFJOztFQUEvRCxJQUFnQixpQkFBYztHQUFBLE9BQUEsS0FBQTs7RUFBOUIsSUFBZ0IsZUFBYyxPQUFBO0dBQUEsS0FBQSxtQ0FBQTs7RUFJOUIsaUNBQUEsa0JBQUEsTUFBQSxrQ0FBQSxFQUFBLGtCQUFBLE1BQUEsMkJBQXlELGFBQVk7O0VBQXJFLElBQWdCLGNBQVc7R0FBQSxPQUFBLEtBQUE7O0VBQTNCLElBQWdCLFlBQVcsT0FBQTtHQUFBLEtBQUEsZ0NBQUE7Ozs7OztFQVMzQixJQUFXLG9CQUFpQjtHQUMxQixPQUNFLE1BQU0sS0FBSyxLQUFLLG1CQUFtQixLQUFLLDBCQUEwQixJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQ3ZFLE9BQU8sR0FBRyxVQUFVLEtBQUssVUFBVSxLQUFLLEtBQzFDOztFQUlMLGNBQUE7R0FDRSxPQUFPOztHQUNQLEtBQUssY0FDSCxJQUFJLG1CQUFtQixNQUFNO0lBQzNCLFFBQVE7S0FBRSxXQUFXO0tBQU0sU0FBUztLQUFNO0lBQzFDLGdCQUNFLEtBQUssWUFBWSxhQUFhLENBQUMsQ0FBQyxLQUFLLGdCQUFnQixLQUFLLHFCQUFxQixDQUFBO0lBQ2xGLENBQUMsQ0FDSDs7RUFHZ0IsV0FBVyxtQkFBdUM7R0FDbkUsTUFBTSxXQUFXLGtCQUFrQjtHQUduQyxJQUFJLGtCQUFrQixJQUFJLFdBQVcsRUFDbkMsS0FBSyxrQkFBa0IsU0FBUyxNQUFNLEVBQUUsZ0JBQWdCLFdBQVcsQ0FBQztHQUV0RSxJQUFJLGtCQUFrQixJQUFJLFdBQVcsRUFDbkMsS0FBSyxrQkFBa0IsU0FBUyxNQUFNLEVBQUUsZ0JBQWdCLFdBQVcsQ0FBQztHQUV0RSxJQUFJLGtCQUFrQixJQUFJLE9BQU8sRUFDL0IsS0FBSyxrQkFBa0IsU0FBUyxNQUFNLEVBQUUsZ0JBQWdCLE9BQU8sQ0FBQzs7RUFJMUQsZUFBWTtFQUVILFNBQU07R0FDdkIsT0FBTyxJQUFJO2dDQUNpQixLQUFLLGNBQWMsQ0FBQSJ9
152
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWdyb3VwLWJhc2UtZWxlbWVudC1EUlQzQ3RwMi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9iYXNlLWVsZW1lbnRzL3NlbGVjdGlvbi1ncm91cC1iYXNlLWVsZW1lbnQuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9iYXNlLWVsZW1lbnRzL3NlbGVjdGlvbi1ncm91cC1iYXNlLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vc3R5bGVzJyBhcyBzYmI7XG5cbkBtaXhpbiBob3Jpem9udGFsLW9yaWVudGF0aW9uIHtcbiAgLS1zYmItc2VsZWN0aW9uLWdyb3VwLW9yaWVudGF0aW9uOiByb3c7XG4gIC0tc2JiLXNlbGVjdGlvbi1ncm91cC1lbGVtZW50cy13aWR0aDogYXV0bztcbn1cblxuJGJyZWFrcG9pbnRzOiAnemVybycsICdzbWFsbCcsICdsYXJnZScsICd1bHRyYSc7XG5cbjpob3N0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiB2YXIoLS1zYmItc2VsZWN0aW9uLWdyb3VwLW9yaWVudGF0aW9uKSB3cmFwO1xuICBnYXA6IHZhcigtLXNiYi1zZWxlY3Rpb24tZ3JvdXAtZ2FwKTtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIHdpZHRoOiB2YXIoLS1zYmItc2VsZWN0aW9uLWdyb3VwLXdpZHRoKTtcbn1cblxuOmhvc3QoW29yaWVudGF0aW9uPSd2ZXJ0aWNhbCddKSB7XG4gIC0tc2JiLXNlbGVjdGlvbi1ncm91cC1vcmllbnRhdGlvbjogY29sdW1uO1xuICAtLXNiYi1zZWxlY3Rpb24tZ3JvdXAtd2lkdGg6IDEwMCU7XG4gIC0tc2JiLXNlbGVjdGlvbi1ncm91cC1lbGVtZW50cy13aWR0aDogMTAwJTtcbn1cblxuOmhvc3QoOnN0YXRlKGhhcy1wYW5lbCkpIHtcbiAgLS1zYmItc2VsZWN0aW9uLWdyb3VwLXdpZHRoOiAxMDAlO1xuICAtLXNiYi1zZWxlY3Rpb24tZ3JvdXAtZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0yeCkgdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtNHgpO1xuXG4gIC8vIERpc3RyaWJ1dGUgYXZhaWxhYmxlIHNwYWNlIHRvIHRoZSBwYW5lbHNcbiAgLS1zYmItc2VsZWN0aW9uLWdyb3VwLWVsZW1lbnRzLWZsZXg6IGF1dG87XG59XG5cbkBlYWNoICRicmVha3BvaW50IGluICRicmVha3BvaW50cyB7XG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogI3skYnJlYWtwb2ludH0pIHtcbiAgICAvLyBob3Jpem9udGFsLWZyb20gb3ZlcnJpZGVzIG9yaWVudGF0aW9uIHZlcnRpY2FsXG4gICAgOmhvc3QoW29yaWVudGF0aW9uPSd2ZXJ0aWNhbCddW2hvcml6b250YWwtZnJvbT0nI3skYnJlYWtwb2ludH0nXSkge1xuICAgICAgQGluY2x1ZGUgaG9yaXpvbnRhbC1vcmllbnRhdGlvbjtcbiAgICB9XG5cbiAgICA6aG9zdChbb3JpZW50YXRpb249J3ZlcnRpY2FsJ11baG9yaXpvbnRhbC1mcm9tPScjeyRicmVha3BvaW50fSddOm5vdCg6c3RhdGUoaGFzLXBhbmVsKSkpIHtcbiAgICAgIC0tc2JiLXNlbGVjdGlvbi1ncm91cC13aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuLy8gTW92ZSB0aGUgZXJyb3IgbWVzc2FnZSB0byBhIHNlcGFyYXRlIGxpbmUuXG5zbG90W25hbWU9J2Vycm9yJ106OnNsb3R0ZWQoKikge1xuICBmbGV4LWJhc2lzOiAxMDAlO1xufVxuXG46OnNsb3R0ZWQoOmlzKHNiYi1jaGVja2JveC1wYW5lbCwgc2JiLXJhZGlvLWJ1dHRvbi1wYW5lbCkpIHtcbiAgZmxleDogdmFyKC0tc2JiLXNlbGVjdGlvbi1ncm91cC1lbGVtZW50cy1mbGV4KTtcbn1cblxuOjpzbG90dGVkKDppcyhzYmItY2hlY2tib3gsIHNiYi1jaGVja2JveC1wYW5lbCwgc2JiLXJhZGlvLWJ1dHRvbi1wYW5lbCkpIHtcbiAgd2lkdGg6IHZhcigtLXNiYi1zZWxlY3Rpb24tZ3JvdXAtZWxlbWVudHMtd2lkdGgpO1xufVxuIiwiaW1wb3J0IHsgTXV0YXRpb25Db250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9tdXRhdGlvbi1jb250cm9sbGVyLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYkhvcml6b250YWxGcm9tIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90eXBlcy50cyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZE1peGluIH0gZnJvbSAnLi4vbWl4aW5zL2Rpc2FibGVkLW1peGluLnRzJztcbmltcG9ydCB7IFNiYlJlcXVpcmVkTWl4aW4gfSBmcm9tICcuLi9taXhpbnMvcmVxdWlyZWQtbWl4aW4udHMnO1xuXG5pbXBvcnQgeyBTYmJFbGVtZW50IH0gZnJvbSAnLi9lbGVtZW50LnRzJztcbmltcG9ydCBzdHlsZSBmcm9tICcuL3NlbGVjdGlvbi1ncm91cC1iYXNlLWVsZW1lbnQuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBvbmUgb3IgbW9yZSBgc2JiLWNoZWNrYm94YC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBgc2JiLWNoZWNrYm94YCBlbGVtZW50cyB0byB0aGUgYHNiYi1jaGVja2JveC1ncm91cGAuXG4gKiBAc2xvdCBlcnJvciAtIFNsb3QgdXNlZCB0byByZW5kZXIgYSBgc2JiLWVycm9yYCBpbnNpZGUgdGhlIGBzYmItY2hlY2tib3gtZ3JvdXBgLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiU2VsZWN0aW9uR3JvdXBCYXNlRWxlbWVudDxUIGV4dGVuZHMgU2JiRWxlbWVudD4gZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFxuICBTYmJSZXF1aXJlZE1peGluKFNiYkVsZW1lbnQpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFt1bnNhZmVDU1Moc3R5bGUpXTtcblxuICAvKipcbiAgICogU2l6ZSB2YXJpYW50LCBlaXRoZXIgeHMgKGxlYW4gdGhlbWUgZGVmYXVsdCksIHMgb3IgbSAoc3RhbmRhcmQgdGhlbWUgZGVmYXVsdCkuXG4gICAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3hzJyB8ICdzJyB8ICdtJyB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBPdmVycmlkZXMgdGhlIGJlaGF2aW9yIG9mIGBvcmllbnRhdGlvbmAgcHJvcGVydHkuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2hvcml6b250YWwtZnJvbScsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIGhvcml6b250YWxGcm9tOiBTYmJIb3Jpem9udGFsRnJvbSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBJbmRpY2F0ZXMgdGhlIG9yaWVudGF0aW9uIG9mIHRoZSBjaGVja2JveGVzIG9yIHBhbmVscyBpbnNpZGUgdGhlIGdyb3VwLiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBvcmllbnRhdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJyA9ICdob3Jpem9udGFsJztcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZG9ubHkgc2VsZWN0aW9uRWxlbWVudFNlbGVjdG9yczogc3RyaW5nO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZG9ubHkgcGFuZWxFbGVtZW50U2VsZWN0b3I6IHN0cmluZztcblxuICAvKipcbiAgICogTGlzdCBvZiBjb250YWluZWQgc2VsZWN0aW9uIGVsZW1lbnRzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBnZXQgc2VsZWN0aW9uRWxlbWVudHMoKTogVFtdIHtcbiAgICByZXR1cm4gPFRbXT4oXG4gICAgICBBcnJheS5mcm9tKHRoaXMucXVlcnlTZWxlY3RvckFsbD8uKHRoaXMuc2VsZWN0aW9uRWxlbWVudFNlbGVjdG9ycykgPz8gW10pLmZpbHRlcihcbiAgICAgICAgKGVsKSA9PiBlbC5jbG9zZXN0Py4odGhpcy5sb2NhbE5hbWUpID09PSB0aGlzLFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZENvbnRyb2xsZXIoXG4gICAgICBuZXcgTXV0YXRpb25Db250cm9sbGVyKHRoaXMsIHtcbiAgICAgICAgY29uZmlnOiB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9LFxuICAgICAgICBjYWxsYmFjazogKCkgPT5cbiAgICAgICAgICB0aGlzLnRvZ2dsZVN0YXRlKCdoYXMtcGFuZWwnLCAhIXRoaXMucXVlcnlTZWxlY3Rvcj8uKHRoaXMucGFuZWxFbGVtZW50U2VsZWN0b3IpKSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIC8vIFRPRE86IFVzZSBQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyIGluIHNlbGVjdGlvbiBlbGVtZW50c1xuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Rpc2FibGVkJykpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uRWxlbWVudHMuZm9yRWFjaCgoYykgPT4gYy5yZXF1ZXN0VXBkYXRlPy4oJ2Rpc2FibGVkJykpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdyZXF1aXJlZCcpKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbkVsZW1lbnRzLmZvckVhY2goKGMpID0+IGMucmVxdWVzdFVwZGF0ZT8uKCdyZXF1aXJlZCcpKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2l6ZScpKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbkVsZW1lbnRzLmZvckVhY2goKGMpID0+IGMucmVxdWVzdFVwZGF0ZT8uKCdzaXplJykpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvblNsb3RDaGFuZ2UoKTogdm9pZCB7fVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHsoKSA9PiB0aGlzLm9uU2xvdENoYW5nZSgpfT48L3Nsb3Q+XG4gICAgICA8c2xvdCBuYW1lPVwiZXJyb3JcIj48L3Nsb3Q+XG4gICAgYDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztJQ3VCc0Isc0NBQTRCO21CQUErQixpQkFDL0UsaUJBQWlCLFVBQVUsQ0FBQzs7Ozs7Ozs7OztjQURSLHFDQUEyRCxZQUVoRjs7O3VCQU1FLFNBQVEsQ0FBRTtpQ0FHVixTQUFTO0lBQUUsV0FBVztJQUFtQixTQUFTO0dBQUksQ0FBRSxDQUFDOzhCQUl6RCxTQUFTLEVBQUUsU0FBUyxLQUFJLENBQUUsQ0FBQztHQVBoQixhQUFBLE1BQUEsTUFBQSxrQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLFVBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBSSxNQUFBLEtBQUEsVUFBQTtNQUFBLElBQUosT0FBSTtLQUFBO0lBQUE7SUFBQSxVQUFBO0dBQUEsR0FBQSxvQkFBQSx1QkFBQTtHQUloQyxhQUFBLE1BQUEsTUFBQSw0QkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLG9CQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQWMsTUFBQSxLQUFBLFVBQUE7TUFBQSxJQUFkLGlCQUFjO0tBQUE7SUFBQTtJQUFBLFVBQUE7R0FBQSxHQUFBLDhCQUFBLGlDQUFBO0dBSTlCLGFBQUEsTUFBQSxNQUFBLHlCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsaUJBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBVyxNQUFBLEtBQUEsVUFBQTtNQUFBLElBQVgsY0FBVztLQUFBO0lBQUE7SUFBQSxVQUFBO0dBQUEsR0FBQSwyQkFBQSw4QkFBQTs7Ozs7Ozs7O0dBYkosS0FBQSxTQUF5QixDQUFDLFVBQVUsb0NBQUssQ0FBQztFQUFFO0VBS3ZELHlCQUFBLGtCQUFBLE1BQUEsb0JBQWdELElBQUk7Ozs7RUFBcEQsSUFBZ0IsT0FBSTtHQUFBLE9BQUEsS0FBQTtFQUFBO0VBQXBCLElBQWdCLEtBQUksT0FBQTtHQUFBLEtBQUEseUJBQUE7RUFBQTtFQUloQyxvQ0FBQSxrQkFBQSxNQUFBLHVCQUFBLEdBQUEsa0JBQUEsTUFBQSw4QkFBMkQsSUFBSTs7RUFBL0QsSUFBZ0IsaUJBQWM7R0FBQSxPQUFBLEtBQUE7RUFBQTtFQUE5QixJQUFnQixlQUFjLE9BQUE7R0FBQSxLQUFBLG1DQUFBO0VBQUE7RUFJOUIsaUNBQUEsa0JBQUEsTUFBQSxpQ0FBQSxHQUFBLGtCQUFBLE1BQUEsMkJBQXlELFlBQVk7O0VBQXJFLElBQWdCLGNBQVc7R0FBQSxPQUFBLEtBQUE7RUFBQTtFQUEzQixJQUFnQixZQUFXLE9BQUE7R0FBQSxLQUFBLGdDQUFBO0VBQUE7Ozs7O0VBUzNCLElBQVcsb0JBQWlCO0dBQzFCLE9BQ0UsTUFBTSxLQUFLLEtBQUssbUJBQW1CLEtBQUsseUJBQXlCLEtBQUssQ0FBQSxDQUFFLEVBQUUsUUFDdkUsT0FBTyxHQUFHLFVBQVUsS0FBSyxTQUFTLE1BQU0sSUFBSTtFQUduRDtFQUVBLGNBQUE7R0FDRSxNQUFLOztHQUNMLEtBQUssY0FDSCxJQUFJLG1CQUFtQixNQUFNO0lBQzNCLFFBQVE7S0FBRSxXQUFXO0tBQU0sU0FBUztJQUFJO0lBQ3hDLGdCQUNFLEtBQUssWUFBWSxhQUFhLENBQUMsQ0FBQyxLQUFLLGdCQUFnQixLQUFLLG9CQUFvQixDQUFDO0lBQ2xGLENBQUM7O0VBSWEsV0FBVyxtQkFBdUM7R0FDbkUsTUFBTSxXQUFXLGlCQUFpQjtHQUdsQyxJQUFJLGtCQUFrQixJQUFJLFVBQVUsR0FDbEMsS0FBSyxrQkFBa0IsU0FBUyxNQUFNLEVBQUUsZ0JBQWdCLFVBQVUsQ0FBQztHQUVyRSxJQUFJLGtCQUFrQixJQUFJLFVBQVUsR0FDbEMsS0FBSyxrQkFBa0IsU0FBUyxNQUFNLEVBQUUsZ0JBQWdCLFVBQVUsQ0FBQztHQUVyRSxJQUFJLGtCQUFrQixJQUFJLE1BQU0sR0FDOUIsS0FBSyxrQkFBa0IsU0FBUyxNQUFNLEVBQUUsZ0JBQWdCLE1BQU0sQ0FBQztFQUVuRTtFQUVVLGVBQVksQ0FBVTtFQUViLFNBQU07R0FDdkIsT0FBTyxJQUFJO2dDQUNpQixLQUFLLGFBQVksRUFBRTs7O0VBR2pEIn0=
@@ -15,4 +15,4 @@ var iconSidebarButtonCommonStyle = unsafeCSS(icon_sidebar_button_common_default)
15
15
  //#endregion
16
16
  export { iconSidebarButtonCommonStyle, sidebarContainerCommonStyle, sidebarContentCommonStyle };
17
17
 
18
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9zaWRlYmFyL2NvbW1vbi9pY29uLXNpZGViYXItYnV0dG9uLWNvbW1vbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9zaWRlYmFyL2NvbW1vbi9zaWRlYmFyLWNvbnRhaW5lci1jb21tb24uc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvc2lkZWJhci9jb21tb24vc2lkZWJhci1jb250ZW50LWNvbW1vbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9zaWRlYmFyL2NvbW1vbi9zdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcblxuICAvLyBVc2UgIWltcG9ydGFudCBoZXJlIHRvIG5vdCBpbnRlcmZlcmUgd2l0aCBGaXJlZm94IGZvY3VzIHJpbmcgZGVmaW5pdGlvblxuICAvLyB3aGljaCBhcHBlYXJzIGluIG5vcm1hbGl6ZSBDU1Mgb2Ygc2V2ZXJhbCBmcmFtZXdvcmtzLlxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG5cbiAgLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi0yeClcbiAgKTtcbiAgLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbi10cmFuc2l0aW9uLWVhc2luZy1mdW5jdGlvbjogdmFyKC0tc2JiLWFuaW1hdGlvbi1lYXNpbmcpO1xuICAtLXNiYi1pY29uLXNpZGViYXItYnV0dG9uLWRpbWVuc2lvbjogdmFyKC0tc2JiLXNpemUtZWxlbWVudC1tKTtcbiAgLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbi1ib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy00eCk7XG4gIC0tc2JiLWljb24tc2lkZWJhci1idXR0b24tY29sb3I6IGxpZ2h0LWRhcmsodmFyKC0tc2JiLWNvbG9yLWdyYW5pdGUpLCB2YXIoLS1zYmItY29sb3ItZ3JhcGhpdGUpKTtcbiAgLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbi1jdXJyZW50LWNvbG9yOiB2YXIoLS1zYmItY29sb3ItMyk7XG4gIC0tc2JiLWljb24tc2lkZWJhci1idXR0b24tY3VycmVudC1ib3JkZXItd2lkdGg6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtM3gpO1xuICAtLXNiYi1pY29uLXNpZGViYXItYnV0dG9uLWN1cnJlbnQtYm9yZGVyLWluc2V0LWJsb2NrOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0yeCk7XG4gIC0tc2JiLWljb24tc2lkZWJhci1idXR0b25fX2N1cnJlbnQtYm9yZGVyLWluc2V0LWlubGluZS1zdGFydDogMDtcbiAgLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbl9fY29sb3I6IHZhcigtLXNiYi1pY29uLXNpZGViYXItYnV0dG9uLWNvbG9yKTtcblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbi1jdXJyZW50LWNvbG9yOiBIaWdobGlnaHQgIWltcG9ydGFudDtcbiAgfVxufVxuXG46aG9zdCg6c3RhdGUoYnV0dG9uKSkge1xuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbi1jb2xvcjogQnV0dG9uVGV4dCAhaW1wb3J0YW50O1xuICB9XG59XG5cbjpob3N0KDpzdGF0ZShsaW5rKSkge1xuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbi1jb2xvcjogTGlua1RleHQgIWltcG9ydGFudDtcbiAgfVxufVxuXG46aG9zdCg6bm90KDphY3RpdmUsIDpzdGF0ZShhY3RpdmUpKTpob3Zlcikge1xuICBAaW5jbHVkZSBzYmIuaG92ZXItbXEoJGhvdmVyOiB0cnVlKSB7XG4gICAgLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbl9faG92ZXItc2hpZnQ6ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgxKX07XG4gICAgLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbl9fY3Vyc29yOiB2YXIoLS1zYmItY3Vyc29yLXBvaW50ZXIpO1xuICB9XG59XG5cbi5zYmItYWN0aW9uLWJhc2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbi1kaW1lbnNpb24pO1xuICBwYWRkaW5nLWJsb2NrOiAwIGNhbGMoMiAqIHZhcigtLXNiYi1pY29uLXNpZGViYXItYnV0dG9uX19ob3Zlci1zaGlmdCwgMHJlbSkpO1xuICBjb2xvcjogdmFyKC0tc2JiLWljb24tc2lkZWJhci1idXR0b25fX2NvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLWljb24tc2lkZWJhci1idXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gIGN1cnNvcjogdmFyKC0tc2JiLWljb24tc2lkZWJhci1idXR0b25fX2N1cnNvcik7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi1pY29uLXNpZGViYXItYnV0dG9uLXRyYW5zaXRpb24tZWFzaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIHBhZGRpbmc7XG5cbiAgOmhvc3QoLnNiYi1hY3RpdmUpICYge1xuICAgIGNvbG9yOiB2YXIoLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbi1jdXJyZW50LWNvbG9yKTtcblxuICAgIC8vIFZpc3VhbCBib3JkZXIgd2hpY2ggc2hvd3MgdGhlIGN1cnJlbnQgYWN0aXZlIGVudHJ5LCBkaXNwbGF5ZWQgYXQgdGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUgYnV0dG9uLlxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaW5zZXQtYmxvY2s6IHZhcigtLXNiYi1pY29uLXNpZGViYXItYnV0dG9uLWN1cnJlbnQtYm9yZGVyLWluc2V0LWJsb2NrKTtcbiAgICAgIGluc2V0LWlubGluZTogdmFyKC0tc2JiLWljb24tc2lkZWJhci1idXR0b25fX2N1cnJlbnQtYm9yZGVyLWluc2V0LWlubGluZS1zdGFydCkgMDtcbiAgICAgIGJvcmRlci1pbmxpbmUtc3RhcnQ6IHZhcigtLXNiYi1pY29uLXNpZGViYXItYnV0dG9uLWN1cnJlbnQtYm9yZGVyLXdpZHRoKSBzb2xpZCBjdXJyZW50Y29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSGFuZGxlIGZvY3VzIG9uIHRoZSBob3N0IChidXR0b24gdmFyaWFudClcbiAgOmhvc3QoOmZvY3VzLXZpc2libGUpICYsXG4gICAgLy8gSGFuZGxlIGZvY3VzIG9uIHRoZSBhY3Rpb24gKGxpbmsgdmFyaWFudClcbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBAaW5jbHVkZSBzYmIuZm9jdXMtb3V0bGluZTtcblxuICAgIG91dGxpbmUtb2Zmc2V0OiBjYWxjKC0xICogdmFyKC0tc2JiLWZvY3VzLW91dGxpbmUtd2lkdGgpIC0gI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDUpfSk7XG4gIH1cbn1cbiIsIkB1c2UgJy4uLy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbn1cbiIsIkB1c2UgJy4uLy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogYXV0bztcblxuICAvLyBJZiB0aGUgZWxlbWVudCBpcyBzY3JvbGxhYmxlIGFuZCBoYXMgbm8gZm9jdXNhYmxlIGNvbnRlbnQsIGl0IGdldHMgZm9jdXNlZC5cbiAgLy8gVG8gYWRhcHQgdG8gbHluZSBzdHlsZXMgd2UgY29sb3JpemUgaXRcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3IpO1xufVxuIiwiaW1wb3J0IHsgdW5zYWZlQ1NTIH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IGljb25TaWRlYmFyQnV0dG9uQ29tbW9uU3R5bGVTdHJpbmcgZnJvbSAnLi9pY29uLXNpZGViYXItYnV0dG9uLWNvbW1vbi5zY3NzP2lubGluZSc7XG5pbXBvcnQgc2lkZWJhckNvbnRhaW5lckNvbW1vblN0eWxlU3RyaW5nIGZyb20gJy4vc2lkZWJhci1jb250YWluZXItY29tbW9uLnNjc3M/aW5saW5lJztcbmltcG9ydCBzaWRlYmFyQ29udGVudENvbW1vblN0eWxlU3RyaW5nIGZyb20gJy4vc2lkZWJhci1jb250ZW50LWNvbW1vbi5zY3NzP2lubGluZSc7XG5cbmV4cG9ydCBjb25zdCBzaWRlYmFyQ29udGFpbmVyQ29tbW9uU3R5bGUgPSB1bnNhZmVDU1Moc2lkZWJhckNvbnRhaW5lckNvbW1vblN0eWxlU3RyaW5nKTtcbmV4cG9ydCBjb25zdCBzaWRlYmFyQ29udGVudENvbW1vblN0eWxlID0gdW5zYWZlQ1NTKHNpZGViYXJDb250ZW50Q29tbW9uU3R5bGVTdHJpbmcpO1xuZXhwb3J0IGNvbnN0IGljb25TaWRlYmFyQnV0dG9uQ29tbW9uU3R5bGUgPSB1bnNhZmVDU1MoaWNvblNpZGViYXJCdXR0b25Db21tb25TdHlsZVN0cmluZyk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FHTUEsSUFBYSw4QkFBOEIsVUFBVSxpQ0FBa0M7QUFDdkYsSUFBYSw0QkFBNEIsVUFBVSwrQkFBZ0M7QUFDbkYsSUFBYSwrQkFBK0IsVUFBVSxtQ0FBbUMifQ==
18
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9zaWRlYmFyL2NvbW1vbi9pY29uLXNpZGViYXItYnV0dG9uLWNvbW1vbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9zaWRlYmFyL2NvbW1vbi9zaWRlYmFyLWNvbnRhaW5lci1jb21tb24uc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvc2lkZWJhci9jb21tb24vc2lkZWJhci1jb250ZW50LWNvbW1vbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9zaWRlYmFyL2NvbW1vbi9zdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcblxuICAvLyBVc2UgIWltcG9ydGFudCBoZXJlIHRvIG5vdCBpbnRlcmZlcmUgd2l0aCBGaXJlZm94IGZvY3VzIHJpbmcgZGVmaW5pdGlvblxuICAvLyB3aGljaCBhcHBlYXJzIGluIG5vcm1hbGl6ZSBDU1Mgb2Ygc2V2ZXJhbCBmcmFtZXdvcmtzLlxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG5cbiAgLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi0yeClcbiAgKTtcbiAgLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbi10cmFuc2l0aW9uLWVhc2luZy1mdW5jdGlvbjogdmFyKC0tc2JiLWFuaW1hdGlvbi1lYXNpbmcpO1xuICAtLXNiYi1pY29uLXNpZGViYXItYnV0dG9uLWRpbWVuc2lvbjogdmFyKC0tc2JiLXNpemUtZWxlbWVudC1tKTtcbiAgLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbi1ib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy00eCk7XG4gIC0tc2JiLWljb24tc2lkZWJhci1idXR0b24tY29sb3I6IGxpZ2h0LWRhcmsodmFyKC0tc2JiLWNvbG9yLWdyYW5pdGUpLCB2YXIoLS1zYmItY29sb3ItZ3JhcGhpdGUpKTtcbiAgLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbi1jdXJyZW50LWNvbG9yOiB2YXIoLS1zYmItY29sb3ItMyk7XG4gIC0tc2JiLWljb24tc2lkZWJhci1idXR0b24tY3VycmVudC1ib3JkZXItd2lkdGg6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtM3gpO1xuICAtLXNiYi1pY29uLXNpZGViYXItYnV0dG9uLWN1cnJlbnQtYm9yZGVyLWluc2V0LWJsb2NrOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0yeCk7XG4gIC0tc2JiLWljb24tc2lkZWJhci1idXR0b25fX2N1cnJlbnQtYm9yZGVyLWluc2V0LWlubGluZS1zdGFydDogMDtcbiAgLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbl9fY29sb3I6IHZhcigtLXNiYi1pY29uLXNpZGViYXItYnV0dG9uLWNvbG9yKTtcblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbi1jdXJyZW50LWNvbG9yOiBIaWdobGlnaHQgIWltcG9ydGFudDtcbiAgfVxufVxuXG46aG9zdCg6c3RhdGUoYnV0dG9uKSkge1xuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbi1jb2xvcjogQnV0dG9uVGV4dCAhaW1wb3J0YW50O1xuICB9XG59XG5cbjpob3N0KDpzdGF0ZShsaW5rKSkge1xuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbi1jb2xvcjogTGlua1RleHQgIWltcG9ydGFudDtcbiAgfVxufVxuXG46aG9zdCg6bm90KDphY3RpdmUsIDpzdGF0ZShhY3RpdmUpKTpob3Zlcikge1xuICBAaW5jbHVkZSBzYmIuaG92ZXItbXEoJGhvdmVyOiB0cnVlKSB7XG4gICAgLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbl9faG92ZXItc2hpZnQ6ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgxKX07XG4gICAgLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbl9fY3Vyc29yOiB2YXIoLS1zYmItY3Vyc29yLXBvaW50ZXIpO1xuICB9XG59XG5cbi5zYmItYWN0aW9uLWJhc2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbi1kaW1lbnNpb24pO1xuICBwYWRkaW5nLWJsb2NrOiAwIGNhbGMoMiAqIHZhcigtLXNiYi1pY29uLXNpZGViYXItYnV0dG9uX19ob3Zlci1zaGlmdCwgMHJlbSkpO1xuICBjb2xvcjogdmFyKC0tc2JiLWljb24tc2lkZWJhci1idXR0b25fX2NvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLWljb24tc2lkZWJhci1idXR0b24tYm9yZGVyLXJhZGl1cyk7XG4gIGN1cnNvcjogdmFyKC0tc2JiLWljb24tc2lkZWJhci1idXR0b25fX2N1cnNvcik7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi1pY29uLXNpZGViYXItYnV0dG9uLXRyYW5zaXRpb24tZWFzaW5nLWZ1bmN0aW9uKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIHBhZGRpbmc7XG5cbiAgOmhvc3QoLnNiYi1hY3RpdmUpICYge1xuICAgIGNvbG9yOiB2YXIoLS1zYmItaWNvbi1zaWRlYmFyLWJ1dHRvbi1jdXJyZW50LWNvbG9yKTtcblxuICAgIC8vIFZpc3VhbCBib3JkZXIgd2hpY2ggc2hvd3MgdGhlIGN1cnJlbnQgYWN0aXZlIGVudHJ5LCBkaXNwbGF5ZWQgYXQgdGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUgYnV0dG9uLlxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaW5zZXQtYmxvY2s6IHZhcigtLXNiYi1pY29uLXNpZGViYXItYnV0dG9uLWN1cnJlbnQtYm9yZGVyLWluc2V0LWJsb2NrKTtcbiAgICAgIGluc2V0LWlubGluZTogdmFyKC0tc2JiLWljb24tc2lkZWJhci1idXR0b25fX2N1cnJlbnQtYm9yZGVyLWluc2V0LWlubGluZS1zdGFydCkgMDtcbiAgICAgIGJvcmRlci1pbmxpbmUtc3RhcnQ6IHZhcigtLXNiYi1pY29uLXNpZGViYXItYnV0dG9uLWN1cnJlbnQtYm9yZGVyLXdpZHRoKSBzb2xpZCBjdXJyZW50Y29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSGFuZGxlIGZvY3VzIG9uIHRoZSBob3N0IChidXR0b24gdmFyaWFudClcbiAgOmhvc3QoOmZvY3VzLXZpc2libGUpICYsXG4gICAgLy8gSGFuZGxlIGZvY3VzIG9uIHRoZSBhY3Rpb24gKGxpbmsgdmFyaWFudClcbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBAaW5jbHVkZSBzYmIuZm9jdXMtb3V0bGluZTtcblxuICAgIG91dGxpbmUtb2Zmc2V0OiBjYWxjKC0xICogdmFyKC0tc2JiLWZvY3VzLW91dGxpbmUtd2lkdGgpIC0gI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDUpfSk7XG4gIH1cbn1cbiIsIkB1c2UgJy4uLy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbn1cbiIsIkB1c2UgJy4uLy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogYXV0bztcblxuICAvLyBJZiB0aGUgZWxlbWVudCBpcyBzY3JvbGxhYmxlIGFuZCBoYXMgbm8gZm9jdXNhYmxlIGNvbnRlbnQsIGl0IGdldHMgZm9jdXNlZC5cbiAgLy8gVG8gYWRhcHQgdG8gbHluZSBzdHlsZXMgd2UgY29sb3JpemUgaXRcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3IpO1xufVxuIiwiaW1wb3J0IHsgdW5zYWZlQ1NTIH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IGljb25TaWRlYmFyQnV0dG9uQ29tbW9uU3R5bGVTdHJpbmcgZnJvbSAnLi9pY29uLXNpZGViYXItYnV0dG9uLWNvbW1vbi5zY3NzP2lubGluZSc7XG5pbXBvcnQgc2lkZWJhckNvbnRhaW5lckNvbW1vblN0eWxlU3RyaW5nIGZyb20gJy4vc2lkZWJhci1jb250YWluZXItY29tbW9uLnNjc3M/aW5saW5lJztcbmltcG9ydCBzaWRlYmFyQ29udGVudENvbW1vblN0eWxlU3RyaW5nIGZyb20gJy4vc2lkZWJhci1jb250ZW50LWNvbW1vbi5zY3NzP2lubGluZSc7XG5cbmV4cG9ydCBjb25zdCBzaWRlYmFyQ29udGFpbmVyQ29tbW9uU3R5bGUgPSB1bnNhZmVDU1Moc2lkZWJhckNvbnRhaW5lckNvbW1vblN0eWxlU3RyaW5nKTtcbmV4cG9ydCBjb25zdCBzaWRlYmFyQ29udGVudENvbW1vblN0eWxlID0gdW5zYWZlQ1NTKHNpZGViYXJDb250ZW50Q29tbW9uU3R5bGVTdHJpbmcpO1xuZXhwb3J0IGNvbnN0IGljb25TaWRlYmFyQnV0dG9uQ29tbW9uU3R5bGUgPSB1bnNhZmVDU1MoaWNvblNpZGViYXJCdXR0b25Db21tb25TdHlsZVN0cmluZyk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FHTUEsSUFBYSw4QkFBOEIsVUFBVSxnQ0FBaUM7QUFDdEYsSUFBYSw0QkFBNEIsVUFBVSw4QkFBK0I7QUFDbEYsSUFBYSwrQkFBK0IsVUFBVSxrQ0FBa0MifQ==
@@ -41,4 +41,4 @@ var SbbSidebarCloseButtonElement = class extends SbbSecondaryButtonElement {
41
41
  //#endregion
42
42
  export { SbbSidebarCloseButtonElement as t };
43
43
 
44
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci1jbG9zZS1idXR0b24uY29tcG9uZW50LUNYbmYtUDVILmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9zaWRlYmFyL3NpZGViYXItY2xvc2UtYnV0dG9uL3NpZGViYXItY2xvc2UtYnV0dG9uLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3NpZGViYXIvc2lkZWJhci1jbG9zZS1idXR0b24vc2lkZWJhci1jbG9zZS1idXR0b24uY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uLy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogZml0LWNvbnRlbnQ7XG59XG4iLCJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCB0eXBlIFByb3BlcnR5VmFsdWVzLCB0eXBlIFRlbXBsYXRlUmVzdWx0LCB1bnNhZmVDU1MgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgeyBTYmJTZWNvbmRhcnlCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uLnB1cmUudHMnO1xuaW1wb3J0IHsgaTE4bkNsb3NlU2lkZWJhciwgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NpZGViYXItY2xvc2UtYnV0dG9uLnNjc3M/aW5saW5lJztcblxuLyoqXG4gKiBTaWRlYmFyIGNsb3NlIGJ1dHRvbiwgaW50ZW5kZWQgdG8gYmUgcGxhY2VkIGluc2lkZSBzYmItc2lkZWJhci5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IHRvIHRoZSBzaWRlYmFyLWNsb3NlLWJ1dHRvbi4gTm90IGludGVuZGVkIHRvIGJlIHVzZWQgaW4gdGhpcyBjb250ZXh0LlxuICogQHNsb3QgaWNvbiAtIFNsb3QgdXNlZCB0byBkaXNwbGF5IHRoZSBpY29uLCBpZiBvbmUgaXMgc2V0LiBOb3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBpbiB0aGlzIGNvbnRleHQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTaWRlYmFyQ2xvc2VCdXR0b25FbGVtZW50IGV4dGVuZHMgU2JiU2Vjb25kYXJ5QnV0dG9uRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItc2lkZWJhci1jbG9zZS1idXR0b24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2VDb250cm9sbGVyID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnNpemUgPSAncycgYXMgdGhpc1snc2l6ZSddO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5zbG90IHx8PSAndGl0bGUtc2VjdGlvbic7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICB0aGlzLmludGVybmFscy5hcmlhTGFiZWwgPSBpMThuQ2xvc2VTaWRlYmFyW3RoaXMuX2xhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50XTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIHN1cGVyLnJlbmRlckljb25TbG90KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVySWNvbk5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3VwZXIucmVuZGVySWNvbk5hbWUoKSB8fCAnY3Jvc3Mtc21hbGwnO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc2lkZWJhci1jbG9zZS1idXR0b24nOiBTYmJTaWRlYmFyQ2xvc2VCdXR0b25FbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUNhQSxJQUFhLCtCQUFiLGNBQWtELDBCQUF5Qjs7RUFDekMsS0FBQSxjQUFzQjs7O0VBQy9CLEtBQUEsU0FBeUIsQ0FBQyxVQUFVLDZCQUFNLENBQUM7O0NBSWxFLGNBQUE7RUFDRSxPQUFPO0VBSEQsS0FBQSxzQkFBc0IsSUFBSSxzQkFBc0IsS0FBSztFQUkzRCxLQUFLLE9BQU87O0NBR0Usb0JBQWlCO0VBQy9CLE1BQU0sbUJBQW1CO0VBQ3pCLEtBQUssU0FBUzs7Q0FHRyxXQUFXLG1CQUF1QztFQUNuRSxNQUFNLFdBQVcsa0JBQWtCO0VBQ25DLEtBQUssVUFBVSxZQUFZLGlCQUFpQixLQUFLLG9CQUFvQjs7Q0FHcEQsaUJBQWM7RUFDL0IsT0FBTyxNQUFNLGdCQUFnQjs7Q0FHWixpQkFBYztFQUMvQixPQUFPLE1BQU0sZ0JBQWdCLElBQUkifQ==
44
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci1jbG9zZS1idXR0b24uY29tcG9uZW50LUNYbmYtUDVILmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9zaWRlYmFyL3NpZGViYXItY2xvc2UtYnV0dG9uL3NpZGViYXItY2xvc2UtYnV0dG9uLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3NpZGViYXIvc2lkZWJhci1jbG9zZS1idXR0b24vc2lkZWJhci1jbG9zZS1idXR0b24uY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uLy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogZml0LWNvbnRlbnQ7XG59XG4iLCJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCB0eXBlIFByb3BlcnR5VmFsdWVzLCB0eXBlIFRlbXBsYXRlUmVzdWx0LCB1bnNhZmVDU1MgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgeyBTYmJTZWNvbmRhcnlCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uLnB1cmUudHMnO1xuaW1wb3J0IHsgaTE4bkNsb3NlU2lkZWJhciwgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NpZGViYXItY2xvc2UtYnV0dG9uLnNjc3M/aW5saW5lJztcblxuLyoqXG4gKiBTaWRlYmFyIGNsb3NlIGJ1dHRvbiwgaW50ZW5kZWQgdG8gYmUgcGxhY2VkIGluc2lkZSBzYmItc2lkZWJhci5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IHRvIHRoZSBzaWRlYmFyLWNsb3NlLWJ1dHRvbi4gTm90IGludGVuZGVkIHRvIGJlIHVzZWQgaW4gdGhpcyBjb250ZXh0LlxuICogQHNsb3QgaWNvbiAtIFNsb3QgdXNlZCB0byBkaXNwbGF5IHRoZSBpY29uLCBpZiBvbmUgaXMgc2V0LiBOb3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBpbiB0aGlzIGNvbnRleHQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTaWRlYmFyQ2xvc2VCdXR0b25FbGVtZW50IGV4dGVuZHMgU2JiU2Vjb25kYXJ5QnV0dG9uRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItc2lkZWJhci1jbG9zZS1idXR0b24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2VDb250cm9sbGVyID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnNpemUgPSAncycgYXMgdGhpc1snc2l6ZSddO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5zbG90IHx8PSAndGl0bGUtc2VjdGlvbic7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICB0aGlzLmludGVybmFscy5hcmlhTGFiZWwgPSBpMThuQ2xvc2VTaWRlYmFyW3RoaXMuX2xhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50XTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIHN1cGVyLnJlbmRlckljb25TbG90KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVySWNvbk5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3VwZXIucmVuZGVySWNvbk5hbWUoKSB8fCAnY3Jvc3Mtc21hbGwnO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc2lkZWJhci1jbG9zZS1idXR0b24nOiBTYmJTaWRlYmFyQ2xvc2VCdXR0b25FbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUNhQSxJQUFhLCtCQUFiLGNBQWtELDBCQUF5Qjs7RUFDekMsS0FBQSxjQUFzQjtDQUEyQjs7RUFDMUQsS0FBQSxTQUF5QixDQUFDLFVBQVUsNEJBQUssQ0FBQztDQUFFO0NBSW5FLGNBQUE7RUFDRSxNQUFLO0VBSEMsS0FBQSxzQkFBc0IsSUFBSSxzQkFBc0IsSUFBSTtFQUkxRCxLQUFLLE9BQU87Q0FDZDtDQUVnQixvQkFBaUI7RUFDL0IsTUFBTSxrQkFBaUI7RUFDdkIsS0FBSyxTQUFTO0NBQ2hCO0NBRW1CLFdBQVcsbUJBQXVDO0VBQ25FLE1BQU0sV0FBVyxpQkFBaUI7RUFDbEMsS0FBSyxVQUFVLFlBQVksaUJBQWlCLEtBQUssb0JBQW9CO0NBQ3ZFO0NBRW1CLGlCQUFjO0VBQy9CLE9BQU8sTUFBTSxlQUFjO0NBQzdCO0NBRW1CLGlCQUFjO0VBQy9CLE9BQU8sTUFBTSxlQUFjLEtBQU07Q0FDbkMifQ==