@sbb-esta/lyne-elements-dev 4.13.0-dev.1778781339 → 4.13.0-dev.1778821584

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 (480) hide show
  1. package/development/accordion.component-CGTwcntz.js +1 -1
  2. package/development/accordion.js +1 -1
  3. package/development/action-group.component-DQ7_kjB9.js +1 -1
  4. package/development/action-group.js +1 -1
  5. package/development/alert/alert-group.js +1 -1
  6. package/development/alert/alert.js +1 -1
  7. package/development/alert-group.component-DnnPrv5I.js +1 -1
  8. package/development/alert.component-CYb1vnDZ.js +1 -1
  9. package/development/alert.js +1 -1
  10. package/development/autocomplete/autocomplete.component.js +1 -1
  11. package/development/autocomplete-base-element-BSd5IXMZ.js +1 -1
  12. package/development/autocomplete.js +1 -1
  13. package/development/block-link-common-COY1RI1I.js +1 -1
  14. package/development/breadcrumb/breadcrumb-group.js +1 -1
  15. package/development/breadcrumb/breadcrumb.js +1 -1
  16. package/development/breadcrumb-group.component-DZslNBlB.js +1 -1
  17. package/development/breadcrumb.component-DxSUxLZO.js +1 -1
  18. package/development/breadcrumb.js +1 -1
  19. package/development/button/accent-button/accent-button.component.js +1 -1
  20. package/development/button/accent-button-link/accent-button-link.component.js +1 -1
  21. package/development/button/accent-button-link.js +1 -1
  22. package/development/button/accent-button-static/accent-button-static.component.js +1 -1
  23. package/development/button/accent-button-static.js +1 -1
  24. package/development/button/accent-button.js +1 -1
  25. package/development/button/button/button.component.js +1 -1
  26. package/development/button/button-link/button-link.component.js +1 -1
  27. package/development/button/button-link.js +1 -1
  28. package/development/button/button-static/button-static.component.js +1 -1
  29. package/development/button/button-static.js +1 -1
  30. package/development/button/button.js +1 -1
  31. package/development/button/common.js +1 -1
  32. package/development/button/mini-button/mini-button.component.js +1 -1
  33. package/development/button/mini-button-group.js +1 -1
  34. package/development/button/mini-button-link.js +1 -1
  35. package/development/button/mini-button.js +1 -1
  36. package/development/button/secondary-button/secondary-button.component.js +1 -1
  37. package/development/button/secondary-button-link/secondary-button-link.component.js +1 -1
  38. package/development/button/secondary-button-link.js +1 -1
  39. package/development/button/secondary-button-static/secondary-button-static.component.js +1 -1
  40. package/development/button/secondary-button-static.js +1 -1
  41. package/development/button/secondary-button.js +1 -1
  42. package/development/button/transparent-button/transparent-button.component.js +1 -1
  43. package/development/button/transparent-button-link/transparent-button-link.component.js +1 -1
  44. package/development/button/transparent-button-link.js +1 -1
  45. package/development/button/transparent-button-static/transparent-button-static.component.js +1 -1
  46. package/development/button/transparent-button-static.js +1 -1
  47. package/development/button/transparent-button.js +1 -1
  48. package/development/button-common-7dmrUx4A.js +1 -1
  49. package/development/button.js +1 -1
  50. package/development/calendar/calendar-day.js +1 -1
  51. package/development/calendar/calendar-month/calendar-month.component.js +1 -1
  52. package/development/calendar/calendar-month.js +1 -1
  53. package/development/calendar/calendar-weekday/calendar-weekday.component.js +1 -1
  54. package/development/calendar/calendar-weekday.js +1 -1
  55. package/development/calendar/calendar-weeknumber/calendar-weeknumber.component.js +1 -1
  56. package/development/calendar/calendar-weeknumber.js +1 -1
  57. package/development/calendar/calendar-year/calendar-year.component.js +1 -1
  58. package/development/calendar/calendar-year.js +1 -1
  59. package/development/calendar/calendar.js +1 -1
  60. package/development/calendar-cell-base-element-BXohfDSl.js +1 -1
  61. package/development/calendar-day.component-DFvRrp2O.js +1 -1
  62. package/development/calendar.component-Dg3D2A7k.js +1 -1
  63. package/development/calendar.js +1 -1
  64. package/development/card/card-badge.js +1 -1
  65. package/development/card/card-button/card-button.component.js +1 -1
  66. package/development/card/card-button.js +1 -1
  67. package/development/card/card-link/card-link.component.js +1 -1
  68. package/development/card/card-link.js +1 -1
  69. package/development/card/card.js +1 -1
  70. package/development/card/common.js +1 -1
  71. package/development/card-action-common-1FDHbfeR.js +1 -1
  72. package/development/card-badge.component-CUZIoVbL.js +1 -1
  73. package/development/card.component-DsqIZC_u.js +1 -1
  74. package/development/card.js +1 -1
  75. package/development/carousel/carousel-item.js +1 -1
  76. package/development/carousel/carousel-list.js +1 -1
  77. package/development/carousel/carousel.js +1 -1
  78. package/development/carousel-item.component-CIgUJtDJ.js +1 -1
  79. package/development/carousel-list.component-L-nYpHcN.js +1 -1
  80. package/development/carousel.component-Dl48ROSf.js +1 -1
  81. package/development/carousel.js +1 -1
  82. package/development/checkbox/checkbox-group.js +1 -1
  83. package/development/checkbox/checkbox-panel.js +1 -1
  84. package/development/checkbox/checkbox.js +1 -1
  85. package/development/checkbox/common.js +1 -1
  86. package/development/checkbox-common-Dd5uup8K.js +1 -1
  87. package/development/checkbox-group/checkbox-group.component.js +1 -1
  88. package/development/checkbox-group.js +1 -1
  89. package/development/checkbox-panel/checkbox-panel.component.js +1 -1
  90. package/development/checkbox-panel.js +1 -1
  91. package/development/checkbox.component-CFZrwUTA.js +1 -1
  92. package/development/checkbox.js +1 -1
  93. package/development/chip/chip-group.js +1 -1
  94. package/development/chip/chip.js +1 -1
  95. package/development/chip-group.component-BVfHWX2-.js +1 -1
  96. package/development/chip-label.component-DU8s-hfA.js +1 -1
  97. package/development/chip-label.js +1 -1
  98. package/development/chip.component-C6v1-PLX.js +1 -1
  99. package/development/chip.js +1 -1
  100. package/development/clock.component-CVPv4mCp.js +1 -1
  101. package/development/clock.js +1 -1
  102. package/development/compact-paginator.component-5_Q2Reul.js +1 -1
  103. package/development/container/container.js +1 -1
  104. package/development/container/sticky-bar.js +1 -1
  105. package/development/container.component-CG_i65Op.js +1 -1
  106. package/development/container.js +1 -1
  107. package/development/core/a11y/arrow-navigation.js +1 -1
  108. package/development/core/a11y/fake-event-detection.js +1 -1
  109. package/development/core/a11y/focus-trap-controller.js +1 -1
  110. package/development/core/a11y/focus-visible-within-controller.js +1 -1
  111. package/development/core/a11y/focus.js +1 -1
  112. package/development/core/a11y/input-modality-detector.js +1 -1
  113. package/development/core/a11y/interactivity-checker.js +1 -1
  114. package/development/core/a11y/live-announcer.js +1 -1
  115. package/development/core/base-elements/action-base-element.js +1 -1
  116. package/development/core/base-elements/button-base-element.js +1 -1
  117. package/development/core/base-elements/element.js +1 -1
  118. package/development/core/base-elements/link-base-element.js +1 -1
  119. package/development/core/base-elements/open-close-base-element.js +1 -1
  120. package/development/core/config/config.js +1 -1
  121. package/development/core/controllers/escapable-overlay-controller.js +1 -1
  122. package/development/core/controllers/id-reference-controller.js +1 -1
  123. package/development/core/controllers/inert-controller.js +1 -1
  124. package/development/core/controllers/language-controller.js +1 -1
  125. package/development/core/controllers/media-matchers-controller.js +1 -1
  126. package/development/core/controllers/overlay-position-controller.js +1 -1
  127. package/development/core/controllers/property-watcher-controller.js +1 -1
  128. package/development/core/controllers/slot-state-controller.js +1 -1
  129. package/development/core/datetime/date-adapter.js +1 -1
  130. package/development/core/datetime/native-date-adapter.js +1 -1
  131. package/development/core/datetime/temporal-date-adapter.js +1 -1
  132. package/development/core/decorators/force-type.js +1 -1
  133. package/development/core/decorators/get-override.js +1 -1
  134. package/development/core/decorators/handle-distinct-change.js +1 -1
  135. package/development/core/decorators/host-attributes.js +1 -1
  136. package/development/core/decorators/id-reference.js +1 -1
  137. package/development/core/decorators/omit-empty-converter.js +1 -1
  138. package/development/core/decorators/plain-date.js +1 -1
  139. package/development/core/dom/animation.js +1 -1
  140. package/development/core/dom/contains-pierce-shadow-dom.js +1 -1
  141. package/development/core/dom/lean-context.js +1 -1
  142. package/development/core/dom/platform.js +1 -1
  143. package/development/core/dom/queue-dom-content-loaded.js +1 -1
  144. package/development/core/dom/scroll.js +1 -1
  145. package/development/core/dom/set-or-remove-attribute.js +1 -1
  146. package/development/core/eventing/composed-path-has-attribute.js +1 -1
  147. package/development/core/eventing/event-target.js +1 -1
  148. package/development/core/eventing/form-element-handlers.js +1 -1
  149. package/development/core/eventing/forward-event.js +1 -1
  150. package/development/core/eventing/is-event-prevented.js +1 -1
  151. package/development/core/eventing/throttle.js +1 -1
  152. package/development/core/i18n/i18n.js +1 -1
  153. package/development/core/images.js +1 -1
  154. package/development/core/mixins/animation-complete-mixin.js +1 -1
  155. package/development/core/mixins/disabled-mixin.js +1 -1
  156. package/development/core/mixins/element-internals-mixin.js +1 -1
  157. package/development/core/mixins/form-associated-checkbox-mixin.js +1 -1
  158. package/development/core/mixins/form-associated-input-mixin.js +1 -1
  159. package/development/core/mixins/form-associated-mixin.js +1 -1
  160. package/development/core/mixins/form-associated-radio-button-mixin.js +1 -1
  161. package/development/core/mixins/hydration-mixin.js +1 -1
  162. package/development/core/mixins/named-slot-list-mixin.js +1 -1
  163. package/development/core/mixins/negative-mixin.js +1 -1
  164. package/development/core/mixins/readonly-mixin.js +1 -1
  165. package/development/core/mixins/required-mixin.js +1 -1
  166. package/development/core/mixins/selection-panel-mixin.js +1 -1
  167. package/development/core/mixins/update-scheduler-mixin.js +1 -1
  168. package/development/core/overlay/overlay-option-panel.js +1 -1
  169. package/development/core/overlay/overlay-outside-pointer-event-listener.js +1 -1
  170. package/development/core/overlay/overlay-trigger-attributes.js +1 -1
  171. package/development/core/overlay/overlay.js +1 -1
  172. package/development/core/overlay/position.js +1 -1
  173. package/development/core/testing/event-spy.js +1 -1
  174. package/development/core/testing/mocha-extensions.js +1 -1
  175. package/development/core/testing/wait-for-condition.js +1 -1
  176. package/development/core/testing/wait-for-image-ready.js +1 -1
  177. package/development/core/testing/wait-for-render.js +1 -1
  178. package/development/date-input.component-UP1afzgy.js +1 -1
  179. package/development/date-input.js +1 -1
  180. package/development/datepicker/common.js +1 -1
  181. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.js +1 -1
  182. package/development/datepicker/datepicker-next-day.js +1 -1
  183. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +1 -1
  184. package/development/datepicker/datepicker-previous-day.js +1 -1
  185. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.js +1 -1
  186. package/development/datepicker/datepicker-toggle.js +1 -1
  187. package/development/datepicker/datepicker.js +1 -1
  188. package/development/datepicker-button-CUPeoQgH.js +1 -1
  189. package/development/datepicker.component-D2DxFng_.js +1 -1
  190. package/development/datepicker.js +1 -1
  191. package/development/dialog/dialog-actions.js +1 -1
  192. package/development/dialog/dialog-close-button.js +1 -1
  193. package/development/dialog/dialog-content.js +1 -1
  194. package/development/dialog/dialog-title.js +1 -1
  195. package/development/dialog/dialog.js +1 -1
  196. package/development/dialog-actions.component-CegGvLGp.js +1 -1
  197. package/development/dialog-close-button.component-C4P-8J8j.js +1 -1
  198. package/development/dialog-content.component-bm8piC0O.js +1 -1
  199. package/development/dialog-title.component-CUAbFzCr.js +1 -1
  200. package/development/dialog.component-DKuR4u-y.js +1 -1
  201. package/development/dialog.js +1 -1
  202. package/development/divider.component-Bisnf286.js +1 -1
  203. package/development/divider.js +1 -1
  204. package/development/error.component-OBpWoVRL.js +1 -1
  205. package/development/expansion-panel/expansion-panel-content.js +1 -1
  206. package/development/expansion-panel/expansion-panel-header.js +1 -1
  207. package/development/expansion-panel/expansion-panel.js +1 -1
  208. package/development/expansion-panel-content.component-XIsKm8JD.js +1 -1
  209. package/development/expansion-panel-header.component-C1xRGcAN.js +1 -1
  210. package/development/expansion-panel.component-CV_IuWZA.js +1 -1
  211. package/development/expansion-panel.js +1 -1
  212. package/development/file-selector/common.js +1 -1
  213. package/development/file-selector/file-selector/file-selector.component.js +1 -1
  214. package/development/file-selector/file-selector-dropzone.js +1 -1
  215. package/development/file-selector/file-selector.js +1 -1
  216. package/development/file-selector-common-C7xIEiV4.js +1 -1
  217. package/development/file-selector-dropzone.component-BAWMZW4F.js +1 -1
  218. package/development/file-selector.js +1 -1
  219. package/development/flip-card/flip-card-details.js +1 -1
  220. package/development/flip-card/flip-card-summary.js +1 -1
  221. package/development/flip-card/flip-card.js +1 -1
  222. package/development/flip-card-details.component-iMm7NrgQ.js +1 -1
  223. package/development/flip-card-summary.component-HQ_VAn2j.js +1 -1
  224. package/development/flip-card.component-CJanLtkJ.js +1 -1
  225. package/development/flip-card.js +1 -1
  226. package/development/footer.component-BmDkxYW9.js +1 -1
  227. package/development/footer.js +1 -1
  228. package/development/form-field/error.js +1 -1
  229. package/development/form-field/form-field-clear/form-field-clear.component.js +1 -1
  230. package/development/form-field/form-field-clear.js +1 -1
  231. package/development/form-field/form-field-text-counter/form-field-text-counter.component.js +1 -1
  232. package/development/form-field/form-field.js +1 -1
  233. package/development/form-field.component-BU3Sv2mD.js +1 -1
  234. package/development/form-field.js +1 -1
  235. package/development/header/common.js +1 -1
  236. package/development/header/header-button/header-button.component.js +1 -1
  237. package/development/header/header-button.js +1 -1
  238. package/development/header/header-environment.js +1 -1
  239. package/development/header/header-link/header-link.component.js +1 -1
  240. package/development/header/header-link.js +1 -1
  241. package/development/header/header.js +1 -1
  242. package/development/header-action-common-MTYV0dqA.js +1 -1
  243. package/development/header-environment.component-DHqoX_lg.js +1 -1
  244. package/development/header.component-CWJ36jF0.js +1 -1
  245. package/development/header.js +1 -1
  246. package/development/hint.component-DUtL0RS3.js +1 -1
  247. package/development/icon/icon-name-mixin.js +1 -1
  248. package/development/icon/icon-request.js +1 -1
  249. package/development/icon/icon-validate.js +1 -1
  250. package/development/icon/icon.component.js +1 -1
  251. package/development/icon-base-DHN9pz2I.js +1 -1
  252. package/development/icon-sidebar/icon-sidebar-button/icon-sidebar-button.component.js +1 -1
  253. package/development/icon-sidebar/icon-sidebar-button.js +1 -1
  254. package/development/icon-sidebar/icon-sidebar-container.js +1 -1
  255. package/development/icon-sidebar/icon-sidebar-content.js +1 -1
  256. package/development/icon-sidebar/icon-sidebar-link/icon-sidebar-link.component.js +1 -1
  257. package/development/icon-sidebar/icon-sidebar-link.js +1 -1
  258. package/development/icon-sidebar/icon-sidebar.js +1 -1
  259. package/development/icon-sidebar-container.component-BH_R88Rf.js +1 -1
  260. package/development/icon-sidebar-content.component-yoF6FjkW.js +1 -1
  261. package/development/icon-sidebar.component-BGEkfXVs.js +1 -1
  262. package/development/icon-sidebar.js +1 -1
  263. package/development/icon.js +1 -1
  264. package/development/image.component-BD0jc-u-.js +1 -1
  265. package/development/image.js +1 -1
  266. package/development/inline-link-common-CgTIwFAI.js +1 -1
  267. package/development/journey-header.component-BwVODlXk.js +1 -1
  268. package/development/journey-header.js +1 -1
  269. package/development/lead-container.component-CGVdBWJr.js +1 -1
  270. package/development/lead-container.js +1 -1
  271. package/development/link/block-link/block-link.component.js +1 -1
  272. package/development/link/block-link-button/block-link-button.component.js +1 -1
  273. package/development/link/block-link-button.js +1 -1
  274. package/development/link/block-link-static/block-link-static.component.js +1 -1
  275. package/development/link/block-link-static.js +1 -1
  276. package/development/link/block-link.js +1 -1
  277. package/development/link/common.js +1 -1
  278. package/development/link/link/link.component.js +1 -1
  279. package/development/link/link-button/link-button.component.js +1 -1
  280. package/development/link/link-button.js +1 -1
  281. package/development/link/link-static/link-static.component.js +1 -1
  282. package/development/link/link-static.js +1 -1
  283. package/development/link/link.js +1 -1
  284. package/development/link-common-DJ2FfG_Q.js +1 -1
  285. package/development/link-list/common.js +1 -1
  286. package/development/link-list/link-list-anchor.js +1 -1
  287. package/development/link-list/link-list.js +1 -1
  288. package/development/link-list-anchor.component-Du7kfDZ-.js +1 -1
  289. package/development/link-list-anchor.js +1 -1
  290. package/development/link-list-base-CKMNz30d.js +1 -1
  291. package/development/link-list.component-DQMg8MdQ.js +1 -1
  292. package/development/link-list.js +1 -1
  293. package/development/link.js +1 -1
  294. package/development/loading-indicator-circle.component-np96Tu5S.js +1 -1
  295. package/development/loading-indicator-circle.js +1 -1
  296. package/development/loading-indicator.component-CgHYNMxB.js +1 -1
  297. package/development/loading-indicator.js +1 -1
  298. package/development/logo.component-I0yP2SKr.js +1 -1
  299. package/development/logo.js +1 -1
  300. package/development/map-container.component-D9NWw-wA.js +1 -1
  301. package/development/map-container.js +1 -1
  302. package/development/menu/common.js +1 -1
  303. package/development/menu/menu-button/menu-button.component.js +1 -1
  304. package/development/menu/menu-button.js +1 -1
  305. package/development/menu/menu-link/menu-link.component.js +1 -1
  306. package/development/menu/menu-link.js +1 -1
  307. package/development/menu/menu.js +1 -1
  308. package/development/menu-action-common-CBZCra6n.js +1 -1
  309. package/development/menu.component-Lh3JbVow.js +1 -1
  310. package/development/menu.js +1 -1
  311. package/development/message.component-Dlf5V5ba.js +1 -1
  312. package/development/message.js +1 -1
  313. package/development/mini-button-group.component-B3CA9KG0.js +1 -1
  314. package/development/mini-button-link.component-I3VpWeNU.js +1 -1
  315. package/development/mini-calendar/mini-calendar-day.js +1 -1
  316. package/development/mini-calendar/mini-calendar-month.js +1 -1
  317. package/development/mini-calendar/mini-calendar.js +1 -1
  318. package/development/mini-calendar-day.component-BUNVO4ZU.js +1 -1
  319. package/development/mini-calendar-month.component-DZXvAhc3.js +1 -1
  320. package/development/mini-calendar.component-BufzKw74.js +1 -1
  321. package/development/mini-calendar.js +1 -1
  322. package/development/navigation/common.js +1 -1
  323. package/development/navigation/navigation-button/navigation-button.component.js +1 -1
  324. package/development/navigation/navigation-button.js +1 -1
  325. package/development/navigation/navigation-link/navigation-link.component.js +1 -1
  326. package/development/navigation/navigation-link.js +1 -1
  327. package/development/navigation/navigation-list.js +1 -1
  328. package/development/navigation/navigation-marker.js +1 -1
  329. package/development/navigation/navigation-section.js +1 -1
  330. package/development/navigation/navigation.js +1 -1
  331. package/development/navigation-action-common-Hjr4dI9J.js +1 -1
  332. package/development/navigation-list.component-DqITJqFx.js +1 -1
  333. package/development/navigation-marker.component-GOv42emC.js +1 -1
  334. package/development/navigation-section.component-CnVrRETN.js +1 -1
  335. package/development/navigation.component-CTNQ1dix.js +1 -1
  336. package/development/navigation.js +1 -1
  337. package/development/notification.component-Cvq_uViC.js +1 -1
  338. package/development/notification.js +1 -1
  339. package/development/optgroup-base-element-BaG2W_AP.js +1 -1
  340. package/development/option/optgroup/optgroup.component.js +1 -1
  341. package/development/option/optgroup.js +1 -1
  342. package/development/option/option/option-base-element.js +1 -1
  343. package/development/option/option-hint.js +1 -1
  344. package/development/option/option.js +1 -1
  345. package/development/option-hint.component-BH8dP1fM.js +1 -1
  346. package/development/option.component-Bb2C7ae5.js +1 -1
  347. package/development/option.js +1 -1
  348. package/development/overlay/overlay-base-element.js +1 -1
  349. package/development/overlay.component-M0JuSq4C.js +1 -1
  350. package/development/overlay.js +1 -1
  351. package/development/paginator/common/paginator-common.js +1 -1
  352. package/development/paginator/common.js +1 -1
  353. package/development/paginator/compact-paginator.js +1 -1
  354. package/development/paginator/paginator.js +1 -1
  355. package/development/paginator.component-Bn5tK0FK.js +1 -1
  356. package/development/paginator.js +1 -1
  357. package/development/panel-mixin-Dj_rsgL9.js +1 -1
  358. package/development/popover.component-EgOs-wsR.js +1 -1
  359. package/development/popover.js +1 -1
  360. package/development/radio-button/common.js +1 -1
  361. package/development/radio-button/radio-button-group.js +1 -1
  362. package/development/radio-button/radio-button-panel.js +1 -1
  363. package/development/radio-button/radio-button.js +1 -1
  364. package/development/radio-button-common--d3WX-ZM.js +1 -1
  365. package/development/radio-button-group/radio-button-group.component.js +1 -1
  366. package/development/radio-button-group.js +1 -1
  367. package/development/radio-button-panel/radio-button-panel.component.js +1 -1
  368. package/development/radio-button-panel.js +1 -1
  369. package/development/radio-button.component-BauLEeCV.js +1 -1
  370. package/development/radio-button.js +1 -1
  371. package/development/screen-reader-only.component-B77UuVCI.js +1 -1
  372. package/development/screen-reader-only.js +1 -1
  373. package/development/select.component-D9SFG7Lk.js +1 -1
  374. package/development/select.js +1 -1
  375. package/development/selection-action-panel.component-D6I5wdEL.js +1 -1
  376. package/development/selection-action-panel.js +1 -1
  377. package/development/selection-expansion-panel.component-eO7b_EQF.js +1 -1
  378. package/development/selection-expansion-panel.js +1 -1
  379. package/development/selection-group-base-element-DvDpwhPl.js +1 -1
  380. package/development/sidebar/common.js +1 -1
  381. package/development/sidebar/sidebar-close-button.js +1 -1
  382. package/development/sidebar/sidebar-container.js +1 -1
  383. package/development/sidebar/sidebar-content.js +1 -1
  384. package/development/sidebar/sidebar-title.js +1 -1
  385. package/development/sidebar/sidebar.js +1 -1
  386. package/development/sidebar-close-button.component-CYWv39Mu.js +1 -1
  387. package/development/sidebar-container.component-BDSoDAym.js +1 -1
  388. package/development/sidebar-content.component-JcVKpKbK.js +1 -1
  389. package/development/sidebar-title.component-BA_j-Igh.js +1 -1
  390. package/development/sidebar.component-BLqO52nH.js +1 -1
  391. package/development/sidebar.js +1 -1
  392. package/development/signet.component-3D2ZsajP.js +1 -1
  393. package/development/signet.js +1 -1
  394. package/development/skiplink-list.component-EDPOitEB.js +1 -1
  395. package/development/skiplink-list.js +1 -1
  396. package/development/slider.component-C3qZB6ar.js +1 -1
  397. package/development/slider.js +1 -1
  398. package/development/status.component-CPi1cPN0.js +1 -1
  399. package/development/status.js +1 -1
  400. package/development/step-label.component-BJ9eainz.js +1 -1
  401. package/development/step.component-CTsOBGAn.js +1 -1
  402. package/development/stepper/step-label.js +1 -1
  403. package/development/stepper/step.js +1 -1
  404. package/development/stepper/stepper.js +1 -1
  405. package/development/stepper.component-CxOBayI1.js +1 -1
  406. package/development/stepper.js +1 -1
  407. package/development/sticky-bar.component-CysAIZTd.js +1 -1
  408. package/development/styles-D2RLaAYK.js +1 -1
  409. package/development/styles-D8-q-irv.js +1 -1
  410. package/development/styles-Jlhoev1S.js +1 -1
  411. package/development/tab-group.component-D9jCK26q.js +1 -1
  412. package/development/tab-label.component-B9e9kgVf.js +1 -1
  413. package/development/tab-nav-bar.component-CgYwCSVY.js +1 -1
  414. package/development/tab.component-DThKG7-a.js +1 -1
  415. package/development/table/table-wrapper.js +1 -1
  416. package/development/table-wrapper.component-D1p7kqCB.js +1 -1
  417. package/development/table.js +1 -1
  418. package/development/tabs/common.js +1 -1
  419. package/development/tabs/tab-group.js +1 -1
  420. package/development/tabs/tab-label.js +1 -1
  421. package/development/tabs/tab-nav-bar.js +1 -1
  422. package/development/tabs/tab.js +1 -1
  423. package/development/tabs.js +1 -1
  424. package/development/tag/tag-group.js +1 -1
  425. package/development/tag/tag.js +1 -1
  426. package/development/tag-group.component-Cw46bt0E.js +1 -1
  427. package/development/tag.component-Bl1nlIXQ.js +1 -1
  428. package/development/tag.js +1 -1
  429. package/development/teaser-hero.component-BIOpoGME.js +1 -1
  430. package/development/teaser-hero.js +1 -1
  431. package/development/teaser-product/common.js +1 -1
  432. package/development/teaser-product/teaser-product-static/teaser-product-static.component.js +1 -1
  433. package/development/teaser-product/teaser-product-static.js +1 -1
  434. package/development/teaser-product/teaser-product.js +1 -1
  435. package/development/teaser-product-common-DYX370pm.js +1 -1
  436. package/development/teaser-product.component-CSArA8bH.js +1 -1
  437. package/development/teaser-product.js +1 -1
  438. package/development/teaser.component-Cky6kKU0.js +1 -1
  439. package/development/teaser.js +1 -1
  440. package/development/time-input.component-BtdSR8kB.js +1 -1
  441. package/development/time-input.js +1 -1
  442. package/development/timetable-form/timetable-form-details.js +1 -1
  443. package/development/timetable-form/timetable-form-field.js +1 -1
  444. package/development/timetable-form/timetable-form-swap-button.js +1 -1
  445. package/development/timetable-form/timetable-form.js +1 -1
  446. package/development/timetable-form-details.component-DJl5Qt9y.js +1 -1
  447. package/development/timetable-form-field.component-DQ_TzcF4.js +1 -1
  448. package/development/timetable-form-swap-button.component-Bh9aPmdn.js +1 -1
  449. package/development/timetable-form.component-N8h4JBlH.js +1 -1
  450. package/development/timetable-form.js +1 -1
  451. package/development/timetable-occupancy-icon.component-lI7__-G5.js +1 -1
  452. package/development/timetable-occupancy-icon.js +1 -1
  453. package/development/timetable-occupancy.component-BBcznUh0.js +1 -1
  454. package/development/timetable-occupancy.js +1 -1
  455. package/development/title-base-BdYKwj3-.js +1 -1
  456. package/development/title.component-DSXVkddh.js +1 -1
  457. package/development/title.js +1 -1
  458. package/development/toast.component-IhHx0Qt3.js +1 -1
  459. package/development/toast.js +1 -1
  460. package/development/toggle/toggle-option.js +1 -1
  461. package/development/toggle/toggle.js +1 -1
  462. package/development/toggle-check.component-_fDAuLob.js +1 -1
  463. package/development/toggle-check.js +1 -1
  464. package/development/toggle-option.component-DTS3a603.js +1 -1
  465. package/development/toggle.component-BJpD1b9H.js +1 -1
  466. package/development/toggle.js +1 -1
  467. package/development/tooltip.component-YaUQA-Id.js +1 -1
  468. package/development/tooltip.js +1 -1
  469. package/development/train/train-blocked-passage.js +1 -1
  470. package/development/train/train-formation.js +1 -1
  471. package/development/train/train-wagon.js +1 -1
  472. package/development/train/train.js +1 -1
  473. package/development/train-blocked-passage.component-BrUJK0gf.js +1 -1
  474. package/development/train-formation.component-vt-nYQXA.js +1 -1
  475. package/development/train-wagon.component-CNxkffOO.js +1 -1
  476. package/development/train.component-BgpmEDx-.js +1 -1
  477. package/development/train.js +1 -1
  478. package/development/visual-checkbox.component-rdeoQN40.js +1 -1
  479. package/development/visual-checkbox.js +1 -1
  480. package/package.json +2 -2
@@ -75,4 +75,4 @@ var SbbIdReferenceController = class {
75
75
  //#endregion
76
76
  export { SbbIdReferenceController };
77
77
 
78
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQtcmVmZXJlbmNlLWNvbnRyb2xsZXIuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMvaWQtcmVmZXJlbmNlLWNvbnRyb2xsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNTZXJ2ZXIsIHR5cGUgTGl0RWxlbWVudCwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIgfSBmcm9tICdsaXQnO1xuXG5jb25zdCBvYnNlcnZlcnMgPSBuZXcgV2Vha01hcDxcbiAgTm9kZSxcbiAgeyBvYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlcjsgY29udHJvbGxlcnM6IFNldDxTYmJJZFJlZmVyZW5jZUNvbnRyb2xsZXI8YW55Pj4gfVxuPigpO1xuXG4vKipcbiAqIFRyYWNrcyBpZCBjaGFuZ2VzIGluIHRoZSBET00gYW5kIGNhbGxzIGNvbXBvbmVudCB3aGVuIG1hdGNoaW5nIHdpdGggcmVxdWVzdFVwZGF0ZSgpLlxuICovXG5leHBvcnQgY2xhc3MgU2JiSWRSZWZlcmVuY2VDb250cm9sbGVyPFQgZXh0ZW5kcyBMaXRFbGVtZW50PiBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHByaXZhdGUgX3Jvb3ROb2RlOiBEb2N1bWVudCB8IFNoYWRvd1Jvb3QgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfaG9zdDogVCxcbiAgICBwcml2YXRlIF9pZFJlZjoga2V5b2YgVCxcbiAgICBwcml2YXRlIF9vYnNlcnZlcnMgPSBvYnNlcnZlcnMsXG4gICkge1xuICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3Jvb3ROb2RlID0gdGhpcy5faG9zdC5nZXRSb290Tm9kZSgpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdDtcbiAgICBjb25zdCBvYnNlcnZlckNvbnRleHQgPSB0aGlzLl9vYnNlcnZlcnMuZ2V0KHRoaXMuX3Jvb3ROb2RlKTtcblxuICAgIGlmIChvYnNlcnZlckNvbnRleHQpIHtcbiAgICAgIG9ic2VydmVyQ29udGV4dC5jb250cm9sbGVycy5hZGQodGhpcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNvbnRyb2xsZXJzID0gbmV3IFNldChbdGhpc10pO1xuICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XG4gICAgICAgIGNvbnN0IG11dGF0ZWRJZHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAgICAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9ucykge1xuICAgICAgICAgIGlmIChtdXRhdGlvbi50eXBlID09PSAnYXR0cmlidXRlcycpIHtcbiAgICAgICAgICAgIG11dGF0ZWRJZHMuYWRkKG11dGF0aW9uLm9sZFZhbHVlISk7XG4gICAgICAgICAgICBtdXRhdGVkSWRzLmFkZCgobXV0YXRpb24udGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5pZCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChtdXRhdGlvbi50eXBlID09PSAnY2hpbGRMaXN0Jykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIFsuLi5tdXRhdGlvbi5hZGRlZE5vZGVzLCAuLi5tdXRhdGlvbi5yZW1vdmVkTm9kZXNdKSB7XG4gICAgICAgICAgICAgIGlmIChub2RlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBtdXRhdGVkSWRzLmFkZChub2RlLmlkKTtcbiAgICAgICAgICAgICAgICBub2RlLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tpZF0nKS5mb3JFYWNoKChlKSA9PiBtdXRhdGVkSWRzLmFkZChlLmlkKSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGNvbnRyb2xsZXIgb2YgY29udHJvbGxlcnMpIHtcbiAgICAgICAgICBjb25zdCBpZCA9IGNvbnRyb2xsZXIuX2hvc3RbY29udHJvbGxlci5faWRSZWZdO1xuICAgICAgICAgIGlmIChpZCAmJiB0eXBlb2YgaWQgPT09ICdzdHJpbmcnICYmIG11dGF0ZWRJZHMuaGFzKGlkKSkge1xuICAgICAgICAgICAgY29udHJvbGxlci5faG9zdC5yZXF1ZXN0VXBkYXRlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9yb290Tm9kZSwge1xuICAgICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnaWQnXSxcbiAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgICAgICBhdHRyaWJ1dGVPbGRWYWx1ZTogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl9vYnNlcnZlcnMuc2V0KHRoaXMuX3Jvb3ROb2RlLCB7IG9ic2VydmVyLCBjb250cm9sbGVycyB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBpZiAoaXNTZXJ2ZXIgfHwgIXRoaXMuX3Jvb3ROb2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb2JzZXJ2ZXJDb250ZXh0ID0gdGhpcy5fb2JzZXJ2ZXJzLmdldCh0aGlzLl9yb290Tm9kZSk7XG4gICAgaWYgKCFvYnNlcnZlckNvbnRleHQpIHtcbiAgICAgIHRoaXMuX3Jvb3ROb2RlID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBvYnNlcnZlckNvbnRleHQuY29udHJvbGxlcnMuZGVsZXRlKHRoaXMpO1xuICAgIGlmIChvYnNlcnZlckNvbnRleHQuY29udHJvbGxlcnMuc2l6ZSA9PT0gMCkge1xuICAgICAgb2JzZXJ2ZXJDb250ZXh0Lm9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIHRoaXMuX29ic2VydmVycy5kZWxldGUodGhpcy5fcm9vdE5vZGUpO1xuICAgIH1cblxuICAgIHRoaXMuX3Jvb3ROb2RlID0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIHRoZSBlbGVtZW50IGJ5IGlkIGluIHRoZSBjdXJyZW50IGRvY3VtZW50IGZyYWdtZW50XG4gICAqL1xuICBwdWJsaWMgZmluZCgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIGlmIChpc1NlcnZlciB8fCAhdGhpcy5fcm9vdE5vZGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpZCA9IHRoaXMuX2hvc3RbdGhpcy5faWRSZWZdO1xuICAgICAgcmV0dXJuIHR5cGVvZiBpZCA9PSAnc3RyaW5nJyA/IHRoaXMuX3Jvb3ROb2RlPy5nZXRFbGVtZW50QnlJZChpZCkgOiBudWxsO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUVBLElBQU0sNEJBQVksSUFBSSxTQUduQjs7OztBQUtILElBQWEsMkJBQWIsTUFBcUM7Q0FHbkMsWUFDVSxPQUNBLFFBQ0EsYUFBYSxXQUFTO0VBRnRCLEtBQUEsUUFBQTtFQUNBLEtBQUEsU0FBQTtFQUNBLEtBQUEsYUFBQTtFQUxGLEtBQUEsWUFBMEM7RUFPaEQsS0FBSyxNQUFNLGNBQWMsS0FBSzs7Q0FHekIsZ0JBQWE7RUFDbEIsSUFBSSxVQUNGO0VBR0YsS0FBSyxZQUFZLEtBQUssTUFBTSxhQUFzQztFQUNsRSxNQUFNLGtCQUFrQixLQUFLLFdBQVcsSUFBSSxLQUFLLFVBQVU7RUFFM0QsSUFBSSxpQkFDRixnQkFBZ0IsWUFBWSxJQUFJLEtBQUs7T0FDaEM7R0FDTCxNQUFNLGNBQWMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDO0dBQ25DLE1BQU0sV0FBVyxJQUFJLGtCQUFrQixjQUFhO0lBQ2xELE1BQU0sNkJBQWEsSUFBSSxLQUFhO0lBRXBDLEtBQUssTUFBTSxZQUFZLFdBQ3JCLElBQUksU0FBUyxTQUFTLGNBQWM7S0FDbEMsV0FBVyxJQUFJLFNBQVMsU0FBVTtLQUNsQyxXQUFXLElBQUssU0FBUyxPQUF1QixHQUFHO1dBQzlDLElBQUksU0FBUyxTQUFTO1VBQ3RCLE1BQU0sUUFBUSxDQUFDLEdBQUcsU0FBUyxZQUFZLEdBQUcsU0FBUyxhQUFhLEVBQ25FLElBQUksZ0JBQWdCLGFBQWE7TUFDL0IsV0FBVyxJQUFJLEtBQUssR0FBRztNQUN2QixLQUFLLGlCQUFpQixPQUFPLENBQUMsU0FBUyxNQUFNLFdBQVcsSUFBSSxFQUFFLEdBQUcsQ0FBQzs7O0lBTTFFLEtBQUssTUFBTSxjQUFjLGFBQWE7S0FDcEMsTUFBTSxLQUFLLFdBQVcsTUFBTSxXQUFXO0tBQ3ZDLElBQUksTUFBTSxPQUFPLE9BQU8sWUFBWSxXQUFXLElBQUksR0FBRyxFQUNwRCxXQUFXLE1BQU0sZUFBZTs7S0FHcEM7R0FFRixTQUFTLFFBQVEsS0FBSyxXQUFXO0lBQy9CLGlCQUFpQixDQUFDLEtBQUs7SUFDdkIsV0FBVztJQUNYLFNBQVM7SUFDVCxtQkFBbUI7SUFDcEIsQ0FBQztHQUVGLEtBQUssV0FBVyxJQUFJLEtBQUssV0FBVztJQUFFO0lBQVU7SUFBYSxDQUFDOzs7Q0FJM0QsbUJBQWdCO0VBQ3JCLElBQUksWUFBWSxDQUFDLEtBQUssV0FDcEI7RUFHRixNQUFNLGtCQUFrQixLQUFLLFdBQVcsSUFBSSxLQUFLLFVBQVU7RUFDM0QsSUFBSSxDQUFDLGlCQUFpQjtHQUNwQixLQUFLLFlBQVk7R0FDakI7O0VBR0YsZ0JBQWdCLFlBQVksT0FBTyxLQUFLO0VBQ3hDLElBQUksZ0JBQWdCLFlBQVksU0FBUyxHQUFHO0dBQzFDLGdCQUFnQixTQUFTLFlBQVk7R0FDckMsS0FBSyxXQUFXLE9BQU8sS0FBSyxVQUFVOztFQUd4QyxLQUFLLFlBQVk7Ozs7O0NBTVosT0FBSTtFQUNULElBQUksWUFBWSxDQUFDLEtBQUssV0FDcEIsT0FBTztPQUNGO0dBQ0wsTUFBTSxLQUFLLEtBQUssTUFBTSxLQUFLO0dBQzNCLE9BQU8sT0FBTyxNQUFNLFdBQVcsS0FBSyxXQUFXLGVBQWUsR0FBRyxHQUFHIn0=
78
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQtcmVmZXJlbmNlLWNvbnRyb2xsZXIuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMvaWQtcmVmZXJlbmNlLWNvbnRyb2xsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNTZXJ2ZXIsIHR5cGUgTGl0RWxlbWVudCwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIgfSBmcm9tICdsaXQnO1xuXG5jb25zdCBvYnNlcnZlcnMgPSBuZXcgV2Vha01hcDxcbiAgTm9kZSxcbiAgeyBvYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlcjsgY29udHJvbGxlcnM6IFNldDxTYmJJZFJlZmVyZW5jZUNvbnRyb2xsZXI8YW55Pj4gfVxuPigpO1xuXG4vKipcbiAqIFRyYWNrcyBpZCBjaGFuZ2VzIGluIHRoZSBET00gYW5kIGNhbGxzIGNvbXBvbmVudCB3aGVuIG1hdGNoaW5nIHdpdGggcmVxdWVzdFVwZGF0ZSgpLlxuICovXG5leHBvcnQgY2xhc3MgU2JiSWRSZWZlcmVuY2VDb250cm9sbGVyPFQgZXh0ZW5kcyBMaXRFbGVtZW50PiBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHByaXZhdGUgX3Jvb3ROb2RlOiBEb2N1bWVudCB8IFNoYWRvd1Jvb3QgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfaG9zdDogVCxcbiAgICBwcml2YXRlIF9pZFJlZjoga2V5b2YgVCxcbiAgICBwcml2YXRlIF9vYnNlcnZlcnMgPSBvYnNlcnZlcnMsXG4gICkge1xuICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3Jvb3ROb2RlID0gdGhpcy5faG9zdC5nZXRSb290Tm9kZSgpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdDtcbiAgICBjb25zdCBvYnNlcnZlckNvbnRleHQgPSB0aGlzLl9vYnNlcnZlcnMuZ2V0KHRoaXMuX3Jvb3ROb2RlKTtcblxuICAgIGlmIChvYnNlcnZlckNvbnRleHQpIHtcbiAgICAgIG9ic2VydmVyQ29udGV4dC5jb250cm9sbGVycy5hZGQodGhpcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNvbnRyb2xsZXJzID0gbmV3IFNldChbdGhpc10pO1xuICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XG4gICAgICAgIGNvbnN0IG11dGF0ZWRJZHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAgICAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9ucykge1xuICAgICAgICAgIGlmIChtdXRhdGlvbi50eXBlID09PSAnYXR0cmlidXRlcycpIHtcbiAgICAgICAgICAgIG11dGF0ZWRJZHMuYWRkKG11dGF0aW9uLm9sZFZhbHVlISk7XG4gICAgICAgICAgICBtdXRhdGVkSWRzLmFkZCgobXV0YXRpb24udGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5pZCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChtdXRhdGlvbi50eXBlID09PSAnY2hpbGRMaXN0Jykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIFsuLi5tdXRhdGlvbi5hZGRlZE5vZGVzLCAuLi5tdXRhdGlvbi5yZW1vdmVkTm9kZXNdKSB7XG4gICAgICAgICAgICAgIGlmIChub2RlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBtdXRhdGVkSWRzLmFkZChub2RlLmlkKTtcbiAgICAgICAgICAgICAgICBub2RlLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tpZF0nKS5mb3JFYWNoKChlKSA9PiBtdXRhdGVkSWRzLmFkZChlLmlkKSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGNvbnRyb2xsZXIgb2YgY29udHJvbGxlcnMpIHtcbiAgICAgICAgICBjb25zdCBpZCA9IGNvbnRyb2xsZXIuX2hvc3RbY29udHJvbGxlci5faWRSZWZdO1xuICAgICAgICAgIGlmIChpZCAmJiB0eXBlb2YgaWQgPT09ICdzdHJpbmcnICYmIG11dGF0ZWRJZHMuaGFzKGlkKSkge1xuICAgICAgICAgICAgY29udHJvbGxlci5faG9zdC5yZXF1ZXN0VXBkYXRlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9yb290Tm9kZSwge1xuICAgICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnaWQnXSxcbiAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgICAgICBhdHRyaWJ1dGVPbGRWYWx1ZTogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl9vYnNlcnZlcnMuc2V0KHRoaXMuX3Jvb3ROb2RlLCB7IG9ic2VydmVyLCBjb250cm9sbGVycyB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBpZiAoaXNTZXJ2ZXIgfHwgIXRoaXMuX3Jvb3ROb2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb2JzZXJ2ZXJDb250ZXh0ID0gdGhpcy5fb2JzZXJ2ZXJzLmdldCh0aGlzLl9yb290Tm9kZSk7XG4gICAgaWYgKCFvYnNlcnZlckNvbnRleHQpIHtcbiAgICAgIHRoaXMuX3Jvb3ROb2RlID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBvYnNlcnZlckNvbnRleHQuY29udHJvbGxlcnMuZGVsZXRlKHRoaXMpO1xuICAgIGlmIChvYnNlcnZlckNvbnRleHQuY29udHJvbGxlcnMuc2l6ZSA9PT0gMCkge1xuICAgICAgb2JzZXJ2ZXJDb250ZXh0Lm9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIHRoaXMuX29ic2VydmVycy5kZWxldGUodGhpcy5fcm9vdE5vZGUpO1xuICAgIH1cblxuICAgIHRoaXMuX3Jvb3ROb2RlID0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIHRoZSBlbGVtZW50IGJ5IGlkIGluIHRoZSBjdXJyZW50IGRvY3VtZW50IGZyYWdtZW50XG4gICAqL1xuICBwdWJsaWMgZmluZCgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIGlmIChpc1NlcnZlciB8fCAhdGhpcy5fcm9vdE5vZGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpZCA9IHRoaXMuX2hvc3RbdGhpcy5faWRSZWZdO1xuICAgICAgcmV0dXJuIHR5cGVvZiBpZCA9PSAnc3RyaW5nJyA/IHRoaXMuX3Jvb3ROb2RlPy5nZXRFbGVtZW50QnlJZChpZCkgOiBudWxsO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUVBLElBQU0sNEJBQVksSUFBSSxRQUFPOzs7O0FBUTdCLElBQWEsMkJBQWIsTUFBcUM7Q0FHbkMsWUFDVSxPQUNBLFFBQ0EsYUFBYSxXQUFTO0VBRnRCLEtBQUEsUUFBQTtFQUNBLEtBQUEsU0FBQTtFQUNBLEtBQUEsYUFBQTtFQUxGLEtBQUEsWUFBMEM7RUFPaEQsS0FBSyxNQUFNLGNBQWMsSUFBSTtDQUMvQjtDQUVPLGdCQUFhO0VBQ2xCLElBQUksVUFDRjtFQUdGLEtBQUssWUFBWSxLQUFLLE1BQU0sWUFBVztFQUN2QyxNQUFNLGtCQUFrQixLQUFLLFdBQVcsSUFBSSxLQUFLLFNBQVM7RUFFMUQsSUFBSSxpQkFDRixnQkFBZ0IsWUFBWSxJQUFJLElBQUk7T0FDL0I7R0FDTCxNQUFNLGNBQWMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO0dBQ2xDLE1BQU0sV0FBVyxJQUFJLGtCQUFrQixjQUFhO0lBQ2xELE1BQU0sNkJBQWEsSUFBSSxJQUFHO0lBRTFCLEtBQUssTUFBTSxZQUFZLFdBQ3JCLElBQUksU0FBUyxTQUFTLGNBQWM7S0FDbEMsV0FBVyxJQUFJLFNBQVMsUUFBUztLQUNqQyxXQUFXLElBQUssU0FBUyxPQUF1QixFQUFFO0lBQ3BELE9BQU8sSUFBSSxTQUFTLFNBQVM7VUFDdEIsTUFBTSxRQUFRLENBQUMsR0FBRyxTQUFTLFlBQVksR0FBRyxTQUFTLFlBQVksR0FDbEUsSUFBSSxnQkFBZ0IsYUFBYTtNQUMvQixXQUFXLElBQUksS0FBSyxFQUFFO01BQ3RCLEtBQUssaUJBQWlCLE1BQU0sRUFBRSxTQUFTLE1BQU0sV0FBVyxJQUFJLEVBQUUsRUFBRSxDQUFDO0tBQ25FOztJQUtOLEtBQUssTUFBTSxjQUFjLGFBQWE7S0FDcEMsTUFBTSxLQUFLLFdBQVcsTUFBTSxXQUFXO0tBQ3ZDLElBQUksTUFBTSxPQUFPLE9BQU8sWUFBWSxXQUFXLElBQUksRUFBRSxHQUNuRCxXQUFXLE1BQU0sY0FBYTtJQUVsQztHQUNGLENBQUM7R0FFRCxTQUFTLFFBQVEsS0FBSyxXQUFXO0lBQy9CLGlCQUFpQixDQUFDLElBQUk7SUFDdEIsV0FBVztJQUNYLFNBQVM7SUFDVCxtQkFBbUI7SUFDcEI7R0FFRCxLQUFLLFdBQVcsSUFBSSxLQUFLLFdBQVc7SUFBRTtJQUFVO0dBQVcsQ0FBRTtFQUMvRDtDQUNGO0NBRU8sbUJBQWdCO0VBQ3JCLElBQUksWUFBWSxDQUFDLEtBQUssV0FDcEI7RUFHRixNQUFNLGtCQUFrQixLQUFLLFdBQVcsSUFBSSxLQUFLLFNBQVM7RUFDMUQsSUFBSSxDQUFDLGlCQUFpQjtHQUNwQixLQUFLLFlBQVk7R0FDakI7RUFDRjtFQUVBLGdCQUFnQixZQUFZLE9BQU8sSUFBSTtFQUN2QyxJQUFJLGdCQUFnQixZQUFZLFNBQVMsR0FBRztHQUMxQyxnQkFBZ0IsU0FBUyxXQUFVO0dBQ25DLEtBQUssV0FBVyxPQUFPLEtBQUssU0FBUztFQUN2QztFQUVBLEtBQUssWUFBWTtDQUNuQjs7OztDQUtPLE9BQUk7RUFDVCxJQUFJLFlBQVksQ0FBQyxLQUFLLFdBQ3BCLE9BQU87T0FDRjtHQUNMLE1BQU0sS0FBSyxLQUFLLE1BQU0sS0FBSztHQUMzQixPQUFPLE9BQU8sTUFBTSxXQUFXLEtBQUssV0FBVyxlQUFlLEVBQUUsSUFBSTtFQUN0RTtDQUNGIn0=
@@ -97,4 +97,4 @@ var SbbInertController = class {
97
97
  //#endregion
98
98
  export { SbbInertController };
99
99
 
100
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5lcnQtY29udHJvbGxlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9jb250cm9sbGVycy9pbmVydC1jb250cm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVhY3RpdmVDb250cm9sbGVyLCBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHR5cGUgeyBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCB9IGZyb20gJy4uL2Jhc2UtZWxlbWVudHMudHMnO1xuXG5jb25zdCBJR05PUkVEX0VMRU1FTlRTID0gWydzY3JpcHQnLCAnaGVhZCcsICd0ZW1wbGF0ZScsICdzdHlsZSddO1xuY29uc3QgaW5lcnRFbGVtZW50cyA9IG5ldyBTZXQ8SFRNTEVsZW1lbnQ+KCk7XG5jb25zdCBleGVtcHRlZEVsZW1lbnRzID0gbmV3IFNldDxIVE1MRWxlbWVudD4oKTtcbmNvbnN0IGluZXJ0T3ZlcmxheXMgPSBuZXcgU2V0PEhUTUxFbGVtZW50PigpO1xuXG5leHBvcnQgY2xhc3MgU2JiSW5lcnRDb250cm9sbGVyIGltcGxlbWVudHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2hvc3Q6IFJlYWN0aXZlQ29udHJvbGxlckhvc3QgJiBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbiAgICBwcml2YXRlIF9pbmVydEVsZW1lbnRzID0gaW5lcnRFbGVtZW50cyxcbiAgICBwcml2YXRlIF9pbmVydE92ZXJsYXlzID0gaW5lcnRPdmVybGF5cyxcbiAgICBwcml2YXRlIF9leGVtcHRlZEVsZW1lbnRzID0gZXhlbXB0ZWRFbGVtZW50cyxcbiAgKSB7XG4gICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyPy4odGhpcyk7XG4gIH1cblxuICBwdWJsaWMgaG9zdENvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faG9zdC5pc09wZW4pIHtcbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0luZXJ0KCkpIHtcbiAgICAgIHRoaXMuZGVhY3RpdmF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBBcHBsaWVzIGluZXJ0IHN0YXRlIHRvIGV2ZXJ5IG90aGVyIGVsZW1lbnQgb24gdGhlIHBhZ2UgZXhjZXB0IHRoZSBvdmVybGF5LiAqL1xuICBwdWJsaWMgYWN0aXZhdGUoKTogdm9pZCB7XG4gICAgLy8gUmVtb3ZlIGluZXJ0IHN0YXRlIGZyb20gcHJldmlvdXMgb3BlbmVkIG92ZXJsYXlcbiAgICBpZiAodGhpcy5faW5lcnRPdmVybGF5cy5zaXplKSB7XG4gICAgICB0aGlzLl9yZW1vdmVBbGxJbmVydEF0dHJpYnV0ZXMoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9pbmVydE92ZXJsYXlzLmFkZCh0aGlzLl9ob3N0KTtcbiAgICB0aGlzLl9hZGRBbGxJbmVydEF0dHJpYnV0ZXMoKTtcbiAgfVxuXG4gIC8qKiBSZW1vdmVzIGluZXJ0IHN0YXRlLiAqL1xuICBwdWJsaWMgZGVhY3RpdmF0ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fY3VycmVudE92ZXJsYXkoKSAhPT0gdGhpcy5faG9zdCkge1xuICAgICAgLy8gSWYgZS5nLiBhIGNvbXBvbmVudCBnZXRzIGRpc2Nvbm5lY3RlZCwgaXQgY291bGQgYmUgdGhhdCBpdCBpcyBub3QgdGhlIHRvcCBtb3N0LlxuICAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBjYW4gZGlyZWN0bHkgcmVtb3ZlIGl0LCBhcyB0aGVyZSBpcyBjdXJyZW50bHkgbm8gaW5lcnQgc3RhdGUgYXBwbGllZC5cbiAgICAgIGlmICh0aGlzLl9pbmVydE92ZXJsYXlzLmhhcyh0aGlzLl9ob3N0KSkge1xuICAgICAgICB0aGlzLl9pbmVydE92ZXJsYXlzLmRlbGV0ZSh0aGlzLl9ob3N0KTtcbiAgICAgIH0gZWxzZSBpZiAoaW1wb3J0Lm1ldGEuZW52LkRFVikge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ1RyeWluZyB0byByZW1vdmUgaW5lcnQgc3RhdGUgb2YgYW4gb3ZlcmxheSB3aGljaCBuZXZlciBoYWQgYW4gYXBwbGllZCBpbmVydCBzdGF0ZS4nLFxuICAgICAgICAgIHRoaXMuX2hvc3QsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9yZW1vdmVBbGxJbmVydEF0dHJpYnV0ZXMoKTtcbiAgICB0aGlzLl9pbmVydE92ZXJsYXlzLmRlbGV0ZSh0aGlzLl9ob3N0KTtcblxuICAgIC8vIElmIHRoZXJlIGlzIGFzIHByZXZpb3VzIG9wZW5lZCBvdmVybGF5LCBzZXQgaXRzIGluZXJ0IHN0YXRlIGFnYWluLlxuICAgIGlmICh0aGlzLl9pbmVydE92ZXJsYXlzLnNpemUpIHtcbiAgICAgIHRoaXMuX2FkZEFsbEluZXJ0QXR0cmlidXRlcygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBhc3NpZ25lZCBob3N0IGlzIGN1cnJlbnRseSBpbmVydCAqL1xuICBwdWJsaWMgaXNJbmVydCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faW5lcnRPdmVybGF5cy5oYXModGhpcy5faG9zdCk7XG4gIH1cblxuICAvKiogVGVtcG9yYXJpbHkgcmVtb3ZlcyBhbGwgaW5lcnQgYXR0cmlidXRlcyBmcm9tIGEgZ2l2ZW4gZWxlbWVudC4gKi9cbiAgcHVibGljIGV4ZW1wdChlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pbmVydEVsZW1lbnRzLmhhcyhlbGVtZW50KSAmJiAhdGhpcy5fZXhlbXB0ZWRFbGVtZW50cy5oYXMoZWxlbWVudCkpIHtcbiAgICAgIHRoaXMuX3JlbW92ZUluZXJ0QXR0cmlidXRlcyhlbGVtZW50KTtcbiAgICAgIHRoaXMuX2luZXJ0RWxlbWVudHMuZGVsZXRlKGVsZW1lbnQpO1xuICAgICAgdGhpcy5fZXhlbXB0ZWRFbGVtZW50cy5hZGQoZWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEluZXJ0cyBhbiBlbGVtZW50IGN1cnJlbnRseSBleGVtcHRlZCBmcm9tIGluZXJ0LiAqL1xuICBwdWJsaWMgcmVzdG9yZUFsbEV4ZW1wdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuX2V4ZW1wdGVkRWxlbWVudHMuZm9yRWFjaCgoZSkgPT4gdGhpcy5fYWRkSW5lcnRBdHRyaWJ1dGVzKGUpKTtcbiAgICB0aGlzLl9leGVtcHRlZEVsZW1lbnRzLmNsZWFyKCk7XG4gIH1cblxuICBwcml2YXRlIF9jdXJyZW50T3ZlcmxheSgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiBbLi4udGhpcy5faW5lcnRPdmVybGF5c10ucG9wKCkgPz8gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbW92ZUFsbEluZXJ0QXR0cmlidXRlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9pbmVydEVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCA9PlxuICAgICAgdGhpcy5fcmVtb3ZlSW5lcnRBdHRyaWJ1dGVzKGVsZW1lbnQpLFxuICAgICk7XG4gICAgdGhpcy5faW5lcnRFbGVtZW50cy5jbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlSW5lcnRBdHRyaWJ1dGVzKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCdkYXRhLXNiYi1pbmVydCcpKSB7XG4gICAgICBlbGVtZW50LmluZXJ0ID0gZmFsc2U7XG4gICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1zYmItaW5lcnQnKTtcbiAgICB9XG5cbiAgICBpZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2RhdGEtc2JiLWFyaWEtaGlkZGVuJykpIHtcbiAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWhpZGRlbicpO1xuICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtc2JiLWFyaWEtaGlkZGVuJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfYWRkQWxsSW5lcnRBdHRyaWJ1dGVzKCk6IHZvaWQge1xuICAgIGxldCBlbGVtZW50OiBFbGVtZW50IHwgbnVsbCA9IHRoaXMuX2N1cnJlbnRPdmVybGF5KCk7XG5cbiAgICB3aGlsZSAoZWxlbWVudCAhPT0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmIGVsZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIEFycmF5LmZyb20oKGVsZW1lbnQ/LnBhcmVudEVsZW1lbnQgPz8gZWxlbWVudD8uZ2V0Um9vdE5vZGUoKSk/LmNoaWxkTm9kZXMgPz8gW10pXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgKGNoaWxkKTogY2hpbGQgaXMgSFRNTEVsZW1lbnQgPT5cbiAgICAgICAgICAgIGNoaWxkICE9PSBlbGVtZW50ICYmXG4gICAgICAgICAgICBjaGlsZCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MRWxlbWVudCAmJlxuICAgICAgICAgICAgIUlHTk9SRURfRUxFTUVOVFMuaW5jbHVkZXMoY2hpbGQubG9jYWxOYW1lKSAmJlxuICAgICAgICAgICAgIWNoaWxkLmNsYXNzTGlzdC5jb250YWlucygnc2JiLWxpdmUtYW5ub3VuY2VyLWVsZW1lbnQnKSxcbiAgICAgICAgKVxuICAgICAgICAuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2FkZEluZXJ0QXR0cmlidXRlcyhlbGVtZW50KTtcbiAgICAgICAgfSk7XG5cbiAgICAgIC8vIFdlIG5lZWQgdG8gcGllcmNlIHRocm91Z2ggU2hhZG93IERPTSBib3VuZGFyeVxuICAgICAgZWxlbWVudCA9IGVsZW1lbnQ/LnBhcmVudEVsZW1lbnQgPz8gKGVsZW1lbnQ/LmdldFJvb3ROb2RlKCkgYXMgU2hhZG93Um9vdCk/Lmhvc3QgPz8gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9hZGRJbmVydEF0dHJpYnV0ZXMoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9pbmVydEVsZW1lbnRzLmFkZChlbGVtZW50KTtcblxuICAgIGlmICghZWxlbWVudC5pbmVydCkge1xuICAgICAgZWxlbWVudC5pbmVydCA9IHRydWU7XG4gICAgICBlbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1zYmItaW5lcnQnLCB0cnVlKTtcbiAgICB9XG5cbiAgICBpZiAoIWVsZW1lbnQuaGFzQXR0cmlidXRlKCdhcmlhLWhpZGRlbicpKSB7XG4gICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAndHJ1ZScpO1xuICAgICAgZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtc2JiLWFyaWEtaGlkZGVuJywgdHJ1ZSk7XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7QUFJQSxJQUFNLG1CQUFtQjtDQUFDO0NBQVU7Q0FBUTtDQUFZO0NBQVE7QUFDaEUsSUFBTSxnQ0FBZ0IsSUFBSSxLQUFrQjtBQUM1QyxJQUFNLG1DQUFtQixJQUFJLEtBQWtCO0FBQy9DLElBQU0sZ0NBQWdCLElBQUksS0FBa0I7QUFFNUMsSUFBYSxxQkFBYixNQUErQjtDQUM3QixZQUNVLE9BQ0EsaUJBQWlCLGVBQ2pCLGlCQUFpQixlQUNqQixvQkFBb0Isa0JBQWdCO0VBSHBDLEtBQUEsUUFBQTtFQUNBLEtBQUEsaUJBQUE7RUFDQSxLQUFBLGlCQUFBO0VBQ0EsS0FBQSxvQkFBQTtFQUVSLEtBQUssTUFBTSxnQkFBZ0IsS0FBSzs7Q0FHM0IsZ0JBQWE7RUFDbEIsSUFBSSxLQUFLLE1BQU0sUUFDYixLQUFLLFVBQVU7O0NBSVosbUJBQWdCO0VBQ3JCLElBQUksS0FBSyxTQUFTLEVBQ2hCLEtBQUssWUFBWTs7O0NBS2QsV0FBUTtFQUViLElBQUksS0FBSyxlQUFlLE1BQ3RCLEtBQUssMkJBQTJCO0VBR2xDLEtBQUssZUFBZSxJQUFJLEtBQUssTUFBTTtFQUNuQyxLQUFLLHdCQUF3Qjs7O0NBSXhCLGFBQVU7RUFDZixJQUFJLEtBQUssaUJBQWlCLEtBQUssS0FBSyxPQUFPO0dBR3pDLElBQUksS0FBSyxlQUFlLElBQUksS0FBSyxNQUFNLEVBQ3JDLEtBQUssZUFBZSxPQUFPLEtBQUssTUFBTTtHQVF4Qzs7RUFHRixLQUFLLDJCQUEyQjtFQUNoQyxLQUFLLGVBQWUsT0FBTyxLQUFLLE1BQU07RUFHdEMsSUFBSSxLQUFLLGVBQWUsTUFDdEIsS0FBSyx3QkFBd0I7OztDQUsxQixVQUFPO0VBQ1osT0FBTyxLQUFLLGVBQWUsSUFBSSxLQUFLLE1BQU07OztDQUlyQyxPQUFPLFNBQW9CO0VBQ2hDLElBQUksS0FBSyxlQUFlLElBQUksUUFBUSxJQUFJLENBQUMsS0FBSyxrQkFBa0IsSUFBSSxRQUFRLEVBQUU7R0FDNUUsS0FBSyx1QkFBdUIsUUFBUTtHQUNwQyxLQUFLLGVBQWUsT0FBTyxRQUFRO0dBQ25DLEtBQUssa0JBQWtCLElBQUksUUFBUTs7OztDQUtoQyxxQkFBa0I7RUFDdkIsS0FBSyxrQkFBa0IsU0FBUyxNQUFNLEtBQUssb0JBQW9CLEVBQUUsQ0FBQztFQUNsRSxLQUFLLGtCQUFrQixPQUFPOztDQUd4QixrQkFBZTtFQUNyQixPQUFPLENBQUMsR0FBRyxLQUFLLGVBQWUsQ0FBQyxLQUFLLElBQUk7O0NBR25DLDRCQUF5QjtFQUMvQixLQUFLLGVBQWUsU0FBUyxZQUMzQixLQUFLLHVCQUF1QixRQUFRLENBQ3JDO0VBQ0QsS0FBSyxlQUFlLE9BQU87O0NBR3JCLHVCQUF1QixTQUFvQjtFQUNqRCxJQUFJLENBQUMsU0FDSDtFQUdGLElBQUksUUFBUSxhQUFhLGlCQUFpQixFQUFFO0dBQzFDLFFBQVEsUUFBUTtHQUNoQixRQUFRLGdCQUFnQixpQkFBaUI7O0VBRzNDLElBQUksUUFBUSxhQUFhLHVCQUF1QixFQUFFO0dBQ2hELFFBQVEsZ0JBQWdCLGNBQWM7R0FDdEMsUUFBUSxnQkFBZ0IsdUJBQXVCOzs7Q0FJM0MseUJBQXNCO0VBQzVCLElBQUksVUFBMEIsS0FBSyxpQkFBaUI7RUFFcEQsT0FBTyxZQUFZLFNBQVMsbUJBQW1CLFlBQVksTUFBTTtHQUMvRCxNQUFNLE1BQU0sU0FBUyxpQkFBaUIsU0FBUyxhQUFhLEdBQUcsY0FBYyxFQUFFLENBQUMsQ0FDN0UsUUFDRSxVQUNDLFVBQVUsV0FDVixpQkFBaUIsT0FBTyxlQUN4QixDQUFDLGlCQUFpQixTQUFTLE1BQU0sVUFBVSxJQUMzQyxDQUFDLE1BQU0sVUFBVSxTQUFTLDZCQUE2QixDQUMxRCxDQUNBLFNBQVMsWUFBVztJQUNuQixLQUFLLG9CQUFvQixRQUFRO0tBQ2pDO0dBR0osVUFBVSxTQUFTLGlCQUFrQixTQUFTLGFBQTRCLEVBQUUsUUFBUTs7O0NBSWhGLG9CQUFvQixTQUFvQjtFQUM5QyxLQUFLLGVBQWUsSUFBSSxRQUFRO0VBRWhDLElBQUksQ0FBQyxRQUFRLE9BQU87R0FDbEIsUUFBUSxRQUFRO0dBQ2hCLFFBQVEsZ0JBQWdCLGtCQUFrQixLQUFLOztFQUdqRCxJQUFJLENBQUMsUUFBUSxhQUFhLGNBQWMsRUFBRTtHQUN4QyxRQUFRLGFBQWEsZUFBZSxPQUFPO0dBQzNDLFFBQVEsZ0JBQWdCLHdCQUF3QixLQUFLIn0=
100
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5lcnQtY29udHJvbGxlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9jb250cm9sbGVycy9pbmVydC1jb250cm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVhY3RpdmVDb250cm9sbGVyLCBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHR5cGUgeyBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCB9IGZyb20gJy4uL2Jhc2UtZWxlbWVudHMudHMnO1xuXG5jb25zdCBJR05PUkVEX0VMRU1FTlRTID0gWydzY3JpcHQnLCAnaGVhZCcsICd0ZW1wbGF0ZScsICdzdHlsZSddO1xuY29uc3QgaW5lcnRFbGVtZW50cyA9IG5ldyBTZXQ8SFRNTEVsZW1lbnQ+KCk7XG5jb25zdCBleGVtcHRlZEVsZW1lbnRzID0gbmV3IFNldDxIVE1MRWxlbWVudD4oKTtcbmNvbnN0IGluZXJ0T3ZlcmxheXMgPSBuZXcgU2V0PEhUTUxFbGVtZW50PigpO1xuXG5leHBvcnQgY2xhc3MgU2JiSW5lcnRDb250cm9sbGVyIGltcGxlbWVudHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2hvc3Q6IFJlYWN0aXZlQ29udHJvbGxlckhvc3QgJiBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbiAgICBwcml2YXRlIF9pbmVydEVsZW1lbnRzID0gaW5lcnRFbGVtZW50cyxcbiAgICBwcml2YXRlIF9pbmVydE92ZXJsYXlzID0gaW5lcnRPdmVybGF5cyxcbiAgICBwcml2YXRlIF9leGVtcHRlZEVsZW1lbnRzID0gZXhlbXB0ZWRFbGVtZW50cyxcbiAgKSB7XG4gICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyPy4odGhpcyk7XG4gIH1cblxuICBwdWJsaWMgaG9zdENvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faG9zdC5pc09wZW4pIHtcbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0luZXJ0KCkpIHtcbiAgICAgIHRoaXMuZGVhY3RpdmF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBBcHBsaWVzIGluZXJ0IHN0YXRlIHRvIGV2ZXJ5IG90aGVyIGVsZW1lbnQgb24gdGhlIHBhZ2UgZXhjZXB0IHRoZSBvdmVybGF5LiAqL1xuICBwdWJsaWMgYWN0aXZhdGUoKTogdm9pZCB7XG4gICAgLy8gUmVtb3ZlIGluZXJ0IHN0YXRlIGZyb20gcHJldmlvdXMgb3BlbmVkIG92ZXJsYXlcbiAgICBpZiAodGhpcy5faW5lcnRPdmVybGF5cy5zaXplKSB7XG4gICAgICB0aGlzLl9yZW1vdmVBbGxJbmVydEF0dHJpYnV0ZXMoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9pbmVydE92ZXJsYXlzLmFkZCh0aGlzLl9ob3N0KTtcbiAgICB0aGlzLl9hZGRBbGxJbmVydEF0dHJpYnV0ZXMoKTtcbiAgfVxuXG4gIC8qKiBSZW1vdmVzIGluZXJ0IHN0YXRlLiAqL1xuICBwdWJsaWMgZGVhY3RpdmF0ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fY3VycmVudE92ZXJsYXkoKSAhPT0gdGhpcy5faG9zdCkge1xuICAgICAgLy8gSWYgZS5nLiBhIGNvbXBvbmVudCBnZXRzIGRpc2Nvbm5lY3RlZCwgaXQgY291bGQgYmUgdGhhdCBpdCBpcyBub3QgdGhlIHRvcCBtb3N0LlxuICAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBjYW4gZGlyZWN0bHkgcmVtb3ZlIGl0LCBhcyB0aGVyZSBpcyBjdXJyZW50bHkgbm8gaW5lcnQgc3RhdGUgYXBwbGllZC5cbiAgICAgIGlmICh0aGlzLl9pbmVydE92ZXJsYXlzLmhhcyh0aGlzLl9ob3N0KSkge1xuICAgICAgICB0aGlzLl9pbmVydE92ZXJsYXlzLmRlbGV0ZSh0aGlzLl9ob3N0KTtcbiAgICAgIH0gZWxzZSBpZiAoaW1wb3J0Lm1ldGEuZW52LkRFVikge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ1RyeWluZyB0byByZW1vdmUgaW5lcnQgc3RhdGUgb2YgYW4gb3ZlcmxheSB3aGljaCBuZXZlciBoYWQgYW4gYXBwbGllZCBpbmVydCBzdGF0ZS4nLFxuICAgICAgICAgIHRoaXMuX2hvc3QsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9yZW1vdmVBbGxJbmVydEF0dHJpYnV0ZXMoKTtcbiAgICB0aGlzLl9pbmVydE92ZXJsYXlzLmRlbGV0ZSh0aGlzLl9ob3N0KTtcblxuICAgIC8vIElmIHRoZXJlIGlzIGFzIHByZXZpb3VzIG9wZW5lZCBvdmVybGF5LCBzZXQgaXRzIGluZXJ0IHN0YXRlIGFnYWluLlxuICAgIGlmICh0aGlzLl9pbmVydE92ZXJsYXlzLnNpemUpIHtcbiAgICAgIHRoaXMuX2FkZEFsbEluZXJ0QXR0cmlidXRlcygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBhc3NpZ25lZCBob3N0IGlzIGN1cnJlbnRseSBpbmVydCAqL1xuICBwdWJsaWMgaXNJbmVydCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faW5lcnRPdmVybGF5cy5oYXModGhpcy5faG9zdCk7XG4gIH1cblxuICAvKiogVGVtcG9yYXJpbHkgcmVtb3ZlcyBhbGwgaW5lcnQgYXR0cmlidXRlcyBmcm9tIGEgZ2l2ZW4gZWxlbWVudC4gKi9cbiAgcHVibGljIGV4ZW1wdChlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pbmVydEVsZW1lbnRzLmhhcyhlbGVtZW50KSAmJiAhdGhpcy5fZXhlbXB0ZWRFbGVtZW50cy5oYXMoZWxlbWVudCkpIHtcbiAgICAgIHRoaXMuX3JlbW92ZUluZXJ0QXR0cmlidXRlcyhlbGVtZW50KTtcbiAgICAgIHRoaXMuX2luZXJ0RWxlbWVudHMuZGVsZXRlKGVsZW1lbnQpO1xuICAgICAgdGhpcy5fZXhlbXB0ZWRFbGVtZW50cy5hZGQoZWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEluZXJ0cyBhbiBlbGVtZW50IGN1cnJlbnRseSBleGVtcHRlZCBmcm9tIGluZXJ0LiAqL1xuICBwdWJsaWMgcmVzdG9yZUFsbEV4ZW1wdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuX2V4ZW1wdGVkRWxlbWVudHMuZm9yRWFjaCgoZSkgPT4gdGhpcy5fYWRkSW5lcnRBdHRyaWJ1dGVzKGUpKTtcbiAgICB0aGlzLl9leGVtcHRlZEVsZW1lbnRzLmNsZWFyKCk7XG4gIH1cblxuICBwcml2YXRlIF9jdXJyZW50T3ZlcmxheSgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiBbLi4udGhpcy5faW5lcnRPdmVybGF5c10ucG9wKCkgPz8gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbW92ZUFsbEluZXJ0QXR0cmlidXRlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9pbmVydEVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCA9PlxuICAgICAgdGhpcy5fcmVtb3ZlSW5lcnRBdHRyaWJ1dGVzKGVsZW1lbnQpLFxuICAgICk7XG4gICAgdGhpcy5faW5lcnRFbGVtZW50cy5jbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlSW5lcnRBdHRyaWJ1dGVzKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCdkYXRhLXNiYi1pbmVydCcpKSB7XG4gICAgICBlbGVtZW50LmluZXJ0ID0gZmFsc2U7XG4gICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1zYmItaW5lcnQnKTtcbiAgICB9XG5cbiAgICBpZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2RhdGEtc2JiLWFyaWEtaGlkZGVuJykpIHtcbiAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWhpZGRlbicpO1xuICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtc2JiLWFyaWEtaGlkZGVuJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfYWRkQWxsSW5lcnRBdHRyaWJ1dGVzKCk6IHZvaWQge1xuICAgIGxldCBlbGVtZW50OiBFbGVtZW50IHwgbnVsbCA9IHRoaXMuX2N1cnJlbnRPdmVybGF5KCk7XG5cbiAgICB3aGlsZSAoZWxlbWVudCAhPT0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmIGVsZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIEFycmF5LmZyb20oKGVsZW1lbnQ/LnBhcmVudEVsZW1lbnQgPz8gZWxlbWVudD8uZ2V0Um9vdE5vZGUoKSk/LmNoaWxkTm9kZXMgPz8gW10pXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgKGNoaWxkKTogY2hpbGQgaXMgSFRNTEVsZW1lbnQgPT5cbiAgICAgICAgICAgIGNoaWxkICE9PSBlbGVtZW50ICYmXG4gICAgICAgICAgICBjaGlsZCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MRWxlbWVudCAmJlxuICAgICAgICAgICAgIUlHTk9SRURfRUxFTUVOVFMuaW5jbHVkZXMoY2hpbGQubG9jYWxOYW1lKSAmJlxuICAgICAgICAgICAgIWNoaWxkLmNsYXNzTGlzdC5jb250YWlucygnc2JiLWxpdmUtYW5ub3VuY2VyLWVsZW1lbnQnKSxcbiAgICAgICAgKVxuICAgICAgICAuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2FkZEluZXJ0QXR0cmlidXRlcyhlbGVtZW50KTtcbiAgICAgICAgfSk7XG5cbiAgICAgIC8vIFdlIG5lZWQgdG8gcGllcmNlIHRocm91Z2ggU2hhZG93IERPTSBib3VuZGFyeVxuICAgICAgZWxlbWVudCA9IGVsZW1lbnQ/LnBhcmVudEVsZW1lbnQgPz8gKGVsZW1lbnQ/LmdldFJvb3ROb2RlKCkgYXMgU2hhZG93Um9vdCk/Lmhvc3QgPz8gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9hZGRJbmVydEF0dHJpYnV0ZXMoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9pbmVydEVsZW1lbnRzLmFkZChlbGVtZW50KTtcblxuICAgIGlmICghZWxlbWVudC5pbmVydCkge1xuICAgICAgZWxlbWVudC5pbmVydCA9IHRydWU7XG4gICAgICBlbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1zYmItaW5lcnQnLCB0cnVlKTtcbiAgICB9XG5cbiAgICBpZiAoIWVsZW1lbnQuaGFzQXR0cmlidXRlKCdhcmlhLWhpZGRlbicpKSB7XG4gICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAndHJ1ZScpO1xuICAgICAgZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtc2JiLWFyaWEtaGlkZGVuJywgdHJ1ZSk7XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7QUFJQSxJQUFNLG1CQUFtQjtDQUFDO0NBQVU7Q0FBUTtDQUFZO0FBQU87QUFDL0QsSUFBTSxnQ0FBZ0IsSUFBSSxJQUFHO0FBQzdCLElBQU0sbUNBQW1CLElBQUksSUFBRztBQUNoQyxJQUFNLGdDQUFnQixJQUFJLElBQUc7QUFFN0IsSUFBYSxxQkFBYixNQUErQjtDQUM3QixZQUNVLE9BQ0EsaUJBQWlCLGVBQ2pCLGlCQUFpQixlQUNqQixvQkFBb0Isa0JBQWdCO0VBSHBDLEtBQUEsUUFBQTtFQUNBLEtBQUEsaUJBQUE7RUFDQSxLQUFBLGlCQUFBO0VBQ0EsS0FBQSxvQkFBQTtFQUVSLEtBQUssTUFBTSxnQkFBZ0IsSUFBSTtDQUNqQztDQUVPLGdCQUFhO0VBQ2xCLElBQUksS0FBSyxNQUFNLFFBQ2IsS0FBSyxTQUFRO0NBRWpCO0NBRU8sbUJBQWdCO0VBQ3JCLElBQUksS0FBSyxRQUFPLEdBQ2QsS0FBSyxXQUFVO0NBRW5COztDQUdPLFdBQVE7RUFFYixJQUFJLEtB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
@@ -76,4 +76,4 @@ var SbbLanguageController = class SbbLanguageController {
76
76
  //#endregion
77
77
  export { SbbLanguageController };
78
78
 
79
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2UtY29udHJvbGxlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9jb250cm9sbGVycy9sYW5ndWFnZS1jb250cm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzU2VydmVyLCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHsgcmVhZENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy50cyc7XG5cbi8qKlxuICogVGhlIExhbmd1YWdlQ29udHJvbGxlciBpcyBhIHJlYWN0aXZlIGNvbnRyb2xsZXIgdGhhdCBvYnNlcnZlcyB0aGUgXCJsYW5nXCIgYXR0cmlidXRlXG4gKiBvZiB0aGUgPGh0bWw+IHRhZy5cbiAqIE9uIGNoYW5nZSBvZiB0aGUgXCJsYW5nXCIgYXR0cmlidXRlLCBpdCB3aWxsIHJlcXVlc3QgYW4gdXBkYXRlIG9mIGNvbm5lY3RlZFxuICogY29tcG9uZW50cy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUTUwvR2xvYmFsX2F0dHJpYnV0ZXMvbGFuZ1xuICovXG5leHBvcnQgY2xhc3MgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIGltcGxlbWVudHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgX2RlZmF1bHRMYW5ndWFnZSA9ICdlbic7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9zdXBwb3J0ZWRMb2NhbGVzID0gWydlbicsICdkZScsICdmcicsICdpdCddO1xuXG4gIC8qKiBBIHNldCBvZiBjb25uZWN0ZWQgY29tcG9uZW50cyB0aGF0IHNob3VsZCBiZSBub3RpZmllZCBvbiBsYW5ndWFnZSBjaGFuZ2UuICovXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9saXN0ZW5lcnMgPSBuZXcgU2V0PFNiYkxhbmd1YWdlQ29udHJvbGxlcj4oKTtcblxuICAvKiogTXV0YXRpb25PYnNlcnZlciB0aGF0IG9ic2VydmVzIHRoZSBcImxhbmdcIiBhdHRyaWJ1dGUgb2YgdGhlIDxodG1sPiBlbGVtZW50LiAqL1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBfb2JzZXJ2ZXIgPSAhaXNTZXJ2ZXJcbiAgICA/IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcbiAgICAgICAgaWYgKG11dGF0aW9uc1swXS5vbGRWYWx1ZSAhPT0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgnbGFuZycpKSB7XG4gICAgICAgICAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9saXN0ZW5lcnMuZm9yRWFjaCgobCkgPT4gbC5fY2FsbEhhbmRsZXJzKCkpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIDogbnVsbDtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgX29ic2VydmVyQ29uZmlnID0ge1xuICAgIGF0dHJpYnV0ZUZpbHRlcjogWydsYW5nJ10sXG4gICAgYXR0cmlidXRlT2xkVmFsdWU6IHRydWUsXG4gIH07XG5cbiAgLyoqIEdldCB0aGUgY3VycmVudCBsYW5ndWFnZS4gKi9cbiAgcHVibGljIHN0YXRpYyBnZXQgY3VycmVudCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxhbmd1YWdlID1cbiAgICAgIChyZWFkQ29uZmlnKCkubGFuZ3VhZ2UgPz9cbiAgICAgICAgKGlzU2VydmVyXG4gICAgICAgICAgPyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX2RlZmF1bHRMYW5ndWFnZVxuICAgICAgICAgIDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgnbGFuZycpKSkgfHxcbiAgICAgIFNiYkxhbmd1YWdlQ29udHJvbGxlci5fZGVmYXVsdExhbmd1YWdlO1xuXG4gICAgLy8gU3VwcG9ydCBlLmcuIGNhc2VzIGxpa2UgYGRlLWNoYC5cbiAgICBjb25zdCBsYW5nQXR0cmlidXRlTm9ybWFsaXplZCA9IGxhbmd1YWdlLnNwbGl0KCctJylbMF07XG4gICAgcmV0dXJuIFNiYkxhbmd1YWdlQ29udHJvbGxlci5fc3VwcG9ydGVkTG9jYWxlcy5pbmNsdWRlcyhsYW5nQXR0cmlidXRlTm9ybWFsaXplZClcbiAgICAgID8gbGFuZ0F0dHJpYnV0ZU5vcm1hbGl6ZWRcbiAgICAgIDogU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9kZWZhdWx0TGFuZ3VhZ2U7XG4gIH1cblxuICAvKiogR2V0IHRoZSBjdXJyZW50IGxhbmd1YWdlLiAqL1xuICBwdWJsaWMgZ2V0IGN1cnJlbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU2JiTGFuZ3VhZ2VDb250cm9sbGVyLmN1cnJlbnQ7XG4gIH1cblxuICBwcml2YXRlIF9wcmV2aW91c0xhbmd1YWdlPzogc3RyaW5nO1xuICBwcml2YXRlIF9oYW5kbGVyczogKCgpID0+IHZvaWQpW10gPSBbXTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCkge1xuICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgfVxuXG4gIC8qKiBBZGQgYSBsYW5ndWFnZSBjaGFuZ2UgaGFuZGxlci4gKi9cbiAgcHVibGljIHdpdGhIYW5kbGVyKGhhbmRsZXI6ICgpID0+IHZvaWQpOiB0aGlzIHtcbiAgICAvLyBXZSB1c2UgdW5zaGlmdCBoZXJlLCB0byBwcmVwZW5kIGFkZGl0aW9uYWwgaGFuZGxlcnMuXG4gICAgLy8gVGhpcyBlbnN1cmVzIHRoYXQgcmVxdWVzdFVwZGF0ZSBpcyBjYWxsZWQgYWZ0ZXIgdGhlIG90aGVyIGhhbmRsZXJzLlxuICAgIHRoaXMuX2hhbmRsZXJzLnVuc2hpZnQoaGFuZGxlcik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgaG9zdENvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX2xpc3RlbmVycy5zaXplKSB7XG4gICAgICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX29ic2VydmVyIS5vYnNlcnZlKFxuICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsXG4gICAgICAgIFNiYkxhbmd1YWdlQ29udHJvbGxlci5fb2JzZXJ2ZXJDb25maWcsXG4gICAgICApO1xuICAgIH1cblxuICAgIFNiYkxhbmd1YWdlQ29udHJvbGxlci5fbGlzdGVuZXJzLmFkZCh0aGlzKTtcbiAgICBpZiAodGhpcy5fcHJldmlvdXNMYW5ndWFnZSAhPT0gdGhpcy5jdXJyZW50KSB7XG4gICAgICB0aGlzLl9jYWxsSGFuZGxlcnModGhpcy5fcHJldmlvdXNMYW5ndWFnZSAhPT0gdW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fcHJldmlvdXNMYW5ndWFnZSA9IHRoaXMuY3VycmVudDtcbiAgICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX2xpc3RlbmVycy5kZWxldGUodGhpcyk7XG4gICAgaWYgKCFTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX2xpc3RlbmVycy5zaXplKSB7XG4gICAgICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX29ic2VydmVyIS5kaXNjb25uZWN0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2FsbEhhbmRsZXJzKHJlcXVlc3RVcGRhdGUgPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy5faGFuZGxlcnMuZm9yRWFjaCgoaCkgPT4gaCgpKTtcbiAgICBpZiAocmVxdWVzdFVwZGF0ZSkge1xuICAgICAgdGhpcy5faG9zdC5yZXF1ZXN0VXBkYXRlKCk7XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBWUEsSUFBYSx3QkFBYixNQUFhLHNCQUFxQjs7RUFDUixLQUFBLG1CQUFtQjs7O0VBQ25CLEtBQUEsb0JBQW9CO0dBQUM7R0FBTTtHQUFNO0dBQU07R0FBSzs7OztFQUc1QyxLQUFBLDZCQUFhLElBQUksS0FBNEI7Ozs7RUFHN0MsS0FBQSxZQUFZLENBQUMsV0FDakMsSUFBSSxrQkFBa0IsY0FBYTtHQUNqQyxJQUFJLFVBQVUsR0FBRyxhQUFhLFNBQVMsZ0JBQWdCLGFBQWEsT0FBTyxFQUN6RSxzQkFBc0IsV0FBVyxTQUFTLE1BQU0sRUFBRSxlQUFlLENBQUM7SUFFcEUsR0FDRjs7O0VBQ29CLEtBQUEsa0JBQWtCO0dBQ3hDLGlCQUFpQixDQUFDLE9BQU87R0FDekIsbUJBQW1CO0dBQ3BCOzs7Q0FHTSxXQUFXLFVBQU87RUFTdkIsTUFBTSw0QkFQSCxZQUFZLENBQUMsYUFDWCxXQUNHLHNCQUFzQixtQkFDdEIsU0FBUyxnQkFBZ0IsYUFBYSxPQUFPLE1BQ25ELHNCQUFzQixrQkFHaUIsTUFBTSxJQUFJLENBQUM7RUFDcEQsT0FBTyxzQkFBc0Isa0JBQWtCLFNBQVMsd0JBQXdCLEdBQzVFLDBCQUNBLHNCQUFzQjs7O0NBSTVCLElBQVcsVUFBTztFQUNoQixPQUFPLHNCQUFzQjs7Q0FNL0IsWUFBMkIsT0FBNkI7RUFBN0IsS0FBQSxRQUFBO0VBRm5CLEtBQUEsWUFBNEIsRUFBRTtFQUdwQyxLQUFLLE1BQU0sY0FBYyxLQUFLOzs7Q0FJekIsWUFBWSxTQUFtQjtFQUdwQyxLQUFLLFVBQVUsUUFBUSxRQUFRO0VBQy9CLE9BQU87O0NBR0YsZ0JBQWE7RUFDbEIsSUFBSSxVQUNGO0VBRUYsSUFBSSxDQUFDLHNCQUFzQixXQUFXLE1BQ3BDLHNCQUFzQixVQUFXLFFBQy9CLFNBQVMsaUJBQ1Qsc0JBQXNCLGdCQUN2QjtFQUdILHNCQUFzQixXQUFXLElBQUksS0FBSztFQUMxQyxJQUFJLEtBQUssc0JBQXNCLEtBQUssU0FDbEMsS0FBSyxjQUFjLEtBQUssc0JBQXNCLEtBQUEsRUFBVTs7Q0FJckQsbUJBQWdCO0VBQ3JCLElBQUksVUFDRjtFQUVGLEtBQUssb0JBQW9CLEtBQUs7RUFDOUIsc0JBQXNCLFdBQVcsT0FBTyxLQUFLO0VBQzdDLElBQUksQ0FBQyxzQkFBc0IsV0FBVyxNQUNwQyxzQkFBc0IsVUFBVyxZQUFZOztDQUl6QyxjQUFjLGdCQUFnQixNQUFJO0VBQ3hDLEtBQUssVUFBVSxTQUFTLE1BQU0sR0FBRyxDQUFDO0VBQ2xDLElBQUksZUFDRixLQUFLLE1BQU0sZUFBZSJ9
79
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2UtY29udHJvbGxlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9jb250cm9sbGVycy9sYW5ndWFnZS1jb250cm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzU2VydmVyLCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHsgcmVhZENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy50cyc7XG5cbi8qKlxuICogVGhlIExhbmd1YWdlQ29udHJvbGxlciBpcyBhIHJlYWN0aXZlIGNvbnRyb2xsZXIgdGhhdCBvYnNlcnZlcyB0aGUgXCJsYW5nXCIgYXR0cmlidXRlXG4gKiBvZiB0aGUgPGh0bWw+IHRhZy5cbiAqIE9uIGNoYW5nZSBvZiB0aGUgXCJsYW5nXCIgYXR0cmlidXRlLCBpdCB3aWxsIHJlcXVlc3QgYW4gdXBkYXRlIG9mIGNvbm5lY3RlZFxuICogY29tcG9uZW50cy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUTUwvR2xvYmFsX2F0dHJpYnV0ZXMvbGFuZ1xuICovXG5leHBvcnQgY2xhc3MgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIGltcGxlbWVudHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgX2RlZmF1bHRMYW5ndWFnZSA9ICdlbic7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9zdXBwb3J0ZWRMb2NhbGVzID0gWydlbicsICdkZScsICdmcicsICdpdCddO1xuXG4gIC8qKiBBIHNldCBvZiBjb25uZWN0ZWQgY29tcG9uZW50cyB0aGF0IHNob3VsZCBiZSBub3RpZmllZCBvbiBsYW5ndWFnZSBjaGFuZ2UuICovXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9saXN0ZW5lcnMgPSBuZXcgU2V0PFNiYkxhbmd1YWdlQ29udHJvbGxlcj4oKTtcblxuICAvKiogTXV0YXRpb25PYnNlcnZlciB0aGF0IG9ic2VydmVzIHRoZSBcImxhbmdcIiBhdHRyaWJ1dGUgb2YgdGhlIDxodG1sPiBlbGVtZW50LiAqL1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBfb2JzZXJ2ZXIgPSAhaXNTZXJ2ZXJcbiAgICA/IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcbiAgICAgICAgaWYgKG11dGF0aW9uc1swXS5vbGRWYWx1ZSAhPT0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgnbGFuZycpKSB7XG4gICAgICAgICAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9saXN0ZW5lcnMuZm9yRWFjaCgobCkgPT4gbC5fY2FsbEhhbmRsZXJzKCkpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIDogbnVsbDtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgX29ic2VydmVyQ29uZmlnID0ge1xuICAgIGF0dHJpYnV0ZUZpbHRlcjogWydsYW5nJ10sXG4gICAgYXR0cmlidXRlT2xkVmFsdWU6IHRydWUsXG4gIH07XG5cbiAgLyoqIEdldCB0aGUgY3VycmVudCBsYW5ndWFnZS4gKi9cbiAgcHVibGljIHN0YXRpYyBnZXQgY3VycmVudCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxhbmd1YWdlID1cbiAgICAgIChyZWFkQ29uZmlnKCkubGFuZ3VhZ2UgPz9cbiAgICAgICAgKGlzU2VydmVyXG4gICAgICAgICAgPyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX2RlZmF1bHRMYW5ndWFnZVxuICAgICAgICAgIDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgnbGFuZycpKSkgfHxcbiAgICAgIFNiYkxhbmd1YWdlQ29udHJvbGxlci5fZGVmYXVsdExhbmd1YWdlO1xuXG4gICAgLy8gU3VwcG9ydCBlLmcuIGNhc2VzIGxpa2UgYGRlLWNoYC5cbiAgICBjb25zdCBsYW5nQXR0cmlidXRlTm9ybWFsaXplZCA9IGxhbmd1YWdlLnNwbGl0KCctJylbMF07XG4gICAgcmV0dXJuIFNiYkxhbmd1YWdlQ29udHJvbGxlci5fc3VwcG9ydGVkTG9jYWxlcy5pbmNsdWRlcyhsYW5nQXR0cmlidXRlTm9ybWFsaXplZClcbiAgICAgID8gbGFuZ0F0dHJpYnV0ZU5vcm1hbGl6ZWRcbiAgICAgIDogU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9kZWZhdWx0TGFuZ3VhZ2U7XG4gIH1cblxuICAvKiogR2V0IHRoZSBjdXJyZW50IGxhbmd1YWdlLiAqL1xuICBwdWJsaWMgZ2V0IGN1cnJlbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU2JiTGFuZ3VhZ2VDb250cm9sbGVyLmN1cnJlbnQ7XG4gIH1cblxuICBwcml2YXRlIF9wcmV2aW91c0xhbmd1YWdlPzogc3RyaW5nO1xuICBwcml2YXRlIF9oYW5kbGVyczogKCgpID0+IHZvaWQpW10gPSBbXTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCkge1xuICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgfVxuXG4gIC8qKiBBZGQgYSBsYW5ndWFnZSBjaGFuZ2UgaGFuZGxlci4gKi9cbiAgcHVibGljIHdpdGhIYW5kbGVyKGhhbmRsZXI6ICgpID0+IHZvaWQpOiB0aGlzIHtcbiAgICAvLyBXZSB1c2UgdW5zaGlmdCBoZXJlLCB0byBwcmVwZW5kIGFkZGl0aW9uYWwgaGFuZGxlcnMuXG4gICAgLy8gVGhpcyBlbnN1cmVzIHRoYXQgcmVxdWVzdFVwZGF0ZSBpcyBjYWxsZWQgYWZ0ZXIgdGhlIG90aGVyIGhhbmRsZXJzLlxuICAgIHRoaXMuX2hhbmRsZXJzLnVuc2hpZnQoaGFuZGxlcik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgaG9zdENvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX2xpc3RlbmVycy5zaXplKSB7XG4gICAgICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX29ic2VydmVyIS5vYnNlcnZlKFxuICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsXG4gICAgICAgIFNiYkxhbmd1YWdlQ29udHJvbGxlci5fb2JzZXJ2ZXJDb25maWcsXG4gICAgICApO1xuICAgIH1cblxuICAgIFNiYkxhbmd1YWdlQ29udHJvbGxlci5fbGlzdGVuZXJzLmFkZCh0aGlzKTtcbiAgICBpZiAodGhpcy5fcHJldmlvdXNMYW5ndWFnZSAhPT0gdGhpcy5jdXJyZW50KSB7XG4gICAgICB0aGlzLl9jYWxsSGFuZGxlcnModGhpcy5fcHJldmlvdXNMYW5ndWFnZSAhPT0gdW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fcHJldmlvdXNMYW5ndWFnZSA9IHRoaXMuY3VycmVudDtcbiAgICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX2xpc3RlbmVycy5kZWxldGUodGhpcyk7XG4gICAgaWYgKCFTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX2xpc3RlbmVycy5zaXplKSB7XG4gICAgICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX29ic2VydmVyIS5kaXNjb25uZWN0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2FsbEhhbmRsZXJzKHJlcXVlc3RVcGRhdGUgPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy5faGFuZGxlcnMuZm9yRWFjaCgoaCkgPT4gaCgpKTtcbiAgICBpZiAocmVxdWVzdFVwZGF0ZSkge1xuICAgICAgdGhpcy5faG9zdC5yZXF1ZXN0VXBkYXRlKCk7XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBWUEsSUFBYSx3QkFBYixNQUFhLHNCQUFxQjs7RUFDUixLQUFBLG1CQUFtQjtDQUFLOztFQUN4QixLQUFBLG9CQUFvQjtHQUFDO0dBQU07R0FBTTtHQUFNO0VBQUk7Q0FBRTs7O0VBRzdDLEtBQUEsNkJBQWEsSUFBSSxJQUFHO0NBQTBCOzs7RUFHOUMsS0FBQSxZQUFZLENBQUMsV0FDakMsSUFBSSxrQkFBa0IsY0FBYTtHQUNqQyxJQUFJLFVBQVUsR0FBRyxhQUFhLFNBQVMsZ0JBQWdCLGFBQWEsTUFBTSxHQUN4RSxzQkFBc0IsV0FBVyxTQUFTLE1BQU0sRUFBRSxjQUFhLENBQUU7RUFFckUsQ0FBQyxJQUNEO0NBQUs7O0VBQ2UsS0FBQSxrQkFBa0I7R0FDeEMsaUJBQWlCLENBQUMsTUFBTTtHQUN4QixtQkFBbUI7O0NBQ25COztDQUdLLFdBQVcsVUFBTztFQVN2QixNQUFNLDRCQVBILFdBQVUsRUFBRyxhQUNYLFdBQ0csc0JBQXNCLG1CQUN0QixTQUFTLGdCQUFnQixhQUFhLE1BQU0sT0FDbEQsc0JBQXNCLGtCQUdpQixNQUFNLEdBQUcsRUFBRTtFQUNwRCxPQUFPLHNCQUFzQixrQkFBa0IsU0FBUyx1QkFBdUIsSUFDM0UsMEJBQ0Esc0JBQXNCO0NBQzVCOztDQUdBLElBQVcsVUFBTztFQUNoQixPQUFPLHNCQUFzQjtDQUMvQjtDQUtBLFlBQTJCLE9BQTZCO0VBQTdCLEtBQUEsUUFBQTtFQUZuQixLQUFBLFlBQTRCLENBQUE7RUFHbEMsS0FBSyxNQUFNLGNBQWMsSUFBSTtDQUMvQjs7Q0FHTyxZQUFZLFNBQW1CO0VBR3BDLEtBQUssVUFBVSxRQUFRLE9BQU87RUFDOUIsT0FBTztDQUNUO0NBRU8sZ0JBQWE7RUFDbEIsSUFBSSxVQUNGO0VBRUYsSUFBSSxDQUFDLHNCQUFzQixXQUFXLE1BQ3BDLHNCQUFzQixVQUFXLFFBQy9CLFNBQVMsaUJBQ1Qsc0JBQXNCLGVBQWU7RUFJekMsc0JBQXNCLFdBQVcsSUFBSSxJQUFJO0VBQ3pDLElBQUksS0FBSyxzQkFBc0IsS0FBSyxTQUNsQyxLQUFLLGNBQWMsS0FBSyxzQkFBc0IsS0FBQSxDQUFTO0NBRTNEO0NBRU8sbUJBQWdCO0VBQ3JCLElBQUksVUFDRjtFQUVGLEtBQUssb0JBQW9CLEtBQUs7RUFDOUIsc0JBQXNCLFdBQVcsT0FBTyxJQUFJO0VBQzVDLElBQUksQ0FBQyxzQkFBc0IsV0FBVyxNQUNwQyxzQkFBc0IsVUFBVyxXQUFVO0NBRS9DO0NBRVEsY0FBYyxnQkFBZ0IsTUFBSTtFQUN4QyxLQUFLLFVBQVUsU0FBUyxNQUFNLEVBQUMsQ0FBRTtFQUNqQyxJQUFJLGVBQ0YsS0FBSyxNQUFNLGNBQWE7Q0FFNUIifQ==
@@ -145,4 +145,4 @@ var SbbDarkModeController = class SbbDarkModeController extends SbbMediaMatcherC
145
145
  //#endregion
146
146
  export { SbbDarkModeController, SbbMediaMatcherController, SbbMediaQueryBreakpointLargeAndAbove, SbbMediaQueryBreakpointLargeAndBelow, SbbMediaQueryBreakpointSmallAndAbove, SbbMediaQueryBreakpointSmallAndBelow, SbbMediaQueryBreakpointUltraAndAbove, SbbMediaQueryBreakpointZeroAndAbove, SbbMediaQueryDarkMode, SbbMediaQueryForcedColors, SbbMediaQueryHover, SbbMediaQueryPointerCoarse };
147
147
 
148
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtbWF0Y2hlcnMtY29udHJvbGxlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9jb250cm9sbGVycy9tZWRpYS1tYXRjaGVycy1jb250cm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFNiYkJyZWFrcG9pbnRMYXJnZU1heCxcbiAgU2JiQnJlYWtwb2ludExhcmdlTWluLFxuICBTYmJCcmVha3BvaW50U21hbGxNYXgsXG4gIFNiYkJyZWFrcG9pbnRTbWFsbE1pbixcbiAgU2JiQnJlYWtwb2ludFVsdHJhTWluLFxuICBTYmJCcmVha3BvaW50WmVyb01pbixcbn0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZGVzaWduLXRva2Vucyc7XG5pbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IMm1c3RhdGVDb250cm9sbGVyIH0gZnJvbSAnLi4vbWl4aW5zL2VsZW1lbnQtaW50ZXJuYWxzLW1peGluLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSB9IGZyb20gJy4uL21peGlucy50cyc7XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuZXhwb3J0IGNvbnN0IFNiYk1lZGlhUXVlcnlGb3JjZWRDb2xvcnMgPSAnKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSknO1xuZXhwb3J0IGNvbnN0IFNiYk1lZGlhUXVlcnlEYXJrTW9kZSA9ICcocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspJztcbmV4cG9ydCBjb25zdCBTYmJNZWRpYVF1ZXJ5SG92ZXIgPSAnKGFueS1ob3ZlcjogaG92ZXIpJztcbmV4cG9ydCBjb25zdCBTYmJNZWRpYVF1ZXJ5UG9pbnRlckNvYXJzZSA9ICcocG9pbnRlcjogY29hcnNlKSc7XG5leHBvcnQgY29uc3QgU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRaZXJvQW5kQWJvdmUgPSBgKG1pbi13aWR0aDogJHtTYmJCcmVha3BvaW50WmVyb01pbn0pYDtcbmV4cG9ydCBjb25zdCBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludFNtYWxsQW5kQWJvdmUgPSBgKG1pbi13aWR0aDogJHtTYmJCcmVha3BvaW50U21hbGxNaW59KWA7XG5leHBvcnQgY29uc3QgU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRMYXJnZUFuZEFib3ZlID0gYChtaW4td2lkdGg6ICR7U2JiQnJlYWtwb2ludExhcmdlTWlufSlgO1xuZXhwb3J0IGNvbnN0IFNiYk1lZGlhUXVlcnlCcmVha3BvaW50VWx0cmFBbmRBYm92ZSA9IGAobWluLXdpZHRoOiAke1NiYkJyZWFrcG9pbnRVbHRyYU1pbn0pYDtcbmV4cG9ydCBjb25zdCBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludFNtYWxsQW5kQmVsb3cgPSBgKG1heC13aWR0aDogJHtTYmJCcmVha3BvaW50U21hbGxNYXh9KWA7XG5leHBvcnQgY29uc3QgU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRMYXJnZUFuZEJlbG93ID0gYChtYXgtd2lkdGg6ICR7U2JiQnJlYWtwb2ludExhcmdlTWF4fSlgO1xuLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cblxuLyoqXG4gKiBBIGNhbGxiYWNrLCB3aGljaCBpcyBpbnZva2VkIHdoZW4gdGhlIGFzc29jaWF0ZWQgbWVkaWEgcXVlcnkgbWF0Y2hcbiAqIHN0YXR1cyBjaGFuZ2VzLlxuICovXG5leHBvcnQgdHlwZSBTYmJNZWRpYU1hdGNoZXJIYW5kbGVyID0gKG1hdGNoZXM6IGJvb2xlYW4pID0+IHZvaWQ7XG5cbmludGVyZmFjZSBNZWRpYVF1ZXJ5RW50cnkge1xuICBtZWRpYVF1ZXJ5TGlzdDogTWVkaWFRdWVyeUxpc3Q7XG4gIGV2ZW50SGFuZGxlcjogKGV2ZW50OiBNZWRpYVF1ZXJ5TGlzdEV2ZW50KSA9PiB2b2lkO1xuICBoYW5kbGVyczogU2V0PFNiYk1lZGlhTWF0Y2hlckhhbmRsZXI+O1xufVxuXG4vKipcbiAqIFdlIHdhbnQgdG8gY2FjaGUgTWVkaWFRdWVyeUxpc3QgaW5zdGFuY2VzIGFuZCBjb3JyZXNwb25kaW5nXG4gKiBldmVudCBoYW5kbGVycywgYXMgYSBtdWx0aXR1ZGUgb2YgZXZlbnQgaGFuZGxlcnMgb24gZ2xvYmFsIG9iamVjdHNcbiAqIGNhbiBkZWdyYWRlIHBlcmZvcm1hbmNlIHdpdGggdGltZS5cbiAqL1xuY29uc3QgbWVkaWFRdWVyeVJlZ2lzdHJ5ID0gbmV3IE1hcDxzdHJpbmcsIE1lZGlhUXVlcnlFbnRyeT4oKTtcblxuLyoqXG4gKiBUaGlzIGNvbnRyb2xsZXIgYWxsb3dzIGxpc3RlbmluZyB0byBtZWRpYSBxdWVyeSBjaGFuZ2VzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBuZXcgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcih0aGlzLCB7XG4gKiAgIFtTYmJGb3JjZWRDb2xvcnNRdWVyeV06IChtYXRjaGVzKSA9PiBkb1NvbWV0aGluZyhtYXRjaGVzKSxcbiAqIH0pXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJNZWRpYU1hdGNoZXJDb250cm9sbGVyIGltcGxlbWVudHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIGhvc3Q6IFJlYWN0aXZlQ29udHJvbGxlckhvc3QsXG4gICAgcHJpdmF0ZSBfcXVlcmllczogUmVjb3JkPHN0cmluZywgU2JiTWVkaWFNYXRjaGVySGFuZGxlcj4sXG4gICkge1xuICAgIGhvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGdpdmVuIHF1ZXJ5IG1hdGNoZXMuIFJldHVybnMgbnVsbCB3aXRoIFNTUi5cbiAgICogQHBhcmFtIHF1ZXJ5IFRoZSBxdWVyeSB0byBjaGVjayBhZ2FpbnN0LlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBxdWVyeSBtYXRjaGVzIG9yIG51bGwgd2l0aCBTU1IuXG4gICAqL1xuICBwdWJsaWMgbWF0Y2hlcyhxdWVyeTogc3RyaW5nKTogYm9vbGVhbiB8IG51bGwge1xuICAgIC8vIElmIHdlIHVzZSB0aGUgY2FjaGVkIGluc3RhbmNlLCBXZWJraXQgc2VlbXMgdG8gdXBkYXRlIHRoZSBzdGF0ZSBhIHRpY2sgdG9vIGxhdGUuXG4gICAgLy8gRHVlIHRvIHRoaXMgd2UgZGlyZWN0bHkgdXNlIG1hdGNoTWVkaWEgaGVyZS5cbiAgICByZXR1cm4gaXNTZXJ2ZXIgPyBudWxsIDogbWF0Y2hNZWRpYShxdWVyeSkubWF0Y2hlcztcbiAgfVxuXG4gIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW3F1ZXJ5LCBoYW5kbGVyXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLl9xdWVyaWVzKSkge1xuICAgICAgY29uc3QgbWVkaWFRdWVyeSA9IG1lZGlhUXVlcnlSZWdpc3RyeS5nZXQocXVlcnkpO1xuICAgICAgaWYgKG1lZGlhUXVlcnkpIHtcbiAgICAgICAgbWVkaWFRdWVyeS5oYW5kbGVycy5hZGQoaGFuZGxlcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBtZWRpYVF1ZXJ5TGlzdCA9IG1hdGNoTWVkaWEocXVlcnkpO1xuICAgICAgICBjb25zdCBoYW5kbGVycyA9IG5ldyBTZXQoW2hhbmRsZXJdKTtcbiAgICAgICAgY29uc3QgZXZlbnRIYW5kbGVyID0gKGU6IE1lZGlhUXVlcnlMaXN0RXZlbnQpOiB2b2lkID0+XG4gICAgICAgICAgaGFuZGxlcnMuZm9yRWFjaCgoaCkgPT4gaChlLm1hdGNoZXMpKTtcbiAgICAgICAgbWVkaWFRdWVyeUxpc3QuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZXZlbnRIYW5kbGVyKTtcbiAgICAgICAgbWVkaWFRdWVyeVJlZ2lzdHJ5LnNldChxdWVyeSwgeyBtZWRpYVF1ZXJ5TGlzdCwgaGFuZGxlcnMsIGV2ZW50SGFuZGxlciB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IFtxdWVyeSwgaGFuZGxlcl0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5fcXVlcmllcykpIHtcbiAgICAgIGNvbnN0IG1lZGlhUXVlcnkgPSBtZWRpYVF1ZXJ5UmVnaXN0cnkuZ2V0KHF1ZXJ5KTtcbiAgICAgIGlmIChtZWRpYVF1ZXJ5KSB7XG4gICAgICAgIG1lZGlhUXVlcnkuaGFuZGxlcnMuZGVsZXRlKGhhbmRsZXIpO1xuICAgICAgICBpZiAoIW1lZGlhUXVlcnkuaGFuZGxlcnMuc2l6ZSkge1xuICAgICAgICAgIG1lZGlhUXVlcnlSZWdpc3RyeS5kZWxldGUocXVlcnkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIHRoZSBTYmJNZWRpYU1hdGNoZXJDb250cm9sbGVyLCB3aGljaFxuICogdGFrZXMgdGhlIGNvbG9yLXNjaGVtZSBDU1MgcHJvcGVydHkgaW50byBhY2NvdW50IHdoZW4gZGV0ZXJtaW5pbmdcbiAqIHRoZSBkYXJrIG1vZGUgc3RhdGUgYW5kIHVwZGF0ZXMgYSA6c3RhdGUoZGFyaykgb24gdGhlIGhvc3QuXG4gKlxuICogQGV4YW1wbGVcbiAqIG5ldyBTYmJEYXJrTW9kZUNvbnRyb2xsZXIodGhpcywgKGlzRGFya01vZGUpID0+IGRvU29tZXRoaW5nKGlzRGFya01vZGUpKTtcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYkRhcmtNb2RlQ29udHJvbGxlciBleHRlbmRzIFNiYk1lZGlhTWF0Y2hlckNvbnRyb2xsZXIge1xuICAvKiogVGhlIGN1cnJlbnQgbW9kZSBiYXNlZCBvbiB0aGUgY2xhc3MgYXR0cmlidXRlIG9mIHRoZSA8aHRtbD4gZWxlbWVudC4gKi9cbiAgcHJpdmF0ZSBzdGF0aWMgX2N1cnJlbnRNb2RlOiAnc2JiLWxpZ2h0LWRhcmsnIHwgJ3NiYi1saWdodCcgfCAnc2JiLWRhcmsnIHwgbnVsbCA9XG4gICAgdGhpcy5fcmVhZExpZ2h0RGFya0NsYXNzKCk7XG5cbiAgLyoqIE11dGF0aW9uT2JzZXJ2ZXIgdGhhdCBvYnNlcnZlcyB0aGUgXCJjbGFzc1wiIGF0dHJpYnV0ZSBvZiB0aGUgPGh0bWw+IGVsZW1lbnQuICovXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9vYnNlcnZlciA9ICFpc1NlcnZlclxuICAgID8gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuICAgICAgICBpZiAobXV0YXRpb25zWzBdLm9sZFZhbHVlICE9PSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCdjbGFzcycpKSB7XG4gICAgICAgICAgY29uc3QgbmV3TW9kZSA9IHRoaXMuX3JlYWRMaWdodERhcmtDbGFzcygpO1xuICAgICAgICAgIGlmICh0aGlzLl9jdXJyZW50TW9kZSAhPT0gbmV3TW9kZSkge1xuICAgICAgICAgICAgU2JiRGFya01vZGVDb250cm9sbGVyLnJlcXVlc3RVcGRhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRNb2RlID0gbmV3TW9kZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgOiBudWxsO1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9vYnNlcnZlckNvbmZpZyA9IHtcbiAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnY2xhc3MnXSxcbiAgICBhdHRyaWJ1dGVPbGRWYWx1ZTogdHJ1ZSxcbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9vbkNoYW5nZVdpdGhTdGF0ZVVwZGF0ZXI6ICgpID0+IHZvaWQ7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2hvc3Q6IFJlYWN0aXZlQ29udHJvbGxlckhvc3QgJiBIVE1MRWxlbWVudCAmIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGUsXG4gICAgb25DaGFuZ2U6IFNiYk1lZGlhTWF0Y2hlckhhbmRsZXIsXG4gICkge1xuICAgIGNvbnN0IG9uQ2hhbmdlV2l0aFN0YXRlVXBkYXRlcjogKCkgPT4gdm9pZCA9ICgpID0+IHtcbiAgICAgIG9uQ2hhbmdlKHRoaXMubWF0Y2hlcygpKTtcbiAgICAgIMm1c3RhdGVDb250cm9sbGVyKHRoaXMuX2hvc3QpLnRvZ2dsZSgnZGFyaycsIHRoaXMubWF0Y2hlcygpKTtcbiAgICB9O1xuICAgIHN1cGVyKF9ob3N0LCB7XG4gICAgICBbU2JiTWVkaWFRdWVyeURhcmtNb2RlXTogb25DaGFuZ2VXaXRoU3RhdGVVcGRhdGVyLFxuICAgIH0pO1xuICAgIHRoaXMuX29uQ2hhbmdlV2l0aFN0YXRlVXBkYXRlciA9IG9uQ2hhbmdlV2l0aFN0YXRlVXBkYXRlcjtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9yZWFkTGlnaHREYXJrQ2xhc3MoKTogJ3NiYi1saWdodC1kYXJrJyB8ICdzYmItbGlnaHQnIHwgJ3NiYi1kYXJrJyB8IG51bGwge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IGNsYXNzTGlzdCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3Q7XG4gICAgcmV0dXJuIChcbiAgICAgIChbJ3NiYi1saWdodC1kYXJrJywgJ3NiYi1kYXJrJywgJ3NiYi1saWdodCddIGFzIGNvbnN0KS5maW5kKChtb2RlKSA9PlxuICAgICAgICBjbGFzc0xpc3QuY29udGFpbnMobW9kZSksXG4gICAgICApID8/IG51bGxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcXVlc3RzIGFuIHVwZGF0ZSBvZiB0aGUgZGFyayBtb2RlIHN0YXRlLiBUaGlzIGlzIG5lZWRlZCB3aGVuIHRoZSBjb2xvci1zY2hlbWVcbiAgICogQ1NTIHByb3BlcnR5IGNoYW5nZXMsIGFzIHRoZSBtZWRpYSBxdWVyeSBkb2VzIG5vdCBwaWNrIHRoaXMgdXAgYXV0b21hdGljYWxseS5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBseW5lL25lZWRzLXN1cGVyLWNhbGwtcnVsZVxuICBwdWJsaWMgc3RhdGljIHJlcXVlc3RVcGRhdGUoKTogdm9pZCB7XG4gICAgY29uc3QgZW50cnkgPSBtZWRpYVF1ZXJ5UmVnaXN0cnkuZ2V0KFNiYk1lZGlhUXVlcnlEYXJrTW9kZSk7XG4gICAgaWYgKGVudHJ5KSB7XG4gICAgICBlbnRyeS5oYW5kbGVycy5mb3JFYWNoKChoKSA9PiBoKGVudHJ5Lm1lZGlhUXVlcnlMaXN0Lm1hdGNoZXMpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgaG9zdENvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBjb25zdCBpc0ZpcnN0TGlzdGVuZXIgPVxuICAgICAgKG1lZGlhUXVlcnlSZWdpc3RyeS5nZXQoU2JiTWVkaWFRdWVyeURhcmtNb2RlKT8uaGFuZGxlcnMuc2l6ZSA/PyAwKSA9PT0gMDtcbiAgICBzdXBlci5ob3N0Q29ubmVjdGVkKCk7XG5cbiAgICBpZiAoaXNGaXJzdExpc3RlbmVyKSB7XG4gICAgICBTYmJEYXJrTW9kZUNvbnRyb2xsZXIuX29ic2VydmVyIS5vYnNlcnZlKFxuICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsXG4gICAgICAgIFNiYkRhcmtNb2RlQ29udHJvbGxlci5fb2JzZXJ2ZXJDb25maWcsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuX29uQ2hhbmdlV2l0aFN0YXRlVXBkYXRlcigpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGhvc3REaXNjb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgc3VwZXIuaG9zdERpc2Nvbm5lY3RlZCgpO1xuXG4gICAgaWYgKChtZWRpYVF1ZXJ5UmVnaXN0cnkuZ2V0KFNiYk1lZGlhUXVlcnlEYXJrTW9kZSk/LmhhbmRsZXJzLnNpemUgPz8gMCkgPT09IDApIHtcbiAgICAgIFNiYkRhcmtNb2RlQ29udHJvbGxlci5fb2JzZXJ2ZXIhLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgbWF0Y2hlcygpOiBib29sZWFuIHtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgY29sb3JTY2hlbWUgPSBnZXRDb21wdXRlZFN0eWxlKHRoaXMuX2hvc3QpLmdldFByb3BlcnR5VmFsdWUoJ2NvbG9yLXNjaGVtZScpO1xuICAgIGNvbnN0IGRhcmtBdmFpbGFibGUgPSBjb2xvclNjaGVtZS5pbmNsdWRlcygnZGFyaycpO1xuICAgIGNvbnN0IGRhcmtPbmx5ID0gY29sb3JTY2hlbWUudHJpbSgpID09PSAnZGFyayc7XG4gICAgY29uc3QgcHJlZmVycmVkRGFya01vZGUgPSBzdXBlci5tYXRjaGVzKFNiYk1lZGlhUXVlcnlEYXJrTW9kZSkgYXMgYm9vbGVhbjtcblxuICAgIHJldHVybiAocHJlZmVycmVkRGFya01vZGUgJiYgZGFya0F2YWlsYWJsZSkgfHwgZGFya09ubHk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQWNBLElBQWEsNEJBQTRCO0FBQ3pDLElBQWEsd0JBQXdCO0FBQ3JDLElBQWEscUJBQXFCO0FBQ2xDLElBQWEsNkJBQTZCO0FBQzFDLElBQWEsc0NBQXNDLGVBQWUscUJBQW9CO0FBQ3RGLElBQWEsdUNBQXVDLGVBQWUsc0JBQXFCO0FBQ3hGLElBQWEsdUNBQXVDLGVBQWUsc0JBQXFCO0FBQ3hGLElBQWEsdUNBQXVDLGVBQWUsc0JBQXFCO0FBQ3hGLElBQWEsdUNBQXVDLGVBQWUsc0JBQXFCO0FBQ3hGLElBQWEsdUNBQXVDLGVBQWUsc0JBQXFCOzs7Ozs7QUFvQnhGLElBQU0scUNBQXFCLElBQUksS0FBOEI7Ozs7Ozs7OztBQVU3RCxJQUFhLDRCQUFiLE1BQXNDO0NBQ3BDLFlBQ0UsTUFDUSxVQUFnRDtFQUFoRCxLQUFBLFdBQUE7RUFFUixLQUFLLGNBQWMsS0FBSzs7Ozs7OztD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
148
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtbWF0Y2hlcnMtY29udHJvbGxlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9jb250cm9sbGVycy9tZWRpYS1tYXRjaGVycy1jb250cm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFNiYkJyZWFrcG9pbnRMYXJnZU1heCxcbiAgU2JiQnJlYWtwb2ludExhcmdlTWluLFxuICBTYmJCcmVha3BvaW50U21hbGxNYXgsXG4gIFNiYkJyZWFrcG9pbnRTbWFsbE1pbixcbiAgU2JiQnJlYWtwb2ludFVsdHJhTWluLFxuICBTYmJCcmVha3BvaW50WmVyb01pbixcbn0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZGVzaWduLXRva2Vucyc7XG5pbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IMm1c3RhdGVDb250cm9sbGVyIH0gZnJvbSAnLi4vbWl4aW5zL2VsZW1lbnQtaW50ZXJuYWxzLW1peGluLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSB9IGZyb20gJy4uL21peGlucy50cyc7XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuZXhwb3J0IGNvbnN0IFNiYk1lZGlhUXVlcnlGb3JjZWRDb2xvcnMgPSAnKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSknO1xuZXhwb3J0IGNvbnN0IFNiYk1lZGlhUXVlcnlEYXJrTW9kZSA9ICcocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspJztcbmV4cG9ydCBjb25zdCBTYmJNZWRpYVF1ZXJ5SG92ZXIgPSAnKGFueS1ob3ZlcjogaG92ZXIpJztcbmV4cG9ydCBjb25zdCBTYmJNZWRpYVF1ZXJ5UG9pbnRlckNvYXJzZSA9ICcocG9pbnRlcjogY29hcnNlKSc7XG5leHBvcnQgY29uc3QgU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRaZXJvQW5kQWJvdmUgPSBgKG1pbi13aWR0aDogJHtTYmJCcmVha3BvaW50WmVyb01pbn0pYDtcbmV4cG9ydCBjb25zdCBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludFNtYWxsQW5kQWJvdmUgPSBgKG1pbi13aWR0aDogJHtTYmJCcmVha3BvaW50U21hbGxNaW59KWA7XG5leHBvcnQgY29uc3QgU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRMYXJnZUFuZEFib3ZlID0gYChtaW4td2lkdGg6ICR7U2JiQnJlYWtwb2ludExhcmdlTWlufSlgO1xuZXhwb3J0IGNvbnN0IFNiYk1lZGlhUXVlcnlCcmVha3BvaW50VWx0cmFBbmRBYm92ZSA9IGAobWluLXdpZHRoOiAke1NiYkJyZWFrcG9pbnRVbHRyYU1pbn0pYDtcbmV4cG9ydCBjb25zdCBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludFNtYWxsQW5kQmVsb3cgPSBgKG1heC13aWR0aDogJHtTYmJCcmVha3BvaW50U21hbGxNYXh9KWA7XG5leHBvcnQgY29uc3QgU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRMYXJnZUFuZEJlbG93ID0gYChtYXgtd2lkdGg6ICR7U2JiQnJlYWtwb2ludExhcmdlTWF4fSlgO1xuLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cblxuLyoqXG4gKiBBIGNhbGxiYWNrLCB3aGljaCBpcyBpbnZva2VkIHdoZW4gdGhlIGFzc29jaWF0ZWQgbWVkaWEgcXVlcnkgbWF0Y2hcbiAqIHN0YXR1cyBjaGFuZ2VzLlxuICovXG5leHBvcnQgdHlwZSBTYmJNZWRpYU1hdGNoZXJIYW5kbGVyID0gKG1hdGNoZXM6IGJvb2xlYW4pID0+IHZvaWQ7XG5cbmludGVyZmFjZSBNZWRpYVF1ZXJ5RW50cnkge1xuICBtZWRpYVF1ZXJ5TGlzdDogTWVkaWFRdWVyeUxpc3Q7XG4gIGV2ZW50SGFuZGxlcjogKGV2ZW50OiBNZWRpYVF1ZXJ5TGlzdEV2ZW50KSA9PiB2b2lkO1xuICBoYW5kbGVyczogU2V0PFNiYk1lZGlhTWF0Y2hlckhhbmRsZXI+O1xufVxuXG4vKipcbiAqIFdlIHdhbnQgdG8gY2FjaGUgTWVkaWFRdWVyeUxpc3QgaW5zdGFuY2VzIGFuZCBjb3JyZXNwb25kaW5nXG4gKiBldmVudCBoYW5kbGVycywgYXMgYSBtdWx0aXR1ZGUgb2YgZXZlbnQgaGFuZGxlcnMgb24gZ2xvYmFsIG9iamVjdHNcbiAqIGNhbiBkZWdyYWRlIHBlcmZvcm1hbmNlIHdpdGggdGltZS5cbiAqL1xuY29uc3QgbWVkaWFRdWVyeVJlZ2lzdHJ5ID0gbmV3IE1hcDxzdHJpbmcsIE1lZGlhUXVlcnlFbnRyeT4oKTtcblxuLyoqXG4gKiBUaGlzIGNvbnRyb2xsZXIgYWxsb3dzIGxpc3RlbmluZyB0byBtZWRpYSBxdWVyeSBjaGFuZ2VzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBuZXcgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcih0aGlzLCB7XG4gKiAgIFtTYmJGb3JjZWRDb2xvcnNRdWVyeV06IChtYXRjaGVzKSA9PiBkb1NvbWV0aGluZyhtYXRjaGVzKSxcbiAqIH0pXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJNZWRpYU1hdGNoZXJDb250cm9sbGVyIGltcGxlbWVudHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIGhvc3Q6IFJlYWN0aXZlQ29udHJvbGxlckhvc3QsXG4gICAgcHJpdmF0ZSBfcXVlcmllczogUmVjb3JkPHN0cmluZywgU2JiTWVkaWFNYXRjaGVySGFuZGxlcj4sXG4gICkge1xuICAgIGhvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGdpdmVuIHF1ZXJ5IG1hdGNoZXMuIFJldHVybnMgbnVsbCB3aXRoIFNTUi5cbiAgICogQHBhcmFtIHF1ZXJ5IFRoZSBxdWVyeSB0byBjaGVjayBhZ2FpbnN0LlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBxdWVyeSBtYXRjaGVzIG9yIG51bGwgd2l0aCBTU1IuXG4gICAqL1xuICBwdWJsaWMgbWF0Y2hlcyhxdWVyeTogc3RyaW5nKTogYm9vbGVhbiB8IG51bGwge1xuICAgIC8vIElmIHdlIHVzZSB0aGUgY2FjaGVkIGluc3RhbmNlLCBXZWJraXQgc2VlbXMgdG8gdXBkYXRlIHRoZSBzdGF0ZSBhIHRpY2sgdG9vIGxhdGUuXG4gICAgLy8gRHVlIHRvIHRoaXMgd2UgZGlyZWN0bHkgdXNlIG1hdGNoTWVkaWEgaGVyZS5cbiAgICByZXR1cm4gaXNTZXJ2ZXIgPyBudWxsIDogbWF0Y2hNZWRpYShxdWVyeSkubWF0Y2hlcztcbiAgfVxuXG4gIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW3F1ZXJ5LCBoYW5kbGVyXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLl9xdWVyaWVzKSkge1xuICAgICAgY29uc3QgbWVkaWFRdWVyeSA9IG1lZGlhUXVlcnlSZWdpc3RyeS5nZXQocXVlcnkpO1xuICAgICAgaWYgKG1lZGlhUXVlcnkpIHtcbiAgICAgICAgbWVkaWFRdWVyeS5oYW5kbGVycy5hZGQoaGFuZGxlcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBtZWRpYVF1ZXJ5TGlzdCA9IG1hdGNoTWVkaWEocXVlcnkpO1xuICAgICAgICBjb25zdCBoYW5kbGVycyA9IG5ldyBTZXQoW2hhbmRsZXJdKTtcbiAgICAgICAgY29uc3QgZXZlbnRIYW5kbGVyID0gKGU6IE1lZGlhUXVlcnlMaXN0RXZlbnQpOiB2b2lkID0+XG4gICAgICAgICAgaGFuZGxlcnMuZm9yRWFjaCgoaCkgPT4gaChlLm1hdGNoZXMpKTtcbiAgICAgICAgbWVkaWFRdWVyeUxpc3QuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZXZlbnRIYW5kbGVyKTtcbiAgICAgICAgbWVkaWFRdWVyeVJlZ2lzdHJ5LnNldChxdWVyeSwgeyBtZWRpYVF1ZXJ5TGlzdCwgaGFuZGxlcnMsIGV2ZW50SGFuZGxlciB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IFtxdWVyeSwgaGFuZGxlcl0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5fcXVlcmllcykpIHtcbiAgICAgIGNvbnN0IG1lZGlhUXVlcnkgPSBtZWRpYVF1ZXJ5UmVnaXN0cnkuZ2V0KHF1ZXJ5KTtcbiAgICAgIGlmIChtZWRpYVF1ZXJ5KSB7XG4gICAgICAgIG1lZGlhUXVlcnkuaGFuZGxlcnMuZGVsZXRlKGhhbmRsZXIpO1xuICAgICAgICBpZiAoIW1lZGlhUXVlcnkuaGFuZGxlcnMuc2l6ZSkge1xuICAgICAgICAgIG1lZGlhUXVlcnlSZWdpc3RyeS5kZWxldGUocXVlcnkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIHRoZSBTYmJNZWRpYU1hdGNoZXJDb250cm9sbGVyLCB3aGljaFxuICogdGFrZXMgdGhlIGNvbG9yLXNjaGVtZSBDU1MgcHJvcGVydHkgaW50byBhY2NvdW50IHdoZW4gZGV0ZXJtaW5pbmdcbiAqIHRoZSBkYXJrIG1vZGUgc3RhdGUgYW5kIHVwZGF0ZXMgYSA6c3RhdGUoZGFyaykgb24gdGhlIGhvc3QuXG4gKlxuICogQGV4YW1wbGVcbiAqIG5ldyBTYmJEYXJrTW9kZUNvbnRyb2xsZXIodGhpcywgKGlzRGFya01vZGUpID0+IGRvU29tZXRoaW5nKGlzRGFya01vZGUpKTtcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYkRhcmtNb2RlQ29udHJvbGxlciBleHRlbmRzIFNiYk1lZGlhTWF0Y2hlckNvbnRyb2xsZXIge1xuICAvKiogVGhlIGN1cnJlbnQgbW9kZSBiYXNlZCBvbiB0aGUgY2xhc3MgYXR0cmlidXRlIG9mIHRoZSA8aHRtbD4gZWxlbWVudC4gKi9cbiAgcHJpdmF0ZSBzdGF0aWMgX2N1cnJlbnRNb2RlOiAnc2JiLWxpZ2h0LWRhcmsnIHwgJ3NiYi1saWdodCcgfCAnc2JiLWRhcmsnIHwgbnVsbCA9XG4gICAgdGhpcy5fcmVhZExpZ2h0RGFya0NsYXNzKCk7XG5cbiAgLyoqIE11dGF0aW9uT2JzZXJ2ZXIgdGhhdCBvYnNlcnZlcyB0aGUgXCJjbGFzc1wiIGF0dHJpYnV0ZSBvZiB0aGUgPGh0bWw+IGVsZW1lbnQuICovXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9vYnNlcnZlciA9ICFpc1NlcnZlclxuICAgID8gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuICAgICAgICBpZiAobXV0YXRpb25zWzBdLm9sZFZhbHVlICE9PSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCdjbGFzcycpKSB7XG4gICAgICAgICAgY29uc3QgbmV3TW9kZSA9IHRoaXMuX3JlYWRMaWdodERhcmtDbGFzcygpO1xuICAgICAgICAgIGlmICh0aGlzLl9jdXJyZW50TW9kZSAhPT0gbmV3TW9kZSkge1xuICAgICAgICAgICAgU2JiRGFya01vZGVDb250cm9sbGVyLnJlcXVlc3RVcGRhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRNb2RlID0gbmV3TW9kZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgOiBudWxsO1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9vYnNlcnZlckNvbmZpZyA9IHtcbiAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnY2xhc3MnXSxcbiAgICBhdHRyaWJ1dGVPbGRWYWx1ZTogdHJ1ZSxcbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9vbkNoYW5nZVdpdGhTdGF0ZVVwZGF0ZXI6ICgpID0+IHZvaWQ7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2hvc3Q6IFJlYWN0aXZlQ29udHJvbGxlckhvc3QgJiBIVE1MRWxlbWVudCAmIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGUsXG4gICAgb25DaGFuZ2U6IFNiYk1lZGlhTWF0Y2hlckhhbmRsZXIsXG4gICkge1xuICAgIGNvbnN0IG9uQ2hhbmdlV2l0aFN0YXRlVXBkYXRlcjogKCkgPT4gdm9pZCA9ICgpID0+IHtcbiAgICAgIG9uQ2hhbmdlKHRoaXMubWF0Y2hlcygpKTtcbiAgICAgIMm1c3RhdGVDb250cm9sbGVyKHRoaXMuX2hvc3QpLnRvZ2dsZSgnZGFyaycsIHRoaXMubWF0Y2hlcygpKTtcbiAgICB9O1xuICAgIHN1cGVyKF9ob3N0LCB7XG4gICAgICBbU2JiTWVkaWFRdWVyeURhcmtNb2RlXTogb25DaGFuZ2VXaXRoU3RhdGVVcGRhdGVyLFxuICAgIH0pO1xuICAgIHRoaXMuX29uQ2hhbmdlV2l0aFN0YXRlVXBkYXRlciA9IG9uQ2hhbmdlV2l0aFN0YXRlVXBkYXRlcjtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9yZWFkTGlnaHREYXJrQ2xhc3MoKTogJ3NiYi1saWdodC1kYXJrJyB8ICdzYmItbGlnaHQnIHwgJ3NiYi1kYXJrJyB8IG51bGwge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IGNsYXNzTGlzdCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3Q7XG4gICAgcmV0dXJuIChcbiAgICAgIChbJ3NiYi1saWdodC1kYXJrJywgJ3NiYi1kYXJrJywgJ3NiYi1saWdodCddIGFzIGNvbnN0KS5maW5kKChtb2RlKSA9PlxuICAgICAgICBjbGFzc0xpc3QuY29udGFpbnMobW9kZSksXG4gICAgICApID8/IG51bGxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcXVlc3RzIGFuIHVwZGF0ZSBvZiB0aGUgZGFyayBtb2RlIHN0YXRlLiBUaGlzIGlzIG5lZWRlZCB3aGVuIHRoZSBjb2xvci1zY2hlbWVcbiAgICogQ1NTIHByb3BlcnR5IGNoYW5nZXMsIGFzIHRoZSBtZWRpYSBxdWVyeSBkb2VzIG5vdCBwaWNrIHRoaXMgdXAgYXV0b21hdGljYWxseS5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBseW5lL25lZWRzLXN1cGVyLWNhbGwtcnVsZVxuICBwdWJsaWMgc3RhdGljIHJlcXVlc3RVcGRhdGUoKTogdm9pZCB7XG4gICAgY29uc3QgZW50cnkgPSBtZWRpYVF1ZXJ5UmVnaXN0cnkuZ2V0KFNiYk1lZGlhUXVlcnlEYXJrTW9kZSk7XG4gICAgaWYgKGVudHJ5KSB7XG4gICAgICBlbnRyeS5oYW5kbGVycy5mb3JFYWNoKChoKSA9PiBoKGVudHJ5Lm1lZGlhUXVlcnlMaXN0Lm1hdGNoZXMpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgaG9zdENvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBjb25zdCBpc0ZpcnN0TGlzdGVuZXIgPVxuICAgICAgKG1lZGlhUXVlcnlSZWdpc3RyeS5nZXQoU2JiTWVkaWFRdWVyeURhcmtNb2RlKT8uaGFuZGxlcnMuc2l6ZSA/PyAwKSA9PT0gMDtcbiAgICBzdXBlci5ob3N0Q29ubmVjdGVkKCk7XG5cbiAgICBpZiAoaXNGaXJzdExpc3RlbmVyKSB7XG4gICAgICBTYmJEYXJrTW9kZUNvbnRyb2xsZXIuX29ic2VydmVyIS5vYnNlcnZlKFxuICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsXG4gICAgICAgIFNiYkRhcmtNb2RlQ29udHJvbGxlci5fb2JzZXJ2ZXJDb25maWcsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuX29uQ2hhbmdlV2l0aFN0YXRlVXBkYXRlcigpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGhvc3REaXNjb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgc3VwZXIuaG9zdERpc2Nvbm5lY3RlZCgpO1xuXG4gICAgaWYgKChtZWRpYVF1ZXJ5UmVnaXN0cnkuZ2V0KFNiYk1lZGlhUXVlcnlEYXJrTW9kZSk/LmhhbmRsZXJzLnNpemUgPz8gMCkgPT09IDApIHtcbiAgICAgIFNiYkRhcmtNb2RlQ29udHJvbGxlci5fb2JzZXJ2ZXIhLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgbWF0Y2hlcygpOiBib29sZWFuIHtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgY29sb3JTY2hlbWUgPSBnZXRDb21wdXRlZFN0eWxlKHRoaXMuX2hvc3QpLmdldFByb3BlcnR5VmFsdWUoJ2NvbG9yLXNjaGVtZScpO1xuICAgIGNvbnN0IGRhcmtBdmFpbGFibGUgPSBjb2xvclNjaGVtZS5pbmNsdWRlcygnZGFyaycpO1xuICAgIGNvbnN0IGRhcmtPbmx5ID0gY29sb3JTY2hlbWUudHJpbSgpID09PSAnZGFyayc7XG4gICAgY29uc3QgcHJlZmVycmVkRGFya01vZGUgPSBzdXBlci5tYXRjaGVzKFNiYk1lZGlhUXVlcnlEYXJrTW9kZSkgYXMgYm9vbGVhbjtcblxuICAgIHJldHVybiAocHJlZmVycmVkRGFya01vZGUgJiYgZGFya0F2YWlsYWJsZSkgfHwgZGFya09ubHk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQWNBLElBQWEsNEJBQTRCO0FBQ3pDLElBQWEsd0JBQXdCO0FBQ3JDLElBQWEscUJBQXFCO0FBQ2xDLElBQWEsNkJBQTZCO0FBQzFDLElBQWEsc0NBQXNDLGVBQWUscUJBQW9CO0FBQ3RGLElBQWEsdUNBQXVDLGVBQWUsc0JBQXFCO0FBQ3hGLElBQWEsdUNBQXVDLGVBQWUsc0JBQXFCO0FBQ3hGLElBQWEsdUNBQXVDLGVBQWUsc0JBQXFCO0FBQ3hGLElBQWEsdUNBQXVDLGVBQWUsc0JBQXFCO0FBQ3hGLElBQWEsdUNBQXVDLGVBQWUsc0JBQXFCOzs7Ozs7QUFvQnhGLElBQU0scUNBQXFCLElBQUksSUFBRzs7Ozs7Ozs7O0FBVWxDLElBQWEsNEJBQWIsTUFBc0M7Q0FDcEMsWUFDRSxNQUNRLFVBQWdEO0VBQWhELEtBQUEsV0FBQTtFQUVSLEtBQUssY0FBYyxJQUFJO0NBQ3pCOzs7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
@@ -299,4 +299,4 @@ var SbbOverlayPositionController = class {
299
299
  //#endregion
300
300
  export { SbbOverlayPositionController };
301
301
 
302
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1wb3NpdGlvbi1jb250cm9sbGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL292ZXJsYXktcG9zaXRpb24tY29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSB9IGZyb20gJy4uL21peGlucy50cyc7XG5cbmNvbnN0IGNzc0FuY2hvclBvc2l0aW9uU3VwcG9ydGVkID0gIWlzU2VydmVyICYmIENTUy5zdXBwb3J0cygnYW5jaG9yLW5hbWUnLCAnLS10ZXN0Jyk7XG5cbmNvbnN0IHBoeXNpY2FsU3VwcG9ydGVkUG9zaXRpb25zID0gW1xuICAndG9wJyxcbiAgJ2JvdHRvbScsXG4gICdsZWZ0JyxcbiAgJ3JpZ2h0JyxcbiAgJ3RvcCBzcGFuLWxlZnQnLFxuICAndG9wIHNwYW4tcmlnaHQnLFxuICAnYm90dG9tIHNwYW4tbGVmdCcsXG4gICdib3R0b20gc3Bhbi1yaWdodCcsXG4gICdsZWZ0IHNwYW4tdG9wJyxcbiAgJ2xlZnQgc3Bhbi1ib3R0b20nLFxuICAncmlnaHQgc3Bhbi10b3AnLFxuICAncmlnaHQgc3Bhbi1ib3R0b20nLFxuXTtcblxuLy8gTm90ZTogaWYgeW91IGFkZCBuZXcgbG9naWNhbCBzdXBwb3J0ZWQgcG9zaXRpb25zLCB1cGRhdGUgYWxzbyB0aGUgJ3J0bFBvc2l0aW9uTWFwcGluZydcbmNvbnN0IGxvZ2ljYWxTdXBwb3J0ZWRQb3NpdGlvbnMgPSBbXG4gICdibG9jay1zdGFydCcsXG4gICdibG9jay1lbmQnLFxuICAnaW5saW5lLXN0YXJ0JyxcbiAgJ2lubGluZS1lbmQnLFxuICAnYmxvY2stc3RhcnQgc3Bhbi1pbmxpbmUtc3RhcnQnLFxuICAnYmxvY2stc3RhcnQgc3Bhbi1pbmxpbmUtZW5kJyxcbiAgJ2Jsb2NrLWVuZCBzcGFuLWlubGluZS1zdGFydCcsXG4gICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtZW5kJyxcbiAgJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLXN0YXJ0JyxcbiAgJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLWVuZCcsXG4gICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stc3RhcnQnLFxuICAnaW5saW5lLWVuZCBzcGFuLWJsb2NrLWVuZCcsXG5dO1xuXG5jb25zdCBydGxQb3NpdGlvbk1hcHBpbmc6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICdibG9jay1zdGFydCc6ICdibG9jay1zdGFydCcsXG4gICdibG9jay1lbmQnOiAnYmxvY2stZW5kJyxcbiAgJ2lubGluZS1zdGFydCc6ICdpbmxpbmUtZW5kJyxcbiAgJ2lubGluZS1lbmQnOiAnaW5saW5lLXN0YXJ0JyxcbiAgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0JzogJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLWVuZCcsXG4gICdibG9jay1zdGFydCBzcGFuLWlubGluZS1lbmQnOiAnYmxvY2stc3RhcnQgc3Bhbi1pbmxpbmUtc3RhcnQnLFxuICAnYmxvY2stZW5kIHNwYW4taW5saW5lLXN0YXJ0JzogJ2Jsb2NrLWVuZCBzcGFuLWlubGluZS1lbmQnLFxuICAnYmxvY2stZW5kIHNwYW4taW5saW5lLWVuZCc6ICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtc3RhcnQnLFxuICAnaW5saW5lLXN0YXJ0IHNwYW4tYmxvY2stc3RhcnQnOiAnaW5saW5lLWVuZCBzcGFuLWJsb2NrLXN0YXJ0JyxcbiAgJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLWVuZCc6ICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stZW5kJyxcbiAgJ2lubGluZS1lbmQgc3Bhbi1ibG9jay1zdGFydCc6ICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1zdGFydCcsXG4gICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stZW5kJzogJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLWVuZCcsXG59O1xuXG5jb25zdCBzdXBwb3J0ZWRQb3NpdGlvbnMgPSBbLi4ucGh5c2ljYWxTdXBwb3J0ZWRQb3NpdGlvbnMsIC4uLmxvZ2ljYWxTdXBwb3J0ZWRQb3NpdGlvbnNdO1xubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogQ29udHJvbGxlciBmb3IgbWFuYWdpbmcgb3ZlcmxheXMgcG9zaXRpb25pbmcuIEFsc28gYWN0cyBhcyBhIHBvbHlmaWxsIHdoZW4gbmF0aXZlXG4gKiBDU1MgQW5jaG9yIFBvc2l0aW9uaW5nIGlzIG5vdCBzdXBwb3J0ZWQgKGVub3VnaCkuXG4gKiBBcHBsaWVzIHVuaXF1ZSBhbmNob3IgbmFtZXMgd2hlbiB1c2luZyBuYXRpdmUgQ1NTIEFuY2hvciBQb3NpdGlvbmluZ1xuICogb3IgY2FsY3VsYXRlcyBhbmQgYXBwbGllcyBjb3JyZWN0IHBvc2l0aW9ucyBpbiBwb2x5ZmlsbCBtb2RlLlxuICpcbiAqIEFsc28sIHRoZSBjb250cm9sbGVyIHNldHMgdGhlICdkYXRhLXBvc2l0aW9uJyBhdHRyaWJ1dGUgb24gdGhlIG92ZXJsYXkgZWxlbWVudC5cbiAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYXBwbHkgc3BlY2lmaWMgc3R5bGVzIGJhc2VkIG9uIHRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSBvdmVybGF5LlxuICpcbiAqICMjIyBJbXBsZW1lbnRhdGlvblxuICogRGVmaW5lIGFuZCBhcHBseSB0aGUgZm9sbG93aW5nIENTUyB2YXJpYWJsZXMgb24gdGhlIG92ZXJsYXkgZWxlbWVudDpcbiAqIGBgYHNjc3NcbiAqICAgLS1zYmItb3ZlcmxheS1wb3NpdGlvbi1hcmVhOiBibG9jay1lbmQ7IC8vIERlZmF1bHRcbiAqICAgLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzOiBibG9jay1zdGFydCwgaW5saW5lLWVuZCwgaW5saW5lLXN0YXJ0OyAvLyBGYWxsYmFja3NcbiAqXG4gKiAgIHBvc2l0aW9uLWFyZWE6IHZhcigtLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEpO1xuICogICBwb3NpdGlvbi10cnktZmFsbGJhY2tzOiB2YXIoLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgU2JiT3ZlcmxheVBvc2l0aW9uQ29udHJvbGxlciBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Jlc2l6ZU9ic2VydmVyID0gIWlzU2VydmVyXG4gICAgPyBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4gdGhpcy5fcmVxdWVzdENhbGN1bGF0ZVBvc2l0aW9uKCkpXG4gICAgOiBudWxsITtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3ZlcmxheTogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50ICYgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZTtcbiAgcHJpdmF0ZSBfYWJvcnRDb250cm9sbGVyPzogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9hbmNob3I/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfb3ZlcmxheVN0eWxlcz86IENTU1N0eWxlRGVjbGFyYXRpb247XG4gIHByaXZhdGUgX2ZyYW1lPzogUmV0dXJuVHlwZTx0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lPjtcbiAgcHJpdmF0ZSBfYW5jaG9yTmFtZSA9IGAtLXNiYi1vdmVybGF5LWFuY2hvci0keysrbmV4dElkfWA7XG4gIHByaXZhdGUgX3Bvc2l0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSBfbGFzdFBvc2l0aW9uPzogc3RyaW5nO1xuXG4gIC8qKiBHZXQgdGhlIGN1cnJlbnQgcG9zaXRpb24uIChlLmcuIGJsb2NrLWVuZCwgYmxvY2stc3RhcnQsIGV0Yy4pICovXG4gIHB1YmxpYyBnZXQgY3VycmVudFBvc2l0aW9uKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuX3VzZVBvbHlmaWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbGFzdFBvc2l0aW9uID8/IHRoaXMuX3Bvc2l0aW9uc1swXSA/PyAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fb3ZlcmxheVN0eWxlcyA/Pz0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9vdmVybGF5KTtcbiAgICAgIHJldHVybiB0aGlzLl9vdmVybGF5U3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ3Bvc2l0aW9uLWFyZWEnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50ICYgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSxcbiAgICBwcml2YXRlIF91c2VQb2x5ZmlsbCA9ICFjc3NBbmNob3JQb3NpdGlvblN1cHBvcnRlZCxcbiAgKSB7XG4gICAgaG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICAgIHRoaXMuX292ZXJsYXkgPSBob3N0O1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl91c2VQb2x5ZmlsbCkge1xuICAgICAgdGhpcy5fb3ZlcmxheS5zdHlsZS5zZXRQcm9wZXJ0eSgncG9zaXRpb24tYW5jaG9yJywgdGhpcy5fYW5jaG9yTmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlc2V0IHRoZSAncG9zaXRpb24tYXJlYScgdmFsdWUgdG8gYXZvaWQgYW55IHVud2FudGVkIHNpZGUgZWZmZWN0IHdoZW4gdXNpbmcgdGhlIHBvbHlmaWxsLlxuICAgICAgdGhpcy5fb3ZlcmxheS5zdHlsZS5zZXRQcm9wZXJ0eSgncG9zaXRpb24tYXJlYScsICdpbml0aWFsJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhvc3RVcGRhdGUoKTogdm9pZCB7XG4gICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3JlYWRQb3NpdGlvbnNGcm9tQ3NzKCk7XG4gIH1cblxuICAvKipcbiAgICogQ29ubmVjdHMgdGhlIG92ZXJsYXkgdG8gdGhlIGdpdmVuIHRyaWdnZXIgZWxlbWVudCBhbmQgZGV0ZXJtaW5lcyB0aGUgb3B0aW1hbCBwb3NpdGlvbi5cbiAgICogVXN1YWxseSwgdGhpcyBpcyBjYWxsZWQgd2hlbiB0aGUgb3ZlcmxheSBpcyBvcGVuZWQuXG4gICAqIEBwYXJhbSBhbmNob3IgVGhlIGFuY2hvciBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGNvbm5lY3QoYW5jaG9yOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9hbmNob3IpIHtcbiAgICAgIHRoaXMuZGlzY29ubmVjdCgpO1xuICAgIH1cbiAgICB0aGlzLl9hbmNob3IgPSBhbmNob3I7XG5cbiAgICBpZiAoIXRoaXMuX3VzZVBvbHlmaWxsKSB7XG4gICAgICB0aGlzLl9hbmNob3Iuc3R5bGUuc2V0UHJvcGVydHkoJ2FuY2hvci1uYW1lJywgdGhpcy5fYW5jaG9yTmFtZSEpO1xuICAgIH1cblxuICAgIHRoaXMuX3JlYWRQb3NpdGlvbnNGcm9tQ3NzKCk7XG4gICAgdGhpcy5fY2FsY3VsYXRlUG9zaXRpb24oKTtcbiAgICB0aGlzLl9hYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gICAgLy8gV2UgbmVlZCB0byB1c2UgY2FwdHVyZSBoZXJlIHRvIHJlYWN0IHRvIGFsbCBzY3JvbGwgZXZlbnRzLlxuICAgIC8vIElmIGNhcHR1cmUgd2FzIG5vdCB1c2VkLCB0aGVuIHNjcm9sbCBldmVudHMgaW5zaWRlIHNlcGFyYXRlIHNjcm9sbFxuICAgIC8vIGNvbnRhaW5lcnMgd291bGQgbm90IGJlIGNhdWdodC5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB0aGlzLl9yZXF1ZXN0Q2FsY3VsYXRlUG9zaXRpb24oKSwge1xuICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX2Fib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsICgpID0+IHRoaXMuX3JlcXVlc3RDYWxjdWxhdGVQb3NpdGlvbigpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl9hYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoYW5jaG9yLCB7IGJveDogJ2JvcmRlci1ib3gnIH0pO1xuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5fb3ZlcmxheSwgeyBib3g6ICdib3JkZXItYm94JyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNjb25uZWN0KCk6IHZvaWQge1xuICAgIHRoaXMuX2FuY2hvcj8uc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2FuY2hvci1uYW1lJyk7XG4gICAgdGhpcy5fYW5jaG9yID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIF9yZXF1ZXN0Q2FsY3VsYXRlUG9zaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fZnJhbWUgPz89IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLl9jYWxjdWxhdGVQb3NpdGlvbigpO1xuICAgICAgdGhpcy5fZnJhbWUgPSB1bmRlZmluZWQ7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jYWxjdWxhdGVQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2FuY2hvcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl91c2VQb2x5ZmlsbCkge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLl9nZXRPcHRpbWFsUG9zaXRpb24odGhpcy5fcG9zaXRpb25zKTtcbiAgICAgIHRoaXMuX2FwcGx5T3ZlcmxheVBvc2l0aW9uKHBvc2l0aW9uLnBvc2l0aW9uLCBwb3NpdGlvbi5sZWZ0LCBwb3NpdGlvbi50b3ApO1xuICAgIH1cblxuICAgIHRoaXMuX292ZXJsYXkuc2V0QXR0cmlidXRlKCdkYXRhLXBvc2l0aW9uJywgdGhpcy5jdXJyZW50UG9zaXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIG9wdGltYWwgcG9zaXRpb24gdGhhdCBmaXRzIHRoZSBvdmVybGF5LlxuICAgKiBAcGFyYW0gcG9zaXRpb25zIFRoZSBsaXN0IG9mIHBvc2l0aW9ucyB0byBjaGVjay5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgX2dldE9wdGltYWxQb3NpdGlvbihwb3NpdGlvbnM6IHN0cmluZ1tdKToge1xuICAgIGxlZnQ6IG51bWJlcjtcbiAgICB0b3A6IG51bWJlcjtcbiAgICBwb3NpdGlvbjogc3RyaW5nO1xuICAgIGZpdHM/OiBib29sZWFuO1xuICB9IHtcbiAgICBjb25zdCB7IG9mZnNldEhlaWdodDogb3ZlcmxheUhlaWdodCwgb2Zmc2V0V2lkdGg6IG92ZXJsYXlXaWR0aCB9ID0gdGhpcy5fb3ZlcmxheTtcbiAgICBjb25zdCB7IGlubmVySGVpZ2h0OiB2aWV3cG9ydEhlaWdodCwgaW5uZXJXaWR0aDogdmlld3BvcnRXaWR0aCB9ID0gd2luZG93O1xuICAgIGNvbnN0IHtcbiAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCxcbiAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0LFxuICAgICAgaGVpZ2h0OiB0cmlnZ2VySGVpZ2h0LFxuICAgICAgd2lkdGg6IHRyaWdnZXJXaWR0aCxcbiAgICB9ID0gdGhpcy5fYW5jaG9yIS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGNvbnN0IGlzUnRsID0gdGhpcy5fb3ZlcmxheS5tYXRjaGVzKCc6ZGlyKHJ0bCknKTtcbiAgICBjb25zdCB0b3BTcGFjZSA9IHRyaWdnZXJPZmZzZXRUb3A7XG4gICAgY29uc3QgYm90dG9tU3BhY2UgPSB2aWV3cG9ydEhlaWdodCAtIHRyaWdnZXJIZWlnaHQgLSB0cmlnZ2VyT2Zmc2V0VG9wO1xuICAgIGNvbnN0IGxlZnRTcGFjZSA9IHRyaWdnZXJPZmZzZXRMZWZ0O1xuICAgIGNvbnN0IHJpZ2h0U3BhY2UgPSB2aWV3cG9ydFdpZHRoIC0gdHJpZ2dlcldpZHRoIC0gdHJpZ2dlck9mZnNldExlZnQ7XG5cbiAgICAvLyBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBvdmVybGF5IGFuZCB0aGUgdHJpZ2dlciB3aWR0aC9oZWlnaHQuXG4gICAgY29uc3Qgb3ZlcmxheVdpZHRoTmV0ID0gb3ZlcmxheVdpZHRoIC0gdHJpZ2dlcldpZHRoO1xuICAgIGNvbnN0IG92ZXJsYXlIZWlnaHROZXQgPSBvdmVybGF5SGVpZ2h0IC0gdHJpZ2dlckhlaWdodDtcblxuICAgIC8vIFRoZSBhbW91bnQgdGhhdCB3b3VsZCBleGNlZWQgdGhlIHRyaWdnZXIgaWYgdGhlIG92ZXJsYXkgd2VyZSBjZW50ZXJlZCBvbiBpdC5cbiAgICBjb25zdCBvdmVybGF5V2lkdGhPdmVybGFwID0gb3ZlcmxheVdpZHRoTmV0IC8gMjtcbiAgICBjb25zdCBvdmVybGF5SGVpZ2h0T3ZlcmxhcCA9IG92ZXJsYXlIZWlnaHROZXQgLyAyO1xuXG4gICAgdGhpcy5fb3ZlcmxheS5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICctLXNiYi1vdmVybGF5LWNvbnRyb2xsZXItdHJpZ2dlci1oZWlnaHQnLFxuICAgICAgYCR7dHJpZ2dlckhlaWdodH1weGAsXG4gICAgKTtcbiAgICB0aGlzLl9vdmVybGF5LnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1vdmVybGF5LWNvbnRyb2xsZXItdHJpZ2dlci13aWR0aCcsIGAke3RyaWdnZXJXaWR0aH1weGApO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtYXNzaWdubWVudFxuICAgIGxldCByZXN1bHQ6IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuX2dldE9wdGltYWxQb3NpdGlvbj4gPSB7IGxlZnQ6IDAsIHRvcDogMCwgcG9zaXRpb246ICcnIH07XG4gICAgbGV0IGZpcnN0UG9zaXRpb246IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuX2dldE9wdGltYWxQb3NpdGlvbj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgZm9yIChjb25zdCBwb3NpdGlvbiBvZiBwb3NpdGlvbnMpIHtcbiAgICAgIC8vIElmIHJ0bCBpcyBlbmFibGVkLCB3ZSBtYXAgdGhlIGxvZ2ljYWwgcG9zaXRpb24gdG8gdGhlaXIgUlRMIGVxdWl2YWxlbnQuIChlLmcuICdpbmxpbmUtc3RhcnQnIC0+ICdpbmxpbmUtZW5kJylcbiAgICAgIGNvbnN0IHBoeXNpY2FsUG9zaXRpb24gPVxuICAgICAgICBpc1J0bCAmJiBsb2dpY2FsU3VwcG9ydGVkUG9zaXRpb25zLmluY2x1ZGVzKHBvc2l0aW9uKVxuICAgICAgICAgID8gcnRsUG9zaXRpb25NYXBwaW5nW3Bvc2l0aW9uXVxuICAgICAgICAgIDogcG9zaXRpb247XG5cbiAgICAgIHN3aXRjaCAocGh5c2ljYWxQb3NpdGlvbikge1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICBjYXNlICdibG9jay1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGhPdmVybGFwLFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wICsgdHJpZ2dlckhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHQgPD0gYm90dG9tU3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheVdpZHRoT3ZlcmxhcCA8PSBsZWZ0U3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheVdpZHRoT3ZlcmxhcCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0JzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0IC0gb3ZlcmxheVdpZHRoT3ZlcmxhcCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCAtIG92ZXJsYXlIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOlxuICAgICAgICAgICAgICBvdmVybGF5SGVpZ2h0IDw9IHRvcFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aE92ZXJsYXAgPD0gbGVmdFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aE92ZXJsYXAgPD0gcmlnaHRTcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIGNhc2UgJ2lubGluZS1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgKyB0cmlnZ2VyV2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgLSBvdmVybGF5SGVpZ2h0T3ZlcmxhcCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aCA8PSByaWdodFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHRPdmVybGFwIDw9IHRvcFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHRPdmVybGFwIDw9IGJvdHRvbVNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgLSBvdmVybGF5SGVpZ2h0T3ZlcmxhcCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aCA8PSBsZWZ0U3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheUhlaWdodE92ZXJsYXAgPD0gdG9wU3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheUhlaWdodE92ZXJsYXAgPD0gYm90dG9tU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndG9wIHNwYW4tbGVmdCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0JzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0IC0gb3ZlcmxheVdpZHRoTmV0LFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wIC0gb3ZlcmxheUhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6IG92ZXJsYXlIZWlnaHQgPD0gdG9wU3BhY2UgJiYgb3ZlcmxheVdpZHRoTmV0IDw9IGxlZnRTcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd0b3Agc3Bhbi1yaWdodCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLWVuZCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCAtIG92ZXJsYXlIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5SGVpZ2h0IDw9IHRvcFNwYWNlICYmIG92ZXJsYXlXaWR0aE5ldCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JvdHRvbSBzcGFuLWxlZnQnOlxuICAgICAgICBjYXNlICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGhOZXQsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgKyB0cmlnZ2VySGVpZ2h0LFxuICAgICAgICAgICAgZml0czogb3ZlcmxheUhlaWdodCA8PSBib3R0b21TcGFjZSAmJiBvdmVybGF5V2lkdGhOZXQgPD0gbGVmdFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JvdHRvbSBzcGFuLXJpZ2h0JzpcbiAgICAgICAgY2FzZSAnYmxvY2stZW5kIHNwYW4taW5saW5lLWVuZCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCArIHRyaWdnZXJIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5SGVpZ2h0IDw9IGJvdHRvbVNwYWNlICYmIG92ZXJsYXlXaWR0aE5ldCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQgc3Bhbi10b3AnOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1zdGFydCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCAtIG92ZXJsYXlXaWR0aCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCArIHRyaWdnZXJIZWlnaHQgLSBvdmVybGF5SGVpZ2h0LFxuICAgICAgICAgICAgZml0czogb3ZlcmxheVdpZHRoIDw9IGxlZnRTcGFjZSAmJiBvdmVybGF5SGVpZ2h0TmV0IDw9IHRvcFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQgc3Bhbi1ib3R0b20nOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5V2lkdGggPD0gbGVmdFNwYWNlICYmIG92ZXJsYXlIZWlnaHROZXQgPD0gYm90dG9tU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmlnaHQgc3Bhbi10b3AnOlxuICAgICAgICBjYXNlICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgKyB0cmlnZ2VyV2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgKyB0cmlnZ2VySGVpZ2h0IC0gb3ZlcmxheUhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6IG92ZXJsYXlXaWR0aCA8PSByaWdodFNwYWNlICYmIG92ZXJsYXlIZWlnaHROZXQgPD0gdG9wU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmlnaHQgc3Bhbi1ib3R0b20nOlxuICAgICAgICBjYXNlICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stZW5kJzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0ICsgdHJpZ2dlcldpZHRoLFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wLFxuICAgICAgICAgICAgZml0czogb3ZlcmxheVdpZHRoIDw9IHJpZ2h0U3BhY2UgJiYgb3ZlcmxheUhlaWdodE5ldCA8PSBib3R0b21TcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKHJlc3VsdC5maXRzKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBmaXJzdFBvc2l0aW9uID8/PSByZXN1bHQ7XG4gICAgfVxuXG4gICAgLy8gSWYgbm8gcG9zaXRpb24gZml0cywgd2UgcmV0dXJuIHRoZSBmaXJzdCBvbmUuXG4gICAgcmV0dXJuIGZpcnN0UG9zaXRpb24hO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXBwbHlPdmVybGF5UG9zaXRpb24ocG9zaXRpb246IHN0cmluZywgbGVmdDogbnVtYmVyLCB0b3A6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX2xhc3RQb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgIHRoaXMuX292ZXJsYXkuc3R5bGUubGVmdCA9IGAke2xlZnR9cHhgO1xuICAgIHRoaXMuX292ZXJsYXkuc3R5bGUudG9wID0gYCR7dG9wfXB4YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbmx5IHVzZWQgaW4gcG9seWZpbGwgbW9kZS5cbiAgICogUmVhZHMgdGhlIGxpc3Qgb2YgdGhlIGNvbmZpZ3VyZWQgcG9zaXRpb25zIGZyb20gdGhlIENTUyB2YXJpYWJsZXMuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9yZWFkUG9zaXRpb25zRnJvbUNzcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3VzZVBvbHlmaWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX292ZXJsYXlTdHlsZXMgPz89IGdldENvbXB1dGVkU3R5bGUodGhpcy5fb3ZlcmxheSk7XG4gICAgY29uc3QgcG9zaXRpb25zID0gW1xuICAgICAgdGhpcy5fb3ZlcmxheVN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCctLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEnKSB8fCAnYmxvY2stZW5kJyxcbiAgICAgIC4uLnRoaXMuX292ZXJsYXlTdHlsZXNcbiAgICAgICAgLmdldFByb3BlcnR5VmFsdWUoJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcycpXG4gICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgIC5tYXAoKGYpID0+IGYudHJpbSgpKVxuICAgICAgICAuZmlsdGVyKChmKSA9PiAhIWYpLFxuICAgIF07XG5cbiAgICBpZiAoaW1wb3J0Lm1ldGEuZW52LkRFViAmJiBwb3NpdGlvbnMuc29tZSgocCkgPT4gIXN1cHBvcnRlZFBvc2l0aW9ucy5pbmNsdWRlcyhwKSkpIHtcbiAgICAgIGNvbnN0IHVuc3VwcG9ydGVkUG9zaXRpb25zID0gcG9zaXRpb25zXG4gICAgICAgIC5maWx0ZXIoKHApID0+ICFzdXBwb3J0ZWRQb3NpdGlvbnMuaW5jbHVkZXMocCkpXG4gICAgICAgIC5zb3J0KClcbiAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBVbnN1cHBvcnRlZCBwb3NpdGlvbi10cnktZmFsbGJhY2tzICR7dW5zdXBwb3J0ZWRQb3NpdGlvbnN9IChTdXBwb3J0ZWQ6ICR7c3VwcG9ydGVkUG9zaXRpb25zLmpvaW4oJywgJyl9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuX3Bvc2l0aW9ucyA9IHBvc2l0aW9ucztcbiAgICBpZiAodGhpcy5fbGFzdFBvc2l0aW9uICYmICF0aGlzLl9wb3NpdGlvbnMuaW5jbHVkZXModGhpcy5fbGFzdFBvc2l0aW9uKSkge1xuICAgICAgdGhpcy5fbGFzdFBvc2l0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUlBLElBQU0sNkJBQTZCLENBQUMsWUFBWSxJQUFJLFNBQVMsZUFBZSxTQUFTO0FBRXJGLElBQU0sNkJBQTZCO0NBQ2pDO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNEO0FBR0QsSUFBTSw0QkFBNEI7Q0FDaEM7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0Q7QUFFRCxJQUFNLHFCQUFnRDtDQUNwRCxlQUFlO0NBQ2YsYUFBYTtDQUNiLGdCQUFnQjtDQUNoQixjQUFjO0NBQ2QsaUNBQWlDO0NBQ2pDLCtCQUErQjtDQUMvQiwrQkFBK0I7Q0FDL0IsNkJBQTZCO0NBQzdCLGlDQUFpQztDQUNqQywrQkFBK0I7Q0FDL0IsK0JBQStCO0NBQy9CLDZCQUE2QjtDQUM5QjtBQUUwQixDQUFDLEdBQUcsNEJBQTRCLEdBQUcsMEJBQTBCO0FBQ3hGLElBQUksU0FBUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQmIsSUFBYSwrQkFBYixNQUF5Qzs7Q0FjdkMsSUFBVyxrQkFBZTtFQUN4QixJQUFJLEtBQUssY0FDUCxPQUFPLEtBQUssaUJBQWlCLEtBQUssV0FBVyxNQUFNO09BQzlDO0dBQ0wsS0FBSyxtQkFBbUIsaUJBQWlCLEtBQUssU0FBUztHQUN2RCxPQUFPLEtBQUssZUFBZSxpQkFBaUIsZ0JBQWdCOzs7Q0FJaEUsWUFDRSxNQUNRLGVBQWUsQ0FBQyw0QkFBMEI7RUFBMUMsS0FBQSxlQUFBO0VBeEJPLEtBQUEsa0JBQWtCLENBQUMsV0FDaEMsSUFBSSxxQkFBcUIsS0FBSywyQkFBMkIsQ0FBQyxHQUMxRDtFQU1JLEtBQUEsY0FBYyx3QkFBd0IsRUFBRTtFQUN4QyxLQUFBLGFBQXVCLEVBQUU7RUFpQi9CLEtBQUssY0FBYyxLQUFLO0VBQ3hCLEtBQUssV0FBVzs7Q0FHWCxnQkFBYTtFQUNsQixJQUFJLENBQUMsS0FBSyxjQUNSLEtBQUssU0FBUyxNQUFNLFlBQVksbUJBQW1CLEtBQUssWUFBWTtPQUdwRSxLQUFLLFNBQVMsTUFBTSxZQUFZLGlCQUFpQixVQUFVOztDQUl4RCxhQUFVO0VBQ2YsSUFBSSxVQUNGO0VBRUYsS0FBSyx1QkFBdUI7Ozs7Ozs7Q0FRdkIsUUFBUSxRQUFtQjtFQUNoQyxJQUFJLFVBQ0Y7RUFHRixJQUFJLEtBQUssU0FDUCxLQUFLLFlBQVk7RUFFbkIsS0FBSyxVQUFVO0VBRWYsSUFBSSxDQUFDLEtBQUssY0FDUixLQUFLLFFBQVEsTUFBTSxZQUFZLGVBQWUsS0FBSyxZQUFhO0VBR2xFLEtBQUssdUJBQXVCO0VBQzVCLEtBQUssb0JBQW9CO0VBQ3pCLEtBQUssa0JBQWtCLE9BQU87RUFDOUIsS0FBSyxtQkFBbUIsSUFBSSxpQkFBaUI7RUFLN0MsU0FBUyxpQkFBaUIsZ0JBQWdCLEtBQUssMkJBQTJCLEVBQUU7R0FDMUUsU0FBUztHQUNULFNBQVM7R0FDVCxRQUFRLEtBQUssaUJBQWlCO0dBQy9CLENBQUM7RUFDRixPQUFPLGlCQUFpQixnQkFBZ0IsS0FBSywyQkFBMkIsRUFBRTtHQUN4RSxTQUFTO0dBQ1QsUUFBUSxLQUFLLGlCQUFpQjtHQUMvQixDQUFDO0VBQ0YsS0FBSyxnQkFBZ0IsUUFBUSxRQUFRLEVBQUUsS0FBSyxjQUFjLENBQUM7RUFDM0QsS0FBSyxnQkFBZ0IsUUFBUSxLQUFLLFVBQVUsRUFBRSxLQUFLLGNBQWMsQ0FBQzs7Q0FHN0QsYUFBVTtFQUNmLEtBQUssU0FBUyxNQUFNLGVBQWUsY0FBYztFQUNqRCxLQUFLLFVBQVUsS0FBQTtFQUNmLEtBQUssa0JBQWtCLE9BQU87RUFDOUIsS0FBSyxnQkFBZ0IsWUFBWTs7Q0FHM0IsNEJBQXlCO0VBQy9CLEtBQUssV0FBVyw0QkFBMkI7R0FDekMsS0FBSyxvQkFBb0I7R0FDekIsS0FBSyxTQUFTLEtBQUE7SUFDZDs7Q0FHSSxxQkFBa0I7RUFDeEIsSUFBSSxDQUFDLEtBQUssU0FDUjtFQUdGLElBQUksS0FBSyxjQUFjO0dBQ3JCLE1BQU0sV0FBVyxLQUFLLG9CQUFvQixLQUFLLFdBQVc7R0FDMUQsS0FBSyxzQkFBc0IsU0FBUyxVQUFVLFNBQVMsTUFBTSxTQUFTLElBQUk7O0VBRzVFLEtBQUssU0FBUyxhQUFhLGlCQUFpQixLQUFLLGdCQUFnQjs7Ozs7OztDQVEzRCxvQkFBb0IsV0FBbUI7RUFNN0MsTUFBTSxFQUFFLGNBQWMsZUFBZSxhQUFhLGlCQUFpQixLQUFLO0VBQ3hFLE1BQU0sRUFBRSxhQUFhLGdCQUFnQixZQUFZLGtCQUFrQjtFQUNuRSxNQUFNLEVBQ0osS0FBSyxrQkFDTCxNQUFNLG1CQUNOLFFBQVEsZUFDUixPQUFPLGlCQUNMLEtBQUssUUFBUyx1QkFBdUI7RUFFekMsTUFBTSxRQUFRLEtBQUssU0FBUyxRQUFRLFlBQVk7RUFDaEQsTUFBTSxXQUFXO0VBQ2pCLE1BQU0sY0FBYyxpQkFBaUIsZ0JBQWdCO0VBQ3JELE1BQU0sWUFBWTtFQUNsQixNQUFNLGFBQWEsZ0JBQWdCLGVBQWU7RUFHbEQsTUFBTSxrQkFBa0IsZUFBZTtFQUN2QyxNQUFNLG1CQUFtQixnQkFBZ0I7RUFHekMsTUFBTSxzQkFBc0Isa0JBQWtCO0VBQzlDLE1BQU0sdUJBQXVCLG1CQUFtQjtFQUVoRCxLQUFLLFNBQVMsTUFBTSxZQUNsQiwyQ0FDQSxHQUFHLGNBQWEsSUFDakI7RUFDRCxLQUFLLFNBQVMsTUFBTSxZQUFZLDBDQUEwQyxHQUFHLGFBQVksSUFBSztFQUc5RixJQUFJLFNBQXNEO0dBQUUsTUFBTTtHQUFHLEtBQUs7R0FBRyxVQUFVO0dBQUk7RUFDM0YsSUFBSSxnQkFBeUUsS0FBQTtFQUM3RSxLQUFLLE1BQU0sWUFBWSxXQUFXO0dBT2hDLFFBSkUsU0FBUywwQkFBMEIsU0FBUyxTQUFTLEdBQ2pELG1CQUFtQixZQUNuQixVQUVOO0lBQ0U7SUFDQSxLQUFLO0lBQ0wsS0FBSztLQUNILFNBQVM7TUFDUDtNQUNBLE1BQU0sb0JBQW9CO01BQzFCLEtBQUssbUJBQW1CO01BQ3hCLE1BQ0UsaUJBQWlCLGVBQ2pCLHVCQUF1QixhQUN2Qix1QkFBdUI7TUFDMUI7S0FDRDtJQUNGLEtBQUs7SUFDTCxLQUFLO0tBQ0gsU0FBUztNQUNQO01BQ0EsTUFBTSxvQkFBb0I7TUFDMUIsS0FBSyxtQkFBbUI7TUFDeEIsTUFDRSxpQkFBaUIsWUFDakIsdUJBQXVCLGFBQ3ZCLHVCQUF1QjtNQUMxQjtLQUNEO0lBQ0YsS0FBSztJQUNMLEtBQUs7S0FDSCxTQUFTO01BQ1A7TUFDQSxNQUFNLG9CQUFvQjtNQUMxQixLQUFLLG1CQUFtQjtNQUN4QixNQUNFLGdCQUFnQixjQUNoQix3QkFBd0IsWUFDeEIsd0JBQXdCO01BQzNCO0tBQ0Q7SUFDRixLQUFLO0lBQ0wsS0FBSztLQUNILFNBQVM7TUFDUDtNQUNBLE1BQU0sb0JBQW9CO01BQzFCLEtBQUssbUJBQW1CO01BQ3hCLE1BQ0UsZ0JBQWdCLGFBQ2hCLHdCQUF3QixZQUN4Qix3QkFBd0I7TUFDM0I7S0FDRDtJQUNGLEtBQUs7SUFDTCxLQUFLO0tBQ0gsU0FBUztNQUNQO01BQ0EsTUFBTSxvQkFBb0I7TUFDMUIsS0FBSyxtQkFBbUI7TUFDeEIsTUFBTSxpQkFBaUIsWUFBWSxtQkFBbUI7TUFDdkQ7S0FDRDtJQUNGLEtBQUs7SUFDTCxLQUFLO0tBQ0gsU0FBUztNQUNQO01BQ0EsTUFBTTtNQUNOLEtBQUssbUJBQW1CO01BQ3hCLE1BQU0saUJBQWlCLFlBQVksbUJBQW1CO01BQ3ZEO0tBQ0Q7SUFDRixLQUFLO0lBQ0wsS0FBSztLQUNILFNBQVM7TUFDUDtNQUNBLE1BQU0sb0JBQW9CO01BQzFCLEtBQUssbUJBQW1CO01BQ3hCLE1BQU0saUJBQWlCLGVBQWUsbUJBQW1CO01BQzFEO0tBQ0Q7SUFDRixLQUFLO0lBQ0wsS0FBSztLQUNILFNBQVM7TUFDUDtNQUNBLE1BQU07TUFDTixLQUFLLG1CQUFtQjtNQUN4QixNQUFNLGlCQUFpQixlQUFlLG1CQUFtQjtNQUMxRDtLQUNEO0lBQ0YsS0FBSztJQUNMLEtBQUs7S0FDSCxTQUFTO01BQ1A7TUFDQSxNQUFNLG9CQUFvQjtNQUMxQixLQUFLLG1CQUFtQixnQkFBZ0I7TUFDeEMsTUFBTSxnQkFBZ0IsYUFBYSxvQkFBb0I7TUFDeEQ7S0FDRDtJQUNGLEtBQUs7SUFDTCxLQUFLO0tBQ0gsU0FBUztNQUNQO01BQ0EsTUFBTSxvQkFBb0I7TUFDMUIsS0FBSztNQUNMLE1BQU0sZ0JBQWdCLGFBQWEsb0JBQW9CO01BQ3hEO0tBQ0Q7SUFDRixLQUFLO0lBQ0wsS0FBSztLQUNILFNBQVM7TUFDUDtNQUNBLE1BQU0sb0JBQW9CO01BQzFCLEtBQUssbUJBQW1CLGdCQUFnQjtNQUN4QyxNQUFNLGdCQUFnQixjQUFjLG9CQUFvQjtNQUN6RDtLQUNEO0lBQ0YsS0FBSztJQUNMLEtBQUs7S0FDSCxTQUFTO01BQ1A7TUFDQSxNQUFNLG9CQUFvQjtNQUMxQixLQUFLO01BQ0wsTUFBTSxnQkFBZ0IsY0FBYyxvQkFBb0I7TUFDekQ7S0FDRDs7R0FFSixJQUFJLE9BQU8sTUFDVCxPQUFPO0dBRVQsa0JBQWtCOztFQUlwQixPQUFPOztDQUdELHNCQUFzQixVQUFrQixNQUFjLEtBQVc7RUFDdkUsS0FBSyxnQkFBZ0I7RUFDckIsS0FBSyxTQUFTLE1BQU0sT0FBTyxHQUFHLEtBQUk7RUFDbEMsS0FBSyxTQUFTLE1BQU0sTUFBTSxHQUFHLElBQUc7Ozs7Ozs7Q0FRMUIsd0JBQXFCO0VBQzNCLElBQUksQ0FBQyxLQUFLLGNBQ1I7RUFFRixLQUFLLG1CQUFtQixpQkFBaUIsS0FBSyxTQUFTO0VBQ3ZELE1BQU0sWUFBWSxDQUNoQixLQUFLLGVBQWUsaUJBQWlCLDhCQUE4QixJQUFJLGFBQ3ZFLEdBQUcsS0FBSyxlQUNMLGlCQUFpQix1Q0FBdUMsQ0FDeEQsTUFBTSxJQUFJLENBQ1YsS0FBSyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQ3BCLFFBQVEsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUN0QjtFQVlELEtBQUssYUFBYTtFQUNsQixJQUFJLEtBQUssaUJBQWlCLENBQUMsS0FBSyxXQUFXLFNBQVMsS0FBSyxjQUFjLEVBQ3JFLEtBQUssZ0JBQWdCLEtBQUEifQ==
302
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1wb3NpdGlvbi1jb250cm9sbGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL292ZXJsYXktcG9zaXRpb24tY29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSB9IGZyb20gJy4uL21peGlucy50cyc7XG5cbmNvbnN0IGNzc0FuY2hvclBvc2l0aW9uU3VwcG9ydGVkID0gIWlzU2VydmVyICYmIENTUy5zdXBwb3J0cygnYW5jaG9yLW5hbWUnLCAnLS10ZXN0Jyk7XG5cbmNvbnN0IHBoeXNpY2FsU3VwcG9ydGVkUG9zaXRpb25zID0gW1xuICAndG9wJyxcbiAgJ2JvdHRvbScsXG4gICdsZWZ0JyxcbiAgJ3JpZ2h0JyxcbiAgJ3RvcCBzcGFuLWxlZnQnLFxuICAndG9wIHNwYW4tcmlnaHQnLFxuICAnYm90dG9tIHNwYW4tbGVmdCcsXG4gICdib3R0b20gc3Bhbi1yaWdodCcsXG4gICdsZWZ0IHNwYW4tdG9wJyxcbiAgJ2xlZnQgc3Bhbi1ib3R0b20nLFxuICAncmlnaHQgc3Bhbi10b3AnLFxuICAncmlnaHQgc3Bhbi1ib3R0b20nLFxuXTtcblxuLy8gTm90ZTogaWYgeW91IGFkZCBuZXcgbG9naWNhbCBzdXBwb3J0ZWQgcG9zaXRpb25zLCB1cGRhdGUgYWxzbyB0aGUgJ3J0bFBvc2l0aW9uTWFwcGluZydcbmNvbnN0IGxvZ2ljYWxTdXBwb3J0ZWRQb3NpdGlvbnMgPSBbXG4gICdibG9jay1zdGFydCcsXG4gICdibG9jay1lbmQnLFxuICAnaW5saW5lLXN0YXJ0JyxcbiAgJ2lubGluZS1lbmQnLFxuICAnYmxvY2stc3RhcnQgc3Bhbi1pbmxpbmUtc3RhcnQnLFxuICAnYmxvY2stc3RhcnQgc3Bhbi1pbmxpbmUtZW5kJyxcbiAgJ2Jsb2NrLWVuZCBzcGFuLWlubGluZS1zdGFydCcsXG4gICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtZW5kJyxcbiAgJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLXN0YXJ0JyxcbiAgJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLWVuZCcsXG4gICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stc3RhcnQnLFxuICAnaW5saW5lLWVuZCBzcGFuLWJsb2NrLWVuZCcsXG5dO1xuXG5jb25zdCBydGxQb3NpdGlvbk1hcHBpbmc6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICdibG9jay1zdGFydCc6ICdibG9jay1zdGFydCcsXG4gICdibG9jay1lbmQnOiAnYmxvY2stZW5kJyxcbiAgJ2lubGluZS1zdGFydCc6ICdpbmxpbmUtZW5kJyxcbiAgJ2lubGluZS1lbmQnOiAnaW5saW5lLXN0YXJ0JyxcbiAgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0JzogJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLWVuZCcsXG4gICdibG9jay1zdGFydCBzcGFuLWlubGluZS1lbmQnOiAnYmxvY2stc3RhcnQgc3Bhbi1pbmxpbmUtc3RhcnQnLFxuICAnYmxvY2stZW5kIHNwYW4taW5saW5lLXN0YXJ0JzogJ2Jsb2NrLWVuZCBzcGFuLWlubGluZS1lbmQnLFxuICAnYmxvY2stZW5kIHNwYW4taW5saW5lLWVuZCc6ICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtc3RhcnQnLFxuICAnaW5saW5lLXN0YXJ0IHNwYW4tYmxvY2stc3RhcnQnOiAnaW5saW5lLWVuZCBzcGFuLWJsb2NrLXN0YXJ0JyxcbiAgJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLWVuZCc6ICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stZW5kJyxcbiAgJ2lubGluZS1lbmQgc3Bhbi1ibG9jay1zdGFydCc6ICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1zdGFydCcsXG4gICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stZW5kJzogJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLWVuZCcsXG59O1xuXG5jb25zdCBzdXBwb3J0ZWRQb3NpdGlvbnMgPSBbLi4ucGh5c2ljYWxTdXBwb3J0ZWRQb3NpdGlvbnMsIC4uLmxvZ2ljYWxTdXBwb3J0ZWRQb3NpdGlvbnNdO1xubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogQ29udHJvbGxlciBmb3IgbWFuYWdpbmcgb3ZlcmxheXMgcG9zaXRpb25pbmcuIEFsc28gYWN0cyBhcyBhIHBvbHlmaWxsIHdoZW4gbmF0aXZlXG4gKiBDU1MgQW5jaG9yIFBvc2l0aW9uaW5nIGlzIG5vdCBzdXBwb3J0ZWQgKGVub3VnaCkuXG4gKiBBcHBsaWVzIHVuaXF1ZSBhbmNob3IgbmFtZXMgd2hlbiB1c2luZyBuYXRpdmUgQ1NTIEFuY2hvciBQb3NpdGlvbmluZ1xuICogb3IgY2FsY3VsYXRlcyBhbmQgYXBwbGllcyBjb3JyZWN0IHBvc2l0aW9ucyBpbiBwb2x5ZmlsbCBtb2RlLlxuICpcbiAqIEFsc28sIHRoZSBjb250cm9sbGVyIHNldHMgdGhlICdkYXRhLXBvc2l0aW9uJyBhdHRyaWJ1dGUgb24gdGhlIG92ZXJsYXkgZWxlbWVudC5cbiAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYXBwbHkgc3BlY2lmaWMgc3R5bGVzIGJhc2VkIG9uIHRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSBvdmVybGF5LlxuICpcbiAqICMjIyBJbXBsZW1lbnRhdGlvblxuICogRGVmaW5lIGFuZCBhcHBseSB0aGUgZm9sbG93aW5nIENTUyB2YXJpYWJsZXMgb24gdGhlIG92ZXJsYXkgZWxlbWVudDpcbiAqIGBgYHNjc3NcbiAqICAgLS1zYmItb3ZlcmxheS1wb3NpdGlvbi1hcmVhOiBibG9jay1lbmQ7IC8vIERlZmF1bHRcbiAqICAgLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzOiBibG9jay1zdGFydCwgaW5saW5lLWVuZCwgaW5saW5lLXN0YXJ0OyAvLyBGYWxsYmFja3NcbiAqXG4gKiAgIHBvc2l0aW9uLWFyZWE6IHZhcigtLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEpO1xuICogICBwb3NpdGlvbi10cnktZmFsbGJhY2tzOiB2YXIoLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgU2JiT3ZlcmxheVBvc2l0aW9uQ29udHJvbGxlciBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Jlc2l6ZU9ic2VydmVyID0gIWlzU2VydmVyXG4gICAgPyBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4gdGhpcy5fcmVxdWVzdENhbGN1bGF0ZVBvc2l0aW9uKCkpXG4gICAgOiBudWxsITtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3ZlcmxheTogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50ICYgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZTtcbiAgcHJpdmF0ZSBfYWJvcnRDb250cm9sbGVyPzogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9hbmNob3I/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfb3ZlcmxheVN0eWxlcz86IENTU1N0eWxlRGVjbGFyYXRpb247XG4gIHByaXZhdGUgX2ZyYW1lPzogUmV0dXJuVHlwZTx0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lPjtcbiAgcHJpdmF0ZSBfYW5jaG9yTmFtZSA9IGAtLXNiYi1vdmVybGF5LWFuY2hvci0keysrbmV4dElkfWA7XG4gIHByaXZhdGUgX3Bvc2l0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSBfbGFzdFBvc2l0aW9uPzogc3RyaW5nO1xuXG4gIC8qKiBHZXQgdGhlIGN1cnJlbnQgcG9zaXRpb24uIChlLmcuIGJsb2NrLWVuZCwgYmxvY2stc3RhcnQsIGV0Yy4pICovXG4gIHB1YmxpYyBnZXQgY3VycmVudFBvc2l0aW9uKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuX3VzZVBvbHlmaWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbGFzdFBvc2l0aW9uID8/IHRoaXMuX3Bvc2l0aW9uc1swXSA/PyAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fb3ZlcmxheVN0eWxlcyA/Pz0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9vdmVybGF5KTtcbiAgICAgIHJldHVybiB0aGlzLl9vdmVybGF5U3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ3Bvc2l0aW9uLWFyZWEnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50ICYgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSxcbiAgICBwcml2YXRlIF91c2VQb2x5ZmlsbCA9ICFjc3NBbmNob3JQb3NpdGlvblN1cHBvcnRlZCxcbiAgKSB7XG4gICAgaG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICAgIHRoaXMuX292ZXJsYXkgPSBob3N0O1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl91c2VQb2x5ZmlsbCkge1xuICAgICAgdGhpcy5fb3ZlcmxheS5zdHlsZS5zZXRQcm9wZXJ0eSgncG9zaXRpb24tYW5jaG9yJywgdGhpcy5fYW5jaG9yTmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlc2V0IHRoZSAncG9zaXRpb24tYXJlYScgdmFsdWUgdG8gYXZvaWQgYW55IHVud2FudGVkIHNpZGUgZWZmZWN0IHdoZW4gdXNpbmcgdGhlIHBvbHlmaWxsLlxuICAgICAgdGhpcy5fb3ZlcmxheS5zdHlsZS5zZXRQcm9wZXJ0eSgncG9zaXRpb24tYXJlYScsICdpbml0aWFsJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhvc3RVcGRhdGUoKTogdm9pZCB7XG4gICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3JlYWRQb3NpdGlvbnNGcm9tQ3NzKCk7XG4gIH1cblxuICAvKipcbiAgICogQ29ubmVjdHMgdGhlIG92ZXJsYXkgdG8gdGhlIGdpdmVuIHRyaWdnZXIgZWxlbWVudCBhbmQgZGV0ZXJtaW5lcyB0aGUgb3B0aW1hbCBwb3NpdGlvbi5cbiAgICogVXN1YWxseSwgdGhpcyBpcyBjYWxsZWQgd2hlbiB0aGUgb3ZlcmxheSBpcyBvcGVuZWQuXG4gICAqIEBwYXJhbSBhbmNob3IgVGhlIGFuY2hvciBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGNvbm5lY3QoYW5jaG9yOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9hbmNob3IpIHtcbiAgICAgIHRoaXMuZGlzY29ubmVjdCgpO1xuICAgIH1cbiAgICB0aGlzLl9hbmNob3IgPSBhbmNob3I7XG5cbiAgICBpZiAoIXRoaXMuX3VzZVBvbHlmaWxsKSB7XG4gICAgICB0aGlzLl9hbmNob3Iuc3R5bGUuc2V0UHJvcGVydHkoJ2FuY2hvci1uYW1lJywgdGhpcy5fYW5jaG9yTmFtZSEpO1xuICAgIH1cblxuICAgIHRoaXMuX3JlYWRQb3NpdGlvbnNGcm9tQ3NzKCk7XG4gICAgdGhpcy5fY2FsY3VsYXRlUG9zaXRpb24oKTtcbiAgICB0aGlzLl9hYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gICAgLy8gV2UgbmVlZCB0byB1c2UgY2FwdHVyZSBoZXJlIHRvIHJlYWN0IHRvIGFsbCBzY3JvbGwgZXZlbnRzLlxuICAgIC8vIElmIGNhcHR1cmUgd2FzIG5vdCB1c2VkLCB0aGVuIHNjcm9sbCBldmVudHMgaW5zaWRlIHNlcGFyYXRlIHNjcm9sbFxuICAgIC8vIGNvbnRhaW5lcnMgd291bGQgbm90IGJlIGNhdWdodC5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB0aGlzLl9yZXF1ZXN0Q2FsY3VsYXRlUG9zaXRpb24oKSwge1xuICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX2Fib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsICgpID0+IHRoaXMuX3JlcXVlc3RDYWxjdWxhdGVQb3NpdGlvbigpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl9hYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoYW5jaG9yLCB7IGJveDogJ2JvcmRlci1ib3gnIH0pO1xuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5fb3ZlcmxheSwgeyBib3g6ICdib3JkZXItYm94JyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNjb25uZWN0KCk6IHZvaWQge1xuICAgIHRoaXMuX2FuY2hvcj8uc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2FuY2hvci1uYW1lJyk7XG4gICAgdGhpcy5fYW5jaG9yID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIF9yZXF1ZXN0Q2FsY3VsYXRlUG9zaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fZnJhbWUgPz89IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLl9jYWxjdWxhdGVQb3NpdGlvbigpO1xuICAgICAgdGhpcy5fZnJhbWUgPSB1bmRlZmluZWQ7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jYWxjdWxhdGVQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2FuY2hvcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl91c2VQb2x5ZmlsbCkge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLl9nZXRPcHRpbWFsUG9zaXRpb24odGhpcy5fcG9zaXRpb25zKTtcbiAgICAgIHRoaXMuX2FwcGx5T3ZlcmxheVBvc2l0aW9uKHBvc2l0aW9uLnBvc2l0aW9uLCBwb3NpdGlvbi5sZWZ0LCBwb3NpdGlvbi50b3ApO1xuICAgIH1cblxuICAgIHRoaXMuX292ZXJsYXkuc2V0QXR0cmlidXRlKCdkYXRhLXBvc2l0aW9uJywgdGhpcy5jdXJyZW50UG9zaXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIG9wdGltYWwgcG9zaXRpb24gdGhhdCBmaXRzIHRoZSBvdmVybGF5LlxuICAgKiBAcGFyYW0gcG9zaXRpb25zIFRoZSBsaXN0IG9mIHBvc2l0aW9ucyB0byBjaGVjay5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgX2dldE9wdGltYWxQb3NpdGlvbihwb3NpdGlvbnM6IHN0cmluZ1tdKToge1xuICAgIGxlZnQ6IG51bWJlcjtcbiAgICB0b3A6IG51bWJlcjtcbiAgICBwb3NpdGlvbjogc3RyaW5nO1xuICAgIGZpdHM/OiBib29sZWFuO1xuICB9IHtcbiAgICBjb25zdCB7IG9mZnNldEhlaWdodDogb3ZlcmxheUhlaWdodCwgb2Zmc2V0V2lkdGg6IG92ZXJsYXlXaWR0aCB9ID0gdGhpcy5fb3ZlcmxheTtcbiAgICBjb25zdCB7IGlubmVySGVpZ2h0OiB2aWV3cG9ydEhlaWdodCwgaW5uZXJXaWR0aDogdmlld3BvcnRXaWR0aCB9ID0gd2luZG93O1xuICAgIGNvbnN0IHtcbiAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCxcbiAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0LFxuICAgICAgaGVpZ2h0OiB0cmlnZ2VySGVpZ2h0LFxuICAgICAgd2lkdGg6IHRyaWdnZXJXaWR0aCxcbiAgICB9ID0gdGhpcy5fYW5jaG9yIS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGNvbnN0IGlzUnRsID0gdGhpcy5fb3ZlcmxheS5tYXRjaGVzKCc6ZGlyKHJ0bCknKTtcbiAgICBjb25zdCB0b3BTcGFjZSA9IHRyaWdnZXJPZmZzZXRUb3A7XG4gICAgY29uc3QgYm90dG9tU3BhY2UgPSB2aWV3cG9ydEhlaWdodCAtIHRyaWdnZXJIZWlnaHQgLSB0cmlnZ2VyT2Zmc2V0VG9wO1xuICAgIGNvbnN0IGxlZnRTcGFjZSA9IHRyaWdnZXJPZmZzZXRMZWZ0O1xuICAgIGNvbnN0IHJpZ2h0U3BhY2UgPSB2aWV3cG9ydFdpZHRoIC0gdHJpZ2dlcldpZHRoIC0gdHJpZ2dlck9mZnNldExlZnQ7XG5cbiAgICAvLyBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBvdmVybGF5IGFuZCB0aGUgdHJpZ2dlciB3aWR0aC9oZWlnaHQuXG4gICAgY29uc3Qgb3ZlcmxheVdpZHRoTmV0ID0gb3ZlcmxheVdpZHRoIC0gdHJpZ2dlcldpZHRoO1xuICAgIGNvbnN0IG92ZXJsYXlIZWlnaHROZXQgPSBvdmVybGF5SGVpZ2h0IC0gdHJpZ2dlckhlaWdodDtcblxuICAgIC8vIFRoZSBhbW91bnQgdGhhdCB3b3VsZCBleGNlZWQgdGhlIHRyaWdnZXIgaWYgdGhlIG92ZXJsYXkgd2VyZSBjZW50ZXJlZCBvbiBpdC5cbiAgICBjb25zdCBvdmVybGF5V2lkdGhPdmVybGFwID0gb3ZlcmxheVdpZHRoTmV0IC8gMjtcbiAgICBjb25zdCBvdmVybGF5SGVpZ2h0T3ZlcmxhcCA9IG92ZXJsYXlIZWlnaHROZXQgLyAyO1xuXG4gICAgdGhpcy5fb3ZlcmxheS5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICctLXNiYi1vdmVybGF5LWNvbnRyb2xsZXItdHJpZ2dlci1oZWlnaHQnLFxuICAgICAgYCR7dHJpZ2dlckhlaWdodH1weGAsXG4gICAgKTtcbiAgICB0aGlzLl9vdmVybGF5LnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1vdmVybGF5LWNvbnRyb2xsZXItdHJpZ2dlci13aWR0aCcsIGAke3RyaWdnZXJXaWR0aH1weGApO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtYXNzaWdubWVudFxuICAgIGxldCByZXN1bHQ6IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuX2dldE9wdGltYWxQb3NpdGlvbj4gPSB7IGxlZnQ6IDAsIHRvcDogMCwgcG9zaXRpb246ICcnIH07XG4gICAgbGV0IGZpcnN0UG9zaXRpb246IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuX2dldE9wdGltYWxQb3NpdGlvbj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgZm9yIChjb25zdCBwb3NpdGlvbiBvZiBwb3NpdGlvbnMpIHtcbiAgICAgIC8vIElmIHJ0bCBpcyBlbmFibGVkLCB3ZSBtYXAgdGhlIGxvZ2ljYWwgcG9zaXRpb24gdG8gdGhlaXIgUlRMIGVxdWl2YWxlbnQuIChlLmcuICdpbmxpbmUtc3RhcnQnIC0+ICdpbmxpbmUtZW5kJylcbiAgICAgIGNvbnN0IHBoeXNpY2FsUG9zaXRpb24gPVxuICAgICAgICBpc1J0bCAmJiBsb2dpY2FsU3VwcG9ydGVkUG9zaXRpb25zLmluY2x1ZGVzKHBvc2l0aW9uKVxuICAgICAgICAgID8gcnRsUG9zaXRpb25NYXBwaW5nW3Bvc2l0aW9uXVxuICAgICAgICAgIDogcG9zaXRpb247XG5cbiAgICAgIHN3aXRjaCAocGh5c2ljYWxQb3NpdGlvbikge1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICBjYXNlICdibG9jay1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGhPdmVybGFwLFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wICsgdHJpZ2dlckhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHQgPD0gYm90dG9tU3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheVdpZHRoT3ZlcmxhcCA8PSBsZWZ0U3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheVdpZHRoT3ZlcmxhcCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0JzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0IC0gb3ZlcmxheVdpZHRoT3ZlcmxhcCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCAtIG92ZXJsYXlIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOlxuICAgICAgICAgICAgICBvdmVybGF5SGVpZ2h0IDw9IHRvcFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aE92ZXJsYXAgPD0gbGVmdFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aE92ZXJsYXAgPD0gcmlnaHRTcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIGNhc2UgJ2lubGluZS1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgKyB0cmlnZ2VyV2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgLSBvdmVybGF5SGVpZ2h0T3ZlcmxhcCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aCA8PSByaWdodFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHRPdmVybGFwIDw9IHRvcFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHRPdmVybGFwIDw9IGJvdHRvbVNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgLSBvdmVybGF5SGVpZ2h0T3ZlcmxhcCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aCA8PSBsZWZ0U3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheUhlaWdodE92ZXJsYXAgPD0gdG9wU3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheUhlaWdodE92ZXJsYXAgPD0gYm90dG9tU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndG9wIHNwYW4tbGVmdCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0JzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0IC0gb3ZlcmxheVdpZHRoTmV0LFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wIC0gb3ZlcmxheUhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6IG92ZXJsYXlIZWlnaHQgPD0gdG9wU3BhY2UgJiYgb3ZlcmxheVdpZHRoTmV0IDw9IGxlZnRTcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd0b3Agc3Bhbi1yaWdodCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLWVuZCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCAtIG92ZXJsYXlIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5SGVpZ2h0IDw9IHRvcFNwYWNlICYmIG92ZXJsYXlXaWR0aE5ldCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JvdHRvbSBzcGFuLWxlZnQnOlxuICAgICAgICBjYXNlICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGhOZXQsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgKyB0cmlnZ2VySGVpZ2h0LFxuICAgICAgICAgICAgZml0czogb3ZlcmxheUhlaWdodCA8PSBib3R0b21TcGFjZSAmJiBvdmVybGF5V2lkdGhOZXQgPD0gbGVmdFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JvdHRvbSBzcGFuLXJpZ2h0JzpcbiAgICAgICAgY2FzZSAnYmxvY2stZW5kIHNwYW4taW5saW5lLWVuZCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCArIHRyaWdnZXJIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5SGVpZ2h0IDw9IGJvdHRvbVNwYWNlICYmIG92ZXJsYXlXaWR0aE5ldCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQgc3Bhbi10b3AnOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1zdGFydCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCAtIG92ZXJsYXlXaWR0aCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCArIHRyaWdnZXJIZWlnaHQgLSBvdmVybGF5SGVpZ2h0LFxuICAgICAgICAgICAgZml0czogb3ZlcmxheVdpZHRoIDw9IGxlZnRTcGFjZSAmJiBvdmVybGF5SGVpZ2h0TmV0IDw9IHRvcFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQgc3Bhbi1ib3R0b20nOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5V2lkdGggPD0gbGVmdFNwYWNlICYmIG92ZXJsYXlIZWlnaHROZXQgPD0gYm90dG9tU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmlnaHQgc3Bhbi10b3AnOlxuICAgICAgICBjYXNlICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgKyB0cmlnZ2VyV2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgKyB0cmlnZ2VySGVpZ2h0IC0gb3ZlcmxheUhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6IG92ZXJsYXlXaWR0aCA8PSByaWdodFNwYWNlICYmIG92ZXJsYXlIZWlnaHROZXQgPD0gdG9wU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmlnaHQgc3Bhbi1ib3R0b20nOlxuICAgICAgICBjYXNlICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stZW5kJzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0ICsgdHJpZ2dlcldpZHRoLFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wLFxuICAgICAgICAgICAgZml0czogb3ZlcmxheVdpZHRoIDw9IHJpZ2h0U3BhY2UgJiYgb3ZlcmxheUhlaWdodE5ldCA8PSBib3R0b21TcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKHJlc3VsdC5maXRzKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBmaXJzdFBvc2l0aW9uID8/PSByZXN1bHQ7XG4gICAgfVxuXG4gICAgLy8gSWYgbm8gcG9zaXRpb24gZml0cywgd2UgcmV0dXJuIHRoZSBmaXJzdCBvbmUuXG4gICAgcmV0dXJuIGZpcnN0UG9zaXRpb24hO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXBwbHlPdmVybGF5UG9zaXRpb24ocG9zaXRpb246IHN0cmluZywgbGVmdDogbnVtYmVyLCB0b3A6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX2xhc3RQb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgIHRoaXMuX292ZXJsYXkuc3R5bGUubGVmdCA9IGAke2xlZnR9cHhgO1xuICAgIHRoaXMuX292ZXJsYXkuc3R5bGUudG9wID0gYCR7dG9wfXB4YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbmx5IHVzZWQgaW4gcG9seWZpbGwgbW9kZS5cbiAgICogUmVhZHMgdGhlIGxpc3Qgb2YgdGhlIGNvbmZpZ3VyZWQgcG9zaXRpb25zIGZyb20gdGhlIENTUyB2YXJpYWJsZXMuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9yZWFkUG9zaXRpb25zRnJvbUNzcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3VzZVBvbHlmaWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX292ZXJsYXlTdHlsZXMgPz89IGdldENvbXB1dGVkU3R5bGUodGhpcy5fb3ZlcmxheSk7XG4gICAgY29uc3QgcG9zaXRpb25zID0gW1xuICAgICAgdGhpcy5fb3ZlcmxheVN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCctLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEnKSB8fCAnYmxvY2stZW5kJyxcbiAgICAgIC4uLnRoaXMuX292ZXJsYXlTdHlsZXNcbiAgICAgICAgLmdldFByb3BlcnR5VmFsdWUoJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcycpXG4gICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgIC5tYXAoKGYpID0+IGYudHJpbSgpKVxuICAgICAgICAuZmlsdGVyKChmKSA9PiAhIWYpLFxuICAgIF07XG5cbiAgICBpZiAoaW1wb3J0Lm1ldGEuZW52LkRFViAmJiBwb3NpdGlvbnMuc29tZSgocCkgPT4gIXN1cHBvcnRlZFBvc2l0aW9ucy5pbmNsdWRlcyhwKSkpIHtcbiAgICAgIGNvbnN0IHVuc3VwcG9ydGVkUG9zaXRpb25zID0gcG9zaXRpb25zXG4gICAgICAgIC5maWx0ZXIoKHApID0+ICFzdXBwb3J0ZWRQb3NpdGlvbnMuaW5jbHVkZXMocCkpXG4gICAgICAgIC5zb3J0KClcbiAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBVbnN1cHBvcnRlZCBwb3NpdGlvbi10cnktZmFsbGJhY2tzICR7dW5zdXBwb3J0ZWRQb3NpdGlvbnN9IChTdXBwb3J0ZWQ6ICR7c3VwcG9ydGVkUG9zaXRpb25zLmpvaW4oJywgJyl9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuX3Bvc2l0aW9ucyA9IHBvc2l0aW9ucztcbiAgICBpZiAodGhpcy5fbGFzdFBvc2l0aW9uICYmICF0aGlzLl9wb3NpdGlvbnMuaW5jbHVkZXModGhpcy5fbGFzdFBvc2l0aW9uKSkge1xuICAgICAgdGhpcy5fbGFzdFBvc2l0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUlBLElBQU0sNkJBQTZCLENBQUMsWUFBWSxJQUFJLFNBQVMsZUFBZSxRQUFRO0FBRXBGLElBQU0sNkJBQTZCO0NBQ2pDO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTs7QUFJRixJQUFNLDRCQUE0QjtDQUNoQztDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7O0FBR0YsSUFBTSxxQkFBZ0Q7Q0FDcEQsZUFBZTtDQUNmLGFBQWE7Q0FDYixnQkFBZ0I7Q0FDaEIsY0FBYztDQUNkLGlDQUFpQztDQUNqQywrQkFBK0I7Q0FDL0IsK0JBQStCO0NBQy9CLDZCQUE2QjtDQUM3QixpQ0FBaUM7Q0FDakMsK0JBQStCO0NBQy9CLCtCQUErQjtDQUMvQiw2QkFBNkI7O0FBR0osQ0FBQyxHQUFHLDRCQUE0QixHQUFHLHlCQUF5QjtBQUN2RixJQUFJLFNBQVM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBcUJiLElBQWEsK0JBQWIsTUFBeUM7O0NBY3ZDLElBQVcsa0JBQWU7RUFDeEIsSUFBSSxLQUFLLGNBQ1AsT0FBTyxLQUFLLGlCQUFpQixLQUFLLFdBQVcsTUFBTTtPQUM5QztHQUNMLEtBQUssbUJBQW1CLGlCQUFpQixLQUFLLFFBQVE7R0FDdEQsT0FBTyxLQUFLLGVBQWUsaUJBQWlCLGVBQWU7RUFDN0Q7Q0FD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
@@ -93,4 +93,4 @@ var SbbPropertyWatcherController = class {
93
93
  //#endregion
94
94
  export { SbbPropertyWatcherController };
95
95
 
96
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktd2F0Y2hlci1jb250cm9sbGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL3Byb3BlcnR5LXdhdGNoZXItY29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIFJlYWN0aXZlQ29udHJvbGxlckhvc3QsXG4gIHR5cGUgTGl0RWxlbWVudCxcbiAgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsXG4gIGlzU2VydmVyLFxufSBmcm9tICdsaXQnO1xuXG50eXBlIFByb3BlcnR5V2F0Y2hlckhhbmRsZXI8VCBleHRlbmRzIExpdEVsZW1lbnQ+ID0gKHJlZmVyZW5jZTogVCkgPT4gdm9pZDtcblxuY2xhc3MgUHJvcGVydHlXYXRjaGVyPFQgZXh0ZW5kcyBMaXRFbGVtZW50PiBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHByaXZhdGUgX3ZhbHVlOiB1bmtub3duO1xuICBwcml2YXRlIF9oYW5kbGVycyA9IG5ldyBTZXQ8UHJvcGVydHlXYXRjaGVySGFuZGxlcjxUPj4oKTtcbiAgcHJpdmF0ZSBfaG9zdERlZmluZWRQcm9taXNlOiBQcm9taXNlPHZvaWQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGdldCBzaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2hhbmRsZXJzLnNpemU7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaG9zdDogVCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9wcm9wZXJ0eTogc3RyaW5nLFxuICApIHtcbiAgICBpZiAoIWlzU2VydmVyKSB7XG4gICAgICBpZiAoY3VzdG9tRWxlbWVudHMuZ2V0KHRoaXMuX2hvc3QubG9jYWxOYW1lKSkge1xuICAgICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKHRoaXMuX2hvc3QpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVGhlIGhvc3QgZWxlbWVudCBpcyBub3QgeWV0IGRlZmluZWQsIHdhaXQgZm9yIGl0cyBkZWZpbml0aW9uIGJlZm9yZSB1cGdyYWRpbmdcbiAgICAgICAgdGhpcy5faG9zdERlZmluZWRQcm9taXNlID0gY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQodGhpcy5faG9zdC5sb2NhbE5hbWUpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIGN1c3RvbUVsZW1lbnRzLnVwZ3JhZGUodGhpcy5faG9zdCk7XG4gICAgICAgICAgdGhpcy5faG9zdERlZmluZWRQcm9taXNlID0gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX3ZhbHVlID0gKHRoaXMuX2hvc3QgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbdGhpcy5fcHJvcGVydHldO1xuICB9XG5cbiAgcHVibGljIGFkZEhhbmRsZXIoaGFuZGxlcjogUHJvcGVydHlXYXRjaGVySGFuZGxlcjxUPik6IHZvaWQge1xuICAgIGlmICghdGhpcy5faGFuZGxlcnMuc2l6ZSkge1xuICAgICAgLy8gV2UgY2hlY2sgaWYgdGhlIGFkZENvbnRyb2xsZXIgbWV0aG9kIGlzIGF2YWlsYWJsZSAoZWxlbWVudCB3YXMgZGVmaW5lZCAmJiB1cGdyYWRlZCksIG90aGVyd2lzZSB3ZSB3YWl0IGZvciB0aGUgaG9zdCB0byBiZSBkZWZpbmVkXG4gICAgICBpZiAodGhpcy5faG9zdC5hZGRDb250cm9sbGVyKSB7XG4gICAgICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5faG9zdERlZmluZWRQcm9taXNlKSB7XG4gICAgICAgIHRoaXMuX2hvc3REZWZpbmVkUHJvbWlzZS50aGVuKCgpID0+IHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX2hhbmRsZXJzLmFkZChoYW5kbGVyKTtcblxuICAgIGlmICghdGhpcy5faG9zdERlZmluZWRQcm9taXNlKSB7XG4gICAgICBoYW5kbGVyKHRoaXMuX2hvc3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9ob3N0RGVmaW5lZFByb21pc2UudGhlbigoKSA9PiBoYW5kbGVyKHRoaXMuX2hvc3QpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlSGFuZGxlcihoYW5kbGVyOiBQcm9wZXJ0eVdhdGNoZXJIYW5kbGVyPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5faGFuZGxlcnMuZGVsZXRlKGhhbmRsZXIpO1xuICAgIGlmICghdGhpcy5faGFuZGxlcnMuc2l6ZSkge1xuICAgICAgLy8gV2UgY2hlY2sgaWYgdGhlIHJlbW92ZUNvbnRyb2xsZXIgbWV0aG9kIGlzIGF2YWlsYWJsZSAoZWxlbWVudCB3YXMgZGVmaW5lZCAmJiB1cGdyYWRlZCksIG90aGVyd2lzZSB3ZSB3YWl0IGZvciB0aGUgaG9zdCB0byBiZSBkZWZpbmVkXG4gICAgICBpZiAodGhpcy5faG9zdC5yZW1vdmVDb250cm9sbGVyKSB7XG4gICAgICAgIHRoaXMuX2hvc3QucmVtb3ZlQ29udHJvbGxlcih0aGlzKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5faG9zdERlZmluZWRQcm9taXNlKSB7XG4gICAgICAgIHRoaXMuX2hvc3REZWZpbmVkUHJvbWlzZS50aGVuKCgpID0+IHRoaXMuX2hvc3QucmVtb3ZlQ29udHJvbGxlcih0aGlzKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhvc3RVcGRhdGUoKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gKHRoaXMuX2hvc3QgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbdGhpcy5fcHJvcGVydHldO1xuICAgIGlmICh0aGlzLl92YWx1ZSAhPT0gY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IGN1cnJlbnRWYWx1ZTtcbiAgICAgIGZvciAoY29uc3QgaGFuZGxlciBvZiB0aGlzLl9oYW5kbGVycykge1xuICAgICAgICBoYW5kbGVyKHRoaXMuX2hvc3QpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBwcm9wZXJ0eVdhdGNoZXJzID0gbmV3IFdlYWtNYXA8TGl0RWxlbWVudCwgTWFwPHN0cmluZywgUHJvcGVydHlXYXRjaGVyPGFueT4+PigpO1xuXG5leHBvcnQgY2xhc3MgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcjxUIGV4dGVuZHMgTGl0RWxlbWVudD4gaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwcml2YXRlIF9yZWZlcmVuY2U/OiBUIHwgbnVsbDtcbiAgcHJpdmF0ZSBfd2F0Y2hlcnM/OiBNYXA8c3RyaW5nLCBQcm9wZXJ0eVdhdGNoZXI8VD4+O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ob3N0OiBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0ICYgSFRNTEVsZW1lbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcmVmZXJlbmNlUmVzb2x2ZXI6ICgpID0+IFQgfCBudWxsLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2hhbmRsZXJzOiBQYXJ0aWFsPFJlY29yZDxrZXlvZiBULCBQcm9wZXJ0eVdhdGNoZXJIYW5kbGVyPFQ+Pj4sXG4gICkge1xuICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuY29ubmVjdCgpO1xuICB9XG5cbiAgcHVibGljIGhvc3REaXNjb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3JlZmVyZW5jZSAhPT0gdGhpcy5fcmVmZXJlbmNlUmVzb2x2ZXIoKSkge1xuICAgICAgdGhpcy5kaXNjb25uZWN0KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNvbm5lY3QoKTogdm9pZCB7XG4gICAgY29uc3QgcmVmZXJlbmNlID0gdGhpcy5fcmVmZXJlbmNlUmVzb2x2ZXIoKTtcbiAgICBpZiAodGhpcy5fcmVmZXJlbmNlID09PSByZWZlcmVuY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5fcmVmZXJlbmNlID0gcmVmZXJlbmNlO1xuICAgIGlmICghdGhpcy5fcmVmZXJlbmNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCB3YXRjaGVycyA9IHByb3BlcnR5V2F0Y2hlcnMuZ2V0KHRoaXMuX3JlZmVyZW5jZSkgYXNcbiAgICAgIHwgTWFwPHN0cmluZywgUHJvcGVydHlXYXRjaGVyPFQ+PlxuICAgICAgfCB1bmRlZmluZWQ7XG4gICAgaWYgKCF3YXRjaGVycykge1xuICAgICAgd2F0Y2hlcnMgPSBuZXcgTWFwKCk7XG4gICAgICBwcm9wZXJ0eVdhdGNoZXJzLnNldCh0aGlzLl9yZWZlcmVuY2UsIHdhdGNoZXJzKTtcbiAgICB9XG4gICAgdGhpcy5fd2F0Y2hlcnMgPSB3YXRjaGVycztcblxuICAgIGZvciAoY29uc3QgW3Byb3BlcnR5LCBoYW5kbGVyXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLl9oYW5kbGVycykpIHtcbiAgICAgIGxldCB3YXRjaGVyID0gdGhpcy5fd2F0Y2hlcnMuZ2V0KHByb3BlcnR5KTtcbiAgICAgIGlmICghd2F0Y2hlcikge1xuICAgICAgICB3YXRjaGVyID0gbmV3IFByb3BlcnR5V2F0Y2hlcjxUPih0aGlzLl9yZWZlcmVuY2UsIHByb3BlcnR5KTtcbiAgICAgICAgdGhpcy5fd2F0Y2hlcnMuc2V0KHByb3BlcnR5LCB3YXRjaGVyKTtcbiAgICAgIH1cbiAgICAgIHdhdGNoZXIuYWRkSGFuZGxlcihoYW5kbGVyKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGlzY29ubmVjdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3JlZmVyZW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW3Byb3BlcnR5LCBoYW5kbGVyXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLl9oYW5kbGVycykpIHtcbiAgICAgIGNvbnN0IHdhdGNoZXIgPSB0aGlzLl93YXRjaGVycz8uZ2V0KHByb3BlcnR5KTtcbiAgICAgIGlmICh3YXRjaGVyKSB7XG4gICAgICAgIHdhdGNoZXIucmVtb3ZlSGFuZGxlcihoYW5kbGVyKTtcbiAgICAgICAgaWYgKCF3YXRjaGVyLnNpemUpIHtcbiAgICAgICAgICB0aGlzLl93YXRjaGVycyEuZGVsZXRlKHByb3BlcnR5KTtcbiAgICAgICAgICBpZiAoIXRoaXMuX3dhdGNoZXJzIS5zaXplICYmIHRoaXMuX3JlZmVyZW5jZSkge1xuICAgICAgICAgICAgcHJvcGVydHlXYXRjaGVycy5kZWxldGUodGhpcy5fcmVmZXJlbmNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fcmVmZXJlbmNlID0gbnVsbDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQVNBLElBQU0sa0JBQU4sTUFBcUI7Q0FLbkIsSUFBVyxPQUFJO0VBQ2IsT0FBTyxLQUFLLFVBQVU7O0NBR3hCLFlBQ21CLE9BQ0EsV0FBaUI7RUFEakIsS0FBQSxRQUFBO0VBQ0EsS0FBQSxZQUFBO0VBVFgsS0FBQSw0QkFBWSxJQUFJLEtBQWdDO0VBQ2hELEtBQUEsc0JBQTRDO0VBVWxELElBQUksQ0FBQyxVQUNILElBQUksZUFBZSxJQUFJLEtBQUssTUFBTSxVQUFVLEVBQzFDLGVBQWUsUUFBUSxLQUFLLE1BQU07T0FHbEMsS0FBSyxzQkFBc0IsZUFBZSxZQUFZLEtBQUssTUFBTSxVQUFVLENBQUMsV0FBVTtHQUNwRixlQUFlLFFBQVEsS0FBSyxNQUFNO0dBQ2xDLEtBQUssc0JBQXNCO0lBQzNCO0VBR04sS0FBSyxTQUFVLEtBQUssTUFBNkMsS0FBSzs7Q0FHakUsV0FBVyxTQUFrQztFQUNsRCxJQUFJLENBQUMsS0FBSyxVQUFVO09BRWQsS0FBSyxNQUFNLGVBQ2IsS0FBSyxNQUFNLGNBQWMsS0FBSztRQUN6QixJQUFJLEtBQUsscUJBQ2QsS0FBSyxvQkFBb0IsV0FBVyxLQUFLLE1BQU0sY0FBYyxLQUFLLENBQUM7O0VBR3ZFLEtBQUssVUFBVSxJQUFJLFFBQVE7RUFFM0IsSUFBSSxDQUFDLEtBQUsscUJBQ1IsUUFBUSxLQUFLLE1BQU07T0FFbkIsS0FBSyxvQkFBb0IsV0FBVyxRQUFRLEtBQUssTUFBTSxDQUFDOztDQUlyRCxjQUFjLFNBQWtDO0VBQ3JELEtBQUssVUFBVSxPQUFPLFFBQVE7RUFDOUIsSUFBSSxDQUFDLEtBQUssVUFBVTtPQUVkLEtBQUssTUFBTSxrQkFDYixLQUFLLE1BQU0saUJBQWlCLEtBQUs7UUFDNUIsSUFBSSxLQUFLLHFCQUNkLEtBQUssb0JBQW9CLFdBQVcsS0FBSyxNQUFNLGlCQUFpQixLQUFLLENBQUM7OztDQUtyRSxhQUFVO0VBQ2YsTUFBTSxlQUFnQixLQUFLLE1BQTZDLEtBQUs7RUFDN0UsSUFBSSxLQUFLLFdBQVcsY0FBYztHQUNoQyxLQUFLLFNBQVM7R0FDZCxLQUFLLE1BQU0sV0FBVyxLQUFLLFdBQ3pCLFFBQVEsS0FBSyxNQUFNOzs7O0FBTTNCLElBQU0sbUNBQW1CLElBQUksU0FBd0Q7QUFFckYsSUFBYSwrQkFBYixNQUF5QztDQUl2QyxZQUNtQixPQUNBLG9CQUNBLFdBQThEO0VBRjlELEtBQUEsUUFBQTtFQUNBLEtBQUEscUJBQUE7RUFDQSxLQUFBLFlBQUE7RUFFakIsS0FBSyxNQUFNLGNBQWMsS0FBSzs7Q0FHekIsZ0JBQWE7RUFDbEIsS0FBSyxTQUFTOztDQUdULG1CQUFnQjtFQUNyQixJQUFJLEtBQUssZUFBZSxLQUFLLG9CQUFvQixFQUMvQyxLQUFLLFlBQVk7O0NBSWQsVUFBTztFQUNaLE1BQU0sWUFBWSxLQUFLLG9CQUFvQjtFQUMzQyxJQUFJLEtBQUssZUFBZSxXQUN0QjtFQUVGLEtBQUssWUFBWTtFQUNqQixLQUFLLGFBQWE7RUFDbEIsSUFBSSxDQUFDLEtBQUssWUFDUjtFQUVGLElBQUksV0FBVyxpQkFBaUIsSUFBSSxLQUFLLFdBRTVCO0VBQ2IsSUFBSSxDQUFDLFVBQVU7R0FDYiwyQkFBVyxJQUFJLEtBQUs7R0FDcEIsaUJBQWlCLElBQUksS0FBSyxZQUFZLFNBQVM7O0VBRWpELEtBQUssWUFBWTtFQUVqQixLQUFLLE1BQU0sQ0FBQyxVQUFVLFlBQVksT0FBTyxRQUFRLEtBQUssVUFBVSxFQUFFO0dBQ2hFLElBQUksVUFBVSxLQUFLLFVBQVUsSUFBSSxTQUFTO0dBQzFDLElBQUksQ0FBQyxTQUFTO0lBQ1osVUFBVSxJQUFJLGdCQUFtQixLQUFLLFlBQVksU0FBUztJQUMzRCxLQUFLLFVBQVUsSUFBSSxVQUFVLFFBQVE7O0dBRXZDLFFBQVEsV0FBVyxRQUFROzs7Q0FJeEIsYUFBVTtFQUNmLElBQUksQ0FBQyxLQUFLLFlBQ1I7RUFHRixLQUFLLE1BQU0sQ0FBQyxVQUFVLFlBQVksT0FBTyxRQUFRLEtBQUssVUFBVSxFQUFFO0dBQ2hFLE1BQU0sVUFBVSxLQUFLLFdBQVcsSUFBSSxTQUFTO0dBQzdDLElBQUksU0FBUztJQUNYLFFBQVEsY0FBYyxRQUFRO0lBQzlCLElBQUksQ0FBQyxRQUFRLE1BQU07S0FDakIsS0FBSyxVQUFXLE9BQU8sU0FBUztLQUNoQyxJQUFJLENBQUMsS0FBSyxVQUFXLFFBQVEsS0FBSyxZQUNoQyxpQkFBaUIsT0FBTyxLQUFLLFdBQVc7Ozs7RUFLaEQsS0FBSyxhQUFhIn0=
96
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktd2F0Y2hlci1jb250cm9sbGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL3Byb3BlcnR5LXdhdGNoZXItY29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIFJlYWN0aXZlQ29udHJvbGxlckhvc3QsXG4gIHR5cGUgTGl0RWxlbWVudCxcbiAgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsXG4gIGlzU2VydmVyLFxufSBmcm9tICdsaXQnO1xuXG50eXBlIFByb3BlcnR5V2F0Y2hlckhhbmRsZXI8VCBleHRlbmRzIExpdEVsZW1lbnQ+ID0gKHJlZmVyZW5jZTogVCkgPT4gdm9pZDtcblxuY2xhc3MgUHJvcGVydHlXYXRjaGVyPFQgZXh0ZW5kcyBMaXRFbGVtZW50PiBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHByaXZhdGUgX3ZhbHVlOiB1bmtub3duO1xuICBwcml2YXRlIF9oYW5kbGVycyA9IG5ldyBTZXQ8UHJvcGVydHlXYXRjaGVySGFuZGxlcjxUPj4oKTtcbiAgcHJpdmF0ZSBfaG9zdERlZmluZWRQcm9taXNlOiBQcm9taXNlPHZvaWQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGdldCBzaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2hhbmRsZXJzLnNpemU7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaG9zdDogVCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9wcm9wZXJ0eTogc3RyaW5nLFxuICApIHtcbiAgICBpZiAoIWlzU2VydmVyKSB7XG4gICAgICBpZiAoY3VzdG9tRWxlbWVudHMuZ2V0KHRoaXMuX2hvc3QubG9jYWxOYW1lKSkge1xuICAgICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKHRoaXMuX2hvc3QpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVGhlIGhvc3QgZWxlbWVudCBpcyBub3QgeWV0IGRlZmluZWQsIHdhaXQgZm9yIGl0cyBkZWZpbml0aW9uIGJlZm9yZSB1cGdyYWRpbmdcbiAgICAgICAgdGhpcy5faG9zdERlZmluZWRQcm9taXNlID0gY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQodGhpcy5faG9zdC5sb2NhbE5hbWUpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIGN1c3RvbUVsZW1lbnRzLnVwZ3JhZGUodGhpcy5faG9zdCk7XG4gICAgICAgICAgdGhpcy5faG9zdERlZmluZWRQcm9taXNlID0gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX3ZhbHVlID0gKHRoaXMuX2hvc3QgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbdGhpcy5fcHJvcGVydHldO1xuICB9XG5cbiAgcHVibGljIGFkZEhhbmRsZXIoaGFuZGxlcjogUHJvcGVydHlXYXRjaGVySGFuZGxlcjxUPik6IHZvaWQge1xuICAgIGlmICghdGhpcy5faGFuZGxlcnMuc2l6ZSkge1xuICAgICAgLy8gV2UgY2hlY2sgaWYgdGhlIGFkZENvbnRyb2xsZXIgbWV0aG9kIGlzIGF2YWlsYWJsZSAoZWxlbWVudCB3YXMgZGVmaW5lZCAmJiB1cGdyYWRlZCksIG90aGVyd2lzZSB3ZSB3YWl0IGZvciB0aGUgaG9zdCB0byBiZSBkZWZpbmVkXG4gICAgICBpZiAodGhpcy5faG9zdC5hZGRDb250cm9sbGVyKSB7XG4gICAgICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5faG9zdERlZmluZWRQcm9taXNlKSB7XG4gICAgICAgIHRoaXMuX2hvc3REZWZpbmVkUHJvbWlzZS50aGVuKCgpID0+IHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX2hhbmRsZXJzLmFkZChoYW5kbGVyKTtcblxuICAgIGlmICghdGhpcy5faG9zdERlZmluZWRQcm9taXNlKSB7XG4gICAgICBoYW5kbGVyKHRoaXMuX2hvc3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9ob3N0RGVmaW5lZFByb21pc2UudGhlbigoKSA9PiBoYW5kbGVyKHRoaXMuX2hvc3QpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlSGFuZGxlcihoYW5kbGVyOiBQcm9wZXJ0eVdhdGNoZXJIYW5kbGVyPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5faGFuZGxlcnMuZGVsZXRlKGhhbmRsZXIpO1xuICAgIGlmICghdGhpcy5faGFuZGxlcnMuc2l6ZSkge1xuICAgICAgLy8gV2UgY2hlY2sgaWYgdGhlIHJlbW92ZUNvbnRyb2xsZXIgbWV0aG9kIGlzIGF2YWlsYWJsZSAoZWxlbWVudCB3YXMgZGVmaW5lZCAmJiB1cGdyYWRlZCksIG90aGVyd2lzZSB3ZSB3YWl0IGZvciB0aGUgaG9zdCB0byBiZSBkZWZpbmVkXG4gICAgICBpZiAodGhpcy5faG9zdC5yZW1vdmVDb250cm9sbGVyKSB7XG4gICAgICAgIHRoaXMuX2hvc3QucmVtb3ZlQ29udHJvbGxlcih0aGlzKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5faG9zdERlZmluZWRQcm9taXNlKSB7XG4gICAgICAgIHRoaXMuX2hvc3REZWZpbmVkUHJvbWlzZS50aGVuKCgpID0+IHRoaXMuX2hvc3QucmVtb3ZlQ29udHJvbGxlcih0aGlzKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhvc3RVcGRhdGUoKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gKHRoaXMuX2hvc3QgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbdGhpcy5fcHJvcGVydHldO1xuICAgIGlmICh0aGlzLl92YWx1ZSAhPT0gY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IGN1cnJlbnRWYWx1ZTtcbiAgICAgIGZvciAoY29uc3QgaGFuZGxlciBvZiB0aGlzLl9oYW5kbGVycykge1xuICAgICAgICBoYW5kbGVyKHRoaXMuX2hvc3QpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBwcm9wZXJ0eVdhdGNoZXJzID0gbmV3IFdlYWtNYXA8TGl0RWxlbWVudCwgTWFwPHN0cmluZywgUHJvcGVydHlXYXRjaGVyPGFueT4+PigpO1xuXG5leHBvcnQgY2xhc3MgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcjxUIGV4dGVuZHMgTGl0RWxlbWVudD4gaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwcml2YXRlIF9yZWZlcmVuY2U/OiBUIHwgbnVsbDtcbiAgcHJpdmF0ZSBfd2F0Y2hlcnM/OiBNYXA8c3RyaW5nLCBQcm9wZXJ0eVdhdGNoZXI8VD4+O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ob3N0OiBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0ICYgSFRNTEVsZW1lbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcmVmZXJlbmNlUmVzb2x2ZXI6ICgpID0+IFQgfCBudWxsLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2hhbmRsZXJzOiBQYXJ0aWFsPFJlY29yZDxrZXlvZiBULCBQcm9wZXJ0eVdhdGNoZXJIYW5kbGVyPFQ+Pj4sXG4gICkge1xuICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuY29ubmVjdCgpO1xuICB9XG5cbiAgcHVibGljIGhvc3REaXNjb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3JlZmVyZW5jZSAhPT0gdGhpcy5fcmVmZXJlbmNlUmVzb2x2ZXIoKSkge1xuICAgICAgdGhpcy5kaXNjb25uZWN0KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNvbm5lY3QoKTogdm9pZCB7XG4gICAgY29uc3QgcmVmZXJlbmNlID0gdGhpcy5fcmVmZXJlbmNlUmVzb2x2ZXIoKTtcbiAgICBpZiAodGhpcy5fcmVmZXJlbmNlID09PSByZWZlcmVuY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5fcmVmZXJlbmNlID0gcmVmZXJlbmNlO1xuICAgIGlmICghdGhpcy5fcmVmZXJlbmNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCB3YXRjaGVycyA9IHByb3BlcnR5V2F0Y2hlcnMuZ2V0KHRoaXMuX3JlZmVyZW5jZSkgYXNcbiAgICAgIHwgTWFwPHN0cmluZywgUHJvcGVydHlXYXRjaGVyPFQ+PlxuICAgICAgfCB1bmRlZmluZWQ7XG4gICAgaWYgKCF3YXRjaGVycykge1xuICAgICAgd2F0Y2hlcnMgPSBuZXcgTWFwKCk7XG4gICAgICBwcm9wZXJ0eVdhdGNoZXJzLnNldCh0aGlzLl9yZWZlcmVuY2UsIHdhdGNoZXJzKTtcbiAgICB9XG4gICAgdGhpcy5fd2F0Y2hlcnMgPSB3YXRjaGVycztcblxuICAgIGZvciAoY29uc3QgW3Byb3BlcnR5LCBoYW5kbGVyXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLl9oYW5kbGVycykpIHtcbiAgICAgIGxldCB3YXRjaGVyID0gdGhpcy5fd2F0Y2hlcnMuZ2V0KHByb3BlcnR5KTtcbiAgICAgIGlmICghd2F0Y2hlcikge1xuICAgICAgICB3YXRjaGVyID0gbmV3IFByb3BlcnR5V2F0Y2hlcjxUPih0aGlzLl9yZWZlcmVuY2UsIHByb3BlcnR5KTtcbiAgICAgICAgdGhpcy5fd2F0Y2hlcnMuc2V0KHByb3BlcnR5LCB3YXRjaGVyKTtcbiAgICAgIH1cbiAgICAgIHdhdGNoZXIuYWRkSGFuZGxlcihoYW5kbGVyKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGlzY29ubmVjdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3JlZmVyZW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW3Byb3BlcnR5LCBoYW5kbGVyXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLl9oYW5kbGVycykpIHtcbiAgICAgIGNvbnN0IHdhdGNoZXIgPSB0aGlzLl93YXRjaGVycz8uZ2V0KHByb3BlcnR5KTtcbiAgICAgIGlmICh3YXRjaGVyKSB7XG4gICAgICAgIHdhdGNoZXIucmVtb3ZlSGFuZGxlcihoYW5kbGVyKTtcbiAgICAgICAgaWYgKCF3YXRjaGVyLnNpemUpIHtcbiAgICAgICAgICB0aGlzLl93YXRjaGVycyEuZGVsZXRlKHByb3BlcnR5KTtcbiAgICAgICAgICBpZiAoIXRoaXMuX3dhdGNoZXJzIS5zaXplICYmIHRoaXMuX3JlZmVyZW5jZSkge1xuICAgICAgICAgICAgcHJvcGVydHlXYXRjaGVycy5kZWxldGUodGhpcy5fcmVmZXJlbmNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fcmVmZXJlbmNlID0gbnVsbDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQVNBLElBQU0sa0JBQU4sTUFBcUI7Q0FLbkIsSUFBVyxPQUFJO0VBQ2IsT0FBTyxLQUFLLFVBQVU7Q0FDeEI7Q0FFQSxZQUNtQixPQUNBLFdBQWlCO0VBRGpCLEtBQUEsUUFBQTtFQUNBLEtBQUEsWUFBQTtFQVRYLEtBQUEsNEJBQVksSUFBSSxJQUFHO0VBQ25CLEtBQUEsc0JBQTRDO0VBVWxELElBQUksQ0FBQyxVQUNILElBQUksZUFBZSxJQUFJLEtBQUssTUFBTSxTQUFTLEdBQ3pDLGVBQWUsUUFBUSxLQUFLLEtBQUs7T0FHakMsS0FBSyxzQkFBc0IsZUFBZSxZQUFZLEtBQUssTUFBTSxTQUFTLEVBQUUsV0FBVTtHQUNwRixlQUFlLFFBQVEsS0FBSyxLQUFLO0dBQ2pDLEtBQUssc0JBQXNCO0VBQzdCLENBQUM7RUFHTCxLQUFLLFNBQVUsS0FBSyxNQUE2QyxLQUFLO0NBQ3hFO0NBRU8sV0FBVyxTQUFrQztFQUNsRCxJQUFJLENBQUMsS0FBSyxVQUFVO09BRWQsS0FBSyxNQUFNLGVBQ2IsS0FB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
@@ -74,4 +74,4 @@ var SbbSlotStateController = class {
74
74
  //#endregion
75
75
  export { SbbSlotStateController, SbbSlottedChangeEvent };
76
76
 
77
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xvdC1zdGF0ZS1jb250cm9sbGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL3Nsb3Qtc3RhdGUtY29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmV4cG9ydCBjbGFzcyBTYmJTbG90dGVkQ2hhbmdlRXZlbnQgZXh0ZW5kcyBFdmVudCB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgc2xvdDogSFRNTFNsb3RFbGVtZW50KSB7XG4gICAgc3VwZXIoJ3Nsb3R0ZWRjaGFuZ2UnLCB7IGNvbXBvc2VkOiB0cnVlIH0pO1xuICB9XG59XG5cbi8qKlxuICogVGhpcyBjb250cm9sbGVyIGNoZWNrcyBmb3Igc2xvdHRlZCBjaGlsZHJlbi4gRnJvbSB0aGVzZSBpdCB1cGRhdGVzXG4gKiB0aGUgRWxlbWVudEludGVybmFscyBzdGF0ZXMgd2l0aCB0aGUgcGF0dGVybiBgc2xvdHRlZC08bmFtZT5gIG9yIGBzbG90dGVkYFxuICogZm9yIHRoZSB1bm5hbWVkIHNsb3QuXG4gKlxuICogVGhpcyBhbGxvd3MgYSA6c3RhdGUoc2xvdHRlZC08bmFtZT4pIENTUyBzZWxlY3RvciB0byBkaXNwbGF5L2hpZGUvY29uZmlndXJlXG4gKiBhIHNlY3Rpb24gb2YgdGhlIGNvbXBvbmVudCBhcyByZXF1aXJlZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogLmV4YW1wbGUge1xuICogICBkaXNwbGF5OiBub25lO1xuICpcbiAqICAgOmhvc3QoOnN0YXRlKHNsb3R0ZWQtaWNvbikpICYge1xuICogICAgIGRpc3BsYXk6IGlubGluZTtcbiAqICAgfVxuICogfVxuICpcbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy86c3RhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwcml2YXRlIF90ZXh0T2JzZXJ2ZXIgPVxuICAgICFpc1NlcnZlciAmJlxuICAgIG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgIGNvbnN0IHNsb3QgPSB0aGlzLl9ob3N0LnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3I8SFRNTFNsb3RFbGVtZW50Pignc2xvdDpub3QoW25hbWVdKScpO1xuICAgICAgaWYgKHNsb3QpIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlU2xvdHRlZFN0YXRlKHNsb3QpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fdGV4dE9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50LFxuICAgIHByaXZhdGUgX2ludGVybmFsczogRWxlbWVudEludGVybmFscyxcbiAgKSB7XG4gICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQ6IFJlYWN0aXZlQ29udHJvbGxlclsnaG9zdENvbm5lY3RlZCddID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX2hvc3Quc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIChlKSA9PlxuICAgICAgdGhpcy5fc2xvdGNoYW5nZUhhbmRsZXIoZSwgZS50YXJnZXQgYXMgSFRNTFNsb3RFbGVtZW50KSxcbiAgICApO1xuICAgIHRoaXMuX2hvc3Quc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdzbG90dGVkY2hhbmdlJyxcbiAgICAgIChlKSA9PiB0aGlzLl9zbG90Y2hhbmdlSGFuZGxlcihlLCBlLnNsb3QpLFxuICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgKTtcbiAgICB0aGlzLl9pbnRlcm5hbHMuc2hhZG93Um9vdFxuICAgICAgPy5xdWVyeVNlbGVjdG9yQWxsKCdzbG90JylcbiAgICAgIC5mb3JFYWNoKChzbG90KSA9PiB0aGlzLl9oYW5kbGVTbG90Q2hhbmdlKHNsb3QpKTtcbiAgICB0aGlzLmhvc3RDb25uZWN0ZWQgPSB1bmRlZmluZWQ7XG4gIH07XG5cbiAgcHJpdmF0ZSBfc2xvdGNoYW5nZUhhbmRsZXIoZXZlbnQ6IEV2ZW50LCBzbG90OiBIVE1MU2xvdEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCByZXNvbHZlZFNsb3QgPSB0aGlzLl9ob3N0LnNoYWRvd1Jvb3QhLmNvbnRhaW5zKHNsb3QpXG4gICAgICA/IHNsb3RcbiAgICAgIDogZXZlbnRcbiAgICAgICAgICAuY29tcG9zZWRQYXRoKClcbiAgICAgICAgICAuZmluZChcbiAgICAgICAgICAgIChlbCk6IGVsIGlzIEhUTUxTbG90RWxlbWVudCA9PlxuICAgICAgICAgICAgICBlbCBpbnN0YW5jZW9mIEhUTUxTbG90RWxlbWVudCAmJiB0aGlzLl9ob3N0LnNoYWRvd1Jvb3QhLmNvbnRhaW5zKGVsKSxcbiAgICAgICAgICApO1xuICAgIGlmIChyZXNvbHZlZFNsb3QpIHtcbiAgICAgIHRoaXMuX2hhbmRsZVNsb3RDaGFuZ2UocmVzb2x2ZWRTbG90KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVTbG90Q2hhbmdlKHNsb3Q6IEhUTUxTbG90RWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMuX3VwZGF0ZVNsb3R0ZWRTdGF0ZShzbG90KTtcbiAgICBpZiAoIXNsb3QubmFtZSkge1xuICAgICAgdGhpcy5fb2JzZXJ2ZVRleHROb2Rlc0luU2xvdChzbG90KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTbG90dGVkU3RhdGUoc2xvdDogSFRNTFNsb3RFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGVOYW1lID0gc2xvdC5uYW1lID8gYHNsb3R0ZWQtJHtzbG90Lm5hbWV9YCA6ICdzbG90dGVkJztcbiAgICBjb25zdCBoYXNTbG90dGVkQ29udGVudCA9IHRoaXMuX2hhc1Nsb3R0ZWRDb250ZW50KHNsb3QpO1xuICAgIGlmIChoYXNTbG90dGVkQ29udGVudCAmJiAhdGhpcy5faW50ZXJuYWxzLnN0YXRlcy5oYXMoc3RhdGVOYW1lKSkge1xuICAgICAgdGhpcy5faW50ZXJuYWxzLnN0YXRlcy5hZGQoc3RhdGVOYW1lKTtcbiAgICAgIHRoaXMuX2hvc3QuZGlzcGF0Y2hFdmVudChuZXcgU2JiU2xvdHRlZENoYW5nZUV2ZW50KHNsb3QpKTtcbiAgICB9IGVsc2UgaWYgKCFoYXNTbG90dGVkQ29udGVudCAmJiB0aGlzLl9pbnRlcm5hbHMuc3RhdGVzLmhhcyhzdGF0ZU5hbWUpKSB7XG4gICAgICB0aGlzLl9pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShzdGF0ZU5hbWUpO1xuICAgICAgdGhpcy5faG9zdC5kaXNwYXRjaEV2ZW50KG5ldyBTYmJTbG90dGVkQ2hhbmdlRXZlbnQoc2xvdCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29ic2VydmVUZXh0Tm9kZXNJblNsb3Qoc2xvdDogSFRNTFNsb3RFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy5fdGV4dE9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAvLyBUZXh0IG5vZGVzIGNhbiBiZSBlbXB0eSBhbmQgZmlsbGVkIGxhdGVyIChvciB2aWNlIHZlcnNhKS5cbiAgICAvLyBGaWxsaW5nIGFuIGV4aXN0aW5nIG5vZGUgbGF0ZXIgd291bGQgbm90IHRyaWdnZXIgYW5vdGhlciBzbG90Y2hhbmdlIGV2ZW50LlxuICAgIC8vIFRoZXJlZm9yZSwgd2UgbmVlZCB0byBvYnNlcnZlIHRleHQgbm9kZXMgYW5kIGNoZWNrIGlmIHRoZXkgYmVjb21lIGZpbGxlZCBvciBlbXB0eS5cbiAgICAvLyBUaGlzIGlzIG9ubHkgbmVlZGVkIGZvciB0aGUgdW5uYW1lZCBzbG90IGFzIGZvciBldmVyeSBvdGhlciB0aGVyZSB3b3VsZFxuICAgIC8vIGJlIGEgdGFnIHdoaWNoIHRyaWdnZXJzIHRoZSBzbG90IGNoYW5nZSBldmVudC5cbiAgICAvLyBUaGUgbWFpbiByZWFzb24gaXMgdGhhdCBBbmd1bGFyIGNyZWF0ZXMgZW1wdHkgdGV4dCBub2RlcyBhbmQgZmlsbHMgdGhlbSBsYXRlci5cbiAgICBzbG90XG4gICAgICAuYXNzaWduZWROb2RlcygpXG4gICAgICAuZmlsdGVyKChuKSA9PiBuLm5vZGVUeXBlID09PSBuLlRFWFRfTk9ERSlcbiAgICAgIC5mb3JFYWNoKChub2RlKSA9PiB0aGlzLl90ZXh0T2JzZXJ2ZXIub2JzZXJ2ZShub2RlLCB7IGNoYXJhY3RlckRhdGE6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFzU2xvdHRlZENvbnRlbnQoc2xvdDogSFRNTFNsb3RFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNsb3QubmFtZVxuICAgICAgPyBzbG90XG4gICAgICAgICAgLmFzc2lnbmVkRWxlbWVudHMoKVxuICAgICAgICAgIC5zb21lKChub2RlKSA9PiAhKG5vZGUgaW5zdGFuY2VvZiBIVE1MU2xvdEVsZW1lbnQpIHx8IHRoaXMuX2hhc1Nsb3R0ZWRDb250ZW50KG5vZGUpKVxuICAgICAgOiBzbG90LmFzc2lnbmVkTm9kZXMoKS5zb21lKChub2RlKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5vZGUgaW5zdGFuY2VvZiBIVE1MU2xvdEVsZW1lbnRcbiAgICAgICAgICAgID8gdGhpcy5faGFzU2xvdHRlZENvbnRlbnQobm9kZSlcbiAgICAgICAgICAgIDogbm9kZS5ub2RlVHlwZSAhPT0gbm9kZS5URVhUX05PREUgfHwgISFub2RlLnRleHRDb250ZW50Py50cmltKCk7XG4gICAgICAgIH0pO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50RXZlbnRNYXAge1xuICAgIHNsb3R0ZWRjaGFuZ2U6IFNiYlNsb3R0ZWRDaGFuZ2VFdmVudDtcbiAgfVxuICBpbnRlcmZhY2UgU2hhZG93Um9vdEV2ZW50TWFwIHtcbiAgICBzbG90dGVkY2hhbmdlOiBTYmJTbG90dGVkQ2hhbmdlRXZlbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFFQSxJQUFhLHdCQUFiLGNBQTJDLE1BQUs7Q0FDOUMsWUFBbUMsTUFBcUI7RUFDdEQsTUFBTSxpQkFBaUIsRUFBRSxVQUFVLE1BQU0sQ0FBQztFQURULEtBQUEsT0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdCckMsSUFBYSx5QkFBYixNQUFtQztDQVlqQyxZQUNVLE9BQ0EsWUFBNEI7RUFENUIsS0FBQSxRQUFBO0VBQ0EsS0FBQSxhQUFBO0VBYkYsS0FBQSxnQkFDTixDQUFDLFlBQ0QsSUFBSSx1QkFBc0I7R0FDeEIsTUFBTSxPQUFPLEtBQUssTUFBTSxXQUFZLGNBQStCLG1CQUFtQjtHQUN0RixJQUFJLE1BQ0YsS0FBSyxvQkFBb0IsS0FBSztRQUU5QixLQUFLLGNBQWMsWUFBWTtJQUVqQztFQVNHLEtBQUEsc0JBQWdFO0dBQ3JFLEtBQUssTUFBTSxZQUFZLGlCQUFpQixlQUFlLE1BQ3JELEtBQUssbUJBQW1CLEdBQUcsRUFBRSxPQUEwQixDQUN4RDtHQUNELEtBQUssTUFBTSxZQUFZLGlCQUNyQixrQkFDQyxNQUFNLEtBQUssbUJBQW1CLEdBQUcsRUFBRSxLQUFLLEVBQ3pDLEVBQUUsU0FBUyxNQUFNLENBQ2xCO0dBQ0QsS0FBSyxXQUFXLFlBQ1osaUJBQWlCLE9BQU8sQ0FDekIsU0FBUyxTQUFTLEtBQUssa0JBQWtCLEtBQUssQ0FBQztHQUNsRCxLQUFLLGdCQUFnQixLQUFBOztFQWZyQixLQUFLLE1BQU0sY0FBYyxLQUFLOztDQWtCeEIsbUJBQW1CLE9BQWMsTUFBcUI7RUFDNUQsTUFBTSxlQUFlLEtBQUssTUFBTSxXQUFZLFNBQVMsS0FBSyxHQUN0RCxPQUNBLE1BQ0csY0FBYyxDQUNkLE1BQ0UsT0FDQyxjQUFjLG1CQUFtQixLQUFLLE1BQU0sV0FBWSxTQUFTLEdBQUcsQ0FDdkU7RUFDUCxJQUFJLGNBQ0YsS0FBSyxrQkFBa0IsYUFBYTs7Q0FJaEMsa0JBQWtCLE1BQXFCO0VBQzdDLEtBQUssb0JBQW9CLEtBQUs7RUFDOUIsSUFBSSxDQUFDLEtBQUssTUFDUixLQUFLLHdCQUF3QixLQUFLOztDQUk5QixvQkFBb0IsTUFBcUI7RUFDL0MsTUFBTSxZQUFZLEtBQUssT0FBTyxXQUFXLEtBQUssU0FBUztFQUN2RCxNQUFNLG9CQUFvQixLQUFLLG1CQUFtQixLQUFLO0VBQ3ZELElBQUkscUJBQXFCLENBQUMsS0FBSyxXQUFXLE9BQU8sSUFBSSxVQUFVLEVBQUU7R0FDL0QsS0FBSyxXQUFXLE9BQU8sSUFBSSxVQUFVO0dBQ3JDLEtBQUssTUFBTSxjQUFjLElBQUksc0JBQXNCLEtBQUssQ0FBQztTQUNwRCxJQUFJLENBQUMscUJBQXFCLEtBQUssV0FBVyxPQUFPLElBQUksVUFBVSxFQUFFO0dBQ3RFLEtBQUssV0FBVyxPQUFPLE9BQU8sVUFBVTtHQUN4QyxLQUFLLE1BQU0sY0FBYyxJQUFJLHNCQUFzQixLQUFLLENBQUM7OztDQUlyRCx3QkFBd0IsTUFBcUI7RUFDbkQsS0FBSyxjQUFjLFlBQVk7RUFPL0IsS0FDRyxlQUFlLENBQ2YsUUFBUSxNQUFNLEVBQUUsYUFBYSxFQUFFLFVBQVUsQ0FDekMsU0FBUyxTQUFTLEtBQUssY0FBYyxRQUFRLE1BQU0sRUFBRSxlQUFlLE1BQU0sQ0FBQyxDQUFDOztDQUd6RSxtQkFBbUIsTUFBcUI7RUFDOUMsT0FBTyxLQUFLLE9BQ1IsS0FDRyxrQkFBa0IsQ0FDbEIsTUFBTSxTQUFTLEVBQUUsZ0JBQWdCLG9CQUFvQixLQUFLLG1CQUFtQixLQUFLLENBQUMsR0FDdEYsS0FBSyxlQUFlLENBQUMsTUFBTSxTQUFRO0dBQ2pDLE9BQU8sZ0JBQWdCLGtCQUNuQixLQUFLLG1CQUFtQixLQUFLLEdBQzdCLEtBQUssYUFBYSxLQUFLLGFBQWEsQ0FBQyxDQUFDLEtBQUssYUFBYSxNQUFNO0lBQ2xFIn0=
77
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xvdC1zdGF0ZS1jb250cm9sbGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL3Nsb3Qtc3RhdGUtY29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmV4cG9ydCBjbGFzcyBTYmJTbG90dGVkQ2hhbmdlRXZlbnQgZXh0ZW5kcyBFdmVudCB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgc2xvdDogSFRNTFNsb3RFbGVtZW50KSB7XG4gICAgc3VwZXIoJ3Nsb3R0ZWRjaGFuZ2UnLCB7IGNvbXBvc2VkOiB0cnVlIH0pO1xuICB9XG59XG5cbi8qKlxuICogVGhpcyBjb250cm9sbGVyIGNoZWNrcyBmb3Igc2xvdHRlZCBjaGlsZHJlbi4gRnJvbSB0aGVzZSBpdCB1cGRhdGVzXG4gKiB0aGUgRWxlbWVudEludGVybmFscyBzdGF0ZXMgd2l0aCB0aGUgcGF0dGVybiBgc2xvdHRlZC08bmFtZT5gIG9yIGBzbG90dGVkYFxuICogZm9yIHRoZSB1bm5hbWVkIHNsb3QuXG4gKlxuICogVGhpcyBhbGxvd3MgYSA6c3RhdGUoc2xvdHRlZC08bmFtZT4pIENTUyBzZWxlY3RvciB0byBkaXNwbGF5L2hpZGUvY29uZmlndXJlXG4gKiBhIHNlY3Rpb24gb2YgdGhlIGNvbXBvbmVudCBhcyByZXF1aXJlZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogLmV4YW1wbGUge1xuICogICBkaXNwbGF5OiBub25lO1xuICpcbiAqICAgOmhvc3QoOnN0YXRlKHNsb3R0ZWQtaWNvbikpICYge1xuICogICAgIGRpc3BsYXk6IGlubGluZTtcbiAqICAgfVxuICogfVxuICpcbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy86c3RhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwcml2YXRlIF90ZXh0T2JzZXJ2ZXIgPVxuICAgICFpc1NlcnZlciAmJlxuICAgIG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgIGNvbnN0IHNsb3QgPSB0aGlzLl9ob3N0LnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3I8SFRNTFNsb3RFbGVtZW50Pignc2xvdDpub3QoW25hbWVdKScpO1xuICAgICAgaWYgKHNsb3QpIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlU2xvdHRlZFN0YXRlKHNsb3QpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fdGV4dE9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50LFxuICAgIHByaXZhdGUgX2ludGVybmFsczogRWxlbWVudEludGVybmFscyxcbiAgKSB7XG4gICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQ6IFJlYWN0aXZlQ29udHJvbGxlclsnaG9zdENvbm5lY3RlZCddID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX2hvc3Quc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIChlKSA9PlxuICAgICAgdGhpcy5fc2xvdGNoYW5nZUhhbmRsZXIoZSwgZS50YXJnZXQgYXMgSFRNTFNsb3RFbGVtZW50KSxcbiAgICApO1xuICAgIHRoaXMuX2hvc3Quc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdzbG90dGVkY2hhbmdlJyxcbiAgICAgIChlKSA9PiB0aGlzLl9zbG90Y2hhbmdlSGFuZGxlcihlLCBlLnNsb3QpLFxuICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgKTtcbiAgICB0aGlzLl9pbnRlcm5hbHMuc2hhZG93Um9vdFxuICAgICAgPy5xdWVyeVNlbGVjdG9yQWxsKCdzbG90JylcbiAgICAgIC5mb3JFYWNoKChzbG90KSA9PiB0aGlzLl9oYW5kbGVTbG90Q2hhbmdlKHNsb3QpKTtcbiAgICB0aGlzLmhvc3RDb25uZWN0ZWQgPSB1bmRlZmluZWQ7XG4gIH07XG5cbiAgcHJpdmF0ZSBfc2xvdGNoYW5nZUhhbmRsZXIoZXZlbnQ6IEV2ZW50LCBzbG90OiBIVE1MU2xvdEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCByZXNvbHZlZFNsb3QgPSB0aGlzLl9ob3N0LnNoYWRvd1Jvb3QhLmNvbnRhaW5zKHNsb3QpXG4gICAgICA/IHNsb3RcbiAgICAgIDogZXZlbnRcbiAgICAgICAgICAuY29tcG9zZWRQYXRoKClcbiAgICAgICAgICAuZmluZChcbiAgICAgICAgICAgIChlbCk6IGVsIGlzIEhUTUxTbG90RWxlbWVudCA9PlxuICAgICAgICAgICAgICBlbCBpbnN0YW5jZW9mIEhUTUxTbG90RWxlbWVudCAmJiB0aGlzLl9ob3N0LnNoYWRvd1Jvb3QhLmNvbnRhaW5zKGVsKSxcbiAgICAgICAgICApO1xuICAgIGlmIChyZXNvbHZlZFNsb3QpIHtcbiAgICAgIHRoaXMuX2hhbmRsZVNsb3RDaGFuZ2UocmVzb2x2ZWRTbG90KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVTbG90Q2hhbmdlKHNsb3Q6IEhUTUxTbG90RWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMuX3VwZGF0ZVNsb3R0ZWRTdGF0ZShzbG90KTtcbiAgICBpZiAoIXNsb3QubmFtZSkge1xuICAgICAgdGhpcy5fb2JzZXJ2ZVRleHROb2Rlc0luU2xvdChzbG90KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTbG90dGVkU3RhdGUoc2xvdDogSFRNTFNsb3RFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGVOYW1lID0gc2xvdC5uYW1lID8gYHNsb3R0ZWQtJHtzbG90Lm5hbWV9YCA6ICdzbG90dGVkJztcbiAgICBjb25zdCBoYXNTbG90dGVkQ29udGVudCA9IHRoaXMuX2hhc1Nsb3R0ZWRDb250ZW50KHNsb3QpO1xuICAgIGlmIChoYXNTbG90dGVkQ29udGVudCAmJiAhdGhpcy5faW50ZXJuYWxzLnN0YXRlcy5oYXMoc3RhdGVOYW1lKSkge1xuICAgICAgdGhpcy5faW50ZXJuYWxzLnN0YXRlcy5hZGQoc3RhdGVOYW1lKTtcbiAgICAgIHRoaXMuX2hvc3QuZGlzcGF0Y2hFdmVudChuZXcgU2JiU2xvdHRlZENoYW5nZUV2ZW50KHNsb3QpKTtcbiAgICB9IGVsc2UgaWYgKCFoYXNTbG90dGVkQ29udGVudCAmJiB0aGlzLl9pbnRlcm5hbHMuc3RhdGVzLmhhcyhzdGF0ZU5hbWUpKSB7XG4gICAgICB0aGlzLl9pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShzdGF0ZU5hbWUpO1xuICAgICAgdGhpcy5faG9zdC5kaXNwYXRjaEV2ZW50KG5ldyBTYmJTbG90dGVkQ2hhbmdlRXZlbnQoc2xvdCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29ic2VydmVUZXh0Tm9kZXNJblNsb3Qoc2xvdDogSFRNTFNsb3RFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy5fdGV4dE9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAvLyBUZXh0IG5vZGVzIGNhbiBiZSBlbXB0eSBhbmQgZmlsbGVkIGxhdGVyIChvciB2aWNlIHZlcnNhKS5cbiAgICAvLyBGaWxsaW5nIGFuIGV4aXN0aW5nIG5vZGUgbGF0ZXIgd291bGQgbm90IHRyaWdnZXIgYW5vdGhlciBzbG90Y2hhbmdlIGV2ZW50LlxuICAgIC8vIFRoZXJlZm9yZSwgd2UgbmVlZCB0byBvYnNlcnZlIHRleHQgbm9kZXMgYW5kIGNoZWNrIGlmIHRoZXkgYmVjb21lIGZpbGxlZCBvciBlbXB0eS5cbiAgICAvLyBUaGlzIGlzIG9ubHkgbmVlZGVkIGZvciB0aGUgdW5uYW1lZCBzbG90IGFzIGZvciBldmVyeSBvdGhlciB0aGVyZSB3b3VsZFxuICAgIC8vIGJlIGEgdGFnIHdoaWNoIHRyaWdnZXJzIHRoZSBzbG90IGNoYW5nZSBldmVudC5cbiAgICAvLyBUaGUgbWFpbiByZWFzb24gaXMgdGhhdCBBbmd1bGFyIGNyZWF0ZXMgZW1wdHkgdGV4dCBub2RlcyBhbmQgZmlsbHMgdGhlbSBsYXRlci5cbiAgICBzbG90XG4gICAgICAuYXNzaWduZWROb2RlcygpXG4gICAgICAuZmlsdGVyKChuKSA9PiBuLm5vZGVUeXBlID09PSBuLlRFWFRfTk9ERSlcbiAgICAgIC5mb3JFYWNoKChub2RlKSA9PiB0aGlzLl90ZXh0T2JzZXJ2ZXIub2JzZXJ2ZShub2RlLCB7IGNoYXJhY3RlckRhdGE6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFzU2xvdHRlZENvbnRlbnQoc2xvdDogSFRNTFNsb3RFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNsb3QubmFtZVxuICAgICAgPyBzbG90XG4gICAgICAgICAgLmFzc2lnbmVkRWxlbWVudHMoKVxuICAgICAgICAgIC5zb21lKChub2RlKSA9PiAhKG5vZGUgaW5zdGFuY2VvZiBIVE1MU2xvdEVsZW1lbnQpIHx8IHRoaXMuX2hhc1Nsb3R0ZWRDb250ZW50KG5vZGUpKVxuICAgICAgOiBzbG90LmFzc2lnbmVkTm9kZXMoKS5zb21lKChub2RlKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5vZGUgaW5zdGFuY2VvZiBIVE1MU2xvdEVsZW1lbnRcbiAgICAgICAgICAgID8gdGhpcy5faGFzU2xvdHRlZENvbnRlbnQobm9kZSlcbiAgICAgICAgICAgIDogbm9kZS5ub2RlVHlwZSAhPT0gbm9kZS5URVhUX05PREUgfHwgISFub2RlLnRleHRDb250ZW50Py50cmltKCk7XG4gICAgICAgIH0pO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50RXZlbnRNYXAge1xuICAgIHNsb3R0ZWRjaGFuZ2U6IFNiYlNsb3R0ZWRDaGFuZ2VFdmVudDtcbiAgfVxuICBpbnRlcmZhY2UgU2hhZG93Um9vdEV2ZW50TWFwIHtcbiAgICBzbG90dGVkY2hhbmdlOiBTYmJTbG90dGVkQ2hhbmdlRXZlbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFFQSxJQUFhLHdCQUFiLGNBQTJDLE1BQUs7Q0FDOUMsWUFBbUMsTUFBcUI7RUFDdEQsTUFBTSxpQkFBaUIsRUFBRSxVQUFVLEtBQUksQ0FBRTtFQURSLEtBQUEsT0FBQTtDQUVuQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBc0JGLElBQWEseUJBQWIsTUFBbUM7Q0FZakMsWUFDVSxPQUNBLFlBQTRCO0VBRDVCLEtBQUEsUUFBQTtFQUNBLEtBQUEsYUFBQTtFQWJGLEtBQUEsZ0JBQ04sQ0FBQyxZQUNELElBQUksdUJBQXNCO0dBQ3hCLE1BQU0sT0FBTyxLQUFLLE1BQU0sV0FBWSxjQUErQixrQkFBa0I7R0FDckYsSUFBSSxNQUNGLEtBQUssb0JBQW9CLElBQUk7UUFFN0IsS0FBSyxjQUFjLFdBQVU7RUFFakMsQ0FBQztFQVNJLEtBQUEsc0JBQWdFO0dBQ3JFLEtBQUssTUFBTSxZQUFZLGlCQUFpQixlQUFlLE1BQ3JELEtBQUssbUJBQW1CLEdBQUcsRUFBRSxNQUF5QixDQUFDO0dBRXpELEtBQUssTUFBTSxZQUFZLGlCQUNyQixrQkFDQyxNQUFNLEtBQUssbUJBQW1CLEdBQUcsRUFBRSxJQUFJLEdBQ3hDLEVBQUUsU0FBUyxLQUFJLENBQUU7R0FFbkIsS0FBSyxXQUFXLFlBQ1osaUJBQWlCLE1BQU0sRUFDeEIsU0FBUyxTQUFTLEtBQUssa0JBQWtCLElBQUksQ0FBQztHQUNqRCxLQUFLLGdCQUFnQixLQUFBO0VBQ3ZCO0VBaEJFLEtBQUssTUFBTSxjQUFjLElBQUk7Q0FDL0I7Q0FpQlEsbUJBQW1CLE9BQWMsTUFBcUI7RUFDNUQsTUFBTSxlQUFlLEtBQUssTUFBTSxXQUFZLFNBQVMsSUFBSSxJQUNyRCxPQUNBLE1BQ0csYUFBWSxFQUNaLE1BQ0UsT0FDQyxjQUFjLG1CQUFtQixLQUFLLE1BQU0sV0FBWSxTQUFTLEVBQUUsQ0FBQztFQUU5RSxJQUFJLGNBQ0YsS0FBSyxrQkFBa0IsWUFBWTtDQUV2QztDQUVRLGtCQUFrQixNQUFxQjtFQUM3QyxLQUFLLG9CQUFvQixJQUFJO0VBQzdCLElBQUksQ0FBQyxLQUFLLE1BQ1IsS0FBSyx3QkFBd0IsSUFBSTtDQUVyQztDQUVRLG9CQUFvQixNQUFxQjtFQUMvQyxNQUFNLFlBQVksS0FBSyxPQUFPLFdBQVcsS0FBSyxTQUFTO0VBQ3ZELE1BQU0sb0JBQW9CLEtBQUssbUJBQW1CLElBQUk7RUFDdEQsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLFdBQVcsT0FBTyxJQUFJLFNBQVMsR0FBRztHQUMvRCxLQUFLLFdBQVcsT0FBTyxJQUFJLFNBQVM7R0FDcEMsS0FBSyxNQUFNLGNBQWMsSUFBSSxzQkFBc0IsSUFBSSxDQUFDO0VBQzFELE9BQU8sSUFBSSxDQUFDLHFCQUFxQixLQUFLLFdBQVcsT0FBTyxJQUFJLFNBQVMsR0FBRztHQUN0RSxLQUFLLFdBQVcsT0FBTyxPQUFPLFNBQVM7R0FDdkMsS0FBSyxNQUFNLGNBQWMsSUFBSSxzQkFBc0IsSUFBSSxDQUFDO0VBQzFEO0NBQ0Y7Q0FFUSx3QkFBd0IsTUFBcUI7RUFDbkQsS0FBSyxjQUFjLFdBQVU7RUFPN0IsS0FDRyxjQUFhLEVBQ2IsUUFBUSxNQUFNLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFDeEMsU0FBUyxTQUFTLEtBQUssY0FBYyxRQUFRLE1BQU0sRUFBRSxlQUFlLEtBQUksQ0FBRSxDQUFDO0NBQ2hGO0NBRVEsbUJBQW1CLE1BQXFCO0VBQzlDLE9BQU8sS0FBSyxPQUNSLEtBQ0csaUJBQWdCLEVBQ2hCLE1BQU0sU0FBUyxFQUFFLGdCQUFnQixvQkFBb0IsS0FBSyxtQkFBbUIsSUFBSSxDQUFDLElBQ3JGLEtBQUssY0FBYSxFQUFHLE1BQU0sU0FBUTtHQUNqQyxPQUFPLGdCQUFnQixrQkFDbkIsS0FBSyxtQkFBbUIsSUFBSSxJQUM1QixLQUFLLGFBQWEsS0FBSyxhQUFhLENBQUMsQ0FBQyxLQUFLLGFBQWEsS0FBSTtFQUNsRSxDQUFDO0NBQ1AifQ==
@@ -148,4 +148,4 @@ var DateAdapter = class {
148
148
  //#endregion
149
149
  export { DAYS_PER_ROW, DateAdapter, FORMAT_DATE, FRIDAY, ISO8601_FORMAT_DATE, MONDAY, MONTHS_PER_PAGE, MONTHS_PER_ROW, SATURDAY, SUNDAY, THURSDAY, TUESDAY, WEDNESDAY, YEARS_PER_PAGE, YEARS_PER_ROW };
150
150
 
151
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1hZGFwdGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RhdGV0aW1lL2RhdGUtYWRhcHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgRk9STUFUX0RBVEUgPVxuICAvKDA/WzEtOV18WzEyXVswLTldfDNbMDFdKVsuLFxcXFwvXFwtXFxzXSgwP1sxLTldfDFbMC0yXSlbLixcXFxcL1xcLVxcc10oWzAtOV17MSw0fSQpPy87XG5leHBvcnQgY29uc3QgSVNPODYwMV9GT1JNQVRfREFURSA9IC9eKFswLTldezR9KS0oMFsxLTldfDFbMC0yXSktKDBbMS05XXxbMS0zXVswLTldKSQvO1xuZXhwb3J0IGNvbnN0IE1PTkRBWSA9IDE7XG5leHBvcnQgY29uc3QgVFVFU0RBWSA9IDI7XG5leHBvcnQgY29uc3QgV0VETkVTREFZID0gMztcbmV4cG9ydCBjb25zdCBUSFVSU0RBWSA9IDQ7XG5leHBvcnQgY29uc3QgRlJJREFZID0gNTtcbmV4cG9ydCBjb25zdCBTQVRVUkRBWSA9IDY7XG5leHBvcnQgY29uc3QgU1VOREFZID0gMDtcblxuLy8gVE9ETyhicmVha2luZy1jaGFuZ2UpOiBNb3ZlIHRoZXNlIHZhcmlhYmxlcyB0byBjYWxlbmRhclxuZXhwb3J0IGNvbnN0IERBWVNfUEVSX1JPVzogbnVtYmVyID0gNztcbmV4cG9ydCBjb25zdCBNT05USFNfUEVSX1JPVzogbnVtYmVyID0gNDtcbmV4cG9ydCBjb25zdCBZRUFSU19QRVJfUk9XOiBudW1iZXIgPSA0O1xuZXhwb3J0IGNvbnN0IE1PTlRIU19QRVJfUEFHRTogbnVtYmVyID0gMTI7XG5leHBvcnQgY29uc3QgWUVBUlNfUEVSX1BBR0U6IG51bWJlciA9IDI0O1xuXG4vKipcbiAqIEFic3RyYWN0IGRhdGUgZnVuY3Rpb25hbGl0eS5cbiAqXG4gKiBBZGFwdGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9ibG9iL21haW4vc3JjL21hdGVyaWFsL2NvcmUvZGF0ZXRpbWUvZGF0ZS1hZGFwdGVyLnRzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYXRlQWRhcHRlcjxUID0gYW55PiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2N1dG9mZlllYXJPZmZzZXQ6IG51bWJlcjtcblxuICAvKipcbiAgICogQHBhcmFtIGN1dG9mZlllYXJPZmZzZXQgVGhlIHRocmVzaG9sZCBvbiB3aGV0aGVyIGEgdHdvLWRpZ2l0IHllYXJcbiAgICogc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYmVsb25naW5nIHRvIDIwMDAgb3IgMTkwMC4gZS5nLiB3aXRoIDE1IChkZWZhdWx0KVxuICAgKiB0aGUgY3VycmVudCB5ZWFyIHBsdXMgMTUgd2lsbCBiZSB0cmVhdGVkIGFzIGJlbG9uZ2luZyB0byAyMDAwLCBhbmQgdGhlIHJlc3QgdG8gMTkwMC5cbiAgICogU28gZS5nLiB3aXRoIHRoZSBjdXJyZW50IHllYXIgMjAyNSwgNDAgd2lsbCBiZSB0cmVhdGVkIGFzIDIwNDAsIHdoaWxlIDQxIHdpbGwgYmUgdHJlYXRlZCBhcyAxOTQxLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKGN1dG9mZlllYXJPZmZzZXQ6IG51bWJlciA9IDE1KSB7XG4gICAgdGhpcy5fY3V0b2ZmWWVhck9mZnNldCA9IGN1dG9mZlllYXJPZmZzZXQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB5ZWFyIGFzIGEgbnVtYmVyLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldFllYXIoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBtb250aCBhcyBhIG51bWJlci5cbiAgICogQXR0ZW50aW9uOiBUaGlzIHJldHVybnMgMS0xMiBhbmQgbWl0aWdhdGVzIHRoZSBkZWZhdWx0IEphdmFTY3JpcHQgRGF0ZSBiZWhhdmlvci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRNb250aChkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRheSBvZiB0aGUgbW9udGggYXMgYSBudW1iZXIuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF0ZShkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIERheSBvZiB0aGUgd2VlayBhcyBhIG51bWJlci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREYXlPZldlZWsoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKiogR2V0IHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDA6IHN1bmRheTsgMTogbW9uZGF5OyBldGMuKS4gKi9cbiAgcHVibGljIGFic3RyYWN0IGdldEZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBudW1iZXIgb2YgZGF5cyBpbiBhIG1vbnRoLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldE51bURheXNJbk1vbnRoKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCBhIGxpc3Qgb2YgYWxsIHRoZSBtb250aHMgaW4gYSBnaXZlbiBzdHlsZS5cbiAgICogQHBhcmFtIHN0eWxlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0TW9udGhOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW107XG5cbiAgLyoqIEdldCBhIHN0cmluZyBhcnJheSB3aXRoIGxlbmd0aCA9IDMxLCBmaWxsZWQgd2l0aCB0aGUgZGF5cyBpbiBhIG1vbnRoLCBzdGFydGluZyBmcm9tIDEuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREYXRlTmFtZXMoKTogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEdldCBhIGxpc3Qgb2YgYWxsIHRoZSB3ZWVrIGRheXMgaW4gYSBnaXZlbiBzdHlsZS5cbiAgICogQHBhcmFtIHN0eWxlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF5T2ZXZWVrTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdO1xuXG4gIC8qKiBDcmVhdGVzIHRvZGF5J3MgZGF0ZS4gKi9cbiAgcHVibGljIGFic3RyYWN0IHRvZGF5KCk6IFQ7XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIGEgZ2l2ZW4gYGRhdGVgIGlzIHZhbGlkLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGlzVmFsaWQoZGF0ZTogVCB8IG51bGwgfCB1bmRlZmluZWQpOiBkYXRlIGlzIFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBjbG9uaW5nIHRoZSBnaXZlbiBvbmUuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY2xvbmUoZGF0ZTogVCk6IFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSwgZ2l2ZW4gZGF5LCBtb250aCBhbmQgeWVhcjsgd2l0aG91dCBkYXRlJ3Mgb3ZlcmZsb3cuXG4gICAqIEBwYXJhbSB5ZWFyXG4gICAqIEBwYXJhbSBtb250aCBUaGUgbW9udGggb2YgdGhlIGRhdGUgKDEtaW5kZXhlZCwgMSA9IEphbnVhcnkpLiBNdXN0IGJlIGFuIGludGVnZXIgMSAtIDEyLlxuICAgKiBAcGFyYW0gZGF5XG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY3JlYXRlRGF0ZSh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRheTogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogQXR0ZW1wdHMgdG8gZGVzZXJpYWxpemUgYSB2YWx1ZSB0byBhIHZhbGlkIGRhdGUgb2JqZWN0LiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIHBhcnNpbmcgaW4gdGhhdFxuICAgKiBkZXNlcmlhbGl6ZSBzaG91bGQgb25seSBhY2NlcHQgbm9uLWFtYmlndW91cywgbG9jYWxlLWluZGVwZW5kZW50IGZvcm1hdHMgKGUuZy4gYSBJU08gODYwMVxuICAgKiBzdHJpbmcpLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBhbGxvdyBhbnkgZGVzZXJpYWxpemF0aW9uLCBpdCBzaW1wbHkgY2hlY2tzIHRoYXRcbiAgICogdGhlIGdpdmVuIHZhbHVlIGlzIGFscmVhZHkgYSB2YWxpZCBkYXRlIG9iamVjdCBvciBudWxsLlxuICAgKiBAcGFyYW0gdmFsdWUgRWl0aGVyIGEgZGF0ZSBvYmplY3QsIElTTyBzdHJpbmcgb3IgYW4gZW1wdHkgdmFsdWUuXG4gICAqIEByZXR1cm5zIFRoZSBkYXRlIGlmIHRoZSBpbnB1dCBpcyB2YWxpZCwgYG51bGxgIG90aGVyd2lzZS5cbiAgICovXG4gIHB1YmxpYyBkZXNlcmlhbGl6ZSh2YWx1ZTogVCB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBUIHwgbnVsbCB7XG4gICAgaWYgKFxuICAgICAgdmFsdWUgPT0gbnVsbCB8fFxuICAgICAgKHRoaXMuaXNEYXRlSW5zdGFuY2UodmFsdWUpICYmIHRoaXMuaXNWYWxpZCh2YWx1ZSBhcyBUIHwgbnVsbCB8IHVuZGVmaW5lZCkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdmFsdWUgYXMgVCB8IG51bGw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmludmFsaWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYHllYXJzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIHllYXJzIFRoZSBudW1iZXIgb2YgeWVhcnMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogVCwgeWVhcnM6IG51bWJlcik6IFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgbW9udGhzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBJZiB0aGUgY2FsY3VsYXRlZCBtb250aCBoYXMgZmV3ZXIgZGF5cyB0aGFuIHRoZSBvcmlnaW5hbCBvbmUsIHRoZSBkYXRlIGlzIHNldCB0byB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLlxuICAgKiBFLmcuIHdpdGggYGRhdGVgID0gbmV3IERhdGUoMjAyMiwgMCwgMzEpIGFuZCBgbW9udGhzYCA9IDEsIGl0IHJldHVybnMgbmV3IERhdGUoMjAyMiwgMSwgMjgpLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIG1vbnRocyBUaGUgbnVtYmVyIG9mIG1vbnRocyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYWRkQ2FsZW5kYXJNb250aHMoZGF0ZTogVCwgbW9udGhzOiBudW1iZXIpOiBUO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYnkgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYGRheXNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0gZGF5cyBUaGUgbnVtYmVyIG9mIGRheXMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGFkZENhbGVuZGFyRGF5cyhkYXRlOiBULCBkYXlzOiBudW1iZXIpOiBUO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRhdGUgaW4gdGhlIGxvY2FsIGZvcm1hdC5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gZm9ybWF0XG4gICAqIEByZXR1cm5zIFRoZSBgZGF0ZWAgaW4gdGhlIGxvY2FsIGZvcm1hdCBhcyBzdHJpbmcuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0QWNjZXNzaWJpbGl0eUZvcm1hdERhdGUoZGF0ZTogVCB8IHN0cmluZyk6IHN0cmluZztcblxuICAvKipcbiAgICogR2V0IHRoZSBnaXZlbiBzdHJpbmcgYXMgRGF0ZS5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSBkYXRlIGluIHRoZSBmb3JtYXQgREQuTU0uWVlZWS5cbiAgICovXG4gIHB1YmxpYyBwYXJzZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IFQgfCBudWxsIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgZGF0ZTogVCB8IG51bGwgPSBudWxsO1xuICAgIGNvbnN0IGlzb01hdGNoID0gdmFsdWUubWF0Y2goSVNPODYwMV9GT1JNQVRfREFURSk7XG4gICAgdHJ5IHtcbiAgICAgIGRhdGUgPSBpc29NYXRjaCA/IHRoaXMuY3JlYXRlRGF0ZSgraXNvTWF0Y2hbMV0sICtpc29NYXRjaFsyXSwgK2lzb01hdGNoWzNdKSA6IG51bGw7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvKiBlbXB0eSAqL1xuICAgIH1cbiAgICBpZiAodGhpcy5pc1ZhbGlkKGRhdGUpKSB7XG4gICAgICByZXR1cm4gZGF0ZTtcbiAgICB9XG5cbiAgICBjb25zdCBzdHJpcHBlZFZhbHVlID0gdmFsdWUucmVwbGFjZSgvXFxEL2csICcgJykudHJpbSgpO1xuXG4gICAgY29uc3QgbWF0Y2g6IFJlZ0V4cE1hdGNoQXJyYXkgfCBudWxsIHwgdW5kZWZpbmVkID0gc3RyaXBwZWRWYWx1ZT8ubWF0Y2goRk9STUFUX0RBVEUpO1xuICAgIGlmIChcbiAgICAgICFtYXRjaCB8fFxuICAgICAgbWF0Y2guaW5kZXggIT09IDAgfHxcbiAgICAgIG1hdGNoLmxlbmd0aCA8PSAyIHx8XG4gICAgICBtYXRjaC5zb21lKChlKSA9PiBlID09PSB1bmRlZmluZWQpIHx8XG4gICAgICAhdGhpcy5pc1ZhbGlkKHRoaXMuY3JlYXRlRGF0ZSgrbWF0Y2hbM10sICttYXRjaFsyXSwgK21hdGNoWzFdKSlcbiAgICApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCB5ZWFyID0gK21hdGNoWzNdO1xuXG4gICAgaWYgKHR5cGVvZiB5ZWFyID09PSAnbnVtYmVyJyAmJiB5ZWFyIDwgMTAwICYmIHllYXIgPj0gMCkge1xuICAgICAgY29uc3Qgc2hpZnQgPSB0aGlzLmdldFllYXIodGhpcy50b2RheSgpKSAtIDIwMDAgKyB0aGlzLl9jdXRvZmZZZWFyT2Zmc2V0O1xuICAgICAgeWVhciA9IHllYXIgPD0gc2hpZnQgPyAyMDAwICsgeWVhciA6IDE5MDAgKyB5ZWFyO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNyZWF0ZURhdGUoeWVhciwgK21hdGNoWzJdLCArbWF0Y2hbMV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCB0aGUgZ2l2ZW4gZGF0ZSBhcyBzdHJpbmcuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBkYXRlIHRvIGZvcm1hdC5cbiAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9ucyBvYmplY3Qgd2l0aCB3ZWVrZGF5U3R5bGUgYXMgcHJvcGVydHlcbiAgICovXG4gIHB1YmxpYyBmb3JtYXQoXG4gICAgZGF0ZTogVCB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgb3B0aW9ucz86IHsgd2Vla2RheVN0eWxlPzogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnIHwgJ25vbmUnIH0sXG4gICk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IG5ldyBEYXRlKHRoaXMudG9Jc284NjAxKGRhdGUhKSArICdUMDA6MDA6MDAnKTtcbiAgICBjb25zdCBkYXRlRm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoJ2RlLUNIJywge1xuICAgICAgZGF5OiAnMi1kaWdpdCcsXG4gICAgICBtb250aDogJzItZGlnaXQnLFxuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnM/LndlZWtkYXlTdHlsZSA9PT0gJ25vbmUnKSB7XG4gICAgICByZXR1cm4gZGF0ZUZvcm1hdHRlci5mb3JtYXQodmFsdWUpO1xuICAgIH1cblxuICAgIGNvbnN0IHdlZWtkYXlTdHlsZSA9IG9wdGlvbnM/LndlZWtkYXlTdHlsZSA/PyAnc2hvcnQnO1xuICAgIGxldCB3ZWVrZGF5ID0gdGhpcy5nZXREYXlPZldlZWtOYW1lcyh3ZWVrZGF5U3R5bGUpW3RoaXMuZ2V0RGF5T2ZXZWVrKGRhdGUhKV07XG4gICAgd2Vla2RheSA9IHdlZWtkYXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3ZWVrZGF5LnN1YnN0cmluZygxKTtcbiAgICAvLyBXZSBoYXZlIHRoZSBzcGVjaWFsIHJlcXVpcmVtZW50IGZvciBkYXRlIGZvcm1hdHMgYXQgU0JCLCB3aGVyZSB0aGUgc2hvcnQgZm9ybVxuICAgIC8vIGZvciB3ZWVrZGF5cyBzaG91bGQgYmUgdHdvIGNoYXJhY3RlcnMgaW4gbGVuZ3RoLlxuICAgIGlmICh3ZWVrZGF5U3R5bGUgPT09ICdzaG9ydCcpIHtcbiAgICAgIHdlZWtkYXkgPSB3ZWVrZGF5LnN1YnN0cmluZygwLCAyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7d2Vla2RheX0sICR7ZGF0ZUZvcm1hdHRlci5mb3JtYXQodmFsdWUpfWA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGBvYmpgIGlzIGEgRGF0ZS5cbiAgICogQHBhcmFtIG9iaiBUaGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGlzRGF0ZUluc3RhbmNlKG9iajogYW55KTogYm9vbGVhbjtcblxuICAvKipcbiAgICogR2V0cyBkYXRlIGluc3RhbmNlIHRoYXQgaXMgbm90IHZhbGlkLlxuICAgKiBAcmV0dXJucyBBbiBpbnZhbGlkIGRhdGUuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgaW52YWxpZCgpOiBUO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGdpdmVuIGRhdGUgYXMgSVNPIFN0cmluZy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gY29udmVydCB0byBJU08gU3RyaW5nLlxuICAgKi9cbiAgcHVibGljIHRvSXNvODYwMShkYXRlOiBUKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYWQgPSAodmFsdWU6IG51bWJlciwgbGVuZ3RoID0gMik6IHN0cmluZyA9PiBgJHt2YWx1ZX1gLnBhZFN0YXJ0KGxlbmd0aCwgJzAnKTtcbiAgICByZXR1cm4gYCR7cGFkKHRoaXMuZ2V0WWVhcihkYXRlKSwgNCl9LSR7cGFkKHRoaXMuZ2V0TW9udGgoZGF0ZSkpfS0ke3BhZCh0aGlzLmdldERhdGUoZGF0ZSkpfWA7XG4gIH1cblxuICAvKipcbiAgICogR2l2ZW4gYSBwb3RlbnRpYWwgZGF0ZSBvYmplY3QsIHJldHVybnMgdGhhdCBzYW1lIGRhdGUgb2JqZWN0IGlmIGl0IGlzXG4gICAqIGEgdmFsaWQgZGF0ZSwgb3IgYG51bGxgIGlmIGl0J3Mgbm90IGEgdmFsaWQgZGF0ZS5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSBvYmplY3QgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIEEgZGF0ZSBvciBgbnVsbGAuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsaWREYXRlT3JOdWxsKHZhbHVlOiB1bmtub3duKTogVCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmlzRGF0ZUluc3RhbmNlKHZhbHVlKSAmJiB0aGlzLmlzVmFsaWQodmFsdWUgYXMgVCkgPyAodmFsdWUgYXMgVCkgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aCwgYW5kIHRoZW4gaXRzIG9mZnNldCBmcm9tIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAqL1xuICBwdWJsaWMgZ2V0Rmlyc3RXZWVrT2Zmc2V0KGRhdGU6IFQpOiBudW1iZXIge1xuICAgIGNvbnN0IGZpcnN0T2ZNb250aCA9IHRoaXMuY3JlYXRlRGF0ZSh0aGlzLmdldFllYXIoZGF0ZSksIHRoaXMuZ2V0TW9udGgoZGF0ZSksIDEpITtcbiAgICByZXR1cm4gKDcgKyB0aGlzLmdldERheU9mV2VlayhmaXJzdE9mTW9udGgpIC0gdGhpcy5nZXRGaXJzdERheU9mV2VlaygpKSAlIDc7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdHdvIGRhdGVzLlxuICAgKiBAcGFyYW0gZmlyc3QgVGhlIGZpcnN0IGRhdGUgdG8gY29tcGFyZS5cbiAgICogQHBhcmFtIHNlY29uZCBUaGUgc2Vjb25kIGRhdGUgdG8gY29tcGFyZS5cbiAgICogQHJldHVybnMgMCBpZiB0aGUgZGF0ZXMgYXJlIGVxdWFsLCBhIG51bWJlciBsZXNzIHRoYW4gMCBpZiB0aGUgZmlyc3QgZGF0ZSBpcyBlYXJsaWVyLFxuICAgKiAgICAgYSBudW1iZXIgZ3JlYXRlciB0aGFuIDAgaWYgdGhlIGZpcnN0IGRhdGUgaXMgbGF0ZXIuXG4gICAqL1xuICBwdWJsaWMgY29tcGFyZURhdGUoZmlyc3Q6IFQsIHNlY29uZDogVCk6IG51bWJlciB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZ2V0WWVhcihmaXJzdCkgLSB0aGlzLmdldFllYXIoc2Vjb25kKSB8fFxuICAgICAgdGhpcy5nZXRNb250aChmaXJzdCkgLSB0aGlzLmdldE1vbnRoKHNlY29uZCkgfHxcbiAgICAgIHRoaXMuZ2V0RGF0ZShmaXJzdCkgLSB0aGlzLmdldERhdGUoc2Vjb25kKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHR3byBkYXRlcyBhcmUgZXF1YWwuXG4gICAqIEBwYXJhbSBmaXJzdCBUaGUgZmlyc3QgZGF0ZSB0byBjaGVjay5cbiAgICogQHBhcmFtIHNlY29uZCBUaGUgc2Vjb25kIGRhdGUgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHR3byBkYXRlcyBhcmUgZXF1YWwuXG4gICAqICAgICBOdWxsIGRhdGVzIGFyZSBjb25zaWRlcmVkIGVxdWFsIHRvIG90aGVyIG51bGwgZGF0ZXMuXG4gICAqL1xuICBwdWJsaWMgc2FtZURhdGUoZmlyc3Q6IFQgfCBudWxsLCBzZWNvbmQ6IFQgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgaWYgKGZpcnN0ICYmIHNlY29uZCkge1xuICAgICAgY29uc3QgZmlyc3RWYWxpZCA9IHRoaXMuaXNWYWxpZChmaXJzdCk7XG4gICAgICBjb25zdCBzZWNvbmRWYWxpZCA9IHRoaXMuaXNWYWxpZChzZWNvbmQpO1xuICAgICAgaWYgKGZpcnN0VmFsaWQgJiYgc2Vjb25kVmFsaWQpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbXBhcmVEYXRlKGZpcnN0LCBzZWNvbmQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpcnN0VmFsaWQgPT0gc2Vjb25kVmFsaWQ7XG4gICAgfVxuICAgIHJldHVybiBmaXJzdCA9PSBzZWNvbmQ7XG4gIH1cblxuICAvKipcbiAgICogQ2xhbXAgdGhlIGdpdmVuIGRhdGUgYmV0d2VlbiBtaW4gYW5kIG1heCBkYXRlcy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gY2xhbXAuXG4gICAqIEBwYXJhbSBtaW4gVGhlIG1pbmltdW0gdmFsdWUgdG8gYWxsb3cuIElmIG51bGwgb3Igb21pdHRlZCBubyBtaW4gaXMgZW5mb3JjZWQuXG4gICAqIEBwYXJhbSBtYXggVGhlIG1heGltdW0gdmFsdWUgdG8gYWxsb3cuIElmIG51bGwgb3Igb21pdHRlZCBubyBtYXggaXMgZW5mb3JjZWQuXG4gICAqIEByZXR1cm5zIGBtaW5gIGlmIGBkYXRlYCBpcyBsZXNzIHRoYW4gYG1pbmAsIGBtYXhgIGlmIGRhdGUgaXMgZ3JlYXRlciB0aGFuIGBtYXhgLFxuICAgKiAgICAgb3RoZXJ3aXNlIGBkYXRlYC5cbiAgICovXG4gIHB1YmxpYyBjbGFtcERhdGUoZGF0ZTogVCwgbWluPzogVCB8IG51bGwsIG1heD86IFQgfCBudWxsKTogVCB7XG4gICAgaWYgKG1pbiAmJiB0aGlzLmNvbXBhcmVEYXRlKGRhdGUsIG1pbikgPCAwKSB7XG4gICAgICByZXR1cm4gbWluO1xuICAgIH1cbiAgICBpZiAobWF4ICYmIHRoaXMuY29tcGFyZURhdGUoZGF0ZSwgbWF4KSA+IDApIHtcbiAgICAgIHJldHVybiBtYXg7XG4gICAgfVxuICAgIHJldHVybiBkYXRlO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFhLGNBQ1g7QUFDRixJQUFhLHNCQUFzQjtBQUNuQyxJQUFhLFNBQVM7QUFDdEIsSUFBYSxVQUFVO0FBQ3ZCLElBQWEsWUFBWTtBQUN6QixJQUFhLFdBQVc7QUFDeEIsSUFBYSxTQUFTO0FBQ3RCLElBQWEsV0FBVztBQUN4QixJQUFhLFNBQVM7QUFHdEIsSUFBYSxlQUF1QjtBQUNwQyxJQUFhLGlCQUF5QjtBQUN0QyxJQUFhLGdCQUF3QjtBQUNyQyxJQUFhLGtCQUEwQjtBQUN2QyxJQUFhLGlCQUF5Qjs7Ozs7O0FBT3RDLElBQXNCLGNBQXRCLE1BQWlDOzs7Ozs7O0NBUy9CLFlBQW1CLG1CQUEyQixJQUFFO0VBQzlDLEtBQUssb0JBQW9COzs7Ozs7Ozs7O0NBbUZwQixZQUFZLE9BQW9DO0VBQ3JELElBQ0UsU0FBUyxRQUNSLEtBQUssZUFBZSxNQUFNLElBQUksS0FBSyxRQUFRLE1BQThCLEVBRTFFLE9BQU87RUFFVCxPQUFPLEtBQUssU0FBUzs7Ozs7O0NBcUNoQixNQUFNLE9BQWdDO0VBQzNDLElBQUksQ0FBQyxPQUNILE9BQU87RUFHVCxJQUFJLE9BQWlCO0VBQ3JCLE1BQU0sV0FBVyxNQUFNLE1BQU0sb0JBQW9CO0VBQ2pELElBQUk7R0FDRixPQUFPLFdBQVcsS0FBSyxXQUFXLENBQUMsU0FBUyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUc7VUFDeEU7RUFHUixJQUFJLEtBQUssUUFBUSxLQUFLLEVBQ3BCLE9BQU87RUFLVCxNQUFNLFFBRmdCLE1BQU0sUUFBUSxPQUFPLElBQUksQ0FBQyxNQUVHLEVBQWUsTUFBTSxZQUFZO0VBQ3BGLElBQ0UsQ0FBQyxTQUNE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
151
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1hZGFwdGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RhdGV0aW1lL2RhdGUtYWRhcHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgRk9STUFUX0RBVEUgPVxuICAvKDA/WzEtOV18WzEyXVswLTldfDNbMDFdKVsuLFxcXFwvXFwtXFxzXSgwP1sxLTldfDFbMC0yXSlbLixcXFxcL1xcLVxcc10oWzAtOV17MSw0fSQpPy87XG5leHBvcnQgY29uc3QgSVNPODYwMV9GT1JNQVRfREFURSA9IC9eKFswLTldezR9KS0oMFsxLTldfDFbMC0yXSktKDBbMS05XXxbMS0zXVswLTldKSQvO1xuZXhwb3J0IGNvbnN0IE1PTkRBWSA9IDE7XG5leHBvcnQgY29uc3QgVFVFU0RBWSA9IDI7XG5leHBvcnQgY29uc3QgV0VETkVTREFZID0gMztcbmV4cG9ydCBjb25zdCBUSFVSU0RBWSA9IDQ7XG5leHBvcnQgY29uc3QgRlJJREFZID0gNTtcbmV4cG9ydCBjb25zdCBTQVRVUkRBWSA9IDY7XG5leHBvcnQgY29uc3QgU1VOREFZID0gMDtcblxuLy8gVE9ETyhicmVha2luZy1jaGFuZ2UpOiBNb3ZlIHRoZXNlIHZhcmlhYmxlcyB0byBjYWxlbmRhclxuZXhwb3J0IGNvbnN0IERBWVNfUEVSX1JPVzogbnVtYmVyID0gNztcbmV4cG9ydCBjb25zdCBNT05USFNfUEVSX1JPVzogbnVtYmVyID0gNDtcbmV4cG9ydCBjb25zdCBZRUFSU19QRVJfUk9XOiBudW1iZXIgPSA0O1xuZXhwb3J0IGNvbnN0IE1PTlRIU19QRVJfUEFHRTogbnVtYmVyID0gMTI7XG5leHBvcnQgY29uc3QgWUVBUlNfUEVSX1BBR0U6IG51bWJlciA9IDI0O1xuXG4vKipcbiAqIEFic3RyYWN0IGRhdGUgZnVuY3Rpb25hbGl0eS5cbiAqXG4gKiBBZGFwdGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9ibG9iL21haW4vc3JjL21hdGVyaWFsL2NvcmUvZGF0ZXRpbWUvZGF0ZS1hZGFwdGVyLnRzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYXRlQWRhcHRlcjxUID0gYW55PiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2N1dG9mZlllYXJPZmZzZXQ6IG51bWJlcjtcblxuICAvKipcbiAgICogQHBhcmFtIGN1dG9mZlllYXJPZmZzZXQgVGhlIHRocmVzaG9sZCBvbiB3aGV0aGVyIGEgdHdvLWRpZ2l0IHllYXJcbiAgICogc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYmVsb25naW5nIHRvIDIwMDAgb3IgMTkwMC4gZS5nLiB3aXRoIDE1IChkZWZhdWx0KVxuICAgKiB0aGUgY3VycmVudCB5ZWFyIHBsdXMgMTUgd2lsbCBiZSB0cmVhdGVkIGFzIGJlbG9uZ2luZyB0byAyMDAwLCBhbmQgdGhlIHJlc3QgdG8gMTkwMC5cbiAgICogU28gZS5nLiB3aXRoIHRoZSBjdXJyZW50IHllYXIgMjAyNSwgNDAgd2lsbCBiZSB0cmVhdGVkIGFzIDIwNDAsIHdoaWxlIDQxIHdpbGwgYmUgdHJlYXRlZCBhcyAxOTQxLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKGN1dG9mZlllYXJPZmZzZXQ6IG51bWJlciA9IDE1KSB7XG4gICAgdGhpcy5fY3V0b2ZmWWVhck9mZnNldCA9IGN1dG9mZlllYXJPZmZzZXQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB5ZWFyIGFzIGEgbnVtYmVyLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldFllYXIoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBtb250aCBhcyBhIG51bWJlci5cbiAgICogQXR0ZW50aW9uOiBUaGlzIHJldHVybnMgMS0xMiBhbmQgbWl0aWdhdGVzIHRoZSBkZWZhdWx0IEphdmFTY3JpcHQgRGF0ZSBiZWhhdmlvci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRNb250aChkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRheSBvZiB0aGUgbW9udGggYXMgYSBudW1iZXIuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF0ZShkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIERheSBvZiB0aGUgd2VlayBhcyBhIG51bWJlci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREYXlPZldlZWsoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKiogR2V0IHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDA6IHN1bmRheTsgMTogbW9uZGF5OyBldGMuKS4gKi9cbiAgcHVibGljIGFic3RyYWN0IGdldEZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBudW1iZXIgb2YgZGF5cyBpbiBhIG1vbnRoLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldE51bURheXNJbk1vbnRoKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCBhIGxpc3Qgb2YgYWxsIHRoZSBtb250aHMgaW4gYSBnaXZlbiBzdHlsZS5cbiAgICogQHBhcmFtIHN0eWxlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0TW9udGhOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW107XG5cbiAgLyoqIEdldCBhIHN0cmluZyBhcnJheSB3aXRoIGxlbmd0aCA9IDMxLCBmaWxsZWQgd2l0aCB0aGUgZGF5cyBpbiBhIG1vbnRoLCBzdGFydGluZyBmcm9tIDEuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREYXRlTmFtZXMoKTogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEdldCBhIGxpc3Qgb2YgYWxsIHRoZSB3ZWVrIGRheXMgaW4gYSBnaXZlbiBzdHlsZS5cbiAgICogQHBhcmFtIHN0eWxlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF5T2ZXZWVrTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdO1xuXG4gIC8qKiBDcmVhdGVzIHRvZGF5J3MgZGF0ZS4gKi9cbiAgcHVibGljIGFic3RyYWN0IHRvZGF5KCk6IFQ7XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIGEgZ2l2ZW4gYGRhdGVgIGlzIHZhbGlkLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGlzVmFsaWQoZGF0ZTogVCB8IG51bGwgfCB1bmRlZmluZWQpOiBkYXRlIGlzIFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBjbG9uaW5nIHRoZSBnaXZlbiBvbmUuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY2xvbmUoZGF0ZTogVCk6IFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSwgZ2l2ZW4gZGF5LCBtb250aCBhbmQgeWVhcjsgd2l0aG91dCBkYXRlJ3Mgb3ZlcmZsb3cuXG4gICAqIEBwYXJhbSB5ZWFyXG4gICAqIEBwYXJhbSBtb250aCBUaGUgbW9udGggb2YgdGhlIGRhdGUgKDEtaW5kZXhlZCwgMSA9IEphbnVhcnkpLiBNdXN0IGJlIGFuIGludGVnZXIgMSAtIDEyLlxuICAgKiBAcGFyYW0gZGF5XG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY3JlYXRlRGF0ZSh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRheTogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogQXR0ZW1wdHMgdG8gZGVzZXJpYWxpemUgYSB2YWx1ZSB0byBhIHZhbGlkIGRhdGUgb2JqZWN0LiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIHBhcnNpbmcgaW4gdGhhdFxuICAgKiBkZXNlcmlhbGl6ZSBzaG91bGQgb25seSBhY2NlcHQgbm9uLWFtYmlndW91cywgbG9jYWxlLWluZGVwZW5kZW50IGZvcm1hdHMgKGUuZy4gYSBJU08gODYwMVxuICAgKiBzdHJpbmcpLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBhbGxvdyBhbnkgZGVzZXJpYWxpemF0aW9uLCBpdCBzaW1wbHkgY2hlY2tzIHRoYXRcbiAgICogdGhlIGdpdmVuIHZhbHVlIGlzIGFscmVhZHkgYSB2YWxpZCBkYXRlIG9iamVjdCBvciBudWxsLlxuICAgKiBAcGFyYW0gdmFsdWUgRWl0aGVyIGEgZGF0ZSBvYmplY3QsIElTTyBzdHJpbmcgb3IgYW4gZW1wdHkgdmFsdWUuXG4gICAqIEByZXR1cm5zIFRoZSBkYXRlIGlmIHRoZSBpbnB1dCBpcyB2YWxpZCwgYG51bGxgIG90aGVyd2lzZS5cbiAgICovXG4gIHB1YmxpYyBkZXNlcmlhbGl6ZSh2YWx1ZTogVCB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBUIHwgbnVsbCB7XG4gICAgaWYgKFxuICAgICAgdmFsdWUgPT0gbnVsbCB8fFxuICAgICAgKHRoaXMuaXNEYXRlSW5zdGFuY2UodmFsdWUpICYmIHRoaXMuaXNWYWxpZCh2YWx1ZSBhcyBUIHwgbnVsbCB8IHVuZGVmaW5lZCkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdmFsdWUgYXMgVCB8IG51bGw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmludmFsaWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYHllYXJzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIHllYXJzIFRoZSBudW1iZXIgb2YgeWVhcnMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogVCwgeWVhcnM6IG51bWJlcik6IFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgbW9udGhzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBJZiB0aGUgY2FsY3VsYXRlZCBtb250aCBoYXMgZmV3ZXIgZGF5cyB0aGFuIHRoZSBvcmlnaW5hbCBvbmUsIHRoZSBkYXRlIGlzIHNldCB0byB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLlxuICAgKiBFLmcuIHdpdGggYGRhdGVgID0gbmV3IERhdGUoMjAyMiwgMCwgMzEpIGFuZCBgbW9udGhzYCA9IDEsIGl0IHJldHVybnMgbmV3IERhdGUoMjAyMiwgMSwgMjgpLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIG1vbnRocyBUaGUgbnVtYmVyIG9mIG1vbnRocyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYWRkQ2FsZW5kYXJNb250aHMoZGF0ZTogVCwgbW9udGhzOiBudW1iZXIpOiBUO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYnkgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYGRheXNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0gZGF5cyBUaGUgbnVtYmVyIG9mIGRheXMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGFkZENhbGVuZGFyRGF5cyhkYXRlOiBULCBkYXlzOiBudW1iZXIpOiBUO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRhdGUgaW4gdGhlIGxvY2FsIGZvcm1hdC5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gZm9ybWF0XG4gICAqIEByZXR1cm5zIFRoZSBgZGF0ZWAgaW4gdGhlIGxvY2FsIGZvcm1hdCBhcyBzdHJpbmcuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0QWNjZXNzaWJpbGl0eUZvcm1hdERhdGUoZGF0ZTogVCB8IHN0cmluZyk6IHN0cmluZztcblxuICAvKipcbiAgICogR2V0IHRoZSBnaXZlbiBzdHJpbmcgYXMgRGF0ZS5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSBkYXRlIGluIHRoZSBmb3JtYXQgREQuTU0uWVlZWS5cbiAgICovXG4gIHB1YmxpYyBwYXJzZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IFQgfCBudWxsIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgZGF0ZTogVCB8IG51bGwgPSBudWxsO1xuICAgIGNvbnN0IGlzb01hdGNoID0gdmFsdWUubWF0Y2goSVNPODYwMV9GT1JNQVRfREFURSk7XG4gICAgdHJ5IHtcbiAgICAgIGRhdGUgPSBpc29NYXRjaCA/IHRoaXMuY3JlYXRlRGF0ZSgraXNvTWF0Y2hbMV0sICtpc29NYXRjaFsyXSwgK2lzb01hdGNoWzNdKSA6IG51bGw7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvKiBlbXB0eSAqL1xuICAgIH1cbiAgICBpZiAodGhpcy5pc1ZhbGlkKGRhdGUpKSB7XG4gICAgICByZXR1cm4gZGF0ZTtcbiAgICB9XG5cbiAgICBjb25zdCBzdHJpcHBlZFZhbHVlID0gdmFsdWUucmVwbGFjZSgvXFxEL2csICcgJykudHJpbSgpO1xuXG4gICAgY29uc3QgbWF0Y2g6IFJlZ0V4cE1hdGNoQXJyYXkgfCBudWxsIHwgdW5kZWZpbmVkID0gc3RyaXBwZWRWYWx1ZT8ubWF0Y2goRk9STUFUX0RBVEUpO1xuICAgIGlmIChcbiAgICAgICFtYXRjaCB8fFxuICAgICAgbWF0Y2guaW5kZXggIT09IDAgfHxcbiAgICAgIG1hdGNoLmxlbmd0aCA8PSAyIHx8XG4gICAgICBtYXRjaC5zb21lKChlKSA9PiBlID09PSB1bmRlZmluZWQpIHx8XG4gICAgICAhdGhpcy5pc1ZhbGlkKHRoaXMuY3JlYXRlRGF0ZSgrbWF0Y2hbM10sICttYXRjaFsyXSwgK21hdGNoWzFdKSlcbiAgICApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCB5ZWFyID0gK21hdGNoWzNdO1xuXG4gICAgaWYgKHR5cGVvZiB5ZWFyID09PSAnbnVtYmVyJyAmJiB5ZWFyIDwgMTAwICYmIHllYXIgPj0gMCkge1xuICAgICAgY29uc3Qgc2hpZnQgPSB0aGlzLmdldFllYXIodGhpcy50b2RheSgpKSAtIDIwMDAgKyB0aGlzLl9jdXRvZmZZZWFyT2Zmc2V0O1xuICAgICAgeWVhciA9IHllYXIgPD0gc2hpZnQgPyAyMDAwICsgeWVhciA6IDE5MDAgKyB5ZWFyO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNyZWF0ZURhdGUoeWVhciwgK21hdGNoWzJdLCArbWF0Y2hbMV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCB0aGUgZ2l2ZW4gZGF0ZSBhcyBzdHJpbmcuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBkYXRlIHRvIGZvcm1hdC5cbiAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9ucyBvYmplY3Qgd2l0aCB3ZWVrZGF5U3R5bGUgYXMgcHJvcGVydHlcbiAgICovXG4gIHB1YmxpYyBmb3JtYXQoXG4gICAgZGF0ZTogVCB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgb3B0aW9ucz86IHsgd2Vla2RheVN0eWxlPzogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnIHwgJ25vbmUnIH0sXG4gICk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IG5ldyBEYXRlKHRoaXMudG9Jc284NjAxKGRhdGUhKSArICdUMDA6MDA6MDAnKTtcbiAgICBjb25zdCBkYXRlRm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoJ2RlLUNIJywge1xuICAgICAgZGF5OiAnMi1kaWdpdCcsXG4gICAgICBtb250aDogJzItZGlnaXQnLFxuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnM/LndlZWtkYXlTdHlsZSA9PT0gJ25vbmUnKSB7XG4gICAgICByZXR1cm4gZGF0ZUZvcm1hdHRlci5mb3JtYXQodmFsdWUpO1xuICAgIH1cblxuICAgIGNvbnN0IHdlZWtkYXlTdHlsZSA9IG9wdGlvbnM/LndlZWtkYXlTdHlsZSA/PyAnc2hvcnQnO1xuICAgIGxldCB3ZWVrZGF5ID0gdGhpcy5nZXREYXlPZldlZWtOYW1lcyh3ZWVrZGF5U3R5bGUpW3RoaXMuZ2V0RGF5T2ZXZWVrKGRhdGUhKV07XG4gICAgd2Vla2RheSA9IHdlZWtkYXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3ZWVrZGF5LnN1YnN0cmluZygxKTtcbiAgICAvLyBXZSBoYXZlIHRoZSBzcGVjaWFsIHJlcXVpcmVtZW50IGZvciBkYXRlIGZvcm1hdHMgYXQgU0JCLCB3aGVyZSB0aGUgc2hvcnQgZm9ybVxuICAgIC8vIGZvciB3ZWVrZGF5cyBzaG91bGQgYmUgdHdvIGNoYXJhY3RlcnMgaW4gbGVuZ3RoLlxuICAgIGlmICh3ZWVrZGF5U3R5bGUgPT09ICdzaG9ydCcpIHtcbiAgICAgIHdlZWtkYXkgPSB3ZWVrZGF5LnN1YnN0cmluZygwLCAyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7d2Vla2RheX0sICR7ZGF0ZUZvcm1hdHRlci5mb3JtYXQodmFsdWUpfWA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGBvYmpgIGlzIGEgRGF0ZS5cbiAgICogQHBhcmFtIG9iaiBUaGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGlzRGF0ZUluc3RhbmNlKG9iajogYW55KTogYm9vbGVhbjtcblxuICAvKipcbiAgICogR2V0cyBkYXRlIGluc3RhbmNlIHRoYXQgaXMgbm90IHZhbGlkLlxuICAgKiBAcmV0dXJucyBBbiBpbnZhbGlkIGRhdGUuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgaW52YWxpZCgpOiBUO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGdpdmVuIGRhdGUgYXMgSVNPIFN0cmluZy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gY29udmVydCB0byBJU08gU3RyaW5nLlxuICAgKi9cbiAgcHVibGljIHRvSXNvODYwMShkYXRlOiBUKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYWQgPSAodmFsdWU6IG51bWJlciwgbGVuZ3RoID0gMik6IHN0cmluZyA9PiBgJHt2YWx1ZX1gLnBhZFN0YXJ0KGxlbmd0aCwgJzAnKTtcbiAgICByZXR1cm4gYCR7cGFkKHRoaXMuZ2V0WWVhcihkYXRlKSwgNCl9LSR7cGFkKHRoaXMuZ2V0TW9udGgoZGF0ZSkpfS0ke3BhZCh0aGlzLmdldERhdGUoZGF0ZSkpfWA7XG4gIH1cblxuICAvKipcbiAgICogR2l2ZW4gYSBwb3RlbnRpYWwgZGF0ZSBvYmplY3QsIHJldHVybnMgdGhhdCBzYW1lIGRhdGUgb2JqZWN0IGlmIGl0IGlzXG4gICAqIGEgdmFsaWQgZGF0ZSwgb3IgYG51bGxgIGlmIGl0J3Mgbm90IGEgdmFsaWQgZGF0ZS5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSBvYmplY3QgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIEEgZGF0ZSBvciBgbnVsbGAuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsaWREYXRlT3JOdWxsKHZhbHVlOiB1bmtub3duKTogVCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmlzRGF0ZUluc3RhbmNlKHZhbHVlKSAmJiB0aGlzLmlzVmFsaWQodmFsdWUgYXMgVCkgPyAodmFsdWUgYXMgVCkgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aCwgYW5kIHRoZW4gaXRzIG9mZnNldCBmcm9tIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAqL1xuICBwdWJsaWMgZ2V0Rmlyc3RXZWVrT2Zmc2V0KGRhdGU6IFQpOiBudW1iZXIge1xuICAgIGNvbnN0IGZpcnN0T2ZNb250aCA9IHRoaXMuY3JlYXRlRGF0ZSh0aGlzLmdldFllYXIoZGF0ZSksIHRoaXMuZ2V0TW9udGgoZGF0ZSksIDEpITtcbiAgICByZXR1cm4gKDcgKyB0aGlzLmdldERheU9mV2VlayhmaXJzdE9mTW9udGgpIC0gdGhpcy5nZXRGaXJzdERheU9mV2VlaygpKSAlIDc7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdHdvIGRhdGVzLlxuICAgKiBAcGFyYW0gZmlyc3QgVGhlIGZpcnN0IGRhdGUgdG8gY29tcGFyZS5cbiAgICogQHBhcmFtIHNlY29uZCBUaGUgc2Vjb25kIGRhdGUgdG8gY29tcGFyZS5cbiAgICogQHJldHVybnMgMCBpZiB0aGUgZGF0ZXMgYXJlIGVxdWFsLCBhIG51bWJlciBsZXNzIHRoYW4gMCBpZiB0aGUgZmlyc3QgZGF0ZSBpcyBlYXJsaWVyLFxuICAgKiAgICAgYSBudW1iZXIgZ3JlYXRlciB0aGFuIDAgaWYgdGhlIGZpcnN0IGRhdGUgaXMgbGF0ZXIuXG4gICAqL1xuICBwdWJsaWMgY29tcGFyZURhdGUoZmlyc3Q6IFQsIHNlY29uZDogVCk6IG51bWJlciB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZ2V0WWVhcihmaXJzdCkgLSB0aGlzLmdldFllYXIoc2Vjb25kKSB8fFxuICAgICAgdGhpcy5nZXRNb250aChmaXJzdCkgLSB0aGlzLmdldE1vbnRoKHNlY29uZCkgfHxcbiAgICAgIHRoaXMuZ2V0RGF0ZShmaXJzdCkgLSB0aGlzLmdldERhdGUoc2Vjb25kKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHR3byBkYXRlcyBhcmUgZXF1YWwuXG4gICAqIEBwYXJhbSBmaXJzdCBUaGUgZmlyc3QgZGF0ZSB0byBjaGVjay5cbiAgICogQHBhcmFtIHNlY29uZCBUaGUgc2Vjb25kIGRhdGUgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHR3byBkYXRlcyBhcmUgZXF1YWwuXG4gICAqICAgICBOdWxsIGRhdGVzIGFyZSBjb25zaWRlcmVkIGVxdWFsIHRvIG90aGVyIG51bGwgZGF0ZXMuXG4gICAqL1xuICBwdWJsaWMgc2FtZURhdGUoZmlyc3Q6IFQgfCBudWxsLCBzZWNvbmQ6IFQgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgaWYgKGZpcnN0ICYmIHNlY29uZCkge1xuICAgICAgY29uc3QgZmlyc3RWYWxpZCA9IHRoaXMuaXNWYWxpZChmaXJzdCk7XG4gICAgICBjb25zdCBzZWNvbmRWYWxpZCA9IHRoaXMuaXNWYWxpZChzZWNvbmQpO1xuICAgICAgaWYgKGZpcnN0VmFsaWQgJiYgc2Vjb25kVmFsaWQpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbXBhcmVEYXRlKGZpcnN0LCBzZWNvbmQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpcnN0VmFsaWQgPT0gc2Vjb25kVmFsaWQ7XG4gICAgfVxuICAgIHJldHVybiBmaXJzdCA9PSBzZWNvbmQ7XG4gIH1cblxuICAvKipcbiAgICogQ2xhbXAgdGhlIGdpdmVuIGRhdGUgYmV0d2VlbiBtaW4gYW5kIG1heCBkYXRlcy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gY2xhbXAuXG4gICAqIEBwYXJhbSBtaW4gVGhlIG1pbmltdW0gdmFsdWUgdG8gYWxsb3cuIElmIG51bGwgb3Igb21pdHRlZCBubyBtaW4gaXMgZW5mb3JjZWQuXG4gICAqIEBwYXJhbSBtYXggVGhlIG1heGltdW0gdmFsdWUgdG8gYWxsb3cuIElmIG51bGwgb3Igb21pdHRlZCBubyBtYXggaXMgZW5mb3JjZWQuXG4gICAqIEByZXR1cm5zIGBtaW5gIGlmIGBkYXRlYCBpcyBsZXNzIHRoYW4gYG1pbmAsIGBtYXhgIGlmIGRhdGUgaXMgZ3JlYXRlciB0aGFuIGBtYXhgLFxuICAgKiAgICAgb3RoZXJ3aXNlIGBkYXRlYC5cbiAgICovXG4gIHB1YmxpYyBjbGFtcERhdGUoZGF0ZTogVCwgbWluPzogVCB8IG51bGwsIG1heD86IFQgfCBudWxsKTogVCB7XG4gICAgaWYgKG1pbiAmJiB0aGlzLmNvbXBhcmVEYXRlKGRhdGUsIG1pbikgPCAwKSB7XG4gICAgICByZXR1cm4gbWluO1xuICAgIH1cbiAgICBpZiAobWF4ICYmIHRoaXMuY29tcGFyZURhdGUoZGF0ZSwgbWF4KSA+IDApIHtcbiAgICAgIHJldHVybiBtYXg7XG4gICAgfVxuICAgIHJldHVybiBkYXRlO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFhLGNBQ1g7QUFDRixJQUFhLHNCQUFzQjtBQUNuQyxJQUFhLFNBQVM7QUFDdEIsSUFBYSxVQUFVO0FBQ3ZCLElBQWEsWUFBWTtBQUN6QixJQUFhLFdBQVc7QUFDeEIsSUFBYSxTQUFTO0FBQ3RCLElBQWEsV0FBVztBQUN4QixJQUFhLFNBQVM7QUFHdEIsSUFBYSxlQUF1QjtBQUNwQyxJQUFhLGlCQUF5QjtBQUN0QyxJQUFhLGdCQUF3QjtBQUNyQyxJQUFhLGtCQUEwQjtBQUN2QyxJQUFhLGlCQUF5Qjs7Ozs7O0FBT3RDLElBQXNCLGNBQXRCLE1BQWlDOzs7Ozs7O0NBUy9CLFlBQW1CLG1CQUEyQixJQUFFO0VBQzlDLEtBQUssb0JBQW9CO0NBQzNCOzs7Ozs7Ozs7Q0FrRk8sWUFBWSxPQUFvQztFQUNyRCxJQUNFLFNBQVMsUUFDUixLQUFLLGVBQWUsS0FBSyxLQUFLLEtBQUssUUFBUSxLQUE2QixHQUV6RSxPQUFPO0VBRVQsT0FBTyxLQUFLLFFBQU87Q0FDckI7Ozs7O0NBb0NPLE1BQU0sT0FBZ0M7RUFDM0MsSUFBSSxDQUFDLE9BQ0gsT0FBTztFQUdULElBQUksT0FBaUI7RUFDckIsTUFBTSxXQUFXLE1BQU0sTUFBTSxtQkFBbUI7RUFDaEQsSUFBSTtHQUNGLE9BQU8sV0FBVyxLQUFLLFdBQVcsQ0FBQyxTQUFTLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSTtFQUNoRixRQUFRLENBRVI7RUFDQSxJQUFJLEtBQUssUUFBUSxJQUFJLEdBQ25CLE9BQU87RUFLVCxNQUFNLFFBRmdCLE1BQU0sUUFBUSxPQUFPLEdBQUcsRUFBRSxLQUVHLEdBQWUsTUFBTSxXQUFXO0VB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
@@ -141,4 +141,4 @@ var defaultDateAdapter = new NativeDateAdapter();
141
141
  //#endregion
142
142
  export { NativeDateAdapter, defaultDateAdapter };
143
143
 
144
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWRhdGUtYWRhcHRlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kYXRldGltZS9uYXRpdmUtZGF0ZS1hZGFwdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLnRzJztcblxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICcuL2RhdGUtYWRhcHRlci50cyc7XG5cbi8qKlxuICogTWF0Y2hlcyBzdHJpbmdzIHRoYXQgaGF2ZSB0aGUgZm9ybSBvZiBhIHZhbGlkIFJGQyAzMzM5IHN0cmluZ1xuICogKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzM5KS4gTm90ZSB0aGF0IHRoZSBzdHJpbmcgbWF5IG5vdCBhY3R1YWxseSBiZSBhIHZhbGlkIGRhdGVcbiAqIGJlY2F1c2UgdGhlIHJlZ2V4IHdpbGwgbWF0Y2ggc3RyaW5ncyBhbmQgd2l0aG91dCBvZiBib3VuZHMgbW9udGgsIGRhdGUsIGV0Yy5cbiAqL1xuY29uc3QgSVNPXzg2MDFfUkVHRVggPVxuICAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9KD86VFxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkKyk/KD86WnwoPzooPzpcXCt8LSlcXGR7Mn06XFxkezJ9KSk/KT8kLztcblxuZXhwb3J0IGNsYXNzIE5hdGl2ZURhdGVBZGFwdGVyIGV4dGVuZHMgRGF0ZUFkYXB0ZXI8RGF0ZT4ge1xuICAvKiogR2V0cyB0aGUgeWVhciBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldFllYXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBtb250aCBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldE1vbnRoKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldE1vbnRoKCkgKyAxO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERhdGUoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RGF0ZSgpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERheU9mV2VlayhkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXREYXkoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBkYXRlIGluIHRoZSBsb2NhbCBmb3JtYXQuICovXG4gIHB1YmxpYyBnZXRBY2Nlc3NpYmlsaXR5Rm9ybWF0RGF0ZShkYXRlOiBEYXRlIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBvcHRpb25zOiBJbnRsLkRhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IHtcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnbG9uZycsXG4gICAgICBkYXk6ICdudW1lcmljJyxcbiAgICB9O1xuICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgb3B0aW9ucykuZm9ybWF0KG5ldyBEYXRlKGRhdGUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHN0cmluZ3Mgd2l0aCBsZW5ndGggPSAxMiwgZmlsbGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIG1vbnRocyBzdGFydGluZyBmcm9tIEphbnVhcnksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgbW9udGhgIGluIGBEYXRlVGltZUZvcm1hdE9wdGlvbnNgOiBgbG9uZ2AgZm9yIGZ1bGwgbmFtZSwgYHNob3J0YCBmb3Igc2hvcnQgbmFtZSwgYG5hcnJvd2AgZm9yIHNpbmdsZSBsZXR0ZXIsXG4gICAqIEUuZy4sIHdpdGggSmFudWFyeSBpbiBlbi1nYjogYGxvbmdgIHJldHVybnMgXCJKYW51YXJ5XCIsIGBzaG9ydGAgcmV0dXJucyBcIkphblwiLCBgbmFycm93YCByZXR1cm5zIFwiSlwiLlxuICAgKi9cbiAgcHVibGljIGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBtb250aDogc3R5bGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDEyLCAoaSkgPT4gZm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZSgyMDE3LCBpLCAxKSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSAzMSwgZmlsbGVkIHdpdGggdGhlIGRheXMgaW4gYSBtb250aCwgc3RhcnRpbmcgZnJvbSAxLiAqL1xuICBwdWJsaWMgZ2V0RGF0ZU5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBkYXk6ICdudW1lcmljJyB9KTtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2UoMzEsIChpKSA9PiBmb3JtYXR0ZXIuZm9ybWF0KG5ldyBEYXRlKDIwMTcsIDAsIGkgKyAxKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSA3LCBmaWxsZWQgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZGF5cyBpbiBhIHdlZWsgc3RhcnRpbmcgZnJvbSBTdW5kYXksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgd2Vla2RheWAgaW4gYERhdGVUaW1lRm9ybWF0T3B0aW9uc2AgLSAnbG9uZycgZm9yIGZ1bGwgbmFtZSwgJ3Nob3J0JyBmb3Igc2hvcnQgbmFtZSwgJ25hcnJvdycgZm9yIHNpbmdsZSBsZXR0ZXI7XG4gICAqIEUuZy4sIHdpdGggTW9uZGF5IGluIGVuLWdiOiBgbG9uZ2AgcmV0dXJucyBcIk1vbmRheVwiLCBgc2hvcnRgIHJldHVybnMgXCJNb25cIiwgYG5hcnJvd2AgcmV0dXJucyBcIk1cIi5cbiAgICovXG4gIHB1YmxpYyBnZXREYXlPZldlZWtOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCB7IHdlZWtkYXk6IHN0eWxlIH0pO1xuICAgIHJldHVybiB0aGlzLl9yYW5nZSg3LCAoaSkgPT4gZm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZSgyMDE3LCAwLCBpICsgMSkpKTtcbiAgfVxuXG4gIC8qKiBEZWZpbmVzIHdoaWNoIGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDA6IHN1bmRheTsgMTogbW9uZGF5OyBldGMuKS4gKi9cbiAgcHVibGljIGdldEZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICAvKiogQ2FsY3VsYXRlcyB0aGUgbnVtYmVyIG9mIGRheXMgaW4gYSBtb250aCBnaXZlbiB0aGUgeWVhciBhbmQgdGhlIG1vbnRoLiAqL1xuICBwdWJsaWMgZ2V0TnVtRGF5c0luTW9udGgoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZSh0aGlzLl9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHRoaXMuZ2V0WWVhcihkYXRlKSwgdGhpcy5nZXRNb250aChkYXRlKSwgMCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgdG9kYXkncyBkYXRlLiAqL1xuICBwdWJsaWMgdG9kYXkoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKG5ldyBEYXRlKCkuc2V0SG91cnMoMCwgMCwgMCwgMCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSwgZ2l2ZW4gZGF5LCBtb250aCBhbmQgeWVhcjsgdGhlIG1ldGhvZCBkb2Vzbid0IGFsbG93IGRhdGUncyBvdmVyZmxvdy4gKi9cbiAgcHVibGljIGNyZWF0ZURhdGUoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXk6IG51bWJlcik6IERhdGUge1xuICAgIC8vIENoZWNrIGZvciBpbnZhbGlkIG1vbnRoIGFuZCBkYXRlIChleGNlcHQgdXBwZXIgYm91bmQgb24gZGF0ZSB3aGljaCB3ZSBoYXZlIHRvIGNoZWNrIGFmdGVyIGNyZWF0aW5nIHRoZSBEYXRlKS5cbiAgICBpZiAobW9udGggPCAxIHx8IG1vbnRoID4gMTIpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIG1vbnRoIFwiJHttb250aH1cIi4gTW9udGggaGFzIHRvIGJlIGJldHdlZW4gMSBhbmQgMTIuYCk7XG4gICAgfSBlbHNlIGlmIChkYXkgPCAxKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBkYXkgXCIke2RheX1cIi4gRGF5IGhhcyB0byBiZSBncmVhdGVyIHRoYW4gMC5gKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHllYXIsIG1vbnRoIC0gMSwgZGF5KTtcbiAgICAvLyBDaGVjayB0aGF0IHRoZSBkYXRlIHdhc24ndCBhYm92ZSB0aGUgdXBwZXIgYm91bmQgZm9yIHRoZSBtb250aCwgY2F1c2luZyB0aGUgbW9udGggdG8gb3ZlcmZsb3dcbiAgICBpZiAocmVzdWx0LmdldE1vbnRoKCkgKyAxICE9PSBtb250aCkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF5IFwiJHtkYXl9XCIgZm9yIG1vbnRoIFwiJHttb250aH1cIi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgb2JqYCBpcyBhIERhdGUuICovXG4gIHB1YmxpYyBpc0RhdGVJbnN0YW5jZShvYmo6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBEYXRlO1xuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgZGF0ZWAgaXMgYSB2YWxpZCBEYXRlLiAqL1xuICBwdWJsaWMgaXNWYWxpZChkYXRlOiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGRhdGUgaXMgRGF0ZSB7XG4gICAgcmV0dXJuICEhZGF0ZSAmJiAhaXNOYU4oZGF0ZS52YWx1ZU9mKCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBjbG9uaW5nIHRoZSBnaXZlbiBvbmUuICovXG4gIHB1YmxpYyBjbG9uZShkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUudmFsdWVPZigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYHllYXJzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIHllYXJzIFRoZSBudW1iZXIgb2YgeWVhcnMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogRGF0ZSwgeWVhcnM6IG51bWJlcik6IERhdGUge1xuICAgIHJldHVybiB0aGlzLmFkZENhbGVuZGFyTW9udGhzKGRhdGUsIHllYXJzICogMTIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgbW9udGhzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBJZiB0aGUgY2FsY3VsYXRlZCBtb250aCBoYXMgZmV3ZXIgZGF5cyB0aGFuIHRoZSBvcmlnaW5hbCBvbmUsIHRoZSBkYXRlIGlzIHNldCB0byB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLlxuICAgKiBFLmcuLCB3aXRoIGBkYXRlYCA9IG5ldyBEYXRlKDIwMjIsIDAsIDMxKSBhbmQgYG1vbnRoc2AgPSAxLCBpdCByZXR1cm5zIG5ldyBEYXRlKDIwMjIsIDEsIDI4KS5cbiAgICovXG4gIHB1YmxpYyBhZGRDYWxlbmRhck1vbnRocyhkYXRlOiBEYXRlLCBtb250aHM6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IHRhcmdldE1vbnRoID0gZGF0ZS5nZXRNb250aCgpICsgbW9udGhzO1xuICAgIGNvbnN0IGRhdGVXaXRoQ29ycmVjdE1vbnRoID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCB0YXJnZXRNb250aCwgMSwgMCwgMCwgMCwgMCk7XG4gICAgY29uc3QgZGF5c0luTW9udGggPSB0aGlzLmdldE51bURheXNJbk1vbnRoKGRhdGVXaXRoQ29ycmVjdE1vbnRoKTtcbiAgICAvLyBBZGFwdCB0aGUgbGFzdCBkYXkgb2YgbW9udGggZm9yIHNob3J0ZXIgbW9udGhzXG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuY2xvbmUoZGF0ZSkuc2V0TW9udGgodGFyZ2V0TW9udGgsIE1hdGgubWluKGRheXNJbk1vbnRoLCBkYXRlLmdldERhdGUoKSkpKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgbmV3IGRhdGUgYnkgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYGRheXNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuICovXG4gIHB1YmxpYyBhZGRDYWxlbmRhckRheXMoZGF0ZTogRGF0ZSwgZGF5czogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgdGFyZ2V0RGF5ID0gZGF0ZS5nZXREYXRlKCkgKyBkYXlzO1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgdGFyZ2V0RGF5LCAwLCAwLCAwLCAwKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgRGF0ZSBmcm9tIGEgdmFsaWQgaW5wdXQgKERhdGUgb3IgSVNPIHN0cmluZykuICovXG4gIHB1YmxpYyBvdmVycmlkZSBkZXNlcmlhbGl6ZShkYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoIWRhdGUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGVsc2UgaWYgKElTT184NjAxX1JFR0VYLnRlc3QoZGF0ZSkpIHtcbiAgICAgICAgLy8gVGhlIGBEYXRlYCBjb25zdHJ1Y3RvciBhY2NlcHRzIGZvcm1hdHMgb3RoZXIgdGhhbiBJU08gODYwMSwgc28gd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlXG4gICAgICAgIC8vIHN0cmluZyBpcyB0aGUgcmlnaHQgZm9ybWF0IGZpcnN0LlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWxpZERhdGVPck51bGwobmV3IERhdGUoZGF0ZS5pbmNsdWRlcygnVCcpID8gZGF0ZSA6IGRhdGUgKyAnVDAwOjAwOjAwJykpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuZGVzZXJpYWxpemUoZGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgaW52YWxpZCgpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoTmFOKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IHdpdGggdGhlIGdpdmVuIGxlbmd0aCBhbmQgZmlsbHMgaXQgYnkgbWFwcGluZyB3aXRoIHRoZSBwcm92aWRlZCBmdW5jdGlvbi5cbiAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBhcnJheSB0byBiZSBjcmVhdGVkLlxuICAgKiBAcGFyYW0gdmFsdWVGdW5jdGlvbiBUaGUgZnVuY3Rpb24gb2YgYXJyYXkncyBpbmRleCB1c2VkIHRvIGZpbGwgdGhlIGFycmF5LlxuICAgKi9cbiAgcHJpdmF0ZSBfcmFuZ2U8VD4obGVuZ3RoOiBudW1iZXIsIHZhbHVlRnVuY3Rpb246IChpbmRleDogbnVtYmVyKSA9PiBUKTogVFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aCB9KS5tYXAoKF8sIGkpID0+IHZhbHVlRnVuY3Rpb24oaSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBkYXRlIGJ1dCBhbGxvd3MgdGhlIG1vbnRoIGFuZCBkYXRlIHRvIG92ZXJmbG93LiAqL1xuICBwcml2YXRlIF9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF0ZTogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoeWVhciwgbW9udGgsIGRhdGUpO1xuICAgIC8vIFdlIG5lZWQgdG8gY29ycmVjdCBmb3IgdGhlIGZhY3QgdGhhdCBKUyBuYXRpdmUgRGF0ZSB0cmVhdHMgeWVhcnMgaW4gcmFuZ2UgWzAsIDk5XSBhc1xuICAgIC8vIGFiYnJldmlhdGlvbnMgZm9yIDE5eHguXG4gICAgaWYgKHllYXIgPj0gMCAmJiB5ZWFyIDwgMTAwKSB7XG4gICAgICByZXN1bHQuc2V0RnVsbFllYXIodGhpcy5nZXRZZWFyKHJlc3VsdCkgLSAxOTAwKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdERhdGVBZGFwdGVyID0gbmV3IE5hdGl2ZURhdGVBZGFwdGVyKCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBU0EsSUFBTSxpQkFDSjtBQUVGLElBQWEsb0JBQWIsY0FBdUMsWUFBaUI7O0NBRS9DLFFBQVEsTUFBVTtFQUN2QixPQUFPLEtBQUssYUFBYTs7O0NBSXBCLFNBQVMsTUFBVTtFQUN4QixPQUFPLEtBQUssVUFBVSxHQUFHOzs7Q0FJcEIsUUFBUSxNQUFVO0VBQ3ZCLE9BQU8sS0FBSyxTQUFT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
144
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWRhdGUtYWRhcHRlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kYXRldGltZS9uYXRpdmUtZGF0ZS1hZGFwdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLnRzJztcblxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICcuL2RhdGUtYWRhcHRlci50cyc7XG5cbi8qKlxuICogTWF0Y2hlcyBzdHJpbmdzIHRoYXQgaGF2ZSB0aGUgZm9ybSBvZiBhIHZhbGlkIFJGQyAzMzM5IHN0cmluZ1xuICogKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzM5KS4gTm90ZSB0aGF0IHRoZSBzdHJpbmcgbWF5IG5vdCBhY3R1YWxseSBiZSBhIHZhbGlkIGRhdGVcbiAqIGJlY2F1c2UgdGhlIHJlZ2V4IHdpbGwgbWF0Y2ggc3RyaW5ncyBhbmQgd2l0aG91dCBvZiBib3VuZHMgbW9udGgsIGRhdGUsIGV0Yy5cbiAqL1xuY29uc3QgSVNPXzg2MDFfUkVHRVggPVxuICAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9KD86VFxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkKyk/KD86WnwoPzooPzpcXCt8LSlcXGR7Mn06XFxkezJ9KSk/KT8kLztcblxuZXhwb3J0IGNsYXNzIE5hdGl2ZURhdGVBZGFwdGVyIGV4dGVuZHMgRGF0ZUFkYXB0ZXI8RGF0ZT4ge1xuICAvKiogR2V0cyB0aGUgeWVhciBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldFllYXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBtb250aCBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldE1vbnRoKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldE1vbnRoKCkgKyAxO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERhdGUoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RGF0ZSgpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERheU9mV2VlayhkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXREYXkoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBkYXRlIGluIHRoZSBsb2NhbCBmb3JtYXQuICovXG4gIHB1YmxpYyBnZXRBY2Nlc3NpYmlsaXR5Rm9ybWF0RGF0ZShkYXRlOiBEYXRlIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBvcHRpb25zOiBJbnRsLkRhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IHtcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnbG9uZycsXG4gICAgICBkYXk6ICdudW1lcmljJyxcbiAgICB9O1xuICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgb3B0aW9ucykuZm9ybWF0KG5ldyBEYXRlKGRhdGUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHN0cmluZ3Mgd2l0aCBsZW5ndGggPSAxMiwgZmlsbGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIG1vbnRocyBzdGFydGluZyBmcm9tIEphbnVhcnksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgbW9udGhgIGluIGBEYXRlVGltZUZvcm1hdE9wdGlvbnNgOiBgbG9uZ2AgZm9yIGZ1bGwgbmFtZSwgYHNob3J0YCBmb3Igc2hvcnQgbmFtZSwgYG5hcnJvd2AgZm9yIHNpbmdsZSBsZXR0ZXIsXG4gICAqIEUuZy4sIHdpdGggSmFudWFyeSBpbiBlbi1nYjogYGxvbmdgIHJldHVybnMgXCJKYW51YXJ5XCIsIGBzaG9ydGAgcmV0dXJucyBcIkphblwiLCBgbmFycm93YCByZXR1cm5zIFwiSlwiLlxuICAgKi9cbiAgcHVibGljIGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBtb250aDogc3R5bGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDEyLCAoaSkgPT4gZm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZSgyMDE3LCBpLCAxKSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSAzMSwgZmlsbGVkIHdpdGggdGhlIGRheXMgaW4gYSBtb250aCwgc3RhcnRpbmcgZnJvbSAxLiAqL1xuICBwdWJsaWMgZ2V0RGF0ZU5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBkYXk6ICdudW1lcmljJyB9KTtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2UoMzEsIChpKSA9PiBmb3JtYXR0ZXIuZm9ybWF0KG5ldyBEYXRlKDIwMTcsIDAsIGkgKyAxKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSA3LCBmaWxsZWQgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZGF5cyBpbiBhIHdlZWsgc3RhcnRpbmcgZnJvbSBTdW5kYXksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgd2Vla2RheWAgaW4gYERhdGVUaW1lRm9ybWF0T3B0aW9uc2AgLSAnbG9uZycgZm9yIGZ1bGwgbmFtZSwgJ3Nob3J0JyBmb3Igc2hvcnQgbmFtZSwgJ25hcnJvdycgZm9yIHNpbmdsZSBsZXR0ZXI7XG4gICAqIEUuZy4sIHdpdGggTW9uZGF5IGluIGVuLWdiOiBgbG9uZ2AgcmV0dXJucyBcIk1vbmRheVwiLCBgc2hvcnRgIHJldHVybnMgXCJNb25cIiwgYG5hcnJvd2AgcmV0dXJucyBcIk1cIi5cbiAgICovXG4gIHB1YmxpYyBnZXREYXlPZldlZWtOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCB7IHdlZWtkYXk6IHN0eWxlIH0pO1xuICAgIHJldHVybiB0aGlzLl9yYW5nZSg3LCAoaSkgPT4gZm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZSgyMDE3LCAwLCBpICsgMSkpKTtcbiAgfVxuXG4gIC8qKiBEZWZpbmVzIHdoaWNoIGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDA6IHN1bmRheTsgMTogbW9uZGF5OyBldGMuKS4gKi9cbiAgcHVibGljIGdldEZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICAvKiogQ2FsY3VsYXRlcyB0aGUgbnVtYmVyIG9mIGRheXMgaW4gYSBtb250aCBnaXZlbiB0aGUgeWVhciBhbmQgdGhlIG1vbnRoLiAqL1xuICBwdWJsaWMgZ2V0TnVtRGF5c0luTW9udGgoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZSh0aGlzLl9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHRoaXMuZ2V0WWVhcihkYXRlKSwgdGhpcy5nZXRNb250aChkYXRlKSwgMCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgdG9kYXkncyBkYXRlLiAqL1xuICBwdWJsaWMgdG9kYXkoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKG5ldyBEYXRlKCkuc2V0SG91cnMoMCwgMCwgMCwgMCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSwgZ2l2ZW4gZGF5LCBtb250aCBhbmQgeWVhcjsgdGhlIG1ldGhvZCBkb2Vzbid0IGFsbG93IGRhdGUncyBvdmVyZmxvdy4gKi9cbiAgcHVibGljIGNyZWF0ZURhdGUoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXk6IG51bWJlcik6IERhdGUge1xuICAgIC8vIENoZWNrIGZvciBpbnZhbGlkIG1vbnRoIGFuZCBkYXRlIChleGNlcHQgdXBwZXIgYm91bmQgb24gZGF0ZSB3aGljaCB3ZSBoYXZlIHRvIGNoZWNrIGFmdGVyIGNyZWF0aW5nIHRoZSBEYXRlKS5cbiAgICBpZiAobW9udGggPCAxIHx8IG1vbnRoID4gMTIpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIG1vbnRoIFwiJHttb250aH1cIi4gTW9udGggaGFzIHRvIGJlIGJldHdlZW4gMSBhbmQgMTIuYCk7XG4gICAgfSBlbHNlIGlmIChkYXkgPCAxKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBkYXkgXCIke2RheX1cIi4gRGF5IGhhcyB0byBiZSBncmVhdGVyIHRoYW4gMC5gKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHllYXIsIG1vbnRoIC0gMSwgZGF5KTtcbiAgICAvLyBDaGVjayB0aGF0IHRoZSBkYXRlIHdhc24ndCBhYm92ZSB0aGUgdXBwZXIgYm91bmQgZm9yIHRoZSBtb250aCwgY2F1c2luZyB0aGUgbW9udGggdG8gb3ZlcmZsb3dcbiAgICBpZiAocmVzdWx0LmdldE1vbnRoKCkgKyAxICE9PSBtb250aCkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF5IFwiJHtkYXl9XCIgZm9yIG1vbnRoIFwiJHttb250aH1cIi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgb2JqYCBpcyBhIERhdGUuICovXG4gIHB1YmxpYyBpc0RhdGVJbnN0YW5jZShvYmo6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBEYXRlO1xuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgZGF0ZWAgaXMgYSB2YWxpZCBEYXRlLiAqL1xuICBwdWJsaWMgaXNWYWxpZChkYXRlOiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGRhdGUgaXMgRGF0ZSB7XG4gICAgcmV0dXJuICEhZGF0ZSAmJiAhaXNOYU4oZGF0ZS52YWx1ZU9mKCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBjbG9uaW5nIHRoZSBnaXZlbiBvbmUuICovXG4gIHB1YmxpYyBjbG9uZShkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUudmFsdWVPZigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYHllYXJzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIHllYXJzIFRoZSBudW1iZXIgb2YgeWVhcnMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogRGF0ZSwgeWVhcnM6IG51bWJlcik6IERhdGUge1xuICAgIHJldHVybiB0aGlzLmFkZENhbGVuZGFyTW9udGhzKGRhdGUsIHllYXJzICogMTIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgbW9udGhzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBJZiB0aGUgY2FsY3VsYXRlZCBtb250aCBoYXMgZmV3ZXIgZGF5cyB0aGFuIHRoZSBvcmlnaW5hbCBvbmUsIHRoZSBkYXRlIGlzIHNldCB0byB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLlxuICAgKiBFLmcuLCB3aXRoIGBkYXRlYCA9IG5ldyBEYXRlKDIwMjIsIDAsIDMxKSBhbmQgYG1vbnRoc2AgPSAxLCBpdCByZXR1cm5zIG5ldyBEYXRlKDIwMjIsIDEsIDI4KS5cbiAgICovXG4gIHB1YmxpYyBhZGRDYWxlbmRhck1vbnRocyhkYXRlOiBEYXRlLCBtb250aHM6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IHRhcmdldE1vbnRoID0gZGF0ZS5nZXRNb250aCgpICsgbW9udGhzO1xuICAgIGNvbnN0IGRhdGVXaXRoQ29ycmVjdE1vbnRoID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCB0YXJnZXRNb250aCwgMSwgMCwgMCwgMCwgMCk7XG4gICAgY29uc3QgZGF5c0luTW9udGggPSB0aGlzLmdldE51bURheXNJbk1vbnRoKGRhdGVXaXRoQ29ycmVjdE1vbnRoKTtcbiAgICAvLyBBZGFwdCB0aGUgbGFzdCBkYXkgb2YgbW9udGggZm9yIHNob3J0ZXIgbW9udGhzXG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuY2xvbmUoZGF0ZSkuc2V0TW9udGgodGFyZ2V0TW9udGgsIE1hdGgubWluKGRheXNJbk1vbnRoLCBkYXRlLmdldERhdGUoKSkpKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgbmV3IGRhdGUgYnkgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYGRheXNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuICovXG4gIHB1YmxpYyBhZGRDYWxlbmRhckRheXMoZGF0ZTogRGF0ZSwgZGF5czogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgdGFyZ2V0RGF5ID0gZGF0ZS5nZXREYXRlKCkgKyBkYXlzO1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgdGFyZ2V0RGF5LCAwLCAwLCAwLCAwKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgRGF0ZSBmcm9tIGEgdmFsaWQgaW5wdXQgKERhdGUgb3IgSVNPIHN0cmluZykuICovXG4gIHB1YmxpYyBvdmVycmlkZSBkZXNlcmlhbGl6ZShkYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoIWRhdGUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGVsc2UgaWYgKElTT184NjAxX1JFR0VYLnRlc3QoZGF0ZSkpIHtcbiAgICAgICAgLy8gVGhlIGBEYXRlYCBjb25zdHJ1Y3RvciBhY2NlcHRzIGZvcm1hdHMgb3RoZXIgdGhhbiBJU08gODYwMSwgc28gd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlXG4gICAgICAgIC8vIHN0cmluZyBpcyB0aGUgcmlnaHQgZm9ybWF0IGZpcnN0LlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWxpZERhdGVPck51bGwobmV3IERhdGUoZGF0ZS5pbmNsdWRlcygnVCcpID8gZGF0ZSA6IGRhdGUgKyAnVDAwOjAwOjAwJykpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuZGVzZXJpYWxpemUoZGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgaW52YWxpZCgpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoTmFOKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IHdpdGggdGhlIGdpdmVuIGxlbmd0aCBhbmQgZmlsbHMgaXQgYnkgbWFwcGluZyB3aXRoIHRoZSBwcm92aWRlZCBmdW5jdGlvbi5cbiAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBhcnJheSB0byBiZSBjcmVhdGVkLlxuICAgKiBAcGFyYW0gdmFsdWVGdW5jdGlvbiBUaGUgZnVuY3Rpb24gb2YgYXJyYXkncyBpbmRleCB1c2VkIHRvIGZpbGwgdGhlIGFycmF5LlxuICAgKi9cbiAgcHJpdmF0ZSBfcmFuZ2U8VD4obGVuZ3RoOiBudW1iZXIsIHZhbHVlRnVuY3Rpb246IChpbmRleDogbnVtYmVyKSA9PiBUKTogVFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aCB9KS5tYXAoKF8sIGkpID0+IHZhbHVlRnVuY3Rpb24oaSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBkYXRlIGJ1dCBhbGxvd3MgdGhlIG1vbnRoIGFuZCBkYXRlIHRvIG92ZXJmbG93LiAqL1xuICBwcml2YXRlIF9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF0ZTogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoeWVhciwgbW9udGgsIGRhdGUpO1xuICAgIC8vIFdlIG5lZWQgdG8gY29ycmVjdCBmb3IgdGhlIGZhY3QgdGhhdCBKUyBuYXRpdmUgRGF0ZSB0cmVhdHMgeWVhcnMgaW4gcmFuZ2UgWzAsIDk5XSBhc1xuICAgIC8vIGFiYnJldmlhdGlvbnMgZm9yIDE5eHguXG4gICAgaWYgKHllYXIgPj0gMCAmJiB5ZWFyIDwgMTAwKSB7XG4gICAgICByZXN1bHQuc2V0RnVsbFllYXIodGhpcy5nZXRZZWFyKHJlc3VsdCkgLSAxOTAwKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdERhdGVBZGFwdGVyID0gbmV3IE5hdGl2ZURhdGVBZGFwdGVyKCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBU0EsSUFBTSxpQkFDSjtBQUVGLElBQWEsb0JBQWIsY0FBdUMsWUFBaUI7O0NBRS9DLFFBQVEsTUFBVTtFQUN2QixPQUFPLEtBQUssWUFBVztDQUN6Qjs7Q0FHTyxTQUFTLE1BQVU7RUFDeEIsT0FBTyxLQUFLLFNBQVEsSUFBSztDQUMzQjs7Q0FHTyxRQUFRLE1BQVU7RUFDdkIsT0FBTyxL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