desy-angular 12.0.0 → 13.0.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 (246) hide show
  1. package/esm2022/lib/desy-angular.module.mjs +10 -9
  2. package/esm2022/lib/desy-buttons/components/button/button.component.mjs +5 -4
  3. package/esm2022/lib/desy-buttons/components/button-loader/button-loader.component.mjs +8 -5
  4. package/esm2022/lib/desy-buttons/components/dropdown/dropdown.component.mjs +11 -6
  5. package/esm2022/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.mjs +3 -3
  6. package/esm2022/lib/desy-buttons/components/listbox/listbox.component.mjs +6 -5
  7. package/esm2022/lib/desy-buttons/components/pill/pill.component.mjs +5 -4
  8. package/esm2022/lib/desy-buttons/components/toggle/toggle.component.mjs +4 -3
  9. package/esm2022/lib/desy-buttons/desy-buttons.module.mjs +15 -15
  10. package/esm2022/lib/desy-buttons/interfaces/listbox-item-data.mjs +1 -1
  11. package/esm2022/lib/desy-commons/interfaces/title-data.mjs +1 -1
  12. package/esm2022/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.mjs +6 -5
  13. package/esm2022/lib/desy-forms/components/checkboxes/checkboxes.component.mjs +11 -10
  14. package/esm2022/lib/desy-forms/components/date-input/date-input.component.mjs +10 -9
  15. package/esm2022/lib/desy-forms/components/datepicker/datepicker.component.mjs +190 -0
  16. package/esm2022/lib/desy-forms/components/datepicker/datepicker.pipe.mjs +34 -0
  17. package/esm2022/lib/desy-forms/components/error-message/error-message.component.mjs +4 -3
  18. package/esm2022/lib/desy-forms/components/fieldset/fieldset.component.mjs +5 -4
  19. package/esm2022/lib/desy-forms/components/file-upload/file-upload.component.mjs +8 -7
  20. package/esm2022/lib/desy-forms/components/hint/hint.component.mjs +4 -3
  21. package/esm2022/lib/desy-forms/components/input/input.component.mjs +8 -7
  22. package/esm2022/lib/desy-forms/components/input-group/input-group.component.mjs +11 -10
  23. package/esm2022/lib/desy-forms/components/label/label.component.mjs +4 -3
  24. package/esm2022/lib/desy-forms/components/radios/radio-item/radio-item.component.mjs +6 -5
  25. package/esm2022/lib/desy-forms/components/radios/radios.component.mjs +11 -10
  26. package/esm2022/lib/desy-forms/components/search-bar/search-bar.component.mjs +7 -6
  27. package/esm2022/lib/desy-forms/components/select/select.component.mjs +8 -7
  28. package/esm2022/lib/desy-forms/components/textarea/textarea.component.mjs +8 -7
  29. package/esm2022/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.mjs +4 -3
  30. package/esm2022/lib/desy-forms/components/tree/tree-item/tree-item.component.mjs +13 -12
  31. package/esm2022/lib/desy-forms/components/tree/tree-sub/tree-sub.component.mjs +5 -4
  32. package/esm2022/lib/desy-forms/components/tree/tree.component.mjs +12 -9
  33. package/esm2022/lib/desy-forms/desy-forms.module.mjs +40 -24
  34. package/esm2022/lib/desy-forms/interfaces/error-message-data.mjs +1 -1
  35. package/esm2022/lib/desy-forms/interfaces/fieldset-data.mjs +1 -1
  36. package/esm2022/lib/desy-forms/interfaces/hint-data.mjs +1 -1
  37. package/esm2022/lib/desy-forms/interfaces/item-checkbox-data.mjs +1 -1
  38. package/esm2022/lib/desy-forms/interfaces/item-date-input-data.mjs +1 -1
  39. package/esm2022/lib/desy-forms/interfaces/item-input-group-data.mjs +1 -1
  40. package/esm2022/lib/desy-forms/interfaces/item-radio-data.mjs +1 -1
  41. package/esm2022/lib/desy-forms/interfaces/label-data.mjs +1 -1
  42. package/esm2022/lib/desy-forms/interfaces/select-item-data.mjs +1 -1
  43. package/esm2022/lib/desy-modals/components/dialog/dialog.component.mjs +4 -3
  44. package/esm2022/lib/desy-modals/components/modal/modal.component.mjs +15 -14
  45. package/esm2022/lib/desy-modals/interfaces/dialog-options.mjs +1 -1
  46. package/esm2022/lib/desy-modals/interfaces/modal-options.mjs +1 -1
  47. package/esm2022/lib/desy-modals/services/dialog.service.mjs +2 -2
  48. package/esm2022/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.mjs +4 -3
  49. package/esm2022/lib/desy-nav/components/error-summary/error-summary.component.mjs +5 -4
  50. package/esm2022/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.mjs +4 -2
  51. package/esm2022/lib/desy-nav/components/footer/footer.component.mjs +6 -5
  52. package/esm2022/lib/desy-nav/components/header/header-mobileText/header-mobile-text.component.mjs +246 -2
  53. package/esm2022/lib/desy-nav/components/header/header-navigation/header-navigation.component.mjs +4 -3
  54. package/esm2022/lib/desy-nav/components/header/header.component.mjs +15 -14
  55. package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-dropdown/header-advanced-dropdown.component.mjs +1 -1
  56. package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-sub/header-advanced-sub.component.mjs +3 -3
  57. package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-super/header-advanced-super.component.mjs +3 -3
  58. package/esm2022/lib/desy-nav/components/header-advanced/header-advanced.component.mjs +6 -5
  59. package/esm2022/lib/desy-nav/components/header-mini/header-mini.component.mjs +5 -4
  60. package/esm2022/lib/desy-nav/components/links-list/links-list-icon-right/links-list-icon-right.component.mjs +16 -0
  61. package/esm2022/lib/desy-nav/components/links-list/links-list-item/links-list-item.component.mjs +7 -3
  62. package/esm2022/lib/desy-nav/components/links-list/links-list.component.mjs +8 -5
  63. package/esm2022/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.mjs +6 -5
  64. package/esm2022/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.mjs +3 -3
  65. package/esm2022/lib/desy-nav/components/menu-navigation/menu-navigation.component.mjs +280 -31
  66. package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.mjs +3 -3
  67. package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.mjs +3 -3
  68. package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical.component.mjs +6 -5
  69. package/esm2022/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.mjs +3 -3
  70. package/esm2022/lib/desy-nav/components/menubar/menubar.component.mjs +281 -32
  71. package/esm2022/lib/desy-nav/components/nav/nav-item/nav-item.component.mjs +3 -3
  72. package/esm2022/lib/desy-nav/components/nav/nav.component.mjs +6 -5
  73. package/esm2022/lib/desy-nav/components/notification/notification.component.mjs +7 -6
  74. package/esm2022/lib/desy-nav/components/skip-link/skip-link.component.mjs +8 -3
  75. package/esm2022/lib/desy-nav/desy-nav.module.mjs +6 -5
  76. package/esm2022/lib/desy-nav/interfaces/breadcrumbs.data.mjs +1 -1
  77. package/esm2022/lib/desy-nav/interfaces/error-summary-data.mjs +1 -1
  78. package/esm2022/lib/desy-nav/interfaces/footer-data.mjs +1 -1
  79. package/esm2022/lib/desy-nav/interfaces/footer-logo.mjs +2 -1
  80. package/esm2022/lib/desy-nav/interfaces/header-dropdown-data.mjs +1 -1
  81. package/esm2022/lib/desy-nav/interfaces/header-mobile-text-data.mjs +1 -1
  82. package/esm2022/lib/desy-nav/interfaces/header-navigation-item-data.mjs +1 -1
  83. package/esm2022/lib/desy-nav/interfaces/header-subnav-data.mjs +1 -1
  84. package/esm2022/lib/desy-nav/interfaces/menu-horizontal-item-data.mjs +1 -1
  85. package/esm2022/lib/desy-nav/interfaces/menu-navigation-item-sub-item-sub-item.mjs +1 -1
  86. package/esm2022/lib/desy-nav/interfaces/menu-navigation-item-sub-item.mjs +1 -1
  87. package/esm2022/lib/desy-nav/interfaces/menu-navigation.mjs +1 -1
  88. package/esm2022/lib/desy-nav/interfaces/menu-vertical-items-data.mjs +1 -1
  89. package/esm2022/lib/desy-nav/interfaces/menu-vertical-sub-data.mjs +1 -1
  90. package/esm2022/lib/desy-nav/interfaces/menu-vertical-sub-items-data.mjs +1 -1
  91. package/esm2022/lib/desy-nav/interfaces/menubar-item-sub.mjs +1 -1
  92. package/esm2022/lib/desy-nav/interfaces/menubar-item.mjs +1 -1
  93. package/esm2022/lib/desy-nav/interfaces/nav-item.data.mjs +1 -1
  94. package/esm2022/lib/desy-nav/interfaces/notification-items-data.mjs +1 -1
  95. package/esm2022/lib/desy-nav/interfaces/notification-options.mjs +1 -1
  96. package/esm2022/lib/desy-pagination/components/pagination/pagination.component.mjs +22 -22
  97. package/esm2022/lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component.mjs +2 -2
  98. package/esm2022/lib/desy-pagination/desy-pagination.module.mjs +16 -8
  99. package/esm2022/lib/desy-tables/components/table/table.component.mjs +26 -5
  100. package/esm2022/lib/desy-tables/components/table-advanced/table-advanced.component.mjs +16 -16
  101. package/esm2022/lib/desy-tables/directives/focus-clicked-cell.directive.mjs +12 -7
  102. package/esm2022/lib/desy-tables/interfaces/cell-data.mjs +1 -1
  103. package/esm2022/lib/desy-tables/interfaces/wrapper-data.mjs +1 -1
  104. package/esm2022/lib/desy-views/components/accordion/accordion.component.mjs +279 -30
  105. package/esm2022/lib/desy-views/components/accordion-history/accordion-history.component.mjs +5 -4
  106. package/esm2022/lib/desy-views/components/alert/alert.component.mjs +4 -3
  107. package/esm2022/lib/desy-views/components/card/card.component.mjs +4 -3
  108. package/esm2022/lib/desy-views/components/collapsible/collapsible.component.mjs +13 -4
  109. package/esm2022/lib/desy-views/components/description-list/description-list.component.mjs +4 -3
  110. package/esm2022/lib/desy-views/components/details/details.component.mjs +4 -3
  111. package/esm2022/lib/desy-views/components/item/item.component.mjs +11 -10
  112. package/esm2022/lib/desy-views/components/media-object/media-object.component.mjs +280 -32
  113. package/esm2022/lib/desy-views/components/status/status.component.mjs +283 -32
  114. package/esm2022/lib/desy-views/components/status-item/status-item.component.mjs +286 -37
  115. package/esm2022/lib/desy-views/components/tabs/tabs.component.mjs +284 -35
  116. package/esm2022/lib/desy-views/components/tooltip/tooltip.component.mjs +281 -33
  117. package/esm2022/lib/desy-views/desy-views.module.mjs +27 -32
  118. package/esm2022/lib/desy-views/interfaces/accordion-item.data.mjs +1 -1
  119. package/esm2022/lib/desy-views/interfaces/alert-options.mjs +1 -1
  120. package/esm2022/lib/desy-views/interfaces/description-item.data.mjs +1 -1
  121. package/esm2022/lib/desy-views/interfaces/status-data.mjs +1 -1
  122. package/esm2022/lib/desy-views/interfaces/tabs-items-data.mjs +1 -1
  123. package/esm2022/lib/desy-views/interfaces/tabs-panel-data.mjs +1 -1
  124. package/esm2022/lib/desy-views/interfaces/term-definition.data.mjs +1 -1
  125. package/esm2022/lib/shared/components/accessibility/accessibility-attributes.mjs +78 -0
  126. package/esm2022/lib/shared/components/accessibility/accessibility.component.mjs +124 -2
  127. package/esm2022/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.mjs +126 -2
  128. package/esm2022/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.mjs +126 -2
  129. package/esm2022/lib/shared/components/index.mjs +4 -3
  130. package/esm2022/lib/shared/components/spinner/spinner.component.mjs +329 -0
  131. package/esm2022/lib/shared/directives/accessibility-directive.mjs +52 -0
  132. package/esm2022/lib/shared/directives/custom-inner-content.directive.mjs +21 -4
  133. package/esm2022/lib/shared/interfaces/accessibility-data.mjs +2 -0
  134. package/esm2022/lib/shared/pipes/make-html-list.pipe.mjs +2 -2
  135. package/esm2022/lib/shared/shared.module.mjs +12 -7
  136. package/esm2022/lib/shared/sharedExternal.module.mjs +24 -0
  137. package/esm2022/lib/shared/utils/search-utils.mjs +5 -1
  138. package/esm2022/public-api.mjs +5 -2
  139. package/fesm2022/desy-angular.mjs +4273 -965
  140. package/fesm2022/desy-angular.mjs.map +1 -1
  141. package/lib/desy-angular.module.d.ts +2 -1
  142. package/lib/desy-buttons/components/button-loader/button-loader.component.d.ts +2 -0
  143. package/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.d.ts +3 -3
  144. package/lib/desy-buttons/desy-buttons.module.d.ts +3 -3
  145. package/lib/desy-buttons/interfaces/listbox-item-data.d.ts +2 -2
  146. package/lib/desy-commons/interfaces/title-data.d.ts +2 -2
  147. package/lib/desy-forms/components/datepicker/datepicker.component.d.ts +31 -0
  148. package/lib/desy-forms/components/datepicker/datepicker.pipe.d.ts +7 -0
  149. package/lib/desy-forms/components/tree/tree-item/tree-item.component.d.ts +5 -5
  150. package/lib/desy-forms/components/tree/tree.component.d.ts +5 -4
  151. package/lib/desy-forms/desy-forms.module.d.ts +10 -6
  152. package/lib/desy-forms/interfaces/error-message-data.d.ts +2 -2
  153. package/lib/desy-forms/interfaces/fieldset-data.d.ts +2 -2
  154. package/lib/desy-forms/interfaces/hint-data.d.ts +2 -2
  155. package/lib/desy-forms/interfaces/item-checkbox-data.d.ts +3 -3
  156. package/lib/desy-forms/interfaces/item-date-input-data.d.ts +3 -3
  157. package/lib/desy-forms/interfaces/item-input-group-data.d.ts +3 -3
  158. package/lib/desy-forms/interfaces/item-radio-data.d.ts +3 -3
  159. package/lib/desy-forms/interfaces/label-data.d.ts +2 -2
  160. package/lib/desy-forms/interfaces/select-item-data.d.ts +2 -2
  161. package/lib/desy-modals/components/modal/modal.component.d.ts +8 -8
  162. package/lib/desy-modals/interfaces/dialog-options.d.ts +2 -2
  163. package/lib/desy-modals/interfaces/modal-options.d.ts +4 -4
  164. package/lib/desy-modals/services/dialog.service.d.ts +1 -1
  165. package/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.d.ts +2 -1
  166. package/lib/desy-nav/components/header/header-mobileText/header-mobile-text.component.d.ts +61 -0
  167. package/lib/desy-nav/components/header-advanced/header-advanced-sub/header-advanced-sub.component.d.ts +1 -1
  168. package/lib/desy-nav/components/header-advanced/header-advanced-super/header-advanced-super.component.d.ts +1 -1
  169. package/lib/desy-nav/components/header-mini/header-mini.component.d.ts +1 -1
  170. package/lib/desy-nav/components/links-list/links-list-icon-right/links-list-icon-right.component.d.ts +8 -0
  171. package/lib/desy-nav/components/links-list/links-list-item/links-list-item.component.d.ts +4 -2
  172. package/lib/desy-nav/components/links-list/links-list.component.d.ts +2 -1
  173. package/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.d.ts +2 -2
  174. package/lib/desy-nav/components/menu-navigation/menu-navigation.component.d.ts +75 -13
  175. package/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.d.ts +3 -3
  176. package/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.d.ts +3 -3
  177. package/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.d.ts +3 -3
  178. package/lib/desy-nav/components/menubar/menubar.component.d.ts +75 -13
  179. package/lib/desy-nav/components/nav/nav-item/nav-item.component.d.ts +2 -2
  180. package/lib/desy-nav/components/notification/notification.component.d.ts +2 -2
  181. package/lib/desy-nav/desy-nav.module.d.ts +29 -28
  182. package/lib/desy-nav/interfaces/breadcrumbs.data.d.ts +2 -2
  183. package/lib/desy-nav/interfaces/error-summary-data.d.ts +2 -2
  184. package/lib/desy-nav/interfaces/footer-data.d.ts +3 -3
  185. package/lib/desy-nav/interfaces/footer-logo.d.ts +1 -0
  186. package/lib/desy-nav/interfaces/header-dropdown-data.d.ts +2 -2
  187. package/lib/desy-nav/interfaces/header-mobile-text-data.d.ts +2 -2
  188. package/lib/desy-nav/interfaces/header-navigation-item-data.d.ts +2 -2
  189. package/lib/desy-nav/interfaces/header-subnav-data.d.ts +2 -2
  190. package/lib/desy-nav/interfaces/menu-horizontal-item-data.d.ts +2 -2
  191. package/lib/desy-nav/interfaces/menu-navigation-item-sub-item-sub-item.d.ts +2 -2
  192. package/lib/desy-nav/interfaces/menu-navigation-item-sub-item.d.ts +2 -2
  193. package/lib/desy-nav/interfaces/menu-navigation.d.ts +2 -2
  194. package/lib/desy-nav/interfaces/menu-vertical-items-data.d.ts +2 -2
  195. package/lib/desy-nav/interfaces/menu-vertical-sub-data.d.ts +2 -2
  196. package/lib/desy-nav/interfaces/menu-vertical-sub-items-data.d.ts +2 -2
  197. package/lib/desy-nav/interfaces/menubar-item-sub.d.ts +2 -2
  198. package/lib/desy-nav/interfaces/menubar-item.d.ts +3 -3
  199. package/lib/desy-nav/interfaces/nav-item.data.d.ts +2 -2
  200. package/lib/desy-nav/interfaces/notification-items-data.d.ts +2 -2
  201. package/lib/desy-nav/interfaces/notification-options.d.ts +4 -4
  202. package/lib/desy-pagination/components/pagination/pagination.component.d.ts +4 -4
  203. package/lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component.d.ts +3 -3
  204. package/lib/desy-pagination/desy-pagination.module.d.ts +3 -1
  205. package/lib/desy-tables/components/table/table.component.d.ts +3 -0
  206. package/lib/desy-tables/components/table-advanced/table-advanced.component.d.ts +1 -1
  207. package/lib/desy-tables/directives/focus-clicked-cell.directive.d.ts +1 -0
  208. package/lib/desy-tables/interfaces/cell-data.d.ts +2 -2
  209. package/lib/desy-tables/interfaces/wrapper-data.d.ts +2 -2
  210. package/lib/desy-views/components/accordion/accordion.component.d.ts +75 -13
  211. package/lib/desy-views/components/collapsible/collapsible.component.d.ts +5 -1
  212. package/lib/desy-views/components/item/item.component.d.ts +7 -7
  213. package/lib/desy-views/components/media-object/media-object.component.d.ts +75 -13
  214. package/lib/desy-views/components/status/status.component.d.ts +75 -13
  215. package/lib/desy-views/components/status-item/status-item.component.d.ts +77 -15
  216. package/lib/desy-views/components/tabs/tabs.component.d.ts +77 -15
  217. package/lib/desy-views/components/tooltip/tooltip.component.d.ts +75 -13
  218. package/lib/desy-views/desy-views.module.d.ts +30 -31
  219. package/lib/desy-views/interfaces/accordion-item.data.d.ts +2 -2
  220. package/lib/desy-views/interfaces/alert-options.d.ts +2 -2
  221. package/lib/desy-views/interfaces/description-item.data.d.ts +2 -2
  222. package/lib/desy-views/interfaces/status-data.d.ts +2 -2
  223. package/lib/desy-views/interfaces/tabs-items-data.d.ts +2 -2
  224. package/lib/desy-views/interfaces/tabs-panel-data.d.ts +2 -2
  225. package/lib/desy-views/interfaces/term-definition.data.d.ts +2 -2
  226. package/lib/shared/components/accessibility/accessibility-attributes.d.ts +1 -0
  227. package/lib/shared/components/accessibility/accessibility.component.d.ts +78 -17
  228. package/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.d.ts +79 -16
  229. package/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.d.ts +79 -16
  230. package/lib/shared/components/index.d.ts +3 -2
  231. package/lib/shared/components/spinner/spinner.component.d.ts +86 -0
  232. package/lib/shared/directives/accessibility-directive.d.ts +16 -0
  233. package/lib/shared/directives/custom-inner-content.directive.d.ts +3 -2
  234. package/lib/shared/interfaces/accessibility-data.d.ts +77 -0
  235. package/lib/shared/shared.module.d.ts +4 -3
  236. package/lib/shared/sharedExternal.module.d.ts +8 -0
  237. package/package.json +2 -2
  238. package/public-api.d.ts +4 -1
  239. package/esm2022/lib/desy-forms/interfaces/accesibility-data.mjs +0 -2
  240. package/esm2022/lib/desy-pagination/interfaces/index.mjs +0 -2
  241. package/esm2022/lib/desy-views/components/spinner/spinner.component.mjs +0 -81
  242. package/esm2022/lib/shared/interfaces/accesibility-data.mjs +0 -2
  243. package/lib/desy-forms/interfaces/accesibility-data.d.ts +0 -15
  244. package/lib/desy-pagination/interfaces/index.d.ts +0 -1
  245. package/lib/desy-views/components/spinner/spinner.component.d.ts +0 -24
  246. package/lib/shared/interfaces/accesibility-data.d.ts +0 -16
@@ -10,13 +10,14 @@ import { DesyOnInputChange } from '../../../shared/decorators/desy-on-input-chan
10
10
  import { CheckboxesParentComponent } from './checkboxes-parent.component';
11
11
  import * as i0 from "@angular/core";
12
12
  import * as i1 from "@angular/common";
13
- import * as i2 from "../../../desy-commons/components/content/content.component";
14
- import * as i3 from "../hint/hint.component";
15
- import * as i4 from "../label/label.component";
16
- import * as i5 from "../error-message/error-message.component";
17
- import * as i6 from "../fieldset/fieldset.component";
18
- import * as i7 from "./checkbox-item/checkbox-item.component";
19
- import * as i8 from "../../../shared/pipes/make-html-list.pipe";
13
+ import * as i2 from "../../../shared/directives/accessibility-directive";
14
+ import * as i3 from "../../../desy-commons/components/content/content.component";
15
+ import * as i4 from "../hint/hint.component";
16
+ import * as i5 from "../label/label.component";
17
+ import * as i6 from "../error-message/error-message.component";
18
+ import * as i7 from "../fieldset/fieldset.component";
19
+ import * as i8 from "./checkbox-item/checkbox-item.component";
20
+ import * as i9 from "../../../shared/pipes/make-html-list.pipe";
20
21
  export class CheckboxesComponent extends CheckboxesParentComponent {
21
22
  constructor() {
22
23
  super(...arguments);
@@ -192,7 +193,7 @@ export class CheckboxesComponent extends CheckboxesParentComponent {
192
193
  provide: CheckboxesParentComponent,
193
194
  useExisting: CheckboxesComponent,
194
195
  }
195
- ], queries: [{ propertyName: "fieldsetComponent", predicate: FieldsetComponent }, { propertyName: "legendComponent", predicate: LegendComponent }, { propertyName: "checkboxComponentItems", predicate: CheckboxItemComponent }], viewQueries: [{ propertyName: "innerHtml", first: true, predicate: ["innerHtml"], descendants: true, static: true }, { propertyName: "checkboxComponentItems2", predicate: CheckboxItemComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\n [ngClass]=\"{'c-form-group--error': (hasErrorsMessage() || formGroupClasses === 'c-form-group--error') }\">\n <ng-container *ngIf=\"hasFieldsetComponent()\">\n <ng-content select=\"desy-fieldset\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!hasFieldsetComponent()\">\n <desy-fieldset *ngIf=\"fieldsetData\"\n [classes]=\"fieldsetData.classes\"\n [id]=\"fieldsetData.id\"\n [legendData]=\"fieldsetData.legend\"\n [headingLevel]=\"fieldsetData.headingLevel\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[fieldsetData.describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n [role]=\"fieldsetData.role\"\n [ariaLabel]=\"fieldsetData.ariaLabel\"\n [ariaLabelledBy]=\"fieldsetData.ariaLabelledBy\"\n [ariaHidden]=\"fieldsetData.ariaHidden\"\n [ariaDisabled]=\"fieldsetData.ariaDisabled\"\n [ariaControls]=\"fieldsetData.ariaControls\"\n [ariaCurrent]=\"fieldsetData.ariaCurrent\"\n [ariaLive]=\"fieldsetData.ariaLive\"\n [ariaExpanded]=\"fieldsetData.ariaExpanded\"\n [ariaHasPopup]=\"fieldsetData.ariaHasPopup\"\n [tabindex]=\"fieldsetData.tabindex\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !!legendComponent\"\n [legendRef]=\"legendTemplate\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\">\n <ng-template #legendTemplate>\n <ng-content select=\"desy-legend\"></ng-content>\n </ng-template>\n </desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && legendRef\"\n [legendRef]=\"legendRef\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && !legendRef && legendData\"\n [legendData]=\"{text: legendData.text, html: legendData.html, classes: legendData.classes, isPageHeading: legendData.isPageHeading}\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && !legendRef && !legendData && legendText\"\n [legendText]=\"legendText\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\n </ng-container>\n\n <ng-container *ngIf=\"!hasFieldset()\">\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #innerHtml>\n <ng-container *ngIf=\"hasHintComponent()\">\n <ng-content select=\"desy-hint\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!hasHintComponent()\">\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n <desy-hint *ngIf=\"!hintRef && hintData\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\n </ng-container>\n\n <ng-container *ngIf=\"hasErrorMessageComponent()\">\n <ng-content select=\"desy-error-message\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!hasErrorMessageComponent()\">\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\n </ng-container>\n\n <div [class]=\"['c-checkboxes', classes] | makeHtmlList\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n\n <ng-container *ngIf=\"checkboxComponentItems && checkboxComponentItems.length > 0\">\n <ng-content select=\"desy-checkbox-item\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!(checkboxComponentItems && checkboxComponentItems.length > 0) && items\">\n <desy-checkbox-item *ngFor=\"let item of items; index as i\"\n [id]=\"item.id\"\n [disabled]=\"item.disabled || disabled\"\n [name]=\"item.name\"\n [classes]=\"item.classes\"\n [value]=\"item.value\"\n [(checked)]=\"item.checked\"\n [conditional]=\"item.conditional\"\n [isIndeterminate]=\"item.isIndeterminate\"\n [indeterminateChecked]=\"item.indeterminateChecked\"\n\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\">\n <desy-label [text]=\"item.text\" [html]=\"item.html\"\n [classes]=\"item.labelData ? item.labelData.classes : null\"\n [role]=\"item.labelData ? item.labelData.role : null\"\n [ariaLabel]=\"item.labelData ? item.labelData.ariaLabel : null\"\n [ariaDescribedBy]=\"item.labelData ? item.labelData.ariaDescribedBy: null\"\n [ariaLabelledBy]=\"item.labelData ? item.labelData.ariaLabelledBy : null\"\n [ariaHidden]=\"item.labelData ? item.labelData.ariaHidden : null\"\n [ariaDisabled]=\"item.labelData ? item.labelData.ariaDisabled : null\"\n [ariaControls]=\"item.labelData ? item.labelData.ariaControls : null\"\n [ariaCurrent]=\"item.labelData ? item.labelData.ariaCurrent : null\"\n [ariaLive]=\"item.labelData ? item.labelData.ariaLive : null\"\n [ariaExpanded]=\"item.labelData ? item.labelData.ariaExpanded : null\"\n [ariaErrorMessage]=\"item.labelData ? item.labelData.ariaErrorMessage : null\"\n [ariaHasPopup]=\"item.labelData ? item.labelData.ariaHasPopup : null\"\n [tabindex]=\"tabindex ? item.labelData.tabindex : null\"></desy-label>\n <desy-hint *ngIf=\"item.hintData && (item.hintData.text || item.hintData.html)\"\n [text]=\"item.hintData.text\"\n [html]=\"item.hintData.html\"\n [classes]=\"item.hintData.classes\"\n [role]=\"item.hintData.role\"\n [ariaLabel]=\"item.hintData.ariaLabel\"\n [ariaDescribedBy]=\"item.hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"item.hintData.ariaLabelledBy\"\n [ariaHidden]=\"item.hintData.ariaHidden\"\n [ariaDisabled]=\"item.hintData.ariaDisabled\"\n [ariaControls]=\"item.hintData.ariaControls\"\n [ariaCurrent]=\"item.hintData.ariaCurrent\"\n [ariaLive]=\"item.hintData.ariaLive\"\n [ariaExpanded]=\"item.hintData.ariaExpanded\"\n [ariaErrorMessage]=\"item.hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"item.hintData.ariaHasPopup\"\n [tabindex]=\"item.hintData.tabindex\"></desy-hint>\n <desy-hint *ngIf=\"!item.hintData && item.hintText\" [text]=\"item.hintText\"></desy-hint>\n <desy-content *ngIf=\"item.conditionalHtml\">\n <ng-container *ngTemplateOutlet=\"item.conditionalHtml\"></ng-container>\n </desy-content>\n </desy-checkbox-item>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ContentComponent, selector: "desy-content", inputs: ["classes"] }, { kind: "component", type: i3.HintComponent, selector: "desy-hint", inputs: ["id", "classes", "html", "text"] }, { kind: "component", type: i4.LabelComponent, selector: "desy-label", inputs: ["id", "classes", "html", "text", "isPageHeading", "headingLevel", "for"] }, { kind: "component", type: i5.ErrorMessageComponent, selector: "desy-error-message", inputs: ["id", "classes", "html", "text", "visuallyHiddenText"] }, { kind: "component", type: i6.FieldsetComponent, selector: "desy-fieldset", inputs: ["describedBy", "errorId", "legendRef", "legendData", "legendText", "classes", "caller", "id", "headingLevel"] }, { kind: "component", type: i7.CheckboxItemComponent, selector: "desy-checkbox-item", inputs: ["id", "value", "name", "conditional", "disabled", "isIndeterminate", "indeterminateChecked", "classes", "checked"], outputs: ["checkedChange", "indeterminateChange"] }, { kind: "pipe", type: i8.MakeHtmlListPipe, name: "makeHtmlList" }] }); }
196
+ ], queries: [{ propertyName: "fieldsetComponent", predicate: FieldsetComponent }, { propertyName: "legendComponent", predicate: LegendComponent }, { propertyName: "checkboxComponentItems", predicate: CheckboxItemComponent }], viewQueries: [{ propertyName: "innerHtml", first: true, predicate: ["innerHtml"], descendants: true, static: true }, { propertyName: "checkboxComponentItems2", predicate: CheckboxItemComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\n [ngClass]=\"{'c-form-group--error': (hasErrorsMessage() || formGroupClasses === 'c-form-group--error') }\">\n <ng-container *ngIf=\"hasFieldsetComponent()\">\n <ng-content select=\"desy-fieldset\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!hasFieldsetComponent()\">\n <desy-fieldset *ngIf=\"fieldsetData\"\n [classes]=\"fieldsetData.classes\"\n [id]=\"fieldsetData.id\"\n [legendData]=\"fieldsetData.legend\"\n [headingLevel]=\"fieldsetData.headingLevel\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[fieldsetData.describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n [role]=\"fieldsetData.role\"\n [ariaLabel]=\"fieldsetData.ariaLabel\"\n [ariaLabelledBy]=\"fieldsetData.ariaLabelledBy\"\n [ariaHidden]=\"fieldsetData.ariaHidden\"\n [ariaDisabled]=\"fieldsetData.ariaDisabled\"\n [ariaControls]=\"fieldsetData.ariaControls\"\n [ariaCurrent]=\"fieldsetData.ariaCurrent\"\n [ariaLive]=\"fieldsetData.ariaLive\"\n [ariaExpanded]=\"fieldsetData.ariaExpanded\"\n [ariaHasPopup]=\"fieldsetData.ariaHasPopup\"\n [tabindex]=\"fieldsetData.tabindex\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !!legendComponent\"\n [legendRef]=\"legendTemplate\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\">\n <ng-template #legendTemplate>\n <ng-content select=\"desy-legend\"></ng-content>\n </ng-template>\n </desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && legendRef\"\n [legendRef]=\"legendRef\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && !legendRef && legendData\"\n [legendData]=\"{text: legendData.text, html: legendData.html, classes: legendData.classes, isPageHeading: legendData.isPageHeading}\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && !legendRef && !legendData && legendText\"\n [legendText]=\"legendText\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\n </ng-container>\n\n <ng-container *ngIf=\"!hasFieldset()\">\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #innerHtml>\n <ng-container *ngIf=\"hasHintComponent()\">\n <ng-content select=\"desy-hint\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!hasHintComponent()\">\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n <desy-hint *ngIf=\"!hintRef && hintData\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\n </ng-container>\n\n <ng-container *ngIf=\"hasErrorMessageComponent()\">\n <ng-content select=\"desy-error-message\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!hasErrorMessageComponent()\">\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\n </ng-container>\n\n <div [class]=\"['c-checkboxes', classes] | makeHtmlList\"\n [desyAppAccessibility]=\"this\">\n\n <ng-container *ngIf=\"checkboxComponentItems && checkboxComponentItems.length > 0\">\n <ng-content select=\"desy-checkbox-item\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!(checkboxComponentItems && checkboxComponentItems.length > 0) && items\">\n <desy-checkbox-item *ngFor=\"let item of items; index as i\"\n [id]=\"item.id\"\n [disabled]=\"item.disabled || disabled\"\n [name]=\"item.name\"\n [classes]=\"item.classes\"\n [value]=\"item.value\"\n [(checked)]=\"item.checked\"\n [conditional]=\"item.conditional\"\n [isIndeterminate]=\"item.isIndeterminate\"\n [indeterminateChecked]=\"item.indeterminateChecked\"\n\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\">\n <desy-label [text]=\"item.text\" [html]=\"item.html\"\n [classes]=\"item.labelData ? item.labelData.classes : null\"\n [role]=\"item.labelData ? item.labelData.role : null\"\n [ariaLabel]=\"item.labelData ? item.labelData.ariaLabel : null\"\n [ariaDescribedBy]=\"item.labelData ? item.labelData.ariaDescribedBy: null\"\n [ariaLabelledBy]=\"item.labelData ? item.labelData.ariaLabelledBy : null\"\n [ariaHidden]=\"item.labelData ? item.labelData.ariaHidden : null\"\n [ariaDisabled]=\"item.labelData ? item.labelData.ariaDisabled : null\"\n [ariaControls]=\"item.labelData ? item.labelData.ariaControls : null\"\n [ariaCurrent]=\"item.labelData ? item.labelData.ariaCurrent : null\"\n [ariaLive]=\"item.labelData ? item.labelData.ariaLive : null\"\n [ariaExpanded]=\"item.labelData ? item.labelData.ariaExpanded : null\"\n [ariaErrorMessage]=\"item.labelData ? item.labelData.ariaErrorMessage : null\"\n [ariaHasPopup]=\"item.labelData ? item.labelData.ariaHasPopup : null\"\n [tabindex]=\"tabindex ? item.labelData.tabindex : null\"></desy-label>\n <desy-hint *ngIf=\"item.hintData && (item.hintData.text || item.hintData.html)\"\n [text]=\"item.hintData.text\"\n [html]=\"item.hintData.html\"\n [classes]=\"item.hintData.classes\"\n [role]=\"item.hintData.role\"\n [ariaLabel]=\"item.hintData.ariaLabel\"\n [ariaDescribedBy]=\"item.hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"item.hintData.ariaLabelledBy\"\n [ariaHidden]=\"item.hintData.ariaHidden\"\n [ariaDisabled]=\"item.hintData.ariaDisabled\"\n [ariaControls]=\"item.hintData.ariaControls\"\n [ariaCurrent]=\"item.hintData.ariaCurrent\"\n [ariaLive]=\"item.hintData.ariaLive\"\n [ariaExpanded]=\"item.hintData.ariaExpanded\"\n [ariaErrorMessage]=\"item.hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"item.hintData.ariaHasPopup\"\n [tabindex]=\"item.hintData.tabindex\"></desy-hint>\n <desy-hint *ngIf=\"!item.hintData && item.hintText\" [text]=\"item.hintText\"></desy-hint>\n <desy-content *ngIf=\"item.conditionalHtml\">\n <ng-container *ngTemplateOutlet=\"item.conditionalHtml\"></ng-container>\n </desy-content>\n </desy-checkbox-item>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.AccessibilityDirective, selector: "[desyAppAccessibility]", inputs: ["desyAppAccessibility"] }, { kind: "component", type: i3.ContentComponent, selector: "desy-content", inputs: ["classes"] }, { kind: "component", type: i4.HintComponent, selector: "desy-hint", inputs: ["id", "classes", "html", "text"] }, { kind: "component", type: i5.LabelComponent, selector: "desy-label", inputs: ["id", "classes", "html", "text", "isPageHeading", "headingLevel", "for"] }, { kind: "component", type: i6.ErrorMessageComponent, selector: "desy-error-message", inputs: ["id", "classes", "html", "text", "visuallyHiddenText"] }, { kind: "component", type: i7.FieldsetComponent, selector: "desy-fieldset", inputs: ["describedBy", "errorId", "legendRef", "legendData", "legendText", "classes", "caller", "id", "headingLevel"] }, { kind: "component", type: i8.CheckboxItemComponent, selector: "desy-checkbox-item", inputs: ["id", "value", "name", "conditional", "disabled", "isIndeterminate", "indeterminateChecked", "classes", "checked"], outputs: ["checkedChange", "indeterminateChange"] }, { kind: "pipe", type: i9.MakeHtmlListPipe, name: "makeHtmlList" }] }); }
196
197
  }
197
198
  __decorate([
198
199
  DesyOnInputChange('onIdPrefixChange'),
@@ -222,7 +223,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
222
223
  provide: CheckboxesParentComponent,
223
224
  useExisting: CheckboxesComponent,
224
225
  }
225
- ], template: "<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\n [ngClass]=\"{'c-form-group--error': (hasErrorsMessage() || formGroupClasses === 'c-form-group--error') }\">\n <ng-container *ngIf=\"hasFieldsetComponent()\">\n <ng-content select=\"desy-fieldset\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!hasFieldsetComponent()\">\n <desy-fieldset *ngIf=\"fieldsetData\"\n [classes]=\"fieldsetData.classes\"\n [id]=\"fieldsetData.id\"\n [legendData]=\"fieldsetData.legend\"\n [headingLevel]=\"fieldsetData.headingLevel\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[fieldsetData.describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n [role]=\"fieldsetData.role\"\n [ariaLabel]=\"fieldsetData.ariaLabel\"\n [ariaLabelledBy]=\"fieldsetData.ariaLabelledBy\"\n [ariaHidden]=\"fieldsetData.ariaHidden\"\n [ariaDisabled]=\"fieldsetData.ariaDisabled\"\n [ariaControls]=\"fieldsetData.ariaControls\"\n [ariaCurrent]=\"fieldsetData.ariaCurrent\"\n [ariaLive]=\"fieldsetData.ariaLive\"\n [ariaExpanded]=\"fieldsetData.ariaExpanded\"\n [ariaHasPopup]=\"fieldsetData.ariaHasPopup\"\n [tabindex]=\"fieldsetData.tabindex\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !!legendComponent\"\n [legendRef]=\"legendTemplate\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\">\n <ng-template #legendTemplate>\n <ng-content select=\"desy-legend\"></ng-content>\n </ng-template>\n </desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && legendRef\"\n [legendRef]=\"legendRef\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && !legendRef && legendData\"\n [legendData]=\"{text: legendData.text, html: legendData.html, classes: legendData.classes, isPageHeading: legendData.isPageHeading}\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && !legendRef && !legendData && legendText\"\n [legendText]=\"legendText\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\n </ng-container>\n\n <ng-container *ngIf=\"!hasFieldset()\">\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #innerHtml>\n <ng-container *ngIf=\"hasHintComponent()\">\n <ng-content select=\"desy-hint\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!hasHintComponent()\">\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n <desy-hint *ngIf=\"!hintRef && hintData\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\n </ng-container>\n\n <ng-container *ngIf=\"hasErrorMessageComponent()\">\n <ng-content select=\"desy-error-message\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!hasErrorMessageComponent()\">\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\n </ng-container>\n\n <div [class]=\"['c-checkboxes', classes] | makeHtmlList\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n\n <ng-container *ngIf=\"checkboxComponentItems && checkboxComponentItems.length > 0\">\n <ng-content select=\"desy-checkbox-item\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!(checkboxComponentItems && checkboxComponentItems.length > 0) && items\">\n <desy-checkbox-item *ngFor=\"let item of items; index as i\"\n [id]=\"item.id\"\n [disabled]=\"item.disabled || disabled\"\n [name]=\"item.name\"\n [classes]=\"item.classes\"\n [value]=\"item.value\"\n [(checked)]=\"item.checked\"\n [conditional]=\"item.conditional\"\n [isIndeterminate]=\"item.isIndeterminate\"\n [indeterminateChecked]=\"item.indeterminateChecked\"\n\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\">\n <desy-label [text]=\"item.text\" [html]=\"item.html\"\n [classes]=\"item.labelData ? item.labelData.classes : null\"\n [role]=\"item.labelData ? item.labelData.role : null\"\n [ariaLabel]=\"item.labelData ? item.labelData.ariaLabel : null\"\n [ariaDescribedBy]=\"item.labelData ? item.labelData.ariaDescribedBy: null\"\n [ariaLabelledBy]=\"item.labelData ? item.labelData.ariaLabelledBy : null\"\n [ariaHidden]=\"item.labelData ? item.labelData.ariaHidden : null\"\n [ariaDisabled]=\"item.labelData ? item.labelData.ariaDisabled : null\"\n [ariaControls]=\"item.labelData ? item.labelData.ariaControls : null\"\n [ariaCurrent]=\"item.labelData ? item.labelData.ariaCurrent : null\"\n [ariaLive]=\"item.labelData ? item.labelData.ariaLive : null\"\n [ariaExpanded]=\"item.labelData ? item.labelData.ariaExpanded : null\"\n [ariaErrorMessage]=\"item.labelData ? item.labelData.ariaErrorMessage : null\"\n [ariaHasPopup]=\"item.labelData ? item.labelData.ariaHasPopup : null\"\n [tabindex]=\"tabindex ? item.labelData.tabindex : null\"></desy-label>\n <desy-hint *ngIf=\"item.hintData && (item.hintData.text || item.hintData.html)\"\n [text]=\"item.hintData.text\"\n [html]=\"item.hintData.html\"\n [classes]=\"item.hintData.classes\"\n [role]=\"item.hintData.role\"\n [ariaLabel]=\"item.hintData.ariaLabel\"\n [ariaDescribedBy]=\"item.hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"item.hintData.ariaLabelledBy\"\n [ariaHidden]=\"item.hintData.ariaHidden\"\n [ariaDisabled]=\"item.hintData.ariaDisabled\"\n [ariaControls]=\"item.hintData.ariaControls\"\n [ariaCurrent]=\"item.hintData.ariaCurrent\"\n [ariaLive]=\"item.hintData.ariaLive\"\n [ariaExpanded]=\"item.hintData.ariaExpanded\"\n [ariaErrorMessage]=\"item.hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"item.hintData.ariaHasPopup\"\n [tabindex]=\"item.hintData.tabindex\"></desy-hint>\n <desy-hint *ngIf=\"!item.hintData && item.hintText\" [text]=\"item.hintText\"></desy-hint>\n <desy-content *ngIf=\"item.conditionalHtml\">\n <ng-container *ngTemplateOutlet=\"item.conditionalHtml\"></ng-container>\n </desy-content>\n </desy-checkbox-item>\n </ng-container>\n </div>\n</ng-template>\n" }]
226
+ ], template: "<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\n [ngClass]=\"{'c-form-group--error': (hasErrorsMessage() || formGroupClasses === 'c-form-group--error') }\">\n <ng-container *ngIf=\"hasFieldsetComponent()\">\n <ng-content select=\"desy-fieldset\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!hasFieldsetComponent()\">\n <desy-fieldset *ngIf=\"fieldsetData\"\n [classes]=\"fieldsetData.classes\"\n [id]=\"fieldsetData.id\"\n [legendData]=\"fieldsetData.legend\"\n [headingLevel]=\"fieldsetData.headingLevel\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[fieldsetData.describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n [role]=\"fieldsetData.role\"\n [ariaLabel]=\"fieldsetData.ariaLabel\"\n [ariaLabelledBy]=\"fieldsetData.ariaLabelledBy\"\n [ariaHidden]=\"fieldsetData.ariaHidden\"\n [ariaDisabled]=\"fieldsetData.ariaDisabled\"\n [ariaControls]=\"fieldsetData.ariaControls\"\n [ariaCurrent]=\"fieldsetData.ariaCurrent\"\n [ariaLive]=\"fieldsetData.ariaLive\"\n [ariaExpanded]=\"fieldsetData.ariaExpanded\"\n [ariaHasPopup]=\"fieldsetData.ariaHasPopup\"\n [tabindex]=\"fieldsetData.tabindex\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !!legendComponent\"\n [legendRef]=\"legendTemplate\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\">\n <ng-template #legendTemplate>\n <ng-content select=\"desy-legend\"></ng-content>\n </ng-template>\n </desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && legendRef\"\n [legendRef]=\"legendRef\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && !legendRef && legendData\"\n [legendData]=\"{text: legendData.text, html: legendData.html, classes: legendData.classes, isPageHeading: legendData.isPageHeading}\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && !legendRef && !legendData && legendText\"\n [legendText]=\"legendText\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\n </ng-container>\n\n <ng-container *ngIf=\"!hasFieldset()\">\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #innerHtml>\n <ng-container *ngIf=\"hasHintComponent()\">\n <ng-content select=\"desy-hint\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!hasHintComponent()\">\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n <desy-hint *ngIf=\"!hintRef && hintData\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\n </ng-container>\n\n <ng-container *ngIf=\"hasErrorMessageComponent()\">\n <ng-content select=\"desy-error-message\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!hasErrorMessageComponent()\">\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\n </ng-container>\n\n <div [class]=\"['c-checkboxes', classes] | makeHtmlList\"\n [desyAppAccessibility]=\"this\">\n\n <ng-container *ngIf=\"checkboxComponentItems && checkboxComponentItems.length > 0\">\n <ng-content select=\"desy-checkbox-item\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!(checkboxComponentItems && checkboxComponentItems.length > 0) && items\">\n <desy-checkbox-item *ngFor=\"let item of items; index as i\"\n [id]=\"item.id\"\n [disabled]=\"item.disabled || disabled\"\n [name]=\"item.name\"\n [classes]=\"item.classes\"\n [value]=\"item.value\"\n [(checked)]=\"item.checked\"\n [conditional]=\"item.conditional\"\n [isIndeterminate]=\"item.isIndeterminate\"\n [indeterminateChecked]=\"item.indeterminateChecked\"\n\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\">\n <desy-label [text]=\"item.text\" [html]=\"item.html\"\n [classes]=\"item.labelData ? item.labelData.classes : null\"\n [role]=\"item.labelData ? item.labelData.role : null\"\n [ariaLabel]=\"item.labelData ? item.labelData.ariaLabel : null\"\n [ariaDescribedBy]=\"item.labelData ? item.labelData.ariaDescribedBy: null\"\n [ariaLabelledBy]=\"item.labelData ? item.labelData.ariaLabelledBy : null\"\n [ariaHidden]=\"item.labelData ? item.labelData.ariaHidden : null\"\n [ariaDisabled]=\"item.labelData ? item.labelData.ariaDisabled : null\"\n [ariaControls]=\"item.labelData ? item.labelData.ariaControls : null\"\n [ariaCurrent]=\"item.labelData ? item.labelData.ariaCurrent : null\"\n [ariaLive]=\"item.labelData ? item.labelData.ariaLive : null\"\n [ariaExpanded]=\"item.labelData ? item.labelData.ariaExpanded : null\"\n [ariaErrorMessage]=\"item.labelData ? item.labelData.ariaErrorMessage : null\"\n [ariaHasPopup]=\"item.labelData ? item.labelData.ariaHasPopup : null\"\n [tabindex]=\"tabindex ? item.labelData.tabindex : null\"></desy-label>\n <desy-hint *ngIf=\"item.hintData && (item.hintData.text || item.hintData.html)\"\n [text]=\"item.hintData.text\"\n [html]=\"item.hintData.html\"\n [classes]=\"item.hintData.classes\"\n [role]=\"item.hintData.role\"\n [ariaLabel]=\"item.hintData.ariaLabel\"\n [ariaDescribedBy]=\"item.hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"item.hintData.ariaLabelledBy\"\n [ariaHidden]=\"item.hintData.ariaHidden\"\n [ariaDisabled]=\"item.hintData.ariaDisabled\"\n [ariaControls]=\"item.hintData.ariaControls\"\n [ariaCurrent]=\"item.hintData.ariaCurrent\"\n [ariaLive]=\"item.hintData.ariaLive\"\n [ariaExpanded]=\"item.hintData.ariaExpanded\"\n [ariaErrorMessage]=\"item.hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"item.hintData.ariaHasPopup\"\n [tabindex]=\"item.hintData.tabindex\"></desy-hint>\n <desy-hint *ngIf=\"!item.hintData && item.hintText\" [text]=\"item.hintText\"></desy-hint>\n <desy-content *ngIf=\"item.conditionalHtml\">\n <ng-container *ngTemplateOutlet=\"item.conditionalHtml\"></ng-container>\n </desy-content>\n </desy-checkbox-item>\n </ng-container>\n </div>\n</ng-template>\n" }]
226
227
  }], propDecorators: { fieldsetData: [{
227
228
  type: Input
228
229
  }], legendRef: [{
@@ -265,4 +266,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
265
266
  type: ViewChildren,
266
267
  args: [CheckboxItemComponent]
267
268
  }] } });
268
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3hlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LWZvcm1zL2NvbXBvbmVudHMvY2hlY2tib3hlcy9jaGVja2JveGVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktZm9ybXMvY29tcG9uZW50cy9jaGVja2JveGVzL2NoZWNrYm94ZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsZUFBZSxFQUFXLFlBQVksRUFDdEMsVUFBVSxFQUNWLEtBQUssRUFBRSxNQUFNLEVBQ2IsU0FBUyxFQUVULFdBQVcsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUNyQyxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFHOUUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDM0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDekYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDNUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7QUFrQjFFLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSx5QkFBeUI7SUFmbEU7O1FBc0NZLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7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c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR1csUUFBUTtzQkFBeEIsS0FBSztnQkFHVyxJQUFJO3NCQUFwQixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUVFLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDVyxXQUFXO3NCQUEzQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNXLFdBQVc7c0JBQTNCLEtBQUs7Z0JBRzhCLGlCQUFpQjtzQkFBcEQsZUFBZTt1QkFBQyxpQkFBaUI7Z0JBR0EsZUFBZTtzQkFBaEQsZUFBZTt1QkFBQyxlQUFlO2dCQUVRLHNCQUFzQjtzQkFBN0QsZUFBZTt1QkFBQyxxQkFBcUI7Z0JBRUksU0FBUztzQkFBbEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNILHVCQUF1QjtzQkFBM0QsWUFBWTt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbiwgRG9DaGVjaywgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCwgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmllbGRzZXREYXRhLCBMZWdlbmREYXRhLCBJdGVtQ2hlY2tib3hEYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBMZWdlbmRDb21wb25lbnQgfSBmcm9tICcuLi9maWVsZHNldC9sZWdlbmQvbGVnZW5kLmNvbXBvbmVudCc7XG5pbXBvcnQge0NoZWNrYm94SXRlbUNvbXBvbmVudH0gZnJvbSAnLi9jaGVja2JveC1pdGVtL2NoZWNrYm94LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7SGludENvbXBvbmVudH0gZnJvbSAnLi4vaGludC9oaW50LmNvbXBvbmVudCc7XG5pbXBvcnQge0Vycm9yTWVzc2FnZUNvbXBvbmVudH0gZnJvbSAnLi4vZXJyb3ItbWVzc2FnZS9lcnJvci1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQge0ZpZWxkc2V0Q29tcG9uZW50fSBmcm9tICcuLi9maWVsZHNldC9maWVsZHNldC5jb21wb25lbnQnO1xuaW1wb3J0IHtNYWtlSHRtbExpc3RQaXBlfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvcGlwZXMvbWFrZS1odG1sLWxpc3QucGlwZSc7XG5pbXBvcnQge0Rlc3lDb250ZW50Q2hpbGR9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktY29udGVudC1jaGlsZC5kZWNvcmF0b3InO1xuaW1wb3J0IHtEZXN5T25JbnB1dENoYW5nZX0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RlY29yYXRvcnMvZGVzeS1vbi1pbnB1dC1jaGFuZ2UuZGVjb3JhdG9yJztcbmltcG9ydCB7IENoZWNrYm94ZXNQYXJlbnRDb21wb25lbnQgfSBmcm9tICcuL2NoZWNrYm94ZXMtcGFyZW50LmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGVzeS1jaGVja2JveGVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94ZXMuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENoZWNrYm94ZXNDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IENoZWNrYm94ZXNQYXJlbnRDb21wb25lbnQsXG4gICAgICB1c2VFeGlzdGluZzogQ2hlY2tib3hlc0NvbXBvbmVudCxcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hlc0NvbXBvbmVudCBleHRlbmRzIENoZWNrYm94ZXNQYXJlbnRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBEb0NoZWNrIHtcbiAgXG4gIC8qKlxuICAgKiBmaWVsZHNldCwgZGlmZXJlbnRlcyBmb3JtYXMgZGUgaW1wbGVtZW50YXIsIGVudW1lcmFkYXMgcG9yIHByaW9yaWRhZFxuICAgKiAxKSBpbmNsdWlyIGNvbXBvbmVudGUgRmllbGRzZXRDb21wb25lbnRcbiAgICogMikgaW5jbHVpciBvYmpldG8gRmllbGRzZXREYXRhIChpbnRlcmZheiBleHB1ZXN0YSlcbiAgICogMykgaW5jbHVpciBjb21wb25lbnRlIExlZ2VuZENvbXBvbmVudFxuICAgKiA0KSBpbmNsdWlyIHRlbXBsYXRlIGxlZ2VuZFxuICAgKiA1KSBpbmNsdWlyIGxlZ2VuZERhdGEgLSBpbmNsdWlyIHVuIGZpZWxkc2V0IGNvbiB1bmEgbGVnZW5kYSBjb24gbG9zIHBhcmFtZXRyb3MgcGFzYWRvcyAgKGludGVyZmF6IGV4cHVlc3RhKVxuICAgKiA2KSBpbmNsdWlyIGxlZ2VuZFRleHQgLSBpbmNsdWlyIHVuIGZpZWxkc2V0IGNvbiB1biB0ZXh0byBlbiBsYSBsZWdlbmRhXG4gICAqL1xuICBASW5wdXQoKSBmaWVsZHNldERhdGE6IEZpZWxkc2V0RGF0YTtcbiAgQElucHV0KCkgbGVnZW5kUmVmOiBUZW1wbGF0ZVJlZjxMZWdlbmRDb21wb25lbnQ+O1xuICBASW5wdXQoKSBsZWdlbmREYXRhOiBMZWdlbmREYXRhO1xuICBASW5wdXQoKSBsZWdlbmRUZXh0OiBzdHJpbmc7XG5cbiAgQERlc3lPbklucHV0Q2hhbmdlKCdvbklkUHJlZml4Q2hhbmdlJylcbiAgQElucHV0KCkgZGVjbGFyZSBpZFByZWZpeDogc3RyaW5nO1xuICBcbiAgQERlc3lPbklucHV0Q2hhbmdlKCdvbk5hbWVDaGFuZ2UnKVxuICBASW5wdXQoKSBkZWNsYXJlIG5hbWU6IHN0cmluZztcbiAgXG4gIEBJbnB1dCgpIGl0ZW1zOiBJdGVtQ2hlY2tib3hEYXRhW107XG4gIEBPdXRwdXQoKSBpdGVtc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SXRlbUNoZWNrYm94RGF0YVtdPigpO1xuICBcbiAgQElucHV0KCkgZm9ybUdyb3VwQ2xhc3Nlczogc3RyaW5nO1xuICBASW5wdXQoKSBkZWNsYXJlIGhhc0RpdmlkZXJzOiBib29sZWFuO1xuICBASW5wdXQoKSBoYXNFcnJvcjogYm9vbGVhbjtcbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xuICBASW5wdXQoKSBkZWNsYXJlIGRlc2NyaWJlZEJ5OiBzdHJpbmc7XG4gIFxuICBARGVzeUNvbnRlbnRDaGlsZCh7IG9uU2V0Q2FsbGJhY2tOYW1lOiAnb3ZlcnJpZGVGaWVsZHNldFBhcmFtcyd9KVxuICBAQ29udGVudENoaWxkcmVuKEZpZWxkc2V0Q29tcG9uZW50KSBmaWVsZHNldENvbXBvbmVudDogRmllbGRzZXRDb21wb25lbnQ7XG4gIFxuICBARGVzeUNvbnRlbnRDaGlsZCgpXG4gIEBDb250ZW50Q2hpbGRyZW4oTGVnZW5kQ29tcG9uZW50KSBsZWdlbmRDb21wb25lbnQ6IExlZ2VuZENvbXBvbmVudDtcbiAgXG4gIEBDb250ZW50Q2hpbGRyZW4oQ2hlY2tib3hJdGVtQ29tcG9uZW50KSBjaGVja2JveENvbXBvbmVudEl0ZW1zOiBRdWVyeUxpc3Q8Q2hlY2tib3hJdGVtQ29tcG9uZW50PjtcbiAgXG4gIEBWaWV3Q2hpbGQoJ2lubmVySHRtbCcsIHsgc3RhdGljOiB0cnVlIH0pIGlubmVySHRtbDogVGVtcGxhdGVSZWY8YW55PjtcbiAgQFZpZXdDaGlsZHJlbihDaGVja2JveEl0ZW1Db21wb25lbnQpIGNoZWNrYm94Q29tcG9uZW50SXRlbXMyOiBRdWVyeUxpc3Q8Q2hlY2tib3hJdGVtQ29tcG9uZW50PjtcblxuICAvLyBGbGFnc1xuICBwcml2YXRlIG5leHRWYWx1ZSA9IG51bGw7ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFByw7N4aW1vIHZhbG9yIGVuIGVsIGNvbXBvbmVudGVcbiAgcHJpdmF0ZSB1cGRhdGVDaGVrYm94SWRzRmxhZyA9IGZhbHNlOyAgICAgICAgICAgICAvLyBJbmRpY2EgcXVlIHNlIGhhbiBtb2RpZmljYWRvIGxvcyBpZHMgZGUgbG9zIGl0ZW1zXG4gIHByaXZhdGUgY29udGVudEluaXRGbGFnID0gZmFsc2U7ICAgICAgICAgICAgICAgICAgLy8gSW5kaWNhIHF1ZSBzZSBpbmljaWFsaXphZG8gZWwgY29uZW5pZG9cbiAgcHJpdmF0ZSB1cGRhdGVWYWx1ZUZyb21DaGVja2JveEl0ZW1zRmxhZyA9IGZhbHNlOyAvLyBJbmRpY2EgcXVlIHNlIGhhIHNlbGVjY2lvbmFkby9kZXNlbGVjY2lvbmFkbyB1biBpdGVtXG4gIHByaXZhdGUgdXBkYXRlVmFsdWVUb0NoZWNrYm94SXRlbXNGbGFnID0gZmFsc2U7ICAgLy8gSW5kaWNhIHF1ZSBzZSBkZWJlIHNlbGVjY2lvbmFyL2Rlc2VsZWNjaW9uYXIgdW4gaXRlbVxuICBwcml2YXRlIHVwZGF0ZUl0ZW1MaXN0RmxhZyA9IGZhbHNlOyAgICAgICAgICAgICAgIC8vIEluZGljYSBxdWUgc2UgaGEgY3JlYWRvL21vZGlmaWNhZG8gZWwgbGlzdGFkbyBkZSBpdGVtc1xuXG4gIC8qKlxuICAgKiBDZW50cmFsaXphIHkgY29vcmRpbmEgbG9zIGNhbWJpb3MgZW4gZWwgY29tcG9uZW50ZVxuICAgKi9cbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIFxuICAgIC8vIFRPRE8gRXN0YSBnZXN0acOzbiByZXN1bHRhIGVuZ29ycm9zYSB5IGRpZmljaWwgZGUgc2VndWlyLiBFc3R1ZGlhciBzaSBlcyBtZWpvcmFibGUgdXRpbGl6YW5kbyBzaWduYWxzIGEgcGFydGlyIGRlIGFuZ3VsYXIgMTZcbiAgICBcbiAgICBpZiAodGhpcy51cGRhdGVWYWx1ZUZyb21DaGVja2JveEl0ZW1zRmxhZykge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZUZyb21DaGVja2JveEl0ZW1zRmxhZyA9IGZhbHNlO1xuICAgICAgXG4gICAgICAvKlxuICAgICAgICogU2UgbW9kaWZpY2EgZWwgdmFsb3IgZGVzZGUgbG9zIGl0ZW1zLCBhIG5vIHNlciBxdWUgbGEgbGlzdGEgc2UgYWNhYmUgZGUgY3JlYXJcbiAgICAgICAqIHkgeWEgdGVuZ2EgdW4gdmFsb3IuIEVuIGVzZSBjYXNvLCBwcmV2YWxlY2UgZWwgdmFsb3IgZXhpc3RlbnRlLlxuICAgICAgICovXG4gICAgICBpZiAoIXRoaXMudXBkYXRlSXRlbUxpc3RGbGFnIHx8ICghdGhpcy52YWx1ZSB8fCB0aGlzLnZhbHVlLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldENoZWNrYm94SXRlbXMoKTtcbiAgICAgICAgaWYgKGl0ZW1zICYmIGl0ZW1zLmxlbmd0aCA+IDAgJiYgaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gIWl0ZW0uaXNJbml0KCkpIDwgMCkge1xuICAgICAgICAgIHRoaXMubmV4dFZhbHVlID0gaXRlbXMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5jaGVja2VkKS5tYXAoaXRlbSA9PiBpdGVtLmdldFZhbHVlKCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gIFxuICAgICAgaWYgKHRoaXMuaXRlbXMgJiYgdGhpcy5pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuaXRlbXNDaGFuZ2UuZW1pdCh0aGlzLml0ZW1zKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5uZXh0VmFsdWUgIT09IG51bGwgJiYgKHRoaXMubmV4dFZhbHVlLmxlbmd0aCA+IDAgfHwgKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5sZW5ndGggPiAwKSkpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm5leHRWYWx1ZTtcbiAgICAgIHRoaXMubmV4dFZhbHVlID0gbnVsbDtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWVUb0NoZWNrYm94SXRlbXNGbGFnID0gdHJ1ZTtcblxuICAgICAgc2V0VGltZW91dCgoKSAgPT4ge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgICAgICBpZiAodGhpcy5pdGVtcyAmJiB0aGlzLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLml0ZW1zQ2hhbmdlLmVtaXQodGhpcy5pdGVtcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnVwZGF0ZUNoZWtib3hJZHNGbGFnKSB7XG4gICAgICBjb25zdCBjaGVja2JveEl0ZW1zID0gdGhpcy5nZXRDaGVja2JveEl0ZW1zKCk7XG4gICAgICBpZiAoY2hlY2tib3hJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNoZWNrYm94SXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IGl0ZW0udXBkYXRlQ2hlY2tib3hJZChpbmRleCkpO1xuICAgICAgfVxuICAgICAgdGhpcy51cGRhdGVDaGVrYm94SWRzRmxhZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnVwZGF0ZVZhbHVlVG9DaGVja2JveEl0ZW1zRmxhZykge1xuICAgICAgY29uc3QgY2hlY2tib3hJdGVtcyA9IHRoaXMuZ2V0Q2hlY2tib3hJdGVtcygpO1xuICAgICAgaWYgKGNoZWNrYm94SXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlVG9DaGVja2JveEl0ZW1zRmxhZyA9IGZhbHNlO1xuICAgICAgICBjaGVja2JveEl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgY29uc3QgaXRlbUNoZWNrZWQgPSBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpID8gdGhpcy52YWx1ZS5maW5kSW5kZXgodiA9PiB2ID09PSBpdGVtLnZhbHVlKSA+IC0xIDogdGhpcy52YWx1ZSA9PT0gaXRlbS52YWx1ZTtcbiAgICAgICAgICBpZiAoaXRlbUNoZWNrZWQgIT09IGl0ZW0ubGFzdENoZWNrZWQpIHtcbiAgICAgICAgICAgIGl0ZW0uc2V0Q2hlY2tlZChpdGVtQ2hlY2tlZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy51cGRhdGVJdGVtTGlzdEZsYWcpIHtcbiAgICAgIHRoaXMudXBkYXRlSXRlbUxpc3RGbGFnID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGVudEluaXRGbGFnID0gdHJ1ZTtcbiAgICB0aGlzLmNoZWNrYm94Q29tcG9uZW50SXRlbXMuY2hhbmdlcy5zdWJzY3JpYmUoY2hhbmdlID0+IHtcbiAgICAgIHRoaXMudXBkYXRlSXRlbUxpc3RGbGFnID0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZSBzb2JyZXNjcmliZSBlbCB3cml0ZVZhbHVlIGRlIEZvcm1GaWVsZCBwYXJhIGdlc3Rpb25hciBlbiB1biDDum5pY28gcHVudG8gZWwgdmFsb3IgZGUgdmFsdWVcbiAgICogQHBhcmFtIHZhbHVlIG51ZXZvIHZhbG9yIGEgZXN0YWJsZWNlclxuICAgKi9cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55W10pOiB2b2lkIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMubmV4dFZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgb25JZFByZWZpeENoYW5nZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb250ZW50SW5pdEZsYWcpIHtcbiAgICAgIHRoaXMubWFya0ZvclVwZGF0ZUNoZWNrYm94SWRzKCk7XG4gICAgfVxuICAgIHRoaXMucHJvcGFnYXRlTmV3SWRQcmVmaXhWYWx1ZSgpO1xuICB9XG5cblxuICBvbk5hbWVDaGFuZ2UoKTogdm9pZCB7XG5cbiAgICBpZiAodGhpcy5jb250ZW50SW5pdEZsYWcpIHtcbiAgICAgIHRoaXMubWFya0ZvclVwZGF0ZUNoZWNrYm94SWRzKCk7XG4gICAgfVxuXG4gICAgdGhpcy5wcm9wYWdhdGVOZXdJZFByZWZpeFZhbHVlKCk7XG4gIH1cblxuICAvKipcbiAgICogQWN0dWFsaXphIGxvcyBjb21wb25lbnRlcyBleHRlcm5vcyBxdWUgdGllbmVuIHZhbG9yZXMgZGVwZW5kaWVudGVzIGRlIGlkUHJlZml4XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHByb3BhZ2F0ZU5ld0lkUHJlZml4VmFsdWUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaGludENvbXBvbmVudCkge1xuICAgICAgdGhpcy5vdmVycmlkZUhpbnRQYXJhbXModGhpcy5oaW50Q29tcG9uZW50KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5lcnJvck1lc3NhZ2VDb21wb25lbnQpIHtcbiAgICAgIHRoaXMub3ZlcnJpZGVFcnJvck1lc3NhZ2VQYXJhbXModGhpcy5lcnJvck1lc3NhZ2VDb21wb25lbnQpO1xuICAgIH1cblxuICAgIC8vIEFsIGhhY2VyIGVsIG92ZXJyaWRlIGRlIGhpbnQgbyBlcnJvciB5YSBzZSBhcGxpY2Egc29icmUgZWwgZmllbGRzZXQsIHBvciBsbyBxdWUgc8OzbG8gZXMgbmVjZXNhcmlvIGFwbGljYXJsbyBkaXJlY3RhbWVudGVcbiAgICAvLyBzb2JyZSBlbCBmaWVsZHNldCBjdWFuZG8gbmluZ3VubyBkZSBlc3RvcyBleGlzdGVcbiAgICBpZiAoIXRoaXMuaGludENvbXBvbmVudCAmJiAhdGhpcy5lcnJvck1lc3NhZ2VDb21wb25lbnQgJiYgdGhpcy5maWVsZHNldENvbXBvbmVudCkge1xuICAgICAgdGhpcy5vdmVycmlkZUZpZWxkc2V0UGFyYW1zKHRoaXMuZmllbGRzZXRDb21wb25lbnQpO1xuICAgIH1cbiAgfVxuXG4gIG1hcmtGb3JVcGRhdGVDaGVja2JveElkcygpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUNoZWtib3hJZHNGbGFnID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3R1YWxpemEgZWwgdmFsb3IgY3VhbmRvIHNlIHByb2R1Y2UgdW4gY2FtYmlvIGVuIGxvcyBpdGVtcywgdGFudG8gaW50ZXJubyBjb21vIGV4dGVybm9cbiAgICovXG4gIHVwZGF0ZVZhbHVlRnJvbUNoZWNrYm94SXRlbXMoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVWYWx1ZUZyb21DaGVja2JveEl0ZW1zRmxhZyA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogUmVlbXBsYXpvIGRlIGZ1bmNpb25lcyBkZSBGb3JtRmllbGRcbiAgICovXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZCk7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldENoZWNrYm94SXRlbXMoKTtcbiAgICBpZiAoaXRlbXMgJiYgaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgaXRlbXMuZm9yRWFjaChpID0+IGkucGFyZW50RGlzYWJsZWQgPSBpc0Rpc2FibGVkKTtcbiAgICB9XG4gIH1cblxuICAvKlxuICAgKiBGdW5jaW9uZXMgcGFyYSByZWVtcGxhemFyIGVsIGNvbnRlbmlkbyBkZWwgZmllbGRzZXQsIGxhYmVsLCBoaW50IG8gZXJyb3JtZXNzYWdlXG4gICAqL1xuXG4gIG92ZXJyaWRlRmllbGRzZXRQYXJhbXMoZmllbGRzZXQ6IEZpZWxkc2V0Q29tcG9uZW50KTogdm9pZCB7XG4gICAgZmllbGRzZXQuY2FsbGVyID0gdGhpcy5pbm5lckh0bWw7XG4gICAgZmllbGRzZXQuZXJyb3JJZCA9IHRoaXMuZ2V0RXJyb3JJZCgpO1xuICAgIGZpZWxkc2V0LmRlc2NyaWJlZEJ5ID0gbmV3IE1ha2VIdG1sTGlzdFBpcGUoKS50cmFuc2Zvcm0oW3RoaXMuZ2V0SGludElkKCksIHRoaXMuZ2V0RXJyb3JJZCgpXSwgbnVsbCk7XG4gICAgZmllbGRzZXQuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb3ZlcnJpZGVIaW50UGFyYW1zKGhpbnQ6IEhpbnRDb21wb25lbnQpOiB2b2lkIHtcbiAgICBoaW50LmlkID0gdGhpcy5nZXRIaW50SWQoKTtcbiAgICBoaW50LmRldGVjdENoYW5nZXMoKTtcblxuICAgIGlmICh0aGlzLmhhc0ZpZWxkc2V0Q29tcG9uZW50KCkpIHtcbiAgICAgIHRoaXMub3ZlcnJpZGVGaWVsZHNldFBhcmFtcyh0aGlzLmZpZWxkc2V0Q29tcG9uZW50KTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZUVycm9yTWVzc2FnZVBhcmFtcyhlcnJvck1lc3NhZ2U6IEVycm9yTWVzc2FnZUNvbXBvbmVudCk6IHZvaWQge1xuICAgIGVycm9yTWVzc2FnZS5pZCA9IHRoaXMuZ2V0RXJyb3JJZCgpO1xuICAgIGVycm9yTWVzc2FnZS5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICBpZiAodGhpcy5oYXNGaWVsZHNldENvbXBvbmVudCgpKSB7XG4gICAgICB0aGlzLm92ZXJyaWRlRmllbGRzZXRQYXJhbXModGhpcy5maWVsZHNldENvbXBvbmVudCk7XG4gICAgfVxuICB9XG5cbiAgb25EZWxldGVIaW50KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhhc0ZpZWxkc2V0Q29tcG9uZW50KCkpIHtcbiAgICAgIHRoaXMub3ZlcnJpZGVGaWVsZHNldFBhcmFtcyh0aGlzLmZpZWxkc2V0Q29tcG9uZW50KTtcbiAgICB9XG4gIH1cblxuICBvbkRlbGV0ZUVycm9yTWVzc2FnZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5oYXNGaWVsZHNldENvbXBvbmVudCgpKSB7XG4gICAgICB0aGlzLm92ZXJyaWRlRmllbGRzZXRQYXJhbXModGhpcy5maWVsZHNldENvbXBvbmVudCk7XG4gICAgfVxuICB9XG5cblxuICAvKlxuICAgKiBGdW5jaW9uZXMgcGFyYSByZWN1cGVyYXIgdmFsb3JlcyBjb211bmVzXG4gICAqL1xuXG5cbiAgaGFzRmllbGRzZXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHRoaXMuaGFzRmllbGRzZXRDb21wb25lbnQoKSB8fCB0aGlzLmhhc0xlZ2VuZENvbXBvbmVudCgpIHx8IHRoaXMubGVnZW5kUmVmIHx8IHRoaXMuZmllbGRzZXREYXRhIHx8XG4gICAgICAodGhpcy5sZWdlbmREYXRhICYmICh0aGlzLmxlZ2VuZERhdGEudGV4dCB8fCB0aGlzLmxlZ2VuZERhdGEuaHRtbCkpIHx8IHRoaXMubGVnZW5kVGV4dCk7XG4gIH1cblxuICBoYXNGaWVsZHNldENvbXBvbmVudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmZpZWxkc2V0Q29tcG9uZW50O1xuICB9XG5cbiAgaGFzTGVnZW5kQ29tcG9uZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMubGVnZW5kQ29tcG9uZW50O1xuICB9XG5cbiAgZ2V0RXJyb3JJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmhhc0Vycm9yc01lc3NhZ2UoKSA/IHRoaXMuZ2V0SWRQcmVmaXgoKSArICctZXJyb3InIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0SGludElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaGFzSGludCgpID8gdGhpcy5nZXRJZFByZWZpeCgpICsgJy1oaW50JyA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldElkUHJlZml4KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWRQcmVmaXggPyB0aGlzLmlkUHJlZml4IDogdGhpcy5uYW1lO1xuICB9XG5cbiAgZ2V0Q2hlY2tib3hJdGVtcygpOiBDaGVja2JveEl0ZW1Db21wb25lbnRbXSB7XG4gICAgbGV0IGNoZWNrYm94SXRlbXMgPSBbXTtcbiAgICBpZiAodGhpcy5jaGVja2JveENvbXBvbmVudEl0ZW1zICYmIHRoaXMuY2hlY2tib3hDb21wb25lbnRJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICBjaGVja2JveEl0ZW1zID0gdGhpcy5jaGVja2JveENvbXBvbmVudEl0ZW1zLnRvQXJyYXkoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2hlY2tib3hDb21wb25lbnRJdGVtczIgJiYgdGhpcy5jaGVja2JveENvbXBvbmVudEl0ZW1zMi5sZW5ndGggPiAwKSB7XG4gICAgICBjaGVja2JveEl0ZW1zID0gdGhpcy5jaGVja2JveENvbXBvbmVudEl0ZW1zMi50b0FycmF5KCk7XG4gICAgfVxuICAgIHJldHVybiBjaGVja2JveEl0ZW1zO1xuICB9XG59XG4iLCI8ZGl2IFtjbGFzc109XCJbJ2MtZm9ybS1ncm91cCcsIGZvcm1Hcm91cENsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCJcbiAgICAgW25nQ2xhc3NdPVwieydjLWZvcm0tZ3JvdXAtLWVycm9yJzogKGhhc0Vycm9yc01lc3NhZ2UoKSB8fCBmb3JtR3JvdXBDbGFzc2VzID09PSAnYy1mb3JtLWdyb3VwLS1lcnJvcicpIH1cIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0ZpZWxkc2V0Q29tcG9uZW50KClcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkZXN5LWZpZWxkc2V0XCI+PC9uZy1jb250ZW50PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoYXNGaWVsZHNldENvbXBvbmVudCgpXCI+XG4gICAgPGRlc3ktZmllbGRzZXQgKm5nSWY9XCJmaWVsZHNldERhdGFcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlc109XCJmaWVsZHNldERhdGEuY2xhc3Nlc1wiXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJmaWVsZHNldERhdGEuaWRcIlxuICAgICAgICAgICAgICAgICAgICBbbGVnZW5kRGF0YV09XCJmaWVsZHNldERhdGEubGVnZW5kXCJcbiAgICAgICAgICAgICAgICAgICAgW2hlYWRpbmdMZXZlbF09XCJmaWVsZHNldERhdGEuaGVhZGluZ0xldmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2NhbGxlcl09XCJpbm5lckh0bWxcIlxuICAgICAgICAgICAgICAgICAgICBbZXJyb3JJZF09XCJnZXRFcnJvcklkKClcIlxuICAgICAgICAgICAgICAgICAgICBbZGVzY3JpYmVkQnldPVwiW2ZpZWxkc2V0RGF0YS5kZXNjcmliZWRCeSwgZ2V0SGludElkKCksIGdldEVycm9ySWQoKV0gfCBtYWtlSHRtbExpc3Q6bnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFtyb2xlXT1cImZpZWxkc2V0RGF0YS5yb2xlXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJmaWVsZHNldERhdGEuYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cImZpZWxkc2V0RGF0YS5hcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhSGlkZGVuXT1cImZpZWxkc2V0RGF0YS5hcmlhSGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFEaXNhYmxlZF09XCJmaWVsZHNldERhdGEuYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFDb250cm9sc109XCJmaWVsZHNldERhdGEuYXJpYUNvbnRyb2xzXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFDdXJyZW50XT1cImZpZWxkc2V0RGF0YS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhTGl2ZV09XCJmaWVsZHNldERhdGEuYXJpYUxpdmVcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUV4cGFuZGVkXT1cImZpZWxkc2V0RGF0YS5hcmlhRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cImZpZWxkc2V0RGF0YS5hcmlhSGFzUG9wdXBcIlxuICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiZmllbGRzZXREYXRhLnRhYmluZGV4XCI+PC9kZXN5LWZpZWxkc2V0PlxuICAgIDxkZXN5LWZpZWxkc2V0ICpuZ0lmPVwiIWZpZWxkc2V0RGF0YSAmJiAhIWxlZ2VuZENvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgICAgIFtsZWdlbmRSZWZdPVwibGVnZW5kVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbY2FsbGVyXT1cImlubmVySHRtbFwiXG4gICAgICAgICAgICAgICAgICAgIFtlcnJvcklkXT1cImdldEVycm9ySWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkZXNjcmliZWRCeV09XCJbIGdldEhpbnRJZCgpLCBnZXRFcnJvcklkKCldIHwgbWFrZUh0bWxMaXN0Om51bGxcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbGVnZW5kVGVtcGxhdGU+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRlc3ktbGVnZW5kXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rlc3ktZmllbGRzZXQ+XG4gICAgPGRlc3ktZmllbGRzZXQgKm5nSWY9XCIhZmllbGRzZXREYXRhICYmICFsZWdlbmRDb21wb25lbnQgJiYgbGVnZW5kUmVmXCJcbiAgICAgICAgICAgICAgICAgICAgW2xlZ2VuZFJlZl09XCJsZWdlbmRSZWZcIlxuICAgICAgICAgICAgICAgICAgICBbY2FsbGVyXT1cImlubmVySHRtbFwiXG4gICAgICAgICAgICAgICAgICAgIFtlcnJvcklkXT1cImdldEVycm9ySWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkZXNjcmliZWRCeV09XCJbIGdldEhpbnRJZCgpLCBnZXRFcnJvcklkKCldIHwgbWFrZUh0bWxMaXN0Om51bGxcIj48L2Rlc3ktZmllbGRzZXQ+XG4gICAgPGRlc3ktZmllbGRzZXQgKm5nSWY9XCIhZmllbGRzZXREYXRhICYmICFsZWdlbmRDb21wb25lbnQgJiYgIWxlZ2VuZFJlZiAmJiBsZWdlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgW2xlZ2VuZERhdGFdPVwie3RleHQ6IGxlZ2VuZERhdGEudGV4dCwgaHRtbDogbGVnZW5kRGF0YS5odG1sLCAgY2xhc3NlczogbGVnZW5kRGF0YS5jbGFzc2VzLCBpc1BhZ2VIZWFkaW5nOiBsZWdlbmREYXRhLmlzUGFnZUhlYWRpbmd9XCJcbiAgICAgICAgICAgICAgICAgICAgW2NhbGxlcl09XCJpbm5lckh0bWxcIlxuICAgICAgICAgICAgICAgICAgICBbZXJyb3JJZF09XCJnZXRFcnJvcklkKClcIlxuICAgICAgICAgICAgICAgICAgICBbZGVzY3JpYmVkQnldPVwiWyBnZXRIaW50SWQoKSwgZ2V0RXJyb3JJZCgpXSB8IG1ha2VIdG1sTGlzdDpudWxsXCI+PC9kZXN5LWZpZWxkc2V0PlxuICAgIDxkZXN5LWZpZWxkc2V0ICpuZ0lmPVwiIWZpZWxkc2V0RGF0YSAmJiAhbGVnZW5kQ29tcG9uZW50ICYmICFsZWdlbmRSZWYgJiYgIWxlZ2VuZERhdGEgJiYgbGVnZW5kVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIFtsZWdlbmRUZXh0XT1cImxlZ2VuZFRleHRcIlxuICAgICAgICAgICAgICAgICAgICBbY2FsbGVyXT1cImlubmVySHRtbFwiXG4gICAgICAgICAgICAgICAgICAgIFtlcnJvcklkXT1cImdldEVycm9ySWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkZXNjcmliZWRCeV09XCJbIGdldEhpbnRJZCgpLCBnZXRFcnJvcklkKCldIHwgbWFrZUh0bWxMaXN0Om51bGxcIj48L2Rlc3ktZmllbGRzZXQ+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoYXNGaWVsZHNldCgpXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5uZXJIdG1sXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNpbm5lckh0bWw+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNIaW50Q29tcG9uZW50KClcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkZXN5LWhpbnRcIj48L25nLWNvbnRlbnQ+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhhc0hpbnRDb21wb25lbnQoKVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoaW50UmVmXCI+PC9uZy1jb250YWluZXI+XG4gICAgPGRlc3ktaGludCAqbmdJZj1cIiFoaW50UmVmICYmIGhpbnREYXRhXCJcbiAgICAgICAgICAgICAgIFtpZF09XCJnZXRIaW50SWQoKVwiXG4gICAgICAgICAgICAgICBbdGV4dF09XCJoaW50RGF0YS50ZXh0XCJcbiAgICAgICAgICAgICAgIFtodG1sXT1cImhpbnREYXRhLmh0bWxcIlxuICAgICAgICAgICAgICAgW2NsYXNzZXNdPVwiaGludERhdGEuY2xhc3Nlc1wiXG4gICAgICAgICAgICAgICBbcm9sZV09XCJoaW50RGF0YS5yb2xlXCJcbiAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiaGludERhdGEuYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgIFthcmlhRGVzY3JpYmVkQnldPVwiaGludERhdGEuYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgICAgIFthcmlhTGFiZWxsZWRCeV09XCJoaW50RGF0YS5hcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgICAgICAgICBbYXJpYUhpZGRlbl09XCJoaW50RGF0YS5hcmlhSGlkZGVuXCJcbiAgICAgICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwiaGludERhdGEuYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwiaGludERhdGEuYXJpYUNvbnRyb2xzXCJcbiAgICAgICAgICAgICAgIFthcmlhQ3VycmVudF09XCJoaW50RGF0YS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgICAgICBbYXJpYUxpdmVdPVwiaGludERhdGEuYXJpYUxpdmVcIlxuICAgICAgICAgICAgICAgW2FyaWFFeHBhbmRlZF09XCJoaW50RGF0YS5hcmlhRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgW2FyaWFFcnJvck1lc3NhZ2VdPVwiaGludERhdGEuYXJpYUVycm9yTWVzc2FnZVwiXG4gICAgICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cImhpbnREYXRhLmFyaWFIYXNQb3B1cFwiXG4gICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiaGludERhdGEudGFiaW5kZXhcIj48L2Rlc3ktaGludD5cbiAgICA8ZGVzeS1oaW50ICpuZ0lmPVwiIWhpbnRSZWYgJiYgIWhpbnREYXRhICYmIGhpbnRUZXh0XCIgW3RleHRdPVwiaGludFRleHRcIiBbaWRdPVwiZ2V0SGludElkKClcIj48L2Rlc3ktaGludD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0Vycm9yTWVzc2FnZUNvbXBvbmVudCgpXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZGVzeS1lcnJvci1tZXNzYWdlXCI+PC9uZy1jb250ZW50PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoYXNFcnJvck1lc3NhZ2VDb21wb25lbnQoKVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlcnJvck1lc3NhZ2VSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8ZGVzeS1lcnJvci1tZXNzYWdlICpuZ0lmPVwiIWVycm9yTWVzc2FnZVJlZiAmJiBlcnJvck1lc3NhZ2VEYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJnZXRFcnJvcklkKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiZXJyb3JNZXNzYWdlRGF0YS50ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtodG1sXT1cImVycm9yTWVzc2FnZURhdGEuaHRtbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlc109XCJlcnJvck1lc3NhZ2VEYXRhLmNsYXNzZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Zpc3VhbGx5SGlkZGVuVGV4dF09XCJlcnJvck1lc3NhZ2VEYXRhLnZpc3VhbGx5SGlkZGVuVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcm9sZV09XCJlcnJvck1lc3NhZ2VEYXRhLnJvbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYURlc2NyaWJlZEJ5XT1cImVycm9yTWVzc2FnZURhdGEuYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxsZWRCeV09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhSGlkZGVuXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYURpc2FibGVkXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhQ29udHJvbHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFDdXJyZW50XT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUN1cnJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFMaXZlXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUxpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFFeHBhbmRlZF09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUVycm9yTWVzc2FnZV09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFFcnJvck1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFIYXNQb3B1cF09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFIYXNQb3B1cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiZXJyb3JNZXNzYWdlRGF0YS50YWJpbmRleFwiPjwvZGVzeS1lcnJvci1tZXNzYWdlPlxuICAgIDxkZXN5LWVycm9yLW1lc3NhZ2UgKm5nSWY9XCIhZXJyb3JNZXNzYWdlUmVmICYmICFlcnJvck1lc3NhZ2VEYXRhICYmIGVycm9yTWVzc2FnZVRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiZXJyb3JNZXNzYWdlVGV4dFwiIFtpZF09XCJnZXRFcnJvcklkKClcIj48L2Rlc3ktZXJyb3ItbWVzc2FnZT5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPGRpdiBbY2xhc3NdPVwiWydjLWNoZWNrYm94ZXMnLCBjbGFzc2VzXSB8IG1ha2VIdG1sTGlzdFwiXG4gICAgICAgW2F0dHIucm9sZV09XCJyb2xlID8gcm9sZSA6IG51bGxcIlxuICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsID8gYXJpYUxhYmVsIDogbnVsbFwiXG4gICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5ID8gYXJpYUxhYmVsbGVkQnkgOiBudWxsXCJcbiAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJhcmlhSGlkZGVuID8gYXJpYUhpZGRlbiA6IG51bGxcIlxuICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiYXJpYURpc2FibGVkID8gYXJpYURpc2FibGVkIDogbnVsbFwiXG4gICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJhcmlhQ29udHJvbHMgPyBhcmlhQ29udHJvbHMgOiBudWxsXCJcbiAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiYXJpYUN1cnJlbnQgPyBhcmlhQ3VycmVudCA6IG51bGxcIlxuICAgICAgIFthdHRyLmFyaWEtbGl2ZV09XCJhcmlhTGl2ZSA/IGFyaWFMaXZlIDogbnVsbFwiXG4gICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJhcmlhRXhwYW5kZWQgPyBhcmlhRXhwYW5kZWQgOiBudWxsXCJcbiAgICAgICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJhcmlhRXJyb3JNZXNzYWdlID8gYXJpYUVycm9yTWVzc2FnZSA6IG51bGxcIlxuICAgICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiYXJpYUhhc1BvcHVwID8gYXJpYUhhc1BvcHVwIDogbnVsbFwiXG4gICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiaW5kZXggPyB0YWJpbmRleCA6IG51bGxcIj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjaGVja2JveENvbXBvbmVudEl0ZW1zICYmIGNoZWNrYm94Q29tcG9uZW50SXRlbXMubGVuZ3RoID4gMFwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZGVzeS1jaGVja2JveC1pdGVtXCI+PC9uZy1jb250ZW50PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhKGNoZWNrYm94Q29tcG9uZW50SXRlbXMgJiYgY2hlY2tib3hDb21wb25lbnRJdGVtcy5sZW5ndGggPiAwKSAmJiBpdGVtc1wiPlxuICAgICAgPGRlc3ktY2hlY2tib3gtaXRlbSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgaW5kZXggYXMgaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJpdGVtLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWQgfHwgZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJpdGVtLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlc109XCJpdGVtLmNsYXNzZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFsoY2hlY2tlZCldPVwiaXRlbS5jaGVja2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmRpdGlvbmFsXT1cIml0ZW0uY29uZGl0aW9uYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNJbmRldGVybWluYXRlXT1cIml0ZW0uaXNJbmRldGVybWluYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVDaGVja2VkXT1cIml0ZW0uaW5kZXRlcm1pbmF0ZUNoZWNrZWRcIlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtyb2xlXT1cIml0ZW0ucm9sZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiaXRlbS5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYURlc2NyaWJlZEJ5XT1cIml0ZW0uYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cIml0ZW0uYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUhpZGRlbl09XCJpdGVtLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYURpc2FibGVkXT1cIml0ZW0uYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFDb250cm9sc109XCJpdGVtLmFyaWFDb250cm9sc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhQ3VycmVudF09XCJpdGVtLmFyaWFDdXJyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFMaXZlXT1cIml0ZW0uYXJpYUxpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUV4cGFuZGVkXT1cIml0ZW0uYXJpYUV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFFcnJvck1lc3NhZ2VdPVwiaXRlbS5hcmlhRXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFIYXNQb3B1cF09XCJpdGVtLmFyaWFIYXNQb3B1cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJpdGVtLnRhYmluZGV4XCI+XG4gICAgICAgIDxkZXN5LWxhYmVsIFt0ZXh0XT1cIml0ZW0udGV4dFwiIFtodG1sXT1cIml0ZW0uaHRtbFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzXT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuY2xhc3NlcyA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbcm9sZV09XCJpdGVtLmxhYmVsRGF0YSA/IGl0ZW0ubGFiZWxEYXRhLnJvbGUgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJpdGVtLmxhYmVsRGF0YSA/IGl0ZW0ubGFiZWxEYXRhLmFyaWFMYWJlbCA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYURlc2NyaWJlZEJ5XT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuYXJpYURlc2NyaWJlZEJ5OiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuYXJpYUxhYmVsbGVkQnkgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFIaWRkZW5dPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhSGlkZGVuIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhRGlzYWJsZWQgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFDb250cm9sc109XCJpdGVtLmxhYmVsRGF0YSA/IGl0ZW0ubGFiZWxEYXRhLmFyaWFDb250cm9scyA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUN1cnJlbnRdPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhQ3VycmVudCA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUxpdmVdPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhTGl2ZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUV4cGFuZGVkXT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuYXJpYUV4cGFuZGVkIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhRXJyb3JNZXNzYWdlXT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuYXJpYUVycm9yTWVzc2FnZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuYXJpYUhhc1BvcHVwIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleCA/IGl0ZW0ubGFiZWxEYXRhLnRhYmluZGV4IDogbnVsbFwiPjwvZGVzeS1sYWJlbD5cbiAgICAgICAgPGRlc3ktaGludCAqbmdJZj1cIml0ZW0uaGludERhdGEgJiYgKGl0ZW0uaGludERhdGEudGV4dCB8fCBpdGVtLmhpbnREYXRhLmh0bWwpXCJcbiAgICAgICAgICAgICAgICAgICBbdGV4dF09XCJpdGVtLmhpbnREYXRhLnRleHRcIlxuICAgICAgICAgICAgICAgICAgIFtodG1sXT1cIml0ZW0uaGludERhdGEuaHRtbFwiXG4gICAgICAgICAgICAgICAgICAgW2NsYXNzZXNdPVwiaXRlbS5oaW50RGF0YS5jbGFzc2VzXCJcbiAgICAgICAgICAgICAgICAgICBbcm9sZV09XCJpdGVtLmhpbnREYXRhLnJvbGVcIlxuICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiaXRlbS5oaW50RGF0YS5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgIFthcmlhRGVzY3JpYmVkQnldPVwiaXRlbS5oaW50RGF0YS5hcmlhRGVzY3JpYmVkQnlcIlxuICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxsZWRCeV09XCJpdGVtLmhpbnREYXRhLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICBbYXJpYUhpZGRlbl09XCJpdGVtLmhpbnREYXRhLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwiaXRlbS5oaW50RGF0YS5hcmlhRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwiaXRlbS5oaW50RGF0YS5hcmlhQ29udHJvbHNcIlxuICAgICAgICAgICAgICAgICAgIFthcmlhQ3VycmVudF09XCJpdGVtLmhpbnREYXRhLmFyaWFDdXJyZW50XCJcbiAgICAgICAgICAgICAgICAgICBbYXJpYUxpdmVdPVwiaXRlbS5oaW50RGF0YS5hcmlhTGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgW2FyaWFFeHBhbmRlZF09XCJpdGVtLmhpbnREYXRhLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgW2FyaWFFcnJvck1lc3NhZ2VdPVwiaXRlbS5oaW50RGF0YS5hcmlhRXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cIml0ZW0uaGludERhdGEuYXJpYUhhc1BvcHVwXCJcbiAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiaXRlbS5oaW50RGF0YS50YWJpbmRleFwiPjwvZGVzeS1oaW50PlxuICAgICAgICA8ZGVzeS1oaW50ICpuZ0lmPVwiIWl0ZW0uaGludERhdGEgJiYgaXRlbS5oaW50VGV4dFwiIFt0ZXh0XT1cIml0ZW0uaGludFRleHRcIj48L2Rlc3ktaGludD5cbiAgICAgICAgPGRlc3ktY29udGVudCAqbmdJZj1cIml0ZW0uY29uZGl0aW9uYWxIdG1sXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW0uY29uZGl0aW9uYWxIdG1sXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGVzeS1jb250ZW50PlxuICAgICAgPC9kZXN5LWNoZWNrYm94LWl0ZW0+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
269
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3hlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LWZvcm1zL2NvbXBvbmVudHMvY2hlY2tib3hlcy9jaGVja2JveGVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktZm9ybXMvY29tcG9uZW50cy9jaGVja2JveGVzL2NoZWNrYm94ZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsZUFBZSxFQUFXLFlBQVksRUFDdEMsVUFBVSxFQUNWLEtBQUssRUFBRSxNQUFNLEVBQ2IsU0FBUyxFQUVULFdBQVcsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUNyQyxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFHOUUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDM0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDekYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDNUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7O0FBa0IxRSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEseUJBQXlCO0lBZmxFOztRQXNDWSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFzQixDQUFD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O3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdXLFFBQVE7c0JBQXhCLEtBQUs7Z0JBR1csSUFBSTtzQkFBcEIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFFRSxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ1csV0FBVztzQkFBM0IsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDVyxXQUFXO3NCQUEzQixLQUFLO2dCQUc4QixpQkFBaUI7c0JBQXBELGVBQWU7dUJBQUMsaUJBQWlCO2dCQUdBLGVBQWU7c0JBQWhELGVBQWU7dUJBQUMsZUFBZTtnQkFFUSxzQkFBc0I7c0JBQTdELGVBQWU7dUJBQUMscUJBQXFCO2dCQUVJLFNBQVM7c0JBQWxELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDSCx1QkFBdUI7c0JBQTNELFlBQVk7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sIERvQ2hlY2ssIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpZWxkc2V0RGF0YSwgTGVnZW5kRGF0YSwgSXRlbUNoZWNrYm94RGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTGVnZW5kQ29tcG9uZW50IH0gZnJvbSAnLi4vZmllbGRzZXQvbGVnZW5kL2xlZ2VuZC5jb21wb25lbnQnO1xuaW1wb3J0IHtDaGVja2JveEl0ZW1Db21wb25lbnR9IGZyb20gJy4vY2hlY2tib3gtaXRlbS9jaGVja2JveC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQge0hpbnRDb21wb25lbnR9IGZyb20gJy4uL2hpbnQvaGludC5jb21wb25lbnQnO1xuaW1wb3J0IHtFcnJvck1lc3NhZ2VDb21wb25lbnR9IGZyb20gJy4uL2Vycm9yLW1lc3NhZ2UvZXJyb3ItbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHtGaWVsZHNldENvbXBvbmVudH0gZnJvbSAnLi4vZmllbGRzZXQvZmllbGRzZXQuY29tcG9uZW50JztcbmltcG9ydCB7TWFrZUh0bWxMaXN0UGlwZX0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3BpcGVzL21ha2UtaHRtbC1saXN0LnBpcGUnO1xuaW1wb3J0IHtEZXN5Q29udGVudENoaWxkfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZGVjb3JhdG9ycy9kZXN5LWNvbnRlbnQtY2hpbGQuZGVjb3JhdG9yJztcbmltcG9ydCB7RGVzeU9uSW5wdXRDaGFuZ2V9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktb24taW5wdXQtY2hhbmdlLmRlY29yYXRvcic7XG5pbXBvcnQgeyBDaGVja2JveGVzUGFyZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jaGVja2JveGVzLXBhcmVudC5jb21wb25lbnQnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Rlc3ktY2hlY2tib3hlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveGVzLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDaGVja2JveGVzQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBDaGVja2JveGVzUGFyZW50Q29tcG9uZW50LFxuICAgICAgdXNlRXhpc3Rpbmc6IENoZWNrYm94ZXNDb21wb25lbnQsXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrYm94ZXNDb21wb25lbnQgZXh0ZW5kcyBDaGVja2JveGVzUGFyZW50Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgRG9DaGVjayB7XG4gIFxuICAvKipcbiAgICogZmllbGRzZXQsIGRpZmVyZW50ZXMgZm9ybWFzIGRlIGltcGxlbWVudGFyLCBlbnVtZXJhZGFzIHBvciBwcmlvcmlkYWRcbiAgICogMSkgaW5jbHVpciBjb21wb25lbnRlIEZpZWxkc2V0Q29tcG9uZW50XG4gICAqIDIpIGluY2x1aXIgb2JqZXRvIEZpZWxkc2V0RGF0YSAoaW50ZXJmYXogZXhwdWVzdGEpXG4gICAqIDMpIGluY2x1aXIgY29tcG9uZW50ZSBMZWdlbmRDb21wb25lbnRcbiAgICogNCkgaW5jbHVpciB0ZW1wbGF0ZSBsZWdlbmRcbiAgICogNSkgaW5jbHVpciBsZWdlbmREYXRhIC0gaW5jbHVpciB1biBmaWVsZHNldCBjb24gdW5hIGxlZ2VuZGEgY29uIGxvcyBwYXJhbWV0cm9zIHBhc2Fkb3MgIChpbnRlcmZheiBleHB1ZXN0YSlcbiAgICogNikgaW5jbHVpciBsZWdlbmRUZXh0IC0gaW5jbHVpciB1biBmaWVsZHNldCBjb24gdW4gdGV4dG8gZW4gbGEgbGVnZW5kYVxuICAgKi9cbiAgQElucHV0KCkgZmllbGRzZXREYXRhOiBGaWVsZHNldERhdGE7XG4gIEBJbnB1dCgpIGxlZ2VuZFJlZjogVGVtcGxhdGVSZWY8TGVnZW5kQ29tcG9uZW50PjtcbiAgQElucHV0KCkgbGVnZW5kRGF0YTogTGVnZW5kRGF0YTtcbiAgQElucHV0KCkgbGVnZW5kVGV4dDogc3RyaW5nO1xuXG4gIEBEZXN5T25JbnB1dENoYW5nZSgnb25JZFByZWZpeENoYW5nZScpXG4gIEBJbnB1dCgpIGRlY2xhcmUgaWRQcmVmaXg6IHN0cmluZztcbiAgXG4gIEBEZXN5T25JbnB1dENoYW5nZSgnb25OYW1lQ2hhbmdlJylcbiAgQElucHV0KCkgZGVjbGFyZSBuYW1lOiBzdHJpbmc7XG4gIFxuICBASW5wdXQoKSBpdGVtczogSXRlbUNoZWNrYm94RGF0YVtdO1xuICBAT3V0cHV0KCkgaXRlbXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEl0ZW1DaGVja2JveERhdGFbXT4oKTtcbiAgXG4gIEBJbnB1dCgpIGZvcm1Hcm91cENsYXNzZXM6IHN0cmluZztcbiAgQElucHV0KCkgZGVjbGFyZSBoYXNEaXZpZGVyczogYm9vbGVhbjtcbiAgQElucHV0KCkgaGFzRXJyb3I6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGNsYXNzZXM6IHN0cmluZztcbiAgQElucHV0KCkgZGVjbGFyZSBkZXNjcmliZWRCeTogc3RyaW5nO1xuICBcbiAgQERlc3lDb250ZW50Q2hpbGQoeyBvblNldENhbGxiYWNrTmFtZTogJ292ZXJyaWRlRmllbGRzZXRQYXJhbXMnfSlcbiAgQENvbnRlbnRDaGlsZHJlbihGaWVsZHNldENvbXBvbmVudCkgZmllbGRzZXRDb21wb25lbnQ6IEZpZWxkc2V0Q29tcG9uZW50O1xuICBcbiAgQERlc3lDb250ZW50Q2hpbGQoKVxuICBAQ29udGVudENoaWxkcmVuKExlZ2VuZENvbXBvbmVudCkgbGVnZW5kQ29tcG9uZW50OiBMZWdlbmRDb21wb25lbnQ7XG4gIFxuICBAQ29udGVudENoaWxkcmVuKENoZWNrYm94SXRlbUNvbXBvbmVudCkgY2hlY2tib3hDb21wb25lbnRJdGVtczogUXVlcnlMaXN0PENoZWNrYm94SXRlbUNvbXBvbmVudD47XG4gIFxuICBAVmlld0NoaWxkKCdpbm5lckh0bWwnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbm5lckh0bWw6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGRyZW4oQ2hlY2tib3hJdGVtQ29tcG9uZW50KSBjaGVja2JveENvbXBvbmVudEl0ZW1zMjogUXVlcnlMaXN0PENoZWNrYm94SXRlbUNvbXBvbmVudD47XG5cbiAgLy8gRmxhZ3NcbiAgcHJpdmF0ZSBuZXh0VmFsdWUgPSBudWxsOyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQcsOzeGltbyB2YWxvciBlbiBlbCBjb21wb25lbnRlXG4gIHByaXZhdGUgdXBkYXRlQ2hla2JveElkc0ZsYWcgPSBmYWxzZTsgICAgICAgICAgICAgLy8gSW5kaWNhIHF1ZSBzZSBoYW4gbW9kaWZpY2FkbyBsb3MgaWRzIGRlIGxvcyBpdGVtc1xuICBwcml2YXRlIGNvbnRlbnRJbml0RmxhZyA9IGZhbHNlOyAgICAgICAgICAgICAgICAgIC8vIEluZGljYSBxdWUgc2UgaW5pY2lhbGl6YWRvIGVsIGNvbmVuaWRvXG4gIHByaXZhdGUgdXBkYXRlVmFsdWVGcm9tQ2hlY2tib3hJdGVtc0ZsYWcgPSBmYWxzZTsgLy8gSW5kaWNhIHF1ZSBzZSBoYSBzZWxlY2Npb25hZG8vZGVzZWxlY2Npb25hZG8gdW4gaXRlbVxuICBwcml2YXRlIHVwZGF0ZVZhbHVlVG9DaGVja2JveEl0ZW1zRmxhZyA9IGZhbHNlOyAgIC8vIEluZGljYSBxdWUgc2UgZGViZSBzZWxlY2Npb25hci9kZXNlbGVjY2lvbmFyIHVuIGl0ZW1cbiAgcHJpdmF0ZSB1cGRhdGVJdGVtTGlzdEZsYWcgPSBmYWxzZTsgICAgICAgICAgICAgICAvLyBJbmRpY2EgcXVlIHNlIGhhIGNyZWFkby9tb2RpZmljYWRvIGVsIGxpc3RhZG8gZGUgaXRlbXNcblxuICAvKipcbiAgICogQ2VudHJhbGl6YSB5IGNvb3JkaW5hIGxvcyBjYW1iaW9zIGVuIGVsIGNvbXBvbmVudGVcbiAgICovXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICBcbiAgICAvLyBUT0RPIEVzdGEgZ2VzdGnDs24gcmVzdWx0YSBlbmdvcnJvc2EgeSBkaWZpY2lsIGRlIHNlZ3Vpci4gRXN0dWRpYXIgc2kgZXMgbWVqb3JhYmxlIHV0aWxpemFuZG8gc2lnbmFscyBhIHBhcnRpciBkZSBhbmd1bGFyIDE2XG4gICAgXG4gICAgaWYgKHRoaXMudXBkYXRlVmFsdWVGcm9tQ2hlY2tib3hJdGVtc0ZsYWcpIHtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWVGcm9tQ2hlY2tib3hJdGVtc0ZsYWcgPSBmYWxzZTtcbiAgICAgIFxuICAgICAgLypcbiAgICAgICAqIFNlIG1vZGlmaWNhIGVsIHZhbG9yIGRlc2RlIGxvcyBpdGVtcywgYSBubyBzZXIgcXVlIGxhIGxpc3RhIHNlIGFjYWJlIGRlIGNyZWFyXG4gICAgICAgKiB5IHlhIHRlbmdhIHVuIHZhbG9yLiBFbiBlc2UgY2FzbywgcHJldmFsZWNlIGVsIHZhbG9yIGV4aXN0ZW50ZS5cbiAgICAgICAqL1xuICAgICAgaWYgKCF0aGlzLnVwZGF0ZUl0ZW1MaXN0RmxhZyB8fCAoIXRoaXMudmFsdWUgfHwgdGhpcy52YWx1ZS5sZW5ndGggPT09IDApKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5nZXRDaGVja2JveEl0ZW1zKCk7XG4gICAgICAgIGlmIChpdGVtcyAmJiBpdGVtcy5sZW5ndGggPiAwICYmIGl0ZW1zLmZpbmRJbmRleChpdGVtID0+ICFpdGVtLmlzSW5pdCgpKSA8IDApIHtcbiAgICAgICAgICB0aGlzLm5leHRWYWx1ZSA9IGl0ZW1zLmZpbHRlcihpdGVtID0+IGl0ZW0uY2hlY2tlZCkubWFwKGl0ZW0gPT4gaXRlbS5nZXRWYWx1ZSgpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICBcbiAgICAgIGlmICh0aGlzLml0ZW1zICYmIHRoaXMuaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLml0ZW1zQ2hhbmdlLmVtaXQodGhpcy5pdGVtcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubmV4dFZhbHVlICE9PSBudWxsICYmICh0aGlzLm5leHRWYWx1ZS5sZW5ndGggPiAwIHx8ICh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUubGVuZ3RoID4gMCkpKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5uZXh0VmFsdWU7XG4gICAgICB0aGlzLm5leHRWYWx1ZSA9IG51bGw7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlVG9DaGVja2JveEl0ZW1zRmxhZyA9IHRydWU7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgID0+IHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXMgJiYgdGhpcy5pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5pdGVtc0NoYW5nZS5lbWl0KHRoaXMuaXRlbXMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy51cGRhdGVDaGVrYm94SWRzRmxhZykge1xuICAgICAgY29uc3QgY2hlY2tib3hJdGVtcyA9IHRoaXMuZ2V0Q2hlY2tib3hJdGVtcygpO1xuICAgICAgaWYgKGNoZWNrYm94SXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICBjaGVja2JveEl0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiBpdGVtLnVwZGF0ZUNoZWNrYm94SWQoaW5kZXgpKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudXBkYXRlQ2hla2JveElkc0ZsYWcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy51cGRhdGVWYWx1ZVRvQ2hlY2tib3hJdGVtc0ZsYWcpIHtcbiAgICAgIGNvbnN0IGNoZWNrYm94SXRlbXMgPSB0aGlzLmdldENoZWNrYm94SXRlbXMoKTtcbiAgICAgIGlmIChjaGVja2JveEl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZVRvQ2hlY2tib3hJdGVtc0ZsYWcgPSBmYWxzZTtcbiAgICAgICAgY2hlY2tib3hJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgIGNvbnN0IGl0ZW1DaGVja2VkID0gQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSA/IHRoaXMudmFsdWUuZmluZEluZGV4KHYgPT4gdiA9PT0gaXRlbS52YWx1ZSkgPiAtMSA6IHRoaXMudmFsdWUgPT09IGl0ZW0udmFsdWU7XG4gICAgICAgICAgaWYgKGl0ZW1DaGVja2VkICE9PSBpdGVtLmxhc3RDaGVja2VkKSB7XG4gICAgICAgICAgICBpdGVtLnNldENoZWNrZWQoaXRlbUNoZWNrZWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudXBkYXRlSXRlbUxpc3RGbGFnKSB7XG4gICAgICB0aGlzLnVwZGF0ZUl0ZW1MaXN0RmxhZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRlbnRJbml0RmxhZyA9IHRydWU7XG4gICAgdGhpcy5jaGVja2JveENvbXBvbmVudEl0ZW1zLmNoYW5nZXMuc3Vic2NyaWJlKGNoYW5nZSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZUl0ZW1MaXN0RmxhZyA9IHRydWU7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2Ugc29icmVzY3JpYmUgZWwgd3JpdGVWYWx1ZSBkZSBGb3JtRmllbGQgcGFyYSBnZXN0aW9uYXIgZW4gdW4gw7puaWNvIHB1bnRvIGVsIHZhbG9yIGRlIHZhbHVlXG4gICAqIEBwYXJhbSB2YWx1ZSBudWV2byB2YWxvciBhIGVzdGFibGVjZXJcbiAgICovXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueVtdKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLm5leHRWYWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIG9uSWRQcmVmaXhDaGFuZ2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29udGVudEluaXRGbGFnKSB7XG4gICAgICB0aGlzLm1hcmtGb3JVcGRhdGVDaGVja2JveElkcygpO1xuICAgIH1cbiAgICB0aGlzLnByb3BhZ2F0ZU5ld0lkUHJlZml4VmFsdWUoKTtcbiAgfVxuXG5cbiAgb25OYW1lQ2hhbmdlKCk6IHZvaWQge1xuXG4gICAgaWYgKHRoaXMuY29udGVudEluaXRGbGFnKSB7XG4gICAgICB0aGlzLm1hcmtGb3JVcGRhdGVDaGVja2JveElkcygpO1xuICAgIH1cblxuICAgIHRoaXMucHJvcGFnYXRlTmV3SWRQcmVmaXhWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdHVhbGl6YSBsb3MgY29tcG9uZW50ZXMgZXh0ZXJub3MgcXVlIHRpZW5lbiB2YWxvcmVzIGRlcGVuZGllbnRlcyBkZSBpZFByZWZpeFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBwcm9wYWdhdGVOZXdJZFByZWZpeFZhbHVlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhpbnRDb21wb25lbnQpIHtcbiAgICAgIHRoaXMub3ZlcnJpZGVIaW50UGFyYW1zKHRoaXMuaGludENvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZXJyb3JNZXNzYWdlQ29tcG9uZW50KSB7XG4gICAgICB0aGlzLm92ZXJyaWRlRXJyb3JNZXNzYWdlUGFyYW1zKHRoaXMuZXJyb3JNZXNzYWdlQ29tcG9uZW50KTtcbiAgICB9XG5cbiAgICAvLyBBbCBoYWNlciBlbCBvdmVycmlkZSBkZSBoaW50IG8gZXJyb3IgeWEgc2UgYXBsaWNhIHNvYnJlIGVsIGZpZWxkc2V0LCBwb3IgbG8gcXVlIHPDs2xvIGVzIG5lY2VzYXJpbyBhcGxpY2FybG8gZGlyZWN0YW1lbnRlXG4gICAgLy8gc29icmUgZWwgZmllbGRzZXQgY3VhbmRvIG5pbmd1bm8gZGUgZXN0b3MgZXhpc3RlXG4gICAgaWYgKCF0aGlzLmhpbnRDb21wb25lbnQgJiYgIXRoaXMuZXJyb3JNZXNzYWdlQ29tcG9uZW50ICYmIHRoaXMuZmllbGRzZXRDb21wb25lbnQpIHtcbiAgICAgIHRoaXMub3ZlcnJpZGVGaWVsZHNldFBhcmFtcyh0aGlzLmZpZWxkc2V0Q29tcG9uZW50KTtcbiAgICB9XG4gIH1cblxuICBtYXJrRm9yVXBkYXRlQ2hlY2tib3hJZHMoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVDaGVrYm94SWRzRmxhZyA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQWN0dWFsaXphIGVsIHZhbG9yIGN1YW5kbyBzZSBwcm9kdWNlIHVuIGNhbWJpbyBlbiBsb3MgaXRlbXMsIHRhbnRvIGludGVybm8gY29tbyBleHRlcm5vXG4gICAqL1xuICB1cGRhdGVWYWx1ZUZyb21DaGVja2JveEl0ZW1zKCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlVmFsdWVGcm9tQ2hlY2tib3hJdGVtc0ZsYWcgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZW1wbGF6byBkZSBmdW5jaW9uZXMgZGUgRm9ybUZpZWxkXG4gICAqL1xuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBzdXBlci5zZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQpO1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5nZXRDaGVja2JveEl0ZW1zKCk7XG4gICAgaWYgKGl0ZW1zICYmIGl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIGl0ZW1zLmZvckVhY2goaSA9PiBpLnBhcmVudERpc2FibGVkID0gaXNEaXNhYmxlZCk7XG4gICAgfVxuICB9XG5cbiAgLypcbiAgICogRnVuY2lvbmVzIHBhcmEgcmVlbXBsYXphciBlbCBjb250ZW5pZG8gZGVsIGZpZWxkc2V0LCBsYWJlbCwgaGludCBvIGVycm9ybWVzc2FnZVxuICAgKi9cblxuICBvdmVycmlkZUZpZWxkc2V0UGFyYW1zKGZpZWxkc2V0OiBGaWVsZHNldENvbXBvbmVudCk6IHZvaWQge1xuICAgIGZpZWxkc2V0LmNhbGxlciA9IHRoaXMuaW5uZXJIdG1sO1xuICAgIGZpZWxkc2V0LmVycm9ySWQgPSB0aGlzLmdldEVycm9ySWQoKTtcbiAgICBmaWVsZHNldC5kZXNjcmliZWRCeSA9IG5ldyBNYWtlSHRtbExpc3RQaXBlKCkudHJhbnNmb3JtKFt0aGlzLmdldEhpbnRJZCgpLCB0aGlzLmdldEVycm9ySWQoKV0sIG51bGwpO1xuICAgIGZpZWxkc2V0LmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG92ZXJyaWRlSGludFBhcmFtcyhoaW50OiBIaW50Q29tcG9uZW50KTogdm9pZCB7XG4gICAgaGludC5pZCA9IHRoaXMuZ2V0SGludElkKCk7XG4gICAgaGludC5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICBpZiAodGhpcy5oYXNGaWVsZHNldENvbXBvbmVudCgpKSB7XG4gICAgICB0aGlzLm92ZXJyaWRlRmllbGRzZXRQYXJhbXModGhpcy5maWVsZHNldENvbXBvbmVudCk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGVFcnJvck1lc3NhZ2VQYXJhbXMoZXJyb3JNZXNzYWdlOiBFcnJvck1lc3NhZ2VDb21wb25lbnQpOiB2b2lkIHtcbiAgICBlcnJvck1lc3NhZ2UuaWQgPSB0aGlzLmdldEVycm9ySWQoKTtcbiAgICBlcnJvck1lc3NhZ2UuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgaWYgKHRoaXMuaGFzRmllbGRzZXRDb21wb25lbnQoKSkge1xuICAgICAgdGhpcy5vdmVycmlkZUZpZWxkc2V0UGFyYW1zKHRoaXMuZmllbGRzZXRDb21wb25lbnQpO1xuICAgIH1cbiAgfVxuXG4gIG9uRGVsZXRlSGludCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5oYXNGaWVsZHNldENvbXBvbmVudCgpKSB7XG4gICAgICB0aGlzLm92ZXJyaWRlRmllbGRzZXRQYXJhbXModGhpcy5maWVsZHNldENvbXBvbmVudCk7XG4gICAgfVxuICB9XG5cbiAgb25EZWxldGVFcnJvck1lc3NhZ2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaGFzRmllbGRzZXRDb21wb25lbnQoKSkge1xuICAgICAgdGhpcy5vdmVycmlkZUZpZWxkc2V0UGFyYW1zKHRoaXMuZmllbGRzZXRDb21wb25lbnQpO1xuICAgIH1cbiAgfVxuXG5cbiAgLypcbiAgICogRnVuY2lvbmVzIHBhcmEgcmVjdXBlcmFyIHZhbG9yZXMgY29tdW5lc1xuICAgKi9cblxuXG4gIGhhc0ZpZWxkc2V0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhISh0aGlzLmhhc0ZpZWxkc2V0Q29tcG9uZW50KCkgfHwgdGhpcy5oYXNMZWdlbmRDb21wb25lbnQoKSB8fCB0aGlzLmxlZ2VuZFJlZiB8fCB0aGlzLmZpZWxkc2V0RGF0YSB8fFxuICAgICAgKHRoaXMubGVnZW5kRGF0YSAmJiAodGhpcy5sZWdlbmREYXRhLnRleHQgfHwgdGhpcy5sZWdlbmREYXRhLmh0bWwpKSB8fCB0aGlzLmxlZ2VuZFRleHQpO1xuICB9XG5cbiAgaGFzRmllbGRzZXRDb21wb25lbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5maWVsZHNldENvbXBvbmVudDtcbiAgfVxuXG4gIGhhc0xlZ2VuZENvbXBvbmVudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmxlZ2VuZENvbXBvbmVudDtcbiAgfVxuXG4gIGdldEVycm9ySWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5oYXNFcnJvcnNNZXNzYWdlKCkgPyB0aGlzLmdldElkUHJlZml4KCkgKyAnLWVycm9yJyA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldEhpbnRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmhhc0hpbnQoKSA/IHRoaXMuZ2V0SWRQcmVmaXgoKSArICctaGludCcgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXRJZFByZWZpeCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkUHJlZml4ID8gdGhpcy5pZFByZWZpeCA6IHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldENoZWNrYm94SXRlbXMoKTogQ2hlY2tib3hJdGVtQ29tcG9uZW50W10ge1xuICAgIGxldCBjaGVja2JveEl0ZW1zID0gW107XG4gICAgaWYgKHRoaXMuY2hlY2tib3hDb21wb25lbnRJdGVtcyAmJiB0aGlzLmNoZWNrYm94Q29tcG9uZW50SXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgY2hlY2tib3hJdGVtcyA9IHRoaXMuY2hlY2tib3hDb21wb25lbnRJdGVtcy50b0FycmF5KCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNoZWNrYm94Q29tcG9uZW50SXRlbXMyICYmIHRoaXMuY2hlY2tib3hDb21wb25lbnRJdGVtczIubGVuZ3RoID4gMCkge1xuICAgICAgY2hlY2tib3hJdGVtcyA9IHRoaXMuY2hlY2tib3hDb21wb25lbnRJdGVtczIudG9BcnJheSgpO1xuICAgIH1cbiAgICByZXR1cm4gY2hlY2tib3hJdGVtcztcbiAgfVxufVxuIiwiPGRpdiBbY2xhc3NdPVwiWydjLWZvcm0tZ3JvdXAnLCBmb3JtR3JvdXBDbGFzc2VzXSB8IG1ha2VIdG1sTGlzdFwiXG4gICAgIFtuZ0NsYXNzXT1cInsnYy1mb3JtLWdyb3VwLS1lcnJvcic6IChoYXNFcnJvcnNNZXNzYWdlKCkgfHwgZm9ybUdyb3VwQ2xhc3NlcyA9PT0gJ2MtZm9ybS1ncm91cC0tZXJyb3InKSB9XCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNGaWVsZHNldENvbXBvbmVudCgpXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZGVzeS1maWVsZHNldFwiPjwvbmctY29udGVudD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGFzRmllbGRzZXRDb21wb25lbnQoKVwiPlxuICAgIDxkZXN5LWZpZWxkc2V0ICpuZ0lmPVwiZmllbGRzZXREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXNdPVwiZmllbGRzZXREYXRhLmNsYXNzZXNcIlxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZmllbGRzZXREYXRhLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgW2xlZ2VuZERhdGFdPVwiZmllbGRzZXREYXRhLmxlZ2VuZFwiXG4gICAgICAgICAgICAgICAgICAgIFtoZWFkaW5nTGV2ZWxdPVwiZmllbGRzZXREYXRhLmhlYWRpbmdMZXZlbFwiXG4gICAgICAgICAgICAgICAgICAgIFtjYWxsZXJdPVwiaW5uZXJIdG1sXCJcbiAgICAgICAgICAgICAgICAgICAgW2Vycm9ySWRdPVwiZ2V0RXJyb3JJZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rlc2NyaWJlZEJ5XT1cIltmaWVsZHNldERhdGEuZGVzY3JpYmVkQnksIGdldEhpbnRJZCgpLCBnZXRFcnJvcklkKCldIHwgbWFrZUh0bWxMaXN0Om51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbcm9sZV09XCJmaWVsZHNldERhdGEucm9sZVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiZmllbGRzZXREYXRhLmFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxsZWRCeV09XCJmaWVsZHNldERhdGEuYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUhpZGRlbl09XCJmaWVsZHNldERhdGEuYXJpYUhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwiZmllbGRzZXREYXRhLmFyaWFEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwiZmllbGRzZXREYXRhLmFyaWFDb250cm9sc1wiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhQ3VycmVudF09XCJmaWVsZHNldERhdGEuYXJpYUN1cnJlbnRcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUxpdmVdPVwiZmllbGRzZXREYXRhLmFyaWFMaXZlXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFFeHBhbmRlZF09XCJmaWVsZHNldERhdGEuYXJpYUV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFIYXNQb3B1cF09XCJmaWVsZHNldERhdGEuYXJpYUhhc1BvcHVwXCJcbiAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cImZpZWxkc2V0RGF0YS50YWJpbmRleFwiPjwvZGVzeS1maWVsZHNldD5cbiAgICA8ZGVzeS1maWVsZHNldCAqbmdJZj1cIiFmaWVsZHNldERhdGEgJiYgISFsZWdlbmRDb21wb25lbnRcIlxuICAgICAgICAgICAgICAgICAgICBbbGVnZW5kUmVmXT1cImxlZ2VuZFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2NhbGxlcl09XCJpbm5lckh0bWxcIlxuICAgICAgICAgICAgICAgICAgICBbZXJyb3JJZF09XCJnZXRFcnJvcklkKClcIlxuICAgICAgICAgICAgICAgICAgICBbZGVzY3JpYmVkQnldPVwiWyBnZXRIaW50SWQoKSwgZ2V0RXJyb3JJZCgpXSB8IG1ha2VIdG1sTGlzdDpudWxsXCI+XG4gICAgICA8bmctdGVtcGxhdGUgI2xlZ2VuZFRlbXBsYXRlPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkZXN5LWxlZ2VuZFwiPjwvbmctY29udGVudD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kZXN5LWZpZWxkc2V0PlxuICAgIDxkZXN5LWZpZWxkc2V0ICpuZ0lmPVwiIWZpZWxkc2V0RGF0YSAmJiAhbGVnZW5kQ29tcG9uZW50ICYmIGxlZ2VuZFJlZlwiXG4gICAgICAgICAgICAgICAgICAgIFtsZWdlbmRSZWZdPVwibGVnZW5kUmVmXCJcbiAgICAgICAgICAgICAgICAgICAgW2NhbGxlcl09XCJpbm5lckh0bWxcIlxuICAgICAgICAgICAgICAgICAgICBbZXJyb3JJZF09XCJnZXRFcnJvcklkKClcIlxuICAgICAgICAgICAgICAgICAgICBbZGVzY3JpYmVkQnldPVwiWyBnZXRIaW50SWQoKSwgZ2V0RXJyb3JJZCgpXSB8IG1ha2VIdG1sTGlzdDpudWxsXCI+PC9kZXN5LWZpZWxkc2V0PlxuICAgIDxkZXN5LWZpZWxkc2V0ICpuZ0lmPVwiIWZpZWxkc2V0RGF0YSAmJiAhbGVnZW5kQ29tcG9uZW50ICYmICFsZWdlbmRSZWYgJiYgbGVnZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgIFtsZWdlbmREYXRhXT1cInt0ZXh0OiBsZWdlbmREYXRhLnRleHQsIGh0bWw6IGxlZ2VuZERhdGEuaHRtbCwgIGNsYXNzZXM6IGxlZ2VuZERhdGEuY2xhc3NlcywgaXNQYWdlSGVhZGluZzogbGVnZW5kRGF0YS5pc1BhZ2VIZWFkaW5nfVwiXG4gICAgICAgICAgICAgICAgICAgIFtjYWxsZXJdPVwiaW5uZXJIdG1sXCJcbiAgICAgICAgICAgICAgICAgICAgW2Vycm9ySWRdPVwiZ2V0RXJyb3JJZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rlc2NyaWJlZEJ5XT1cIlsgZ2V0SGludElkKCksIGdldEVycm9ySWQoKV0gfCBtYWtlSHRtbExpc3Q6bnVsbFwiPjwvZGVzeS1maWVsZHNldD5cbiAgICA8ZGVzeS1maWVsZHNldCAqbmdJZj1cIiFmaWVsZHNldERhdGEgJiYgIWxlZ2VuZENvbXBvbmVudCAmJiAhbGVnZW5kUmVmICYmICFsZWdlbmREYXRhICYmIGxlZ2VuZFRleHRcIlxuICAgICAgICAgICAgICAgICAgICBbbGVnZW5kVGV4dF09XCJsZWdlbmRUZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgW2NhbGxlcl09XCJpbm5lckh0bWxcIlxuICAgICAgICAgICAgICAgICAgICBbZXJyb3JJZF09XCJnZXRFcnJvcklkKClcIlxuICAgICAgICAgICAgICAgICAgICBbZGVzY3JpYmVkQnldPVwiWyBnZXRIaW50SWQoKSwgZ2V0RXJyb3JJZCgpXSB8IG1ha2VIdG1sTGlzdDpudWxsXCI+PC9kZXN5LWZpZWxkc2V0PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGFzRmllbGRzZXQoKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlubmVySHRtbFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjaW5uZXJIdG1sPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzSGludENvbXBvbmVudCgpXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZGVzeS1oaW50XCI+PC9uZy1jb250ZW50PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoYXNIaW50Q29tcG9uZW50KClcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGludFJlZlwiPjwvbmctY29udGFpbmVyPlxuICAgIDxkZXN5LWhpbnQgKm5nSWY9XCIhaGludFJlZiAmJiBoaW50RGF0YVwiXG4gICAgICAgICAgICAgICBbaWRdPVwiZ2V0SGludElkKClcIlxuICAgICAgICAgICAgICAgW3RleHRdPVwiaGludERhdGEudGV4dFwiXG4gICAgICAgICAgICAgICBbaHRtbF09XCJoaW50RGF0YS5odG1sXCJcbiAgICAgICAgICAgICAgIFtjbGFzc2VzXT1cImhpbnREYXRhLmNsYXNzZXNcIlxuICAgICAgICAgICAgICAgW3JvbGVdPVwiaGludERhdGEucm9sZVwiXG4gICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cImhpbnREYXRhLmFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgICBbYXJpYURlc2NyaWJlZEJ5XT1cImhpbnREYXRhLmFyaWFEZXNjcmliZWRCeVwiXG4gICAgICAgICAgICAgICBbYXJpYUxhYmVsbGVkQnldPVwiaGludERhdGEuYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgICAgW2FyaWFIaWRkZW5dPVwiaGludERhdGEuYXJpYUhpZGRlblwiXG4gICAgICAgICAgICAgICBbYXJpYURpc2FibGVkXT1cImhpbnREYXRhLmFyaWFEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICBbYXJpYUNvbnRyb2xzXT1cImhpbnREYXRhLmFyaWFDb250cm9sc1wiXG4gICAgICAgICAgICAgICBbYXJpYUN1cnJlbnRdPVwiaGludERhdGEuYXJpYUN1cnJlbnRcIlxuICAgICAgICAgICAgICAgW2FyaWFMaXZlXT1cImhpbnREYXRhLmFyaWFMaXZlXCJcbiAgICAgICAgICAgICAgIFthcmlhRXhwYW5kZWRdPVwiaGludERhdGEuYXJpYUV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgIFthcmlhRXJyb3JNZXNzYWdlXT1cImhpbnREYXRhLmFyaWFFcnJvck1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgW2FyaWFIYXNQb3B1cF09XCJoaW50RGF0YS5hcmlhSGFzUG9wdXBcIlxuICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cImhpbnREYXRhLnRhYmluZGV4XCI+PC9kZXN5LWhpbnQ+XG4gICAgPGRlc3ktaGludCAqbmdJZj1cIiFoaW50UmVmICYmICFoaW50RGF0YSAmJiBoaW50VGV4dFwiIFt0ZXh0XT1cImhpbnRUZXh0XCIgW2lkXT1cImdldEhpbnRJZCgpXCI+PC9kZXN5LWhpbnQ+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNFcnJvck1lc3NhZ2VDb21wb25lbnQoKVwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRlc3ktZXJyb3ItbWVzc2FnZVwiPjwvbmctY29udGVudD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGFzRXJyb3JNZXNzYWdlQ29tcG9uZW50KClcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXJyb3JNZXNzYWdlUmVmXCI+PC9uZy1jb250YWluZXI+XG4gICAgPGRlc3ktZXJyb3ItbWVzc2FnZSAqbmdJZj1cIiFlcnJvck1lc3NhZ2VSZWYgJiYgZXJyb3JNZXNzYWdlRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZ2V0RXJyb3JJZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cImVycm9yTWVzc2FnZURhdGEudGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaHRtbF09XCJlcnJvck1lc3NhZ2VEYXRhLmh0bWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXNdPVwiZXJyb3JNZXNzYWdlRGF0YS5jbGFzc2VzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2aXN1YWxseUhpZGRlblRleHRdPVwiZXJyb3JNZXNzYWdlRGF0YS52aXN1YWxseUhpZGRlblRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3JvbGVdPVwiZXJyb3JNZXNzYWdlRGF0YS5yb2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFEZXNjcmliZWRCeV09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFEZXNjcmliZWRCeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsbGVkQnldPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUhpZGRlbl09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFEaXNhYmxlZF09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUNvbnRyb2xzXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUNvbnRyb2xzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhQ3VycmVudF09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFDdXJyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGl2ZV09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFMaXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhRXhwYW5kZWRdPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFFcnJvck1lc3NhZ2VdPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhRXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhSGFzUG9wdXBdPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhSGFzUG9wdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cImVycm9yTWVzc2FnZURhdGEudGFiaW5kZXhcIj48L2Rlc3ktZXJyb3ItbWVzc2FnZT5cbiAgICA8ZGVzeS1lcnJvci1tZXNzYWdlICpuZ0lmPVwiIWVycm9yTWVzc2FnZVJlZiAmJiAhZXJyb3JNZXNzYWdlRGF0YSAmJiBlcnJvck1lc3NhZ2VUZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cImVycm9yTWVzc2FnZVRleHRcIiBbaWRdPVwiZ2V0RXJyb3JJZCgpXCI+PC9kZXN5LWVycm9yLW1lc3NhZ2U+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxkaXYgW2NsYXNzXT1cIlsnYy1jaGVja2JveGVzJywgY2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIlxuICAgICAgW2Rlc3lBcHBBY2Nlc3NpYmlsaXR5XT1cInRoaXNcIj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjaGVja2JveENvbXBvbmVudEl0ZW1zICYmIGNoZWNrYm94Q29tcG9uZW50SXRlbXMubGVuZ3RoID4gMFwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZGVzeS1jaGVja2JveC1pdGVtXCI+PC9uZy1jb250ZW50PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhKGNoZWNrYm94Q29tcG9uZW50SXRlbXMgJiYgY2hlY2tib3hDb21wb25lbnRJdGVtcy5sZW5ndGggPiAwKSAmJiBpdGVtc1wiPlxuICAgICAgPGRlc3ktY2hlY2tib3gtaXRlbSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgaW5kZXggYXMgaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJpdGVtLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWQgfHwgZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJpdGVtLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlc109XCJpdGVtLmNsYXNzZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFsoY2hlY2tlZCldPVwiaXRlbS5jaGVja2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmRpdGlvbmFsXT1cIml0ZW0uY29uZGl0aW9uYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNJbmRldGVybWluYXRlXT1cIml0ZW0uaXNJbmRldGVybWluYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVDaGVja2VkXT1cIml0ZW0uaW5kZXRlcm1pbmF0ZUNoZWNrZWRcIlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtyb2xlXT1cIml0ZW0ucm9sZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiaXRlbS5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYURlc2NyaWJlZEJ5XT1cIml0ZW0uYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cIml0ZW0uYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUhpZGRlbl09XCJpdGVtLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYURpc2FibGVkXT1cIml0ZW0uYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFDb250cm9sc109XCJpdGVtLmFyaWFDb250cm9sc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhQ3VycmVudF09XCJpdGVtLmFyaWFDdXJyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFMaXZlXT1cIml0ZW0uYXJpYUxpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUV4cGFuZGVkXT1cIml0ZW0uYXJpYUV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFFcnJvck1lc3NhZ2VdPVwiaXRlbS5hcmlhRXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFIYXNQb3B1cF09XCJpdGVtLmFyaWFIYXNQb3B1cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJpdGVtLnRhYmluZGV4XCI+XG4gICAgICAgIDxkZXN5LWxhYmVsIFt0ZXh0XT1cIml0ZW0udGV4dFwiIFtodG1sXT1cIml0ZW0uaHRtbFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzXT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuY2xhc3NlcyA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbcm9sZV09XCJpdGVtLmxhYmVsRGF0YSA/IGl0ZW0ubGFiZWxEYXRhLnJvbGUgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJpdGVtLmxhYmVsRGF0YSA/IGl0ZW0ubGFiZWxEYXRhLmFyaWFMYWJlbCA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYURlc2NyaWJlZEJ5XT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuYXJpYURlc2NyaWJlZEJ5OiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuYXJpYUxhYmVsbGVkQnkgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFIaWRkZW5dPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhSGlkZGVuIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhRGlzYWJsZWQgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFDb250cm9sc109XCJpdGVtLmxhYmVsRGF0YSA/IGl0ZW0ubGFiZWxEYXRhLmFyaWFDb250cm9scyA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUN1cnJlbnRdPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhQ3VycmVudCA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUxpdmVdPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhTGl2ZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUV4cGFuZGVkXT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuYXJpYUV4cGFuZGVkIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhRXJyb3JNZXNzYWdlXT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuYXJpYUVycm9yTWVzc2FnZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuYXJpYUhhc1BvcHVwIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleCA/IGl0ZW0ubGFiZWxEYXRhLnRhYmluZGV4IDogbnVsbFwiPjwvZGVzeS1sYWJlbD5cbiAgICAgICAgPGRlc3ktaGludCAqbmdJZj1cIml0ZW0uaGludERhdGEgJiYgKGl0ZW0uaGludERhdGEudGV4dCB8fCBpdGVtLmhpbnREYXRhLmh0bWwpXCJcbiAgICAgICAgICAgICAgICAgICBbdGV4dF09XCJpdGVtLmhpbnREYXRhLnRleHRcIlxuICAgICAgICAgICAgICAgICAgIFtodG1sXT1cIml0ZW0uaGludERhdGEuaHRtbFwiXG4gICAgICAgICAgICAgICAgICAgW2NsYXNzZXNdPVwiaXRlbS5oaW50RGF0YS5jbGFzc2VzXCJcbiAgICAgICAgICAgICAgICAgICBbcm9sZV09XCJpdGVtLmhpbnREYXRhLnJvbGVcIlxuICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiaXRlbS5oaW50RGF0YS5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgIFthcmlhRGVzY3JpYmVkQnldPVwiaXRlbS5oaW50RGF0YS5hcmlhRGVzY3JpYmVkQnlcIlxuICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxsZWRCeV09XCJpdGVtLmhpbnREYXRhLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICBbYXJpYUhpZGRlbl09XCJpdGVtLmhpbnREYXRhLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwiaXRlbS5oaW50RGF0YS5hcmlhRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwiaXRlbS5oaW50RGF0YS5hcmlhQ29udHJvbHNcIlxuICAgICAgICAgICAgICAgICAgIFthcmlhQ3VycmVudF09XCJpdGVtLmhpbnREYXRhLmFyaWFDdXJyZW50XCJcbiAgICAgICAgICAgICAgICAgICBbYXJpYUxpdmVdPVwiaXRlbS5oaW50RGF0YS5hcmlhTGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgW2FyaWFFeHBhbmRlZF09XCJpdGVtLmhpbnREYXRhLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgW2FyaWFFcnJvck1lc3NhZ2VdPVwiaXRlbS5oaW50RGF0YS5hcmlhRXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cIml0ZW0uaGludERhdGEuYXJpYUhhc1BvcHVwXCJcbiAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiaXRlbS5oaW50RGF0YS50YWJpbmRleFwiPjwvZGVzeS1oaW50PlxuICAgICAgICA8ZGVzeS1oaW50ICpuZ0lmPVwiIWl0ZW0uaGludERhdGEgJiYgaXRlbS5oaW50VGV4dFwiIFt0ZXh0XT1cIml0ZW0uaGludFRleHRcIj48L2Rlc3ktaGludD5cbiAgICAgICAgPGRlc3ktY29udGVudCAqbmdJZj1cIml0ZW0uY29uZGl0aW9uYWxIdG1sXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW0uY29uZGl0aW9uYWxIdG1sXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGVzeS1jb250ZW50PlxuICAgICAgPC9kZXN5LWNoZWNrYm94LWl0ZW0+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==