@sbb-esta/lyne-elements 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (477) hide show
  1. package/autocomplete/autocomplete-base-element.d.ts +1 -1
  2. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  3. package/autocomplete/autocomplete-base-element.js +3 -1
  4. package/autocomplete/autocomplete.component.d.ts.map +1 -1
  5. package/autocomplete/autocomplete.component.js +1 -1
  6. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts.map +1 -1
  7. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +4 -4
  8. package/button/accent-button/accent-button.component.d.ts +2 -1
  9. package/button/accent-button/accent-button.component.d.ts.map +1 -1
  10. package/button/accent-button-link/accent-button-link.component.d.ts +2 -1
  11. package/button/accent-button-link/accent-button-link.component.d.ts.map +1 -1
  12. package/button/accent-button-static/accent-button-static.component.d.ts +2 -1
  13. package/button/accent-button-static/accent-button-static.component.d.ts.map +1 -1
  14. package/button/button/button.component.d.ts +2 -1
  15. package/button/button/button.component.d.ts.map +1 -1
  16. package/button/button-link/button-link.component.d.ts +2 -1
  17. package/button/button-link/button-link.component.d.ts.map +1 -1
  18. package/button/button-static/button-static.component.d.ts +2 -1
  19. package/button/button-static/button-static.component.d.ts.map +1 -1
  20. package/button/common/button-common.d.ts +1 -0
  21. package/button/common/button-common.d.ts.map +1 -1
  22. package/button/common/button-common.js +52 -28
  23. package/button/common.js +1 -1
  24. package/button/mini-button/mini-button.component.d.ts +1 -0
  25. package/button/mini-button/mini-button.component.d.ts.map +1 -1
  26. package/button/mini-button/mini-button.component.js +20 -14
  27. package/button/secondary-button/secondary-button.component.d.ts +2 -1
  28. package/button/secondary-button/secondary-button.component.d.ts.map +1 -1
  29. package/button/secondary-button-link/secondary-button-link.component.d.ts +2 -1
  30. package/button/secondary-button-link/secondary-button-link.component.d.ts.map +1 -1
  31. package/button/secondary-button-static/secondary-button-static.component.d.ts +2 -1
  32. package/button/secondary-button-static/secondary-button-static.component.d.ts.map +1 -1
  33. package/button/transparent-button/transparent-button.component.d.ts +2 -1
  34. package/button/transparent-button/transparent-button.component.d.ts.map +1 -1
  35. package/button/transparent-button-link/transparent-button-link.component.d.ts +2 -1
  36. package/button/transparent-button-link/transparent-button-link.component.d.ts.map +1 -1
  37. package/button/transparent-button-static/transparent-button-static.component.d.ts +2 -1
  38. package/button/transparent-button-static/transparent-button-static.component.d.ts.map +1 -1
  39. package/button.js +1 -1
  40. package/checkbox/checkbox-group/checkbox-group.component.d.ts.map +1 -1
  41. package/checkbox/checkbox-group/checkbox-group.component.js +4 -4
  42. package/checkbox/checkbox-panel/checkbox-panel.component.d.ts +3 -0
  43. package/checkbox/checkbox-panel/checkbox-panel.component.d.ts.map +1 -1
  44. package/core/a11y/live-announcer.d.ts.map +1 -1
  45. package/core/a11y/live-announcer.js +10 -8
  46. package/core/base-elements/link-base-element.d.ts +1 -0
  47. package/core/base-elements/link-base-element.d.ts.map +1 -1
  48. package/core/base-elements/link-base-element.js +18 -17
  49. package/core/base-elements/open-close-base-element.d.ts +3 -3
  50. package/core/base-elements/open-close-base-element.d.ts.map +1 -1
  51. package/core/config/config.d.ts +5 -0
  52. package/core/config/config.d.ts.map +1 -1
  53. package/core/mixins/selection-panel-mixin.d.ts +23 -0
  54. package/core/mixins/selection-panel-mixin.d.ts.map +1 -0
  55. package/core/mixins/selection-panel-mixin.js +87 -0
  56. package/core/mixins.d.ts +1 -0
  57. package/core/mixins.d.ts.map +1 -1
  58. package/core/mixins.js +12 -10
  59. package/core/styles/core.scss +42 -7
  60. package/core.css +22 -1
  61. package/custom-elements.json +22060 -19260
  62. package/datepicker/datepicker/datepicker.component.d.ts +7 -3
  63. package/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
  64. package/datepicker/datepicker/datepicker.component.js +31 -25
  65. package/development/accordion/accordion.component.js +1 -1
  66. package/development/action-group/action-group.component.js +1 -1
  67. package/development/alert/alert/alert.component.js +1 -1
  68. package/development/alert/alert-group/alert-group.component.js +1 -1
  69. package/development/autocomplete/autocomplete-base-element.d.ts +1 -1
  70. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  71. package/development/autocomplete/autocomplete-base-element.js +4 -2
  72. package/development/autocomplete/autocomplete.component.d.ts.map +1 -1
  73. package/development/autocomplete/autocomplete.component.js +2 -2
  74. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts.map +1 -1
  75. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +2 -2
  76. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +1 -1
  77. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +1 -1
  78. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +1 -1
  79. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +1 -1
  80. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +1 -1
  81. package/development/breadcrumb/breadcrumb/breadcrumb.component.js +1 -1
  82. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  83. package/development/button/accent-button/accent-button.component.d.ts +2 -1
  84. package/development/button/accent-button/accent-button.component.d.ts.map +1 -1
  85. package/development/button/accent-button/accent-button.component.js +1 -1
  86. package/development/button/accent-button-link/accent-button-link.component.d.ts +2 -1
  87. package/development/button/accent-button-link/accent-button-link.component.d.ts.map +1 -1
  88. package/development/button/accent-button-link/accent-button-link.component.js +1 -1
  89. package/development/button/accent-button-static/accent-button-static.component.d.ts +2 -1
  90. package/development/button/accent-button-static/accent-button-static.component.d.ts.map +1 -1
  91. package/development/button/accent-button-static/accent-button-static.component.js +1 -1
  92. package/development/button/button/button.component.d.ts +2 -1
  93. package/development/button/button/button.component.d.ts.map +1 -1
  94. package/development/button/button/button.component.js +1 -1
  95. package/development/button/button-link/button-link.component.d.ts +2 -1
  96. package/development/button/button-link/button-link.component.d.ts.map +1 -1
  97. package/development/button/button-link/button-link.component.js +1 -1
  98. package/development/button/button-static/button-static.component.d.ts +2 -1
  99. package/development/button/button-static/button-static.component.d.ts.map +1 -1
  100. package/development/button/button-static/button-static.component.js +1 -1
  101. package/development/button/common/button-common.d.ts +1 -0
  102. package/development/button/common/button-common.d.ts.map +1 -1
  103. package/development/button/common/button-common.js +42 -5
  104. package/development/button/common.js +1 -1
  105. package/development/button/mini-button/mini-button.component.d.ts +1 -0
  106. package/development/button/mini-button/mini-button.component.d.ts.map +1 -1
  107. package/development/button/mini-button/mini-button.component.js +41 -2
  108. package/development/button/mini-button-group/mini-button-group.component.js +1 -1
  109. package/development/button/secondary-button/secondary-button.component.d.ts +2 -1
  110. package/development/button/secondary-button/secondary-button.component.d.ts.map +1 -1
  111. package/development/button/secondary-button/secondary-button.component.js +1 -1
  112. package/development/button/secondary-button-link/secondary-button-link.component.d.ts +2 -1
  113. package/development/button/secondary-button-link/secondary-button-link.component.d.ts.map +1 -1
  114. package/development/button/secondary-button-link/secondary-button-link.component.js +1 -1
  115. package/development/button/secondary-button-static/secondary-button-static.component.d.ts +2 -1
  116. package/development/button/secondary-button-static/secondary-button-static.component.d.ts.map +1 -1
  117. package/development/button/secondary-button-static/secondary-button-static.component.js +1 -1
  118. package/development/button/transparent-button/transparent-button.component.d.ts +2 -1
  119. package/development/button/transparent-button/transparent-button.component.d.ts.map +1 -1
  120. package/development/button/transparent-button/transparent-button.component.js +1 -1
  121. package/development/button/transparent-button-link/transparent-button-link.component.d.ts +2 -1
  122. package/development/button/transparent-button-link/transparent-button-link.component.d.ts.map +1 -1
  123. package/development/button/transparent-button-link/transparent-button-link.component.js +1 -1
  124. package/development/button/transparent-button-static/transparent-button-static.component.d.ts +2 -1
  125. package/development/button/transparent-button-static/transparent-button-static.component.d.ts.map +1 -1
  126. package/development/button/transparent-button-static/transparent-button-static.component.js +1 -1
  127. package/development/button.js +1 -1
  128. package/development/calendar/calendar.component.js +1 -1
  129. package/development/card/card/card.component.js +1 -1
  130. package/development/card/card-badge/card-badge.component.js +1 -1
  131. package/development/card/card-button/card-button.component.js +1 -1
  132. package/development/card/card-link/card-link.component.js +1 -1
  133. package/development/card/common/card-action-common.js +1 -1
  134. package/development/checkbox/checkbox/checkbox.component.js +1 -1
  135. package/development/checkbox/checkbox-group/checkbox-group.component.d.ts.map +1 -1
  136. package/development/checkbox/checkbox-group/checkbox-group.component.js +2 -2
  137. package/development/checkbox/checkbox-panel/checkbox-panel.component.d.ts +3 -0
  138. package/development/checkbox/checkbox-panel/checkbox-panel.component.d.ts.map +1 -1
  139. package/development/checkbox/checkbox-panel/checkbox-panel.component.js +1 -1
  140. package/development/checkbox/common/checkbox-common.js +1 -1
  141. package/development/chip/chip/chip.component.js +1 -1
  142. package/development/chip/chip-group/chip-group.component.js +1 -1
  143. package/development/chip-label/chip-label.component.js +1 -1
  144. package/development/clock/clock.component.js +1 -1
  145. package/development/container/container/container.component.js +1 -1
  146. package/development/container/sticky-bar/sticky-bar.component.js +1 -1
  147. package/development/core/a11y/arrow-navigation.js +1 -1
  148. package/development/core/a11y/focus-trap-controller.js +1 -1
  149. package/development/core/a11y/focus-visible-within-controller.js +1 -1
  150. package/development/core/a11y/input-modality-detector.js +1 -1
  151. package/development/core/a11y/interactivity-checker.js +1 -1
  152. package/development/core/a11y/live-announcer.d.ts.map +1 -1
  153. package/development/core/a11y/live-announcer.js +10 -6
  154. package/development/core/base-elements/action-base-element.js +1 -1
  155. package/development/core/base-elements/button-base-element.js +1 -1
  156. package/development/core/base-elements/link-base-element.d.ts +1 -0
  157. package/development/core/base-elements/link-base-element.d.ts.map +1 -1
  158. package/development/core/base-elements/link-base-element.js +3 -1
  159. package/development/core/base-elements/open-close-base-element.d.ts +3 -3
  160. package/development/core/base-elements/open-close-base-element.d.ts.map +1 -1
  161. package/development/core/base-elements/open-close-base-element.js +1 -1
  162. package/development/core/config/config.d.ts +5 -0
  163. package/development/core/config/config.d.ts.map +1 -1
  164. package/development/core/config/config.js +1 -1
  165. package/development/core/controllers/escapable-overlay-controller.js +1 -1
  166. package/development/core/controllers/id-reference-controller.js +1 -1
  167. package/development/core/controllers/inert-controller.js +1 -1
  168. package/development/core/controllers/language-controller.js +1 -1
  169. package/development/core/controllers/media-matchers-controller.js +1 -1
  170. package/development/core/controllers/slot-state-controller.js +1 -1
  171. package/development/core/datetime/date-adapter.js +1 -1
  172. package/development/core/datetime/native-date-adapter.js +1 -1
  173. package/development/core/decorators/force-type.js +1 -1
  174. package/development/core/decorators/get-override.js +1 -1
  175. package/development/core/decorators/handle-distinct-change.js +1 -1
  176. package/development/core/decorators/host-attributes.js +1 -1
  177. package/development/core/decorators/id-reference.js +1 -1
  178. package/development/core/decorators/omit-empty-converter.js +1 -1
  179. package/development/core/decorators/plain-date.js +1 -1
  180. package/development/core/decorators/slot-state.js +1 -1
  181. package/development/core/dom/animation.js +1 -1
  182. package/development/core/dom/breakpoint.js +1 -1
  183. package/development/core/dom/host-context.js +1 -1
  184. package/development/core/dom/scroll.js +1 -1
  185. package/development/core/dom/set-or-remove-attribute.js +1 -1
  186. package/development/core/eventing/composed-path-has-attribute.js +1 -1
  187. package/development/core/eventing/form-element-handlers.js +1 -1
  188. package/development/core/eventing/throttle.js +1 -1
  189. package/development/core/i18n/i18n.js +1 -1
  190. package/development/core/mixins/animation-complete-mixin.js +1 -1
  191. package/development/core/mixins/disabled-mixin.js +1 -1
  192. package/development/core/mixins/element-internals-mixin.js +1 -1
  193. package/development/core/mixins/form-associated-checkbox-mixin.js +1 -1
  194. package/development/core/mixins/form-associated-input-mixin.js +1 -1
  195. package/development/core/mixins/form-associated-mixin.js +1 -1
  196. package/development/core/mixins/form-associated-radio-button-mixin.js +1 -1
  197. package/development/core/mixins/hydration-mixin.js +1 -1
  198. package/development/core/mixins/named-slot-list-mixin.js +1 -1
  199. package/development/core/mixins/negative-mixin.js +1 -1
  200. package/development/core/mixins/panel-mixin.js +1 -1
  201. package/development/core/mixins/readonly-mixin.js +1 -1
  202. package/development/core/mixins/required-mixin.js +1 -1
  203. package/development/core/mixins/selection-panel-mixin.d.ts +23 -0
  204. package/development/core/mixins/selection-panel-mixin.d.ts.map +1 -0
  205. package/development/core/mixins/selection-panel-mixin.js +120 -0
  206. package/development/core/mixins/update-scheduler-mixin.js +1 -1
  207. package/development/core/mixins.d.ts +1 -0
  208. package/development/core/mixins.d.ts.map +1 -1
  209. package/development/core/mixins.js +7 -5
  210. package/development/core/overlay/overlay-option-panel.js +1 -1
  211. package/development/core/overlay/overlay-trigger-attributes.js +1 -1
  212. package/development/core/overlay/position.js +1 -1
  213. package/development/core/testing/event-spy.js +1 -1
  214. package/development/core/testing/mocha-extensions.js +1 -1
  215. package/development/core/testing/wait-for-condition.js +1 -1
  216. package/development/core/testing/wait-for-image-ready.js +1 -1
  217. package/development/date-input/date-input.component.js +1 -1
  218. package/development/datepicker/common/datepicker-button.js +1 -1
  219. package/development/datepicker/datepicker/datepicker.component.d.ts +7 -3
  220. package/development/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
  221. package/development/datepicker/datepicker/datepicker.component.js +14 -3
  222. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.js +1 -1
  223. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +1 -1
  224. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.js +1 -1
  225. package/development/dialog/dialog/dialog.component.d.ts +4 -2
  226. package/development/dialog/dialog/dialog.component.d.ts.map +1 -1
  227. package/development/dialog/dialog/dialog.component.js +61 -11
  228. package/development/dialog/dialog-actions/dialog-actions.component.d.ts +1 -0
  229. package/development/dialog/dialog-actions/dialog-actions.component.d.ts.map +1 -1
  230. package/development/dialog/dialog-actions/dialog-actions.component.js +10 -1
  231. package/development/dialog/dialog-close-button/dialog-close-button.component.d.ts +22 -0
  232. package/development/dialog/dialog-close-button/dialog-close-button.component.d.ts.map +1 -0
  233. package/development/dialog/dialog-close-button/dialog-close-button.component.js +53 -0
  234. package/development/dialog/dialog-close-button.d.ts +5 -0
  235. package/development/dialog/dialog-close-button.d.ts.map +1 -0
  236. package/development/dialog/dialog-close-button.js +5 -0
  237. package/development/dialog/dialog-content/dialog-content.component.js +2 -2
  238. package/development/dialog/dialog-title/dialog-title.component.d.ts +1 -0
  239. package/development/dialog/dialog-title/dialog-title.component.d.ts.map +1 -1
  240. package/development/dialog/dialog-title/dialog-title.component.js +6 -2
  241. package/development/dialog.d.ts +1 -0
  242. package/development/dialog.d.ts.map +1 -1
  243. package/development/dialog.js +3 -1
  244. package/development/divider/divider.component.js +1 -1
  245. package/development/expansion-panel/expansion-panel/expansion-panel.component.js +1 -1
  246. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +1 -1
  247. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +3 -2
  248. package/development/file-selector/common/file-selector-common.js +1 -1
  249. package/development/file-selector/file-selector/file-selector.component.js +1 -1
  250. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  251. package/development/flip-card/flip-card/flip-card.component.js +1 -1
  252. package/development/flip-card/flip-card-details/flip-card-details.component.js +1 -1
  253. package/development/flip-card/flip-card-summary/flip-card-summary.component.js +1 -1
  254. package/development/footer/footer.component.js +1 -1
  255. package/development/form-error/form-error.component.js +1 -1
  256. package/development/form-field/form-field/form-field.component.d.ts +23 -1
  257. package/development/form-field/form-field/form-field.component.d.ts.map +1 -1
  258. package/development/form-field/form-field/form-field.component.js +39 -12
  259. package/development/form-field/form-field-clear/form-field-clear.component.js +1 -1
  260. package/development/form-field/form-field.js +2 -1
  261. package/development/form-field.js +2 -1
  262. package/development/header/common/header-action-common.js +1 -1
  263. package/development/header/header/header.component.js +1 -1
  264. package/development/header/header-environment/header-environment.component.d.ts +23 -0
  265. package/development/header/header-environment/header-environment.component.d.ts.map +1 -0
  266. package/development/header/header-environment/header-environment.component.js +111 -0
  267. package/development/header/header-environment.d.ts +5 -0
  268. package/development/header/header-environment.d.ts.map +1 -0
  269. package/development/header/header-environment.js +5 -0
  270. package/development/icon/icon-base.js +1 -1
  271. package/development/icon/icon-name-mixin.js +1 -1
  272. package/development/icon/icon-request.js +1 -1
  273. package/development/icon/icon-validate.js +1 -1
  274. package/development/icon/icon.component.js +1 -1
  275. package/development/image/image.component.js +1 -1
  276. package/development/journey-header/journey-header.component.js +1 -1
  277. package/development/lead-container/lead-container.component.js +1 -1
  278. package/development/link/common/block-link-common.js +1 -1
  279. package/development/link-common-DPLJx5Uo.js +1 -1
  280. package/development/link-list/common/link-list-base.js +1 -1
  281. package/development/link-list/link-list/link-list.component.js +1 -1
  282. package/development/loading-indicator/loading-indicator.component.js +1 -1
  283. package/development/loading-indicator-circle/loading-indicator-circle.component.js +1 -1
  284. package/development/logo/logo.component.js +1 -1
  285. package/development/map-container/map-container.component.js +1 -1
  286. package/development/menu/common/menu-action-common.js +1 -1
  287. package/development/menu/menu/menu.component.d.ts +1 -0
  288. package/development/menu/menu/menu.component.d.ts.map +1 -1
  289. package/development/menu/menu/menu.component.js +2 -2
  290. package/development/menu/menu-button/menu-button.component.d.ts +1 -0
  291. package/development/menu/menu-button/menu-button.component.d.ts.map +1 -1
  292. package/development/menu/menu-button/menu-button.component.js +2 -3
  293. package/development/menu/menu-link/menu-link.component.d.ts +1 -0
  294. package/development/menu/menu-link/menu-link.component.d.ts.map +1 -1
  295. package/development/menu/menu-link/menu-link.component.js +5 -1
  296. package/development/message/message.component.js +1 -1
  297. package/development/navigation/common/navigation-action-common.js +1 -1
  298. package/development/navigation/navigation/navigation.component.js +1 -1
  299. package/development/navigation/navigation-list/navigation-list.component.js +1 -1
  300. package/development/navigation/navigation-marker/navigation-marker.component.js +1 -1
  301. package/development/navigation/navigation-section/navigation-section.component.js +1 -1
  302. package/development/notification/notification.component.js +1 -1
  303. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  304. package/development/option/optgroup/optgroup-base-element.js +8 -6
  305. package/development/option/optgroup/optgroup.component.js +1 -1
  306. package/development/option/option/option-base-element.d.ts +1 -1
  307. package/development/option/option/option-base-element.d.ts.map +1 -1
  308. package/development/option/option/option-base-element.js +1 -1
  309. package/development/option/option/option.component.d.ts +1 -1
  310. package/development/option/option/option.component.d.ts.map +1 -1
  311. package/development/option/option/option.component.js +1 -1
  312. package/development/option/option-hint/option-hint.component.d.ts +18 -0
  313. package/development/option/option-hint/option-hint.component.d.ts.map +1 -0
  314. package/development/option/option-hint/option-hint.component.js +74 -0
  315. package/development/option/option-hint.d.ts +5 -0
  316. package/development/option/option-hint.d.ts.map +1 -0
  317. package/development/option/option-hint.js +5 -0
  318. package/development/option.d.ts +1 -0
  319. package/development/option.d.ts.map +1 -1
  320. package/development/option.js +4 -2
  321. package/development/overlay/overlay-base-element.d.ts +1 -0
  322. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  323. package/development/overlay/overlay-base-element.js +3 -3
  324. package/development/overlay/overlay.component.js +1 -1
  325. package/development/paginator/common/paginator-common.js +1 -1
  326. package/development/paginator/compact-paginator/compact-paginator.component.js +1 -1
  327. package/development/paginator/paginator/paginator.component.js +1 -1
  328. package/development/popover/popover/popover.component.d.ts +19 -4
  329. package/development/popover/popover/popover.component.d.ts.map +1 -1
  330. package/development/popover/popover/popover.component.js +44 -32
  331. package/development/popover/popover-trigger/popover-trigger.component.js +1 -1
  332. package/development/radio-button/common/radio-button-common.js +1 -1
  333. package/development/radio-button/radio-button/radio-button.component.js +1 -1
  334. package/development/radio-button/radio-button-group/radio-button-group.component.js +1 -1
  335. package/development/radio-button/radio-button-panel/radio-button-panel.component.d.ts +6 -3
  336. package/development/radio-button/radio-button-panel/radio-button-panel.component.d.ts.map +1 -1
  337. package/development/radio-button/radio-button-panel/radio-button-panel.component.js +7 -7
  338. package/development/screen-reader-only/screen-reader-only.component.js +1 -1
  339. package/development/select/select.component.d.ts.map +1 -1
  340. package/development/select/select.component.js +2 -2
  341. package/development/selection-action-panel/selection-action-panel.component.d.ts +22 -0
  342. package/development/selection-action-panel/selection-action-panel.component.d.ts.map +1 -0
  343. package/development/selection-action-panel/selection-action-panel.component.js +105 -0
  344. package/development/selection-action-panel.d.ts +5 -0
  345. package/development/selection-action-panel.d.ts.map +1 -0
  346. package/development/selection-action-panel.js +5 -0
  347. package/development/selection-expansion-panel/selection-expansion-panel.component.d.ts +4 -24
  348. package/development/selection-expansion-panel/selection-expansion-panel.component.d.ts.map +1 -1
  349. package/development/selection-expansion-panel/selection-expansion-panel.component.js +26 -106
  350. package/development/sidebar/icon-sidebar/icon-sidebar.component.js +1 -1
  351. package/development/sidebar/icon-sidebar-button/icon-sidebar-button.component.js +1 -1
  352. package/development/sidebar/icon-sidebar-container/icon-sidebar-container.component.js +1 -1
  353. package/development/sidebar/icon-sidebar-content/icon-sidebar-content.component.js +1 -1
  354. package/development/sidebar/icon-sidebar-link/icon-sidebar-link.component.js +1 -1
  355. package/development/sidebar/sidebar/sidebar.component.js +1 -1
  356. package/development/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  357. package/development/sidebar/sidebar-container/sidebar-container.component.js +1 -1
  358. package/development/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  359. package/development/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  360. package/development/signet/signet.component.js +1 -1
  361. package/development/skiplink-list/skiplink-list.component.js +1 -1
  362. package/development/slider/slider.component.js +1 -1
  363. package/development/status/status.component.js +1 -1
  364. package/development/stepper/step/step.component.d.ts +1 -1
  365. package/development/stepper/step/step.component.d.ts.map +1 -1
  366. package/development/stepper/step/step.component.js +1 -1
  367. package/development/stepper/step-label/step-label.component.js +1 -1
  368. package/development/stepper/stepper/stepper.component.d.ts.map +1 -1
  369. package/development/stepper/stepper/stepper.component.js +1 -1
  370. package/development/table/table-wrapper/table-wrapper.component.js +1 -1
  371. package/development/tabs/tab/tab.component.js +1 -1
  372. package/development/tabs/tab-group/tab-group.component.js +1 -1
  373. package/development/tabs/tab-label/tab-label.component.js +1 -1
  374. package/development/tag/tag/tag.component.js +1 -1
  375. package/development/tag/tag-group/tag-group.component.js +1 -1
  376. package/development/teaser/teaser.component.js +1 -1
  377. package/development/teaser-hero/teaser-hero.component.js +1 -1
  378. package/development/teaser-product/common/teaser-product-common.js +1 -1
  379. package/development/teaser-product/teaser-product/teaser-product.component.js +1 -1
  380. package/development/time-input/time-input.component.js +1 -1
  381. package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
  382. package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  383. package/development/title/title-base.js +1 -1
  384. package/development/toast/toast.component.js +1 -1
  385. package/development/toggle/toggle/toggle.component.js +1 -1
  386. package/development/toggle/toggle-option/toggle-option.component.js +1 -1
  387. package/development/toggle-check/toggle-check.component.js +1 -1
  388. package/development/train/train/train.component.js +1 -1
  389. package/development/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  390. package/development/train/train-formation/train-formation.component.js +1 -1
  391. package/development/train/train-wagon/train-wagon.component.js +1 -1
  392. package/development/{transparent-button-Ddb_s0a0.js → transparent-button-Dun6bh2G.js} +89 -8
  393. package/development/visual-checkbox/visual-checkbox.component.js +1 -1
  394. package/dialog/dialog/dialog.component.d.ts +4 -2
  395. package/dialog/dialog/dialog.component.d.ts.map +1 -1
  396. package/dialog/dialog/dialog.component.js +63 -56
  397. package/dialog/dialog-actions/dialog-actions.component.d.ts +1 -0
  398. package/dialog/dialog-actions/dialog-actions.component.d.ts.map +1 -1
  399. package/dialog/dialog-actions/dialog-actions.component.js +13 -9
  400. package/dialog/dialog-close-button/dialog-close-button.component.d.ts +22 -0
  401. package/dialog/dialog-close-button/dialog-close-button.component.d.ts.map +1 -0
  402. package/dialog/dialog-close-button/dialog-close-button.component.js +31 -0
  403. package/dialog/dialog-close-button.d.ts +5 -0
  404. package/dialog/dialog-close-button.d.ts.map +1 -0
  405. package/dialog/dialog-close-button.js +4 -0
  406. package/dialog/dialog-content/dialog-content.component.js +6 -6
  407. package/dialog/dialog-title/dialog-title.component.d.ts +1 -0
  408. package/dialog/dialog-title/dialog-title.component.d.ts.map +1 -1
  409. package/dialog/dialog-title/dialog-title.component.js +11 -8
  410. package/dialog.d.ts +1 -0
  411. package/dialog.d.ts.map +1 -1
  412. package/dialog.js +6 -4
  413. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +7 -7
  414. package/form-field/form-field/form-field.component.d.ts +23 -1
  415. package/form-field/form-field/form-field.component.d.ts.map +1 -1
  416. package/form-field/form-field/form-field.component.js +52 -41
  417. package/form-field/form-field.js +3 -2
  418. package/form-field.js +5 -4
  419. package/header/header-environment/header-environment.component.d.ts +23 -0
  420. package/header/header-environment/header-environment.component.d.ts.map +1 -0
  421. package/header/header-environment/header-environment.component.js +37 -0
  422. package/header/header-environment.d.ts +5 -0
  423. package/header/header-environment.d.ts.map +1 -0
  424. package/header/header-environment.js +4 -0
  425. package/index.d.ts +8 -0
  426. package/index.js +8 -0
  427. package/menu/menu/menu.component.d.ts +1 -0
  428. package/menu/menu/menu.component.d.ts.map +1 -1
  429. package/menu/menu/menu.component.js +1 -1
  430. package/menu/menu-button/menu-button.component.d.ts +1 -0
  431. package/menu/menu-button/menu-button.component.d.ts.map +1 -1
  432. package/menu/menu-button/menu-button.component.js +8 -8
  433. package/menu/menu-link/menu-link.component.d.ts +1 -0
  434. package/menu/menu-link/menu-link.component.d.ts.map +1 -1
  435. package/menu/menu-link/menu-link.component.js +9 -6
  436. package/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  437. package/option/optgroup/optgroup-base-element.js +19 -17
  438. package/option/option/option-base-element.d.ts +1 -1
  439. package/option/option/option-base-element.d.ts.map +1 -1
  440. package/option/option/option.component.d.ts +1 -1
  441. package/option/option/option.component.d.ts.map +1 -1
  442. package/option/option-hint/option-hint.component.d.ts +18 -0
  443. package/option/option-hint/option-hint.component.d.ts.map +1 -0
  444. package/option/option-hint/option-hint.component.js +27 -0
  445. package/option/option-hint.d.ts +5 -0
  446. package/option/option-hint.d.ts.map +1 -0
  447. package/option/option-hint.js +4 -0
  448. package/option.d.ts +1 -0
  449. package/option.d.ts.map +1 -1
  450. package/option.js +5 -3
  451. package/overlay/overlay-base-element.d.ts +1 -0
  452. package/overlay/overlay-base-element.d.ts.map +1 -1
  453. package/overlay/overlay-base-element.js +21 -21
  454. package/package.json +23 -3
  455. package/popover/popover/popover.component.d.ts +19 -4
  456. package/popover/popover/popover.component.d.ts.map +1 -1
  457. package/popover/popover/popover.component.js +109 -96
  458. package/radio-button/radio-button-panel/radio-button-panel.component.d.ts +6 -3
  459. package/radio-button/radio-button-panel/radio-button-panel.component.d.ts.map +1 -1
  460. package/radio-button/radio-button-panel/radio-button-panel.component.js +9 -9
  461. package/select/select.component.d.ts.map +1 -1
  462. package/select/select.component.js +1 -1
  463. package/selection-action-panel/selection-action-panel.component.d.ts +22 -0
  464. package/selection-action-panel/selection-action-panel.component.d.ts.map +1 -0
  465. package/selection-action-panel/selection-action-panel.component.js +34 -0
  466. package/selection-action-panel.d.ts +5 -0
  467. package/selection-action-panel.d.ts.map +1 -0
  468. package/selection-action-panel.js +4 -0
  469. package/selection-expansion-panel/selection-expansion-panel.component.d.ts +4 -24
  470. package/selection-expansion-panel/selection-expansion-panel.component.d.ts.map +1 -1
  471. package/selection-expansion-panel/selection-expansion-panel.component.js +45 -102
  472. package/standard-theme.css +22 -1
  473. package/stepper/step/step.component.d.ts +1 -1
  474. package/stepper/step/step.component.d.ts.map +1 -1
  475. package/stepper/stepper/stepper.component.d.ts.map +1 -1
  476. package/transparent-button-rf30m88X.js +9 -0
  477. package/transparent-button-BlbvexCb.js +0 -9
@@ -811,4 +811,4 @@ export {
811
811
  i18nWalkingDistanceDeparture,
812
812
  i18nYearMonthSelection
813
813
  };
814
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvaTE4bi9pMThuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2JiTGFuZ3VhZ2UsIFNiYk9jY3VwYW5jeSB9IGZyb20gJy4uL2ludGVyZmFjZXMuanMnO1xuXG5leHBvcnQgY29uc3QgaTE4bkRpcmVjdGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdSaWNodHVuZycsXG4gIGVuOiAnRGlyZWN0aW9uJyxcbiAgZnI6ICdEaXJlY3Rpb24nLFxuICBpdDogJ0RpcmV6aW9uZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkFycml2YWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnQW5rdW5mdCcsXG4gIGVuOiAnQXJyaXZhbCcsXG4gIGZyOiAnQXJyaXbDqWUnLFxuICBpdDogJ0Fycml2bycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNlY3RvcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTZWt0b3InLFxuICBlbjogJ1NlY3RvcicsXG4gIGZyOiAnU2VjdGV1cicsXG4gIGl0OiAnU2V0dG9yZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNlY3RvclNob3J0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1NrdC4nLFxuICBlbjogJ1NlYy4nLFxuICBmcjogJ1NlY3QuJyxcbiAgaXQ6ICdTZXQuJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xhc3M6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0ge1xuICBmaXJzdDoge1xuICAgIGRlOiAnRXJzdGUgS2xhc3NlJyxcbiAgICBlbjogJ0ZpcnN0IENsYXNzJyxcbiAgICBmcjogJ1ByZW1pw6hyZSBjbGFzc2UnLFxuICAgIGl0OiAnUHJpbWEgY2xhc3NlJyxcbiAgfSxcbiAgc2Vjb25kOiB7XG4gICAgZGU6ICdad2VpdGUgS2xhc3NlJyxcbiAgICBlbjogJ1NlY29uZCBDbGFzcycsXG4gICAgZnI6ICdEZXV4acOobWUgY2xhc3NlJyxcbiAgICBpdDogJ1NlY29uZGEgY2xhc3NlJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhaW46IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnWnVnJyxcbiAgZW46ICdUcmFpbicsXG4gIGZyOiAnVHJhaW4nLFxuICBpdDogJ1RyZW5vJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhaW5zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1rDvGdlJyxcbiAgZW46ICdUcmFpbnMnLFxuICBmcjogJ1RyYWlucycsXG4gIGl0OiAnVHJlbmknLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5XYWdvbnNMYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdXYWdlbiBkZXMgWnVnZXMnLFxuICBlbjogJ0NvYWNoZXMgb2YgdGhlIHRyYWluJyxcbiAgZnI6ICdXYWdvbnMgZHUgdHJhaW4nLFxuICBpdDogJ0NhcnJvenplIGRlbCB0cmVubycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bldhZ29uTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnV2FnZW4nLFxuICBlbjogJ1RyYWluIGNvYWNoJyxcbiAgZnI6ICdXYWdvbiBkdSB0cmFpbicsXG4gIGl0OiAnQ2Fycm96emEgZGVsIHRyZW5vJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuV2Fnb25MYWJlbE51bWJlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6IGBOdW1tZXJgLFxuICBlbjogYE51bWJlcmAsXG4gIGZyOiBgTnVtw6lyb2AsXG4gIGl0OiBgTnVtZXJvYCxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xvc2VkQ29tcGFydG1lbnRMYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdHZXNjaGxvc3NlbmVyIFp1Z3dhZ2dvbicsXG4gIGVuOiAnQ2xvc2VkIHRyYWluIGNvYWNoJyxcbiAgZnI6ICdXYWdvbiBkdSB0cmFpbiBmZXJtw6knLFxuICBpdDogJ0NhcnJvenphIGRlbCB0cmVubyBjaGl1c28nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5Mb2NvbW90aXZlTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTG9rb21vdGl2ZScsXG4gIGVuOiAnTG9jb21vdGl2ZScsXG4gIGZyOiAnTG9jb21vdGl2ZScsXG4gIGl0OiAnTG9jb21vdGl2YScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNsZWVwaW5nV2Fnb25MYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTY2hsYWZ3YWdlbicsXG4gIGVuOiAnU2xlZXBpbmcgY2FyJyxcbiAgZnI6ICdWb2l0dXJlLWxpdHMnLFxuICBpdDogJ0NhcnJvenphIGxldHRpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ291Y2hldHRlV2Fnb25MYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdMaWVnZXdhZ2VuJyxcbiAgZW46ICdDb3VjaGV0dGUgY2FyJyxcbiAgZnI6ICdWb2l0dXJlLWNvdWNoZXR0ZXMnLFxuICBpdDogJ0NhcnJvenphIGN1Y2NldHRlJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuUmVzdGF1cmFudFdhZ29uTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnU3BlaXNld2FnZW4nLFxuICBlbjogJ0RpbmluZyBjYXInLFxuICBmcjogJ1ZvaXR1cmUtcmVzdGF1cmFudCcsXG4gIGl0OiAnQ2Fycm96emEgcmlzdG9yYW50ZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkJsb2NrZWRQYXNzYWdlOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHtcbiAgcHJldmlvdXM6IHtcbiAgICBkZTogJ0tlaW4gRHVyY2hnYW5nIHp1bSB2b3JoZXJpZ2VuIFdhZ2VuJyxcbiAgICBlbjogJ05vIHBhc3NhZ2UgdG8gdGhlIHByZXZpb3VzIHRyYWluIGNvYWNoJyxcbiAgICBmcjogJ1BhcyBkZSBwYXNzYWdlIGF1IHdhZ29uIGR1IHRyYWluIHByw6ljw6lkZW50JyxcbiAgICBpdDogJ05lc3N1biBwYXNzYWdnaW8gYWxsYSBjYXJyb3p6YSBkZWwgdHJlbm8gcHJlY2VkZW50ZScsXG4gIH0sXG4gIG5leHQ6IHtcbiAgICBkZTogJ0tlaW4gRHVyY2hnYW5nIHp1bSBuw6RjaHN0ZW4gV2FnZW4nLFxuICAgIGVuOiAnTm8gcGFzc2FnZSB0byB0aGUgbmV4dCB0cmFpbiBjb2FjaCcsXG4gICAgZnI6ICdQYXMgZGUgcGFzc2FnZSBhdSB3YWdvbiBkdSB0cmFpbiBzdWl2YW50JyxcbiAgICBpdDogJ05lc3N1biBwYXNzYWdnaW8gYWxsYSBjYXJyb3p6YSBkZWwgdHJlbm8gc3VjY2Vzc2l2bycsXG4gIH0sXG4gIGJvdGg6IHtcbiAgICBkZTogJ0tlaW4gRHVyY2hnYW5nIHp1bSBuw6RjaHN0ZW4gdW5kIHZvcmhlcmlnZW4gV2FnZW4nLFxuICAgIGVuOiAnTm8gcGFzc2FnZSB0byB0aGUgbmV4dCBhbmQgcHJldmlvdXMgdHJhaW4gY29hY2gnLFxuICAgIGZyOiAnUGFzIGRlIHBhc3NhZ2UgYXUgd2Fnb24gZHUgdHJhaW4gc3VpdmFudCBldCBwcsOpY8OpZGVudCcsXG4gICAgaXQ6ICdOZXNzdW4gcGFzc2FnZ2lvIGFsbGEgY2Fycm96emEgZGVsIHRyZW5vIHN1Y2Nlc3Npdm8gZSBwcmVjZWRlbnRlJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQWRkaXRpb25hbFdhZ29uSW5mb3JtYXRpb25IZWFkaW5nOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1c8OkdHpsaWNoZSBXYWdlbmluZm9ybWF0aW9uJyxcbiAgZW46ICdBZGRpdGlvbmFsIHdhZ29uIGluZm9ybWF0aW9uJyxcbiAgZnI6ICdJbmZvcm1hdGlvbnMgc3VwcGzDqW1lbnRhaXJlcyBzdXIgbGVzIHdhZ29ucycsXG4gIGl0OiAnSW5mb3JtYXppb25pIGFnZ2l1bnRpdmUgc3VsbGEgY2Fycm96emEgZGVsIHRyZW5vJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRGVwYXJ0dXJlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0FiZmFocnQnLFxuICBlbjogJ0RlcGFydHVyZScsXG4gIGZyOiAnRMOpcGFydCcsXG4gIGl0OiAnUGFydGVuemEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EdXJhdGlvbk1pbnV0ZTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4+ID0ge1xuICBzaW5nbGU6IHtcbiAgICBsb25nOiB7XG4gICAgICBkZTogJ01pbnV0ZScsXG4gICAgICBlbjogJ01pbnV0ZScsXG4gICAgICBmcjogJ01pbnV0ZScsXG4gICAgICBpdDogJ01pbnV0bycsXG4gICAgfSxcbiAgICBzaG9ydDoge1xuICAgICAgZGU6ICdtJyxcbiAgICAgIGVuOiAnbScsXG4gICAgICBmcjogJ20nLFxuICAgICAgaXQ6ICdtJyxcbiAgICB9LFxuICB9LFxuICBtdWx0aXBsZToge1xuICAgIGxvbmc6IHtcbiAgICAgIGRlOiAnTWludXRlbicsXG4gICAgICBlbjogJ01pbnV0ZXMnLFxuICAgICAgZnI6ICdNaW51dGVzJyxcbiAgICAgIGl0OiAnTWludXRpJyxcbiAgICB9LFxuICAgIHNob3J0OiB7XG4gICAgICBkZTogJ01pbicsXG4gICAgICBlbjogJ21pbicsXG4gICAgICBmcjogJ21pbi4nLFxuICAgICAgaXQ6ICdtaW5zJyxcbiAgICB9LFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EdXJhdGlvbkhvdXI6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+PiA9IHtcbiAgc2luZ2xlOiB7XG4gICAgbG9uZzoge1xuICAgICAgZGU6ICdTdHVuZGUnLFxuICAgICAgZW46ICdIb3VyJyxcbiAgICAgIGZyOiAnSGV1cmUnLFxuICAgICAgaXQ6ICdPcmEnLFxuICAgIH0sXG4gICAgc2hvcnQ6IHtcbiAgICAgIGRlOiAnU3RkLicsXG4gICAgICBlbjogJ2gnLFxuICAgICAgZnI6ICdvcmUnLFxuICAgICAgaXQ6ICdocnMnLFxuICAgIH0sXG4gIH0sXG4gIG11bHRpcGxlOiB7XG4gICAgbG9uZzoge1xuICAgICAgZGU6ICdTdHVuZGVuJyxcbiAgICAgIGVuOiAnSG91cnMnLFxuICAgICAgZnI6ICdIZXVyZXMnLFxuICAgICAgaXQ6ICdPcmUnLFxuICAgIH0sXG4gICAgc2hvcnQ6IHtcbiAgICAgIGRlOiAnU3RkLicsXG4gICAgICBlbjogJ2gnLFxuICAgICAgZnI6ICdvcmUnLFxuICAgICAgaXQ6ICdocnMnLFxuICAgIH0sXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkR1cmF0aW9uRGF5OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pj4gPSB7XG4gIHNpbmdsZToge1xuICAgIGxvbmc6IHtcbiAgICAgIGRlOiAnVGFnJyxcbiAgICAgIGVuOiAnRGF5JyxcbiAgICAgIGZyOiAnSm91cicsXG4gICAgICBpdDogJ0dpb3JubycsXG4gICAgfSxcbiAgfSxcbiAgbXVsdGlwbGU6IHtcbiAgICBsb25nOiB7XG4gICAgICBkZTogJ1RhZ2UnLFxuICAgICAgZW46ICdEYXlzJyxcbiAgICAgIGZyOiAnSm91cnMnLFxuICAgICAgaXQ6ICdHaW9ybmknLFxuICAgIH0sXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blRyaXBRdWF5Q2hhbmdlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0dsZWlzw6RuZGVydW5nIGltIFZlcmxhdWYgZGllc2VyIFZlcmJpbmR1bmcnLFxuICBlbjogJ1RyYWNrIGNoYW5nZSBpbiB0aGUgY291cnNlIG9mIHRoaXMgY29ubmVjdGlvbicsXG4gIGZyOiAnQ2hhbmdlbWVudCBkZSB2b2llIHN1ciBsZSBwYXJjb3VycyBkZSBjZXR0ZSBjb25uZXhpb24nLFxuICBpdDogJ0NhbWJpYW1lbnRvIGRpIGJpbmFyaW8gbmVsIGNvcnNvIGRpIHF1ZXN0YSBjb25uZXNzaW9uZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blRyaXBEdXJhdGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdSZWlzZWRhdWVyJyxcbiAgZW46ICdUcmF2ZWwgdGltZScsXG4gIGZyOiAnRHVyw6llIGR1IHZveWFnZScsXG4gIGl0OiAnRHVyYXRhIGRlbCB2aWFnZ2lvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhdmVsaGludHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnUmVpc2VoaW53ZWlzZScsXG4gIGVuOiAnVHJhdmVsaGludHMnLFxuICBmcjogJ0luZGljYXRpb25zIHN1ciBsZSB2b3lhZ2UnLFxuICBpdDogJ0luZGljYXppb25pIGRpIHZpYWdnaW8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5SZWFsVGltZUluZm86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRWNodHplaXRpbmZvcm1hdGlvbmVuJyxcbiAgZW46ICdSZWFsIHRpbWUgaW5mb3JtYXRpb24nLFxuICBmcjogJ0luZm9ybWF0aW9ucyBlbiB0ZW1wcyByw6llbCcsXG4gIGl0OiAnSW5mb3JtYXppb25pIGluIHRlbXBvIHJlYWxlJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhbnNmZXJQcm9jZWR1cmU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnbWFsIHVtc3RlaWdlbicsXG4gIGVuOiAnY2hhbmdlJyxcbiAgZnI6ICdjaGFuZ2VtZW50IGRlIHRyYWluJyxcbiAgaXQ6ICdjYW1iaW8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5UcmFuc2ZlclByb2NlZHVyZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnbWFsIHVtc3RlaWdlbicsXG4gIGVuOiAnY2hhbmdlcycsXG4gIGZyOiAnY2hhbmdlbWVudHMgZGUgdHJhaW4nLFxuICBpdDogJ2NhbWJpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuTmV3OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ25ldScsXG4gIGVuOiAnbmV3JyxcbiAgZnI6ICdub3V2ZWF1JyxcbiAgaXQ6ICdudW92bycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkZyb21QbGF0Zm9ybTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdBdWYnLFxuICBlbjogJ29uJyxcbiAgZnI6ICdzdXInLFxuICBpdDogJ3N1Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuU3VwZXJzYXZlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTcGFyYmlsbGV0dGUnLFxuICBlbjogJ1N1cGVyc2F2ZXIgdGlja2V0cycsXG4gIGZyOiAnQmlsbGV0cyBkw6lncmlmZsOpcycsXG4gIGl0OiAnQmlnbGlldHRpIHJpc3Bhcm1pbycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bk9jY3VwYW5jeTogUmVjb3JkPFNiYk9jY3VwYW5jeSwgUmVjb3JkPFNiYkxhbmd1YWdlLCBzdHJpbmc+PiA9IHtcbiAgbm9uZToge1xuICAgIGRlOiAnS2VpbmUgQmVsZWd1bmdzcHJvZ25vc2UgdmVyZsO8Z2JhcicsXG4gICAgZW46ICdObyBvY2N1cGFuY3kgZm9yZWNhc3QgYXZhaWxhYmxlJyxcbiAgICBmcjogXCJBdWN1bmUgcHLDqXZpc2lvbiBkJ29jY3VwYXRpb24gZGlzcG9uaWJsZVwiLFxuICAgIGl0OiAnTmVzc3VuYSBwcmV2aXNpb25lIGRpIG9jY3VwYXppb25lIGRpc3BvbmliaWxlJyxcbiAgfSxcbiAgbG93OiB7XG4gICAgZGU6ICdUaWVmZSBiaXMgbWl0dGxlcmUgQmVsZWd1bmcgZXJ3YXJ0ZXQnLFxuICAgIGVuOiAnTG93IHRvIGF2ZXJhZ2Ugb2NjdXBhbmN5IGV4cGVjdGVkJyxcbiAgICBmcjogJ1RhdXggZOKAmW9jY3VwYXRpb24gZmFpYmxlIMOgIG1veWVuIHByw6l2dScsXG4gICAgaXQ6ICfDiCBwcmV2aXN0YSB1buKAmW9jY3VwYXppb25lIG1lZGlvLWJhc3NhJyxcbiAgfSxcbiAgbWVkaXVtOiB7XG4gICAgZGU6ICdIb2hlIEJlbGVndW5nIGVyd2FydGV0JyxcbiAgICBlbjogJ0hpZ2ggb2NjdXBhbmN5IGV4cGVjdGVkJyxcbiAgICBmcjogJ1RhdXggZOKAmW9jY3VwYXRpb24gw6lsZXbDqSBwcsOpdnUnLFxuICAgIGl0OiAnw4ggcHJldmlzdGEgdW7igJlvY2N1cGF6aW9uZSBlbGV2YXRhJyxcbiAgfSxcbiAgaGlnaDoge1xuICAgIGRlOiAnU2VociBob2hlIEJlbGVndW5nIGVyd2FydGV0JyxcbiAgICBlbjogJ1ZlcnkgaGlnaCBvY2N1cGFuY3kgZXhwZWN0ZWQnLFxuICAgIGZyOiAnVGF1eCBk4oCZb2NjdXBhdGlvbiB0csOocyDDqWxldsOpIHByw6l2dScsXG4gICAgaXQ6ICfDiCBwcmV2aXN0YSB1buKAmW9jY3VwYXppb25lIG1vbHRvIGVsZXZhdGEnLFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5NZWFuc09mVHJhbnNwb3J0OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHtcbiAgZnVuaWN1bGFyOiB7XG4gICAgZGU6ICdTZWlsYmFobi9aYWhucmFkYmFobicsXG4gICAgZW46ICdGdW5pY3VsYXIvQ29nIHJhaWx3YXknLFxuICAgIGZyOiAnRnVuaWN1bGFpcmUvQ2hlbWluIGRlIGZlciDDoCBjcsOpbWFpbGzDqHJlJyxcbiAgICBpdDogJ0Z1bml2aWEvRmVycm92aWEgYSBjcmVtYWdsaWVyYScsXG4gIH0sXG4gIGVjX2lkOiB7XG4gICAgZGU6ICdFQy9JQycsXG4gICAgZW46ICdFQy9JQycsXG4gICAgZnI6ICdFQy9JQycsXG4gICAgaXQ6ICdFQy9JQycsXG4gIH0sXG4gIGJ1czoge1xuICAgIGRlOiAnQnVzJyxcbiAgICBlbjogJ0J1cycsXG4gICAgZnI6ICdCdXMnLFxuICAgIGl0OiAnQnVzJyxcbiAgfSxcbiAgcmU6IHtcbiAgICBkZTogJ1JFJyxcbiAgICBlbjogJ1JFJyxcbiAgICBmcjogJ1JFJyxcbiAgICBpdDogJ1JFJyxcbiAgfSxcbiAgYXJ6X2V4dDoge1xuICAgIGRlOiAnQVJaL0VYVCcsXG4gICAgZW46ICdBUlovRVhUJyxcbiAgICBmcjogJ0FSWi9FWFQnLFxuICAgIGl0OiAnQVJaL0VYVCcsXG4gIH0sXG4gIGljZV90Z3Zfcmp4OiB7XG4gICAgZGU6ICdJQ0UvVEdWL1JKWCcsXG4gICAgZW46ICdJQ0UvVEdWL1JKWCcsXG4gICAgZnI6ICdJQ0UvVEdWL1JKWCcsXG4gICAgaXQ6ICdJQ0UvVEdWL1JKWCcsXG4gIH0sXG4gIGlyX3BlOiB7XG4gICAgZGU6ICdJUi9QRScsXG4gICAgZW46ICdJUi9QRScsXG4gICAgZnI6ICdJUi9QRScsXG4gICAgaXQ6ICdJUi9QRScsXG4gIH0sXG4gIHNfc25fcjoge1xuICAgIGRlOiAnUy9TTi9SJyxcbiAgICBlbjogJ1MvU04vUicsXG4gICAgZnI6ICdTL1NOL1InLFxuICAgIGl0OiAnUy9TTi9SJyxcbiAgfSxcbiAgdHJhbXdheToge1xuICAgIGRlOiAnVHJhbS9NZXRybycsXG4gICAgZW46ICdUcmFtd2F5L1VuZGVyZ3JvdW5kJyxcbiAgICBmcjogJ1RyYW0vTcOpdHJvJyxcbiAgICBpdDogJ1RyYW0vTWV0cm8nLFxuICB9LFxuICBzaGlwOiB7XG4gICAgZGU6ICdTY2hpZmYnLFxuICAgIGVuOiAnU2hpcCcsXG4gICAgZnI6ICdCYXRlYXUnLFxuICAgIGl0OiAnQmF0dGVsbG8nLFxuICB9LFxuICB0cmFpbjoge1xuICAgIGRlOiAnWnVnJyxcbiAgICBlbjogJ1RyYWluJyxcbiAgICBmcjogJ1RyYWluJyxcbiAgICBpdDogJ1RyZW5vJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuT3B0aW9uYWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnKG9wdGlvbmFsKScsXG4gIGVuOiAnKG9wdGlvbmFsKScsXG4gIGZyOiAnKGZhY3VsdGF0aWYpJyxcbiAgaXQ6ICcoZmFjb2x0YXRpdm8pJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVGFyZ2V0T3BlbnNJbk5ld1dpbmRvdzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdMaW5remllbCDDtmZmbmV0IGluIG5ldWVtIEZlbnN0ZXIuJyxcbiAgZW46ICdMaW5rIHRhcmdldCBvcGVucyBpbiBhIG5ldyB3aW5kb3cuJyxcbiAgZnI6IFwiTGUgbGllbiBzJ291dnJlIGRhbnMgdW5lIG5vdXZlbGxlIGZlbsOqdHJlLlwiLFxuICBpdDogJ0lsIGxpbmsgc2kgYXByZSBpbiB1bmEgbnVvdmEgZmluZXN0cmEuJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuV2Fsa2luZ0Rpc3RhbmNlQXJyaXZhbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdNaW51dGVuIEZ1c3N3ZWcgbmFjaCBBbmt1bmZ0OicsXG4gIGVuOiAnbWludXRlcyBvZiB3YWxraW5nIHRpbWUgYWZ0ZXIgYXJyaXZhbDonLFxuICBmcjogJ21pbnV0ZXMgZGUgdHJhamV0IMOgIHBpZWQgYXByw6hzIGzigJlhcnJpdsOpZTonLFxuICBpdDogJ21pbnV0aSBhIHBpZWRpIGFsbOKAmWFycml2bzonLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5XYWxraW5nRGlzdGFuY2VEZXBhcnR1cmU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTWludXRlbiBGdXNzd2VnIHZvciBBYmZhaHJ0OicsXG4gIGVuOiAnbWludXRlcyBvZiB3YWxraW5nIHRpbWUgYmVmb3JlIGRlcGFydHVyZTonLFxuICBmcjogJ21pbnV0ZXMgZGUgdHJhamV0IMOgIHBpZWQgYXZhbnQgbGUgZMOpcGFydDonLFxuICBpdDogJ21pbnV0aSBhIHBpZWRpIHByaW1hIGRlbGxhIHBhcnRlbnphOicsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNsb3NlQWxlcnQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTWVsZHVuZyBzY2hsaWVzc2VuJyxcbiAgZW46ICdDbG9zZSBtZXNzYWdlJyxcbiAgZnI6ICdGZXJtZXIgbGUgbWVzc2FnZScsXG4gIGl0OiAnQ2hpdWRlcmUgaWwgbWVzc2FnZ2lvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xvc2VOb3RpZmljYXRpb246IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTmFjaHJpY2h0IHNjaGxpZXNzZW4nLFxuICBlbjogJ0Nsb3NlIG1lc3NhZ2UnLFxuICBmcjogJ0Zlcm1lciBsZSBtZXNzYWdlJyxcbiAgaXQ6ICdDaGl1ZGVyZSBpbCBtZXNzYWdnaW8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EaWFsb2c6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRGlhbG9nJyxcbiAgZW46ICdEaWFsb2cnLFxuICBmcjogJ0RpYWxvZ3VlJyxcbiAgaXQ6ICdEaWFsb2dvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xvc2VEaWFsb2c6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnw5xiZXJnZWxhZ2VydGVzIEZlbnN0ZXIgc2NobGllc3NlbicsXG4gIGVuOiAnQ2xvc2Ugc2Vjb25kYXJ5IHdpbmRvdycsXG4gIGZyOiAnRmVybWVyIGxhIGZlbsOqdHJlIHN1cGVycG9zw6llJyxcbiAgaXQ6ICdDaGl1ZGVyZSBsYSBmaW5lc3RyYSBzb3ZyYXBwb3N0YScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNsb3NlTmF2aWdhdGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdOYXZpZ2F0aW9uIHNjaGxpZXNzZW4nLFxuICBlbjogJ0Nsb3NlIG5hdmlnYXRpb24nLFxuICBmcjogJ0Zlcm1lciBsYSBuYXZpZ2F0aW9uJyxcbiAgaXQ6ICdDaGl1ZGVyZSBsYSBuYXZpZ2F6aW9uZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNsb3NlU2lkZWJhcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTZWl0ZW5sZWlzdGUgc2NobGllc3NlbicsXG4gIGVuOiAnQ2xvc2Ugc2lkZWJhcicsXG4gIGZyOiAnRmVybWVyIGxhIGJhcnJlIGxhdMOpcmFsZScsXG4gIGl0OiAnQ2hpdWRlcmUgbGEgYmFycmEgbGF0ZXJhbGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5DbG9zZVBvcG92ZXI6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnSGlud2VpcyBzY2hsaWVzc2VuJyxcbiAgZW46ICdDbG9zZSBub3RlJyxcbiAgZnI6ICdGZXJtZXIgbGEgbm90ZScsXG4gIGl0OiAnQ2hpdWRlcmUgbGEgbm90YScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkdvQmFjazogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdadXLDvGNrJyxcbiAgZW46ICdHbyBiYWNrJyxcbiAgZnI6ICdSZXRvdXJuZXInLFxuICBpdDogJ0luZGlldHJvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVG9kYXk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnSGV1dGUnLFxuICBlbjogJ1RvZGF5JyxcbiAgZnI6ICdBdWpvdXJk4oCZaHVpJyxcbiAgaXQ6ICdPZ2dpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuTmV4dE1vbnRoOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1bSBuw6RjaHN0ZW4gTW9uYXQgd2VjaHNlbG4nLFxuICBlbjogJ0NoYW5nZSB0byB0aGUgbmV4dCBtb250aCcsXG4gIGZyOiAnUGFzc2VyIGF1IG1vaXMgc3VpdmFudCcsXG4gIGl0OiAnUGFzc2FyZSBhbCBtZXNlIHN1Y2Nlc3Npdm8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5QcmV2aW91c01vbnRoOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1bSBsZXR6dGVuIE1vbmF0IHdlY2hzZWxuJyxcbiAgZW46ICdDaGFuZ2UgdG8gdGhlIHByZXZpb3VzIG1vbnRoJyxcbiAgZnI6ICdQYXNzZXIgYXUgbW9pcyBwcsOpY8OpZGVudCcsXG4gIGl0OiAnUGFzc2FyZSBhbCBtZXNlIHByZWNlZGVudGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5OZXh0RGF5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ07DpGNoc3RlciBUYWcnLFxuICBlbjogJ05leHQgZGF5JyxcbiAgZnI6ICdMZSBwcm9jaGFpbiBqb3VyJyxcbiAgaXQ6ICdHaW9ybm8gc3VjY2Vzc2l2bycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blByZXZpb3VzRGF5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1ZvcmhlcmlnZXIgVGFnJyxcbiAgZW46ICdQcmV2aW91cyBkYXknLFxuICBmcjogJ0pvdXIgcHLDqWPDqWRlbnQnLFxuICBpdDogJ0dpb3JubyBwcmVjZWRlbnRlJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuWWVhck1vbnRoU2VsZWN0aW9uOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0phaHIgdW5kIE1vbmF0IGF1c3fDpGhsZW4nLFxuICBlbjogJ0Nob29zZSB5ZWFyIGFuZCBtb250aCcsXG4gIGZyOiAnQ2hvaXNpciBs4oCZYW5uw6llIGV0IGxlIG1vaXMnLFxuICBpdDogJ1NlbGV6aW9uaSBhbm5vIGUgbWVzZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNhbGVuZGFyRGF0ZVNlbGVjdGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdEYXR1bSBhdXN3w6RobGVuJyxcbiAgZW46ICdDaG9vc2UgZGF0ZScsXG4gIGZyOiAnQ2hvaXNpciB1bmUgZGF0ZScsXG4gIGl0OiAnU2VsZXppb25pIHVuYSBkYXRhJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuTmV4dFllYXJSYW5nZSA9ICh5ZWFyUmFuZ2U6IG51bWJlcik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGBXZWNoc2VsIHp1IGRlbiBuw6RjaHN0ZW4gJHt5ZWFyUmFuZ2V9IEphaHJlbmAsXG4gIGVuOiBgQ2hhbmdlIHRvIHRoZSBuZXh0ICR7eWVhclJhbmdlfSB5ZWFyc2AsXG4gIGZyOiBgUGFzc2VyIGF1eCAke3llYXJSYW5nZX0gcHJvY2hhaW5lcyBhbm7DqWVzYCxcbiAgaXQ6IGBQYXNzYXJlIGFpIHN1Y2Nlc3NpdmkgJHt5ZWFyUmFuZ2V9IGFubmlgLFxufSk7XG5cbmV4cG9ydCBjb25zdCBpMThuUHJldmlvdXNZZWFyUmFuZ2UgPSAoeWVhclJhbmdlOiBudW1iZXIpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+ICh7XG4gIGRlOiBgV2VjaHNlbCB6dSBkZW4gdm9yaGVyaWdlbiAke3llYXJSYW5nZX0gSmFocmVuYCxcbiAgZW46IGBDaGFuZ2UgdG8gdGhlIHByZXZpb3VzICR7eWVhclJhbmdlfSB5ZWFyc2AsXG4gIGZyOiBgUGFzc2FnZSBhdXggJHt5ZWFyUmFuZ2V9IHByw6ljw6lkZW50ZXMgYW5uw6llc2AsXG4gIGl0OiBgUGFzc2FyZSBhaSBwcmVjZWRlbnRpICR7eWVhclJhbmdlfSBhbm5pYCxcbn0pO1xuXG5leHBvcnQgY29uc3QgaTE4bk5leHRZZWFyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1bSBuw6RjaHN0ZW4gSmFociB3ZWNoc2VsbicsXG4gIGVuOiAnQ2hhbmdlIHRvIHRoZSBuZXh0IHllYXInLFxuICBmcjogXCJQYXNzZXIgw6AgbCdhbm7DqWUgc3VpdmFudGVcIixcbiAgaXQ6IFwiUGFzc2FyZSBhbGwnYW5ubyBzdWNjZXNzaXZvXCIsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blByZXZpb3VzWWVhcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdadW0gbGV0enRlbiBKYWhyIHdlY2hzZWxuJyxcbiAgZW46ICdDaGFuZ2UgdG8gdGhlIHByZXZpb3VzIHllYXInLFxuICBmcjogXCJQYXNzZXIgw6AgbCdhbm7DqWUgcHLDqWPDqWRlbnRcIixcbiAgaXQ6IFwiUGFzc2FyZSBhbGwnYW5ubyBwcmVjZWRlbnRlXCIsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNlbGVjdE5leHREYXkgPSAoY3VycmVudERhdGU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGBadW0gbsOkY2hzdGVuIFRhZyB3ZWNoc2VsbiwgZGVyemVpdCBhdXNnZXfDpGhsdCAke2N1cnJlbnREYXRlfS5gLFxuICBlbjogYENoYW5nZSB0byB0aGUgbmV4dCBkYXksIGN1cnJlbnRseSBzZWxlY3RlZCAke2N1cnJlbnREYXRlfS5gLFxuICBmcjogYFBhc3NlciBhdSBqb3VyIHN1aXZhbnQsIGFjdHVlbGxlbWVudCBzw6lsZWN0aW9ubsOpICR7Y3VycmVudERhdGV9LmAsXG4gIGl0OiBgUGFzc2FyZSBhbCBnaW9ybm8gc3VjY2Vzc2l2bywgYXR0dWFsbWVudGUgc2VsZXppb25hdG8gJHtjdXJyZW50RGF0ZX0uYCxcbn0pO1xuXG5leHBvcnQgY29uc3QgaTE4blNlbGVjdFByZXZpb3VzRGF5ID0gKGN1cnJlbnREYXRlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+ICh7XG4gIGRlOiBgWnVtIHZvcmhlcmlnZW4gVGFnIHdlY2hzZWxuLCBkZXJ6ZWl0IGF1c2dld8OkaGx0ICR7Y3VycmVudERhdGV9LmAsXG4gIGVuOiBgQ2hhbmdlIHRvIHRoZSBwcmV2aW91cyBkYXksIGN1cnJlbnRseSBzZWxlY3RlZCAke2N1cnJlbnREYXRlfS5gLFxuICBmcjogYFBhc3NlciBhdSBqb3VyIHByw6ljw6lkZW50LCBhY3R1ZWxsZW1lbnQgc8OpbGVjdGlvbm7DqSAke2N1cnJlbnREYXRlfS5gLFxuICBpdDogYFBhc3NhcmUgYWwgZ2lvcm5vIHByZWNlZGVudGUsIGF0dHVhbG1lbnRlIHNlbGV6aW9uYXRvICR7Y3VycmVudERhdGV9LmAsXG59KTtcblxuZXhwb3J0IGNvbnN0IGkxOG5TaG93Q2FsZW5kYXI6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnS2FsZW5kZXIgYW56ZWlnZW4nLFxuICBlbjogJ1Nob3cgY2FsZW5kYXInLFxuICBmcjogJ0FmZmljaGVyIGxlIGNhbGVuZHJpZXInLFxuICBpdDogJ1Zpc3VhbGl6emEgaWwgY2FsZW5kYXJpbycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkRhdGVQaWNrZXJQbGFjZWhvbGRlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdUVC5NTS5KSkpKJyxcbiAgZW46ICdERC5NTS5ZWVlZJyxcbiAgZnI6ICdKSi5NTS5BQUFBJyxcbiAgaXQ6ICdHRy5NTS5BQUFBJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRGF0ZUNoYW5nZWRUbzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdEYXR1bSBnZcOkbmRlcnQgYXVmJyxcbiAgZW46ICdEYXRlIGNoYW5nZWQgdG8nLFxuICBmcjogJ0RhdGUgbW9kaWZpw6llIGF1JyxcbiAgaXQ6ICdEYXRhIG1vZGlmaWNhdGEgaW4nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5Db25uZWN0aW9uRnJvbTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdWZXJiaW5kdW5nIHZvbicsXG4gIGVuOiAnQ29ubmVjdGlvbiBmcm9tJyxcbiAgZnI6ICdMaWFpc29uIGRlJyxcbiAgaXQ6ICdDb2xsZWdhbWVudG8gZGEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5Db25uZWN0aW9uVG86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnbmFjaCcsXG4gIGVuOiAndG8nLFxuICBmcjogJ8OgJyxcbiAgaXQ6ICdhJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ29ubmVjdGlvblJvdW5kdHJpcCA9IChyZXR1cm5DaXR5OiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+ICh7XG4gIGRlOiBgdW5kIHp1csO8Y2sgbmFjaCAke3JldHVybkNpdHl9LmAsXG4gIGVuOiBgYW5kIGJhY2sgdG8gJHtyZXR1cm5DaXR5fS5gLFxuICBmcjogYGV0IHJldG91ciDDoCAke3JldHVybkNpdHl9LmAsXG4gIGl0OiBgZSByaXRvcm5vIGEgJHtyZXR1cm5DaXR5fS5gLFxufSk7XG5cbmV4cG9ydCBjb25zdCBpMThuRXhwYW5kZWQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnZXJ3ZWl0ZXJ0JyxcbiAgZW46ICdleHBhbmRlZCcsXG4gIGZyOiAnZXN0IHRpcsOpJyxcbiAgaXQ6ICdlc3BhbnNvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ29sbGFwc2VkOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ3JlZHV6aWVydCcsXG4gIGVuOiAnY29sbGFwc2VkJyxcbiAgZnI6ICdjb25kZW5zw6knLFxuICBpdDogJ2NvbXByZXNzbycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bk1hcENvbnRhaW5lckJ1dHRvbkxhYmVsOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0thcnRlIHplaWdlbicsXG4gIGVuOiAnU2hvdyBtYXAnLFxuICBmcjogJ0FmZmljaGVyIGxhIGNhcnRlJyxcbiAgaXQ6ICdNb3N0cmEgbGEgbWFwcGEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5CcmVhZGNydW1iRWxsaXBzaXNCdXR0b25MYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdNZWhyIEJyZWFkY3J1bWJzIGFuemVpZ2VuJyxcbiAgZW46ICdTaG93IG1vcmUgYnJlYWRjcnVtYnMnLFxuICBmcjogJ0FmZmljaGVyIHBsdXMgYnJlYWRjcnVtYnMnLFxuICBpdDogJ01vc3RyYSBwacO5IGJyZWFkY3J1bWJzJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xlYXJJbnB1dDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdGZWxkaW5oYWx0IGzDtnNjaGVuJyxcbiAgZW46ICdDbGVhciBpbnB1dCB2YWx1ZScsXG4gIGZyOiAnRWZmYWNlciBsYSB2YWxldXIgZOKAmWVudHLDqWUnLFxuICBpdDogJ0NhbmNlbGxhIGlsIHZhbG9yZSBkZWxs4oCZaW5wdXQnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5GbGlwQ2FyZDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdLbGlja2VuIFNpZSBhdWYgZGllc2UgS2FydGUgZsO8ciBEZXRhaWxzJyxcbiAgZW46ICdDbGljayBvbiB0aGlzIGNhcmQgZm9yIGRldGFpbHMnLFxuICBmcjogJ0NsaXF1ZXogc3VyIGNldHRlIGNhcnRlIHBvdXIgcGx1cyBkZSBkw6l0YWlscycsXG4gIGl0OiAnQ2xpY2NoaSBzdSBxdWVzdGEgc2NoZWRhIHBlciBpIGRldHRhZ2xpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuUmV2ZXJzZUNhcmQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnS2xpY2tlbiBTaWUgYXVmIGRpZXNlIEthcnRlLCB1bSB6dXLDvGNrIHp1ciBadXNhbW1lbmZhc3N1bmcgenUgZ2VsYW5nZW4nLFxuICBlbjogJ0NsaWNrIG9uIHRoaXMgY2FyZCB0byBnbyBiYWNrIHRvIHRoZSBzdW1tYXJ5JyxcbiAgZnI6ICdDbGlxdWV6IHN1ciBjZXR0ZSBjYXJ0ZSBwb3VyIHJldmVuaXIgYXUgcsOpc3Vtw6knLFxuICBpdDogJ0NsaWNjaGkgc3UgcXVlc3RhIHNjaGVkYSBwZXIgdG9ybmFyZSBhbCBzb21tYXJpbycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkZpbGVTZWxlY3RvckJ1dHRvbkxhYmVsOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0RhdGVpIGF1c3fDpGhsZW4nLFxuICBlbjogJ0Nob29zZSBhIGZpbGUnLFxuICBmcjogJ0Nob2lzaXNzZXogdW4gZmljaGllcicsXG4gIGl0OiAnU2NlbGdhIHVuIGZpbGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5GaWxlU2VsZWN0b3JTdWJ0aXRsZUxhYmVsOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1ppZWhlbiBTaWUgSWhyZSBEYXRlaWVuIGhpZXIgaGluIChEcmFnICYgRHJvcCknLFxuICBlbjogJ0RyYWcgJiBEcm9wIHlvdXIgZmlsZXMgaGVyZScsXG4gIGZyOiAnRmFpdGVzIGdsaXNzZXIgZXQgZMOpcG9zZXogdm9zIGZpY2hpZXJzIGljaScsXG4gIGl0OiAnVHJhc2NpbmkgZSByaWxhc2NpIGkgc3VvaSBmaWxlIHF1aScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkZpbGVTZWxlY3RvckRlbGV0ZUZpbGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRGF0ZWkgZW50ZmVybmVuJyxcbiAgZW46ICdSZW1vdmUgZmlsZScsXG4gIGZyOiAnRWZmYWNlciBsZSBmaWNoaWVyJyxcbiAgaXQ6ICdSaW11b3ZhIGlsIGZpbGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5GaWxlU2VsZWN0b3JDdXJyZW50bHlTZWxlY3RlZCA9IChmaWxlc05hbWU6IHN0cmluZ1tdKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9PiB7XG4gIGlmIChmaWxlc05hbWUgJiYgZmlsZXNOYW1lLmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGU6IGBBa3R1ZWxsIGF1c2dld8OkaGx0ZSBEYXRlaTogJHtmaWxlc05hbWUuam9pbignLCAnKX0uYCxcbiAgICAgIGVuOiBgQ3VycmVudGx5IHNlbGVjdGVkIGZpbGVzOiAke2ZpbGVzTmFtZS5qb2luKCcsICcpfS5gLFxuICAgICAgZnI6IGBGaWNoaWVyIGFjdHVlbGxlbWVudCBzw6lsZWN0aW9ubsOpOiAke2ZpbGVzTmFtZS5qb2luKCcsICcpfS5gLFxuICAgICAgaXQ6IGBGaWxlIGF0dHVhbG1lbnRlIHNlbGV6aW9uYXRvOiAke2ZpbGVzTmFtZS5qb2luKCcsICcpfS5gLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBkZTogJ0tlaW5lIERhdGVpIGF1c2dld8OkaGx0LicsXG4gICAgZW46ICdObyBmaWxlcyBzZWxlY3RlZC4nLFxuICAgIGZyOiAnTmVzc3VuIGZpY2hpZXIgc8OpbGVjdGlvbm7DqS4nLFxuICAgIGl0OiAnTmVzc3VuIGZpbGUgc2VsZXppb25hdG8uJyxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuTmV4dFBhZ2U6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTsOkY2hzdGUgU2VpdGUnLFxuICBlbjogJ05leHQgcGFnZScsXG4gIGZyOiAnUHJvY2hhaW5lIHBhZ2UnLFxuICBpdDogJ1BhZ2luYSBzdWNjZXNzaXZhJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuUHJldmlvdXNQYWdlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1ZvcmhlcmlnZSBTZWl0ZScsXG4gIGVuOiAnUHJldmlvdXMgcGFnZScsXG4gIGZyOiAnUGFnZSBwcsOpY8OpZGVudGUnLFxuICBpdDogJ1BhZ2luYSBwcmVjZWRlbnRlJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuUGFnZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTZWl0ZScsXG4gIGVuOiAnUGFnZScsXG4gIGZyOiAnUGFnZScsXG4gIGl0OiAnUGFnaW5hJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuSXRlbXNQZXJQYWdlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0VpbnRyw6RnZSBwcm8gU2VpdGUnLFxuICBlbjogJ0l0ZW1zIHBlciBwYWdlJyxcbiAgZnI6ICdFbnRyw6llcyBwYXIgcGFnZScsXG4gIGl0OiAnRWxlbWVudGkgcGVyIHBhZ2luYScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNlbGVjdGVkUGFnZSA9IChwYWdlTnVtYmVyOiBudW1iZXIpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+ICh7XG4gIGRlOiBgU2VpdGUgJHtwYWdlTnVtYmVyfSBhdXNnZXfDpGhsdC5gLFxuICBlbjogYFBhZ2UgJHtwYWdlTnVtYmVyfSBzZWxlY3RlZC5gLFxuICBmcjogYFBhZ2UgJHtwYWdlTnVtYmVyfSBzw6lsZWN0aW9ubsOpZS5gLFxuICBpdDogYFBhZ2luYSAke3BhZ2VOdW1iZXJ9IHNlbGV6aW9uYXRhLmAsXG59KTtcblxuZXhwb3J0IGNvbnN0IGkxOG5DaGVja2JveFJlcXVpcmVkOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ011c3MgZ2VzZXR6dCBzZWluLicsXG4gIGVuOiAnTXVzdCBiZSBjaGVja2VkLicsXG4gIGZyOiAnRG9pdCDDqnRyZSBkw6lmaW5pLicsXG4gIGl0OiAnRGV2ZSBlc3NlcmUgaW1wb3N0YXRvLicsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNlbGVjdGlvblJlcXVpcmVkOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0F1c3dhaGwgZXJmb3JkZXJsaWNoLicsXG4gIGVuOiAnU2VsZWN0aW9uIHJlcXVpcmVkLicsXG4gIGZyOiAnU8OpbGVjdGlvbiByZXF1aXNlLicsXG4gIGl0OiAnU2VsZXppb25lIG5lY2Vzc2FyaWEuJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuSW5wdXRSZXF1aXJlZDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdFaW5nYWJlIGVyZm9yZGVybGljaC4nLFxuICBlbjogJ0lucHV0IHJlcXVpcmVkLicsXG4gIGZyOiAnRW50csOpZSBvYmxpZ2F0b2lyZS4nLFxuICBpdDogJ0luc2VyaW1lbnRvIG5lY2Vzc2FyaW8uJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRGF0ZUludmFsaWQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnQml0dGUgZ8O8bHRpZ2VzIERhdHVtIGVpbmdlYmVuLicsXG4gIGVuOiAnUGxlYXNlIHByb3ZpZGUgYSB2YWxpZCBkYXRlLicsXG4gIGZyOiAnVmV1aWxsZXogc2Fpc2lyIHVuZSBkYXRlIHZhbGlkZS4nLFxuICBpdDogJ0luc2VyaXJlIHVuYSBkYXRhIHZhbGlkYS4nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EYXRlTWluID0gKG1pbjogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9PiAoe1xuICBkZTogYERhdHVtIGRhcmYgbmljaHQgdm9yICR7bWlufSBzZWluLmAsXG4gIGVuOiBgRGF0ZSBtdXN0IG5vdCBiZSBiZWZvcmUgJHttaW59LmAsXG4gIGZyOiBgTGEgZGF0ZSBuZSBkb2l0IHBhcyDDqnRyZSBhbnTDqXJpZXVyZSBhdSAke21pbn0uYCxcbiAgaXQ6IGBMYSBkYXRhIG5vbiBkZXZlIGVzc2VyZSBhbnRlcmlvcmUgYWwgJHttaW59LmAsXG59KTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EYXRlTWF4ID0gKG1heDogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9PiAoe1xuICBkZTogYERhdHVtIGRhcmYgbmljaHQgbmFjaCAke21heH0gc2Vpbi5gLFxuICBlbjogYERhdGUgbXVzdCBub3QgYmUgYWZ0ZXIgJHttYXh9LmAsXG4gIGZyOiBgTGEgZGF0ZSBuZSBkb2l0IHBhcyDDqnRyZSBwb3N0w6lyaWV1cmUgYXUgJHttYXh9LmAsXG4gIGl0OiBgTGEgZGF0YSBub24gZGV2ZSBlc3NlcmUgc3VjY2Vzc2l2YSBhbCAke21heH0uYCxcbn0pO1xuXG5leHBvcnQgY29uc3QgaTE4blRpbWVJbnB1dENoYW5nZSA9ICh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9PiAoe1xuICBkZTogYFplaXQgZ2XDpG5kZXJ0IHp1ICR7dmFsdWV9LmAsXG4gIGVuOiBgVGltZSBjaGFuZ2VkIHRvICR7dmFsdWV9LmAsXG4gIGZyOiBgSGV1cmUgbW9kaWZpw6llOiAke3ZhbHVlfS5gLFxuICBpdDogYE9yYXJpbyBtb2RpZmljYXRhIGFsbGUgJHt2YWx1ZX0uYCxcbn0pO1xuXG5leHBvcnQgY29uc3QgaTE4blRpbWVJbnZhbGlkOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0JpdHRlIGfDvGx0aWdlIFplaXQgZWluZ2ViZW4uJyxcbiAgZW46ICdQbGVhc2UgcHJvdmlkZSBhIHZhbGlkIHRpbWUuJyxcbiAgZnI6ICdWZXVpbGxleiBzYWlzaXIgdW5lIGhldXJlIHZhbGlkZS4nLFxuICBpdDogJ0luc2VyaXNjYSB1biBvcmFyaW8gdmFsaWRvLicsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blRpbWVNYXg6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiBgWmVpdCBkYXJmIG5pY2h0IG5hY2ggMjM6NTkgc2Vpbi5gLFxuICBlbjogYFRpbWUgbXVzdCBub3QgYmUgYWZ0ZXIgMjM6NTkuYCxcbiAgZnI6IGBM4oCZaGV1cmUgbmUgZG9pdCBwYXMgw6p0cmUgcG9zdMOpcmlldXJlIMOgIDIzaDU5LmAsXG4gIGl0OiBgTOKAmW9yYXJpbyBub24gcHXDsiBlc3NlcmUgc3VjY2Vzc2l2byBhbGxlIDIzLjU5LmAsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blRpbWVNYXhMZW5ndGg6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiBgRGllIFplaXRlaW5nYWJlIGRhcmYgbmljaHQgbWVociBhbHMgZsO8bmYgWmVpY2hlbiBoYWJlbi5gLFxuICBlbjogYFRoZSB0aW1lIGlucHV0IG11c3Qgbm90IGV4Y2VlZCBmaXZlIGNoYXJhY3RlcnMuYCxcbiAgZnI6IGBMYSBzYWlzaWUgZGUgbOKAmWhldXJlIG5lIGRvaXQgcGFzIGNvbXBvcnRlciBwbHVzIGRlIGNpbnEgY2FyYWN0w6hyZXMuYCxcbiAgaXQ6IGBM4oCZaW5kaWNhemlvbmUgdGVtcG9yYWxlIG5vbiBwdcOyIGNvbnRlbmVyZSBwacO5IGRpIGNpbnF1ZSBjYXJhdHRlcmkuYCxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2hpcERlbGV0ZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdEcsO8Y2tlbiBTaWUgZGllIEVudGZlcm5lbi1UYXN0ZSB1bSBkZW4gQ2hpcCB6dSBsw7ZzY2hlbicsXG4gIGVuOiAnUHJlc3MgdGhlIERlbGV0ZSBidXR0b24gdG8gcmVtb3ZlIHRoZSBjaGlwJyxcbiAgZnI6ICdBcHB1eWV6IHN1ciBsYSB0b3VjaGUgRGVsIHBvdXIgc3VwcHJpbWVyIGNldHRlIHB1Y2UnLFxuICBpdDogJ1ByZW1hIGlsIHRhc3RvIENhbmMgcGVyIHJpbXVvdmVyZSBxdWVzdGEgY2hpcCcsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNoaXBHcm91cElucHV0RGVzY3JpcHRpb246IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnQXVzZ2V3w6RobHRlIEVsZW1lbnRlOicsXG4gIGVuOiAnU2VsZWN0ZWQgZWxlbWVudHM6JyxcbiAgZnI6ICfDiWzDqW1lbnRzIHPDqWxlY3Rpb25uw6lzOicsXG4gIGl0OiAnRWxlbWVudGkgc2VsZXppb25hdGk6Jyxcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRU8sTUFBTSxnQkFBd0M7QUFBQSxFQUNuRCxJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJOztBQUdDLE1BQU0sY0FBc0M7QUFBQSxFQUNqRCxJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJOztBQUdDLE1BQU0sYUFBcUM7QUFBQSxFQUNoRCxJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJOztBQUdDLE1BQU0sa0JBQTBDO0FBQUEsRUFDckQsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTs7QUFHQyxNQUFNLFlBQW9EO0FBQUEsRUFDL0QsT0FBTztBQUFBLElBQ0wsSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLEVBQUE7QUFBQSxFQUVO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
814
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvaTE4bi9pMThuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2JiTGFuZ3VhZ2UsIFNiYk9jY3VwYW5jeSB9IGZyb20gJy4uL2ludGVyZmFjZXMuanMnO1xuXG5leHBvcnQgY29uc3QgaTE4bkRpcmVjdGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdSaWNodHVuZycsXG4gIGVuOiAnRGlyZWN0aW9uJyxcbiAgZnI6ICdEaXJlY3Rpb24nLFxuICBpdDogJ0RpcmV6aW9uZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkFycml2YWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnQW5rdW5mdCcsXG4gIGVuOiAnQXJyaXZhbCcsXG4gIGZyOiAnQXJyaXbDqWUnLFxuICBpdDogJ0Fycml2bycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNlY3RvcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTZWt0b3InLFxuICBlbjogJ1NlY3RvcicsXG4gIGZyOiAnU2VjdGV1cicsXG4gIGl0OiAnU2V0dG9yZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNlY3RvclNob3J0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1NrdC4nLFxuICBlbjogJ1NlYy4nLFxuICBmcjogJ1NlY3QuJyxcbiAgaXQ6ICdTZXQuJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xhc3M6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0ge1xuICBmaXJzdDoge1xuICAgIGRlOiAnRXJzdGUgS2xhc3NlJyxcbiAgICBlbjogJ0ZpcnN0IENsYXNzJyxcbiAgICBmcjogJ1ByZW1pw6hyZSBjbGFzc2UnLFxuICAgIGl0OiAnUHJpbWEgY2xhc3NlJyxcbiAgfSxcbiAgc2Vjb25kOiB7XG4gICAgZGU6ICdad2VpdGUgS2xhc3NlJyxcbiAgICBlbjogJ1NlY29uZCBDbGFzcycsXG4gICAgZnI6ICdEZXV4acOobWUgY2xhc3NlJyxcbiAgICBpdDogJ1NlY29uZGEgY2xhc3NlJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhaW46IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnWnVnJyxcbiAgZW46ICdUcmFpbicsXG4gIGZyOiAnVHJhaW4nLFxuICBpdDogJ1RyZW5vJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhaW5zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1rDvGdlJyxcbiAgZW46ICdUcmFpbnMnLFxuICBmcjogJ1RyYWlucycsXG4gIGl0OiAnVHJlbmknLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5XYWdvbnNMYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdXYWdlbiBkZXMgWnVnZXMnLFxuICBlbjogJ0NvYWNoZXMgb2YgdGhlIHRyYWluJyxcbiAgZnI6ICdXYWdvbnMgZHUgdHJhaW4nLFxuICBpdDogJ0NhcnJvenplIGRlbCB0cmVubycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bldhZ29uTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnV2FnZW4nLFxuICBlbjogJ1RyYWluIGNvYWNoJyxcbiAgZnI6ICdXYWdvbiBkdSB0cmFpbicsXG4gIGl0OiAnQ2Fycm96emEgZGVsIHRyZW5vJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuV2Fnb25MYWJlbE51bWJlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6IGBOdW1tZXJgLFxuICBlbjogYE51bWJlcmAsXG4gIGZyOiBgTnVtw6lyb2AsXG4gIGl0OiBgTnVtZXJvYCxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xvc2VkQ29tcGFydG1lbnRMYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdHZXNjaGxvc3NlbmVyIFp1Z3dhZ2dvbicsXG4gIGVuOiAnQ2xvc2VkIHRyYWluIGNvYWNoJyxcbiAgZnI6ICdXYWdvbiBkdSB0cmFpbiBmZXJtw6knLFxuICBpdDogJ0NhcnJvenphIGRlbCB0cmVubyBjaGl1c28nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5Mb2NvbW90aXZlTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTG9rb21vdGl2ZScsXG4gIGVuOiAnTG9jb21vdGl2ZScsXG4gIGZyOiAnTG9jb21vdGl2ZScsXG4gIGl0OiAnTG9jb21vdGl2YScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNsZWVwaW5nV2Fnb25MYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTY2hsYWZ3YWdlbicsXG4gIGVuOiAnU2xlZXBpbmcgY2FyJyxcbiAgZnI6ICdWb2l0dXJlLWxpdHMnLFxuICBpdDogJ0NhcnJvenphIGxldHRpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ291Y2hldHRlV2Fnb25MYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdMaWVnZXdhZ2VuJyxcbiAgZW46ICdDb3VjaGV0dGUgY2FyJyxcbiAgZnI6ICdWb2l0dXJlLWNvdWNoZXR0ZXMnLFxuICBpdDogJ0NhcnJvenphIGN1Y2NldHRlJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuUmVzdGF1cmFudFdhZ29uTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnU3BlaXNld2FnZW4nLFxuICBlbjogJ0RpbmluZyBjYXInLFxuICBmcjogJ1ZvaXR1cmUtcmVzdGF1cmFudCcsXG4gIGl0OiAnQ2Fycm96emEgcmlzdG9yYW50ZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkJsb2NrZWRQYXNzYWdlOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHtcbiAgcHJldmlvdXM6IHtcbiAgICBkZTogJ0tlaW4gRHVyY2hnYW5nIHp1bSB2b3JoZXJpZ2VuIFdhZ2VuJyxcbiAgICBlbjogJ05vIHBhc3NhZ2UgdG8gdGhlIHByZXZpb3VzIHRyYWluIGNvYWNoJyxcbiAgICBmcjogJ1BhcyBkZSBwYXNzYWdlIGF1IHdhZ29uIGR1IHRyYWluIHByw6ljw6lkZW50JyxcbiAgICBpdDogJ05lc3N1biBwYXNzYWdnaW8gYWxsYSBjYXJyb3p6YSBkZWwgdHJlbm8gcHJlY2VkZW50ZScsXG4gIH0sXG4gIG5leHQ6IHtcbiAgICBkZTogJ0tlaW4gRHVyY2hnYW5nIHp1bSBuw6RjaHN0ZW4gV2FnZW4nLFxuICAgIGVuOiAnTm8gcGFzc2FnZSB0byB0aGUgbmV4dCB0cmFpbiBjb2FjaCcsXG4gICAgZnI6ICdQYXMgZGUgcGFzc2FnZSBhdSB3YWdvbiBkdSB0cmFpbiBzdWl2YW50JyxcbiAgICBpdDogJ05lc3N1biBwYXNzYWdnaW8gYWxsYSBjYXJyb3p6YSBkZWwgdHJlbm8gc3VjY2Vzc2l2bycsXG4gIH0sXG4gIGJvdGg6IHtcbiAgICBkZTogJ0tlaW4gRHVyY2hnYW5nIHp1bSBuw6RjaHN0ZW4gdW5kIHZvcmhlcmlnZW4gV2FnZW4nLFxuICAgIGVuOiAnTm8gcGFzc2FnZSB0byB0aGUgbmV4dCBhbmQgcHJldmlvdXMgdHJhaW4gY29hY2gnLFxuICAgIGZyOiAnUGFzIGRlIHBhc3NhZ2UgYXUgd2Fnb24gZHUgdHJhaW4gc3VpdmFudCBldCBwcsOpY8OpZGVudCcsXG4gICAgaXQ6ICdOZXNzdW4gcGFzc2FnZ2lvIGFsbGEgY2Fycm96emEgZGVsIHRyZW5vIHN1Y2Nlc3Npdm8gZSBwcmVjZWRlbnRlJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQWRkaXRpb25hbFdhZ29uSW5mb3JtYXRpb25IZWFkaW5nOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1c8OkdHpsaWNoZSBXYWdlbmluZm9ybWF0aW9uJyxcbiAgZW46ICdBZGRpdGlvbmFsIHdhZ29uIGluZm9ybWF0aW9uJyxcbiAgZnI6ICdJbmZvcm1hdGlvbnMgc3VwcGzDqW1lbnRhaXJlcyBzdXIgbGVzIHdhZ29ucycsXG4gIGl0OiAnSW5mb3JtYXppb25pIGFnZ2l1bnRpdmUgc3VsbGEgY2Fycm96emEgZGVsIHRyZW5vJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRGVwYXJ0dXJlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0FiZmFocnQnLFxuICBlbjogJ0RlcGFydHVyZScsXG4gIGZyOiAnRMOpcGFydCcsXG4gIGl0OiAnUGFydGVuemEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EdXJhdGlvbk1pbnV0ZTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4+ID0ge1xuICBzaW5nbGU6IHtcbiAgICBsb25nOiB7XG4gICAgICBkZTogJ01pbnV0ZScsXG4gICAgICBlbjogJ01pbnV0ZScsXG4gICAgICBmcjogJ01pbnV0ZScsXG4gICAgICBpdDogJ01pbnV0bycsXG4gICAgfSxcbiAgICBzaG9ydDoge1xuICAgICAgZGU6ICdtJyxcbiAgICAgIGVuOiAnbScsXG4gICAgICBmcjogJ20nLFxuICAgICAgaXQ6ICdtJyxcbiAgICB9LFxuICB9LFxuICBtdWx0aXBsZToge1xuICAgIGxvbmc6IHtcbiAgICAgIGRlOiAnTWludXRlbicsXG4gICAgICBlbjogJ01pbnV0ZXMnLFxuICAgICAgZnI6ICdNaW51dGVzJyxcbiAgICAgIGl0OiAnTWludXRpJyxcbiAgICB9LFxuICAgIHNob3J0OiB7XG4gICAgICBkZTogJ01pbicsXG4gICAgICBlbjogJ21pbicsXG4gICAgICBmcjogJ21pbi4nLFxuICAgICAgaXQ6ICdtaW5zJyxcbiAgICB9LFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EdXJhdGlvbkhvdXI6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+PiA9IHtcbiAgc2luZ2xlOiB7XG4gICAgbG9uZzoge1xuICAgICAgZGU6ICdTdHVuZGUnLFxuICAgICAgZW46ICdIb3VyJyxcbiAgICAgIGZyOiAnSGV1cmUnLFxuICAgICAgaXQ6ICdPcmEnLFxuICAgIH0sXG4gICAgc2hvcnQ6IHtcbiAgICAgIGRlOiAnU3RkLicsXG4gICAgICBlbjogJ2gnLFxuICAgICAgZnI6ICdvcmUnLFxuICAgICAgaXQ6ICdocnMnLFxuICAgIH0sXG4gIH0sXG4gIG11bHRpcGxlOiB7XG4gICAgbG9uZzoge1xuICAgICAgZGU6ICdTdHVuZGVuJyxcbiAgICAgIGVuOiAnSG91cnMnLFxuICAgICAgZnI6ICdIZXVyZXMnLFxuICAgICAgaXQ6ICdPcmUnLFxuICAgIH0sXG4gICAgc2hvcnQ6IHtcbiAgICAgIGRlOiAnU3RkLicsXG4gICAgICBlbjogJ2gnLFxuICAgICAgZnI6ICdvcmUnLFxuICAgICAgaXQ6ICdocnMnLFxuICAgIH0sXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkR1cmF0aW9uRGF5OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pj4gPSB7XG4gIHNpbmdsZToge1xuICAgIGxvbmc6IHtcbiAgICAgIGRlOiAnVGFnJyxcbiAgICAgIGVuOiAnRGF5JyxcbiAgICAgIGZyOiAnSm91cicsXG4gICAgICBpdDogJ0dpb3JubycsXG4gICAgfSxcbiAgfSxcbiAgbXVsdGlwbGU6IHtcbiAgICBsb25nOiB7XG4gICAgICBkZTogJ1RhZ2UnLFxuICAgICAgZW46ICdEYXlzJyxcbiAgICAgIGZyOiAnSm91cnMnLFxuICAgICAgaXQ6ICdHaW9ybmknLFxuICAgIH0sXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blRyaXBRdWF5Q2hhbmdlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0dsZWlzw6RuZGVydW5nIGltIFZlcmxhdWYgZGllc2VyIFZlcmJpbmR1bmcnLFxuICBlbjogJ1RyYWNrIGNoYW5nZSBpbiB0aGUgY291cnNlIG9mIHRoaXMgY29ubmVjdGlvbicsXG4gIGZyOiAnQ2hhbmdlbWVudCBkZSB2b2llIHN1ciBsZSBwYXJjb3VycyBkZSBjZXR0ZSBjb25uZXhpb24nLFxuICBpdDogJ0NhbWJpYW1lbnRvIGRpIGJpbmFyaW8gbmVsIGNvcnNvIGRpIHF1ZXN0YSBjb25uZXNzaW9uZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blRyaXBEdXJhdGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdSZWlzZWRhdWVyJyxcbiAgZW46ICdUcmF2ZWwgdGltZScsXG4gIGZyOiAnRHVyw6llIGR1IHZveWFnZScsXG4gIGl0OiAnRHVyYXRhIGRlbCB2aWFnZ2lvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhdmVsaGludHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnUmVpc2VoaW53ZWlzZScsXG4gIGVuOiAnVHJhdmVsaGludHMnLFxuICBmcjogJ0luZGljYXRpb25zIHN1ciBsZSB2b3lhZ2UnLFxuICBpdDogJ0luZGljYXppb25pIGRpIHZpYWdnaW8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5SZWFsVGltZUluZm86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRWNodHplaXRpbmZvcm1hdGlvbmVuJyxcbiAgZW46ICdSZWFsIHRpbWUgaW5mb3JtYXRpb24nLFxuICBmcjogJ0luZm9ybWF0aW9ucyBlbiB0ZW1wcyByw6llbCcsXG4gIGl0OiAnSW5mb3JtYXppb25pIGluIHRlbXBvIHJlYWxlJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhbnNmZXJQcm9jZWR1cmU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnbWFsIHVtc3RlaWdlbicsXG4gIGVuOiAnY2hhbmdlJyxcbiAgZnI6ICdjaGFuZ2VtZW50IGRlIHRyYWluJyxcbiAgaXQ6ICdjYW1iaW8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5UcmFuc2ZlclByb2NlZHVyZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnbWFsIHVtc3RlaWdlbicsXG4gIGVuOiAnY2hhbmdlcycsXG4gIGZyOiAnY2hhbmdlbWVudHMgZGUgdHJhaW4nLFxuICBpdDogJ2NhbWJpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuTmV3OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ25ldScsXG4gIGVuOiAnbmV3JyxcbiAgZnI6ICdub3V2ZWF1JyxcbiAgaXQ6ICdudW92bycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkZyb21QbGF0Zm9ybTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdBdWYnLFxuICBlbjogJ29uJyxcbiAgZnI6ICdzdXInLFxuICBpdDogJ3N1Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuU3VwZXJzYXZlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTcGFyYmlsbGV0dGUnLFxuICBlbjogJ1N1cGVyc2F2ZXIgdGlja2V0cycsXG4gIGZyOiAnQmlsbGV0cyBkw6lncmlmZsOpcycsXG4gIGl0OiAnQmlnbGlldHRpIHJpc3Bhcm1pbycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bk9jY3VwYW5jeTogUmVjb3JkPFNiYk9jY3VwYW5jeSwgUmVjb3JkPFNiYkxhbmd1YWdlLCBzdHJpbmc+PiA9IHtcbiAgbm9uZToge1xuICAgIGRlOiAnS2VpbmUgQmVsZWd1bmdzcHJvZ25vc2UgdmVyZsO8Z2JhcicsXG4gICAgZW46ICdObyBvY2N1cGFuY3kgZm9yZWNhc3QgYXZhaWxhYmxlJyxcbiAgICBmcjogXCJBdWN1bmUgcHLDqXZpc2lvbiBkJ29jY3VwYXRpb24gZGlzcG9uaWJsZVwiLFxuICAgIGl0OiAnTmVzc3VuYSBwcmV2aXNpb25lIGRpIG9jY3VwYXppb25lIGRpc3BvbmliaWxlJyxcbiAgfSxcbiAgbG93OiB7XG4gICAgZGU6ICdUaWVmZSBiaXMgbWl0dGxlcmUgQmVsZWd1bmcgZXJ3YXJ0ZXQnLFxuICAgIGVuOiAnTG93IHRvIGF2ZXJhZ2Ugb2NjdXBhbmN5IGV4cGVjdGVkJyxcbiAgICBmcjogJ1RhdXggZOKAmW9jY3VwYXRpb24gZmFpYmxlIMOgIG1veWVuIHByw6l2dScsXG4gICAgaXQ6ICfDiCBwcmV2aXN0YSB1buKAmW9jY3VwYXppb25lIG1lZGlvLWJhc3NhJyxcbiAgfSxcbiAgbWVkaXVtOiB7XG4gICAgZGU6ICdIb2hlIEJlbGVndW5nIGVyd2FydGV0JyxcbiAgICBlbjogJ0hpZ2ggb2NjdXBhbmN5IGV4cGVjdGVkJyxcbiAgICBmcjogJ1RhdXggZOKAmW9jY3VwYXRpb24gw6lsZXbDqSBwcsOpdnUnLFxuICAgIGl0OiAnw4ggcHJldmlzdGEgdW7igJlvY2N1cGF6aW9uZSBlbGV2YXRhJyxcbiAgfSxcbiAgaGlnaDoge1xuICAgIGRlOiAnU2VociBob2hlIEJlbGVndW5nIGVyd2FydGV0JyxcbiAgICBlbjogJ1ZlcnkgaGlnaCBvY2N1cGFuY3kgZXhwZWN0ZWQnLFxuICAgIGZyOiAnVGF1eCBk4oCZb2NjdXBhdGlvbiB0csOocyDDqWxldsOpIHByw6l2dScsXG4gICAgaXQ6ICfDiCBwcmV2aXN0YSB1buKAmW9jY3VwYXppb25lIG1vbHRvIGVsZXZhdGEnLFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5NZWFuc09mVHJhbnNwb3J0OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHtcbiAgZnVuaWN1bGFyOiB7XG4gICAgZGU6ICdTZWlsYmFobi9aYWhucmFkYmFobicsXG4gICAgZW46ICdGdW5pY3VsYXIvQ29nIHJhaWx3YXknLFxuICAgIGZyOiAnRnVuaWN1bGFpcmUvQ2hlbWluIGRlIGZlciDDoCBjcsOpbWFpbGzDqHJlJyxcbiAgICBpdDogJ0Z1bml2aWEvRmVycm92aWEgYSBjcmVtYWdsaWVyYScsXG4gIH0sXG4gIGVjX2lkOiB7XG4gICAgZGU6ICdFQy9JQycsXG4gICAgZW46ICdFQy9JQycsXG4gICAgZnI6ICdFQy9JQycsXG4gICAgaXQ6ICdFQy9JQycsXG4gIH0sXG4gIGJ1czoge1xuICAgIGRlOiAnQnVzJyxcbiAgICBlbjogJ0J1cycsXG4gICAgZnI6ICdCdXMnLFxuICAgIGl0OiAnQnVzJyxcbiAgfSxcbiAgcmU6IHtcbiAgICBkZTogJ1JFJyxcbiAgICBlbjogJ1JFJyxcbiAgICBmcjogJ1JFJyxcbiAgICBpdDogJ1JFJyxcbiAgfSxcbiAgYXJ6X2V4dDoge1xuICAgIGRlOiAnQVJaL0VYVCcsXG4gICAgZW46ICdBUlovRVhUJyxcbiAgICBmcjogJ0FSWi9FWFQnLFxuICAgIGl0OiAnQVJaL0VYVCcsXG4gIH0sXG4gIGljZV90Z3Zfcmp4OiB7XG4gICAgZGU6ICdJQ0UvVEdWL1JKWCcsXG4gICAgZW46ICdJQ0UvVEdWL1JKWCcsXG4gICAgZnI6ICdJQ0UvVEdWL1JKWCcsXG4gICAgaXQ6ICdJQ0UvVEdWL1JKWCcsXG4gIH0sXG4gIGlyX3BlOiB7XG4gICAgZGU6ICdJUi9QRScsXG4gICAgZW46ICdJUi9QRScsXG4gICAgZnI6ICdJUi9QRScsXG4gICAgaXQ6ICdJUi9QRScsXG4gIH0sXG4gIHNfc25fcjoge1xuICAgIGRlOiAnUy9TTi9SJyxcbiAgICBlbjogJ1MvU04vUicsXG4gICAgZnI6ICdTL1NOL1InLFxuICAgIGl0OiAnUy9TTi9SJyxcbiAgfSxcbiAgdHJhbXdheToge1xuICAgIGRlOiAnVHJhbS9NZXRybycsXG4gICAgZW46ICdUcmFtd2F5L1VuZGVyZ3JvdW5kJyxcbiAgICBmcjogJ1RyYW0vTcOpdHJvJyxcbiAgICBpdDogJ1RyYW0vTWV0cm8nLFxuICB9LFxuICBzaGlwOiB7XG4gICAgZGU6ICdTY2hpZmYnLFxuICAgIGVuOiAnU2hpcCcsXG4gICAgZnI6ICdCYXRlYXUnLFxuICAgIGl0OiAnQmF0dGVsbG8nLFxuICB9LFxuICB0cmFpbjoge1xuICAgIGRlOiAnWnVnJyxcbiAgICBlbjogJ1RyYWluJyxcbiAgICBmcjogJ1RyYWluJyxcbiAgICBpdDogJ1RyZW5vJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuT3B0aW9uYWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnKG9wdGlvbmFsKScsXG4gIGVuOiAnKG9wdGlvbmFsKScsXG4gIGZyOiAnKGZhY3VsdGF0aWYpJyxcbiAgaXQ6ICcoZmFjb2x0YXRpdm8pJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVGFyZ2V0T3BlbnNJbk5ld1dpbmRvdzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdMaW5remllbCDDtmZmbmV0IGluIG5ldWVtIEZlbnN0ZXIuJyxcbiAgZW46ICdMaW5rIHRhcmdldCBvcGVucyBpbiBhIG5ldyB3aW5kb3cuJyxcbiAgZnI6IFwiTGUgbGllbiBzJ291dnJlIGRhbnMgdW5lIG5vdXZlbGxlIGZlbsOqdHJlLlwiLFxuICBpdDogJ0lsIGxpbmsgc2kgYXByZSBpbiB1bmEgbnVvdmEgZmluZXN0cmEuJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuV2Fsa2luZ0Rpc3RhbmNlQXJyaXZhbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdNaW51dGVuIEZ1c3N3ZWcgbmFjaCBBbmt1bmZ0OicsXG4gIGVuOiAnbWludXRlcyBvZiB3YWxraW5nIHRpbWUgYWZ0ZXIgYXJyaXZhbDonLFxuICBmcjogJ21pbnV0ZXMgZGUgdHJhamV0IMOgIHBpZWQgYXByw6hzIGzigJlhcnJpdsOpZTonLFxuICBpdDogJ21pbnV0aSBhIHBpZWRpIGFsbOKAmWFycml2bzonLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5XYWxraW5nRGlzdGFuY2VEZXBhcnR1cmU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTWludXRlbiBGdXNzd2VnIHZvciBBYmZhaHJ0OicsXG4gIGVuOiAnbWludXRlcyBvZiB3YWxraW5nIHRpbWUgYmVmb3JlIGRlcGFydHVyZTonLFxuICBmcjogJ21pbnV0ZXMgZGUgdHJhamV0IMOgIHBpZWQgYXZhbnQgbGUgZMOpcGFydDonLFxuICBpdDogJ21pbnV0aSBhIHBpZWRpIHByaW1hIGRlbGxhIHBhcnRlbnphOicsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNsb3NlQWxlcnQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTWVsZHVuZyBzY2hsaWVzc2VuJyxcbiAgZW46ICdDbG9zZSBtZXNzYWdlJyxcbiAgZnI6ICdGZXJtZXIgbGUgbWVzc2FnZScsXG4gIGl0OiAnQ2hpdWRlcmUgaWwgbWVzc2FnZ2lvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xvc2VOb3RpZmljYXRpb246IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTmFjaHJpY2h0IHNjaGxpZXNzZW4nLFxuICBlbjogJ0Nsb3NlIG1lc3NhZ2UnLFxuICBmcjogJ0Zlcm1lciBsZSBtZXNzYWdlJyxcbiAgaXQ6ICdDaGl1ZGVyZSBpbCBtZXNzYWdnaW8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EaWFsb2c6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRGlhbG9nJyxcbiAgZW46ICdEaWFsb2cnLFxuICBmcjogJ0RpYWxvZ3VlJyxcbiAgaXQ6ICdEaWFsb2dvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xvc2VEaWFsb2c6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnw5xiZXJnZWxhZ2VydGVzIEZlbnN0ZXIgc2NobGllc3NlbicsXG4gIGVuOiAnQ2xvc2Ugc2Vjb25kYXJ5IHdpbmRvdycsXG4gIGZyOiAnRmVybWVyIGxhIGZlbsOqdHJlIHN1cGVycG9zw6llJyxcbiAgaXQ6ICdDaGl1ZGVyZSBsYSBmaW5lc3RyYSBzb3ZyYXBwb3N0YScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNsb3NlTmF2aWdhdGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdOYXZpZ2F0aW9uIHNjaGxpZXNzZW4nLFxuICBlbjogJ0Nsb3NlIG5hdmlnYXRpb24nLFxuICBmcjogJ0Zlcm1lciBsYSBuYXZpZ2F0aW9uJyxcbiAgaXQ6ICdDaGl1ZGVyZSBsYSBuYXZpZ2F6aW9uZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNsb3NlU2lkZWJhcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTZWl0ZW5sZWlzdGUgc2NobGllc3NlbicsXG4gIGVuOiAnQ2xvc2Ugc2lkZWJhcicsXG4gIGZyOiAnRmVybWVyIGxhIGJhcnJlIGxhdMOpcmFsZScsXG4gIGl0OiAnQ2hpdWRlcmUgbGEgYmFycmEgbGF0ZXJhbGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5DbG9zZVBvcG92ZXI6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnSGlud2VpcyBzY2hsaWVzc2VuJyxcbiAgZW46ICdDbG9zZSBub3RlJyxcbiAgZnI6ICdGZXJtZXIgbGEgbm90ZScsXG4gIGl0OiAnQ2hpdWRlcmUgbGEgbm90YScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkdvQmFjazogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdadXLDvGNrJyxcbiAgZW46ICdHbyBiYWNrJyxcbiAgZnI6ICdSZXRvdXJuZXInLFxuICBpdDogJ0luZGlldHJvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVG9kYXk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnSGV1dGUnLFxuICBlbjogJ1RvZGF5JyxcbiAgZnI6ICdBdWpvdXJk4oCZaHVpJyxcbiAgaXQ6ICdPZ2dpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuTmV4dE1vbnRoOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1bSBuw6RjaHN0ZW4gTW9uYXQgd2VjaHNlbG4nLFxuICBlbjogJ0NoYW5nZSB0byB0aGUgbmV4dCBtb250aCcsXG4gIGZyOiAnUGFzc2VyIGF1IG1vaXMgc3VpdmFudCcsXG4gIGl0OiAnUGFzc2FyZSBhbCBtZXNlIHN1Y2Nlc3Npdm8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5QcmV2aW91c01vbnRoOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1bSBsZXR6dGVuIE1vbmF0IHdlY2hzZWxuJyxcbiAgZW46ICdDaGFuZ2UgdG8gdGhlIHByZXZpb3VzIG1vbnRoJyxcbiAgZnI6ICdQYXNzZXIgYXUgbW9pcyBwcsOpY8OpZGVudCcsXG4gIGl0OiAnUGFzc2FyZSBhbCBtZXNlIHByZWNlZGVudGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5OZXh0RGF5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ07DpGNoc3RlciBUYWcnLFxuICBlbjogJ05leHQgZGF5JyxcbiAgZnI6ICdMZSBwcm9jaGFpbiBqb3VyJyxcbiAgaXQ6ICdHaW9ybm8gc3VjY2Vzc2l2bycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blByZXZpb3VzRGF5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1ZvcmhlcmlnZXIgVGFnJyxcbiAgZW46ICdQcmV2aW91cyBkYXknLFxuICBmcjogJ0pvdXIgcHLDqWPDqWRlbnQnLFxuICBpdDogJ0dpb3JubyBwcmVjZWRlbnRlJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuWWVhck1vbnRoU2VsZWN0aW9uOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0phaHIgdW5kIE1vbmF0IGF1c3fDpGhsZW4nLFxuICBlbjogJ0Nob29zZSB5ZWFyIGFuZCBtb250aCcsXG4gIGZyOiAnQ2hvaXNpciBs4oCZYW5uw6llIGV0IGxlIG1vaXMnLFxuICBpdDogJ1NlbGV6aW9uaSBhbm5vIGUgbWVzZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNhbGVuZGFyRGF0ZVNlbGVjdGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdEYXR1bSBhdXN3w6RobGVuJyxcbiAgZW46ICdDaG9vc2UgZGF0ZScsXG4gIGZyOiAnQ2hvaXNpciB1bmUgZGF0ZScsXG4gIGl0OiAnU2VsZXppb25pIHVuYSBkYXRhJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuTmV4dFllYXJSYW5nZSA9ICh5ZWFyUmFuZ2U6IG51bWJlcik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGBXZWNoc2VsIHp1IGRlbiBuw6RjaHN0ZW4gJHt5ZWFyUmFuZ2V9IEphaHJlbmAsXG4gIGVuOiBgQ2hhbmdlIHRvIHRoZSBuZXh0ICR7eWVhclJhbmdlfSB5ZWFyc2AsXG4gIGZyOiBgUGFzc2VyIGF1eCAke3llYXJSYW5nZX0gcHJvY2hhaW5lcyBhbm7DqWVzYCxcbiAgaXQ6IGBQYXNzYXJlIGFpIHN1Y2Nlc3NpdmkgJHt5ZWFyUmFuZ2V9IGFubmlgLFxufSk7XG5cbmV4cG9ydCBjb25zdCBpMThuUHJldmlvdXNZZWFyUmFuZ2UgPSAoeWVhclJhbmdlOiBudW1iZXIpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+ICh7XG4gIGRlOiBgV2VjaHNlbCB6dSBkZW4gdm9yaGVyaWdlbiAke3llYXJSYW5nZX0gSmFocmVuYCxcbiAgZW46IGBDaGFuZ2UgdG8gdGhlIHByZXZpb3VzICR7eWVhclJhbmdlfSB5ZWFyc2AsXG4gIGZyOiBgUGFzc2FnZSBhdXggJHt5ZWFyUmFuZ2V9IHByw6ljw6lkZW50ZXMgYW5uw6llc2AsXG4gIGl0OiBgUGFzc2FyZSBhaSBwcmVjZWRlbnRpICR7eWVhclJhbmdlfSBhbm5pYCxcbn0pO1xuXG5leHBvcnQgY29uc3QgaTE4bk5leHRZZWFyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1bSBuw6RjaHN0ZW4gSmFociB3ZWNoc2VsbicsXG4gIGVuOiAnQ2hhbmdlIHRvIHRoZSBuZXh0IHllYXInLFxuICBmcjogXCJQYXNzZXIgw6AgbCdhbm7DqWUgc3VpdmFudGVcIixcbiAgaXQ6IFwiUGFzc2FyZSBhbGwnYW5ubyBzdWNjZXNzaXZvXCIsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blByZXZpb3VzWWVhcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdadW0gbGV0enRlbiBKYWhyIHdlY2hzZWxuJyxcbiAgZW46ICdDaGFuZ2UgdG8gdGhlIHByZXZpb3VzIHllYXInLFxuICBmcjogXCJQYXNzZXIgw6AgbCdhbm7DqWUgcHLDqWPDqWRlbnRcIixcbiAgaXQ6IFwiUGFzc2FyZSBhbGwnYW5ubyBwcmVjZWRlbnRlXCIsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNlbGVjdE5leHREYXkgPSAoY3VycmVudERhdGU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGBadW0gbsOkY2hzdGVuIFRhZyB3ZWNoc2VsbiwgZGVyemVpdCBhdXNnZXfDpGhsdCAke2N1cnJlbnREYXRlfS5gLFxuICBlbjogYENoYW5nZSB0byB0aGUgbmV4dCBkYXksIGN1cnJlbnRseSBzZWxlY3RlZCAke2N1cnJlbnREYXRlfS5gLFxuICBmcjogYFBhc3NlciBhdSBqb3VyIHN1aXZhbnQsIGFjdHVlbGxlbWVudCBzw6lsZWN0aW9ubsOpICR7Y3VycmVudERhdGV9LmAsXG4gIGl0OiBgUGFzc2FyZSBhbCBnaW9ybm8gc3VjY2Vzc2l2bywgYXR0dWFsbWVudGUgc2VsZXppb25hdG8gJHtjdXJyZW50RGF0ZX0uYCxcbn0pO1xuXG5leHBvcnQgY29uc3QgaTE4blNlbGVjdFByZXZpb3VzRGF5ID0gKGN1cnJlbnREYXRlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+ICh7XG4gIGRlOiBgWnVtIHZvcmhlcmlnZW4gVGFnIHdlY2hzZWxuLCBkZXJ6ZWl0IGF1c2dld8OkaGx0ICR7Y3VycmVudERhdGV9LmAsXG4gIGVuOiBgQ2hhbmdlIHRvIHRoZSBwcmV2aW91cyBkYXksIGN1cnJlbnRseSBzZWxlY3RlZCAke2N1cnJlbnREYXRlfS5gLFxuICBmcjogYFBhc3NlciBhdSBqb3VyIHByw6ljw6lkZW50LCBhY3R1ZWxsZW1lbnQgc8OpbGVjdGlvbm7DqSAke2N1cnJlbnREYXRlfS5gLFxuICBpdDogYFBhc3NhcmUgYWwgZ2lvcm5vIHByZWNlZGVudGUsIGF0dHVhbG1lbnRlIHNlbGV6aW9uYXRvICR7Y3VycmVudERhdGV9LmAsXG59KTtcblxuZXhwb3J0IGNvbnN0IGkxOG5TaG93Q2FsZW5kYXI6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnS2FsZW5kZXIgYW56ZWlnZW4nLFxuICBlbjogJ1Nob3cgY2FsZW5kYXInLFxuICBmcjogJ0FmZmljaGVyIGxlIGNhbGVuZHJpZXInLFxuICBpdDogJ1Zpc3VhbGl6emEgaWwgY2FsZW5kYXJpbycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkRhdGVQaWNrZXJQbGFjZWhvbGRlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdUVC5NTS5KSkpKJyxcbiAgZW46ICdERC5NTS5ZWVlZJyxcbiAgZnI6ICdKSi5NTS5BQUFBJyxcbiAgaXQ6ICdHRy5NTS5BQUFBJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRGF0ZUNoYW5nZWRUbzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdEYXR1bSBnZcOkbmRlcnQgYXVmJyxcbiAgZW46ICdEYXRlIGNoYW5nZWQgdG8nLFxuICBmcjogJ0RhdGUgbW9kaWZpw6llIGF1JyxcbiAgaXQ6ICdEYXRhIG1vZGlmaWNhdGEgaW4nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5Db25uZWN0aW9uRnJvbTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdWZXJiaW5kdW5nIHZvbicsXG4gIGVuOiAnQ29ubmVjdGlvbiBmcm9tJyxcbiAgZnI6ICdMaWFpc29uIGRlJyxcbiAgaXQ6ICdDb2xsZWdhbWVudG8gZGEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5Db25uZWN0aW9uVG86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnbmFjaCcsXG4gIGVuOiAndG8nLFxuICBmcjogJ8OgJyxcbiAgaXQ6ICdhJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ29ubmVjdGlvblJvdW5kdHJpcCA9IChyZXR1cm5DaXR5OiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+ICh7XG4gIGRlOiBgdW5kIHp1csO8Y2sgbmFjaCAke3JldHVybkNpdHl9LmAsXG4gIGVuOiBgYW5kIGJhY2sgdG8gJHtyZXR1cm5DaXR5fS5gLFxuICBmcjogYGV0IHJldG91ciDDoCAke3JldHVybkNpdHl9LmAsXG4gIGl0OiBgZSByaXRvcm5vIGEgJHtyZXR1cm5DaXR5fS5gLFxufSk7XG5cbmV4cG9ydCBjb25zdCBpMThuRXhwYW5kZWQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnZXJ3ZWl0ZXJ0JyxcbiAgZW46ICdleHBhbmRlZCcsXG4gIGZyOiAnZXN0IHRpcsOpJyxcbiAgaXQ6ICdlc3BhbnNvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ29sbGFwc2VkOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ3JlZHV6aWVydCcsXG4gIGVuOiAnY29sbGFwc2VkJyxcbiAgZnI6ICdjb25kZW5zw6knLFxuICBpdDogJ2NvbXByZXNzbycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bk1hcENvbnRhaW5lckJ1dHRvbkxhYmVsOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0thcnRlIHplaWdlbicsXG4gIGVuOiAnU2hvdyBtYXAnLFxuICBmcjogJ0FmZmljaGVyIGxhIGNhcnRlJyxcbiAgaXQ6ICdNb3N0cmEgbGEgbWFwcGEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5CcmVhZGNydW1iRWxsaXBzaXNCdXR0b25MYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdNZWhyIEJyZWFkY3J1bWJzIGFuemVpZ2VuJyxcbiAgZW46ICdTaG93IG1vcmUgYnJlYWRjcnVtYnMnLFxuICBmcjogJ0FmZmljaGVyIHBsdXMgYnJlYWRjcnVtYnMnLFxuICBpdDogJ01vc3RyYSBwacO5IGJyZWFkY3J1bWJzJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xlYXJJbnB1dDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdGZWxkaW5oYWx0IGzDtnNjaGVuJyxcbiAgZW46ICdDbGVhciBpbnB1dCB2YWx1ZScsXG4gIGZyOiAnRWZmYWNlciBsYSB2YWxldXIgZOKAmWVudHLDqWUnLFxuICBpdDogJ0NhbmNlbGxhIGlsIHZhbG9yZSBkZWxs4oCZaW5wdXQnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5GbGlwQ2FyZDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdLbGlja2VuIFNpZSBhdWYgZGllc2UgS2FydGUgZsO8ciBEZXRhaWxzJyxcbiAgZW46ICdDbGljayBvbiB0aGlzIGNhcmQgZm9yIGRldGFpbHMnLFxuICBmcjogJ0NsaXF1ZXogc3VyIGNldHRlIGNhcnRlIHBvdXIgcGx1cyBkZSBkw6l0YWlscycsXG4gIGl0OiAnQ2xpY2NoaSBzdSBxdWVzdGEgc2NoZWRhIHBlciBpIGRldHRhZ2xpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuUmV2ZXJzZUNhcmQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnS2xpY2tlbiBTaWUgYXVmIGRpZXNlIEthcnRlLCB1bSB6dXLDvGNrIHp1ciBadXNhbW1lbmZhc3N1bmcgenUgZ2VsYW5nZW4nLFxuICBlbjogJ0NsaWNrIG9uIHRoaXMgY2FyZCB0byBnbyBiYWNrIHRvIHRoZSBzdW1tYXJ5JyxcbiAgZnI6ICdDbGlxdWV6IHN1ciBjZXR0ZSBjYXJ0ZSBwb3VyIHJldmVuaXIgYXUgcsOpc3Vtw6knLFxuICBpdDogJ0NsaWNjaGkgc3UgcXVlc3RhIHNjaGVkYSBwZXIgdG9ybmFyZSBhbCBzb21tYXJpbycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkZpbGVTZWxlY3RvckJ1dHRvbkxhYmVsOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0RhdGVpIGF1c3fDpGhsZW4nLFxuICBlbjogJ0Nob29zZSBhIGZpbGUnLFxuICBmcjogJ0Nob2lzaXNzZXogdW4gZmljaGllcicsXG4gIGl0OiAnU2NlbGdhIHVuIGZpbGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5GaWxlU2VsZWN0b3JTdWJ0aXRsZUxhYmVsOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1ppZWhlbiBTaWUgSWhyZSBEYXRlaWVuIGhpZXIgaGluIChEcmFnICYgRHJvcCknLFxuICBlbjogJ0RyYWcgJiBEcm9wIHlvdXIgZmlsZXMgaGVyZScsXG4gIGZyOiAnRmFpdGVzIGdsaXNzZXIgZXQgZMOpcG9zZXogdm9zIGZpY2hpZXJzIGljaScsXG4gIGl0OiAnVHJhc2NpbmkgZSByaWxhc2NpIGkgc3VvaSBmaWxlIHF1aScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkZpbGVTZWxlY3RvckRlbGV0ZUZpbGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRGF0ZWkgZW50ZmVybmVuJyxcbiAgZW46ICdSZW1vdmUgZmlsZScsXG4gIGZyOiAnRWZmYWNlciBsZSBmaWNoaWVyJyxcbiAgaXQ6ICdSaW11b3ZhIGlsIGZpbGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5GaWxlU2VsZWN0b3JDdXJyZW50bHlTZWxlY3RlZCA9IChmaWxlc05hbWU6IHN0cmluZ1tdKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9PiB7XG4gIGlmIChmaWxlc05hbWUgJiYgZmlsZXNOYW1lLmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGU6IGBBa3R1ZWxsIGF1c2dld8OkaGx0ZSBEYXRlaTogJHtmaWxlc05hbWUuam9pbignLCAnKX0uYCxcbiAgICAgIGVuOiBgQ3VycmVudGx5IHNlbGVjdGVkIGZpbGVzOiAke2ZpbGVzTmFtZS5qb2luKCcsICcpfS5gLFxuICAgICAgZnI6IGBGaWNoaWVyIGFjdHVlbGxlbWVudCBzw6lsZWN0aW9ubsOpOiAke2ZpbGVzTmFtZS5qb2luKCcsICcpfS5gLFxuICAgICAgaXQ6IGBGaWxlIGF0dHVhbG1lbnRlIHNlbGV6aW9uYXRvOiAke2ZpbGVzTmFtZS5qb2luKCcsICcpfS5gLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBkZTogJ0tlaW5lIERhdGVpIGF1c2dld8OkaGx0LicsXG4gICAgZW46ICdObyBmaWxlcyBzZWxlY3RlZC4nLFxuICAgIGZyOiAnTmVzc3VuIGZpY2hpZXIgc8OpbGVjdGlvbm7DqS4nLFxuICAgIGl0OiAnTmVzc3VuIGZpbGUgc2VsZXppb25hdG8uJyxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuTmV4dFBhZ2U6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTsOkY2hzdGUgU2VpdGUnLFxuICBlbjogJ05leHQgcGFnZScsXG4gIGZyOiAnUHJvY2hhaW5lIHBhZ2UnLFxuICBpdDogJ1BhZ2luYSBzdWNjZXNzaXZhJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuUHJldmlvdXNQYWdlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1ZvcmhlcmlnZSBTZWl0ZScsXG4gIGVuOiAnUHJldmlvdXMgcGFnZScsXG4gIGZyOiAnUGFnZSBwcsOpY8OpZGVudGUnLFxuICBpdDogJ1BhZ2luYSBwcmVjZWRlbnRlJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuUGFnZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTZWl0ZScsXG4gIGVuOiAnUGFnZScsXG4gIGZyOiAnUGFnZScsXG4gIGl0OiAnUGFnaW5hJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuSXRlbXNQZXJQYWdlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0VpbnRyw6RnZSBwcm8gU2VpdGUnLFxuICBlbjogJ0l0ZW1zIHBlciBwYWdlJyxcbiAgZnI6ICdFbnRyw6llcyBwYXIgcGFnZScsXG4gIGl0OiAnRWxlbWVudGkgcGVyIHBhZ2luYScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNlbGVjdGVkUGFnZSA9IChwYWdlTnVtYmVyOiBudW1iZXIpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+ICh7XG4gIGRlOiBgU2VpdGUgJHtwYWdlTnVtYmVyfSBhdXNnZXfDpGhsdC5gLFxuICBlbjogYFBhZ2UgJHtwYWdlTnVtYmVyfSBzZWxlY3RlZC5gLFxuICBmcjogYFBhZ2UgJHtwYWdlTnVtYmVyfSBzw6lsZWN0aW9ubsOpZS5gLFxuICBpdDogYFBhZ2luYSAke3BhZ2VOdW1iZXJ9IHNlbGV6aW9uYXRhLmAsXG59KTtcblxuZXhwb3J0IGNvbnN0IGkxOG5DaGVja2JveFJlcXVpcmVkOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ011c3MgZ2VzZXR6dCBzZWluLicsXG4gIGVuOiAnTXVzdCBiZSBjaGVja2VkLicsXG4gIGZyOiAnRG9pdCDDqnRyZSBkw6lmaW5pLicsXG4gIGl0OiAnRGV2ZSBlc3NlcmUgaW1wb3N0YXRvLicsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNlbGVjdGlvblJlcXVpcmVkOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0F1c3dhaGwgZXJmb3JkZXJsaWNoLicsXG4gIGVuOiAnU2VsZWN0aW9uIHJlcXVpcmVkLicsXG4gIGZyOiAnU8OpbGVjdGlvbiByZXF1aXNlLicsXG4gIGl0OiAnU2VsZXppb25lIG5lY2Vzc2FyaWEuJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuSW5wdXRSZXF1aXJlZDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdFaW5nYWJlIGVyZm9yZGVybGljaC4nLFxuICBlbjogJ0lucHV0IHJlcXVpcmVkLicsXG4gIGZyOiAnRW50csOpZSBvYmxpZ2F0b2lyZS4nLFxuICBpdDogJ0luc2VyaW1lbnRvIG5lY2Vzc2FyaW8uJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRGF0ZUludmFsaWQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnQml0dGUgZ8O8bHRpZ2VzIERhdHVtIGVpbmdlYmVuLicsXG4gIGVuOiAnUGxlYXNlIHByb3ZpZGUgYSB2YWxpZCBkYXRlLicsXG4gIGZyOiAnVmV1aWxsZXogc2Fpc2lyIHVuZSBkYXRlIHZhbGlkZS4nLFxuICBpdDogJ0luc2VyaXJlIHVuYSBkYXRhIHZhbGlkYS4nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EYXRlTWluID0gKG1pbjogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9PiAoe1xuICBkZTogYERhdHVtIGRhcmYgbmljaHQgdm9yICR7bWlufSBzZWluLmAsXG4gIGVuOiBgRGF0ZSBtdXN0IG5vdCBiZSBiZWZvcmUgJHttaW59LmAsXG4gIGZyOiBgTGEgZGF0ZSBuZSBkb2l0IHBhcyDDqnRyZSBhbnTDqXJpZXVyZSBhdSAke21pbn0uYCxcbiAgaXQ6IGBMYSBkYXRhIG5vbiBkZXZlIGVzc2VyZSBhbnRlcmlvcmUgYWwgJHttaW59LmAsXG59KTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EYXRlTWF4ID0gKG1heDogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9PiAoe1xuICBkZTogYERhdHVtIGRhcmYgbmljaHQgbmFjaCAke21heH0gc2Vpbi5gLFxuICBlbjogYERhdGUgbXVzdCBub3QgYmUgYWZ0ZXIgJHttYXh9LmAsXG4gIGZyOiBgTGEgZGF0ZSBuZSBkb2l0IHBhcyDDqnRyZSBwb3N0w6lyaWV1cmUgYXUgJHttYXh9LmAsXG4gIGl0OiBgTGEgZGF0YSBub24gZGV2ZSBlc3NlcmUgc3VjY2Vzc2l2YSBhbCAke21heH0uYCxcbn0pO1xuXG5leHBvcnQgY29uc3QgaTE4blRpbWVJbnB1dENoYW5nZSA9ICh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9PiAoe1xuICBkZTogYFplaXQgZ2XDpG5kZXJ0IHp1ICR7dmFsdWV9LmAsXG4gIGVuOiBgVGltZSBjaGFuZ2VkIHRvICR7dmFsdWV9LmAsXG4gIGZyOiBgSGV1cmUgbW9kaWZpw6llOiAke3ZhbHVlfS5gLFxuICBpdDogYE9yYXJpbyBtb2RpZmljYXRhIGFsbGUgJHt2YWx1ZX0uYCxcbn0pO1xuXG5leHBvcnQgY29uc3QgaTE4blRpbWVJbnZhbGlkOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0JpdHRlIGfDvGx0aWdlIFplaXQgZWluZ2ViZW4uJyxcbiAgZW46ICdQbGVhc2UgcHJvdmlkZSBhIHZhbGlkIHRpbWUuJyxcbiAgZnI6ICdWZXVpbGxleiBzYWlzaXIgdW5lIGhldXJlIHZhbGlkZS4nLFxuICBpdDogJ0luc2VyaXNjYSB1biBvcmFyaW8gdmFsaWRvLicsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blRpbWVNYXg6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiBgWmVpdCBkYXJmIG5pY2h0IG5hY2ggMjM6NTkgc2Vpbi5gLFxuICBlbjogYFRpbWUgbXVzdCBub3QgYmUgYWZ0ZXIgMjM6NTkuYCxcbiAgZnI6IGBM4oCZaGV1cmUgbmUgZG9pdCBwYXMgw6p0cmUgcG9zdMOpcmlldXJlIMOgIDIzaDU5LmAsXG4gIGl0OiBgTOKAmW9yYXJpbyBub24gcHXDsiBlc3NlcmUgc3VjY2Vzc2l2byBhbGxlIDIzLjU5LmAsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blRpbWVNYXhMZW5ndGg6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiBgRGllIFplaXRlaW5nYWJlIGRhcmYgbmljaHQgbWVociBhbHMgZsO8bmYgWmVpY2hlbiBoYWJlbi5gLFxuICBlbjogYFRoZSB0aW1lIGlucHV0IG11c3Qgbm90IGV4Y2VlZCBmaXZlIGNoYXJhY3RlcnMuYCxcbiAgZnI6IGBMYSBzYWlzaWUgZGUgbOKAmWhldXJlIG5lIGRvaXQgcGFzIGNvbXBvcnRlciBwbHVzIGRlIGNpbnEgY2FyYWN0w6hyZXMuYCxcbiAgaXQ6IGBM4oCZaW5kaWNhemlvbmUgdGVtcG9yYWxlIG5vbiBwdcOyIGNvbnRlbmVyZSBwacO5IGRpIGNpbnF1ZSBjYXJhdHRlcmkuYCxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2hpcERlbGV0ZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdEcsO8Y2tlbiBTaWUgZGllIEVudGZlcm5lbi1UYXN0ZSB1bSBkZW4gQ2hpcCB6dSBsw7ZzY2hlbicsXG4gIGVuOiAnUHJlc3MgdGhlIERlbGV0ZSBidXR0b24gdG8gcmVtb3ZlIHRoZSBjaGlwJyxcbiAgZnI6ICdBcHB1eWV6IHN1ciBsYSB0b3VjaGUgRGVsIHBvdXIgc3VwcHJpbWVyIGNldHRlIHB1Y2UnLFxuICBpdDogJ1ByZW1hIGlsIHRhc3RvIENhbmMgcGVyIHJpbXVvdmVyZSBxdWVzdGEgY2hpcCcsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNoaXBHcm91cElucHV0RGVzY3JpcHRpb246IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnQXVzZ2V3w6RobHRlIEVsZW1lbnRlOicsXG4gIGVuOiAnU2VsZWN0ZWQgZWxlbWVudHM6JyxcbiAgZnI6ICfDiWzDqW1lbnRzIHPDqWxlY3Rpb25uw6lzOicsXG4gIGl0OiAnRWxlbWVudGkgc2VsZXppb25hdGk6Jyxcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRU8sTUFBTSxnQkFBd0M7QUFBQSxFQUNuRCxJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJOztBQUdDLE1BQU0sY0FBc0M7QUFBQSxFQUNqRCxJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJOztBQUdDLE1BQU0sYUFBcUM7QUFBQSxFQUNoRCxJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJOztBQUdDLE1BQU0sa0JBQTBDO0FBQUEsRUFDckQsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTs7QUFHQyxNQUFNLFlBQW9EO0FBQUEsRUFDL0QsT0FBTztBQUFBLElBQ0wsSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLEVBQUE7QUFBQSxFQUVO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
@@ -49,4 +49,4 @@ const SbbAnimationCompleteMixin = (superClass) => {
49
49
  export {
50
50
  SbbAnimationCompleteMixin
51
51
  };
52
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uLWNvbXBsZXRlLW1peGluLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvYW5pbWF0aW9uLWNvbXBsZXRlLW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IuanMnO1xuXG5leHBvcnQgZGVjbGFyZSBhYnN0cmFjdCBjbGFzcyBTYmJBbmltYXRpb25Db21wbGV0ZU1peGluVHlwZSB7XG4gIHB1YmxpYyBpc0FuaW1hdGluZzogYm9vbGVhbjtcbiAgcHVibGljIGdldCBhbmltYXRpb25Db21wbGV0ZSgpOiBQcm9taXNlPHZvaWQ+IHwgbnVsbDtcbiAgcHJvdGVjdGVkIHN0YXJ0QW5pbWF0aW9uKCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBzdG9wQW5pbWF0aW9uKCk6IHZvaWQ7XG59XG5cbi8qKlxuICogRW5oYW5jZXMgdGhlIGNvbXBvbmVudCB3aXRoIGEgUHJvbWlzZSB3aGljaCByZXNvbHZlcyB3aGVuZXZlciBhbiBhbmltYXRpb24gZW5kcy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkFuaW1hdGlvbkNvbXBsZXRlTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJBbmltYXRpb25Db21wbGV0ZU1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiQW5pbWF0aW9uQ29tcGxldGVFbGVtZW50XG4gICAgZXh0ZW5kcyBzdXBlckNsYXNzXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkFuaW1hdGlvbkNvbXBsZXRlTWl4aW5UeXBlPlxuICB7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY29tcG9uZW50IGlzIGN1cnJlbnRseSBhbmltYXRpbmcuXG4gICAgICovXG4gICAgcHVibGljIGlzQW5pbWF0aW5nID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgcHJvbWlzZSB3aGljaCBjb21wbGV0ZXMgd2hlbmV2ZXIgYW4gYW5pbWF0aW9uIGVuZHMuXG4gICAgICogV2hlbiBhIG5ldyBhbmltYXRpb24gc3RhcnRzLCBhIG5ldyBQcm9taXNlIGlzIHJldHVybmVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgYW5pbWF0aW9uQ29tcGxldGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICByZXR1cm4gdGhpcy5fYW5pbWF0aW9uUHJvbWlzZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfYW5pbWF0aW9uUHJvbWlzZTogUHJvbWlzZTx2b2lkPiA9IFByb21pc2UucmVzb2x2ZSgpO1xuXG4gICAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgIHRoaXMuc3RvcEFuaW1hdGlvbigpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzdGFydEFuaW1hdGlvbigpOiB2b2lkIHtcbiAgICAgIGlmICghdGhpcy5pc0FuaW1hdGluZykge1xuICAgICAgICB0aGlzLl9hbmltYXRpb25Qcm9taXNlID0gdGhpcy5fZW5xdWV1ZUFuaW1hdGlvbigpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE92ZXJyaWRpbmcgc3RvcEFuaW1hdGlvbigpIGJyZWFrcyBmdW5jdGlvbmFsaXR5LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzdG9wQW5pbWF0aW9uKCk6IHZvaWQge31cblxuICAgIHByaXZhdGUgYXN5bmMgX2VucXVldWVBbmltYXRpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICB0aGlzLmlzQW5pbWF0aW5nID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHN0b3BBbmltYXRpb24gPSB0aGlzLnN0b3BBbmltYXRpb247XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBQcm9taXNlPHZvaWQ+KChyKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcEFuaW1hdGlvbiA9ICgpID0+IHtcbiAgICAgICAgICBzdG9wQW5pbWF0aW9uKCk7XG4gICAgICAgICAgdGhpcy5pc0FuaW1hdGluZyA9IGZhbHNlO1xuICAgICAgICAgIHIoKTtcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gRW5zdXJlIGFueSBwcmV2aW91cyB1cGRhdGUgaGFzIHJlc29sdmVkIGJlZm9yZSB1cGRhdGluZy5cbiAgICAgICAgYXdhaXQgdGhpcy5fYW5pbWF0aW9uUHJvbWlzZTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gUmVmaXJlIGFueSBwcmV2aW91cyBlcnJvcnMgYXN5bmMgc28gdGhleSBkbyBub3QgZGlzcnVwdCB0aGUgdXBkYXRlXG4gICAgICAgIC8vIGN5Y2xlLiBFcnJvcnMgYXJlIHJlLWZpcmVkIHNvIGRldmVsb3BlcnMgaGF2ZSBhIGNoYW5jZSB0byBvYnNlcnZlXG4gICAgICAgIC8vIHRoZW0sIGFuZCB0aGlzIGNhbiBiZSBkb25lIGJ5IGltcGxlbWVudGluZ1xuICAgICAgICAvLyBgd2luZG93Lm9udW5oYW5kbGVkcmVqZWN0aW9uYC5cbiAgICAgICAgUHJvbWlzZS5yZWplY3QoZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJBbmltYXRpb25Db21wbGV0ZUVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkFuaW1hdGlvbkNvbXBsZXRlTWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZU8sTUFBTSw0QkFBNEIsQ0FDdkMsZUFDMEQ7QUFBQSxFQUMxRCxNQUFlLG9DQUNMLFdBQVU7QUFBQSxJQURwQixjQUFBOztBQU9TLFdBQUEsY0FBYztBQVNiLFdBQUEsb0JBQW1DLFFBQVEsUUFBQTtBQUFBOzs7OztJQUhuRCxJQUFXLG9CQUFpQjtBQUMxQixhQUFPLEtBQUs7QUFBQSxJQUFBO0FBQUEsSUFJRSx1QkFBb0I7QUFDbEMsWUFBTSxxQkFBQTtBQUNOLFdBQUssY0FBQTtBQUFBLElBQWE7QUFBQSxJQUdWLGlCQUFjO0FBQ3RCLFVBQUksQ0FBQyxLQUFLLGFBQWE7QUFDckIsYUFBSyxvQkFBb0IsS0FBSyxrQkFBQTtBQUFBO0lBQ2hDO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFNUTs7SUFFRixNQUFNLG9CQUFpQjtBQUM3QixXQUFLLGNBQWM7QUFDbkIsWUFBTSxnQkFBZ0IsS0FBSztBQUUzQixZQUFNLFNBQVMsSUFBSSxRQUFjLENBQUMsTUFBSztBQUNyQyxhQUFLLGdCQUFnQixNQUFLO0FBQ3hCLHdCQUFBO0FBQ0EsZUFBSyxjQUFjO0FBQ25CLFlBQUE7QUFBQTtNQUNGLENBQ0Q7QUFDRCxVQUFJO0FBRUYsY0FBTSxLQUFLO0FBQUEsTUFBQSxTQUNKLEdBQUc7QUFLVixnQkFBUSxPQUFPLENBQUM7QUFBQSxNQUFBO0FBRWxCLGFBQU87QUFBQSxJQUFBO0FBQUEsRUFDVDtBQUdGLFNBQU87QUFFVDsifQ==
52
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uLWNvbXBsZXRlLW1peGluLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvYW5pbWF0aW9uLWNvbXBsZXRlLW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IuanMnO1xuXG5leHBvcnQgZGVjbGFyZSBhYnN0cmFjdCBjbGFzcyBTYmJBbmltYXRpb25Db21wbGV0ZU1peGluVHlwZSB7XG4gIHB1YmxpYyBpc0FuaW1hdGluZzogYm9vbGVhbjtcbiAgcHVibGljIGdldCBhbmltYXRpb25Db21wbGV0ZSgpOiBQcm9taXNlPHZvaWQ+IHwgbnVsbDtcbiAgcHJvdGVjdGVkIHN0YXJ0QW5pbWF0aW9uKCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBzdG9wQW5pbWF0aW9uKCk6IHZvaWQ7XG59XG5cbi8qKlxuICogRW5oYW5jZXMgdGhlIGNvbXBvbmVudCB3aXRoIGEgUHJvbWlzZSB3aGljaCByZXNvbHZlcyB3aGVuZXZlciBhbiBhbmltYXRpb24gZW5kcy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkFuaW1hdGlvbkNvbXBsZXRlTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJBbmltYXRpb25Db21wbGV0ZU1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiQW5pbWF0aW9uQ29tcGxldGVFbGVtZW50XG4gICAgZXh0ZW5kcyBzdXBlckNsYXNzXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkFuaW1hdGlvbkNvbXBsZXRlTWl4aW5UeXBlPlxuICB7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY29tcG9uZW50IGlzIGN1cnJlbnRseSBhbmltYXRpbmcuXG4gICAgICovXG4gICAgcHVibGljIGlzQW5pbWF0aW5nID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgcHJvbWlzZSB3aGljaCBjb21wbGV0ZXMgd2hlbmV2ZXIgYW4gYW5pbWF0aW9uIGVuZHMuXG4gICAgICogV2hlbiBhIG5ldyBhbmltYXRpb24gc3RhcnRzLCBhIG5ldyBQcm9taXNlIGlzIHJldHVybmVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgYW5pbWF0aW9uQ29tcGxldGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICByZXR1cm4gdGhpcy5fYW5pbWF0aW9uUHJvbWlzZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfYW5pbWF0aW9uUHJvbWlzZTogUHJvbWlzZTx2b2lkPiA9IFByb21pc2UucmVzb2x2ZSgpO1xuXG4gICAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgIHRoaXMuc3RvcEFuaW1hdGlvbigpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzdGFydEFuaW1hdGlvbigpOiB2b2lkIHtcbiAgICAgIGlmICghdGhpcy5pc0FuaW1hdGluZykge1xuICAgICAgICB0aGlzLl9hbmltYXRpb25Qcm9taXNlID0gdGhpcy5fZW5xdWV1ZUFuaW1hdGlvbigpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE92ZXJyaWRpbmcgc3RvcEFuaW1hdGlvbigpIGJyZWFrcyBmdW5jdGlvbmFsaXR5LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzdG9wQW5pbWF0aW9uKCk6IHZvaWQge31cblxuICAgIHByaXZhdGUgYXN5bmMgX2VucXVldWVBbmltYXRpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICB0aGlzLmlzQW5pbWF0aW5nID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHN0b3BBbmltYXRpb24gPSB0aGlzLnN0b3BBbmltYXRpb247XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBQcm9taXNlPHZvaWQ+KChyKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcEFuaW1hdGlvbiA9ICgpID0+IHtcbiAgICAgICAgICBzdG9wQW5pbWF0aW9uKCk7XG4gICAgICAgICAgdGhpcy5pc0FuaW1hdGluZyA9IGZhbHNlO1xuICAgICAgICAgIHIoKTtcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gRW5zdXJlIGFueSBwcmV2aW91cyB1cGRhdGUgaGFzIHJlc29sdmVkIGJlZm9yZSB1cGRhdGluZy5cbiAgICAgICAgYXdhaXQgdGhpcy5fYW5pbWF0aW9uUHJvbWlzZTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gUmVmaXJlIGFueSBwcmV2aW91cyBlcnJvcnMgYXN5bmMgc28gdGhleSBkbyBub3QgZGlzcnVwdCB0aGUgdXBkYXRlXG4gICAgICAgIC8vIGN5Y2xlLiBFcnJvcnMgYXJlIHJlLWZpcmVkIHNvIGRldmVsb3BlcnMgaGF2ZSBhIGNoYW5jZSB0byBvYnNlcnZlXG4gICAgICAgIC8vIHRoZW0sIGFuZCB0aGlzIGNhbiBiZSBkb25lIGJ5IGltcGxlbWVudGluZ1xuICAgICAgICAvLyBgd2luZG93Lm9udW5oYW5kbGVkcmVqZWN0aW9uYC5cbiAgICAgICAgUHJvbWlzZS5yZWplY3QoZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJBbmltYXRpb25Db21wbGV0ZUVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkFuaW1hdGlvbkNvbXBsZXRlTWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZU8sTUFBTSw0QkFBNEIsQ0FDdkMsZUFDMEQ7QUFBQSxFQUMxRCxNQUFlLG9DQUNMLFdBQVU7QUFBQSxJQURwQixjQUFBOztBQU9TLFdBQUEsY0FBYztBQVNiLFdBQUEsb0JBQW1DLFFBQVEsUUFBQTtBQUFBLElBeUNyRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUE1Q0UsSUFBVyxvQkFBaUI7QUFDMUIsYUFBTyxLQUFLO0FBQUEsSUFDZDtBQUFBLElBR2dCLHVCQUFvQjtBQUNsQyxZQUFNLHFCQUFBO0FBQ04sV0FBSyxjQUFBO0FBQUEsSUFDUDtBQUFBLElBRVUsaUJBQWM7QUFDdEIsVUFBSSxDQUFDLEtBQUssYUFBYTtBQUNyQixhQUFLLG9CQUFvQixLQUFLLGtCQUFBO0FBQUEsTUFDaEM7QUFBQSxJQUNGO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFLVTtJQUF1QjtBQUFBLElBRXpCLE1BQU0sb0JBQWlCO0FBQzdCLFdBQUssY0FBYztBQUNuQixZQUFNLGdCQUFnQixLQUFLO0FBRTNCLFlBQU0sU0FBUyxJQUFJLFFBQWMsQ0FBQyxNQUFLO0FBQ3JDLGFBQUssZ0JBQWdCLE1BQUs7QUFDeEIsd0JBQUE7QUFDQSxlQUFLLGNBQWM7QUFDbkIsWUFBQTtBQUFBLFFBQ0Y7QUFBQSxNQUNGLENBQUM7QUFDRCxVQUFJO0FBRUYsY0FBTSxLQUFLO0FBQUEsTUFDYixTQUFTLEdBQUc7QUFLVixnQkFBUSxPQUFPLENBQUM7QUFBQSxNQUNsQjtBQUNBLGFBQU87QUFBQSxJQUNUO0FBQUEsRUFBQTtBQUdGLFNBQU87QUFFVDsifQ==
@@ -104,4 +104,4 @@ export {
104
104
  SbbDisabledMixin,
105
105
  SbbDisabledTabIndexActionMixin
106
106
  };
107
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZWQtbWl4aW4uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9kaXNhYmxlZC1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExpdEVsZW1lbnQsIFByb3BlcnR5VmFsdWVzIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICcuLi9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGUgfSBmcm9tICcuL2VsZW1lbnQtaW50ZXJuYWxzLW1peGluLmpzJztcblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiRGlzYWJsZWRNaXhpblR5cGUge1xuICBwdWJsaWMgYWNjZXNzb3IgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBpc0Rpc2FibGVkRXh0ZXJuYWxseSgpOiBib29sZWFuO1xufVxuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlIHtcbiAgcHVibGljIGFjY2Vzc29yIGRpc2FibGVkSW50ZXJhY3RpdmU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogRW5oYW5jZSB5b3VyIGNvbXBvbmVudCB3aXRoIGEgZGlzYWJsZWQgcHJvcGVydHkuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJEaXNhYmxlZE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYkRpc2FibGVkRWxlbWVudCBleHRlbmRzIHN1cGVyQ2xhc3MgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkRpc2FibGVkTWl4aW5UeXBlPiB7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY29tcG9uZW50IGlzIGRpc2FibGVkLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgLy8gVE9ETzogcmVtb3ZlIHJlZmxlY3Q6IHRydWUgYW5kIG1hbmFnZSBvbmx5IGluIHNldHRlci5cbiAgICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0pXG4gICAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgdGhpcy4jZGlzYWJsZWQgPSAhIXZhbHVlO1xuXG4gICAgICAvLyBUaGUgYXR0cmlidXRlIG5lZWRzIHRvIGJlIHJlZmxlY3RlZCBzeW5jaHJvbm91c2x5IChsaWtlIG5hdGl2ZSlcbiAgICAgIC8vIFRPRE86IG9ubHkgZGlzYWJsZWQgb2YgdGhlIGFjdHVhbCBjb21wb25lbnQgc2hvdWxkIGJlIHJlZmxlY3RlZCwgd2l0aG91dCBjb25zaWRlcmluZyB0aGlzLmlzRGlzYWJsZWRFeHRlcm5hbGx5KClcbiAgICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkaXNhYmxlZCcsIHRoaXMuZGlzYWJsZWQpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuI2Rpc2FibGVkIHx8IHRoaXMuaXNEaXNhYmxlZEV4dGVybmFsbHkoKTtcbiAgICB9XG4gICAgI2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBXaWxsIGJlIHVzZWQgYXMgJ29yJyBjaGVjayB0byB0aGUgY3VycmVudCBkaXNhYmxlZCBzdGF0ZS5cbiAgICAgKiBDYW4gZS5nLiBiZSB1c2VkIHRvIHJlYWQgZGlzYWJsZWQgc3RhdGUgb2YgYSBncm91cC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaXNEaXNhYmxlZEV4dGVybmFsbHkoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFNiYkRpc2FibGVkRWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRNaXhpblR5cGU+ICYgVDtcbn07XG5cbi8qKlxuICogRW5oYW5jZSB5b3VyIGNvbXBvbmVudCB3aXRoIGEgZGlzYWJsZWQgaW50ZXJhY3RpdmUgcHJvcGVydHkuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQgJiBTYmJEaXNhYmxlZE1peGluVHlwZT4sXG4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJEaXNhYmxlZEludGVyYWN0aXZlRWxlbWVudFxuICAgIGV4dGVuZHMgc3VwZXJDbGFzc1xuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlPlxuICB7XG4gICAgLyoqIFdoZXRoZXIgdGhlIGJ1dHRvbiBzaG91bGQgYmUgYXJpYS1kaXNhYmxlZCBidXQgc3RheSBpbnRlcmFjdGl2ZS4gKi9cbiAgICBAZm9yY2VUeXBlKClcbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdkaXNhYmxlZC1pbnRlcmFjdGl2ZScsIHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSlcbiAgICBwdWJsaWMgYWNjZXNzb3IgZGlzYWJsZWRJbnRlcmFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIFNiYkRpc2FibGVkSW50ZXJhY3RpdmVFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJEaXNhYmxlZFRhYkluZGV4QWN0aW9uTWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQgJiBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlPixcbj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkRpc2FibGVkTWl4aW5UeXBlICYgU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRGlzYWJsZWRUYWJJbmRleEFjdGlvblxuICAgIGV4dGVuZHMgU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluKFNiYkRpc2FibGVkTWl4aW4oc3VwZXJDbGFzcykpXG4gICAgaW1wbGVtZW50cyBTYmJEaXNhYmxlZE1peGluVHlwZSwgU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluVHlwZVxuICB7XG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlzYWJsZWRJbnRlcmFjdGl2ZScpKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFEaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWRJbnRlcmFjdGl2ZSA/ICd0cnVlJyA6IG51bGw7XG4gICAgICB9XG5cbiAgICAgIGlmICghY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgndGFiaW5kZXgnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNiYkRpc2FibGVkVGFiSW5kZXhBY3Rpb24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxcbiAgICBTYmJEaXNhYmxlZE1peGluVHlwZSAmIFNiYkRpc2FibGVkSW50ZXJhY3RpdmVNaXhpblR5cGVcbiAgPiAmXG4gICAgVDtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQXFCTyxNQUFNLG1CQUFtQixDQUM5QixlQUNpRDtNQUNsQyxzQkFBa0IsTUFBQTs7c0JBQVM7OztBQUEzQixXQUFBLG1CQUEyQixZQUFVO0FBQUEsTUFBckM7QUFBQTtBQWlCYix1Q0FqQmEsa0JBQUEsTUFBQSwwQkFBQSxHQWlCRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BVlosSUFBVyxTQUFTLE9BQWM7QUFDaEMsMkJBQUssV0FBWSxDQUFDLENBQUM7QUFJbkIsYUFBSyxnQkFBZ0IsWUFBWSxLQUFLLFFBQVE7QUFBQSxNQUFBO0FBQUEsTUFFaEQsSUFBVyxXQUFRO0FBQ2pCLGVBQU8sbUJBQUssY0FBYSxLQUFLLHFCQUFBO0FBQUE7Ozs7O01BUXRCLHVCQUFvQjtBQUM1QixlQUFPO0FBQUEsTUFBQTtBQUFBLElBQ1QsR0FSQTs7a0NBWEMsU0FBUyxFQUFFLE1BQU0sU0FBUyxTQUFTLEtBQUEsQ0FBTSxDQUFDO0FBQzNDLG1CQUFBLElBQUEsTUFBQSwwQkFBQSxFQUFBLE1BQUEsVUFBQSxNQUFBLFlBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsY0FBQSxLQUFBLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxZQUFXLFdBQVE7QUFBQSxNQUFBLEtBQUEsVUFBQSxhQUFBLE1BQUEsMEJBQUE7O1VBUE47QUFBQTtBQTRCZixTQUFPO0FBQ1Q7QUFNTyxNQUFNLDhCQUE4QixDQUd6QyxlQUM0RDtNQUM3QyxpQ0FBNkIsTUFBQTs7c0JBQ2xDOzs7O0FBREssV0FBQSxtQkFDTCxZQUFVO0FBQUE7O0FBTWxCLGtFQUFBLGtCQUFBLE1BQUEsbUNBQStDLEtBQUs7Ozs7TUFBcEQsSUFBZ0Isc0JBQW1CO0FBQUEsZUFBQSxtQkFBQTtBQUFBLE1BQUE7QUFBQSxNQUFuQyxJQUFnQixvQkFBbUIsT0FBQTtBQUFBLDJCQUFBLHVDQUFBO0FBQUEsTUFBQTtBQUFBLE9BQW5DOztBQUZDLHdDQUFBLENBQUEsYUFDQSxTQUFTLEVBQUUsV0FBVyx3QkFBd0IsTUFBTSxTQUFTLFNBQVMsS0FBQSxDQUFNLENBQUM7QUFDOUUsbUJBQUEsSUFBQSxNQUFBLGlDQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsdUJBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEseUJBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFnQixxQkFBbUIsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFlBQW5CLHNCQUFtQjtBQUFBLE1BQUEsS0FBQSxVQUFBLGFBQUEsbUNBQUEsc0NBQUE7O1VBUHRCO0FBQUE7QUFVZixTQUFPO0FBRVQ7QUFHTyxNQUFNLGlDQUFpQyxDQUc1QyxlQUNtRjtBQUFBLEVBQ25GLE1BQWUsa0NBQ0wsNEJBQTRCLGlCQUFpQixVQUFVLENBQUMsRUFBQztBQUFBLElBRzlDLFdBQVcsbUJBQXVDO0FBQ25FLFlBQU0sV0FBVyxpQkFBaUI7QUFFbEMsVUFBSSxrQkFBa0IsSUFBSSxxQkFBcUIsR0FBRztBQUNoRCxhQUFLLFVBQVUsZUFBZSxLQUFLLHNCQUFzQixTQUFTO0FBQUEsTUFBQTtBQUdwRSxVQUFJLENBQUMsa0JBQWtCLElBQUksVUFBVSxHQUFHO0FBQ3RDO0FBQUEsTUFBQTtBQUdGLFVBQUksQ0FBQyxLQUFLLFVBQVU7QUFDbEIsYUFBSyxhQUFhLFlBQVksR0FBRztBQUFBLE1BQUEsT0FDNUI7QUFDTCxhQUFLLGdCQUFnQixVQUFVO0FBQUEsTUFBQTtBQUFBLElBQ2pDO0FBQUEsRUFDRjtBQUVGLFNBQU87QUFJVDsifQ==
107
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZWQtbWl4aW4uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9kaXNhYmxlZC1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExpdEVsZW1lbnQsIFByb3BlcnR5VmFsdWVzIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICcuLi9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGUgfSBmcm9tICcuL2VsZW1lbnQtaW50ZXJuYWxzLW1peGluLmpzJztcblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiRGlzYWJsZWRNaXhpblR5cGUge1xuICBwdWJsaWMgYWNjZXNzb3IgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBpc0Rpc2FibGVkRXh0ZXJuYWxseSgpOiBib29sZWFuO1xufVxuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlIHtcbiAgcHVibGljIGFjY2Vzc29yIGRpc2FibGVkSW50ZXJhY3RpdmU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogRW5oYW5jZSB5b3VyIGNvbXBvbmVudCB3aXRoIGEgZGlzYWJsZWQgcHJvcGVydHkuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJEaXNhYmxlZE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYkRpc2FibGVkRWxlbWVudCBleHRlbmRzIHN1cGVyQ2xhc3MgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkRpc2FibGVkTWl4aW5UeXBlPiB7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY29tcG9uZW50IGlzIGRpc2FibGVkLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgLy8gVE9ETzogcmVtb3ZlIHJlZmxlY3Q6IHRydWUgYW5kIG1hbmFnZSBvbmx5IGluIHNldHRlci5cbiAgICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0pXG4gICAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgdGhpcy4jZGlzYWJsZWQgPSAhIXZhbHVlO1xuXG4gICAgICAvLyBUaGUgYXR0cmlidXRlIG5lZWRzIHRvIGJlIHJlZmxlY3RlZCBzeW5jaHJvbm91c2x5IChsaWtlIG5hdGl2ZSlcbiAgICAgIC8vIFRPRE86IG9ubHkgZGlzYWJsZWQgb2YgdGhlIGFjdHVhbCBjb21wb25lbnQgc2hvdWxkIGJlIHJlZmxlY3RlZCwgd2l0aG91dCBjb25zaWRlcmluZyB0aGlzLmlzRGlzYWJsZWRFeHRlcm5hbGx5KClcbiAgICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkaXNhYmxlZCcsIHRoaXMuZGlzYWJsZWQpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuI2Rpc2FibGVkIHx8IHRoaXMuaXNEaXNhYmxlZEV4dGVybmFsbHkoKTtcbiAgICB9XG4gICAgI2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBXaWxsIGJlIHVzZWQgYXMgJ29yJyBjaGVjayB0byB0aGUgY3VycmVudCBkaXNhYmxlZCBzdGF0ZS5cbiAgICAgKiBDYW4gZS5nLiBiZSB1c2VkIHRvIHJlYWQgZGlzYWJsZWQgc3RhdGUgb2YgYSBncm91cC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaXNEaXNhYmxlZEV4dGVybmFsbHkoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFNiYkRpc2FibGVkRWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRNaXhpblR5cGU+ICYgVDtcbn07XG5cbi8qKlxuICogRW5oYW5jZSB5b3VyIGNvbXBvbmVudCB3aXRoIGEgZGlzYWJsZWQgaW50ZXJhY3RpdmUgcHJvcGVydHkuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQgJiBTYmJEaXNhYmxlZE1peGluVHlwZT4sXG4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJEaXNhYmxlZEludGVyYWN0aXZlRWxlbWVudFxuICAgIGV4dGVuZHMgc3VwZXJDbGFzc1xuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlPlxuICB7XG4gICAgLyoqIFdoZXRoZXIgdGhlIGJ1dHRvbiBzaG91bGQgYmUgYXJpYS1kaXNhYmxlZCBidXQgc3RheSBpbnRlcmFjdGl2ZS4gKi9cbiAgICBAZm9yY2VUeXBlKClcbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdkaXNhYmxlZC1pbnRlcmFjdGl2ZScsIHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSlcbiAgICBwdWJsaWMgYWNjZXNzb3IgZGlzYWJsZWRJbnRlcmFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIFNiYkRpc2FibGVkSW50ZXJhY3RpdmVFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJEaXNhYmxlZFRhYkluZGV4QWN0aW9uTWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQgJiBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlPixcbj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkRpc2FibGVkTWl4aW5UeXBlICYgU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRGlzYWJsZWRUYWJJbmRleEFjdGlvblxuICAgIGV4dGVuZHMgU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluKFNiYkRpc2FibGVkTWl4aW4oc3VwZXJDbGFzcykpXG4gICAgaW1wbGVtZW50cyBTYmJEaXNhYmxlZE1peGluVHlwZSwgU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluVHlwZVxuICB7XG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlzYWJsZWRJbnRlcmFjdGl2ZScpKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFEaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWRJbnRlcmFjdGl2ZSA/ICd0cnVlJyA6IG51bGw7XG4gICAgICB9XG5cbiAgICAgIGlmICghY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgndGFiaW5kZXgnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNiYkRpc2FibGVkVGFiSW5kZXhBY3Rpb24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxcbiAgICBTYmJEaXNhYmxlZE1peGluVHlwZSAmIFNiYkRpc2FibGVkSW50ZXJhY3RpdmVNaXhpblR5cGVcbiAgPiAmXG4gICAgVDtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQXFCTyxNQUFNLG1CQUFtQixDQUM5QixlQUNpRDtNQUNsQyxzQkFBa0IsTUFBQTs7c0JBQVM7OztBQUEzQixXQUFBLG1CQUEyQixZQUFVO0FBQUEsTUFBckM7QUFBQTtBQWlCYix1Q0FqQmEsa0JBQUEsTUFBQSwwQkFBQSxHQWlCRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BVlosSUFBVyxTQUFTLE9BQWM7QUFDaEMsMkJBQUssV0FBWSxDQUFDLENBQUM7QUFJbkIsYUFBSyxnQkFBZ0IsWUFBWSxLQUFLLFFBQVE7QUFBQSxNQUNoRDtBQUFBLE1BQ0EsSUFBVyxXQUFRO0FBQ2pCLGVBQU8sbUJBQUssY0FBYSxLQUFLLHFCQUFBO0FBQUEsTUFDaEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BT1UsdUJBQW9CO0FBQzVCLGVBQU87QUFBQSxNQUNUO0FBQUEsSUFBQSxHQVJBOztrQ0FYQyxTQUFTLEVBQUUsTUFBTSxTQUFTLFNBQVMsS0FBQSxDQUFNLENBQUM7QUFDM0MsbUJBQUEsSUFBQSxNQUFBLDBCQUFBLEVBQUEsTUFBQSxVQUFBLE1BQUEsWUFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxjQUFBLEtBQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFlBQVcsV0FBUTtBQUFBLE1BQUEsS0FBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLDBCQUFBOztVQVBOO0FBQUE7QUE0QmYsU0FBTztBQUNUO0FBTU8sTUFBTSw4QkFBOEIsQ0FHekMsZUFDNEQ7TUFDN0MsaUNBQTZCLE1BQUE7O3NCQUNsQzs7OztBQURLLFdBQUEsbUJBQ0wsWUFBVTtBQUFBOztBQU1sQixrRUFBQSxrQkFBQSxNQUFBLG1DQUErQyxLQUFLOzs7O01BQXBELElBQWdCLHNCQUFtQjtBQUFBLGVBQUEsbUJBQUE7QUFBQSxNQUFBO0FBQUEsTUFBbkMsSUFBZ0Isb0JBQW1CLE9BQUE7QUFBQSwyQkFBQSx1Q0FBQTtBQUFBLE1BQUE7QUFBQSxPQUFuQzs7QUFGQyx3Q0FBQSxDQUFBLGFBQ0EsU0FBUyxFQUFFLFdBQVcsd0JBQXdCLE1BQU0sU0FBUyxTQUFTLEtBQUEsQ0FBTSxDQUFDO0FBQzlFLG1CQUFBLElBQUEsTUFBQSxpQ0FBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLHVCQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLHlCQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBZ0IscUJBQW1CLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxZQUFuQixzQkFBbUI7QUFBQSxNQUFBLEtBQUEsVUFBQSxVQUFBLEdBQUEsbUNBQUEsc0NBQUE7O1VBUHRCO0FBQUE7QUFVZixTQUFPO0FBRVQ7QUFHTyxNQUFNLGlDQUFpQyxDQUc1QyxlQUNtRjtBQUFBLEVBQ25GLE1BQWUsa0NBQ0wsNEJBQTRCLGlCQUFpQixVQUFVLENBQUMsRUFBQztBQUFBLElBRzlDLFdBQVcsbUJBQXVDO0FBQ25FLFlBQU0sV0FBVyxpQkFBaUI7QUFFbEMsVUFBSSxrQkFBa0IsSUFBSSxxQkFBcUIsR0FBRztBQUNoRCxhQUFLLFVBQVUsZUFBZSxLQUFLLHNCQUFzQixTQUFTO0FBQUEsTUFDcEU7QUFFQSxVQUFJLENBQUMsa0JBQWtCLElBQUksVUFBVSxHQUFHO0FBQ3RDO0FBQUEsTUFDRjtBQUVBLFVBQUksQ0FBQyxLQUFLLFVBQVU7QUFDbEIsYUFBSyxhQUFhLFlBQVksR0FBRztBQUFBLE1BQ25DLE9BQU87QUFDTCxhQUFLLGdCQUFnQixVQUFVO0FBQUEsTUFDakM7QUFBQSxJQUNGO0FBQUEsRUFBQTtBQUVGLFNBQU87QUFJVDsifQ==
@@ -177,4 +177,4 @@ export {
177
177
  appendAriaElements,
178
178
  removeAriaElements
179
179
  };
180
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1pbnRlcm5hbHMtbWl4aW4uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9lbGVtZW50LWludGVybmFscy1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBMaXRFbGVtZW50LCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlciB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IuanMnO1xuXG4vLyBNb3N0IG9mIG91ciB0YXJnZXQgYnJvd3NlcnMgc3VwcG9ydCB0aGUgOnN0YXRlKCkgcHNldWRvIGNsYXNzLCBidXQgbm90IGFsbCBvZiB0aGVtLlxuLy8gV2UgcGF0Y2ggdGhlIHN0YXRlcyBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudCBpbnRlcm5hbHMgdG8gdXNlIGF0dHJpYnV0ZXMgaW5zdGVhZCxcbi8vIGlmIDpzdGF0ZSgpIGlzIG5vdCBzdXBwb3J0ZWQuXG4vLyBOb3RlIHRoYXQgZm9yIFNTUiwgdGhlIHN0YXRlcyBwcm9wZXJ0eSBpcyBhIHNpbXBsZSBTZXQsIGltcGxlbWVudGVkIGluIExpdCBTU1IuXG4vLyBUT0RPOiBSZW1vdmUgaW4gMjAyNi5cbnR5cGUgQ3VzdG9tU3RhdGVTZXRJbnRlcmZhY2UgPSBDdXN0b21TdGF0ZVNldDtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmNvbnN0IEN1c3RvbVN0YXRlU2V0UG9seWZpbGw6IChuZXcgKGhvc3Q6IExpdEVsZW1lbnQpID0+IEN1c3RvbVN0YXRlU2V0SW50ZXJmYWNlKSB8IG51bGwgPVxuICAhaXNTZXJ2ZXIgJiYgIUNTUy5zdXBwb3J0cygnc2VsZWN0b3IoOnN0YXRlKGxvYWRpbmcpKScpXG4gICAgPyBjbGFzcyBDdXN0b21TdGF0ZVNldFxuICAgICAgICBleHRlbmRzIFNldDxzdHJpbmc+XG4gICAgICAgIGltcGxlbWVudHMgQ3VzdG9tU3RhdGVTZXRJbnRlcmZhY2UsIFJlYWN0aXZlQ29udHJvbGxlclxuICAgICAge1xuICAgICAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogTGl0RWxlbWVudCkge1xuICAgICAgICAgIHN1cGVyKCk7XG4gICAgICAgICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIG92ZXJyaWRlIGFkZChzdGF0ZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgICAgaWYgKHRoaXMuX2hvc3QuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3RvZ2dsZVN0YXRlKHN0YXRlLCB0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHN1cGVyLmFkZChzdGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgZGVsZXRlKHN0YXRlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgICB0aGlzLl90b2dnbGVTdGF0ZShzdGF0ZSwgZmFsc2UpO1xuICAgICAgICAgIHJldHVybiBzdXBlci5kZWxldGUoc3RhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIG92ZXJyaWRlIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICAgIHRoaXMuZm9yRWFjaCgoc3RhdGUpID0+IHRoaXMuZGVsZXRlKHN0YXRlKSk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgaG9zdENvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICAgICAgICB0aGlzLmZvckVhY2goKHN0YXRlKSA9PiB0aGlzLl90b2dnbGVTdGF0ZShzdGF0ZSwgdHJ1ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJpdmF0ZSBfdG9nZ2xlU3RhdGUoc3RhdGU6IHN0cmluZywgZW5hYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICAgIHRoaXMuX2hvc3QudG9nZ2xlQXR0cmlidXRlKGBzdGF0ZS0tJHtzdGF0ZX1gLCBlbmFibGVkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIDogbnVsbDtcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgQVJJQU1peGluIHtcbiAgICBhcmlhQWN0aXZlRGVzY2VuZGFudEVsZW1lbnQ6IEVsZW1lbnQgfCBudWxsO1xuICAgIGFyaWFDb250cm9sc0VsZW1lbnRzOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsO1xuICAgIGFyaWFEZXNjcmliZWRCeUVsZW1lbnRzOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsO1xuICAgIGFyaWFEZXRhaWxzRWxlbWVudHM6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGw7XG4gICAgYXJpYUVycm9yTWVzc2FnZUVsZW1lbnRzOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsO1xuICAgIGFyaWFMYWJlbGxlZEJ5RWxlbWVudHM6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGw7XG4gICAgYXJpYU93bnNFbGVtZW50czogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbDtcbiAgfVxufVxuXG5pZiAoIWlzU2VydmVyKSB7XG4gIC8vIFRoaXMgaXMgYSBwb2x5ZmlsbCBmb3IgdGhlIGFyaWEgZWxlbWVudHMgcHJvcGVydGllcyBvbiBFbGVtZW50SW50ZXJuYWxzIGFuZCBFbGVtZW50LlxuICBsZXQgbmV4dElkID0gMDtcbiAgY29uc3QgcmVzb2x2ZUhvc3QgPSAob3JpZ2luOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCk6IEVsZW1lbnQgPT5cbiAgICBvcmlnaW4uc2hhZG93Um9vdD8uaG9zdCA/P1xuICAgIChvcmlnaW4gaW5zdGFuY2VvZiBFbGVtZW50XG4gICAgICA/IG9yaWdpblxuICAgICAgOiAoKCkgPT4ge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHJlc29sdmUgcmVsYXRlZCBlbGVtZW50ISBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4uJyk7XG4gICAgICAgIH0pKCkpO1xuICBjb25zdCBvYnNlcnZlck9wdGlvbnM6IE11dGF0aW9uT2JzZXJ2ZXJJbml0ID0geyBhdHRyaWJ1dGVzOiB0cnVlLCBhdHRyaWJ1dGVGaWx0ZXI6IFsnaWQnXSB9O1xuICBjb25zdCBhc3NpZ25FbGVtZW50ID0gKFxuICAgIGhvc3Q6IEVsZW1lbnQsXG4gICAgYXR0cmlidXRlOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnQ+LFxuICApOiB2b2lkID0+IHtcbiAgICAvLyBJbiBjYXNlIGJvdGggRWxlbWVudCBhbmQgRWxlbWVudEludGVybmFscyBwcm9wZXJ0aWVzIGFyZSBzZXQsXG4gICAgLy8gdGhlIGVsZW1lbnQgcmVmZXJlbmNlIGZyb20gRWxlbWVudCBoYXMgcHJpb3JpdHkuXG4gICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IGVsZW1lbnRzW0VsZW1lbnQubmFtZV0gPz8gZWxlbWVudHNbRWxlbWVudEludGVybmFscy5uYW1lXTtcbiAgICBob3N0LnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIChhY3RpdmVFbGVtZW50LmlkIHx8PSBgYXJpYS1yZWYtJHtuZXh0SWQrK31gKSk7XG4gIH07XG4gIGNvbnN0IGFzc2lnbkVsZW1lbnRzID0gKFxuICAgIGhvc3Q6IEVsZW1lbnQsXG4gICAgYXR0cmlidXRlOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnRbXT4sXG4gICk6IHZvaWQgPT4ge1xuICAgIC8vIEluIGNhc2UgYm90aCBFbGVtZW50IGFuZCBFbGVtZW50SW50ZXJuYWxzIHByb3BlcnRpZXMgYXJlIHNldCxcbiAgICAvLyB3ZSBjb21iaW5lIHRoZSBlbGVtZW50IHJlZmVyZW5jZXMuXG4gICAgaG9zdC5zZXRBdHRyaWJ1dGUoXG4gICAgICBhdHRyaWJ1dGUsXG4gICAgICBPYmplY3QudmFsdWVzKGVsZW1lbnRzKVxuICAgICAgICAucmVkdWNlKChjdXJyZW50LCBuZXh0KSA9PiBjdXJyZW50LmNvbmNhdChuZXh0KSlcbiAgICAgICAgLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKVxuICAgICAgICAubWFwKChlKSA9PiBlLmlkIHx8IChlLmlkID0gYGFyaWEtcmVmLSR7bmV4dElkKyt9YCkpXG4gICAgICAgIC5qb2luKCcgJyksXG4gICAgKTtcbiAgfTtcblxuICBmb3IgKGNvbnN0IHR5cGUgb2YgW0VsZW1lbnRJbnRlcm5hbHMsIEVsZW1lbnRdKSB7XG4gICAgY29uc3QgcHJvdG90eXBlID0gdHlwZS5wcm90b3R5cGU7XG4gICAgaWYgKCEoJ2FyaWFBY3RpdmVEZXNjZW5kYW50RWxlbWVudCcgaW4gcHJvdG90eXBlKSkge1xuICAgICAgY29uc3QgYXR0cmlidXRlID0gJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCc7XG4gICAgICBjb25zdCBzdG9yYWdlID0gbmV3IFdlYWtNYXA8XG4gICAgICAgIEVsZW1lbnQsXG4gICAgICAgIHsgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnQ+OyBvYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB9XG4gICAgICA+KCk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG90eXBlLCAnYXJpYUFjdGl2ZURlc2NlbmRhbnRFbGVtZW50Jywge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGdldCh0aGlzOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCk6IEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgICBjb25zdCBob3N0ID0gcmVzb2x2ZUhvc3QodGhpcyk7XG4gICAgICAgICAgY29uc3QgaWQgPSBob3N0LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpPy5zcGxpdCgvXFxzKy8pWzBdID8/IG51bGw7XG4gICAgICAgICAgcmV0dXJuIGlkXG4gICAgICAgICAgICA/ICgoaG9zdC5nZXRSb290Tm9kZSgpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdCkuZ2V0RWxlbWVudEJ5SWQ/LihpZCkgPz8gbnVsbClcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0KHRoaXM6IEVsZW1lbnRJbnRlcm5hbHMgfCBFbGVtZW50LCB2YWx1ZTogRWxlbWVudCB8IG51bGwpIHtcbiAgICAgICAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIEVsZW1lbnQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICAgICBgRmFpbGVkIHRvIHNldCB0aGUgJ2FyaWFBY3RpdmVEZXNjZW5kYW50RWxlbWVudCcgcHJvcGVydHkgb24gJyR7dHlwZS5uYW1lfSc6IEZhaWxlZCB0byBjb252ZXJ0IHZhbHVlIHRvICdFbGVtZW50Jy5gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBob3N0ID0gcmVzb2x2ZUhvc3QodGhpcyk7XG4gICAgICAgICAgY29uc3QgZW50cnkgPSBzdG9yYWdlLmdldChob3N0KTtcbiAgICAgICAgICBlbnRyeT8ub2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgICBkZWxldGUgZW50cnkuZWxlbWVudHNbdHlwZS5uYW1lXTtcbiAgICAgICAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhlbnRyeSkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgc3RvcmFnZS5kZWxldGUoaG9zdCk7XG4gICAgICAgICAgICAgICAgaG9zdC5yZW1vdmVBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBlbnRyeS5vYnNlcnZlci5vYnNlcnZlKE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpWzBdLCBvYnNlcnZlck9wdGlvbnMpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICghZW50cnkpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50PiA9IHsgW3R5cGUubmFtZV06IHZhbHVlIH07XG4gICAgICAgICAgICBhc3NpZ25FbGVtZW50KGhvc3QsIGF0dHJpYnV0ZSwgZWxlbWVudHMpO1xuICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiBhc3NpZ25FbGVtZW50KGhvc3QsIGF0dHJpYnV0ZSwgZWxlbWVudHMpKTtcbiAgICAgICAgICAgIG9ic2VydmVyLm9ic2VydmUodmFsdWUsIG9ic2VydmVyT3B0aW9ucyk7XG4gICAgICAgICAgICBzdG9yYWdlLnNldChob3N0LCB7IGVsZW1lbnRzLCBvYnNlcnZlciB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZW50cnkuZWxlbWVudHNbdHlwZS5uYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgYXNzaWduRWxlbWVudChob3N0LCBhdHRyaWJ1dGUsIGVudHJ5LmVsZW1lbnRzKTtcbiAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpLmZvckVhY2goKGUpID0+XG4gICAgICAgICAgICAgIGVudHJ5Lm9ic2VydmVyLm9ic2VydmUoZSwgb2JzZXJ2ZXJPcHRpb25zKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBbXG4gICAgICAnYXJpYUNvbnRyb2xzRWxlbWVudHMnLFxuICAgICAgJ2FyaWFEZXNjcmliZWRCeUVsZW1lbnRzJyxcbiAgICAgICdhcmlhRGV0YWlsc0VsZW1lbnRzJyxcbiAgICAgICdhcmlhRXJyb3JNZXNzYWdlRWxlbWVudHMnLFxuICAgICAgJ2FyaWFMYWJlbGxlZEJ5RWxlbWVudHMnLFxuICAgICAgJ2FyaWFPd25zRWxlbWVudHMnLFxuICAgIF0pIHtcbiAgICAgIGlmICghKHByb3BlcnR5IGluIHByb3RvdHlwZSkpIHtcbiAgICAgICAgY29uc3Qgc3RvcmFnZSA9IG5ldyBXZWFrTWFwPFxuICAgICAgICAgIEVsZW1lbnQsXG4gICAgICAgICAgeyBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudFtdPjsgb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfVxuICAgICAgICA+KCk7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IGBhcmlhLSR7cHJvcGVydHkuc2xpY2UoNCwgLTgpLnRvTG93ZXJDYXNlKCl9YDtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvdHlwZSwgcHJvcGVydHksIHtcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICBnZXQodGhpczogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQpOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsIHtcbiAgICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzID0gaG9zdFxuICAgICAgICAgICAgICAuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSlcbiAgICAgICAgICAgICAgPy5zcGxpdCgvXFxzKy8pXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHYsIGksIGEpID0+IGEuaW5kZXhPZih2KSA9PT0gaSlcbiAgICAgICAgICAgICAgLm1hcCgoaWQpID0+IChob3N0LmdldFJvb3ROb2RlKCkgYXMgRG9jdW1lbnQgfCBTaGFkb3dSb290KS5nZXRFbGVtZW50QnlJZD8uKGlkKSlcbiAgICAgICAgICAgICAgLmZpbHRlcigoZSkgPT4gZSBpbnN0YW5jZW9mIEVsZW1lbnQpO1xuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzPy5sZW5ndGggPyBPYmplY3QuZnJlZXplKGVsZW1lbnRzKSA6IG51bGw7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZXQodGhpczogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQsIHZhbHVlOiBFbGVtZW50W10pIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgKCFBcnJheS5pc0FycmF5KHZhbHVlKSB8fCB2YWx1ZS5zb21lKChlbGVtZW50KSA9PiAhKGVsZW1lbnQgaW5zdGFuY2VvZiBFbGVtZW50KSkpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAgICAgICBgRmFpbGVkIHRvIHNldCB0aGUgJyR7cHJvcGVydHl9JyBwcm9wZXJ0eSBvbiAnJHt0eXBlLm5hbWV9JzogRmFpbGVkIHRvIGNvbnZlcnQgdmFsdWUgdG8gJ0VsZW1lbnQnLmAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWU/LmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKSA/PyBudWxsO1xuICAgICAgICAgICAgY29uc3QgZW50cnkgPSBzdG9yYWdlLmdldChob3N0KTtcbiAgICAgICAgICAgIGVudHJ5Py5vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdO1xuICAgICAgICAgICAgICAgIGlmICghT2JqZWN0LmtleXMoZW50cnkpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgc3RvcmFnZS5kZWxldGUoaG9zdCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpXG4gICAgICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQuY29uY2F0KG5leHQpKVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgoZSkgPT4gZW50cnkub2JzZXJ2ZXIub2JzZXJ2ZShlLCBvYnNlcnZlck9wdGlvbnMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIWVudHJ5KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50W10+ID0geyBbdHlwZS5uYW1lXTogdmFsdWUgfTtcbiAgICAgICAgICAgICAgYXNzaWduRWxlbWVudHMoaG9zdCwgYXR0cmlidXRlLCBlbGVtZW50cyk7XG4gICAgICAgICAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT5cbiAgICAgICAgICAgICAgICBhc3NpZ25FbGVtZW50cyhob3N0LCBhdHRyaWJ1dGUsIGVsZW1lbnRzKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgoZWxlbWVudCkgPT4gb2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50LCBvYnNlcnZlck9wdGlvbnMpKTtcbiAgICAgICAgICAgICAgc3RvcmFnZS5zZXQoaG9zdCwgeyBlbGVtZW50cywgb2JzZXJ2ZXIgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdID0gdmFsdWU7XG4gICAgICAgICAgICAgIGFzc2lnbkVsZW1lbnRzKGhvc3QsIGF0dHJpYnV0ZSwgZW50cnkuZWxlbWVudHMpO1xuICAgICAgICAgICAgICBPYmplY3QudmFsdWVzKGVudHJ5LmVsZW1lbnRzKVxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQuY29uY2F0KG5leHQpKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKChlKSA9PiBlbnRyeS5vYnNlcnZlci5vYnNlcnZlKGUsIG9ic2VydmVyT3B0aW9ucykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNiYkVsZW1lbnRJbnRlcm5hbHNDb25zdHJ1Y3RvciB7XG4gIHJvbGU/OiBFbGVtZW50SW50ZXJuYWxzWydyb2xlJ107XG59XG5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGUge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW50ZXJuYWxzOiBFbGVtZW50SW50ZXJuYWxzO1xuICBwcm90ZWN0ZWQgdG9nZ2xlU3RhdGUoc3RhdGU6IHN0cmluZywgZm9yY2U/OiBib29sZWFuKTogdm9pZDtcbn1cblxuLyoqXG4gKiBBcHBlbmRzIHRoZSBnaXZlbiBlbGVtZW50cyB0byB0aGUgZ2l2ZW4gYXJpYSB2YWx1ZSBhbmQgcmV0dXJucyB0aGVcbiAqIGNvbWJpbmVkIHZhbHVlIGFzIGEgbmV3IGFycmF5IG9yIG51bGwsIGlmIGJvdGggdmFsdWVzIHdlcmUgZW1wdHkuXG4gKi9cbmV4cG9ydCBjb25zdCBhcHBlbmRBcmlhRWxlbWVudHMgPSAoXG4gIGFyaWFWYWx1ZTogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbCxcbiAgLi4ubmV3RWxlbWVudHM6IChFbGVtZW50IHwgbnVsbClbXVxuKTogRWxlbWVudFtdIHwgbnVsbCA9PiB7XG4gIGNvbnN0IGVsZW1lbnRzID0gbmV3RWxlbWVudHMuZmlsdGVyKCh2KTogdiBpcyBFbGVtZW50ID0+ICEhdik7XG4gIHJldHVybiBhcmlhVmFsdWU/Lmxlbmd0aCA/IGFyaWFWYWx1ZS5jb25jYXQoZWxlbWVudHMpIDogbmV3RWxlbWVudHMubGVuZ3RoID8gZWxlbWVudHMgOiBudWxsO1xufTtcblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBnaXZlbiBlbGVtZW50cyBmcm9tIHRoZSBnaXZlbiBhcmlhIHZhbHVlIGFuZCByZXR1cm5zXG4gKiB0aGUgcmVtYWluaW5nIGVsZW1lbnRzIGFzIGEgbmV3IGFycmF5IG9yIG51bGwsIGlmIHRoZSByZXN1bHQgaXMgZW1wdHkuXG4gKi9cbmV4cG9ydCBjb25zdCByZW1vdmVBcmlhRWxlbWVudHMgPSAoXG4gIGFyaWFWYWx1ZTogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbCxcbiAgLi4ucmVtb3ZhYmxlRWxlbWVudHM6IChFbGVtZW50IHwgbnVsbClbXVxuKTogRWxlbWVudFtdIHwgbnVsbCA9PiB7XG4gIHJlbW92YWJsZUVsZW1lbnRzID0gcmVtb3ZhYmxlRWxlbWVudHMuZmlsdGVyKCh2KSA9PiAhIXYpO1xuICBjb25zdCBlbGVtZW50cyA9IGFyaWFWYWx1ZT8uZmlsdGVyKCh2KSA9PiAhcmVtb3ZhYmxlRWxlbWVudHMuaW5jbHVkZXModikpID8/IG51bGw7XG4gIHJldHVybiBlbGVtZW50cz8ubGVuZ3RoID8gZWxlbWVudHMgOiBudWxsO1xufTtcblxuLyoqXG4gKiBUaGUgU2JiRWxlbWVudEludGVybmFsc01peGluIGF0dGFjaGVzIEVsZW1lbnRJbnRlcm5hbHMgdG8gdGhlIGVsZW1lbnQgYW5kIHNldHNcbiAqIHRoZSByb2xlLCBpZiBkZWZpbmVkLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRWxlbWVudEludGVybmFsc01peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRWxlbWVudEludGVybmFsc01peGluVHlwZT4gJiBUICYgU2JiRWxlbWVudEludGVybmFsc0NvbnN0cnVjdG9yID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRWxlbWVudEludGVybmFsRWxlbWVudFxuICAgIGV4dGVuZHMgc3VwZXJDbGFzc1xuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlPlxuICB7XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpbnRlcm5hbHM6IEVsZW1lbnRJbnRlcm5hbHMgPSB0aGlzLmF0dGFjaEludGVybmFscygpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICBzdXBlciguLi5hcmdzKTtcbiAgICAgIGlmIChDdXN0b21TdGF0ZVNldFBvbHlmaWxsKSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLmludGVybmFscywgJ3N0YXRlcycsIHtcbiAgICAgICAgICB2YWx1ZTogbmV3IEN1c3RvbVN0YXRlU2V0UG9seWZpbGwodGhpcyksXG4gICAgICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgY29uc3Qgcm9sZSA9ICh0aGlzLmNvbnN0cnVjdG9yIGFzIFNiYkVsZW1lbnRJbnRlcm5hbHNDb25zdHJ1Y3Rvcikucm9sZTtcbiAgICAgIGlmIChyb2xlKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLnJvbGUgPSByb2xlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCB0b2dnbGVTdGF0ZShzdGF0ZTogc3RyaW5nLCBmb3JjZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgIGlmIChmb3JjZSB8fCAoZm9yY2UgIT09IGZhbHNlICYmICF0aGlzLmludGVybmFscy5zdGF0ZXMuaGFzKHN0YXRlKSkpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChzdGF0ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKHN0YXRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNiYkVsZW1lbnRJbnRlcm5hbEVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGU+ICZcbiAgICBUICZcbiAgICBTYmJFbGVtZW50SW50ZXJuYWxzQ29uc3RydWN0b3I7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFXQSxNQUFNLHlCQUNKLENBQUMsWUFBWSxDQUFDLElBQUksU0FBUywyQkFBMkIsSUFDbEQsTUFBTSx1QkFDSSxJQUFXO0FBQUEsRUFHbkIsWUFBMkIsT0FBaUI7QUFDMUMsVUFBQTtBQUR5QixTQUFBLFFBQUE7QUFFekIsU0FBSyxNQUFNLGNBQWMsSUFBSTtBQUFBLEVBQUE7QUFBQSxFQUdmLElBQUksT0FBYTtBQUMvQixRQUFJLEtBQUssTUFBTSxhQUFhO0FBQzFCLFdBQUssYUFBYSxPQUFPLElBQUk7QUFBQSxJQUFBO0FBRS9CLFdBQU8sTUFBTSxJQUFJLEtBQUs7QUFBQSxFQUFBO0FBQUEsRUFHUixPQUFPLE9BQWE7QUFDbEMsU0FBSyxhQUFhLE9BQU8sS0FBSztBQUM5QixXQUFPLE1BQU0sT0FBTyxLQUFLO0FBQUEsRUFBQTtBQUFBLEVBR1gsUUFBSztBQUNuQixTQUFLLFFBQVEsQ0FBQyxVQUFVLEtBQUssT0FBTyxLQUFLLENBQUM7QUFBQSxFQUFBO0FBQUEsRUFHckMsZ0JBQWE7QUFDbEIsU0FBSyxRQUFRLENBQUMsVUFBVSxLQUFLLGFBQWEsT0FBTyxJQUFJLENBQUM7QUFBQSxFQUFBO0FBQUEsRUFHaEQsYUFBYSxPQUFlLFNBQWdCO0FBQ2xELFNBQUssTUFBTSxnQkFBZ0IsVUFBVSxLQUFLLElBQUksT0FBTztBQUFBLEVBQUE7QUFFeEQsSUFDRDtBQWNOLElBQUksQ0FBQyxVQUFVO0FBRWIs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
180
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1pbnRlcm5hbHMtbWl4aW4uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9lbGVtZW50LWludGVybmFscy1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBMaXRFbGVtZW50LCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlciB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IuanMnO1xuXG4vLyBNb3N0IG9mIG91ciB0YXJnZXQgYnJvd3NlcnMgc3VwcG9ydCB0aGUgOnN0YXRlKCkgcHNldWRvIGNsYXNzLCBidXQgbm90IGFsbCBvZiB0aGVtLlxuLy8gV2UgcGF0Y2ggdGhlIHN0YXRlcyBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudCBpbnRlcm5hbHMgdG8gdXNlIGF0dHJpYnV0ZXMgaW5zdGVhZCxcbi8vIGlmIDpzdGF0ZSgpIGlzIG5vdCBzdXBwb3J0ZWQuXG4vLyBOb3RlIHRoYXQgZm9yIFNTUiwgdGhlIHN0YXRlcyBwcm9wZXJ0eSBpcyBhIHNpbXBsZSBTZXQsIGltcGxlbWVudGVkIGluIExpdCBTU1IuXG4vLyBUT0RPOiBSZW1vdmUgaW4gMjAyNi5cbnR5cGUgQ3VzdG9tU3RhdGVTZXRJbnRlcmZhY2UgPSBDdXN0b21TdGF0ZVNldDtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmNvbnN0IEN1c3RvbVN0YXRlU2V0UG9seWZpbGw6IChuZXcgKGhvc3Q6IExpdEVsZW1lbnQpID0+IEN1c3RvbVN0YXRlU2V0SW50ZXJmYWNlKSB8IG51bGwgPVxuICAhaXNTZXJ2ZXIgJiYgIUNTUy5zdXBwb3J0cygnc2VsZWN0b3IoOnN0YXRlKGxvYWRpbmcpKScpXG4gICAgPyBjbGFzcyBDdXN0b21TdGF0ZVNldFxuICAgICAgICBleHRlbmRzIFNldDxzdHJpbmc+XG4gICAgICAgIGltcGxlbWVudHMgQ3VzdG9tU3RhdGVTZXRJbnRlcmZhY2UsIFJlYWN0aXZlQ29udHJvbGxlclxuICAgICAge1xuICAgICAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogTGl0RWxlbWVudCkge1xuICAgICAgICAgIHN1cGVyKCk7XG4gICAgICAgICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIG92ZXJyaWRlIGFkZChzdGF0ZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgICAgaWYgKHRoaXMuX2hvc3QuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3RvZ2dsZVN0YXRlKHN0YXRlLCB0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHN1cGVyLmFkZChzdGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgZGVsZXRlKHN0YXRlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgICB0aGlzLl90b2dnbGVTdGF0ZShzdGF0ZSwgZmFsc2UpO1xuICAgICAgICAgIHJldHVybiBzdXBlci5kZWxldGUoc3RhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIG92ZXJyaWRlIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICAgIHRoaXMuZm9yRWFjaCgoc3RhdGUpID0+IHRoaXMuZGVsZXRlKHN0YXRlKSk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgaG9zdENvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICAgICAgICB0aGlzLmZvckVhY2goKHN0YXRlKSA9PiB0aGlzLl90b2dnbGVTdGF0ZShzdGF0ZSwgdHJ1ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJpdmF0ZSBfdG9nZ2xlU3RhdGUoc3RhdGU6IHN0cmluZywgZW5hYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICAgIHRoaXMuX2hvc3QudG9nZ2xlQXR0cmlidXRlKGBzdGF0ZS0tJHtzdGF0ZX1gLCBlbmFibGVkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIDogbnVsbDtcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgQVJJQU1peGluIHtcbiAgICBhcmlhQWN0aXZlRGVzY2VuZGFudEVsZW1lbnQ6IEVsZW1lbnQgfCBudWxsO1xuICAgIGFyaWFDb250cm9sc0VsZW1lbnRzOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsO1xuICAgIGFyaWFEZXNjcmliZWRCeUVsZW1lbnRzOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsO1xuICAgIGFyaWFEZXRhaWxzRWxlbWVudHM6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGw7XG4gICAgYXJpYUVycm9yTWVzc2FnZUVsZW1lbnRzOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsO1xuICAgIGFyaWFMYWJlbGxlZEJ5RWxlbWVudHM6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGw7XG4gICAgYXJpYU93bnNFbGVtZW50czogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbDtcbiAgfVxufVxuXG5pZiAoIWlzU2VydmVyKSB7XG4gIC8vIFRoaXMgaXMgYSBwb2x5ZmlsbCBmb3IgdGhlIGFyaWEgZWxlbWVudHMgcHJvcGVydGllcyBvbiBFbGVtZW50SW50ZXJuYWxzIGFuZCBFbGVtZW50LlxuICBsZXQgbmV4dElkID0gMDtcbiAgY29uc3QgcmVzb2x2ZUhvc3QgPSAob3JpZ2luOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCk6IEVsZW1lbnQgPT5cbiAgICBvcmlnaW4uc2hhZG93Um9vdD8uaG9zdCA/P1xuICAgIChvcmlnaW4gaW5zdGFuY2VvZiBFbGVtZW50XG4gICAgICA/IG9yaWdpblxuICAgICAgOiAoKCkgPT4ge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHJlc29sdmUgcmVsYXRlZCBlbGVtZW50ISBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4uJyk7XG4gICAgICAgIH0pKCkpO1xuICBjb25zdCBvYnNlcnZlck9wdGlvbnM6IE11dGF0aW9uT2JzZXJ2ZXJJbml0ID0geyBhdHRyaWJ1dGVzOiB0cnVlLCBhdHRyaWJ1dGVGaWx0ZXI6IFsnaWQnXSB9O1xuICBjb25zdCBhc3NpZ25FbGVtZW50ID0gKFxuICAgIGhvc3Q6IEVsZW1lbnQsXG4gICAgYXR0cmlidXRlOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnQ+LFxuICApOiB2b2lkID0+IHtcbiAgICAvLyBJbiBjYXNlIGJvdGggRWxlbWVudCBhbmQgRWxlbWVudEludGVybmFscyBwcm9wZXJ0aWVzIGFyZSBzZXQsXG4gICAgLy8gdGhlIGVsZW1lbnQgcmVmZXJlbmNlIGZyb20gRWxlbWVudCBoYXMgcHJpb3JpdHkuXG4gICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IGVsZW1lbnRzW0VsZW1lbnQubmFtZV0gPz8gZWxlbWVudHNbRWxlbWVudEludGVybmFscy5uYW1lXTtcbiAgICBob3N0LnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIChhY3RpdmVFbGVtZW50LmlkIHx8PSBgYXJpYS1yZWYtJHtuZXh0SWQrK31gKSk7XG4gIH07XG4gIGNvbnN0IGFzc2lnbkVsZW1lbnRzID0gKFxuICAgIGhvc3Q6IEVsZW1lbnQsXG4gICAgYXR0cmlidXRlOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnRbXT4sXG4gICk6IHZvaWQgPT4ge1xuICAgIC8vIEluIGNhc2UgYm90aCBFbGVtZW50IGFuZCBFbGVtZW50SW50ZXJuYWxzIHByb3BlcnRpZXMgYXJlIHNldCxcbiAgICAvLyB3ZSBjb21iaW5lIHRoZSBlbGVtZW50IHJlZmVyZW5jZXMuXG4gICAgaG9zdC5zZXRBdHRyaWJ1dGUoXG4gICAgICBhdHRyaWJ1dGUsXG4gICAgICBPYmplY3QudmFsdWVzKGVsZW1lbnRzKVxuICAgICAgICAucmVkdWNlKChjdXJyZW50LCBuZXh0KSA9PiBjdXJyZW50LmNvbmNhdChuZXh0KSlcbiAgICAgICAgLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKVxuICAgICAgICAubWFwKChlKSA9PiBlLmlkIHx8IChlLmlkID0gYGFyaWEtcmVmLSR7bmV4dElkKyt9YCkpXG4gICAgICAgIC5qb2luKCcgJyksXG4gICAgKTtcbiAgfTtcblxuICBmb3IgKGNvbnN0IHR5cGUgb2YgW0VsZW1lbnRJbnRlcm5hbHMsIEVsZW1lbnRdKSB7XG4gICAgY29uc3QgcHJvdG90eXBlID0gdHlwZS5wcm90b3R5cGU7XG4gICAgaWYgKCEoJ2FyaWFBY3RpdmVEZXNjZW5kYW50RWxlbWVudCcgaW4gcHJvdG90eXBlKSkge1xuICAgICAgY29uc3QgYXR0cmlidXRlID0gJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCc7XG4gICAgICBjb25zdCBzdG9yYWdlID0gbmV3IFdlYWtNYXA8XG4gICAgICAgIEVsZW1lbnQsXG4gICAgICAgIHsgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnQ+OyBvYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB9XG4gICAgICA+KCk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG90eXBlLCAnYXJpYUFjdGl2ZURlc2NlbmRhbnRFbGVtZW50Jywge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGdldCh0aGlzOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCk6IEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgICBjb25zdCBob3N0ID0gcmVzb2x2ZUhvc3QodGhpcyk7XG4gICAgICAgICAgY29uc3QgaWQgPSBob3N0LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpPy5zcGxpdCgvXFxzKy8pWzBdID8/IG51bGw7XG4gICAgICAgICAgcmV0dXJuIGlkXG4gICAgICAgICAgICA/ICgoaG9zdC5nZXRSb290Tm9kZSgpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdCkuZ2V0RWxlbWVudEJ5SWQ/LihpZCkgPz8gbnVsbClcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0KHRoaXM6IEVsZW1lbnRJbnRlcm5hbHMgfCBFbGVtZW50LCB2YWx1ZTogRWxlbWVudCB8IG51bGwpIHtcbiAgICAgICAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIEVsZW1lbnQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICAgICBgRmFpbGVkIHRvIHNldCB0aGUgJ2FyaWFBY3RpdmVEZXNjZW5kYW50RWxlbWVudCcgcHJvcGVydHkgb24gJyR7dHlwZS5uYW1lfSc6IEZhaWxlZCB0byBjb252ZXJ0IHZhbHVlIHRvICdFbGVtZW50Jy5gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBob3N0ID0gcmVzb2x2ZUhvc3QodGhpcyk7XG4gICAgICAgICAgY29uc3QgZW50cnkgPSBzdG9yYWdlLmdldChob3N0KTtcbiAgICAgICAgICBlbnRyeT8ub2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgICBkZWxldGUgZW50cnkuZWxlbWVudHNbdHlwZS5uYW1lXTtcbiAgICAgICAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhlbnRyeSkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgc3RvcmFnZS5kZWxldGUoaG9zdCk7XG4gICAgICAgICAgICAgICAgaG9zdC5yZW1vdmVBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBlbnRyeS5vYnNlcnZlci5vYnNlcnZlKE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpWzBdLCBvYnNlcnZlck9wdGlvbnMpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICghZW50cnkpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50PiA9IHsgW3R5cGUubmFtZV06IHZhbHVlIH07XG4gICAgICAgICAgICBhc3NpZ25FbGVtZW50KGhvc3QsIGF0dHJpYnV0ZSwgZWxlbWVudHMpO1xuICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiBhc3NpZ25FbGVtZW50KGhvc3QsIGF0dHJpYnV0ZSwgZWxlbWVudHMpKTtcbiAgICAgICAgICAgIG9ic2VydmVyLm9ic2VydmUodmFsdWUsIG9ic2VydmVyT3B0aW9ucyk7XG4gICAgICAgICAgICBzdG9yYWdlLnNldChob3N0LCB7IGVsZW1lbnRzLCBvYnNlcnZlciB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZW50cnkuZWxlbWVudHNbdHlwZS5uYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgYXNzaWduRWxlbWVudChob3N0LCBhdHRyaWJ1dGUsIGVudHJ5LmVsZW1lbnRzKTtcbiAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpLmZvckVhY2goKGUpID0+XG4gICAgICAgICAgICAgIGVudHJ5Lm9ic2VydmVyLm9ic2VydmUoZSwgb2JzZXJ2ZXJPcHRpb25zKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBbXG4gICAgICAnYXJpYUNvbnRyb2xzRWxlbWVudHMnLFxuICAgICAgJ2FyaWFEZXNjcmliZWRCeUVsZW1lbnRzJyxcbiAgICAgICdhcmlhRGV0YWlsc0VsZW1lbnRzJyxcbiAgICAgICdhcmlhRXJyb3JNZXNzYWdlRWxlbWVudHMnLFxuICAgICAgJ2FyaWFMYWJlbGxlZEJ5RWxlbWVudHMnLFxuICAgICAgJ2FyaWFPd25zRWxlbWVudHMnLFxuICAgIF0pIHtcbiAgICAgIGlmICghKHByb3BlcnR5IGluIHByb3RvdHlwZSkpIHtcbiAgICAgICAgY29uc3Qgc3RvcmFnZSA9IG5ldyBXZWFrTWFwPFxuICAgICAgICAgIEVsZW1lbnQsXG4gICAgICAgICAgeyBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudFtdPjsgb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfVxuICAgICAgICA+KCk7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IGBhcmlhLSR7cHJvcGVydHkuc2xpY2UoNCwgLTgpLnRvTG93ZXJDYXNlKCl9YDtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvdHlwZSwgcHJvcGVydHksIHtcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICBnZXQodGhpczogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQpOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsIHtcbiAgICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzID0gaG9zdFxuICAgICAgICAgICAgICAuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSlcbiAgICAgICAgICAgICAgPy5zcGxpdCgvXFxzKy8pXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHYsIGksIGEpID0+IGEuaW5kZXhPZih2KSA9PT0gaSlcbiAgICAgICAgICAgICAgLm1hcCgoaWQpID0+IChob3N0LmdldFJvb3ROb2RlKCkgYXMgRG9jdW1lbnQgfCBTaGFkb3dSb290KS5nZXRFbGVtZW50QnlJZD8uKGlkKSlcbiAgICAgICAgICAgICAgLmZpbHRlcigoZSkgPT4gZSBpbnN0YW5jZW9mIEVsZW1lbnQpO1xuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzPy5sZW5ndGggPyBPYmplY3QuZnJlZXplKGVsZW1lbnRzKSA6IG51bGw7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZXQodGhpczogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQsIHZhbHVlOiBFbGVtZW50W10pIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgKCFBcnJheS5pc0FycmF5KHZhbHVlKSB8fCB2YWx1ZS5zb21lKChlbGVtZW50KSA9PiAhKGVsZW1lbnQgaW5zdGFuY2VvZiBFbGVtZW50KSkpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAgICAgICBgRmFpbGVkIHRvIHNldCB0aGUgJyR7cHJvcGVydHl9JyBwcm9wZXJ0eSBvbiAnJHt0eXBlLm5hbWV9JzogRmFpbGVkIHRvIGNvbnZlcnQgdmFsdWUgdG8gJ0VsZW1lbnQnLmAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWU/LmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKSA/PyBudWxsO1xuICAgICAgICAgICAgY29uc3QgZW50cnkgPSBzdG9yYWdlLmdldChob3N0KTtcbiAgICAgICAgICAgIGVudHJ5Py5vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdO1xuICAgICAgICAgICAgICAgIGlmICghT2JqZWN0LmtleXMoZW50cnkpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgc3RvcmFnZS5kZWxldGUoaG9zdCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpXG4gICAgICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQuY29uY2F0KG5leHQpKVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgoZSkgPT4gZW50cnkub2JzZXJ2ZXIub2JzZXJ2ZShlLCBvYnNlcnZlck9wdGlvbnMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIWVudHJ5KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50W10+ID0geyBbdHlwZS5uYW1lXTogdmFsdWUgfTtcbiAgICAgICAgICAgICAgYXNzaWduRWxlbWVudHMoaG9zdCwgYXR0cmlidXRlLCBlbGVtZW50cyk7XG4gICAgICAgICAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT5cbiAgICAgICAgICAgICAgICBhc3NpZ25FbGVtZW50cyhob3N0LCBhdHRyaWJ1dGUsIGVsZW1lbnRzKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgoZWxlbWVudCkgPT4gb2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50LCBvYnNlcnZlck9wdGlvbnMpKTtcbiAgICAgICAgICAgICAgc3RvcmFnZS5zZXQoaG9zdCwgeyBlbGVtZW50cywgb2JzZXJ2ZXIgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdID0gdmFsdWU7XG4gICAgICAgICAgICAgIGFzc2lnbkVsZW1lbnRzKGhvc3QsIGF0dHJpYnV0ZSwgZW50cnkuZWxlbWVudHMpO1xuICAgICAgICAgICAgICBPYmplY3QudmFsdWVzKGVudHJ5LmVsZW1lbnRzKVxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQuY29uY2F0KG5leHQpKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKChlKSA9PiBlbnRyeS5vYnNlcnZlci5vYnNlcnZlKGUsIG9ic2VydmVyT3B0aW9ucykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNiYkVsZW1lbnRJbnRlcm5hbHNDb25zdHJ1Y3RvciB7XG4gIHJvbGU/OiBFbGVtZW50SW50ZXJuYWxzWydyb2xlJ107XG59XG5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGUge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW50ZXJuYWxzOiBFbGVtZW50SW50ZXJuYWxzO1xuICBwcm90ZWN0ZWQgdG9nZ2xlU3RhdGUoc3RhdGU6IHN0cmluZywgZm9yY2U/OiBib29sZWFuKTogdm9pZDtcbn1cblxuLyoqXG4gKiBBcHBlbmRzIHRoZSBnaXZlbiBlbGVtZW50cyB0byB0aGUgZ2l2ZW4gYXJpYSB2YWx1ZSBhbmQgcmV0dXJucyB0aGVcbiAqIGNvbWJpbmVkIHZhbHVlIGFzIGEgbmV3IGFycmF5IG9yIG51bGwsIGlmIGJvdGggdmFsdWVzIHdlcmUgZW1wdHkuXG4gKi9cbmV4cG9ydCBjb25zdCBhcHBlbmRBcmlhRWxlbWVudHMgPSAoXG4gIGFyaWFWYWx1ZTogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbCxcbiAgLi4ubmV3RWxlbWVudHM6IChFbGVtZW50IHwgbnVsbClbXVxuKTogRWxlbWVudFtdIHwgbnVsbCA9PiB7XG4gIGNvbnN0IGVsZW1lbnRzID0gbmV3RWxlbWVudHMuZmlsdGVyKCh2KTogdiBpcyBFbGVtZW50ID0+ICEhdik7XG4gIHJldHVybiBhcmlhVmFsdWU/Lmxlbmd0aCA/IGFyaWFWYWx1ZS5jb25jYXQoZWxlbWVudHMpIDogbmV3RWxlbWVudHMubGVuZ3RoID8gZWxlbWVudHMgOiBudWxsO1xufTtcblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBnaXZlbiBlbGVtZW50cyBmcm9tIHRoZSBnaXZlbiBhcmlhIHZhbHVlIGFuZCByZXR1cm5zXG4gKiB0aGUgcmVtYWluaW5nIGVsZW1lbnRzIGFzIGEgbmV3IGFycmF5IG9yIG51bGwsIGlmIHRoZSByZXN1bHQgaXMgZW1wdHkuXG4gKi9cbmV4cG9ydCBjb25zdCByZW1vdmVBcmlhRWxlbWVudHMgPSAoXG4gIGFyaWFWYWx1ZTogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbCxcbiAgLi4ucmVtb3ZhYmxlRWxlbWVudHM6IChFbGVtZW50IHwgbnVsbClbXVxuKTogRWxlbWVudFtdIHwgbnVsbCA9PiB7XG4gIHJlbW92YWJsZUVsZW1lbnRzID0gcmVtb3ZhYmxlRWxlbWVudHMuZmlsdGVyKCh2KSA9PiAhIXYpO1xuICBjb25zdCBlbGVtZW50cyA9IGFyaWFWYWx1ZT8uZmlsdGVyKCh2KSA9PiAhcmVtb3ZhYmxlRWxlbWVudHMuaW5jbHVkZXModikpID8/IG51bGw7XG4gIHJldHVybiBlbGVtZW50cz8ubGVuZ3RoID8gZWxlbWVudHMgOiBudWxsO1xufTtcblxuLyoqXG4gKiBUaGUgU2JiRWxlbWVudEludGVybmFsc01peGluIGF0dGFjaGVzIEVsZW1lbnRJbnRlcm5hbHMgdG8gdGhlIGVsZW1lbnQgYW5kIHNldHNcbiAqIHRoZSByb2xlLCBpZiBkZWZpbmVkLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRWxlbWVudEludGVybmFsc01peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRWxlbWVudEludGVybmFsc01peGluVHlwZT4gJiBUICYgU2JiRWxlbWVudEludGVybmFsc0NvbnN0cnVjdG9yID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRWxlbWVudEludGVybmFsRWxlbWVudFxuICAgIGV4dGVuZHMgc3VwZXJDbGFzc1xuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlPlxuICB7XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpbnRlcm5hbHM6IEVsZW1lbnRJbnRlcm5hbHMgPSB0aGlzLmF0dGFjaEludGVybmFscygpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICBzdXBlciguLi5hcmdzKTtcbiAgICAgIGlmIChDdXN0b21TdGF0ZVNldFBvbHlmaWxsKSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLmludGVybmFscywgJ3N0YXRlcycsIHtcbiAgICAgICAgICB2YWx1ZTogbmV3IEN1c3RvbVN0YXRlU2V0UG9seWZpbGwodGhpcyksXG4gICAgICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgY29uc3Qgcm9sZSA9ICh0aGlzLmNvbnN0cnVjdG9yIGFzIFNiYkVsZW1lbnRJbnRlcm5hbHNDb25zdHJ1Y3Rvcikucm9sZTtcbiAgICAgIGlmIChyb2xlKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLnJvbGUgPSByb2xlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCB0b2dnbGVTdGF0ZShzdGF0ZTogc3RyaW5nLCBmb3JjZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgIGlmIChmb3JjZSB8fCAoZm9yY2UgIT09IGZhbHNlICYmICF0aGlzLmludGVybmFscy5zdGF0ZXMuaGFzKHN0YXRlKSkpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChzdGF0ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKHN0YXRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNiYkVsZW1lbnRJbnRlcm5hbEVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGU+ICZcbiAgICBUICZcbiAgICBTYmJFbGVtZW50SW50ZXJuYWxzQ29uc3RydWN0b3I7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFXQSxNQUFNLHlCQUNKLENBQUMsWUFBWSxDQUFDLElBQUksU0FBUywyQkFBMkIsSUFDbEQsTUFBTSx1QkFDSSxJQUFXO0FBQUEsRUFHbkIsWUFBMkIsT0FBaUI7QUFDMUMsVUFBQTtBQUR5QixTQUFBLFFBQUE7QUFFekIsU0FBSyxNQUFNLGNBQWMsSUFBSTtBQUFBLEVBQy9CO0FBQUEsRUFFZ0IsSUFBSSxPQUFhO0FBQy9CLFFBQUksS0FBSyxNQUFNLGFBQWE7QUFDMUIsV0FBSyxhQUFhLE9BQU8sSUFBSTtBQUFBLElBQy9CO0FBQ0EsV0FBTyxNQUFNLElBQUksS0FBSztBQUFBLEVBQ3hCO0FBQUEsRUFFZ0IsT0FBTyxPQUFhO0FBQ2xDLFNBQUssYUFBYSxPQUFPLEtBQUs7QUFDOUIsV0FBTyxNQUFNLE9BQU8sS0FBSztBQUFBLEVBQzNCO0FBQUEsRUFFZ0IsUUFBSztBQUNuQixTQUFLLFFBQVEsQ0FBQyxVQUFVLEtBQUssT0FBTyxLQUFLLENBQUM7QUFBQSxFQUM1QztBQUFBLEVBRU8sZ0JBQWE7QUFDbEIsU0FBSyxRQUFRLENBQUMsVUFBVSxLQUFLLGFBQWEsT0FBTyxJQUFJLENBQUM7QUFBQSxFQUN4RDtBQUFBLEVBRVEsYUFBYSxPQUFlLFNBQWdCO0FBQ2xELFNBQUssTUFBTSxnQkFBZ0IsVUFBVSxLQUFLLElBQUksT0FBTztBQUFBLEVBQ3ZEO0FBQ0QsSUFDRDtBQWNOLElBQUksQ0FBQyxVQUFV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
@@ -144,4 +144,4 @@ const SbbFormAssociatedCheckboxMixin = (superClass) => {
144
144
  export {
145
145
  SbbFormAssociatedCheckboxMixin
146
146
  };
147
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWNoZWNrYm94LW1peGluLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLWNoZWNrYm94LW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmF1bHRDb252ZXJ0ZXIsIHR5cGUgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHByZXZlbnRTY3JvbGxPblNwYWNlYmFyUHJlc3MgfSBmcm9tICcuLi9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBpMThuQ2hlY2tib3hSZXF1aXJlZCB9IGZyb20gJy4uL2kxOG4uanMnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLmpzJztcbmltcG9ydCB7IFNiYkRpc2FibGVkTWl4aW4gfSBmcm9tICcuL2Rpc2FibGVkLW1peGluLmpzJztcbmltcG9ydCB7IFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbiB9IGZyb20gJy4vZWxlbWVudC1pbnRlcm5hbHMtbWl4aW4uanMnO1xuaW1wb3J0IHtcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbixcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxufSBmcm9tICcuL2Zvcm0tYXNzb2NpYXRlZC1taXhpbi5qcyc7XG5pbXBvcnQgeyBTYmJSZXF1aXJlZE1peGluIH0gZnJvbSAnLi9yZXF1aXJlZC1taXhpbi5qcyc7XG5cbnR5cGUgQ2hlY2tlZFNldHRlclZhbHVlID0geyB2YWx1ZTogYm9vbGVhbjsgYXR0cmlidXRlOiBib29sZWFuIH07XG5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hNaXhpblR5cGUgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFxuICBTYmJSZXF1aXJlZE1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudEludGVybmFsc01peGluKExpdEVsZW1lbnQpKSksXG4pIHtcbiAgcHVibGljIGFjY2Vzc29yIGNoZWNrZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQ7XG4gIHB1YmxpYyBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLCByZWFzb246IEZvcm1SZXN0b3JlUmVhc29uKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgaXNSZXF1aXJlZEV4dGVybmFsbHkoKTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIHdpdGhVc2VySW50ZXJhY3Rpb24/KCk6IHZvaWQ7XG4gIHByb3RlY3RlZCB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBUaGUgRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluIGVuYWJsZXMgbmF0aXZlIGZvcm0gc3VwcG9ydCBmb3IgY2hlY2tib3ggY29udHJvbHMuXG4gKlxuICogSW5oZXJpdGVkIGNsYXNzZXMgTVVTVCBpbXBsZW1lbnQgdGhlIGFyaWFDaGVja2VkIHN0YXRlIChFbGVtZW50SW50ZXJuYWxzKSB0aGVtc2VsdmVzLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluVHlwZT4gJiBUID0+IHtcbiAgQGhvc3RBdHRyaWJ1dGVzKHtcbiAgICB0YWJpbmRleDogJzAnLFxuICB9KVxuICBhYnN0cmFjdCBjbGFzcyBTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94RWxlbWVudFxuICAgIGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihcbiAgICAgIFNiYlJlcXVpcmVkTWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oc3VwZXJDbGFzcykpKSxcbiAgICApXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hNaXhpblR5cGU+XG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAnY2hlY2tib3gnO1xuXG4gICAgcHJpdmF0ZSBfYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfbGFuZ3VhZ2VDb250cm9sbGVyID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyBjaGVja2VkLiAqL1xuICAgIEBwcm9wZXJ0eSh7XG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgY29udmVydGVyOiB7XG4gICAgICAgIC4uLmRlZmF1bHRDb252ZXJ0ZXIsXG4gICAgICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbmZvcm1hdGlvbiB0byB0aGUgc2V0dGVyIHNvIHRoYXQgd2Uga25vdyBpdCB3YXMgY2FsbGVkIGJ5IGF0dHJpYnV0ZSBjaGFuZ2UuXG4gICAgICAgIGZyb21BdHRyaWJ1dGU6ICh2YWx1ZTogc3RyaW5nIHwgbnVsbCwgdHlwZT86IHVua25vd24pOiBDaGVja2VkU2V0dGVyVmFsdWUgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGRlZmF1bHRDb252ZXJ0ZXIuZnJvbUF0dHJpYnV0ZT8uKHZhbHVlLCB0eXBlKTtcbiAgICAgICAgICByZXR1cm4geyB2YWx1ZTogcmVzdWx0LCBhdHRyaWJ1dGU6IHRydWUgfSBhcyBDaGVja2VkU2V0dGVyVmFsdWU7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pXG4gICAgcHVibGljIHNldCBjaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICBjb25zdCBhdHRyaWJ1dGVTZXR0ZXIgPVxuICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnID8gKHZhbHVlIGFzIHVua25vd24gYXMgQ2hlY2tlZFNldHRlclZhbHVlKS5hdHRyaWJ1dGUgOiBmYWxzZTtcbiAgICAgIGlmIChhdHRyaWJ1dGVTZXR0ZXIpIHtcbiAgICAgICAgdmFsdWUgPSAodmFsdWUgYXMgdW5rbm93biBhcyBDaGVja2VkU2V0dGVyVmFsdWUpLnZhbHVlO1xuICAgICAgfVxuXG4gICAgICAvLyBBcyBzb29uIGFzIG11dGF0aW9uIHdhcyBkb25lIG5vdCBieSBzZXR0aW5nIGF0dHJpYnV0ZSxcbiAgICAgIC8vIHdlIG5lZWQgdG8gYmxvY2sgc3luY2luZyBhdHRyaWJ1dGUuXG4gICAgICBpZiAodGhpcy5oYXNVcGRhdGVkICYmICFhdHRyaWJ1dGVTZXR0ZXIpIHtcbiAgICAgICAgdGhpcy5fYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2NoZWNrZWQgPSBCb29sZWFuKHZhbHVlKTtcbiAgICAgIHRoaXMudXBkYXRlRm9ybVZhbHVlKCk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLl9jaGVja2VkO1xuICAgIH1cbiAgICBwcml2YXRlIF9jaGVja2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIHR5cGUgb2YgZWxlbWVudC5cbiAgICAgKiBAZGVmYXVsdCAnY2hlY2tib3gnXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gJ2NoZWNrYm94JztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgdGhpcy5faGFuZGxlVXNlckludGVyYWN0aW9uKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdrZXlkb3duJywgcHJldmVudFNjcm9sbE9uU3BhY2ViYXJQcmVzcyk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5dXAnLCB0aGlzLl9oYW5kbGVLZXlib2FyZEludGVyYWN0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICAgKTogdm9pZCB7XG4gICAgICAvLyBBdHRyaWJ1dGUgc2hvdWxkIG5vdCBiZSBpbnRlcnByZXRlZCBhZnRlciBwcm9ncmFtbWF0aWMgb3IgbWFudWFsIHN0YXRlIGNoYW5nZS5cbiAgICAgIGlmIChuYW1lICE9PSAnY2hlY2tlZCcgfHwgIXRoaXMuX2F0dHJpYnV0ZU11dGF0aW9uQmxvY2tlZCkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5jaGVja2VkID0gdGhpcy5oYXNBdHRyaWJ1dGUoJ2NoZWNrZWQnKTtcbiAgICAgIHRoaXMuX2F0dHJpYnV0ZU11dGF0aW9uQmxvY2tlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZSkge1xuICAgICAgICB0aGlzLmNoZWNrZWQgPSBzdGF0ZSA9PT0gJ3RydWUnO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZGl0aW9uYWwgbG9naWMgd2hpY2ggaXMgYmVpbmcgZXhlY3V0ZWQgd2hlbiB1c2VyXG4gICAgICogaW50ZXJhY3Rpb24gaGFwcGVucyBhbmQgc3RhdGUgaXMgbm90IGRpc2FibGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCB3aXRoVXNlckludGVyYWN0aW9uPygpOiB2b2lkO1xuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHVwZGF0ZUZvcm1WYWx1ZSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmNoZWNrZWQpIHtcbiAgICAgICAgc3VwZXIudXBkYXRlRm9ybVZhbHVlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmludGVybmFscy5zZXRGb3JtVmFsdWUobnVsbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGZvcm1TdGF0ZSgpOiBGb3JtUmVzdG9yZVN0YXRlIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmNoZWNrZWR9YDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2hvdWxkVmFsaWRhdGUobmFtZTogUHJvcGVydHlLZXkgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBzdXBlci5zaG91bGRWYWxpZGF0ZShuYW1lKSB8fCBuYW1lID09PSAnY2hlY2tlZCcgfHwgbmFtZSA9PT0gJ3JlcXVpcmVkJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgICBzdXBlci52YWxpZGF0ZSgpO1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMuY2hlY2tlZCkge1xuICAgICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZyhcbiAgICAgICAgICAndmFsdWVNaXNzaW5nJyxcbiAgICAgICAgICBpMThuQ2hlY2tib3hSZXF1aXJlZFt0aGlzLl9sYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudF0sXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0cmlnZ2VyZWQgb24ga2V5Ym9hcmQgdXNlciBpbnRlcmFjdGlvbiB3aXRoIGNoZWNrYm94LiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZUtleWJvYXJkSW50ZXJhY3Rpb24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgICB0aGlzLl9oYW5kbGVVc2VySW50ZXJhY3Rpb24oKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqIE1ldGhvZCB0cmlnZ2VyZWQgb24gdXNlciBpbnRlcmFjdGlvbiB3aXRoIGNoZWNrYm94LiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZVVzZXJJbnRlcmFjdGlvbiA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMud2l0aFVzZXJJbnRlcmFjdGlvbj8uKCk7XG4gICAgICB0aGlzLmNoZWNrZWQgPSAhdGhpcy5jaGVja2VkO1xuICAgICAgdGhpcy5fYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gdHJ1ZTtcblxuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgY29tcG9zZWQ6IHRydWUsIGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUF1Q08sTUFBTSxpQ0FBaUMsQ0FDNUMsZUFDK0Q7TUFJaEQsb0NBQWdDLE1BQUE7O0FBSDlDLFFBQUEsbUJBQUEsQ0FBQSxlQUFlO0FBQUEsTUFDZCxVQUFVO0FBQUEsSUFBQSxDQUNYLENBQUM7Ozs7c0JBRVEsaUJB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
147
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWNoZWNrYm94LW1peGluLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLWNoZWNrYm94LW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmF1bHRDb252ZXJ0ZXIsIHR5cGUgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHByZXZlbnRTY3JvbGxPblNwYWNlYmFyUHJlc3MgfSBmcm9tICcuLi9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBpMThuQ2hlY2tib3hSZXF1aXJlZCB9IGZyb20gJy4uL2kxOG4uanMnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLmpzJztcbmltcG9ydCB7IFNiYkRpc2FibGVkTWl4aW4gfSBmcm9tICcuL2Rpc2FibGVkLW1peGluLmpzJztcbmltcG9ydCB7IFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbiB9IGZyb20gJy4vZWxlbWVudC1pbnRlcm5hbHMtbWl4aW4uanMnO1xuaW1wb3J0IHtcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbixcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxufSBmcm9tICcuL2Zvcm0tYXNzb2NpYXRlZC1taXhpbi5qcyc7XG5pbXBvcnQgeyBTYmJSZXF1aXJlZE1peGluIH0gZnJvbSAnLi9yZXF1aXJlZC1taXhpbi5qcyc7XG5cbnR5cGUgQ2hlY2tlZFNldHRlclZhbHVlID0geyB2YWx1ZTogYm9vbGVhbjsgYXR0cmlidXRlOiBib29sZWFuIH07XG5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hNaXhpblR5cGUgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFxuICBTYmJSZXF1aXJlZE1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudEludGVybmFsc01peGluKExpdEVsZW1lbnQpKSksXG4pIHtcbiAgcHVibGljIGFjY2Vzc29yIGNoZWNrZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQ7XG4gIHB1YmxpYyBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLCByZWFzb246IEZvcm1SZXN0b3JlUmVhc29uKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgaXNSZXF1aXJlZEV4dGVybmFsbHkoKTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIHdpdGhVc2VySW50ZXJhY3Rpb24/KCk6IHZvaWQ7XG4gIHByb3RlY3RlZCB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBUaGUgRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluIGVuYWJsZXMgbmF0aXZlIGZvcm0gc3VwcG9ydCBmb3IgY2hlY2tib3ggY29udHJvbHMuXG4gKlxuICogSW5oZXJpdGVkIGNsYXNzZXMgTVVTVCBpbXBsZW1lbnQgdGhlIGFyaWFDaGVja2VkIHN0YXRlIChFbGVtZW50SW50ZXJuYWxzKSB0aGVtc2VsdmVzLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluVHlwZT4gJiBUID0+IHtcbiAgQGhvc3RBdHRyaWJ1dGVzKHtcbiAgICB0YWJpbmRleDogJzAnLFxuICB9KVxuICBhYnN0cmFjdCBjbGFzcyBTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94RWxlbWVudFxuICAgIGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihcbiAgICAgIFNiYlJlcXVpcmVkTWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oc3VwZXJDbGFzcykpKSxcbiAgICApXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hNaXhpblR5cGU+XG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAnY2hlY2tib3gnO1xuXG4gICAgcHJpdmF0ZSBfYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfbGFuZ3VhZ2VDb250cm9sbGVyID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyBjaGVja2VkLiAqL1xuICAgIEBwcm9wZXJ0eSh7XG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgY29udmVydGVyOiB7XG4gICAgICAgIC4uLmRlZmF1bHRDb252ZXJ0ZXIsXG4gICAgICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbmZvcm1hdGlvbiB0byB0aGUgc2V0dGVyIHNvIHRoYXQgd2Uga25vdyBpdCB3YXMgY2FsbGVkIGJ5IGF0dHJpYnV0ZSBjaGFuZ2UuXG4gICAgICAgIGZyb21BdHRyaWJ1dGU6ICh2YWx1ZTogc3RyaW5nIHwgbnVsbCwgdHlwZT86IHVua25vd24pOiBDaGVja2VkU2V0dGVyVmFsdWUgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGRlZmF1bHRDb252ZXJ0ZXIuZnJvbUF0dHJpYnV0ZT8uKHZhbHVlLCB0eXBlKTtcbiAgICAgICAgICByZXR1cm4geyB2YWx1ZTogcmVzdWx0LCBhdHRyaWJ1dGU6IHRydWUgfSBhcyBDaGVja2VkU2V0dGVyVmFsdWU7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pXG4gICAgcHVibGljIHNldCBjaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICBjb25zdCBhdHRyaWJ1dGVTZXR0ZXIgPVxuICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnID8gKHZhbHVlIGFzIHVua25vd24gYXMgQ2hlY2tlZFNldHRlclZhbHVlKS5hdHRyaWJ1dGUgOiBmYWxzZTtcbiAgICAgIGlmIChhdHRyaWJ1dGVTZXR0ZXIpIHtcbiAgICAgICAgdmFsdWUgPSAodmFsdWUgYXMgdW5rbm93biBhcyBDaGVja2VkU2V0dGVyVmFsdWUpLnZhbHVlO1xuICAgICAgfVxuXG4gICAgICAvLyBBcyBzb29uIGFzIG11dGF0aW9uIHdhcyBkb25lIG5vdCBieSBzZXR0aW5nIGF0dHJpYnV0ZSxcbiAgICAgIC8vIHdlIG5lZWQgdG8gYmxvY2sgc3luY2luZyBhdHRyaWJ1dGUuXG4gICAgICBpZiAodGhpcy5oYXNVcGRhdGVkICYmICFhdHRyaWJ1dGVTZXR0ZXIpIHtcbiAgICAgICAgdGhpcy5fYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2NoZWNrZWQgPSBCb29sZWFuKHZhbHVlKTtcbiAgICAgIHRoaXMudXBkYXRlRm9ybVZhbHVlKCk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLl9jaGVja2VkO1xuICAgIH1cbiAgICBwcml2YXRlIF9jaGVja2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIHR5cGUgb2YgZWxlbWVudC5cbiAgICAgKiBAZGVmYXVsdCAnY2hlY2tib3gnXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gJ2NoZWNrYm94JztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgdGhpcy5faGFuZGxlVXNlckludGVyYWN0aW9uKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdrZXlkb3duJywgcHJldmVudFNjcm9sbE9uU3BhY2ViYXJQcmVzcyk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5dXAnLCB0aGlzLl9oYW5kbGVLZXlib2FyZEludGVyYWN0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICAgKTogdm9pZCB7XG4gICAgICAvLyBBdHRyaWJ1dGUgc2hvdWxkIG5vdCBiZSBpbnRlcnByZXRlZCBhZnRlciBwcm9ncmFtbWF0aWMgb3IgbWFudWFsIHN0YXRlIGNoYW5nZS5cbiAgICAgIGlmIChuYW1lICE9PSAnY2hlY2tlZCcgfHwgIXRoaXMuX2F0dHJpYnV0ZU11dGF0aW9uQmxvY2tlZCkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5jaGVja2VkID0gdGhpcy5oYXNBdHRyaWJ1dGUoJ2NoZWNrZWQnKTtcbiAgICAgIHRoaXMuX2F0dHJpYnV0ZU11dGF0aW9uQmxvY2tlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZSkge1xuICAgICAgICB0aGlzLmNoZWNrZWQgPSBzdGF0ZSA9PT0gJ3RydWUnO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZGl0aW9uYWwgbG9naWMgd2hpY2ggaXMgYmVpbmcgZXhlY3V0ZWQgd2hlbiB1c2VyXG4gICAgICogaW50ZXJhY3Rpb24gaGFwcGVucyBhbmQgc3RhdGUgaXMgbm90IGRpc2FibGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCB3aXRoVXNlckludGVyYWN0aW9uPygpOiB2b2lkO1xuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHVwZGF0ZUZvcm1WYWx1ZSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmNoZWNrZWQpIHtcbiAgICAgICAgc3VwZXIudXBkYXRlRm9ybVZhbHVlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmludGVybmFscy5zZXRGb3JtVmFsdWUobnVsbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGZvcm1TdGF0ZSgpOiBGb3JtUmVzdG9yZVN0YXRlIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmNoZWNrZWR9YDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2hvdWxkVmFsaWRhdGUobmFtZTogUHJvcGVydHlLZXkgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBzdXBlci5zaG91bGRWYWxpZGF0ZShuYW1lKSB8fCBuYW1lID09PSAnY2hlY2tlZCcgfHwgbmFtZSA9PT0gJ3JlcXVpcmVkJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgICBzdXBlci52YWxpZGF0ZSgpO1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMuY2hlY2tlZCkge1xuICAgICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZyhcbiAgICAgICAgICAndmFsdWVNaXNzaW5nJyxcbiAgICAgICAgICBpMThuQ2hlY2tib3hSZXF1aXJlZFt0aGlzLl9sYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudF0sXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0cmlnZ2VyZWQgb24ga2V5Ym9hcmQgdXNlciBpbnRlcmFjdGlvbiB3aXRoIGNoZWNrYm94LiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZUtleWJvYXJkSW50ZXJhY3Rpb24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgICB0aGlzLl9oYW5kbGVVc2VySW50ZXJhY3Rpb24oKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqIE1ldGhvZCB0cmlnZ2VyZWQgb24gdXNlciBpbnRlcmFjdGlvbiB3aXRoIGNoZWNrYm94LiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZVVzZXJJbnRlcmFjdGlvbiA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMud2l0aFVzZXJJbnRlcmFjdGlvbj8uKCk7XG4gICAgICB0aGlzLmNoZWNrZWQgPSAhdGhpcy5jaGVja2VkO1xuICAgICAgdGhpcy5fYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gdHJ1ZTtcblxuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgY29tcG9zZWQ6IHRydWUsIGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUF1Q08sTUFBTSxpQ0FBaUMsQ0FDNUMsZUFDK0Q7TUFJaEQsb0NBQWdDLE1BQUE7O0FBSDlDLFFBQUEsbUJBQUEsQ0FBQSxlQUFlO0FBQUEsTUFDZCxVQUFVO0FBQUEsSUFBQSxDQUNYLENBQUM7Ozs7c0JBRVEsaUJB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
@@ -280,4 +280,4 @@ const SbbFormAssociatedInputMixin = (superClass) => {
280
280
  export {
281
281
  SbbFormAssociatedInputMixin
282
282
  };
283
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGh0bWwsXG4gIGlzU2VydmVyLFxuICB0eXBlIExpdEVsZW1lbnQsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGV2ZW50T3B0aW9ucywgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IHNiYklucHV0TW9kYWxpdHlEZXRlY3RvciB9IGZyb20gJy4uL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaXNXZWJraXQgfSBmcm9tICcuLi9kb20uanMnO1xuaW1wb3J0IHsgaTE4bklucHV0UmVxdWlyZWQgfSBmcm9tICcuLi9pMThuLmpzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci5qcyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZE1peGluIH0gZnJvbSAnLi9kaXNhYmxlZC1taXhpbi5qcyc7XG5pbXBvcnQgeyBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4gfSBmcm9tICcuL2VsZW1lbnQtaW50ZXJuYWxzLW1peGluLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgRm9ybVJlc3RvcmVSZWFzb24sXG4gIHR5cGUgRm9ybVJlc3RvcmVTdGF0ZSxcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbixcbn0gZnJvbSAnLi9mb3JtLWFzc29jaWF0ZWQtbWl4aW4uanMnO1xuaW1wb3J0IHsgU2JiUmVhZG9ubHlNaXhpbiB9IGZyb20gJy4vcmVhZG9ubHktbWl4aW4uanMnO1xuaW1wb3J0IHsgU2JiUmVxdWlyZWRNaXhpbiB9IGZyb20gJy4vcmVxdWlyZWQtbWl4aW4uanMnO1xuXG5leHBvcnQgZGVjbGFyZSBhYnN0cmFjdCBjbGFzcyBTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW5UeXBlIGV4dGVuZHMgU2JiUmVxdWlyZWRNaXhpbihcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oTGl0RWxlbWVudCkpLFxuKSB7XG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyk7XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nO1xuXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW47XG5cbiAgcHVibGljIHNldCByZWFkT25seSh2YWx1ZTogYm9vbGVhbik7XG4gIHB1YmxpYyBnZXQgcmVhZE9ubHkoKTogYm9vbGVhbjtcblxuICBwdWJsaWMgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpO1xuICBwdWJsaWMgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZztcblxuICAvKipcbiAgICogTWFrZXMgdGhlIHNlbGVjdGlvbiBlcXVhbCB0byB0aGUgY3VycmVudCBvYmplY3QuXG4gICAqXG4gICAqIFtNRE4gUmVmZXJlbmNlXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvSFRNTElucHV0RWxlbWVudC9zZWxlY3QpXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0KCk6IHZvaWQ7XG5cbiAgcHVibGljIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQ7XG4gIHB1YmxpYyBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLCByZWFzb246IEZvcm1SZXN0b3JlUmVhc29uKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgcHJlcGFyZVBhc3RlZFRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgbGFuZ3VhZ2U6IFNiYkxhbmd1YWdlQ29udHJvbGxlcjtcbn1cblxuY29uc3QgY2hlY2tQbGFpbnRleHRPbmx5U3VwcG9ydCA9ICgpOiBib29sZWFuID0+IHtcbiAgaWYgKGlzU2VydmVyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIGRpdi5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsICdQTEFJTlRFWFQtT05MWScpO1xuXG4gIC8vIElmIHBsYWludGV4dC1vbmx5IGlzIHN1cHBvcnRlZCwgdGhlIGF0dHJpYnV0ZSB2YWx1ZSBpc1xuICAvLyByZXR1cm5lZCBhcyBsb3dlci1jYXNlIGZyb20gdGhlIHByb3BlcnR5IGFjY2Vzcy5cbiAgcmV0dXJuIGRpdi5jb250ZW50RWRpdGFibGUgPT09ICdwbGFpbnRleHQtb25seSc7XG59O1xuY29uc3QgcGxhaW50ZXh0T25seVN1cHBvcnRlZCA9IGNoZWNrUGxhaW50ZXh0T25seVN1cHBvcnQoKTtcblxuLyoqXG4gKiBUaGUgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluIGVuYWJsZXMgbmF0aXZlIGZvcm0gc3VwcG9ydCBmb3IgdGV4dCBpbnB1dCBjb250cm9scy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRFbGVtZW50XG4gICAgZXh0ZW5kcyBTYmJSZWFkb25seU1peGluKFxuICAgICAgU2JiRGlzYWJsZWRNaXhpbihcbiAgICAgICAgU2JiUmVxdWlyZWRNaXhpbihTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbihzdXBlckNsYXNzKSkpLFxuICAgICAgKSxcbiAgICApXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpblR5cGU+XG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAndGV4dGJveCc7XG5cbiAgICAvKipcbiAgICAgKiBBbiBlbGVtZW50IHdpdGggY29udGVudGVkaXRhYmxlIHdpbGwgbm90IGVtaXQgYSBjaGFuZ2UgZXZlbnQuIFRvIGFjaGlldmUgcGFyaXR5XG4gICAgICogd2l0aCBhIG5hdGl2ZSB0ZXh0IGlucHV0LCB3ZSBuZWVkIHRvIHRyYWNrIHdoZXRoZXIgYSBjaGFuZ2UgZXZlbnQgc2hvdWxkIGJlXG4gICAgICogZW1pdHRlZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9zaG91bGRFbWl0Q2hhbmdlID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQSBuYXRpdmUgdGV4dCBpbnB1dCBhdHRlbXB0cyB0byBzdWJtaXQgdGhlIGZvcm0gd2hlbiBwcmVzc2luZyBFbnRlci5cbiAgICAgKiBUaGlzIGNhbiBiZSBwcmV2ZW50ZWQgYnkgY2FsbGluZyBwcmV2ZW50RGVmYXVsdCBvbiB0aGUga2V5ZG93biBldmVudC5cbiAgICAgKiBXZSB0cmFjayB3aGV0aGVyIHRvIHJlcXVlc3Qgc3VibWl0LCB3aGljaCBzaG91bGQgb2NjdXIgYmVmb3JlIHRoZSBrZXl1cFxuICAgICAqIGV2ZW50LlxuICAgICAqL1xuICAgIHByaXZhdGUgX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBsYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIHR5cGUgb2YgZWxlbWVudC5cbiAgICAgKiBAZGVmYXVsdCAndGV4dCdcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHR5cGUoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiAndGV4dCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIHZhbHVlIG9mIHRoZSBpbnB1dC4gUmVmbGVjdHMgdGhlIGN1cnJlbnQgdGV4dCB2YWx1ZSBvZiB0aGlzIGlucHV0LlxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSgpXG4gICAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX2NsZWFuVGV4dCh2YWx1ZSk7XG4gICAgICBpZiAodGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICAgIHRoaXMuaW5uZXJIVE1MID0gdGhpcy5fdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZSA/PyAnJztcbiAgICB9XG4gICAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZykge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicsIHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCdwbGFjZWhvbGRlcicpO1xuICAgICAgfVxuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYVBsYWNlaG9sZGVyID0gdmFsdWUgPyB2YWx1ZSA6IG51bGw7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSA/PyAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgLy8gV2UgcHJpbWFyaWx5IHVzZSBjYXB0dXJlIGV2ZW50IGxpc3RlbmVycywgYXMgd2Ugd2FudFxuICAgICAgLy8gb3VyIGxpc3RlbmVycyB0byBvY2N1ciBiZWZvcmUgY29uc3VtZXIgZXZlbnQgbGlzdGVuZXJzLlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdpbnB1dCcsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuX3ZhbHVlO1xuICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fY2xlYW5UZXh0KHRoaXMudGV4dENvbnRlbnQgPz8gJycpO1xuICAgICAgICAgIHRoaXMucmVxdWVzdFVwZGF0ZSgndmFsdWUnLCBvbGRWYWx1ZSk7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnaW50ZXJhY3RlZCcpO1xuICAgICAgICAgIHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UgPSB0cnVlO1xuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2hhbmdlJywgKCkgPT4gKHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UgPSBmYWxzZSksIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgICAna2V5ZG93bicsXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIC8vIFdlIHByZXZlbnQgcmVjdXJzaXZlIGV2ZW50cyBieSBjaGVja2luZyB0aGUgb3JpZ2luYWwgZXZlbnQgZm9yIGlzVHJ1c3RlZFxuICAgICAgICAgIC8vIHdoaWNoIGlzIGZhbHNlIGZvciBtYW51YWxseSBkaXNwYXRjaGVkIGV2ZW50cyAod2hpY2ggd2UgZGlzcGF0Y2ggYmVsb3cpLlxuICAgICAgICAgIGlmICgoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpICYmIGV2ZW50LmlzVHJ1c3RlZCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5fc2hvdWxkVHJpZ2dlclN1Ym1pdCA9IHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgS2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIGV2ZW50KSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGlzV2Via2l0ICYmXG4gICAgICAgICAgICB0aGlzLnZhbHVlICYmXG4gICAgICAgICAgICAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJyB8fCBldmVudC5rZXkgPT09ICdEZWxldGUnKSAmJlxuICAgICAgICAgICAgZXZlbnQuaXNUcnVzdGVkXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBJbiBXZWJraXQgcHJlc3NpbmcgQmFja3NwYWNlIG9yIERlbGV0ZSBjb21wbGV0ZWx5IHJlbW92ZXMgYWxsIHRoZSBjb250ZW50XG4gICAgICAgICAgICAvLyBpZiBjb250ZW50ZWRpdGFibGUgaXMgc2V0IG9uIGEgd2ViIGNvbXBvbmVudCBob3N0LlxuICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byByZXBsaWNhdGUgdGhlIG5vcm1hbCBkZWxldGUgYmVoYXZpb3IuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgZXZlbnQpKSkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgICAgICBpZiAoIXNlbGVjdGVkUmFuZ2UpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAhPT0gc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpIHtcbiAgICAgICAgICAgICAgLy8gSWYgYSB0ZXh0IHJhbmdlIGlzIHNlbGVjdGVkLCB0aGVuIGRlbGV0ZSB0aGlzIHJhbmdlXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgJiYgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCA+IDApIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBCYWNrc3BhY2UsIHdlIHNlbGVjdCB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIGZyb21cbiAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uIGFuZCBkZWxldGUgaXQuXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0U3RhcnQoc2VsZWN0ZWRSYW5nZS5zdGFydENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAtIDEpO1xuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdEZWxldGUnICYmIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0IDwgdGhpcy52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBEZWxldGUsIHdlIHNlbGVjdCB0aGUgbmV4dCBjaGFyYWN0ZXIgZnJvbVxuICAgICAgICAgICAgICAvLyB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24gYW5kIGRlbGV0ZSBpdC5cbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRFbmQoc2VsZWN0ZWRSYW5nZS5lbmRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0ICsgMSk7XG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2tleXVwJyxcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdcXG4nKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9zaG91bGRUcmlnZ2VyU3VibWl0KSB7XG4gICAgICAgICAgICAgIHRoaXMuX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtPy5yZXF1ZXN0U3VibWl0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICAvLyBjb250ZW50ZWRpdGFibGUgYWxsb3dzIHBhc3RpbmcgcmljaCBjb250ZW50IGludG8gaXRzIGhvc3QuXG4gICAgICAvLyBXZSBwcmV2ZW50IHRoaXMgYnkgbGlzdGVuaW5nIHRvIHRoZSBwYXN0ZSBldmVudCBhbmRcbiAgICAgIC8vIGV4dHJhY3RpbmcgdGhlIHBsYWluIHRleHQgZnJvbSB0aGUgcGFzdGVkIGNvbnRlbnRcbiAgICAgIC8vIGFuZCBpbnNlcnRpbmcgaXQgaW50byB0aGUgc2VsZWN0ZWQgcmFuZ2UgKGN1cnNvciBwb3NpdGlvblxuICAgICAgLy8gb3Igc2VsZWN0aW9uKS5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdwYXN0ZScsIChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY29uc3QgdGV4dCA9IHRoaXMuX2NsZWFuVGV4dChlLmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQvcGxhaW4nKSA/PyAnJyk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgIGlmICghc2VsZWN0ZWRSYW5nZSB8fCAhdGV4dCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5pbnNlcnROb2RlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMucHJlcGFyZVBhc3RlZFRleHQodGV4dCkpKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRTdGFydChzZWxlY3RlZFJhbmdlLmVuZENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpO1xuICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgIH0pO1xuICAgICAgLy8gV2hlbiBmb2N1c2luZyBhIHRleHQgaW5wdXQgdmlhIGtleWJvYXJkLCB0aGUgdGV4dCBjb250ZW50IHNob3VsZCBiZSBzZWxlY3RlZC5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdmb2N1cycsICgpID0+IHtcbiAgICAgICAgaWYgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgICAgICAvLyBUT0RPOiBUaGlzIGRvZXMgbm90IHNlZW0gdG8gd29yayBpbiBGaXJlZm94IHdpdGggcmVhZG9ubHkuXG4gICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5zZWxlY3RBbGxDaGlsZHJlbih0aGlzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICAvLyBPbiBibHVyIHRoZSBuYXRpdmUgdGV4dCBpbnB1dCBzY3JvbGxzIHRoZSB0ZXh0IHRvIHRoZSBzdGFydCBvZiB0aGUgdGV4dC5cbiAgICAgIC8vIFdlIG1pbWljayB0aGF0IGJ5IHJlc2V0dGluZyB0aGUgc2Nyb2xsIHBvc2l0aW9uLlxuICAgICAgLy8gV2UgYWxzbyB1bnNldCBhbnkgc2VsZWN0aW9uIHRvIGFsaWduIHdpdGggdGhlIG5hdGl2ZSB0ZXh0IGlucHV0LlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdibHVyJyxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgICAgdGhpcy5fZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk7XG4gICAgICAgICAgdGhpcy5zY3JvbGxMZWZ0ID0gMDtcbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBpc0Rpc2FibGVkRXh0ZXJuYWxseSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1EaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYU11bHRpTGluZSA9ICdmYWxzZSc7XG4gICAgICB0aGlzLl91cGRhdGVDb250ZW50ZWRpdGFibGUoKTtcblxuICAgICAgLy8gV2Ugd2FudCB0byByZXBsYWNlIGFueSBjb250ZW50IGJ5IGp1c3QgdGhlIHRleHQgY29udGVudC5cbiAgICAgIHRoaXMuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuICAgICAgc3VwZXIuZm9jdXMob3B0aW9ucyk7XG4gICAgICAvLyBCeSBkZWZhdWx0LCB3aGVuIGNhbGxpbmcgZm9jdXMgb24gYW4gaW5wdXQgZWxlbWVudCwgdGhlIGN1cnNvciBpcyBwbGFjZWRcbiAgICAgIC8vIGF0IHRoZSBlbmQgb2YgdGhlIGlucHV0IHRleHQuIEhvd2V2ZXIsIHdpdGggY29udGVudGVkaXRhYmxlLCB0aGUgY3Vyc29yXG4gICAgICAvLyBpcyBwbGFjZWQgYXQgdGhlIGJlZ2lubmluZywgc28gd2UgbW92ZSBpdCB0byB0aGUgZW5kLCBpZiB0aGF0IGlzIHRoZSBjYXNlLlxuICAgICAgaWYgKHRoaXMuX2NhblNlbGVjdCgpKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgaWYgKCFzZWxlY3Rpb24pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJhbmdlID0gc2VsZWN0aW9uLnJhbmdlQ291bnQgPiAwID8gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCkgOiBudWxsO1xuICAgICAgICBpZiAocmFuZ2UgJiYgcmFuZ2Uuc3RhcnRPZmZzZXQgIT09IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgICAgIHJhbmdlLnNldFN0YXJ0KHRoaXMuZmlyc3RDaGlsZCEsIHRoaXMudGV4dENvbnRlbnQhLmxlbmd0aCk7XG4gICAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xuICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhcbiAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgIG9sZDogc3RyaW5nIHwgbnVsbCxcbiAgICAgIHZhbHVlOiBzdHJpbmcgfCBudWxsLFxuICAgICk6IHZvaWQge1xuICAgICAgLyoqXG4gICAgICAgKiBUaGUgbmF0aXZlIHRleHQgaW5wdXQgY2hhbmdlcyB0aGUgdmFsdWUgcHJvcGVydHkgd2hlbiB0aGUgdmFsdWUgYXR0cmlidXRlIGlzXG4gICAgICAgKiBjaGFuZ2VkIHVuZGVyIHRoZSBjb25kaXRpb24gdGhhdCBubyBpbnB1dCBldmVudCBoYXMgb2NjdXJlZCBzaW5jZSBjcmVhdGlvblxuICAgICAgICogb3IgdGhlIGxhc3QgZm9ybSByZXNldC5cbiAgICAgICAqL1xuICAgICAgaWYgKG5hbWUgIT09ICd2YWx1ZScgfHwgIXRoaXMuaW50ZXJuYWxzLnN0YXRlcy5oYXMoJ2ludGVyYWN0ZWQnKSkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaW50ZXJhY3RlZCcpO1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpID8/ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZSAmJiB0eXBlb2Ygc3RhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBzdGF0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYWtlcyB0aGUgc2VsZWN0aW9uIGVxdWFsIHRvIHRoZSBjdXJyZW50IG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9IVE1MSW5wdXRFbGVtZW50L3NlbGVjdFxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3QoKTogdm9pZCB7XG4gICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnNlbGVjdEFsbENoaWxkcmVuKHRoaXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICAvLyBJZiB0aGUgdmFsdWUgd2FzIGFzc2lnbmVkIGJlZm9yZSBmaXJzdFVwZGF0ZSwgd2UgaGF2ZSB0b1xuICAgICAgLy8gd3JpdGUgaXQgdGhlIGRvY3VtZW50IHRvIGJlIHZpc3VhbGx5IHNlZW5cbiAgICAgIGlmICh0aGlzLnZhbHVlICYmICF0aGlzLmlubmVySFRNTC5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5pbm5lckhUTUwgPSB0aGlzLnZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSByZXF1ZXN0VXBkYXRlKFxuICAgICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgICAgb3B0aW9ucz86IFByb3BlcnR5RGVjbGFyYXRpb24sXG4gICAgKTogdm9pZCB7XG4gICAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5pc0Nvbm5lY3RlZCAmJlxuICAgICAgICAobmFtZSA9PT0gJ2Rpc2FibGVkJyB8fCBuYW1lID09PSAnZm9ybURpc2FibGVkJyB8fCBuYW1lID09PSAncmVhZE9ubHknKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHN1cGVyLnNob3VsZFZhbGlkYXRlKG5hbWUpIHx8IG5hbWUgPT09ICd2YWx1ZScgfHwgbmFtZSA9PT0gJ3JlcXVpcmVkJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgICBzdXBlci52YWxpZGF0ZSgpO1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMudmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycsIGkxOG5JbnB1dFJlcXVpcmVkW3RoaXMubGFuZ3VhZ2UuY3VycmVudF0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBwcmVwYXJlUGFzdGVkVGV4dCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2xlYW5UZXh0KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgLy8gVGhlIG5hdGl2ZSB0ZXh0IGlucHV0IHJlbW92ZXMgYWxsIG5ld2xpbmUgY2hhcmFjdGVycyBpZiBwYXNzZWQgdG8gdGhlIHZhbHVlIHByb3BlcnR5XG4gICAgICByZXR1cm4gdmFsdWUgPT09IG51bGwgPyAnJyA6IGAke3ZhbHVlfWAucmVwbGFjZSgvW1xcblxccl0rL2csICcnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kaXNwYXRjaElucHV0RXZlbnQoKTogdm9pZCB7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuXG4gICAgQGV2ZW50T3B0aW9ucyh7IHBhc3NpdmU6IHRydWUgfSlcbiAgICBwcml2YXRlIF9jbGVhbkNoaWxkcmVuKCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuY2hpbGRFbGVtZW50Q291bnQpIHtcbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgICAgICBlbGVtZW50LnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQ29udGVudGVkaXRhYmxlKCk6IHZvaWQge1xuICAgICAgaWYgKCFpc1NlcnZlciAmJiB0aGlzLmlzQ29ubmVjdGVkKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFSZWFkT25seSA9IHRoaXMucmVhZE9ubHkgPyAndHJ1ZScgOiBudWxsO1xuICAgICAgICB0aGlzLmludGVybmFscy5hcmlhRGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkID8gJ3RydWUnIDogbnVsbDtcbiAgICAgICAgLy8gVE9ETygyMDI2KTogRmlyZWZveCBzdXBwb3J0cyBwbGFpbnRleHQtb25seSBzaW5jZSB2ZXJzaW9uIDEzNiAoTWFyY2ggMjAyNSkuXG4gICAgICAgIC8vIFVudGlsIHRoaXMgaXMgcGFydCBvZiBvdXIgYmFzZWxpbmUsIHdlIHNob3VsZCBmZWF0dXJlIGNoZWNrIHRvIGVuYWJsZSBpdC5cbiAgICAgICAgY29uc3QgdmFsdWUgPVxuICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkT25seVxuICAgICAgICAgICAgPyAnZmFsc2UnXG4gICAgICAgICAgICA6IHBsYWludGV4dE9ubHlTdXBwb3J0ZWRcbiAgICAgICAgICAgICAgPyAncGxhaW50ZXh0LW9ubHknXG4gICAgICAgICAgICAgIDogJ3RydWUnO1xuICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgdmFsdWUpO1xuICAgICAgICAvLyBJbiB0aGUgcmVhZG9ubHkgY2FzZSwgd2UgZGlzYWJsZSBjb250ZW50ZWRpdGFibGUsIGJ1dCBpdCBzdGlsbFxuICAgICAgICAvLyBuZWVkcyB0byBiZSBmb2N1c2FibGUuIFdlIGFjaGlldmUgdGhpcyBieSBzZXR0aW5nIHRhYmluZGV4IGluIHRoYXQgY2FzZS5cbiAgICAgICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnMCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UpIHtcbiAgICAgICAgdGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2NhblNlbGVjdCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiAhaXNTZXJ2ZXIgJiYgIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMucmVhZE9ubHkgJiYgISF0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogdW5rbm93biB7XG4gICAgICByZXR1cm4gaHRtbGA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX2NsZWFuQ2hpbGRyZW59Pjwvc2xvdD5gO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJGb3JtQXNzb2NpYXRlZElucHV0RWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQXNEQSxNQUFNLDRCQUE0QixNQUFjO0FBQzlDLE1BQUksVUFBVTtBQUNaLFdBQU87QUFBQSxFQUFBO0FBR1QsUUFBTSxNQUFNLFNBQVMsY0FB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
283
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGh0bWwsXG4gIGlzU2VydmVyLFxuICB0eXBlIExpdEVsZW1lbnQsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGV2ZW50T3B0aW9ucywgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IHNiYklucHV0TW9kYWxpdHlEZXRlY3RvciB9IGZyb20gJy4uL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaXNXZWJraXQgfSBmcm9tICcuLi9kb20uanMnO1xuaW1wb3J0IHsgaTE4bklucHV0UmVxdWlyZWQgfSBmcm9tICcuLi9pMThuLmpzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci5qcyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZE1peGluIH0gZnJvbSAnLi9kaXNhYmxlZC1taXhpbi5qcyc7XG5pbXBvcnQgeyBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4gfSBmcm9tICcuL2VsZW1lbnQtaW50ZXJuYWxzLW1peGluLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgRm9ybVJlc3RvcmVSZWFzb24sXG4gIHR5cGUgRm9ybVJlc3RvcmVTdGF0ZSxcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbixcbn0gZnJvbSAnLi9mb3JtLWFzc29jaWF0ZWQtbWl4aW4uanMnO1xuaW1wb3J0IHsgU2JiUmVhZG9ubHlNaXhpbiB9IGZyb20gJy4vcmVhZG9ubHktbWl4aW4uanMnO1xuaW1wb3J0IHsgU2JiUmVxdWlyZWRNaXhpbiB9IGZyb20gJy4vcmVxdWlyZWQtbWl4aW4uanMnO1xuXG5leHBvcnQgZGVjbGFyZSBhYnN0cmFjdCBjbGFzcyBTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW5UeXBlIGV4dGVuZHMgU2JiUmVxdWlyZWRNaXhpbihcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oTGl0RWxlbWVudCkpLFxuKSB7XG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyk7XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nO1xuXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW47XG5cbiAgcHVibGljIHNldCByZWFkT25seSh2YWx1ZTogYm9vbGVhbik7XG4gIHB1YmxpYyBnZXQgcmVhZE9ubHkoKTogYm9vbGVhbjtcblxuICBwdWJsaWMgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpO1xuICBwdWJsaWMgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZztcblxuICAvKipcbiAgICogTWFrZXMgdGhlIHNlbGVjdGlvbiBlcXVhbCB0byB0aGUgY3VycmVudCBvYmplY3QuXG4gICAqXG4gICAqIFtNRE4gUmVmZXJlbmNlXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvSFRNTElucHV0RWxlbWVudC9zZWxlY3QpXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0KCk6IHZvaWQ7XG5cbiAgcHVibGljIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQ7XG4gIHB1YmxpYyBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLCByZWFzb246IEZvcm1SZXN0b3JlUmVhc29uKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgcHJlcGFyZVBhc3RlZFRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgbGFuZ3VhZ2U6IFNiYkxhbmd1YWdlQ29udHJvbGxlcjtcbn1cblxuY29uc3QgY2hlY2tQbGFpbnRleHRPbmx5U3VwcG9ydCA9ICgpOiBib29sZWFuID0+IHtcbiAgaWYgKGlzU2VydmVyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIGRpdi5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsICdQTEFJTlRFWFQtT05MWScpO1xuXG4gIC8vIElmIHBsYWludGV4dC1vbmx5IGlzIHN1cHBvcnRlZCwgdGhlIGF0dHJpYnV0ZSB2YWx1ZSBpc1xuICAvLyByZXR1cm5lZCBhcyBsb3dlci1jYXNlIGZyb20gdGhlIHByb3BlcnR5IGFjY2Vzcy5cbiAgcmV0dXJuIGRpdi5jb250ZW50RWRpdGFibGUgPT09ICdwbGFpbnRleHQtb25seSc7XG59O1xuY29uc3QgcGxhaW50ZXh0T25seVN1cHBvcnRlZCA9IGNoZWNrUGxhaW50ZXh0T25seVN1cHBvcnQoKTtcblxuLyoqXG4gKiBUaGUgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluIGVuYWJsZXMgbmF0aXZlIGZvcm0gc3VwcG9ydCBmb3IgdGV4dCBpbnB1dCBjb250cm9scy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRFbGVtZW50XG4gICAgZXh0ZW5kcyBTYmJSZWFkb25seU1peGluKFxuICAgICAgU2JiRGlzYWJsZWRNaXhpbihcbiAgICAgICAgU2JiUmVxdWlyZWRNaXhpbihTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbihzdXBlckNsYXNzKSkpLFxuICAgICAgKSxcbiAgICApXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpblR5cGU+XG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAndGV4dGJveCc7XG5cbiAgICAvKipcbiAgICAgKiBBbiBlbGVtZW50IHdpdGggY29udGVudGVkaXRhYmxlIHdpbGwgbm90IGVtaXQgYSBjaGFuZ2UgZXZlbnQuIFRvIGFjaGlldmUgcGFyaXR5XG4gICAgICogd2l0aCBhIG5hdGl2ZSB0ZXh0IGlucHV0LCB3ZSBuZWVkIHRvIHRyYWNrIHdoZXRoZXIgYSBjaGFuZ2UgZXZlbnQgc2hvdWxkIGJlXG4gICAgICogZW1pdHRlZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9zaG91bGRFbWl0Q2hhbmdlID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQSBuYXRpdmUgdGV4dCBpbnB1dCBhdHRlbXB0cyB0byBzdWJtaXQgdGhlIGZvcm0gd2hlbiBwcmVzc2luZyBFbnRlci5cbiAgICAgKiBUaGlzIGNhbiBiZSBwcmV2ZW50ZWQgYnkgY2FsbGluZyBwcmV2ZW50RGVmYXVsdCBvbiB0aGUga2V5ZG93biBldmVudC5cbiAgICAgKiBXZSB0cmFjayB3aGV0aGVyIHRvIHJlcXVlc3Qgc3VibWl0LCB3aGljaCBzaG91bGQgb2NjdXIgYmVmb3JlIHRoZSBrZXl1cFxuICAgICAqIGV2ZW50LlxuICAgICAqL1xuICAgIHByaXZhdGUgX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBsYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIHR5cGUgb2YgZWxlbWVudC5cbiAgICAgKiBAZGVmYXVsdCAndGV4dCdcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHR5cGUoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiAndGV4dCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIHZhbHVlIG9mIHRoZSBpbnB1dC4gUmVmbGVjdHMgdGhlIGN1cnJlbnQgdGV4dCB2YWx1ZSBvZiB0aGlzIGlucHV0LlxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSgpXG4gICAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX2NsZWFuVGV4dCh2YWx1ZSk7XG4gICAgICBpZiAodGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICAgIHRoaXMuaW5uZXJIVE1MID0gdGhpcy5fdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZSA/PyAnJztcbiAgICB9XG4gICAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZykge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicsIHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCdwbGFjZWhvbGRlcicpO1xuICAgICAgfVxuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYVBsYWNlaG9sZGVyID0gdmFsdWUgPyB2YWx1ZSA6IG51bGw7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSA/PyAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgLy8gV2UgcHJpbWFyaWx5IHVzZSBjYXB0dXJlIGV2ZW50IGxpc3RlbmVycywgYXMgd2Ugd2FudFxuICAgICAgLy8gb3VyIGxpc3RlbmVycyB0byBvY2N1ciBiZWZvcmUgY29uc3VtZXIgZXZlbnQgbGlzdGVuZXJzLlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdpbnB1dCcsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuX3ZhbHVlO1xuICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fY2xlYW5UZXh0KHRoaXMudGV4dENvbnRlbnQgPz8gJycpO1xuICAgICAgICAgIHRoaXMucmVxdWVzdFVwZGF0ZSgndmFsdWUnLCBvbGRWYWx1ZSk7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnaW50ZXJhY3RlZCcpO1xuICAgICAgICAgIHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UgPSB0cnVlO1xuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2hhbmdlJywgKCkgPT4gKHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UgPSBmYWxzZSksIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgICAna2V5ZG93bicsXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIC8vIFdlIHByZXZlbnQgcmVjdXJzaXZlIGV2ZW50cyBieSBjaGVja2luZyB0aGUgb3JpZ2luYWwgZXZlbnQgZm9yIGlzVHJ1c3RlZFxuICAgICAgICAgIC8vIHdoaWNoIGlzIGZhbHNlIGZvciBtYW51YWxseSBkaXNwYXRjaGVkIGV2ZW50cyAod2hpY2ggd2UgZGlzcGF0Y2ggYmVsb3cpLlxuICAgICAgICAgIGlmICgoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpICYmIGV2ZW50LmlzVHJ1c3RlZCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5fc2hvdWxkVHJpZ2dlclN1Ym1pdCA9IHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgS2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIGV2ZW50KSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGlzV2Via2l0ICYmXG4gICAgICAgICAgICB0aGlzLnZhbHVlICYmXG4gICAgICAgICAgICAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJyB8fCBldmVudC5rZXkgPT09ICdEZWxldGUnKSAmJlxuICAgICAgICAgICAgZXZlbnQuaXNUcnVzdGVkXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBJbiBXZWJraXQgcHJlc3NpbmcgQmFja3NwYWNlIG9yIERlbGV0ZSBjb21wbGV0ZWx5IHJlbW92ZXMgYWxsIHRoZSBjb250ZW50XG4gICAgICAgICAgICAvLyBpZiBjb250ZW50ZWRpdGFibGUgaXMgc2V0IG9uIGEgd2ViIGNvbXBvbmVudCBob3N0LlxuICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byByZXBsaWNhdGUgdGhlIG5vcm1hbCBkZWxldGUgYmVoYXZpb3IuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgZXZlbnQpKSkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgICAgICBpZiAoIXNlbGVjdGVkUmFuZ2UpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAhPT0gc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpIHtcbiAgICAgICAgICAgICAgLy8gSWYgYSB0ZXh0IHJhbmdlIGlzIHNlbGVjdGVkLCB0aGVuIGRlbGV0ZSB0aGlzIHJhbmdlXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgJiYgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCA+IDApIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBCYWNrc3BhY2UsIHdlIHNlbGVjdCB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIGZyb21cbiAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uIGFuZCBkZWxldGUgaXQuXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0U3RhcnQoc2VsZWN0ZWRSYW5nZS5zdGFydENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAtIDEpO1xuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdEZWxldGUnICYmIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0IDwgdGhpcy52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBEZWxldGUsIHdlIHNlbGVjdCB0aGUgbmV4dCBjaGFyYWN0ZXIgZnJvbVxuICAgICAgICAgICAgICAvLyB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24gYW5kIGRlbGV0ZSBpdC5cbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRFbmQoc2VsZWN0ZWRSYW5nZS5lbmRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0ICsgMSk7XG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2tleXVwJyxcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdcXG4nKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9zaG91bGRUcmlnZ2VyU3VibWl0KSB7XG4gICAgICAgICAgICAgIHRoaXMuX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtPy5yZXF1ZXN0U3VibWl0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICAvLyBjb250ZW50ZWRpdGFibGUgYWxsb3dzIHBhc3RpbmcgcmljaCBjb250ZW50IGludG8gaXRzIGhvc3QuXG4gICAgICAvLyBXZSBwcmV2ZW50IHRoaXMgYnkgbGlzdGVuaW5nIHRvIHRoZSBwYXN0ZSBldmVudCBhbmRcbiAgICAgIC8vIGV4dHJhY3RpbmcgdGhlIHBsYWluIHRleHQgZnJvbSB0aGUgcGFzdGVkIGNvbnRlbnRcbiAgICAgIC8vIGFuZCBpbnNlcnRpbmcgaXQgaW50byB0aGUgc2VsZWN0ZWQgcmFuZ2UgKGN1cnNvciBwb3NpdGlvblxuICAgICAgLy8gb3Igc2VsZWN0aW9uKS5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdwYXN0ZScsIChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY29uc3QgdGV4dCA9IHRoaXMuX2NsZWFuVGV4dChlLmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQvcGxhaW4nKSA/PyAnJyk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgIGlmICghc2VsZWN0ZWRSYW5nZSB8fCAhdGV4dCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5pbnNlcnROb2RlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMucHJlcGFyZVBhc3RlZFRleHQodGV4dCkpKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRTdGFydChzZWxlY3RlZFJhbmdlLmVuZENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpO1xuICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgIH0pO1xuICAgICAgLy8gV2hlbiBmb2N1c2luZyBhIHRleHQgaW5wdXQgdmlhIGtleWJvYXJkLCB0aGUgdGV4dCBjb250ZW50IHNob3VsZCBiZSBzZWxlY3RlZC5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdmb2N1cycsICgpID0+IHtcbiAgICAgICAgaWYgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgICAgICAvLyBUT0RPOiBUaGlzIGRvZXMgbm90IHNlZW0gdG8gd29yayBpbiBGaXJlZm94IHdpdGggcmVhZG9ubHkuXG4gICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5zZWxlY3RBbGxDaGlsZHJlbih0aGlzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICAvLyBPbiBibHVyIHRoZSBuYXRpdmUgdGV4dCBpbnB1dCBzY3JvbGxzIHRoZSB0ZXh0IHRvIHRoZSBzdGFydCBvZiB0aGUgdGV4dC5cbiAgICAgIC8vIFdlIG1pbWljayB0aGF0IGJ5IHJlc2V0dGluZyB0aGUgc2Nyb2xsIHBvc2l0aW9uLlxuICAgICAgLy8gV2UgYWxzbyB1bnNldCBhbnkgc2VsZWN0aW9uIHRvIGFsaWduIHdpdGggdGhlIG5hdGl2ZSB0ZXh0IGlucHV0LlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdibHVyJyxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgICAgdGhpcy5fZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk7XG4gICAgICAgICAgdGhpcy5zY3JvbGxMZWZ0ID0gMDtcbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBpc0Rpc2FibGVkRXh0ZXJuYWxseSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1EaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYU11bHRpTGluZSA9ICdmYWxzZSc7XG4gICAgICB0aGlzLl91cGRhdGVDb250ZW50ZWRpdGFibGUoKTtcblxuICAgICAgLy8gV2Ugd2FudCB0byByZXBsYWNlIGFueSBjb250ZW50IGJ5IGp1c3QgdGhlIHRleHQgY29udGVudC5cbiAgICAgIHRoaXMuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuICAgICAgc3VwZXIuZm9jdXMob3B0aW9ucyk7XG4gICAgICAvLyBCeSBkZWZhdWx0LCB3aGVuIGNhbGxpbmcgZm9jdXMgb24gYW4gaW5wdXQgZWxlbWVudCwgdGhlIGN1cnNvciBpcyBwbGFjZWRcbiAgICAgIC8vIGF0IHRoZSBlbmQgb2YgdGhlIGlucHV0IHRleHQuIEhvd2V2ZXIsIHdpdGggY29udGVudGVkaXRhYmxlLCB0aGUgY3Vyc29yXG4gICAgICAvLyBpcyBwbGFjZWQgYXQgdGhlIGJlZ2lubmluZywgc28gd2UgbW92ZSBpdCB0byB0aGUgZW5kLCBpZiB0aGF0IGlzIHRoZSBjYXNlLlxuICAgICAgaWYgKHRoaXMuX2NhblNlbGVjdCgpKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgaWYgKCFzZWxlY3Rpb24pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJhbmdlID0gc2VsZWN0aW9uLnJhbmdlQ291bnQgPiAwID8gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCkgOiBudWxsO1xuICAgICAgICBpZiAocmFuZ2UgJiYgcmFuZ2Uuc3RhcnRPZmZzZXQgIT09IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgICAgIHJhbmdlLnNldFN0YXJ0KHRoaXMuZmlyc3RDaGlsZCEsIHRoaXMudGV4dENvbnRlbnQhLmxlbmd0aCk7XG4gICAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xuICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhcbiAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgIG9sZDogc3RyaW5nIHwgbnVsbCxcbiAgICAgIHZhbHVlOiBzdHJpbmcgfCBudWxsLFxuICAgICk6IHZvaWQge1xuICAgICAgLyoqXG4gICAgICAgKiBUaGUgbmF0aXZlIHRleHQgaW5wdXQgY2hhbmdlcyB0aGUgdmFsdWUgcHJvcGVydHkgd2hlbiB0aGUgdmFsdWUgYXR0cmlidXRlIGlzXG4gICAgICAgKiBjaGFuZ2VkIHVuZGVyIHRoZSBjb25kaXRpb24gdGhhdCBubyBpbnB1dCBldmVudCBoYXMgb2NjdXJlZCBzaW5jZSBjcmVhdGlvblxuICAgICAgICogb3IgdGhlIGxhc3QgZm9ybSByZXNldC5cbiAgICAgICAqL1xuICAgICAgaWYgKG5hbWUgIT09ICd2YWx1ZScgfHwgIXRoaXMuaW50ZXJuYWxzLnN0YXRlcy5oYXMoJ2ludGVyYWN0ZWQnKSkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaW50ZXJhY3RlZCcpO1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpID8/ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZSAmJiB0eXBlb2Ygc3RhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBzdGF0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYWtlcyB0aGUgc2VsZWN0aW9uIGVxdWFsIHRvIHRoZSBjdXJyZW50IG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9IVE1MSW5wdXRFbGVtZW50L3NlbGVjdFxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3QoKTogdm9pZCB7XG4gICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnNlbGVjdEFsbENoaWxkcmVuKHRoaXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICAvLyBJZiB0aGUgdmFsdWUgd2FzIGFzc2lnbmVkIGJlZm9yZSBmaXJzdFVwZGF0ZSwgd2UgaGF2ZSB0b1xuICAgICAgLy8gd3JpdGUgaXQgdGhlIGRvY3VtZW50IHRvIGJlIHZpc3VhbGx5IHNlZW5cbiAgICAgIGlmICh0aGlzLnZhbHVlICYmICF0aGlzLmlubmVySFRNTC5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5pbm5lckhUTUwgPSB0aGlzLnZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSByZXF1ZXN0VXBkYXRlKFxuICAgICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgICAgb3B0aW9ucz86IFByb3BlcnR5RGVjbGFyYXRpb24sXG4gICAgKTogdm9pZCB7XG4gICAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5pc0Nvbm5lY3RlZCAmJlxuICAgICAgICAobmFtZSA9PT0gJ2Rpc2FibGVkJyB8fCBuYW1lID09PSAnZm9ybURpc2FibGVkJyB8fCBuYW1lID09PSAncmVhZE9ubHknKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHN1cGVyLnNob3VsZFZhbGlkYXRlKG5hbWUpIHx8IG5hbWUgPT09ICd2YWx1ZScgfHwgbmFtZSA9PT0gJ3JlcXVpcmVkJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgICBzdXBlci52YWxpZGF0ZSgpO1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMudmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycsIGkxOG5JbnB1dFJlcXVpcmVkW3RoaXMubGFuZ3VhZ2UuY3VycmVudF0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBwcmVwYXJlUGFzdGVkVGV4dCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2xlYW5UZXh0KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgLy8gVGhlIG5hdGl2ZSB0ZXh0IGlucHV0IHJlbW92ZXMgYWxsIG5ld2xpbmUgY2hhcmFjdGVycyBpZiBwYXNzZWQgdG8gdGhlIHZhbHVlIHByb3BlcnR5XG4gICAgICByZXR1cm4gdmFsdWUgPT09IG51bGwgPyAnJyA6IGAke3ZhbHVlfWAucmVwbGFjZSgvW1xcblxccl0rL2csICcnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kaXNwYXRjaElucHV0RXZlbnQoKTogdm9pZCB7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuXG4gICAgQGV2ZW50T3B0aW9ucyh7IHBhc3NpdmU6IHRydWUgfSlcbiAgICBwcml2YXRlIF9jbGVhbkNoaWxkcmVuKCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuY2hpbGRFbGVtZW50Q291bnQpIHtcbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgICAgICBlbGVtZW50LnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQ29udGVudGVkaXRhYmxlKCk6IHZvaWQge1xuICAgICAgaWYgKCFpc1NlcnZlciAmJiB0aGlzLmlzQ29ubmVjdGVkKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFSZWFkT25seSA9IHRoaXMucmVhZE9ubHkgPyAndHJ1ZScgOiBudWxsO1xuICAgICAgICB0aGlzLmludGVybmFscy5hcmlhRGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkID8gJ3RydWUnIDogbnVsbDtcbiAgICAgICAgLy8gVE9ETygyMDI2KTogRmlyZWZveCBzdXBwb3J0cyBwbGFpbnRleHQtb25seSBzaW5jZSB2ZXJzaW9uIDEzNiAoTWFyY2ggMjAyNSkuXG4gICAgICAgIC8vIFVudGlsIHRoaXMgaXMgcGFydCBvZiBvdXIgYmFzZWxpbmUsIHdlIHNob3VsZCBmZWF0dXJlIGNoZWNrIHRvIGVuYWJsZSBpdC5cbiAgICAgICAgY29uc3QgdmFsdWUgPVxuICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkT25seVxuICAgICAgICAgICAgPyAnZmFsc2UnXG4gICAgICAgICAgICA6IHBsYWludGV4dE9ubHlTdXBwb3J0ZWRcbiAgICAgICAgICAgICAgPyAncGxhaW50ZXh0LW9ubHknXG4gICAgICAgICAgICAgIDogJ3RydWUnO1xuICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgdmFsdWUpO1xuICAgICAgICAvLyBJbiB0aGUgcmVhZG9ubHkgY2FzZSwgd2UgZGlzYWJsZSBjb250ZW50ZWRpdGFibGUsIGJ1dCBpdCBzdGlsbFxuICAgICAgICAvLyBuZWVkcyB0byBiZSBmb2N1c2FibGUuIFdlIGFjaGlldmUgdGhpcyBieSBzZXR0aW5nIHRhYmluZGV4IGluIHRoYXQgY2FzZS5cbiAgICAgICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnMCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UpIHtcbiAgICAgICAgdGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2NhblNlbGVjdCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiAhaXNTZXJ2ZXIgJiYgIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMucmVhZE9ubHkgJiYgISF0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogdW5rbm93biB7XG4gICAgICByZXR1cm4gaHRtbGA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX2NsZWFuQ2hpbGRyZW59Pjwvc2xvdD5gO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJGb3JtQXNzb2NpYXRlZElucHV0RWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQXNEQSxNQUFNLDRCQUE0QixNQUFjO0FBQzlDLE1BQUksVUFBVTtBQUNaLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxNQUFNLFNBQVMsY0FB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