@coreui/angular-pro 5.1.0 → 5.1.2

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 (268) hide show
  1. package/README.md +1 -1
  2. package/esm2022/lib/accordion/accordion/accordion.component.mjs +4 -4
  3. package/esm2022/lib/accordion/accordion-button/accordion-button.directive.mjs +4 -4
  4. package/esm2022/lib/accordion/accordion-item/accordion-item.component.mjs +4 -4
  5. package/esm2022/lib/accordion/accordion.module.mjs +5 -5
  6. package/esm2022/lib/accordion/accordion.service.mjs +4 -4
  7. package/esm2022/lib/alert/alert-heading.directive.mjs +4 -4
  8. package/esm2022/lib/alert/alert-link.directive.mjs +4 -4
  9. package/esm2022/lib/alert/alert.component.mjs +4 -4
  10. package/esm2022/lib/alert/alert.module.mjs +5 -5
  11. package/esm2022/lib/avatar/avatar.component.mjs +19 -12
  12. package/esm2022/lib/avatar/avatar.module.mjs +5 -5
  13. package/esm2022/lib/backdrop/backdrop.service.mjs +4 -4
  14. package/esm2022/lib/badge/badge.component.mjs +4 -4
  15. package/esm2022/lib/badge/badge.module.mjs +5 -5
  16. package/esm2022/lib/breadcrumb/breadcrumb/breadcrumb.component.mjs +4 -4
  17. package/esm2022/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.mjs +4 -4
  18. package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.mjs +4 -4
  19. package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs +4 -4
  20. package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +5 -5
  21. package/esm2022/lib/button/button-close.directive.mjs +4 -4
  22. package/esm2022/lib/button/button.directive.mjs +4 -4
  23. package/esm2022/lib/button/button.module.mjs +5 -5
  24. package/esm2022/lib/button-group/button-group/button-group.component.mjs +4 -4
  25. package/esm2022/lib/button-group/button-group.module.mjs +5 -5
  26. package/esm2022/lib/button-group/button-toolbar/button-toolbar.component.mjs +4 -4
  27. package/esm2022/lib/calendar/calendar/calendar-class-view.pipe.mjs +4 -4
  28. package/esm2022/lib/calendar/calendar/calendar.component.mjs +4 -4
  29. package/esm2022/lib/calendar/calendar-month/calendar-class-day.pipe.mjs +4 -4
  30. package/esm2022/lib/calendar/calendar-month/calendar-class-month.pipe.mjs +4 -4
  31. package/esm2022/lib/calendar/calendar-month/calendar-class-row.pipe.mjs +4 -4
  32. package/esm2022/lib/calendar/calendar-month/calendar-class-year.pipe.mjs +4 -4
  33. package/esm2022/lib/calendar/calendar-month/calendar-day-title.pipe.mjs +4 -4
  34. package/esm2022/lib/calendar/calendar-month/calendar-day.directive.mjs +4 -4
  35. package/esm2022/lib/calendar/calendar-month/calendar-day.pipe.mjs +4 -4
  36. package/esm2022/lib/calendar/calendar-month/calendar-month.component.mjs +4 -4
  37. package/esm2022/lib/calendar/calendar-month/calendar-row.directive.mjs +4 -4
  38. package/esm2022/lib/calendar/calendar-month/calendar-weekday.pipe.mjs +4 -4
  39. package/esm2022/lib/calendar/calendar-navigation/calendar-navigation.component.mjs +4 -4
  40. package/esm2022/lib/calendar/calendar.module.mjs +5 -5
  41. package/esm2022/lib/calendar/calendar.service.mjs +4 -4
  42. package/esm2022/lib/callout/callout.component.mjs +4 -4
  43. package/esm2022/lib/callout/callout.module.mjs +5 -5
  44. package/esm2022/lib/card/card-body.component.mjs +4 -4
  45. package/esm2022/lib/card/card-footer.component.mjs +4 -4
  46. package/esm2022/lib/card/card-group.component.mjs +4 -4
  47. package/esm2022/lib/card/card-header-actions.component.mjs +4 -4
  48. package/esm2022/lib/card/card-header.component.mjs +4 -4
  49. package/esm2022/lib/card/card-img-overlay/card-img-overlay.component.mjs +4 -4
  50. package/esm2022/lib/card/card-img.directive.mjs +4 -4
  51. package/esm2022/lib/card/card-link.directive.mjs +4 -4
  52. package/esm2022/lib/card/card-subtitle.directive.mjs +4 -4
  53. package/esm2022/lib/card/card-text.directive.mjs +4 -4
  54. package/esm2022/lib/card/card-title.directive.mjs +4 -4
  55. package/esm2022/lib/card/card.component.mjs +4 -4
  56. package/esm2022/lib/card/card.module.mjs +5 -5
  57. package/esm2022/lib/carousel/carousel/carousel.component.mjs +4 -4
  58. package/esm2022/lib/carousel/carousel-caption/carousel-caption.component.mjs +4 -4
  59. package/esm2022/lib/carousel/carousel-control/carousel-control.component.mjs +4 -4
  60. package/esm2022/lib/carousel/carousel-indicators/carousel-indicators.component.mjs +4 -4
  61. package/esm2022/lib/carousel/carousel-inner/carousel-inner.component.mjs +4 -4
  62. package/esm2022/lib/carousel/carousel-item/carousel-item.component.mjs +4 -4
  63. package/esm2022/lib/carousel/carousel-state.mjs +4 -4
  64. package/esm2022/lib/carousel/carousel.config.mjs +4 -4
  65. package/esm2022/lib/carousel/carousel.module.mjs +5 -5
  66. package/esm2022/lib/carousel/carousel.service.mjs +4 -4
  67. package/esm2022/lib/collapse/collapse.directive.mjs +4 -4
  68. package/esm2022/lib/collapse/collapse.module.mjs +5 -5
  69. package/esm2022/lib/coreui.types.mjs +1 -1
  70. package/esm2022/lib/date-picker/date-picker.component.mjs +4 -4
  71. package/esm2022/lib/date-picker/date-picker.module.mjs +5 -5
  72. package/esm2022/lib/date-range-picker/date-range-picker/custom-range-key.pipe.mjs +4 -4
  73. package/esm2022/lib/date-range-picker/date-range-picker/date-range-picker.component.mjs +4 -4
  74. package/esm2022/lib/date-range-picker/date-range-picker.module.mjs +5 -5
  75. package/esm2022/lib/dropdown/dropdown/dropdown.component.mjs +50 -33
  76. package/esm2022/lib/dropdown/dropdown-close/dropdown-close.directive.mjs +4 -4
  77. package/esm2022/lib/dropdown/dropdown-divider/dropdown-divider.directive.mjs +4 -4
  78. package/esm2022/lib/dropdown/dropdown-header/dropdown-header.directive.mjs +4 -4
  79. package/esm2022/lib/dropdown/dropdown-item/dropdown-item-plain.directive.mjs +4 -4
  80. package/esm2022/lib/dropdown/dropdown-item/dropdown-item.directive.mjs +4 -4
  81. package/esm2022/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs +4 -4
  82. package/esm2022/lib/dropdown/dropdown.module.mjs +5 -5
  83. package/esm2022/lib/dropdown/dropdown.service.mjs +4 -4
  84. package/esm2022/lib/element-cover/element-cover.component.mjs +4 -4
  85. package/esm2022/lib/element-cover/element-cover.module.mjs +5 -5
  86. package/esm2022/lib/footer/footer.component.mjs +8 -8
  87. package/esm2022/lib/footer/footer.module.mjs +5 -5
  88. package/esm2022/lib/form/form/form.directive.mjs +4 -4
  89. package/esm2022/lib/form/form-check/form-check-input.directive.mjs +4 -4
  90. package/esm2022/lib/form/form-check/form-check-label.directive.mjs +4 -4
  91. package/esm2022/lib/form/form-check/form-check.component.mjs +4 -4
  92. package/esm2022/lib/form/form-control/form-control.directive.mjs +4 -4
  93. package/esm2022/lib/form/form-feedback/form-feedback.component.mjs +4 -4
  94. package/esm2022/lib/form/form-floating/form-floating.directive.mjs +4 -4
  95. package/esm2022/lib/form/form-label/form-label.directive.mjs +4 -4
  96. package/esm2022/lib/form/form-select/form-select.directive.mjs +4 -4
  97. package/esm2022/lib/form/form-text/form-text.directive.mjs +4 -4
  98. package/esm2022/lib/form/form.module.mjs +5 -5
  99. package/esm2022/lib/form/input-group/input-group.component.mjs +4 -4
  100. package/esm2022/lib/form/input-group-text/input-group-text.directive.mjs +4 -4
  101. package/esm2022/lib/grid/col.component.mjs +4 -4
  102. package/esm2022/lib/grid/col.directive.mjs +4 -4
  103. package/esm2022/lib/grid/container.component.mjs +4 -4
  104. package/esm2022/lib/grid/grid.module.mjs +5 -5
  105. package/esm2022/lib/grid/gutter.directive.mjs +4 -4
  106. package/esm2022/lib/grid/row.component.mjs +4 -4
  107. package/esm2022/lib/grid/row.directive.mjs +4 -4
  108. package/esm2022/lib/header/header/header.component.mjs +6 -6
  109. package/esm2022/lib/header/header-brand/header-brand.component.mjs +4 -4
  110. package/esm2022/lib/header/header-divider/header-divider.component.mjs +4 -4
  111. package/esm2022/lib/header/header-nav/header-nav.component.mjs +4 -4
  112. package/esm2022/lib/header/header-text/header-text.component.mjs +4 -4
  113. package/esm2022/lib/header/header-toggler/header-toggler.directive.mjs +4 -4
  114. package/esm2022/lib/header/header.module.mjs +5 -5
  115. package/esm2022/lib/image/img.directive.mjs +4 -4
  116. package/esm2022/lib/image/img.module.mjs +5 -5
  117. package/esm2022/lib/list-group/list-group-item.directive.mjs +4 -4
  118. package/esm2022/lib/list-group/list-group.directive.mjs +4 -4
  119. package/esm2022/lib/list-group/list-group.module.mjs +5 -5
  120. package/esm2022/lib/loading-button/loading-button.component.mjs +4 -4
  121. package/esm2022/lib/loading-button/loading-button.module.mjs +5 -5
  122. package/esm2022/lib/modal/modal/modal.component.mjs +4 -4
  123. package/esm2022/lib/modal/modal-body/modal-body.component.mjs +4 -4
  124. package/esm2022/lib/modal/modal-content/modal-content.component.mjs +4 -4
  125. package/esm2022/lib/modal/modal-dialog/modal-dialog.component.mjs +4 -4
  126. package/esm2022/lib/modal/modal-dismiss/modal-toggle.directive.mjs +4 -4
  127. package/esm2022/lib/modal/modal-footer/modal-footer.component.mjs +4 -4
  128. package/esm2022/lib/modal/modal-header/modal-header.component.mjs +4 -4
  129. package/esm2022/lib/modal/modal-title/modal-title.directive.mjs +4 -4
  130. package/esm2022/lib/modal/modal.module.mjs +5 -5
  131. package/esm2022/lib/modal/modal.service.mjs +4 -4
  132. package/esm2022/lib/multi-select/multi-select/multi-select-search.directive.mjs +4 -4
  133. package/esm2022/lib/multi-select/multi-select/multi-select.component.mjs +4 -4
  134. package/esm2022/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs +4 -4
  135. package/esm2022/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.mjs +4 -4
  136. package/esm2022/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.mjs +4 -4
  137. package/esm2022/lib/multi-select/multi-select-option/multi-select-option.component.mjs +4 -4
  138. package/esm2022/lib/multi-select/multi-select-tag/multi-select-tag.component.mjs +4 -4
  139. package/esm2022/lib/multi-select/multi-select.module.mjs +5 -5
  140. package/esm2022/lib/multi-select/multi-select.service.mjs +4 -4
  141. package/esm2022/lib/nav/nav-item.component.mjs +4 -4
  142. package/esm2022/lib/nav/nav-link.directive.mjs +4 -4
  143. package/esm2022/lib/nav/nav.component.mjs +4 -4
  144. package/esm2022/lib/nav/nav.module.mjs +5 -5
  145. package/esm2022/lib/navbar/navbar-brand/navbar-brand.directive.mjs +4 -4
  146. package/esm2022/lib/navbar/navbar-nav/navbar-nav.component.mjs +4 -4
  147. package/esm2022/lib/navbar/navbar-text/navbar-text.component.mjs +4 -4
  148. package/esm2022/lib/navbar/navbar-toggler/navbar-toggler.directive.mjs +4 -4
  149. package/esm2022/lib/navbar/navbar.component.mjs +4 -4
  150. package/esm2022/lib/navbar/navbar.module.mjs +5 -5
  151. package/esm2022/lib/offcanvas/offcanvas/offcanvas.component.mjs +4 -4
  152. package/esm2022/lib/offcanvas/offcanvas-body/offcanvas-body.component.mjs +4 -4
  153. package/esm2022/lib/offcanvas/offcanvas-header/offcanvas-header.component.mjs +4 -4
  154. package/esm2022/lib/offcanvas/offcanvas-title/offcanvas-title.directive.mjs +4 -4
  155. package/esm2022/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.mjs +4 -4
  156. package/esm2022/lib/offcanvas/offcanvas.module.mjs +5 -5
  157. package/esm2022/lib/offcanvas/offcanvas.service.mjs +4 -4
  158. package/esm2022/lib/pagination/page-item/page-item.component.mjs +4 -4
  159. package/esm2022/lib/pagination/page-item/page-item.directive.mjs +4 -4
  160. package/esm2022/lib/pagination/page-link/page-link.directive.mjs +4 -4
  161. package/esm2022/lib/pagination/pagination/pagination.component.mjs +4 -4
  162. package/esm2022/lib/pagination/pagination.module.mjs +5 -5
  163. package/esm2022/lib/placeholder/placeholder-animation.directive.mjs +4 -4
  164. package/esm2022/lib/placeholder/placeholder.directive.mjs +4 -4
  165. package/esm2022/lib/placeholder/placeholder.module.mjs +5 -5
  166. package/esm2022/lib/popover/popover/popover.component.mjs +4 -4
  167. package/esm2022/lib/popover/popover.directive.mjs +4 -4
  168. package/esm2022/lib/popover/popover.module.mjs +5 -5
  169. package/esm2022/lib/progress/progress-bar.component.mjs +4 -4
  170. package/esm2022/lib/progress/progress-bar.directive.mjs +4 -4
  171. package/esm2022/lib/progress/progress-stacked.component.mjs +4 -4
  172. package/esm2022/lib/progress/progress.component.mjs +4 -4
  173. package/esm2022/lib/progress/progress.module.mjs +5 -5
  174. package/esm2022/lib/rating/rating-item-label/rating-item-label.component.mjs +4 -4
  175. package/esm2022/lib/rating/rating.component.mjs +4 -4
  176. package/esm2022/lib/rating/rating.module.mjs +5 -5
  177. package/esm2022/lib/services/class-toggle.service.mjs +4 -4
  178. package/esm2022/lib/services/color-mode.service.mjs +4 -4
  179. package/esm2022/lib/services/in-memory-storage.service.mjs +4 -4
  180. package/esm2022/lib/services/intersection.service.mjs +4 -4
  181. package/esm2022/lib/services/listeners.service.mjs +4 -4
  182. package/esm2022/lib/services/local-storage.service.mjs +4 -4
  183. package/esm2022/lib/shared/element-ref.directive.mjs +4 -4
  184. package/esm2022/lib/shared/html-attr.directive.mjs +4 -4
  185. package/esm2022/lib/shared/shared.module.mjs +5 -5
  186. package/esm2022/lib/shared/template-id.directive.mjs +4 -4
  187. package/esm2022/lib/shared/theme.directive.mjs +4 -4
  188. package/esm2022/lib/sidebar/sidebar/sidebar.component.mjs +4 -4
  189. package/esm2022/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.mjs +4 -4
  190. package/esm2022/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +4 -4
  191. package/esm2022/lib/sidebar/sidebar-footer/sidebar-footer.component.mjs +4 -4
  192. package/esm2022/lib/sidebar/sidebar-header/sidebar-header.component.mjs +4 -4
  193. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.mjs +4 -4
  194. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.mjs +4 -4
  195. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-group.service.mjs +4 -4
  196. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.mjs +4 -4
  197. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.mjs +4 -4
  198. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +4 -4
  199. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +7 -7
  200. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.mjs +4 -4
  201. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-title.component.mjs +4 -4
  202. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +13 -15
  203. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.service.mjs +7 -7
  204. package/esm2022/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.mjs +4 -4
  205. package/esm2022/lib/sidebar/sidebar-toggler/sidebar-toggler.directive.mjs +4 -4
  206. package/esm2022/lib/sidebar/sidebar.module.mjs +5 -5
  207. package/esm2022/lib/sidebar/sidebar.service.mjs +4 -4
  208. package/esm2022/lib/smart-pagination/smart-pagination.component.mjs +4 -4
  209. package/esm2022/lib/smart-pagination/smart-pagination.module.mjs +5 -5
  210. package/esm2022/lib/smart-table/smart-table/smart-table.component.mjs +4 -4
  211. package/esm2022/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.mjs +4 -4
  212. package/esm2022/lib/smart-table/smart-table-filter/filter-input.directive.mjs +4 -4
  213. package/esm2022/lib/smart-table/smart-table-filter/smart-table-filter.component.mjs +4 -4
  214. package/esm2022/lib/smart-table/smart-table-head/smart-table-column-label.pipe.mjs +4 -4
  215. package/esm2022/lib/smart-table/smart-table-head/smart-table-head.component.mjs +4 -4
  216. package/esm2022/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.mjs +4 -4
  217. package/esm2022/lib/smart-table/smart-table.module.mjs +5 -5
  218. package/esm2022/lib/spinner/spinner.component.mjs +4 -4
  219. package/esm2022/lib/spinner/spinner.module.mjs +5 -5
  220. package/esm2022/lib/table/table-active.directive.mjs +4 -4
  221. package/esm2022/lib/table/table-color.directive.mjs +4 -4
  222. package/esm2022/lib/table/table.directive.mjs +4 -4
  223. package/esm2022/lib/table/table.module.mjs +5 -5
  224. package/esm2022/lib/tabs/tab-content/tab-content.component.mjs +4 -4
  225. package/esm2022/lib/tabs/tab-content-ref.directive.mjs +17 -6
  226. package/esm2022/lib/tabs/tab-pane/tab-pane.component.mjs +12 -6
  227. package/esm2022/lib/tabs/tab.service.mjs +4 -4
  228. package/esm2022/lib/tabs/tabs.module.mjs +5 -5
  229. package/esm2022/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.mjs +7 -7
  230. package/esm2022/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.mjs +7 -7
  231. package/esm2022/lib/time-picker/time-picker.component.mjs +4 -4
  232. package/esm2022/lib/time-picker/time-picker.module.mjs +5 -5
  233. package/esm2022/lib/toast/toast/toast.component.mjs +4 -4
  234. package/esm2022/lib/toast/toast-body/toast-body.component.mjs +4 -4
  235. package/esm2022/lib/toast/toast-close.directive.mjs +4 -4
  236. package/esm2022/lib/toast/toast-header/toast-header.component.mjs +4 -4
  237. package/esm2022/lib/toast/toast.module.mjs +5 -5
  238. package/esm2022/lib/toast/toaster/toaster-host.directive.mjs +4 -4
  239. package/esm2022/lib/toast/toaster/toaster.component.mjs +4 -4
  240. package/esm2022/lib/toast/toaster/toaster.service.mjs +4 -4
  241. package/esm2022/lib/tooltip/tooltip/tooltip.component.mjs +4 -4
  242. package/esm2022/lib/tooltip/tooltip.directive.mjs +4 -4
  243. package/esm2022/lib/tooltip/tooltip.module.mjs +5 -5
  244. package/esm2022/lib/utilities/align.directive.mjs +4 -4
  245. package/esm2022/lib/utilities/bg-color.directive.mjs +4 -4
  246. package/esm2022/lib/utilities/border.directive.mjs +4 -4
  247. package/esm2022/lib/utilities/rounded.directive.mjs +4 -4
  248. package/esm2022/lib/utilities/shadow-on-scroll.directive.mjs +4 -4
  249. package/esm2022/lib/utilities/text-bg-color.directive.mjs +4 -4
  250. package/esm2022/lib/utilities/text-color.directive.mjs +4 -4
  251. package/esm2022/lib/utilities/utilities.module.mjs +5 -5
  252. package/esm2022/lib/widget/widget-stat-a/widget-stat-a.component.mjs +4 -4
  253. package/esm2022/lib/widget/widget-stat-b/widget-stat-b.component.mjs +4 -4
  254. package/esm2022/lib/widget/widget-stat-c/widget-stat-c.component.mjs +4 -4
  255. package/esm2022/lib/widget/widget-stat-d/widget-stat-d.component.mjs +4 -4
  256. package/esm2022/lib/widget/widget-stat-e/widget-stat-e.component.mjs +4 -4
  257. package/esm2022/lib/widget/widget-stat-f/widget-stat-f.component.mjs +4 -4
  258. package/esm2022/lib/widget/widget.module.mjs +5 -5
  259. package/fesm2022/coreui-angular-pro.mjs +920 -882
  260. package/fesm2022/coreui-angular-pro.mjs.map +1 -1
  261. package/lib/avatar/avatar.component.d.ts +6 -2
  262. package/lib/dropdown/dropdown/dropdown.component.d.ts +9 -7
  263. package/lib/footer/footer.component.d.ts +1 -1
  264. package/lib/header/header/header.component.d.ts +1 -1
  265. package/lib/sidebar/sidebar-nav/sidebar-nav.component.d.ts +1 -1
  266. package/lib/tabs/tab-content-ref.directive.d.ts +3 -1
  267. package/lib/tabs/tab-pane/tab-pane.component.d.ts +2 -1
  268. package/package.json +4 -4
@@ -46,8 +46,8 @@ export class DatePickerComponent extends DateRangePickerComponent {
46
46
  subscription?.unsubscribe();
47
47
  });
48
48
  }
49
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DatePickerComponent, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: DatePickerComponent, isStandalone: true, selector: "c-date-picker", inputs: { placeholder: "placeholder", date: "date" }, outputs: { startDateChange: "dateChange" }, providers: [
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: DatePickerComponent, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: DatePickerComponent, isStandalone: true, selector: "c-date-picker", inputs: { placeholder: "placeholder", date: "date" }, outputs: { startDateChange: "dateChange" }, providers: [
51
51
  {
52
52
  provide: NG_VALUE_ACCESSOR,
53
53
  useExisting: forwardRef(() => DatePickerComponent),
@@ -55,7 +55,7 @@ export class DatePickerComponent extends DateRangePickerComponent {
55
55
  }
56
56
  ], exportAs: ["cDatePicker"], usesInheritance: true, ngImport: i0, template: "<c-dropdown #dropdown=\"cDropdown\" [autoClose]=\"'outside'\" class=\"date-picker picker\" [ngClass]=\"datePickerClasses\"\n [(visible)]=\"visible\" [popperOptions]=\"popperjsOptions\">\n <div [caret]=\"false\"\n [disabled]=\"disabled ?? dropdown.visible\"\n cDropdownToggle\n class=\"date-picker-input-group\"\n >\n <input #startDateElementRef\n (change)=\"handleStartDateInputChange($event)\"\n [attr.tabindex]=\"disabled ? -1 : 0\"\n [formControl]=\"startDateInput\"\n [ngClass]=\"{hover: !!inputStartHoverValue}\"\n [placeholder]=\"startDatePlaceholder\"\n [readonly]=\"inputReadOnly ?? null\"\n [valid]=\"range ? undefined : valid\"\n cFormControl\n class=\"date-picker-input\"\n pattern=\"[1-9]*\"\n >\n @if (range && separator !== false) {\n <div class=\"date-picker-separator\"></div>\n }\n @if (range) {\n <input #endDateElementRef\n (change)=\"handleEndDateInputChange($event)\"\n [attr.tabindex]=\"disabled ? -1 : 0\"\n [formControl]=\"endDateInput\"\n [ngClass]=\"{hover: !!inputEndHoverValue}\"\n [placeholder]=\"endDatePlaceholder\"\n [readonly]=\"inputReadOnly ?? null\"\n [valid]=\"valid ?? undefined\"\n cFormControl\n class=\"date-picker-input\"\n pattern=\"[1-9]*\"\n >\n }\n @if (indicator) {\n <div class=\"date-picker-indicator\"></div>\n }\n @if (cleaner && startDateElementRef.value && !disabled) {\n <div (click)=\"!disabled && handleClear($event)\" class=\"date-picker-cleaner\" role=\"button\"></div>\n }\n </div>\n <div cDropdownMenu class=\"date-picker-dropdown py-0\">\n <div class=\"date-picker-body\">\n @if (!showRanges) {\n @if (ranges && customRanges.length > 0) {\n <div class=\"date-picker-ranges\">\n @for (customRange of customRanges; track customRange) {\n <button (click)=\"setCustomRange(customRange)\"\n [color]=\"rangesButtonsColor\"\n [size]=\"rangesButtonsSize\"\n [variant]=\"rangesButtonsVariant\"\n cButton>\n {{ customRange | customRangeKey }}\n </button>\n }\n </div>\n }\n }\n <c-calendar\n (calendarCellHover)=\"handleCalendarCellHover($event)\"\n (calendarDateChange)=\"handleCalendarDateChange($event)\"\n (endDateChange)=\"handleEndDateChange($event)\"\n (startDateChange)=\"handleStartDateChange($event)\"\n [calendarDate]=\"calendarDate\"\n [calendars]=\"isMobile ? 1 : calendars\"\n [dateFilter]=\"dateFilter\"\n [disabledDates]=\"disabledDates\"\n [endDate]=\"endDate\"\n [firstDayOfWeek]=\"firstDayOfWeek\"\n [locale]=\"locale\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [navigation]=\"navigation\"\n [range]=\"range\"\n [startDate]=\"startDate\"\n [navYearFirst]=\"navYearFirst\"\n [dayFormat]=\"dayFormat\"\n [weekdayFormat]=\"weekdayFormat\"\n [selectAdjacentDays]=\"selectAdjacentDays\"\n [showAdjacentDays]=\"showAdjacentDays\"\n [showWeekNumber]=\"showWeekNumber\"\n [selectionType]=\"selectionType\"\n [weekNumbersLabel]=\"weekNumbersLabel\"\n class=\"date-picker-calendars\"\n />\n @if (false && timepicker) {\n <div class=\"date-picker-timepickers\">\n <!-- todo-->\n <c-time-picker\n variant=\"select\"\n [locale]=\"locale\"\n [disabled]=\"!startDate\"\n [time]=\"startDate ?? undefined\"\n (timeChange)=\"handleStartTimeChange($event)\"\n />\n @if (range) {\n <c-time-picker\n variant=\"select\"\n [locale]=\"locale\"\n [disabled]=\"!endDate\"\n [time]=\"endDate ?? undefined\"\n (timeChange)=\"handleEndTimeChange($event)\"\n />\n }\n </div>\n }\n </div>\n @if (templates?.datePickerFooter) {\n <div class=\"date-picker-footer\">\n <ng-container *ngTemplateOutlet=\"templates?.datePickerFooter; context: {$implicit: dropdown}\" />\n </div>\n }\n </div>\n <ng-content />\n</c-dropdown>\n", styles: [".form-control.date-picker-input:focus{box-shadow:0 0}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: CalendarComponent, selector: "c-calendar", inputs: ["calendarDate", "calendars", "dayFormat", "disabledDates", "startDate", "endDate", "firstDayOfWeek", "locale", "maxDate", "minDate", "navigation", "navYearFirst", "range", "view", "weekdayFormat", "dateFilter", "selectAdjacentDays", "showAdjacentDays", "selectionType", "showWeekNumber", "weekNumbersLabel"], outputs: ["calendarCellHover", "calendarDateChange", "endDateChange", "startDateChange", "viewChange"], exportAs: ["cCalendar"] }, { kind: "component", type: TimePickerComponent, selector: "c-time-picker", inputs: ["cleaner", "dateTimeFormatOptions", "disabled", "filterHours", "filterMinutes", "filterSeconds", "indicator", "inputReadOnly", "locale", "placeholder", "seconds", "size", "time", "variant", "valid", "visible"], outputs: ["timeChange"], exportAs: ["cTimePicker"] }, { kind: "directive", type: ButtonDirective, selector: "[cButton]", inputs: ["active", "color", "disabled", "shape", "size", "type", "variant"], exportAs: ["cButton"] }, { kind: "component", type: DropdownComponent, selector: "c-dropdown", inputs: ["alignment", "autoClose", "direction", "placement", "popper", "popperOptions", "variant", "visible"], outputs: ["visibleChange"], exportAs: ["cDropdown"] }, { kind: "directive", type: DropdownToggleDirective, selector: "[cDropdownToggle]", inputs: ["dropdownComponent", "disabled", "caret", "split"], exportAs: ["cDropdownToggle"] }, { kind: "directive", type: DropdownMenuDirective, selector: "[cDropdownMenu]", inputs: ["alignment", "visible"], exportAs: ["cDropdownMenu"] }, { kind: "directive", type: FormControlDirective, selector: "input[cFormControl], textarea[cFormControl]", inputs: ["sizing", "valid", "type", "plaintext"] }, { kind: "pipe", type: CustomRangeKeyPipe, name: "customRangeKey" }] }); }
57
57
  }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DatePickerComponent, decorators: [{
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: DatePickerComponent, decorators: [{
59
59
  type: Component,
60
60
  args: [{ selector: 'c-date-picker', exportAs: 'cDatePicker', standalone: true, imports: [
61
61
  NgClass,
@@ -86,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
86
86
  }], date: [{
87
87
  type: Input
88
88
  }] } });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2RhdGUtcmFuZ2UtcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7O0FBOEJsRyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsd0JBQXdCO0lBRS9ELFlBQ0Usa0JBQXNDO1FBRXRDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBR1YsZ0JBQVcsR0FBVyxhQUFhLENBQUM7UUFFdEQsNERBQTREO1FBQzdCLG9CQUFlLEdBQThCLElBQUksWUFBWSxFQUFlLENBQUM7UUFFMUYsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUVkLGNBQVMsR0FBRyxDQUFDLENBQUM7SUFUaEMsQ0FBQztJQVdELElBQWEsT0FBTztRQUNsQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQ0ksSUFBSSxDQUFDLEtBQThCO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxhQUFhO0lBQ0osVUFBVSxDQUFDLEtBQThCO1FBQ2hELElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNuRixDQUFDO0lBRVEsbUJBQW1CLENBQUMsWUFBcUIsSUFBSTtRQUNwRCxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDdEUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNKLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNsRCxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQS9DVSxtQkFBbUI7a0dBQW5CLG1CQUFtQiw4SkFSaEI7WUFDWjtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2dCQUNsRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsNEVDdkNILDY0SUFxSEEsaUhEakdJLE9BQU8sb0ZBQ1AsZ0JBQWdCLG1KQUNoQixtQkFBbUIsbXVCQUNuQixpQkFBaUIsc2ZBQ2pCLG1CQUFtQiwwVUFDbkIsZUFBZSwwSkFDZixpQkFBaUIsMk5BQ2pCLHVCQUF1QiwwSkFDdkIscUJBQXFCLDJIQUVyQixvQkFBb0IscUlBRXBCLGtCQUFrQjs7MkZBU1QsbUJBQW1CO2tCQTVCL0IsU0FBUzsrQkFDRSxlQUFlLFlBR2YsYUFBYSxjQUNYLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsdUJBQXVCO3dCQUN2QixrQkFBa0I7cUJBQ25CLGFBQWE7d0JBQ1o7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUM7NEJBQ2xELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3VGQVVpQixXQUFXO3NCQUE1QixLQUFLO2dCQUd5QixlQUFlO3NCQUE3QyxNQUFNO3VCQUFDLFlBQVk7Z0JBZWhCLElBQUk7c0JBRFAsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5cbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL2J1dHRvbic7XG5pbXBvcnQgeyBEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9kYXRlLXJhbmdlLXBpY2tlcic7XG5pbXBvcnQgeyBDYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4uL2NhbGVuZGFyJztcbmltcG9ydCB7IERyb3Bkb3duQ29tcG9uZW50LCBEcm9wZG93bk1lbnVEaXJlY3RpdmUsIERyb3Bkb3duVG9nZ2xlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZHJvcGRvd24nO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xEaXJlY3RpdmUsIElucHV0R3JvdXBDb21wb25lbnQsIElucHV0R3JvdXBUZXh0RGlyZWN0aXZlIH0gZnJvbSAnLi4vZm9ybSc7XG5pbXBvcnQgeyBUaW1lUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vdGltZS1waWNrZXInO1xuaW1wb3J0IHsgQ3VzdG9tUmFuZ2VLZXlQaXBlIH0gZnJvbSAnLi4vZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIvY3VzdG9tLXJhbmdlLWtleS5waXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYy1kYXRlLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi4vZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi4vZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdjRGF0ZVBpY2tlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0NsYXNzLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBDYWxlbmRhckNvbXBvbmVudCxcbiAgICBUaW1lUGlja2VyQ29tcG9uZW50LFxuICAgIEJ1dHRvbkRpcmVjdGl2ZSxcbiAgICBEcm9wZG93bkNvbXBvbmVudCxcbiAgICBEcm9wZG93blRvZ2dsZURpcmVjdGl2ZSxcbiAgICBEcm9wZG93bk1lbnVEaXJlY3RpdmUsXG4gICAgSW5wdXRHcm91cENvbXBvbmVudCxcbiAgICBGb3JtQ29udHJvbERpcmVjdGl2ZSxcbiAgICBJbnB1dEdyb3VwVGV4dERpcmVjdGl2ZSxcbiAgICBDdXN0b21SYW5nZUtleVBpcGVcbiAgXSwgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlUGlja2VyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyXG4gICkge1xuICAgIHN1cGVyKGJyZWFrcG9pbnRPYnNlcnZlcik7XG4gIH1cblxuICBASW5wdXQoKSBvdmVycmlkZSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NlbGVjdCBkYXRlJztcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1yZW5hbWVcbiAgQE91dHB1dCgnZGF0ZUNoYW5nZScpIG92ZXJyaWRlIHN0YXJ0RGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGUgfCBudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+KCk7XG5cbiAgb3ZlcnJpZGUgcmVhZG9ubHkgcmFuZ2UgPSBmYWxzZTtcblxuICBvdmVycmlkZSByZWFkb25seSBjYWxlbmRhcnMgPSAxO1xuXG4gIG92ZXJyaWRlIGdldCBlbmREYXRlKCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZ2V0IGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnREYXRlO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGRhdGUodmFsdWU6IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5zdGFydERhdGUgPSB2YWx1ZTtcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGUgPSB2YWx1ZTtcbiAgICB0aGlzLnN0YXJ0RGF0ZVZhbHVlID0gdGhpcy5kYXRlID8gdGhpcy5kYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyh0aGlzLmxvY2FsZSkgOiAnJztcbiAgfVxuXG4gIG92ZXJyaWRlIHN1YnNjcmliZURhdGVDaGFuZ2Uoc3Vic2NyaWJlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIGlmIChzdWJzY3JpYmUpIHtcbiAgICAgIHRoaXMuZGF0ZUNoYW5nZVN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnN0YXJ0RGF0ZUNoYW5nZS5zdWJzY3JpYmUobmV4dCA9PiB7XG4gICAgICAgIHRoaXMuZGF0ZSA9IG5leHQ7XG4gICAgICAgIHRoaXMub25DaGFuZ2UobmV4dCk7XG4gICAgICB9KSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGF0ZUNoYW5nZVN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4ge1xuICAgICAgc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8Yy1kcm9wZG93biAjZHJvcGRvd249XCJjRHJvcGRvd25cIiBbYXV0b0Nsb3NlXT1cIidvdXRzaWRlJ1wiIGNsYXNzPVwiZGF0ZS1waWNrZXIgcGlja2VyXCIgW25nQ2xhc3NdPVwiZGF0ZVBpY2tlckNsYXNzZXNcIlxuICAgICAgICAgICAgWyh2aXNpYmxlKV09XCJ2aXNpYmxlXCIgW3BvcHBlck9wdGlvbnNdPVwicG9wcGVyanNPcHRpb25zXCI+XG4gIDxkaXYgW2NhcmV0XT1cImZhbHNlXCJcbiAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgPz8gZHJvcGRvd24udmlzaWJsZVwiXG4gICAgICAgY0Ryb3Bkb3duVG9nZ2xlXG4gICAgICAgY2xhc3M9XCJkYXRlLXBpY2tlci1pbnB1dC1ncm91cFwiXG4gID5cbiAgICA8aW5wdXQgI3N0YXJ0RGF0ZUVsZW1lbnRSZWZcbiAgICAgICAgICAgKGNoYW5nZSk9XCJoYW5kbGVTdGFydERhdGVJbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiZGlzYWJsZWQgPyAtMSA6IDBcIlxuICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic3RhcnREYXRlSW5wdXRcIlxuICAgICAgICAgICBbbmdDbGFzc109XCJ7aG92ZXI6ICEhaW5wdXRTdGFydEhvdmVyVmFsdWV9XCJcbiAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInN0YXJ0RGF0ZVBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgW3JlYWRvbmx5XT1cImlucHV0UmVhZE9ubHkgPz8gbnVsbFwiXG4gICAgICAgICAgIFt2YWxpZF09XCJyYW5nZSA/IHVuZGVmaW5lZCA6IHZhbGlkXCJcbiAgICAgICAgICAgY0Zvcm1Db250cm9sXG4gICAgICAgICAgIGNsYXNzPVwiZGF0ZS1waWNrZXItaW5wdXRcIlxuICAgICAgICAgICBwYXR0ZXJuPVwiWzEtOV0qXCJcbiAgICA+XG4gICAgQGlmIChyYW5nZSAmJiBzZXBhcmF0b3IgIT09IGZhbHNlKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1waWNrZXItc2VwYXJhdG9yXCI+PC9kaXY+XG4gICAgfVxuICAgIEBpZiAocmFuZ2UpIHtcbiAgICAgIDxpbnB1dCAjZW5kRGF0ZUVsZW1lbnRSZWZcbiAgICAgICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUVuZERhdGVJbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJkaXNhYmxlZCA/IC0xIDogMFwiXG4gICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImVuZERhdGVJbnB1dFwiXG4gICAgICAgICAgICAgW25nQ2xhc3NdPVwie2hvdmVyOiAhIWlucHV0RW5kSG92ZXJWYWx1ZX1cIlxuICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJlbmREYXRlUGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgIFtyZWFkb25seV09XCJpbnB1dFJlYWRPbmx5ID8/IG51bGxcIlxuICAgICAgICAgICAgIFt2YWxpZF09XCJ2YWxpZCA/PyB1bmRlZmluZWRcIlxuICAgICAgICAgICAgIGNGb3JtQ29udHJvbFxuICAgICAgICAgICAgIGNsYXNzPVwiZGF0ZS1waWNrZXItaW5wdXRcIlxuICAgICAgICAgICAgIHBhdHRlcm49XCJbMS05XSpcIlxuICAgICAgPlxuICAgIH1cbiAgICBAaWYgKGluZGljYXRvcikge1xuICAgICAgPGRpdiBjbGFzcz1cImRhdGUtcGlja2VyLWluZGljYXRvclwiPjwvZGl2PlxuICAgIH1cbiAgICBAaWYgKGNsZWFuZXIgJiYgc3RhcnREYXRlRWxlbWVudFJlZi52YWx1ZSAmJiAhZGlzYWJsZWQpIHtcbiAgICAgIDxkaXYgKGNsaWNrKT1cIiFkaXNhYmxlZCAmJiBoYW5kbGVDbGVhcigkZXZlbnQpXCIgY2xhc3M9XCJkYXRlLXBpY2tlci1jbGVhbmVyXCIgcm9sZT1cImJ1dHRvblwiPjwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG4gIDxkaXYgY0Ryb3Bkb3duTWVudSBjbGFzcz1cImRhdGUtcGlja2VyLWRyb3Bkb3duIHB5LTBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1waWNrZXItYm9keVwiPlxuICAgICAgQGlmICghc2hvd1Jhbmdlcykge1xuICAgICAgICBAaWYgKHJhbmdlcyAmJiBjdXN0b21SYW5nZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlLXBpY2tlci1yYW5nZXNcIj5cbiAgICAgICAgICAgIEBmb3IgKGN1c3RvbVJhbmdlIG9mIGN1c3RvbVJhbmdlczsgdHJhY2sgY3VzdG9tUmFuZ2UpIHtcbiAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic2V0Q3VzdG9tUmFuZ2UoY3VzdG9tUmFuZ2UpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwicmFuZ2VzQnV0dG9uc0NvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCJyYW5nZXNCdXR0b25zU2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhcmlhbnRdPVwicmFuZ2VzQnV0dG9uc1ZhcmlhbnRcIlxuICAgICAgICAgICAgICAgICAgICAgIGNCdXR0b24+XG4gICAgICAgICAgICAgICAge3sgY3VzdG9tUmFuZ2UgfCBjdXN0b21SYW5nZUtleSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgPGMtY2FsZW5kYXJcbiAgICAgICAgKGNhbGVuZGFyQ2VsbEhvdmVyKT1cImhhbmRsZUNhbGVuZGFyQ2VsbEhvdmVyKCRldmVudClcIlxuICAgICAgICAoY2FsZW5kYXJEYXRlQ2hhbmdlKT1cImhhbmRsZUNhbGVuZGFyRGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGVuZERhdGVDaGFuZ2UpPVwiaGFuZGxlRW5kRGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKHN0YXJ0RGF0ZUNoYW5nZSk9XCJoYW5kbGVTdGFydERhdGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtjYWxlbmRhckRhdGVdPVwiY2FsZW5kYXJEYXRlXCJcbiAgICAgICAgW2NhbGVuZGFyc109XCJpc01vYmlsZSA/IDEgOiBjYWxlbmRhcnNcIlxuICAgICAgICBbZGF0ZUZpbHRlcl09XCJkYXRlRmlsdGVyXCJcbiAgICAgICAgW2Rpc2FibGVkRGF0ZXNdPVwiZGlzYWJsZWREYXRlc1wiXG4gICAgICAgIFtlbmREYXRlXT1cImVuZERhdGVcIlxuICAgICAgICBbZmlyc3REYXlPZldlZWtdPVwiZmlyc3REYXlPZldlZWtcIlxuICAgICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXG4gICAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIlxuICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgW25hdmlnYXRpb25dPVwibmF2aWdhdGlvblwiXG4gICAgICAgIFtyYW5nZV09XCJyYW5nZVwiXG4gICAgICAgIFtzdGFydERhdGVdPVwic3RhcnREYXRlXCJcbiAgICAgICAgW25hdlllYXJGaXJzdF09XCJuYXZZZWFyRmlyc3RcIlxuICAgICAgICBbZGF5Rm9ybWF0XT1cImRheUZvcm1hdFwiXG4gICAgICAgIFt3ZWVrZGF5Rm9ybWF0XT1cIndlZWtkYXlGb3JtYXRcIlxuICAgICAgICBbc2VsZWN0QWRqYWNlbnREYXlzXT1cInNlbGVjdEFkamFjZW50RGF5c1wiXG4gICAgICAgIFtzaG93QWRqYWNlbnREYXlzXT1cInNob3dBZGphY2VudERheXNcIlxuICAgICAgICBbc2hvd1dlZWtOdW1iZXJdPVwic2hvd1dlZWtOdW1iZXJcIlxuICAgICAgICBbc2VsZWN0aW9uVHlwZV09XCJzZWxlY3Rpb25UeXBlXCJcbiAgICAgICAgW3dlZWtOdW1iZXJzTGFiZWxdPVwid2Vla051bWJlcnNMYWJlbFwiXG4gICAgICAgIGNsYXNzPVwiZGF0ZS1waWNrZXItY2FsZW5kYXJzXCJcbiAgICAgIC8+XG4gICAgICBAaWYgKGZhbHNlICYmIHRpbWVwaWNrZXIpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtcGlja2VyLXRpbWVwaWNrZXJzXCI+XG4gICAgICAgICAgPCEtLSB0b2RvLS0+XG4gICAgICAgICAgPGMtdGltZS1waWNrZXJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJzZWxlY3RcIlxuICAgICAgICAgICAgW2xvY2FsZV09XCJsb2NhbGVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGFydERhdGVcIlxuICAgICAgICAgICAgW3RpbWVdPVwic3RhcnREYXRlID8/IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAodGltZUNoYW5nZSk9XCJoYW5kbGVTdGFydFRpbWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICBAaWYgKHJhbmdlKSB7XG4gICAgICAgICAgICA8Yy10aW1lLXBpY2tlclxuICAgICAgICAgICAgICB2YXJpYW50PVwic2VsZWN0XCJcbiAgICAgICAgICAgICAgW2xvY2FsZV09XCJsb2NhbGVcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVuZERhdGVcIlxuICAgICAgICAgICAgICBbdGltZV09XCJlbmREYXRlID8/IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgICh0aW1lQ2hhbmdlKT1cImhhbmRsZUVuZFRpbWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgQGlmICh0ZW1wbGF0ZXM/LmRhdGVQaWNrZXJGb290ZXIpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRlLXBpY2tlci1mb290ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlcz8uZGF0ZVBpY2tlckZvb3RlcjsgY29udGV4dDogeyRpbXBsaWNpdDogZHJvcGRvd259XCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG4gIDxuZy1jb250ZW50IC8+XG48L2MtZHJvcGRvd24+XG4iXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2RhdGUtcmFuZ2UtcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7O0FBOEJsRyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsd0JBQXdCO0lBRS9ELFlBQ0Usa0JBQXNDO1FBRXRDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBR1YsZ0JBQVcsR0FBVyxhQUFhLENBQUM7UUFFdEQsNERBQTREO1FBQzdCLG9CQUFlLEdBQThCLElBQUksWUFBWSxFQUFlLENBQUM7UUFFMUYsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUVkLGNBQVMsR0FBRyxDQUFDLENBQUM7SUFUaEMsQ0FBQztJQVdELElBQWEsT0FBTztRQUNsQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQ0ksSUFBSSxDQUFDLEtBQThCO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxhQUFhO0lBQ0osVUFBVSxDQUFDLEtBQThCO1FBQ2hELElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNuRixDQUFDO0lBRVEsbUJBQW1CLENBQUMsWUFBcUIsSUFBSTtRQUNwRCxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDdEUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNKLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNsRCxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQS9DVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiw4SkFSaEI7WUFDWjtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2dCQUNsRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsNEVDdkNILDY0SUFxSEEsaUhEakdJLE9BQU8sb0ZBQ1AsZ0JBQWdCLG1KQUNoQixtQkFBbUIsbXVCQUNuQixpQkFBaUIsc2ZBQ2pCLG1CQUFtQiwwVUFDbkIsZUFBZSwwSkFDZixpQkFBaUIsMk5BQ2pCLHVCQUF1QiwwSkFDdkIscUJBQXFCLDJIQUVyQixvQkFBb0IscUlBRXBCLGtCQUFrQjs7NEZBU1QsbUJBQW1CO2tCQTVCL0IsU0FBUzsrQkFDRSxlQUFlLFlBR2YsYUFBYSxjQUNYLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsdUJBQXVCO3dCQUN2QixrQkFBa0I7cUJBQ25CLGFBQWE7d0JBQ1o7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUM7NEJBQ2xELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3VGQVVpQixXQUFXO3NCQUE1QixLQUFLO2dCQUd5QixlQUFlO3NCQUE3QyxNQUFNO3VCQUFDLFlBQVk7Z0JBZWhCLElBQUk7c0JBRFAsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5cbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL2J1dHRvbic7XG5pbXBvcnQgeyBEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9kYXRlLXJhbmdlLXBpY2tlcic7XG5pbXBvcnQgeyBDYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4uL2NhbGVuZGFyJztcbmltcG9ydCB7IERyb3Bkb3duQ29tcG9uZW50LCBEcm9wZG93bk1lbnVEaXJlY3RpdmUsIERyb3Bkb3duVG9nZ2xlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZHJvcGRvd24nO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xEaXJlY3RpdmUsIElucHV0R3JvdXBDb21wb25lbnQsIElucHV0R3JvdXBUZXh0RGlyZWN0aXZlIH0gZnJvbSAnLi4vZm9ybSc7XG5pbXBvcnQgeyBUaW1lUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vdGltZS1waWNrZXInO1xuaW1wb3J0IHsgQ3VzdG9tUmFuZ2VLZXlQaXBlIH0gZnJvbSAnLi4vZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIvY3VzdG9tLXJhbmdlLWtleS5waXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYy1kYXRlLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi4vZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi4vZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdjRGF0ZVBpY2tlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0NsYXNzLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBDYWxlbmRhckNvbXBvbmVudCxcbiAgICBUaW1lUGlja2VyQ29tcG9uZW50LFxuICAgIEJ1dHRvbkRpcmVjdGl2ZSxcbiAgICBEcm9wZG93bkNvbXBvbmVudCxcbiAgICBEcm9wZG93blRvZ2dsZURpcmVjdGl2ZSxcbiAgICBEcm9wZG93bk1lbnVEaXJlY3RpdmUsXG4gICAgSW5wdXRHcm91cENvbXBvbmVudCxcbiAgICBGb3JtQ29udHJvbERpcmVjdGl2ZSxcbiAgICBJbnB1dEdyb3VwVGV4dERpcmVjdGl2ZSxcbiAgICBDdXN0b21SYW5nZUtleVBpcGVcbiAgXSwgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlUGlja2VyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyXG4gICkge1xuICAgIHN1cGVyKGJyZWFrcG9pbnRPYnNlcnZlcik7XG4gIH1cblxuICBASW5wdXQoKSBvdmVycmlkZSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NlbGVjdCBkYXRlJztcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1yZW5hbWVcbiAgQE91dHB1dCgnZGF0ZUNoYW5nZScpIG92ZXJyaWRlIHN0YXJ0RGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGUgfCBudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+KCk7XG5cbiAgb3ZlcnJpZGUgcmVhZG9ubHkgcmFuZ2UgPSBmYWxzZTtcblxuICBvdmVycmlkZSByZWFkb25seSBjYWxlbmRhcnMgPSAxO1xuXG4gIG92ZXJyaWRlIGdldCBlbmREYXRlKCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZ2V0IGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnREYXRlO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGRhdGUodmFsdWU6IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5zdGFydERhdGUgPSB2YWx1ZTtcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGUgPSB2YWx1ZTtcbiAgICB0aGlzLnN0YXJ0RGF0ZVZhbHVlID0gdGhpcy5kYXRlID8gdGhpcy5kYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyh0aGlzLmxvY2FsZSkgOiAnJztcbiAgfVxuXG4gIG92ZXJyaWRlIHN1YnNjcmliZURhdGVDaGFuZ2Uoc3Vic2NyaWJlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIGlmIChzdWJzY3JpYmUpIHtcbiAgICAgIHRoaXMuZGF0ZUNoYW5nZVN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnN0YXJ0RGF0ZUNoYW5nZS5zdWJzY3JpYmUobmV4dCA9PiB7XG4gICAgICAgIHRoaXMuZGF0ZSA9IG5leHQ7XG4gICAgICAgIHRoaXMub25DaGFuZ2UobmV4dCk7XG4gICAgICB9KSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGF0ZUNoYW5nZVN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4ge1xuICAgICAgc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8Yy1kcm9wZG93biAjZHJvcGRvd249XCJjRHJvcGRvd25cIiBbYXV0b0Nsb3NlXT1cIidvdXRzaWRlJ1wiIGNsYXNzPVwiZGF0ZS1waWNrZXIgcGlja2VyXCIgW25nQ2xhc3NdPVwiZGF0ZVBpY2tlckNsYXNzZXNcIlxuICAgICAgICAgICAgWyh2aXNpYmxlKV09XCJ2aXNpYmxlXCIgW3BvcHBlck9wdGlvbnNdPVwicG9wcGVyanNPcHRpb25zXCI+XG4gIDxkaXYgW2NhcmV0XT1cImZhbHNlXCJcbiAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgPz8gZHJvcGRvd24udmlzaWJsZVwiXG4gICAgICAgY0Ryb3Bkb3duVG9nZ2xlXG4gICAgICAgY2xhc3M9XCJkYXRlLXBpY2tlci1pbnB1dC1ncm91cFwiXG4gID5cbiAgICA8aW5wdXQgI3N0YXJ0RGF0ZUVsZW1lbnRSZWZcbiAgICAgICAgICAgKGNoYW5nZSk9XCJoYW5kbGVTdGFydERhdGVJbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiZGlzYWJsZWQgPyAtMSA6IDBcIlxuICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic3RhcnREYXRlSW5wdXRcIlxuICAgICAgICAgICBbbmdDbGFzc109XCJ7aG92ZXI6ICEhaW5wdXRTdGFydEhvdmVyVmFsdWV9XCJcbiAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInN0YXJ0RGF0ZVBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgW3JlYWRvbmx5XT1cImlucHV0UmVhZE9ubHkgPz8gbnVsbFwiXG4gICAgICAgICAgIFt2YWxpZF09XCJyYW5nZSA/IHVuZGVmaW5lZCA6IHZhbGlkXCJcbiAgICAgICAgICAgY0Zvcm1Db250cm9sXG4gICAgICAgICAgIGNsYXNzPVwiZGF0ZS1waWNrZXItaW5wdXRcIlxuICAgICAgICAgICBwYXR0ZXJuPVwiWzEtOV0qXCJcbiAgICA+XG4gICAgQGlmIChyYW5nZSAmJiBzZXBhcmF0b3IgIT09IGZhbHNlKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1waWNrZXItc2VwYXJhdG9yXCI+PC9kaXY+XG4gICAgfVxuICAgIEBpZiAocmFuZ2UpIHtcbiAgICAgIDxpbnB1dCAjZW5kRGF0ZUVsZW1lbnRSZWZcbiAgICAgICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUVuZERhdGVJbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJkaXNhYmxlZCA/IC0xIDogMFwiXG4gICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImVuZERhdGVJbnB1dFwiXG4gICAgICAgICAgICAgW25nQ2xhc3NdPVwie2hvdmVyOiAhIWlucHV0RW5kSG92ZXJWYWx1ZX1cIlxuICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJlbmREYXRlUGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgIFtyZWFkb25seV09XCJpbnB1dFJlYWRPbmx5ID8/IG51bGxcIlxuICAgICAgICAgICAgIFt2YWxpZF09XCJ2YWxpZCA/PyB1bmRlZmluZWRcIlxuICAgICAgICAgICAgIGNGb3JtQ29udHJvbFxuICAgICAgICAgICAgIGNsYXNzPVwiZGF0ZS1waWNrZXItaW5wdXRcIlxuICAgICAgICAgICAgIHBhdHRlcm49XCJbMS05XSpcIlxuICAgICAgPlxuICAgIH1cbiAgICBAaWYgKGluZGljYXRvcikge1xuICAgICAgPGRpdiBjbGFzcz1cImRhdGUtcGlja2VyLWluZGljYXRvclwiPjwvZGl2PlxuICAgIH1cbiAgICBAaWYgKGNsZWFuZXIgJiYgc3RhcnREYXRlRWxlbWVudFJlZi52YWx1ZSAmJiAhZGlzYWJsZWQpIHtcbiAgICAgIDxkaXYgKGNsaWNrKT1cIiFkaXNhYmxlZCAmJiBoYW5kbGVDbGVhcigkZXZlbnQpXCIgY2xhc3M9XCJkYXRlLXBpY2tlci1jbGVhbmVyXCIgcm9sZT1cImJ1dHRvblwiPjwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG4gIDxkaXYgY0Ryb3Bkb3duTWVudSBjbGFzcz1cImRhdGUtcGlja2VyLWRyb3Bkb3duIHB5LTBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1waWNrZXItYm9keVwiPlxuICAgICAgQGlmICghc2hvd1Jhbmdlcykge1xuICAgICAgICBAaWYgKHJhbmdlcyAmJiBjdXN0b21SYW5nZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlLXBpY2tlci1yYW5nZXNcIj5cbiAgICAgICAgICAgIEBmb3IgKGN1c3RvbVJhbmdlIG9mIGN1c3RvbVJhbmdlczsgdHJhY2sgY3VzdG9tUmFuZ2UpIHtcbiAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic2V0Q3VzdG9tUmFuZ2UoY3VzdG9tUmFuZ2UpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwicmFuZ2VzQnV0dG9uc0NvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCJyYW5nZXNCdXR0b25zU2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhcmlhbnRdPVwicmFuZ2VzQnV0dG9uc1ZhcmlhbnRcIlxuICAgICAgICAgICAgICAgICAgICAgIGNCdXR0b24+XG4gICAgICAgICAgICAgICAge3sgY3VzdG9tUmFuZ2UgfCBjdXN0b21SYW5nZUtleSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgPGMtY2FsZW5kYXJcbiAgICAgICAgKGNhbGVuZGFyQ2VsbEhvdmVyKT1cImhhbmRsZUNhbGVuZGFyQ2VsbEhvdmVyKCRldmVudClcIlxuICAgICAgICAoY2FsZW5kYXJEYXRlQ2hhbmdlKT1cImhhbmRsZUNhbGVuZGFyRGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGVuZERhdGVDaGFuZ2UpPVwiaGFuZGxlRW5kRGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKHN0YXJ0RGF0ZUNoYW5nZSk9XCJoYW5kbGVTdGFydERhdGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtjYWxlbmRhckRhdGVdPVwiY2FsZW5kYXJEYXRlXCJcbiAgICAgICAgW2NhbGVuZGFyc109XCJpc01vYmlsZSA/IDEgOiBjYWxlbmRhcnNcIlxuICAgICAgICBbZGF0ZUZpbHRlcl09XCJkYXRlRmlsdGVyXCJcbiAgICAgICAgW2Rpc2FibGVkRGF0ZXNdPVwiZGlzYWJsZWREYXRlc1wiXG4gICAgICAgIFtlbmREYXRlXT1cImVuZERhdGVcIlxuICAgICAgICBbZmlyc3REYXlPZldlZWtdPVwiZmlyc3REYXlPZldlZWtcIlxuICAgICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXG4gICAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIlxuICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgW25hdmlnYXRpb25dPVwibmF2aWdhdGlvblwiXG4gICAgICAgIFtyYW5nZV09XCJyYW5nZVwiXG4gICAgICAgIFtzdGFydERhdGVdPVwic3RhcnREYXRlXCJcbiAgICAgICAgW25hdlllYXJGaXJzdF09XCJuYXZZZWFyRmlyc3RcIlxuICAgICAgICBbZGF5Rm9ybWF0XT1cImRheUZvcm1hdFwiXG4gICAgICAgIFt3ZWVrZGF5Rm9ybWF0XT1cIndlZWtkYXlGb3JtYXRcIlxuICAgICAgICBbc2VsZWN0QWRqYWNlbnREYXlzXT1cInNlbGVjdEFkamFjZW50RGF5c1wiXG4gICAgICAgIFtzaG93QWRqYWNlbnREYXlzXT1cInNob3dBZGphY2VudERheXNcIlxuICAgICAgICBbc2hvd1dlZWtOdW1iZXJdPVwic2hvd1dlZWtOdW1iZXJcIlxuICAgICAgICBbc2VsZWN0aW9uVHlwZV09XCJzZWxlY3Rpb25UeXBlXCJcbiAgICAgICAgW3dlZWtOdW1iZXJzTGFiZWxdPVwid2Vla051bWJlcnNMYWJlbFwiXG4gICAgICAgIGNsYXNzPVwiZGF0ZS1waWNrZXItY2FsZW5kYXJzXCJcbiAgICAgIC8+XG4gICAgICBAaWYgKGZhbHNlICYmIHRpbWVwaWNrZXIpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtcGlja2VyLXRpbWVwaWNrZXJzXCI+XG4gICAgICAgICAgPCEtLSB0b2RvLS0+XG4gICAgICAgICAgPGMtdGltZS1waWNrZXJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJzZWxlY3RcIlxuICAgICAgICAgICAgW2xvY2FsZV09XCJsb2NhbGVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGFydERhdGVcIlxuICAgICAgICAgICAgW3RpbWVdPVwic3RhcnREYXRlID8/IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAodGltZUNoYW5nZSk9XCJoYW5kbGVTdGFydFRpbWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICBAaWYgKHJhbmdlKSB7XG4gICAgICAgICAgICA8Yy10aW1lLXBpY2tlclxuICAgICAgICAgICAgICB2YXJpYW50PVwic2VsZWN0XCJcbiAgICAgICAgICAgICAgW2xvY2FsZV09XCJsb2NhbGVcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVuZERhdGVcIlxuICAgICAgICAgICAgICBbdGltZV09XCJlbmREYXRlID8/IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgICh0aW1lQ2hhbmdlKT1cImhhbmRsZUVuZFRpbWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgQGlmICh0ZW1wbGF0ZXM/LmRhdGVQaWNrZXJGb290ZXIpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRlLXBpY2tlci1mb290ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlcz8uZGF0ZVBpY2tlckZvb3RlcjsgY29udGV4dDogeyRpbXBsaWNpdDogZHJvcGRvd259XCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG4gIDxuZy1jb250ZW50IC8+XG48L2MtZHJvcGRvd24+XG4iXX0=
@@ -2,15 +2,15 @@ import { NgModule } from '@angular/core';
2
2
  import { DatePickerComponent } from './date-picker.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export class DatePickerModule {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DatePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: DatePickerModule, imports: [DatePickerComponent], exports: [DatePickerComponent] }); }
7
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DatePickerModule, imports: [DatePickerComponent] }); }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: DatePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.10", ngImport: i0, type: DatePickerModule, imports: [DatePickerComponent], exports: [DatePickerComponent] }); }
7
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: DatePickerModule, imports: [DatePickerComponent] }); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DatePickerModule, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: DatePickerModule, decorators: [{
10
10
  type: NgModule,
11
11
  args: [{
12
12
  imports: [DatePickerComponent],
13
13
  exports: [DatePickerComponent]
14
14
  }]
15
15
  }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFNOUQsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsWUFIakIsbUJBQW1CLGFBQ25CLG1CQUFtQjsrR0FFbEIsZ0JBQWdCLFlBSGpCLG1CQUFtQjs7MkZBR2xCLGdCQUFnQjtrQkFKNUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtcGlja2VyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtEYXRlUGlja2VyQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0RhdGVQaWNrZXJDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJNb2R1bGUge31cbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFNOUQsTUFBTSxPQUFPLGdCQUFnQjsrR0FBaEIsZ0JBQWdCO2dIQUFoQixnQkFBZ0IsWUFIakIsbUJBQW1CLGFBQ25CLG1CQUFtQjtnSEFFbEIsZ0JBQWdCLFlBSGpCLG1CQUFtQjs7NEZBR2xCLGdCQUFnQjtrQkFKNUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtcGlja2VyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtEYXRlUGlja2VyQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0RhdGVQaWNrZXJDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJNb2R1bGUge31cbiJdfQ==
@@ -4,14 +4,14 @@ export class CustomRangeKeyPipe {
4
4
  transform(customRange, ...args) {
5
5
  return customRange[0];
6
6
  }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: CustomRangeKeyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: CustomRangeKeyPipe, isStandalone: true, name: "customRangeKey" }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CustomRangeKeyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.10", ngImport: i0, type: CustomRangeKeyPipe, isStandalone: true, name: "customRangeKey" }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: CustomRangeKeyPipe, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CustomRangeKeyPipe, decorators: [{
11
11
  type: Pipe,
12
12
  args: [{
13
13
  name: 'customRangeKey',
14
14
  standalone: true
15
15
  }]
16
16
  }] });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJhbmdlLWtleS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9kYXRlLXJhbmdlLXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci9jdXN0b20tcmFuZ2Uta2V5LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBT3BELE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsU0FBUyxDQUFDLFdBQXlCLEVBQUUsR0FBRyxJQUFlO1FBQ3JELE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7OEdBSlUsa0JBQWtCOzRHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBSjlCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVEN1c3RvbVJhbmdlIH0gZnJvbSAnLi9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdjdXN0b21SYW5nZUtleScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tUmFuZ2VLZXlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgdHJhbnNmb3JtKGN1c3RvbVJhbmdlOiBUQ3VzdG9tUmFuZ2UsIC4uLmFyZ3M6IHVua25vd25bXSk6IHVua25vd24ge1xuICAgIHJldHVybiBjdXN0b21SYW5nZVswXTtcbiAgfVxuXG59XG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJhbmdlLWtleS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9kYXRlLXJhbmdlLXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci9jdXN0b20tcmFuZ2Uta2V5LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBT3BELE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsU0FBUyxDQUFDLFdBQXlCLEVBQUUsR0FBRyxJQUFlO1FBQ3JELE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7K0dBSlUsa0JBQWtCOzZHQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBSjlCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVEN1c3RvbVJhbmdlIH0gZnJvbSAnLi9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdjdXN0b21SYW5nZUtleScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tUmFuZ2VLZXlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgdHJhbnNmb3JtKGN1c3RvbVJhbmdlOiBUQ3VzdG9tUmFuZ2UsIC4uLmFyZ3M6IHVua25vd25bXSk6IHVua25vd24ge1xuICAgIHJldHVybiBjdXN0b21SYW5nZVswXTtcbiAgfVxuXG59XG4iXX0=
@@ -540,8 +540,8 @@ export class DateRangePickerComponent {
540
540
  }
541
541
  this.endDate = time ?? this.endDate;
542
542
  }
543
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DateRangePickerComponent, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component }); }
544
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: DateRangePickerComponent, isStandalone: true, selector: "c-date-range-picker", inputs: { dayFormat: "dayFormat", calendars: ["calendars", "calendars", numberAttribute], cleaner: ["cleaner", "cleaner", booleanAttribute], closeOnSelect: ["closeOnSelect", "closeOnSelect", booleanAttribute], format: "format", indicator: ["indicator", "indicator", booleanAttribute], inputDateFormat: "inputDateFormat", inputDateParse: "inputDateParse", inputReadOnly: ["inputReadOnly", "inputReadOnly", booleanAttribute], navYearFirst: ["navYearFirst", "navYearFirst", booleanAttribute], placeholder: "placeholder", ranges: "ranges", rangesButtonsColor: "rangesButtonsColor", rangesButtonsSize: "rangesButtonsSize", rangesButtonsVariant: "rangesButtonsVariant", separator: ["separator", "separator", booleanAttribute], size: "size", timepicker: ["timepicker", "timepicker", booleanAttribute], valid: "valid", visible: ["visible", "visible", booleanAttribute], startDate: "startDate", endDate: "endDate", calendarDate: ["calendarDate", "calendarDate", dateTransform], disabledDates: "disabledDates", firstDayOfWeek: ["firstDayOfWeek", "firstDayOfWeek", numberAttribute], locale: "locale", maxDate: "maxDate", minDate: "minDate", navigation: ["navigation", "navigation", booleanAttribute], range: ["range", "range", booleanAttribute], dateFilter: "dateFilter", disabled: ["disabled", "disabled", booleanAttribute], value: "value", weekdayFormat: "weekdayFormat", popperjsOptions: ["popperOptions", "popperjsOptions"], selectAdjacentDays: ["selectAdjacentDays", "selectAdjacentDays", booleanAttribute], showAdjacentDays: ["showAdjacentDays", "showAdjacentDays", booleanAttribute], selectionType: "selectionType", showWeekNumber: ["showWeekNumber", "showWeekNumber", booleanAttribute], weekNumbersLabel: "weekNumbersLabel" }, outputs: { valueChange: "valueChange", calendarCellHover: "calendarCellHover", calendarDateChange: "calendarDateChange", endDateChange: "endDateChange", startDateChange: "startDateChange" }, host: { listeners: { "focusout": "onBlur()" }, properties: { "class": "this.datePickerClasses" } }, providers: [
543
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: DateRangePickerComponent, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component }); }
544
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: DateRangePickerComponent, isStandalone: true, selector: "c-date-range-picker", inputs: { dayFormat: "dayFormat", calendars: ["calendars", "calendars", numberAttribute], cleaner: ["cleaner", "cleaner", booleanAttribute], closeOnSelect: ["closeOnSelect", "closeOnSelect", booleanAttribute], format: "format", indicator: ["indicator", "indicator", booleanAttribute], inputDateFormat: "inputDateFormat", inputDateParse: "inputDateParse", inputReadOnly: ["inputReadOnly", "inputReadOnly", booleanAttribute], navYearFirst: ["navYearFirst", "navYearFirst", booleanAttribute], placeholder: "placeholder", ranges: "ranges", rangesButtonsColor: "rangesButtonsColor", rangesButtonsSize: "rangesButtonsSize", rangesButtonsVariant: "rangesButtonsVariant", separator: ["separator", "separator", booleanAttribute], size: "size", timepicker: ["timepicker", "timepicker", booleanAttribute], valid: "valid", visible: ["visible", "visible", booleanAttribute], startDate: "startDate", endDate: "endDate", calendarDate: ["calendarDate", "calendarDate", dateTransform], disabledDates: "disabledDates", firstDayOfWeek: ["firstDayOfWeek", "firstDayOfWeek", numberAttribute], locale: "locale", maxDate: "maxDate", minDate: "minDate", navigation: ["navigation", "navigation", booleanAttribute], range: ["range", "range", booleanAttribute], dateFilter: "dateFilter", disabled: ["disabled", "disabled", booleanAttribute], value: "value", weekdayFormat: "weekdayFormat", popperjsOptions: ["popperOptions", "popperjsOptions"], selectAdjacentDays: ["selectAdjacentDays", "selectAdjacentDays", booleanAttribute], showAdjacentDays: ["showAdjacentDays", "showAdjacentDays", booleanAttribute], selectionType: "selectionType", showWeekNumber: ["showWeekNumber", "showWeekNumber", booleanAttribute], weekNumbersLabel: "weekNumbersLabel" }, outputs: { valueChange: "valueChange", calendarCellHover: "calendarCellHover", calendarDateChange: "calendarDateChange", endDateChange: "endDateChange", startDateChange: "startDateChange" }, host: { listeners: { "focusout": "onBlur()" }, properties: { "class": "this.datePickerClasses" } }, providers: [
545
545
  {
546
546
  provide: NG_VALUE_ACCESSOR,
547
547
  useExisting: forwardRef(() => DateRangePickerComponent),
@@ -549,7 +549,7 @@ export class DateRangePickerComponent {
549
549
  }
550
550
  ], queries: [{ propertyName: "contentTemplates", predicate: TemplateIdDirective, descendants: true }], viewQueries: [{ propertyName: "startDateElementRef", first: true, predicate: ["startDateElementRef"], descendants: true }, { propertyName: "endDateElementRef", first: true, predicate: ["endDateElementRef"], descendants: true }], exportAs: ["cDateRangePicker"], usesOnChanges: true, ngImport: i0, template: "<c-dropdown #dropdown=\"cDropdown\" [autoClose]=\"'outside'\" class=\"date-picker picker\" [ngClass]=\"datePickerClasses\"\n [(visible)]=\"visible\" [popperOptions]=\"popperjsOptions\">\n <div [caret]=\"false\"\n [disabled]=\"disabled ?? dropdown.visible\"\n cDropdownToggle\n class=\"date-picker-input-group\"\n >\n <input #startDateElementRef\n (change)=\"handleStartDateInputChange($event)\"\n [attr.tabindex]=\"disabled ? -1 : 0\"\n [formControl]=\"startDateInput\"\n [ngClass]=\"{hover: !!inputStartHoverValue}\"\n [placeholder]=\"startDatePlaceholder\"\n [readonly]=\"inputReadOnly ?? null\"\n [valid]=\"range ? undefined : valid\"\n cFormControl\n class=\"date-picker-input\"\n pattern=\"[1-9]*\"\n >\n @if (range && separator !== false) {\n <div class=\"date-picker-separator\"></div>\n }\n @if (range) {\n <input #endDateElementRef\n (change)=\"handleEndDateInputChange($event)\"\n [attr.tabindex]=\"disabled ? -1 : 0\"\n [formControl]=\"endDateInput\"\n [ngClass]=\"{hover: !!inputEndHoverValue}\"\n [placeholder]=\"endDatePlaceholder\"\n [readonly]=\"inputReadOnly ?? null\"\n [valid]=\"valid ?? undefined\"\n cFormControl\n class=\"date-picker-input\"\n pattern=\"[1-9]*\"\n >\n }\n @if (indicator) {\n <div class=\"date-picker-indicator\"></div>\n }\n @if (cleaner && startDateElementRef.value && !disabled) {\n <div (click)=\"!disabled && handleClear($event)\" class=\"date-picker-cleaner\" role=\"button\"></div>\n }\n </div>\n <div cDropdownMenu class=\"date-picker-dropdown py-0\">\n <div class=\"date-picker-body\">\n @if (!showRanges) {\n @if (ranges && customRanges.length > 0) {\n <div class=\"date-picker-ranges\">\n @for (customRange of customRanges; track customRange) {\n <button (click)=\"setCustomRange(customRange)\"\n [color]=\"rangesButtonsColor\"\n [size]=\"rangesButtonsSize\"\n [variant]=\"rangesButtonsVariant\"\n cButton>\n {{ customRange | customRangeKey }}\n </button>\n }\n </div>\n }\n }\n <c-calendar\n (calendarCellHover)=\"handleCalendarCellHover($event)\"\n (calendarDateChange)=\"handleCalendarDateChange($event)\"\n (endDateChange)=\"handleEndDateChange($event)\"\n (startDateChange)=\"handleStartDateChange($event)\"\n [calendarDate]=\"calendarDate\"\n [calendars]=\"isMobile ? 1 : calendars\"\n [dateFilter]=\"dateFilter\"\n [disabledDates]=\"disabledDates\"\n [endDate]=\"endDate\"\n [firstDayOfWeek]=\"firstDayOfWeek\"\n [locale]=\"locale\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [navigation]=\"navigation\"\n [range]=\"range\"\n [startDate]=\"startDate\"\n [navYearFirst]=\"navYearFirst\"\n [dayFormat]=\"dayFormat\"\n [weekdayFormat]=\"weekdayFormat\"\n [selectAdjacentDays]=\"selectAdjacentDays\"\n [showAdjacentDays]=\"showAdjacentDays\"\n [showWeekNumber]=\"showWeekNumber\"\n [selectionType]=\"selectionType\"\n [weekNumbersLabel]=\"weekNumbersLabel\"\n class=\"date-picker-calendars\"\n />\n @if (false && timepicker) {\n <div class=\"date-picker-timepickers\">\n <!-- todo-->\n <c-time-picker\n variant=\"select\"\n [locale]=\"locale\"\n [disabled]=\"!startDate\"\n [time]=\"startDate ?? undefined\"\n (timeChange)=\"handleStartTimeChange($event)\"\n />\n @if (range) {\n <c-time-picker\n variant=\"select\"\n [locale]=\"locale\"\n [disabled]=\"!endDate\"\n [time]=\"endDate ?? undefined\"\n (timeChange)=\"handleEndTimeChange($event)\"\n />\n }\n </div>\n }\n </div>\n @if (templates?.datePickerFooter) {\n <div class=\"date-picker-footer\">\n <ng-container *ngTemplateOutlet=\"templates?.datePickerFooter; context: {$implicit: dropdown}\" />\n </div>\n }\n </div>\n <ng-content />\n</c-dropdown>\n", styles: [".form-control.date-picker-input:focus{box-shadow:0 0}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: CalendarComponent, selector: "c-calendar", inputs: ["calendarDate", "calendars", "dayFormat", "disabledDates", "startDate", "endDate", "firstDayOfWeek", "locale", "maxDate", "minDate", "navigation", "navYearFirst", "range", "view", "weekdayFormat", "dateFilter", "selectAdjacentDays", "showAdjacentDays", "selectionType", "showWeekNumber", "weekNumbersLabel"], outputs: ["calendarCellHover", "calendarDateChange", "endDateChange", "startDateChange", "viewChange"], exportAs: ["cCalendar"] }, { kind: "component", type: TimePickerComponent, selector: "c-time-picker", inputs: ["cleaner", "dateTimeFormatOptions", "disabled", "filterHours", "filterMinutes", "filterSeconds", "indicator", "inputReadOnly", "locale", "placeholder", "seconds", "size", "time", "variant", "valid", "visible"], outputs: ["timeChange"], exportAs: ["cTimePicker"] }, { kind: "directive", type: ButtonDirective, selector: "[cButton]", inputs: ["active", "color", "disabled", "shape", "size", "type", "variant"], exportAs: ["cButton"] }, { kind: "component", type: DropdownComponent, selector: "c-dropdown", inputs: ["alignment", "autoClose", "direction", "placement", "popper", "popperOptions", "variant", "visible"], outputs: ["visibleChange"], exportAs: ["cDropdown"] }, { kind: "directive", type: DropdownToggleDirective, selector: "[cDropdownToggle]", inputs: ["dropdownComponent", "disabled", "caret", "split"], exportAs: ["cDropdownToggle"] }, { kind: "directive", type: DropdownMenuDirective, selector: "[cDropdownMenu]", inputs: ["alignment", "visible"], exportAs: ["cDropdownMenu"] }, { kind: "directive", type: FormControlDirective, selector: "input[cFormControl], textarea[cFormControl]", inputs: ["sizing", "valid", "type", "plaintext"] }, { kind: "pipe", type: CustomRangeKeyPipe, name: "customRangeKey" }] }); }
551
551
  }
552
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DateRangePickerComponent, decorators: [{
552
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: DateRangePickerComponent, decorators: [{
553
553
  type: Component,
554
554
  args: [{ selector: 'c-date-range-picker', exportAs: 'cDateRangePicker', standalone: true, imports: [
555
555
  NgClass,
@@ -696,4 +696,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
696
696
  type: HostBinding,
697
697
  args: ['class']
698
698
  }] } });
699
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9kYXRlLXJhbmdlLXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2RhdGUtcmFuZ2UtcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUNMLGVBQWUsRUFJZixNQUFNLEVBR04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUVMLFdBQVcsRUFFWCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLFVBQVUsRUFDWCxNQUFNLGdCQUFnQixDQUFDO0FBTXhCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxzQkFBc0IsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFbkgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFF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QjtnQkFHK0IsZ0JBQWdCO3NCQUE1RSxlQUFlO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFzQmpDLE1BQU07c0JBQS9CLFlBQVk7dUJBQUMsVUFBVTtnQkE0RXBCLGlCQUFpQjtzQkFEcEIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZvcm1hdERhdGUsIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1Db250cm9sLFxuICBGb3JtR3JvdXAsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBWYWxpZGF0b3JzXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICdAcG9wcGVyanMvY29yZSc7XG5cbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2J1dHRvbic7XG5pbXBvcnQgeyBkYXRlVHJhbnNmb3JtLCBnZXRMb2NhbERhdGVGcm9tU3RyaW5nLCBpc0RhdGVEaXNhYmxlZCwgaXNWYWxpZERhdGUgfSBmcm9tICcuLi8uLi9jYWxlbmRhci9jYWxlbmRhci51dGlscyc7XG5pbXBvcnQgeyBEYXRlRmlsdGVyVHlwZSwgRGF5Rm9ybWF0VHlwZSwgV2Vla2RheUZvcm1hdFR5cGUgfSBmcm9tICcuLi8uLi9jYWxlbmRhci9jYWxlbmRhci5zZXJ2aWNlJztcbmltcG9ydCB7IENhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2FsZW5kYXInO1xuaW1wb3J0IHsgQ29sb3JzIH0gZnJvbSAnLi4vLi4vY29yZXVpLnR5cGVzJztcbmltcG9ydCB7IERyb3Bkb3duQ29tcG9uZW50LCBEcm9wZG93bk1lbnVEaXJlY3RpdmUsIERyb3Bkb3duVG9nZ2xlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZHJvcGRvd24nO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xEaXJlY3RpdmUsIElucHV0R3JvdXBDb21wb25lbnQsIElucHV0R3JvdXBUZXh0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZm9ybSc7XG5pbXBvcnQgeyBUZW1wbGF0ZUlkRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vc2hhcmVkJztcbmltcG9ydCB7IFRpbWVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi90aW1lLXBpY2tlcic7XG5pbXBvcnQgeyBDdXN0b21SYW5nZUtleVBpcGUgfSBmcm9tICcuL2N1c3RvbS1yYW5nZS1rZXkucGlwZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNhbGVuZGFyUmFuZ2VzIHtcbiAgW2tleTogc3RyaW5nXTogRGF0ZVtdO1xufVxuXG5leHBvcnQgdHlwZSBUQ3VzdG9tUmFuZ2UgPSBbc3RyaW5nLCBEYXRlW11dXG5cbi8qKiBNdXN0IGJlIGEgdmFsaWQgZGF0ZSBzdHJpbmcgKi9cbi8vIHRvZG86IHZhbGlkYXRpb25cbi8vIGV4cG9ydCBmdW5jdGlvbiBpbnZhbGlkRGF0ZVN0cmluZ1ZhbGlkYXRvcihsb2NhbGU6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcbi8vICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4vLyAgICAgLy8gY29uc3QgdmFsaWREYXRlID0gIWlzTmFOKERhdGUucGFyc2UoY29udHJvbC52YWx1ZSkpO1xuLy8gICAgIHN0cmluZ1RvRGF0ZUNvbnZlcnQoY29udHJvbC52YWx1ZSwgbG9jYWxlKTtcbi8vICAgICBjb25zdCBkYXRlU2hpbSA9IGN2dERhdGUoY29udHJvbC52YWx1ZSwgbG9jYWxlKTtcbi8vICAgICAvLyBAdHMtaWdub3JlXG4vLyAgICAgLy8gY29udHJvbC5zZXRWYWx1ZShuZXcgRGF0ZShkYXRlU2hpbS55ZWFyLCBkYXRlU2hpbS5tb250aCwgZGF0ZVNoaW0uZGF5KSlcbi8vICAgICBjb25zb2xlLmxvZygnZGF0ZVNoaW0nLCBkYXRlU2hpbSwgbG9jYWxlKTtcbi8vICAgICBjb25zdCB2YWxpZERhdGUgPSBpc1ZhbGlkRGF0ZShjb250cm9sLnZhbHVlKTtcbi8vICAgICBjb25zb2xlLmxvZygnaW52YWxpZERhdGVTdHJpbmdWYWxpZGF0b3InLCBjb250cm9sLCBjb250cm9sLnZhbHVlLCB2YWxpZERhdGUpO1xuLy8gICAgIHJldHVybiB2YWxpZERhdGUgPyB7IGludmFsaWREYXRlU3RyaW5nVmFsaWRhdG9yOiB7IHZhbHVlOiBjb250cm9sLnZhbHVlIH0gfSA6IG51bGw7XG4vLyAgIH07XG4vLyB9XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MtZGF0ZS1yYW5nZS1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBleHBvcnRBczogJ2NEYXRlUmFuZ2VQaWNrZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdDbGFzcyxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQ2FsZW5kYXJDb21wb25lbnQsXG4gICAgVGltZVBpY2tlckNvbXBvbmVudCxcbiAgICBCdXR0b25EaXJlY3RpdmUsXG4gICAgRHJvcGRvd25Db21wb25lbnQsXG4gICAgRHJvcGRvd25Ub2dnbGVEaXJlY3RpdmUsXG4gICAgRHJvcGRvd25NZW51RGlyZWN0aXZlLFxuICAgIElucHV0R3JvdXBDb21wb25lbnQsXG4gICAgRm9ybUNvbnRyb2xEaXJlY3RpdmUsXG4gICAgSW5wdXRHcm91cFRleHREaXJlY3RpdmUsXG4gICAgQ3VzdG9tUmFuZ2VLZXlQaXBlXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGVSYW5nZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyXG4gICkgeyB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZm9ybWF0IG9mIGRheSBuYW1lLlxuICAgKiBAZGVmYXVsdCAnbnVtZXJpYydcbiAgICogQHR5cGUgRGF5Rm9ybWF0VHlwZVxuICAgKi9cbiAgQElucHV0KCkgZGF5Rm9ybWF0OiBEYXlGb3JtYXRUeXBlID0gJ251bWVyaWMnO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGNhbGVuZGFycyB0aGF0IHJlbmRlciBvbiBkZXNrdG9wIGRldmljZXMuXG4gICAqIEB0eXBlIG51bWJlclxuICAgKiBAZGVmYXVsdCAyXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBjYWxlbmRhcnM6IG51bWJlciA9IDI7XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB2aXNpYmlsaXR5IG9yIHNldCB0aGUgY29udGVudCBvZiB0aGUgY2xlYW5lciBidXR0b24uXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGNsZWFuZXIgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmUgaWYgdGhlIGRyb3Bkb3duIHNob3VsZCBiZSBjbG9zZWQgYWZ0ZXIgdmFsdWUgc2V0dGluZy5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGNsb3NlT25TZWxlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogU2V0IGRhdGUgZm9ybWF0LlxuICAgKiBXZSB1c2UgQW5ndWxhciBmb3JtYXREYXRlKCkgZnVuY3Rpb24sIHNlZTpcbiAgICogLSBodHRwczovL2FuZ3VsYXIuaW8vYXBpL2NvbW1vbi9mb3JtYXREYXRlXG4gICAqIC0gaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9jb21tb24vRGF0ZVBpcGUjcHJlLWRlZmluZWQtZm9ybWF0LW9wdGlvbnNcbiAgICovXG4gIEBJbnB1dCgpXG4gIGZvcm1hdD86IHN0cmluZztcblxuICAvKipcbiAgICogVG9nZ2xlIHZpc2liaWxpdHkgb3Igc2V0IHRoZSBjb250ZW50IG9mIHRoZSBpbnB1dCBpbmRpY2F0b3IuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGluZGljYXRvcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBmdW5jdGlvbiB0byBmb3JtYXQgdGhlIHNlbGVjdGVkIGRhdGUgaW50byBhIHN0cmluZyBhY2NvcmRpbmcgdG8gYSBjdXN0b20gZm9ybWF0LlxuICAgKiBAc2luY2UgdjUuMC4wXG4gICAqL1xuICBASW5wdXQoKSBpbnB1dERhdGVGb3JtYXQ/OiAoZGF0ZTogRGF0ZSkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gZnVuY3Rpb24gdG8gcGFyc2UgdGhlIGlucHV0IHZhbHVlIGludG8gYSB2YWxpZCBEYXRlIG9iamVjdC5cbiAgICogQHNpbmNlIHY1LjAuMFxuICAgKi9cbiAgQElucHV0KCkgaW5wdXREYXRlUGFyc2U/OiAoZGF0ZTogc3RyaW5nIHwgRGF0ZSkgPT4gRGF0ZTtcblxuICAvKipcbiAgICogVG9nZ2xlIHRoZSByZWFkb25seSBzdGF0ZSBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHNldCBpbnB1dFJlYWRPbmx5KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4jaW5wdXRSZWFkT25seSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGlucHV0UmVhZE9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI2lucHV0UmVhZE9ubHkgfHwgdHlwZW9mIHRoaXMuZm9ybWF0ID09PSAnc3RyaW5nJztcbiAgfVxuXG4gICNpbnB1dFJlYWRPbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFJlb3JkZXIgeWVhci1tb250aCBuYXZpZ2F0aW9uLCBhbmQgcmVuZGVyIHllYXIgZmlyc3QuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBuYXZZZWFyRmlyc3Q6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHNob3J0IGhpbnRzIHRoYXQgYXJlIHZpc2libGUgaW4gc3RhcnQgZGF0ZSBhbmQgZW5kIGRhdGUgaW5wdXRzLlxuICAgKiB0eXBlIHN0cmluZ1xuICAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyB8IHN0cmluZ1tdID0gWydTdGFydCBkYXRlJywgJ0VuZCBkYXRlJ107XG5cbiAgLyoqXG4gICAqIFByZWRlZmluZWQgZGF0ZSByYW5nZXMgdGhlIHVzZXIgY2FuIHNlbGVjdCBmcm9tLlxuICAgKiBAdHlwZSBJQ2FsZW5kYXJSYW5nZXNcbiAgICovXG4gIEBJbnB1dCgpIHJhbmdlcz86IElDYWxlbmRhclJhbmdlcztcblxuICAvKipcbiAgICogU2V0cyB0aGUgY29sb3IgY29udGV4dCBvZiB0aGUgY2FuY2VsIGJ1dHRvbiB0byBvbmUgb2YgQ29yZVVJ4oCZcyB0aGVtZWQgY29sb3JzLlxuICAgKiBAdHlwZSAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICdzdWNjZXNzJyB8ICdkYW5nZXInIHwgJ3dhcm5pbmcnIHwgJ2luZm8nIHwgJ2RhcmsnIHwgJ2xpZ2h0JyB8IHN0cmluZ1xuICAgKiBAZGVmYXVsdCAnc2Vjb25kYXJ5J1xuICAgKi9cbiAgQElucHV0KCkgcmFuZ2VzQnV0dG9uc0NvbG9yPzogQ29sb3JzID0gJ3NlY29uZGFyeSc7XG5cbiAgLyoqXG4gICAqIFNpemUgdGhlIHJhbmdlcyBidXR0b24gc21hbGwgb3IgbGFyZ2UuXG4gICAqIEB0eXBlICdzbScgfCAnbGcnIHwgJydcbiAgICovXG4gIEBJbnB1dCgpIHJhbmdlc0J1dHRvbnNTaXplOiAnc20nIHwgJ2xnJyB8ICcnID0gJyc7XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcmFuZ2VzIGJ1dHRvbiB2YXJpYW50IHRvIGFuIG91dGxpbmVkIGJ1dHRvbiBvciBhIGdob3N0IGJ1dHRvbi5cbiAgICogQHR5cGUgJ291dGxpbmUnIHwgJ2dob3N0JyB8IHVuZGVmaW5lZFxuICAgKi9cbiAgQElucHV0KCkgcmFuZ2VzQnV0dG9uc1ZhcmlhbnQ/OiAnb3V0bGluZScgfCAnZ2hvc3QnID0gJ2dob3N0JztcblxuICAvKipcbiAgICogRGVmYXVsdCBpY29uIG9yIGNoYXJhY3RlciB0aGF0IHNlcGFyYXRlcyB0d28gZGF0ZXMuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNlcGFyYXRvciA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFNpemUgdGhlIGNvbXBvbmVudCBzbWFsbCBvciBsYXJnZS5cbiAgICogQHR5cGUgJ3NtJyB8ICdsZycgfCB1bmRlZmluZWRcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICBASW5wdXQoKSBzaXplPzogJ3NtJyB8ICdsZyc7XG5cbiAgLyoqXG4gICAqIFByb3ZpZGUgYW4gYWRkaXRpb25hbCB0aW1lIHNlbGVjdGlvbiBieSBhZGRpbmcgc2VsZWN0IGJveGVzIHRvIGNob29zZSB0aW1lLlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgc2V0IHRpbWVwaWNrZXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiN0aW1lcGlja2VyID0gdmFsdWU7XG4gIH1cblxuICBnZXQgdGltZXBpY2tlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gICAgLy8gcmV0dXJuIHRoaXMuI3RpbWVwaWNrZXI7XG4gIH1cblxuICAjdGltZXBpY2tlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUb2dnbGUgdmlzdWFsIHZhbGlkYXRpb24gZmVlZGJhY2suXG4gICAqIEB0eXBlIGJvb2xlYW4gfCB1bmRlZmluZWRcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICBASW5wdXQoKSB2YWxpZD86IGJvb2xlYW4gPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZHJvcGRvd24gZGF0ZS1waWNrZXIgY29tcG9uZW50LlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBzdGFydERhdGUodmFsdWUpIHtcbiAgICBjb25zdCBwcmV2RGF0ZSA9IHRoaXMuX3N0YXJ0RGF0ZSA/IG5ldyBEYXRlKHRoaXMuX3N0YXJ0RGF0ZSkgOiBudWxsO1xuICAgIHRoaXMuX3N0YXJ0RGF0ZSA9IHZhbHVlID8gbmV3IERhdGUodmFsdWUpIDogbnVsbDtcbiAgICBpZiAocHJldkRhdGU/LmdldFRpbWUoKSAhPT0gdGhpcy5fc3RhcnREYXRlPy5nZXRUaW1lKCkpIHtcbiAgICAgIHRoaXMuc3RhcnREYXRlVmFsdWUgPSB0aGlzLmZvcm1hdERhdGUodGhpcy5fc3RhcnREYXRlKTtcbiAgICAgIHRoaXMuc3RhcnREYXRlQ2hhbmdlLmVtaXQodGhpcy5fc3RhcnREYXRlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgc3RhcnREYXRlKCkge1xuICAgIHJldHVybiB0aGlzLl9zdGFydERhdGU7XG4gIH1cblxuICBwcml2YXRlIF9zdGFydERhdGU/OiBEYXRlIHwgbnVsbDtcblxuICBASW5wdXQoKVxuICBzZXQgZW5kRGF0ZSh2YWx1ZSkge1xuICAgIGNvbnN0IHByZXZEYXRlID0gdGhpcy5fZW5kRGF0ZSA/IG5ldyBEYXRlKHRoaXMuX2VuZERhdGUgPz8gMCkgOiBudWxsO1xuICAgIHRoaXMuX2VuZERhdGUgPSB2YWx1ZSA/IG5ldyBEYXRlKHZhbHVlKSA6IG51bGw7XG4gICAgaWYgKHByZXZEYXRlPy5nZXRUaW1lKCkgIT09IHRoaXMuX2VuZERhdGU/LmdldFRpbWUoKSkge1xuICAgICAgdGhpcy5lbmREYXRlVmFsdWUgPSB0aGlzLmZvcm1hdERhdGUodGhpcy5fZW5kRGF0ZSk7XG4gICAgICB0aGlzLmVuZERhdGVDaGFuZ2UuZW1pdCh0aGlzLl9lbmREYXRlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgZW5kRGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZW5kRGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2VuZERhdGU/OiBEYXRlIHwgbnVsbDtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGRhdGVUcmFuc2Zvcm0gfSkgY2FsZW5kYXJEYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcbiAgQElucHV0KCkgZGlzYWJsZWREYXRlczogRGF0ZVtdIHwgRGF0ZVtdW10gPSBbXTtcblxuICAvKipcbiAgICogU2V0IGZpcnN0IGRheSBvZiB3ZWVrLlxuICAgKiBAdHlwZSBudW1iZXJcbiAgICogQGRlZmF1bHQgMSAoTW9uZGF5KVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgZmlyc3REYXlPZldlZWs6IG51bWJlciA9IDE7XG5cbiAgQElucHV0KCkgbG9jYWxlOiBzdHJpbmcgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIG1heERhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgbWluRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBTaG93IGNhbGVuZGFyIG5hdmlnYXRpb24uXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIG5hdmlnYXRpb24gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBBbGxvdyByYW5nZSBzZWxlY3Rpb24uXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByYW5nZSA9IHRydWU7XG5cbiAgQElucHV0KCkgZGF0ZUZpbHRlcj86IERhdGVGaWx0ZXJUeXBlO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNkaXNhYmxlZCA9IHZhbHVlO1xuICAgIHRoaXMuI2Rpc2FibGVkID8gdGhpcy5zdGFydERhdGVJbnB1dC5kaXNhYmxlKCkgOiB0aGlzLnN0YXJ0RGF0ZUlucHV0LmVuYWJsZSgpO1xuICAgIHRoaXMuI2Rpc2FibGVkID8gdGhpcy5lbmREYXRlSW5wdXQuZGlzYWJsZSgpIDogdGhpcy5lbmREYXRlSW5wdXQuZW5hYmxlKCk7XG4gIH1cblxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI2Rpc2FibGVkO1xuICB9XG5cbiAgI2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMucmFuZ2UgPyB7IC4uLnZhbHVlIH0gOiB2YWx1ZTtcbiAgICBpZiAoSlNPTi5zdHJpbmdpZnkodGhpcy5fdmFsdWUpICE9PSBKU09OLnN0cmluZ2lmeShuZXdWYWx1ZSkpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gbmV3VmFsdWU7XG4gICAgICBpZiAodGhpcy5yYW5nZSkge1xuICAgICAgICB0aGlzLmhhbmRsZVN0YXJ0RGF0ZUNoYW5nZShuZXdWYWx1ZS5zdGFydERhdGUgPz8gbnVsbCk7XG4gICAgICAgIHRoaXMuaGFuZGxlRW5kRGF0ZUNoYW5nZShuZXdWYWx1ZS5lbmREYXRlID8/IG51bGwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5oYW5kbGVTdGFydERhdGVDaGFuZ2UobmV3VmFsdWUgPz8gbnVsbCk7XG4gICAgICB9XG4gICAgICB0aGlzLm9uQ2hhbmdlKG5ld1ZhbHVlKTtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICBpZiAodGhpcy5jbG9zZU9uU2VsZWN0KSB7XG4gICAgICAgIGNvbnN0IGhhc1ZhbHVlID0gdGhpcy5yYW5nZSA/ICEhKHRoaXMudmFsdWUuc3RhcnREYXRlICYmIHRoaXMudmFsdWUuZW5kRGF0ZSkgOiAhIXRoaXMudmFsdWU7XG4gICAgICAgIHRoaXMudmlzaWJsZSA9ICFoYXNWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IGFueSA9IHt9O1xuXG4gIC8qKlxuICAgKiBTZXQgbGVuZ3RoIG9yIGZvcm1hdCBvZiBkYXkgbmFtZS5cbiAgICogQHR5cGUgV2Vla2RheUZvcm1hdFR5cGVcbiAgICogQGRlZmF1bHQgJ3Nob3J0J1xuICAgKi9cbiAgQElucHV0KCkgd2Vla2RheUZvcm1hdDogV2Vla2RheUZvcm1hdFR5cGUgPSAnc2hvcnQnO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBwb3BwZXIgT3B0aW9ucyBvYmplY3RcbiAgICogQHR5cGUgUGFydGlhbDxPcHRpb25zPlxuICAgKi9cbiAgQElucHV0KCdwb3BwZXJPcHRpb25zJykgcG9wcGVyanNPcHRpb25zOiBQYXJ0aWFsPE9wdGlvbnM+ID0ge1xuICAgIHN0cmF0ZWd5OiAnYWJzb2x1dGUnXG4gIH07XG5cbiAgLyoqXG4gICAqIFNldCB3aGV0aGVyIGRheXMgaW4gYWRqYWNlbnQgbW9udGhzIHNob3duIGJlZm9yZSBvciBhZnRlciB0aGUgY3VycmVudCBtb250aCBhcmUgc2VsZWN0YWJsZS4gVGhpcyBvbmx5IGFwcGxpZXMgaWYgdGhlIGBzaG93QWRqYWNlbnREYXlzYCBvcHRpb24gaXMgc2V0IHRvIHRydWUuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHNpbmNlIDQuNC4xMFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNlbGVjdEFkamFjZW50RGF5czogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTZXQgd2hldGhlciB0byBkaXNwbGF5IGRhdGVzIGluIGFkamFjZW50IG1vbnRocyAobm9uLXNlbGVjdGFibGUpIGF0IHRoZSBzdGFydCBhbmQgZW5kIG9mIHRoZSBjdXJyZW50IG1vbnRoLlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQHNpbmNlIDQuNC4xMFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dBZGphY2VudERheXM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHRoZSB0eXBlIG9mIGRhdGUgc2VsZWN0aW9uIGFzIGRheSwgd2VlaywgbW9udGgsIG9yIHllYXIuXG4gICAqIEB0eXBlICdkYXknIHwgJ3dlZWsnIHwgJ21vbnRoJyB8ICd5ZWFyJ1xuICAgKiBAZGVmYXVsdCAnZGF5J1xuICAgKiBAc2luY2UgNS4wLjBcbiAgICovXG4gIEBJbnB1dCgpIHNlbGVjdGlvblR5cGU6ICdkYXknIHwgJ3dlZWsnIHwgJ21vbnRoJyB8ICd5ZWFyJyA9ICdkYXknO1xuXG4gIC8qKlxuICAgKiBTZXQgd2hldGhlciB0byBkaXNwbGF5IHdlZWsgbnVtYmVycyBpbiB0aGUgY2FsZW5kYXIuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHNpbmNlIDUuMC4wXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd1dlZWtOdW1iZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogTGFiZWwgZGlzcGxheWVkIG92ZXIgd2VlayBudW1iZXJzIGluIHRoZSBjYWxlbmRhci5cbiAgICogQHR5cGUgc3RyaW5nXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKiBAc2luY2UgNS4wLjBcbiAgICovXG4gIEBJbnB1dCgpIHdlZWtOdW1iZXJzTGFiZWw/OiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgRGF0ZVtdIHwgdW5kZWZpbmVkPigpO1xuXG4gIEBPdXRwdXQoKSBjYWxlbmRhckNlbGxIb3ZlcjogRXZlbnRFbWl0dGVyPERhdGUgfCBudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+KCk7XG4gIEBPdXRwdXQoKSBjYWxlbmRhckRhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcbiAgQE91dHB1dCgpIGVuZERhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGUgfCBudWxsPigpO1xuICBAT3V0cHV0KCkgc3RhcnREYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4oKTtcblxuICAvLyBAVmlld0NoaWxkKENhbGVuZGFyQ29tcG9uZW50KSBjYWxlbmRhckNvbXBvbmVudCE6IENhbGVuZGFyQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdzdGFydERhdGVFbGVtZW50UmVmJykgc3RhcnREYXRlRWxlbWVudFJlZiE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2VuZERhdGVFbGVtZW50UmVmJykgZW5kRGF0ZUVsZW1lbnRSZWYhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIHRlbXBsYXRlczogYW55ID0ge307XG4gIEBDb250ZW50Q2hpbGRyZW4oVGVtcGxhdGVJZERpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBjb250ZW50VGVtcGxhdGVzITogUXVlcnlMaXN0PFRlbXBsYXRlSWREaXJlY3RpdmU+O1xuXG4gIHByb3RlY3RlZCBkYXRlQ2hhbmdlU3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBwcm90ZWN0ZWQgc3Vic2NyaWJlRGF0ZUNoYW5nZShzdWJzY3JpYmU6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgaWYgKHN1YnNjcmliZSkge1xuICAgICAgLy8gdG9kb1xuICAgICAgLy8gdGhpcy5kYXRlQ2hhbmdlU3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuc3RhcnREYXRlQ2hhbmdlLnN1YnNjcmliZShuZXh0ID0+IHtcbiAgICAgIC8vICAgdGhpcy5zdGFydERhdGUgPSBuZXh0O1xuICAgICAgLy8gICB0aGlzLm9uQ2hhbmdlKG5leHQpO1xuICAgICAgLy8gfSkpO1xuICAgICAgLy8gdGhpcy5kYXRlQ2hhbmdlU3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuc3RhcnREYXRlQ2hhbmdlLnN1YnNjcmliZShuZXh0ID0+IHtcbiAgICAgIC8vICAgdGhpcy5lbmREYXRlID0gbmV4dDtcbiAgICAgIC8vICAgdGhpcy5vbkNoYW5nZShuZXh0KTtcbiAgICAgIC8vIH0pKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kYXRlQ2hhbmdlU3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiB7XG4gICAgICBzdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcpIG9uQmx1cigpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgcHVibGljIGlzTW9iaWxlID0gdHJ1ZTtcbiAgcHVibGljIGN1c3RvbVJhbmdlcyE6IFRDdXN0b21SYW5nZVtdO1xuICBwdWJsaWMgc2hvd1JhbmdlczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHNldCBzdGFydERhdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zdGFydERhdGVJbnB1dC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5fc3RhcnREYXRlVmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBzdGFydERhdGVWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zdGFydERhdGVWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX3N0YXJ0RGF0ZVZhbHVlOiBzdHJpbmcgPSB0aGlzLmZvcm1hdERhdGUodGhpcy5zdGFydERhdGUpO1xuXG4gIHNldCBlbmREYXRlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZW5kRGF0ZUlucHV0LnNldFZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLl9lbmREYXRlVmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBlbmREYXRlVmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZW5kRGF0ZVZhbHVlO1xuICB9XG5cbiAgcHVibGljIF9lbmREYXRlVmFsdWU6IHN0cmluZyA9IHRoaXMuZm9ybWF0RGF0ZSh0aGlzLmVuZERhdGUpO1xuXG4gIHB1YmxpYyBnZXQgc3RhcnREYXRlUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLnBsYWNlaG9sZGVyKSA/IHRoaXMucGxhY2Vob2xkZXJbMF0gOiB0aGlzLnBsYWNlaG9sZGVyO1xuICB9O1xuXG4gIHB1YmxpYyBnZXQgZW5kRGF0ZVBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy5wbGFjZWhvbGRlcikgPyB0aGlzLnBsYWNlaG9sZGVyWzFdIDogdGhpcy5wbGFjZWhvbGRlcjtcbiAgfTtcblxuICBwcml2YXRlIGxheW91dENoYW5nZXMhOiBTdWJzY3JpcHRpb247XG5cbiAgLy8gdG9kbzogdmFsaWRhdGlvblxuICBzdGFydERhdGVJbnB1dCA9IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLnN0YXJ0RGF0ZVZhbHVlLCBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCB9LCBbXG4gICAgVmFsaWRhdG9ycy5yZXF1aXJlZFxuICAgIC8vIFZhbGlkYXRvcnMubWluTGVuZ3RoKDgpLFxuICAgIC8vIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEwKSxcbiAgICAvLyBpbnZhbGlkRGF0ZVN0cmluZ1ZhbGlkYXRvcih0aGlzLmxvY2FsZSlcbiAgXSk7XG4gIGVuZERhdGVJbnB1dCA9IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLmVuZERhdGVWYWx1ZSwgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQgfSwgW1xuICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAvLyBWYWxpZGF0b3JzLm1pbkxlbmd0aCg4KSxcbiAgICAvLyBWYWxpZGF0b3JzLm1heExlbmd0aCgxMCksXG4gICAgLy8gaW52YWxpZERhdGVTdHJpbmdWYWxpZGF0b3IodGhpcy5sb2NhbGUpXG4gIF0pO1xuICBkYXRlUmFuZ2VHcm91cCE6IEZvcm1Hcm91cDtcblxuICBzZXQgaW5wdXRTdGFydEhvdmVyVmFsdWUodmFsdWUpIHtcbiAgICB0aGlzLl9pbnB1dFN0YXJ0SG92ZXJWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGlucHV0U3RhcnRIb3ZlclZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dFN0YXJ0SG92ZXJWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2lucHV0U3RhcnRIb3ZlclZhbHVlITogRGF0ZSB8IG51bGw7XG5cbiAgc2V0IGlucHV0RW5kSG92ZXJWYWx1ZSh2YWx1ZSkge1xuICAgIHRoaXMuX2lucHV0RW5kSG92ZXJWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGlucHV0RW5kSG92ZXJWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRFbmRIb3ZlclZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5wdXRFbmRIb3ZlclZhbHVlITogRGF0ZSB8IG51bGw7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBkYXRlUGlja2VyQ2xhc3NlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2RhdGUtcGlja2VyJzogdHJ1ZSxcbiAgICAgIFtgZGF0ZS1waWNrZXItJHt0aGlzLnNpemV9YF06IHRoaXMuc2l6ZSxcbiAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkLFxuICAgICAgJ2lzLXZhbGlkJzogdGhpcy52YWxpZCA9PT0gdHJ1ZSxcbiAgICAgICdpcy1pbnZhbGlkJzogdGhpcy52YWxpZCA9PT0gZmFsc2VcbiAgICB9O1xuICB9XG5cbiAgZm9ybWF0RGF0ZShkYXRlOiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiAhZGF0ZSB8fCAhaXNWYWxpZERhdGUoZGF0ZSkgPyAnJyA6XG4gICAgICAgICAgIHR5cGVvZiB0aGlzLmlucHV0RGF0ZUZvcm1hdCA9PT0gJ2Z1bmN0aW9uJyA/IHRoaXMuaW5wdXREYXRlRm9ybWF0KGRhdGUpIDpcbiAgICAgICAgICAgKCEhdGhpcy5mb3JtYXQgJiYgISF0aGlzLmxvY2FsZSAmJiB0aGlzLmxvY2FsZSAhPT0gJ2RlZmF1bHQnKSA/IGZvcm1hdERhdGUoZGF0ZSwgdGhpcy5mb3JtYXQsIHRoaXMubG9jYWxlKSA6XG4gICAgICAgICAgIHRoaXMudGltZXBpY2tlciA/IGRhdGUudG9Mb2NhbGVTdHJpbmcodGhpcy5sb2NhbGUpIDpcbiAgICAgICAgICAgZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcodGhpcy5sb2NhbGUpO1xuICB9XG5cbiAgcmVhZG9ubHkgI2JyZWFrcG9pbnRzID0ge1xuICAgIE9uZUNhbGVuZGFyUmFuZ2VzOiAnKG1pbi13aWR0aDogNDgwcHgpJyxcbiAgICBUd29DYWxlbmRhcnM6ICcobWF4LXdpZHRoOiA2NTBweCknLFxuICAgIFR3b0NhbGVuZGFyc1JhbmdlczogJyhtYXgtd2lkdGg6IDgxMHB4KSdcbiAgfTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmN1c3RvbVJhbmdlcyA9IHRoaXMucmFuZ2VzID8gT2JqZWN0LmVudHJpZXModGhpcy5yYW5nZXMpIDogW107XG5cbiAgICBjb25zdCBicmVha3BvaW50cyA9IHRoaXMuI2JyZWFrcG9pbnRzO1xuXG4gICAgdGhpcy5sYXlvdXRDaGFuZ2VzID0gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShbXG4gICAgICBicmVha3BvaW50cy5PbmVDYWxlbmRhclJhbmdlcyxcbiAgICAgIGJyZWFrcG9pbnRzLlR3b0NhbGVuZGFycyxcbiAgICAgIGJyZWFrcG9pbnRzLlR3b0NhbGVuZGFyc1Jhbmdlc1xuICAgIF0pLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgaWYgKHJlc3VsdC5tYXRjaGVzKSB7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSAodGhpcy5jdXN0b21SYW5nZXM/Lmxlbmd0aCA+IDAgJiYgcmVzdWx0LmJyZWFrcG9pbnRzW2JyZWFrcG9pbnRzLlR3b0NhbGVuZGFyc1Jhbmdlc10pIHx8IHJlc3VsdC5icmVha3BvaW50c1ticmVha3BvaW50cy5Ud29DYWxlbmRhcnNdO1xuICAgICAgICBpZiAodGhpcy5jdXN0b21SYW5nZXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLnNob3dSYW5nZXMgPSAhcmVzdWx0LmJyZWFrcG9pbnRzW2JyZWFrcG9pbnRzLk9uZUNhbGVuZGFyUmFuZ2VzXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5zdGFydERhdGVWYWx1ZSA9IHRoaXMuZm9ybWF0RGF0ZSh0aGlzLnN0YXJ0RGF0ZSk7XG4gICAgdGhpcy5lbmREYXRlVmFsdWUgPSB0aGlzLmZvcm1hdERhdGUodGhpcy5lbmREYXRlKTtcbiAgICB0aGlzLnN1YnNjcmliZURhdGVDaGFuZ2UoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMubGF5b3V0Q2hhbmdlcz8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN1YnNjcmliZURhdGVDaGFuZ2UoZmFsc2UpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jb250ZW50VGVtcGxhdGVzLmZvckVhY2goKGNoaWxkOiBUZW1wbGF0ZUlkRGlyZWN0aXZlKSA9PiB7XG4gICAgICAgIHRoaXMudGVtcGxhdGVzW2NoaWxkLmlkXSA9IGNoaWxkLnRlbXBsYXRlUmVmO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2RhdGUnXSkge1xuICAgICAgLy8gZm9yIGRhdGUtcGlja2VyIGNvbXBvbmVudFxuICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuY29udmVydFZhbHVlVG9EYXRlKGNoYW5nZXNbJ2RhdGUnXT8uY3VycmVudFZhbHVlKSA/PyBudWxsO1xuICAgICAgdGhpcy5oYW5kbGVTdGFydERhdGVDaGFuZ2UoZGF0ZSk7XG4gICAgICB0aGlzLmNhbGVuZGFyRGF0ZSA9IGRhdGUgPz8gdGhpcy5jYWxlbmRhckRhdGU7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydzdGFydERhdGUnXSkge1xuICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuY29udmVydFZhbHVlVG9EYXRlKGNoYW5nZXNbJ3N0YXJ0RGF0ZSddPy5jdXJyZW50VmFsdWUpID8/IG51bGw7XG4gICAgICB0aGlzLmhhbmRsZVN0YXJ0RGF0ZUNoYW5nZShkYXRlKTtcbiAgICAgIHRoaXMuY2FsZW5kYXJEYXRlID0gZGF0ZSA/PyB0aGlzLmNhbGVuZGFyRGF0ZTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2VuZERhdGUnXSkge1xuICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuY29udmVydFZhbHVlVG9EYXRlKGNoYW5nZXNbJ2VuZERhdGUnXT8uY3VycmVudFZhbHVlKSA/PyBudWxsO1xuICAgICAgdGhpcy5oYW5kbGVFbmREYXRlQ2hhbmdlKGRhdGUpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snbG9jYWxlJ10pIHtcbiAgICAgIHRoaXMuc3RhcnREYXRlVmFsdWUgPSB0aGlzLmZvcm1hdERhdGUodGhpcy5zdGFydERhdGUpO1xuICAgICAgdGhpcy5lbmREYXRlVmFsdWUgPSB0aGlzLmZvcm1hdERhdGUodGhpcy5lbmREYXRlKTtcbiAgICB9XG4gIH1cblxuICBjb252ZXJ0VmFsdWVUb0RhdGUodmFsdWU6IERhdGUgfCBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsKSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdGhpcy5pbnB1dFBhcnNlKHZhbHVlKSA/PyBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpID8/IG51bGw7XG4gIH1cblxuICBpbnB1dFBhcnNlKGRhdGU6IHN0cmluZykge1xuICAgIGlmICh0eXBlb2YgdGhpcy5pbnB1dERhdGVQYXJzZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29uc3QgcGFyc2VkRGF0ZSA9IHRoaXMuaW5wdXREYXRlUGFyc2UoZGF0ZSk7XG4gICAgICBpZiAoaXNWYWxpZERhdGUocGFyc2VkRGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlZERhdGU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBnZXRMb2NhbERhdGVGcm9tU3RyaW5nKGRhdGUsIHRoaXMubG9jYWxlLCB0aGlzLnRpbWVwaWNrZXIpO1xuICB9XG5cbiAgZ2V0Q3VzdG9tUmFuZ2VLZXkoY3VzdG9tUmFuZ2U6IGFueSkge1xuICAgIHJldHVybiBjdXN0b21SYW5nZVswXTtcbiAgfVxuXG4gIHNldEN1c3RvbVJhbmdlKGN1c3RvbVJhbmdlOiBhbnkpIHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLmdldEN1c3RvbVJhbmdlS2V5KGN1c3RvbVJhbmdlKTtcbiAgICB0aGlzLmhhbmRsZVN0YXJ0RGF0ZUNoYW5nZShjdXN0b21SYW5nZVsxXVswXSk7XG4gICAgdGhpcy5oYW5kbGVFbmREYXRlQ2hhbmdlKGN1c3RvbVJhbmdlWzFdWzFdKTtcbiAgfVxuXG4gIGhhbmRsZUNhbGVuZGFyQ2VsbEhvdmVyKCRldmVudDogRGF0ZSB8IG51bGwpIHtcbiAgICB0aGlzLmNhbGVuZGFyQ2VsbEhvdmVyLmVtaXQoJGV2ZW50KTtcbiAgICBpZiAoIXRoaXMuc3RhcnREYXRlKSB7XG4gICAgICB0aGlzLnNldElucHV0VmFsdWUodGhpcy5zdGFydERhdGVFbGVtZW50UmVmLCAkZXZlbnQpO1xuICAgICAgdGhpcy5pbnB1dFN0YXJ0SG92ZXJWYWx1ZSA9ICRldmVudDtcbiAgICAgIHRoaXMuc2V0SW5wdXRWYWx1ZSh0aGlzLmVuZERhdGVFbGVtZW50UmVmLCBudWxsKTtcbiAgICAgIHRoaXMuaW5wdXRFbmRIb3ZlclZhbHVlID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmVuZERhdGUpIHtcbiAgICAgIHRoaXMuc2V0SW5wdXRWYWx1ZSh0aGlzLmVuZERhdGVFbGVtZW50UmVmLCAkZXZlbnQpO1xuICAgICAgdGhpcy5pbnB1dEVuZEhvdmVyVmFsdWUgPSAkZXZlbnQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQ2FsZW5kYXJEYXRlQ2hhbmdlKCRldmVudDogRGF0ZSkge1xuICAgIGlmICh0aGlzLmNhbGVuZGFyRGF0ZS5nZXRUaW1lKCkgIT09ICRldmVudC5nZXRUaW1lKCkpIHtcbiAgICAgIHRoaXMuY2FsZW5kYXJEYXRlQ2hhbmdlLmVtaXQoJGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVTdGFydERhdGVDaGFuZ2UoZGF0ZTogRGF0ZSB8IG51bGwpIHtcbiAgICBpZiAoZGF0ZT8uZ2V0VGltZSgpICE9PSB0aGlzLnN0YXJ0RGF0ZT8uZ2V0VGltZSgpKSB7XG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IGRhdGUgPz8gbnVsbDtcbiAgICAgIHRoaXMuc3RhcnREYXRlVmFsdWUgPSB0aGlzLmZvcm1hdERhdGUodGhpcy5zdGFydERhdGUpO1xuICAgICAgdGhpcy5pbnB1dFN0YXJ0SG92ZXJWYWx1ZSA9IG51bGw7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5yYW5nZSA/IHsgc3RhcnREYXRlOiB0aGlzLnN0YXJ0RGF0ZSwgZW5kRGF0ZTogdGhpcy5lbmREYXRlIH0gOiB0aGlzLnN0YXJ0RGF0ZTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVFbmREYXRlQ2hhbmdlKGRhdGU6IERhdGUgfCBudWxsKSB7XG4gICAgaWYgKGRhdGU/LmdldFRpbWUoKSAhPT0gdGhpcy5lbmREYXRlPy5nZXRUaW1lKCkpIHtcbiAgICAgIGlmICghdGhpcy5yYW5nZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmVuZERhdGUgPSBkYXRlID8/IG51bGw7XG4gICAgICB0aGlzLmVuZERhdGVWYWx1ZSA9IHRoaXMuZm9ybWF0RGF0ZSh0aGlzLmVuZERhdGUpO1xuICAgICAgdGhpcy5pbnB1dEVuZEhvdmVyVmFsdWUgPSBudWxsO1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMucmFuZ2UgPyB7IHN0YXJ0RGF0ZTogdGhpcy5zdGFydERhdGUsIGVuZERhdGU6IHRoaXMuZW5kRGF0ZSB9IDogdGhpcy5zdGFydERhdGU7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQ2xlYXIoJGV2ZW50PzogTW91c2VFdmVudCkge1xuICAgIC8vIHRoaXMuY2FsZW5kYXJDb21wb25lbnQuY2xlYXJEYXRlcygpO1xuICAgIHRoaXMuaGFuZGxlU3RhcnREYXRlQ2hhbmdlKG51bGwpO1xuICAgIHRoaXMuaGFuZGxlRW5kRGF0ZUNoYW5nZShudWxsKTtcbiAgfVxuXG4gIGhhbmRsZVN0YXJ0RGF0ZUlucHV0Q2hhbmdlKCRldmVudDogYW55KSB7XG4gICAgY29uc3QgaW5wdXRWYWx1ZSA9ICgkZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgIGNvbnN0IGRhdGUgPSB0aGlzLmlucHV0UGFyc2UoaW5wdXRWYWx1ZSk7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICAvLyB0aGlzLmNhbGVuZGFyQ29tcG9uZW50LmNsZWFyRGF0ZXMoKTtcbiAgICAgIHRoaXMuaGFuZGxlU3RhcnREYXRlQ2hhbmdlKG51bGwpO1xuICAgICAgdGhpcy5oYW5kbGVFbmREYXRlQ2hhbmdlKG51bGwpO1xuICAgIH1cbiAgICBpZiAoZGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgZGF0ZS5nZXRUaW1lKCkpIHtcbiAgICAgIGlmICghKHRoaXMuZm9yYmlkZGVuRGF0ZShkYXRlKSB8fCAodGhpcy5lbmREYXRlICYmIHRoaXMuZW5kRGF0ZSA8IGRhdGUpKSkge1xuICAgICAgICB0aGlzLmNhbGVuZGFyRGF0ZSA9IGRhdGU7XG4gICAgICAgIHRoaXMuc3RhcnREYXRlID0gZGF0ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5oYW5kbGVTdGFydERhdGVDaGFuZ2UodGhpcy5zdGFydERhdGUgPz8gbnVsbCk7XG4gIH1cblxuICBoYW5kbGVFbmREYXRlSW5wdXRDaGFuZ2UoJGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBpbnB1dFZhbHVlID0gKCRldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgY29uc3QgZGF0ZSA9IHRoaXMuaW5wdXRQYXJzZShpbnB1dFZhbHVlKTtcbiAgICBpZiAoIWRhdGUpIHtcbiAgICAgIHRoaXMuZW5kRGF0ZSA9IG51bGw7XG4gICAgfVxuICAgIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSAmJiBkYXRlLmdldFRpbWUoKSkge1xuICAgICAgaWYgKCEodGhpcy5mb3JiaWRkZW5EYXRlKGRhdGUpIHx8ICh0aGlzLnN0YXJ0RGF0ZSAmJiB0aGlzLnN0YXJ0RGF0ZSA+IGRhdGUpKSkge1xuICAgICAgICB0aGlzLmNhbGVuZGFyRGF0ZSA9IGRhdGU7XG4gICAgICAgIHRoaXMuZW5kRGF0ZSA9IGRhdGU7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuaGFuZGxlRW5kRGF0ZUNoYW5nZSh0aGlzLmVuZERhdGUgPz8gbnVsbCk7XG4gIH1cblxuICBmb3JiaWRkZW5EYXRlKGRhdGU6IERhdGUpIHtcbiAgICByZXR1cm4gaXNEYXRlRGlzYWJsZWQoZGF0ZSwgdGhpcy5taW5EYXRlLCB0aGlzLm1heERhdGUsIHRoaXMuZGlzYWJsZWREYXRlcykgfHwgKHRoaXMuZGF0ZUZpbHRlciA/ICF0aGlzLmRhdGVGaWx0ZXIoZGF0ZSkgOiBmYWxzZSk7XG4gIH1cblxuICBzZXRJbnB1dFZhbHVlID0gKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIGRhdGU6IERhdGUgfCBudWxsKSA9PiB7XG4gICAgaWYgKCFlbGVtZW50UmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuZm9ybWF0RGF0ZShkYXRlKTtcbiAgICAvLyBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWVBc0RhdGUgPSBkYXRlO1xuICAgIHJldHVybjtcbiAgfTtcblxuICBvbkNoYW5nZTogYW55ID0gKHZhbHVlOiBhbnkpID0+IHt9O1xuICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUgIT09IG51bGwpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnJhbmdlID8geyAuLi52YWx1ZSB9IDogdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlU3RhcnRUaW1lQ2hhbmdlKHRpbWU6IERhdGUgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnN0YXJ0RGF0ZSA9IHRpbWUgPz8gdGhpcy5zdGFydERhdGU7XG4gIH1cblxuICBoYW5kbGVFbmRUaW1lQ2hhbmdlKHRpbWU6IERhdGUgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoIXRoaXMucmFuZ2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5lbmREYXRlID0gdGltZSA/PyB0aGlzLmVuZERhdGU7XG4gIH1cbn1cbiIsIjxjLWRyb3Bkb3duICNkcm9wZG93bj1cImNEcm9wZG93blwiIFthdXRvQ2xvc2VdPVwiJ291dHNpZGUnXCIgY2xhc3M9XCJkYXRlLXBpY2tlciBwaWNrZXJcIiBbbmdDbGFzc109XCJkYXRlUGlja2VyQ2xhc3Nlc1wiXG4gICAgICAgICAgICBbKHZpc2libGUpXT1cInZpc2libGVcIiBbcG9wcGVyT3B0aW9uc109XCJwb3BwZXJqc09wdGlvbnNcIj5cbiAgPGRpdiBbY2FyZXRdPVwiZmFsc2VcIlxuICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCA/PyBkcm9wZG93bi52aXNpYmxlXCJcbiAgICAgICBjRHJvcGRvd25Ub2dnbGVcbiAgICAgICBjbGFzcz1cImRhdGUtcGlja2VyLWlucHV0LWdyb3VwXCJcbiAgPlxuICAgIDxpbnB1dCAjc3RhcnREYXRlRWxlbWVudFJlZlxuICAgICAgICAgICAoY2hhbmdlKT1cImhhbmRsZVN0YXJ0RGF0ZUlucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJkaXNhYmxlZCA/IC0xIDogMFwiXG4gICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzdGFydERhdGVJbnB1dFwiXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cIntob3ZlcjogISFpbnB1dFN0YXJ0SG92ZXJWYWx1ZX1cIlxuICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwic3RhcnREYXRlUGxhY2Vob2xkZXJcIlxuICAgICAgICAgICBbcmVhZG9ubHldPVwiaW5wdXRSZWFkT25seSA/PyBudWxsXCJcbiAgICAgICAgICAgW3ZhbGlkXT1cInJhbmdlID8gdW5kZWZpbmVkIDogdmFsaWRcIlxuICAgICAgICAgICBjRm9ybUNvbnRyb2xcbiAgICAgICAgICAgY2xhc3M9XCJkYXRlLXBpY2tlci1pbnB1dFwiXG4gICAgICAgICAgIHBhdHRlcm49XCJbMS05XSpcIlxuICAgID5cbiAgICBAaWYgKHJhbmdlICYmIHNlcGFyYXRvciAhPT0gZmFsc2UpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRlLXBpY2tlci1zZXBhcmF0b3JcIj48L2Rpdj5cbiAgICB9XG4gICAgQGlmIChyYW5nZSkge1xuICAgICAgPGlucHV0ICNlbmREYXRlRWxlbWVudFJlZlxuICAgICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlRW5kRGF0ZUlucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cImRpc2FibGVkID8gLTEgOiAwXCJcbiAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZW5kRGF0ZUlucHV0XCJcbiAgICAgICAgICAgICBbbmdDbGFzc109XCJ7aG92ZXI6ICEhaW5wdXRFbmRIb3ZlclZhbHVlfVwiXG4gICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImVuZERhdGVQbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgW3JlYWRvbmx5XT1cImlucHV0UmVhZE9ubHkgPz8gbnVsbFwiXG4gICAgICAgICAgICAgW3ZhbGlkXT1cInZhbGlkID8/IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgY0Zvcm1Db250cm9sXG4gICAgICAgICAgICAgY2xhc3M9XCJkYXRlLXBpY2tlci1pbnB1dFwiXG4gICAgICAgICAgICAgcGF0dGVybj1cIlsxLTldKlwiXG4gICAgICA+XG4gICAgfVxuICAgIEBpZiAoaW5kaWNhdG9yKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1waWNrZXItaW5kaWNhdG9yXCI+PC9kaXY+XG4gICAgfVxuICAgIEBpZiAoY2xlYW5lciAmJiBzdGFydERhdGVFbGVtZW50UmVmLnZhbHVlICYmICFkaXNhYmxlZCkge1xuICAgICAgPGRpdiAoY2xpY2spPVwiIWRpc2FibGVkICYmIGhhbmRsZUNsZWFyKCRldmVudClcIiBjbGFzcz1cImRhdGUtcGlja2VyLWNsZWFuZXJcIiByb2xlPVwiYnV0dG9uXCI+PC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbiAgPGRpdiBjRHJvcGRvd25NZW51IGNsYXNzPVwiZGF0ZS1waWNrZXItZHJvcGRvd24gcHktMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJkYXRlLXBpY2tlci1ib2R5XCI+XG4gICAgICBAaWYgKCFzaG93UmFuZ2VzKSB7XG4gICAgICAgIEBpZiAocmFuZ2VzICYmIGN1c3RvbVJhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtcGlja2VyLXJhbmdlc1wiPlxuICAgICAgICAgICAgQGZvciAoY3VzdG9tUmFuZ2Ugb2YgY3VzdG9tUmFuZ2VzOyB0cmFjayBjdXN0b21SYW5nZSkge1xuICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzZXRDdXN0b21SYW5nZShjdXN0b21SYW5nZSlcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJyYW5nZXNCdXR0b25zQ29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgIFtzaXplXT1cInJhbmdlc0J1dHRvbnNTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFyaWFudF09XCJyYW5nZXNCdXR0b25zVmFyaWFudFwiXG4gICAgICAgICAgICAgICAgICAgICAgY0J1dHRvbj5cbiAgICAgICAgICAgICAgICB7eyBjdXN0b21SYW5nZSB8IGN1c3RvbVJhbmdlS2V5IH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9XG4gICAgICA8Yy1jYWxlbmRhclxuICAgICAgICAoY2FsZW5kYXJDZWxsSG92ZXIpPVwiaGFuZGxlQ2FsZW5kYXJDZWxsSG92ZXIoJGV2ZW50KVwiXG4gICAgICAgIChjYWxlbmRhckRhdGVDaGFuZ2UpPVwiaGFuZGxlQ2FsZW5kYXJEYXRlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAoZW5kRGF0ZUNoYW5nZSk9XCJoYW5kbGVFbmREYXRlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAoc3RhcnREYXRlQ2hhbmdlKT1cImhhbmRsZVN0YXJ0RGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW2NhbGVuZGFyRGF0ZV09XCJjYWxlbmRhckRhdGVcIlxuICAgICAgICBbY2FsZW5kYXJzXT1cImlzTW9iaWxlID8gMSA6IGNhbGVuZGFyc1wiXG4gICAgICAgIFtkYXRlRmlsdGVyXT1cImRhdGVGaWx0ZXJcIlxuICAgICAgICBbZGlzYWJsZWREYXRlc109XCJkaXNhYmxlZERhdGVzXCJcbiAgICAgICAgW2VuZERhdGVdPVwiZW5kRGF0ZVwiXG4gICAgICAgIFtmaXJzdERheU9mV2Vla109XCJmaXJzdERheU9mV2Vla1wiXG4gICAgICAgIFtsb2NhbGVdPVwibG9jYWxlXCJcbiAgICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgICAgICBbbmF2aWdhdGlvbl09XCJuYXZpZ2F0aW9uXCJcbiAgICAgICAgW3JhbmdlXT1cInJhbmdlXCJcbiAgICAgICAgW3N0YXJ0RGF0ZV09XCJzdGFydERhdGVcIlxuICAgICAgICBbbmF2WWVhckZpcnN0XT1cIm5hdlllYXJGaXJzdFwiXG4gICAgICAgIFtkYXlGb3JtYXRdPVwiZGF5Rm9ybWF0XCJcbiAgICAgICAgW3dlZWtkYXlGb3JtYXRdPVwid2Vla2RheUZvcm1hdFwiXG4gICAgICAgIFtzZWxlY3RBZGphY2VudERheXNdPVwic2VsZWN0QWRqYWNlbnREYXlzXCJcbiAgICAgICAgW3Nob3dBZGphY2VudERheXNdPVwic2hvd0FkamFjZW50RGF5c1wiXG4gICAgICAgIFtzaG93V2Vla051bWJlcl09XCJzaG93V2Vla051bWJlclwiXG4gICAgICAgIFtzZWxlY3Rpb25UeXBlXT1cInNlbGVjdGlvblR5cGVcIlxuICAgICAgICBbd2Vla051bWJlcnNMYWJlbF09XCJ3ZWVrTnVtYmVyc0xhYmVsXCJcbiAgICAgICAgY2xhc3M9XCJkYXRlLXBpY2tlci1jYWxlbmRhcnNcIlxuICAgICAgLz5cbiAgICAgIEBpZiAoZmFsc2UgJiYgdGltZXBpY2tlcikge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1waWNrZXItdGltZXBpY2tlcnNcIj5cbiAgICAgICAgICA8IS0tIHRvZG8tLT5cbiAgICAgICAgICA8Yy10aW1lLXBpY2tlclxuICAgICAgICAgICAgdmFyaWFudD1cInNlbGVjdFwiXG4gICAgICAgICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXJ0RGF0ZVwiXG4gICAgICAgICAgICBbdGltZV09XCJzdGFydERhdGUgPz8gdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICh0aW1lQ2hhbmdlKT1cImhhbmRsZVN0YXJ0VGltZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIEBpZiAocmFuZ2UpIHtcbiAgICAgICAgICAgIDxjLXRpbWUtcGlja2VyXG4gICAgICAgICAgICAgIHZhcmlhbnQ9XCJzZWxlY3RcIlxuICAgICAgICAgICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZW5kRGF0ZVwiXG4gICAgICAgICAgICAgIFt0aW1lXT1cImVuZERhdGUgPz8gdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgKHRpbWVDaGFuZ2UpPVwiaGFuZGxlRW5kVGltZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICBAaWYgKHRlbXBsYXRlcz8uZGF0ZVBpY2tlckZvb3Rlcikge1xuICAgICAgPGRpdiBjbGFzcz1cImRhdGUtcGlja2VyLWZvb3RlclwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVzPy5kYXRlUGlja2VyRm9vdGVyOyBjb250ZXh0OiB7JGltcGxpY2l0OiBkcm9wZG93bn1cIiAvPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbiAgPG5nLWNvbnRlbnQgLz5cbjwvYy1kcm9wZG93bj5cbiJdfQ==
699
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9kYXRlLXJhbmdlLXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2RhdGUtcmFuZ2UtcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUNMLGVBQWUsRUFJZixNQUFNLEVBR04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUVMLFdBQVcsRUFFWCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLFVBQVUsRUFDWCxNQUFNLGdCQUFnQixDQUFDO0FBTXhCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxzQkFBc0IsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFbkgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQVE3RCxrQ0FBa0M7QUFDbEMsbUJBQW1CO0FBQ25CLDRFQUE0RTtBQUM1RSxvRUFBb0U7QUFDcEUsOERBQThEO0FBQzlELGtEQUFrRDtBQUNsRCx1REFBdUQ7QUFDdkQsb0JBQW9CO0FBQ3BCLGlGQUFpRjtBQUNqRixpREFBaUQ7QUFDakQsb0RBQW9EO0FBQ3BELG9GQUFvRjtBQUNwRiwwRkFBMEY7QUFDMUYsT0FBTztBQUNQLElBQUk7QUErQkosTUFBTSxPQUFPLHdCQUF3QjtJQUVuQyxZQUNVLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBR2hEOzs7O1dBSUc7UUFDTSxjQUFTLEdBQWtCLFNBQVMsQ0FBQztRQUU5Qzs7OztXQUlHO1FBQ29DLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFFN0Q7Ozs7V0FJRztRQUNxQyxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXZEOzs7O1dBSUc7UUFDcUMsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFXdkU7Ozs7V0FJRztRQUNxQyxjQUFTLEdBQVksSUFBSSxDQUFDO1FBNEJsRSxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUVoQzs7OztXQUlHO1FBQ3FDLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRXRFOzs7V0FHRztRQUNNLGdCQUFXLEdBQXNCLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBUXJFOzs7O1dBSUc7UUFDTSx1QkFBa0IsR0FBWSxXQUFXLENBQUM7UUFFbkQ7OztXQUdHO1FBQ00sc0JBQWlCLEdBQXFCLEVBQUUsQ0FBQztRQUVsRDs7O1dBR0c7UUFDTSx5QkFBb0IsR0FBeUIsT0FBTyxDQUFDO1FBRTlEOzs7O1dBSUc7UUFDcUMsY0FBUyxHQUFHLElBQUksQ0FBQztRQXdCekQsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFFN0I7Ozs7V0FJRztRQUNNLFVBQUssR0FBYSxTQUFTLENBQUM7UUFFckM7Ozs7V0FJRztRQUNxQyxZQUFPLEdBQVksS0FBSyxDQUFDO1FBa0M1QixpQkFBWSxHQUFTLElBQUksSUFBSSxFQUFFLENBQUM7UUFDNUQsa0JBQWEsR0FBc0IsRUFBRSxDQUFDO1FBRS9DOzs7O1dBSUc7UUFDb0MsbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFFekQsV0FBTSxHQUFXLFNBQVMsQ0FBQztRQUMzQixZQUFPLEdBQWdCLElBQUksQ0FBQztRQUM1QixZQUFPLEdBQWdCLElBQUksQ0FBQztRQUVyQzs7OztXQUlHO1FBQ3FDLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFMUQ7Ozs7V0FJRztRQUNxQyxVQUFLLEdBQUcsSUFBSSxDQUFDO1FBZXJELGNBQVMsR0FBRyxLQUFLLENBQUM7UUEyQlYsV0FBTSxHQUFRLEVBQUUsQ0FBQztRQUV6Qjs7OztXQUlHO1FBQ00sa0JBQWEsR0FBc0IsT0FBTyxDQUFDO1FBRXBEOzs7V0FHRztRQUNxQixvQkFBZSxHQUFxQjtZQUMxRCxRQUFRLEVBQUUsVUFBVTtTQUNyQixDQUFDO1FBRUY7Ozs7O1dBS0c7UUFDcUMsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBRTVFOzs7OztXQUtHO1FBQ3FDLHFCQUFnQixHQUFZLElBQUksQ0FBQztRQUV6RTs7Ozs7V0FLRztRQUNNLGtCQUFhLEdBQXNDLEtBQUssQ0FBQztRQUVsRTs7Ozs7V0FLRztRQUNxQyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQVVyRCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUE2QixDQUFDO1FBRXJFLHNCQUFpQixHQUE4QixJQUFJLFlBQVksRUFBZSxDQUFDO1FBQy9FLHVCQUFrQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2xFLGtCQUFhLEdBQThCLElBQUksWUFBWSxFQUFlLENBQUM7UUFDM0Usb0JBQWUsR0FBOEIsSUFBSSxZQUFZLEVBQWUsQ0FBQztRQU12RixjQUFTLEdBQVEsRUFBRSxDQUFDO1FBR1YsNEJBQXVCLEdBQW1CLEVBQUUsQ0FBQztRQXdCaEQsYUFBUSxHQUFHLElBQUksQ0FBQztRQUVoQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBVzNCLG9CQUFlLEdBQVcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFXM0Qsa0JBQWEsR0FBVyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQVk3RCxtQkFBbUI7UUFDbkIsbUJBQWMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDeEYsVUFBVSxDQUFDLFFBQVE7WUFDbkIsMkJBQTJCO1lBQzNCLDRCQUE0QjtZQUM1QiwwQ0FBMEM7U0FDM0MsQ0FBQyxDQUFDO1FBQ0gsaUJBQVksR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDcEYsVUFBVSxDQUFDLFFBQVE7WUFDbkIsMkJBQTJCO1lBQzNCLDRCQUE0QjtZQUM1QiwwQ0FBMEM7U0FDM0MsQ0FBQyxDQUFDO1FBMENNLGlCQUFZLEdBQUc7WUFDdEIsaUJBQWlCLEVBQUUsb0JBQW9CO1lBQ3ZDLFlBQVksRUFBRSxvQkFBb0I7WUFDbEMsa0JBQWtCLEVBQUUsb0JBQW9CO1NBQ3pDLENBQUM7UUErS0Ysa0JBQWEsR0FBRyxDQUFDLFVBQXNCLEVBQUUsSUFBaUIsRUFBRSxFQUFFO1lBQzVELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDaEIsT0FBTztZQUNULENBQUM7WUFDRCxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZELCtDQUErQztZQUMvQyxPQUFPO1FBQ1QsQ0FBQyxDQUFDO1FBRUYsYUFBUSxHQUFRLENBQUMsS0FBVSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDbkMsY0FBUyxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQXZuQnRCLENBQUM7SUEwREw7Ozs7T0FJRztJQUNILElBQ0ksYUFBYSxDQUFDLEtBQWM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDO0lBQ2hFLENBQUM7SUFFRCxjQUFjLENBQWtCO0lBc0RoQzs7OztPQUlHO0lBQ0gsSUFDSSxVQUFVLENBQUMsS0FBYztRQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxLQUFLLENBQUM7UUFDYiwyQkFBMkI7SUFDN0IsQ0FBQztJQUVELFdBQVcsQ0FBa0I7SUFnQjdCLElBQ0ksU0FBUyxDQUFDLEtBQUs7UUFDakIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDcEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDakQsSUFBSSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFJRCxJQUNJLE9BQU8sQ0FBQyxLQUFLO1FBQ2YsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3JFLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQy9DLElBQUksUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNyRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBa0NELElBQ0ksUUFBUSxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM5RSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzVFLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELFNBQVMsQ0FBUztJQUVsQixJQUNJLEtBQUssQ0FBQyxLQUFVO1FBQ2xCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ25ELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzdELElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDO1lBQ3ZCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDO2dCQUN2RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQztZQUNyRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQztZQUMvQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN2QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDNUYsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQTJFUyxtQkFBbUIsQ0FBQyxZQUFxQixJQUFJO1FBQ3JELElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxPQUFPO1lBQ1AsNkVBQTZFO1lBQzdFLDJCQUEyQjtZQUMzQix5QkFBeUI7WUFDekIsT0FBTztZQUNQLDZFQUE2RTtZQUM3RSx5QkFBeUI7WUFDekIseUJBQXlCO1lBQ3pCLE9BQU87WUFDUCxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDbEQsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUV5QixNQUFNO1FBQzlCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBTUQsSUFBSSxjQUFjLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBSUQsSUFBSSxZQUFZLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFJRCxJQUFXLG9CQUFvQjtRQUM3QixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ2xGLENBQUM7SUFBQSxDQUFDO0lBRUYsSUFBVyxrQkFBa0I7UUFDM0IsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUNsRixDQUFDO0lBQUEsQ0FBQztJQW1CRixJQUFJLG9CQUFvQixDQUFDLEtBQUs7UUFDNUIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDcEMsQ0FBQztJQUlELElBQUksa0JBQWtCLENBQUMsS0FBSztRQUMxQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBSUQsSUFDSSxpQkFBaUI7UUFDbkIsT0FBTztZQUNMLGFBQWEsRUFBRSxJQUFJO1lBQ25CLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUN2QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSTtZQUMvQixZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLO1NBQ25DLENBQUM7SUFDSixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQTZCO1FBQ3RDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLGVBQWUsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDekUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JBQzVHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7d0JBQ3BELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVRLFlBQVksQ0FJbkI7SUFFRixRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRW5FLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFFdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDO1lBQ25ELFdBQVcsQ0FBQyxpQkFBaUI7WUFDN0IsV0FBVyxDQUFDLFlBQVk7WUFDeEIsV0FBVyxDQUFDLGtCQUFrQjtTQUMvQixDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3BCLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDdEosSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQ3ZFLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsZUFBZTtRQUNiLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBMEIsRUFBRSxFQUFFO2dCQUMzRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDcEIsNEJBQTRCO1lBQzVCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDO1lBQzVFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ2hELENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDO1lBQ2pGLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ2hELENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDO1lBQy9FLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFnRDtRQUNqRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDeEMsQ0FBQztRQUNELE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBWTtRQUNyQixJQUFJLE9BQU8sSUFBSSxDQUFDLGNBQWMsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUM5QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdDLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sVUFBVSxDQUFDO1lBQ3BCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELGlCQUFpQixDQUFDLFdBQWdCO1FBQ2hDLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxjQUFjLENBQUMsV0FBZ0I7UUFDN0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELHVCQUF1QixDQUFDLE1BQW1CO1FBQ3pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsTUFBTSxDQUFDO1lBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7WUFDL0IsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUM7WUFDakMsT0FBTztRQUNULENBQUM7SUFDSCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsTUFBWTtRQUNuQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLEtBQUssTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDckQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxDQUFDO0lBQ0gsQ0FBQztJQUVELHFCQUFxQixDQUFDLElBQWlCO1FBQ3JDLElBQUksSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNsRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxJQUFJLENBQUM7WUFDOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2xHLENBQUM7SUFDSCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsSUFBaUI7UUFDbkMsSUFBSSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2hCLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDO1lBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztZQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNsRyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFtQjtRQUM3Qix1Q0FBdUM7UUFDdkMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsMEJBQTBCLENBQUMsTUFBVztRQUNwQyxNQUFNLFVBQVUsR0FBSSxNQUFNLENBQUMsTUFBMkIsQ0FBQyxLQUFLLENBQUM7UUFDN0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVix1Q0FBdUM7WUFDdkMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsSUFBSSxJQUFJLFlBQVksSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN6RSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztnQkFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDeEIsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsTUFBVztRQUNsQyxNQUFNLFVBQVUsR0FBSSxNQUFNLENBQUMsTUFBMkIsQ0FBQyxLQUFLLENBQUM7UUFDN0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUN0QixDQUFDO1FBQ0QsSUFBSSxJQUFJLFlBQVksSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM3RSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztnQkFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDdEIsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQVU7UUFDdEIsT0FBTyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BJLENBQUM7SUFjRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQztJQUVELHFCQUFxQixDQUFDLElBQXNCO1FBQzFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUMsQ0FBQztJQUVELG1CQUFtQixDQUFDLElBQXNCO1FBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RDLENBQUM7K0dBeHBCVSx3QkFBd0I7bUdBQXhCLHdCQUF3QiwrSEFrQmYsZUFBZSxtQ0FPZixnQkFBZ0IscURBT2hCLGdCQUFnQiwyREFnQmhCLGdCQUFnQiwySEFtQmhCLGdCQUFnQixrREFnQmhCLGdCQUFnQix1TkFzQ2hCLGdCQUFnQiwwREFjaEIsZ0JBQWdCLG1EQXdCaEIsZ0JBQWdCLDhGQWtDaEIsYUFBYSx3RkFRYixlQUFlLHNHQVdmLGdCQUFnQiw2QkFPaEIsZ0JBQWdCLGdFQUloQixnQkFBZ0IsMktBNkRoQixnQkFBZ0IsOERBUWhCLGdCQUFnQix3RkFnQmhCLGdCQUFnQix5VkE1VHpCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztnQkFDdkQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDJEQTRVZ0IsbUJBQW1CLDBVQzFhdEMsNjRJQXFIQSxpSEQzQ0ksT0FBTyxvRkFDUCxnQkFBZ0IsbUpBQ2hCLG1CQUFtQixtdUJBQ25CLGlCQUFpQixzZkFDakIsbUJBQW1CLDBVQUNuQixlQUFlLDBKQUNmLGlCQUFpQiwyTkFDakIsdUJBQXVCLDBKQUN2QixxQkFBcUIsMkhBRXJCLG9CQUFvQixxSUFFcEIsa0JBQWtCOzs0RkFVVCx3QkFBd0I7a0JBN0JwQyxTQUFTOytCQUNFLHFCQUFxQixZQUdyQixrQkFBa0IsY0FDaEIsSUFBSSxXQUNQO3dCQUNQLE9BQU87d0JBQ1AsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2QixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjtxQkFDbkIsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx5QkFBeUIsQ0FBQzs0QkFDdkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7dUZBYVEsU0FBUztzQkFBakIsS0FBSztnQkFPaUMsU0FBUztzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBT0csT0FBTztzQkFBOUMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFPRSxhQUFhO3NCQUFwRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVN0QyxNQUFNO3NCQURMLEtBQUs7Z0JBUWtDLFNBQVM7c0JBQWhELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBTTdCLGVBQWU7c0JBQXZCLEtBQUs7Z0JBTUcsY0FBYztzQkFBdEIsS0FBSztnQkFRRixhQUFhO3NCQURoQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQWdCRSxZQUFZO3NCQUFuRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQU03QixXQUFXO3NCQUFuQixLQUFLO2dCQU1HLE1BQU07c0JBQWQsS0FBSztnQkFPRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBTUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQU1HLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFPa0MsU0FBUztzQkFBaEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFPN0IsSUFBSTtzQkFBWixLQUFLO2dCQVFGLFVBQVU7c0JBRGIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFpQjdCLEtBQUs7c0JBQWIsS0FBSztnQkFPa0MsT0FBTztzQkFBOUMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFHbEMsU0FBUztzQkFEWixLQUFLO2dCQWlCRixPQUFPO3NCQURWLEtBQUs7Z0JBZ0IrQixZQUFZO3NCQUFoRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRTtnQkFDMUIsYUFBYTtzQkFBckIsS0FBSztnQkFPaUMsY0FBYztzQkFBcEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBRTVCLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQU9rQyxVQUFVO3NCQUFqRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQU9FLEtBQUs7c0JBQTVDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRTdCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0YsUUFBUTtzQkFEWCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQWNsQyxLQUFLO3NCQURSLEtBQUs7Z0JBZ0NHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBTWtCLGVBQWU7c0JBQXRDLEtBQUs7dUJBQUMsZUFBZTtnQkFVa0Isa0JBQWtCO3NCQUF6RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVFFLGdCQUFnQjtzQkFBdkQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFRN0IsYUFBYTtzQkFBckIsS0FBSztnQkFRa0MsY0FBYztzQkFBckQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFRN0IsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVhLFdBQVc7c0JBQTdCLE1BQU07Z0JBRUcsaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBRzJCLG1CQUFtQjtzQkFBcEQsU0FBUzt1QkFBQyxxQkFBcUI7Z0JBQ0EsaUJBQWlCO3NCQUFoRCxTQUFTO3VCQUFDLG1CQUFtQjtnQkFHK0IsZ0JBQWdCO3NCQUE1RSxlQUFlO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFzQmpDLE1BQU07c0JBQS9CLFlBQVk7dUJBQUMsVUFBVTtnQkE0RXBCLGlCQUFpQjtzQkFEcEIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZvcm1hdERhdGUsIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1Db250cm9sLFxuICBGb3JtR3JvdXAsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBWYWxpZGF0b3JzXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICdAcG9wcGVyanMvY29yZSc7XG5cbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2J1dHRvbic7XG5pbXBvcnQgeyBkYXRlVHJhbnNmb3JtLCBnZXRMb2NhbERhdGVGcm9tU3RyaW5nLCBpc0RhdGVEaXNhYmxlZCwgaXNWYWxpZERhdGUgfSBmcm9tICcuLi8uLi9jYWxlbmRhci9jYWxlbmRhci51dGlscyc7XG5pbXBvcnQgeyBEYXRlRmlsdGVyVHlwZSwgRGF5Rm9ybWF0VHlwZSwgV2Vla2RheUZvcm1hdFR5cGUgfSBmcm9tICcuLi8uLi9jYWxlbmRhci9jYWxlbmRhci5zZXJ2aWNlJztcbmltcG9ydCB7IENhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2FsZW5kYXInO1xuaW1wb3J0IHsgQ29sb3JzIH0gZnJvbSAnLi4vLi4vY29yZXVpLnR5cGVzJztcbmltcG9ydCB7IERyb3Bkb3duQ29tcG9uZW50LCBEcm9wZG93bk1lbnVEaXJlY3RpdmUsIERyb3Bkb3duVG9nZ2xlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZHJvcGRvd24nO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xEaXJlY3RpdmUsIElucHV0R3JvdXBDb21wb25lbnQsIElucHV0R3JvdXBUZXh0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZm9ybSc7XG5pbXBvcnQgeyBUZW1wbGF0ZUlkRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vc2hhcmVkJztcbmltcG9ydCB7IFRpbWVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi90aW1lLXBpY2tlcic7XG5pbXBvcnQgeyBDdXN0b21SYW5nZUtleVBpcGUgfSBmcm9tICcuL2N1c3RvbS1yYW5nZS1rZXkucGlwZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNhbGVuZGFyUmFuZ2VzIHtcbiAgW2tleTogc3RyaW5nXTogRGF0ZVtdO1xufVxuXG5leHBvcnQgdHlwZSBUQ3VzdG9tUmFuZ2UgPSBbc3RyaW5nLCBEYXRlW11dXG5cbi8qKiBNdXN0IGJlIGEgdmFsaWQgZGF0ZSBzdHJpbmcgKi9cbi8vIHRvZG86IHZhbGlkYXRpb25cbi8vIGV4cG9ydCBmdW5jdGlvbiBpbnZhbGlkRGF0ZVN0cmluZ1ZhbGlkYXRvcihsb2NhbGU6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcbi8vICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4vLyAgICAgLy8gY29uc3QgdmFsaWREYXRlID0gIWlzTmFOKERhdGUucGFyc2UoY29udHJvbC52YWx1ZSkpO1xuLy8gICAgIHN0cmluZ1RvRGF0ZUNvbnZlcnQoY29udHJvbC52YWx1ZSwgbG9jYWxlKTtcbi8vICAgICBjb25zdCBkYXRlU2hpbSA9IGN2dERhdGUoY29udHJvbC52YWx1ZSwgbG9jYWxlKTtcbi8vICAgICAvLyBAdHMtaWdub3JlXG4vLyAgICAgLy8gY29udHJvbC5zZXRWYWx1ZShuZXcgRGF0ZShkYXRlU2hpbS55ZWFyLCBkYXRlU2hpbS5tb250aCwgZGF0ZVNoaW0uZGF5KSlcbi8vICAgICBjb25zb2xlLmxvZygnZGF0ZVNoaW0nLCBkYXRlU2hpbSwgbG9jYWxlKTtcbi8vICAgICBjb25zdCB2YWxpZERhdGUgPSBpc1ZhbGlkRGF0ZShjb250cm9sLnZhbHVlKTtcbi8vICAgICBjb25zb2xlLmxvZygnaW52YWxpZERhdGVTdHJpbmdWYWxpZGF0b3InLCBjb250cm9sLCBjb250cm9sLnZhbHVlLCB2YWxpZERhdGUpO1xuLy8gICAgIHJldHVybiB2YWxpZERhdGUgPyB7IGludmFsaWREYXRlU3RyaW5nVmFsaWRhdG9yOiB7IHZhbHVlOiBjb250cm9sLnZhbHVlIH0gfSA6IG51bGw7XG4vLyAgIH07XG4vLyB9XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MtZGF0ZS1yYW5nZS1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBleHBvcnRBczogJ2NEYXRlUmFuZ2VQaWNrZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdDbGFzcyxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQ2FsZW5kYXJDb21wb25lbnQsXG4gICAgVGltZVBpY2tlckNvbXBvbmVudCxcbiAgICBCdXR0b25EaXJlY3RpdmUsXG4gICAgRHJvcGRvd25Db21wb25lbnQsXG4gICAgRHJvcGRvd25Ub2dnbGVEaXJlY3RpdmUsXG4gICAgRHJvcGRvd25NZW51RGlyZWN0aXZlLFxuICAgIElucHV0R3JvdXBDb21wb25lbnQsXG4gICAgRm9ybUNvbnRyb2xEaXJlY3RpdmUsXG4gICAgSW5wdXRHcm91cFRleHREaXJlY3RpdmUsXG4gICAgQ3VzdG9tUmFuZ2VLZXlQaXBlXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGVSYW5nZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyXG4gICkgeyB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZm9ybWF0IG9mIGRheSBuYW1lLlxuICAgKiBAZGVmYXVsdCAnbnVtZXJpYydcbiAgICogQHR5cGUgRGF5Rm9ybWF0VHlwZVxuICAgKi9cbiAgQElucHV0KCkgZGF5Rm9ybWF0OiBEYXlGb3JtYXRUeXBlID0gJ251bWVyaWMnO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGNhbGVuZGFycyB0aGF0IHJlbmRlciBvbiBkZXNrdG9wIGRldmljZXMuXG4gICAqIEB0eXBlIG51bWJlclxuICAgKiBAZGVmYXVsdCAyXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBjYWxlbmRhcnM6IG51bWJlciA9IDI7XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB2aXNpYmlsaXR5IG9yIHNldCB0aGUgY29udGVudCBvZiB0aGUgY2xlYW5lciBidXR0b24uXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGNsZWFuZXIgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmUgaWYgdGhlIGRyb3Bkb3duIHNob3VsZCBiZSBjbG9zZWQgYWZ0ZXIgdmFsdWUgc2V0dGluZy5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGNsb3NlT25TZWxlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogU2V0IGRhdGUgZm9ybWF0LlxuICAgKiBXZSB1c2UgQW5ndWxhciBmb3JtYXREYXRlKCkgZnVuY3Rpb24sIHNlZTpcbiAgICogLSBodHRwczovL2FuZ3VsYXIuaW8vYXBpL2NvbW1vbi9mb3JtYXREYXRlXG4gICAqIC0gaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9jb21tb24vRGF0ZVBpcGUjcHJlLWRlZmluZWQtZm9ybWF0LW9wdGlvbnNcbiAgICovXG4gIEBJbnB1dCgpXG4gIGZvcm1hdD86IHN0cmluZztcblxuICAvKipcbiAgICogVG9nZ2xlIHZpc2liaWxpdHkgb3Igc2V0IHRoZSBjb250ZW50IG9mIHRoZSBpbnB1dCBpbmRpY2F0b3IuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGluZGljYXRvcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBmdW5jdGlvbiB0byBmb3JtYXQgdGhlIHNlbGVjdGVkIGRhdGUgaW50byBhIHN0cmluZyBhY2NvcmRpbmcgdG8gYSBjdXN0b20gZm9ybWF0LlxuICAgKiBAc2luY2UgdjUuMC4wXG4gICAqL1xuICBASW5wdXQoKSBpbnB1dERhdGVGb3JtYXQ/OiAoZGF0ZTogRGF0ZSkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gZnVuY3Rpb24gdG8gcGFyc2UgdGhlIGlucHV0IHZhbHVlIGludG8gYSB2YWxpZCBEYXRlIG9iamVjdC5cbiAgICogQHNpbmNlIHY1LjAuMFxuICAgKi9cbiAgQElucHV0KCkgaW5wdXREYXRlUGFyc2U/OiAoZGF0ZTogc3RyaW5nIHwgRGF0ZSkgPT4gRGF0ZTtcblxuICAvKipcbiAgICogVG9nZ2xlIHRoZSByZWFkb25seSBzdGF0ZSBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHNldCBpbnB1dFJlYWRPbmx5KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4jaW5wdXRSZWFkT25seSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGlucHV0UmVhZE9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI2lucHV0UmVhZE9ubHkgfHwgdHlwZW9mIHRoaXMuZm9ybWF0ID09PSAnc3RyaW5nJztcbiAgfVxuXG4gICNpbnB1dFJlYWRPbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFJlb3JkZXIgeWVhci1tb250aCBuYXZpZ2F0aW9uLCBhbmQgcmVuZGVyIHllYXIgZmlyc3QuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBuYXZZZWFyRmlyc3Q6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHNob3J0IGhpbnRzIHRoYXQgYXJlIHZpc2libGUgaW4gc3RhcnQgZGF0ZSBhbmQgZW5kIGRhdGUgaW5wdXRzLlxuICAgKiB0eXBlIHN0cmluZ1xuICAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyB8IHN0cmluZ1tdID0gWydTdGFydCBkYXRlJywgJ0VuZCBkYXRlJ107XG5cbiAgLyoqXG4gICAqIFByZWRlZmluZWQgZGF0ZSByYW5nZXMgdGhlIHVzZXIgY2FuIHNlbGVjdCBmcm9tLlxuICAgKiBAdHlwZSBJQ2FsZW5kYXJSYW5nZXNcbiAgICovXG4gIEBJbnB1dCgpIHJhbmdlcz86IElDYWxlbmRhclJhbmdlcztcblxuICAvKipcbiAgICogU2V0cyB0aGUgY29sb3IgY29udGV4dCBvZiB0aGUgY2FuY2VsIGJ1dHRvbiB0byBvbmUgb2YgQ29yZVVJ4oCZcyB0aGVtZWQgY29sb3JzLlxuICAgKiBAdHlwZSAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICdzdWNjZXNzJyB8ICdkYW5nZXInIHwgJ3dhcm5pbmcnIHwgJ2luZm8nIHwgJ2RhcmsnIHwgJ2xpZ2h0JyB8IHN0cmluZ1xuICAgKiBAZGVmYXVsdCAnc2Vjb25kYXJ5J1xuICAgKi9cbiAgQElucHV0KCkgcmFuZ2VzQnV0dG9uc0NvbG9yPzogQ29sb3JzID0gJ3NlY29uZGFyeSc7XG5cbiAgLyoqXG4gICAqIFNpemUgdGhlIHJhbmdlcyBidXR0b24gc21hbGwgb3IgbGFyZ2UuXG4gICAqIEB0eXBlICdzbScgfCAnbGcnIHwgJydcbiAgICovXG4gIEBJbnB1dCgpIHJhbmdlc0J1dHRvbnNTaXplOiAnc20nIHwgJ2xnJyB8ICcnID0gJyc7XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcmFuZ2VzIGJ1dHRvbiB2YXJpYW50IHRvIGFuIG91dGxpbmVkIGJ1dHRvbiBvciBhIGdob3N0IGJ1dHRvbi5cbiAgICogQHR5cGUgJ291dGxpbmUnIHwgJ2dob3N0JyB8IHVuZGVmaW5lZFxuICAgKi9cbiAgQElucHV0KCkgcmFuZ2VzQnV0dG9uc1ZhcmlhbnQ/OiAnb3V0bGluZScgfCAnZ2hvc3QnID0gJ2dob3N0JztcblxuICAvKipcbiAgICogRGVmYXVsdCBpY29uIG9yIGNoYXJhY3RlciB0aGF0IHNlcGFyYXRlcyB0d28gZGF0ZXMuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNlcGFyYXRvciA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFNpemUgdGhlIGNvbXBvbmVudCBzbWFsbCBvciBsYXJnZS5cbiAgICogQHR5cGUgJ3NtJyB8ICdsZycgfCB1bmRlZmluZWRcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICBASW5wdXQoKSBzaXplPzogJ3NtJyB8ICdsZyc7XG5cbiAgLyoqXG4gICAqIFByb3ZpZGUgYW4gYWRkaXRpb25hbCB0aW1lIHNlbGVjdGlvbiBieSBhZGRpbmcgc2VsZWN0IGJveGVzIHRvIGNob29zZSB0aW1lLlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgc2V0IHRpbWVwaWNrZXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiN0aW1lcGlja2VyID0gdmFsdWU7XG4gIH1cblxuICBnZXQgdGltZXBpY2tlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gICAgLy8gcmV0dXJuIHRoaXMuI3RpbWVwaWNrZXI7XG4gIH1cblxuICAjdGltZXBpY2tlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUb2dnbGUgdmlzdWFsIHZhbGlkYXRpb24gZmVlZGJhY2suXG4gICAqIEB0eXBlIGJvb2xlYW4gfCB1bmRlZmluZWRcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICBASW5wdXQoKSB2YWxpZD86IGJvb2xlYW4gPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZHJvcGRvd24gZGF0ZS1waWNrZXIgY29tcG9uZW50LlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBzdGFydERhdGUodmFsdWUpIHtcbiAgICBjb25zdCBwcmV2RGF0ZSA9IHRoaXMuX3N0YXJ0RGF0ZSA/IG5ldyBEYXRlKHRoaXMuX3N0YXJ0RGF0ZSkgOiBudWxsO1xuICAgIHRoaXMuX3N0YXJ0RGF0ZSA9IHZhbHVlID8gbmV3IERhdGUodmFsdWUpIDogbnVsbDtcbiAgICBpZiAocHJldkRhdGU/LmdldFRpbWUoKSAhPT0gdGhpcy5fc3RhcnREYXRlPy5nZXRUaW1lKCkpIHtcbiAgICAgIHRoaXMuc3RhcnREYXRlVmFsdWUgPSB0aGlzLmZvcm1hdERhdGUodGhpcy5fc3RhcnREYXRlKTtcbiAgICAgIHRoaXMuc3RhcnREYXRlQ2hhbmdlLmVtaXQodGhpcy5fc3RhcnREYXRlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgc3RhcnREYXRlKCkge1xuICAgIHJldHVybiB0aGlzLl9zdGFydERhdGU7XG4gIH1cblxuICBwcml2YXRlIF9zdGFydERhdGU/OiBEYXRlIHwgbnVsbDtcblxuICBASW5wdXQoKVxuICBzZXQgZW5kRGF0ZSh2YWx1ZSkge1xuICAgIGNvbnN0IHByZXZEYXRlID0gdGhpcy5fZW5kRGF0ZSA/IG5ldyBEYXRlKHRoaXMuX2VuZERhdGUgPz8gMCkgOiBudWxsO1xuICAgIHRoaXMuX2VuZERhdGUgPSB2YWx1ZSA/IG5ldyBEYXRlKHZhbHVlKSA6IG51bGw7XG4gICAgaWYgKHByZXZEYXRlPy5nZXRUaW1lKCkgIT09IHRoaXMuX2VuZERhdGU/LmdldFRpbWUoKSkge1xuICAgICAgdGhpcy5lbmREYXRlVmFsdWUgPSB0aGlzLmZvcm1hdERhdGUodGhpcy5fZW5kRGF0ZSk7XG4gICAgICB0aGlzLmVuZERhdGVDaGFuZ2UuZW1pdCh0aGlzLl9lbmREYXRlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgZW5kRGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZW5kRGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2VuZERhdGU/OiBEYXRlIHwgbnVsbDtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGRhdGVUcmFuc2Zvcm0gfSkgY2FsZW5kYXJEYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcbiAgQElucHV0KCkgZGlzYWJsZWREYXRlczogRGF0ZVtdIHwgRGF0ZVtdW10gPSBbXTtcblxuICAvKipcbiAgICogU2V0IGZpcnN0IGRheSBvZiB3ZWVrLlxuICAgKiBAdHlwZSBudW1iZXJcbiAgICogQGRlZmF1bHQgMSAoTW9uZGF5KVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgZmlyc3REYXlPZldlZWs6IG51bWJlciA9IDE7XG5cbiAgQElucHV0KCkgbG9jYWxlOiBzdHJpbmcgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIG1heERhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgbWluRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBTaG93IGNhbGVuZGFyIG5hdmlnYXRpb24uXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIG5hdmlnYXRpb24gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBBbGxvdyByYW5nZSBzZWxlY3Rpb24uXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByYW5nZSA9IHRydWU7XG5cbiAgQElucHV0KCkgZGF0ZUZpbHRlcj86IERhdGVGaWx0ZXJUeXBlO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNkaXNhYmxlZCA9IHZhbHVlO1xuICAgIHRoaXMuI2Rpc2FibGVkID8gdGhpcy5zdGFydERhdGVJbnB1dC5kaXNhYmxlKCkgOiB0aGlzLnN0YXJ0RGF0ZUlucHV0LmVuYWJsZSgpO1xuICAgIHRoaXMuI2Rpc2FibGVkID8gdGhpcy5lbmREYXRlSW5wdXQuZGlzYWJsZSgpIDogdGhpcy5lbmREYXRlSW5wdXQuZW5hYmxlKCk7XG4gIH1cblxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI2Rpc2FibGVkO1xuICB9XG5cbiAgI2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMucmFuZ2UgPyB7IC4uLnZhbHVlIH0gOiB2YWx1ZTtcbiAgICBpZiAoSlNPTi5zdHJpbmdpZnkodGhpcy5fdmFsdWUpICE9PSBKU09OLnN0cmluZ2lmeShuZXdWYWx1ZSkpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gbmV3VmFsdWU7XG4gICAgICBpZiAodGhpcy5yYW5nZSkge1xuICAgICAgICB0aGlzLmhhbmRsZVN0YXJ0RGF0ZUNoYW5nZShuZXdWYWx1ZS5zdGFydERhdGUgPz8gbnVsbCk7XG4gICAgICAgIHRoaXMuaGFuZGxlRW5kRGF0ZUNoYW5nZShuZXdWYWx1ZS5lbmREYXRlID8/IG51bGwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5oYW5kbGVTdGFydERhdGVDaGFuZ2UobmV3VmFsdWUgPz8gbnVsbCk7XG4gICAgICB9XG4gICAgICB0aGlzLm9uQ2hhbmdlKG5ld1ZhbHVlKTtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICBpZiAodGhpcy5jbG9zZU9uU2VsZWN0KSB7XG4gICAgICAgIGNvbnN0IGhhc1ZhbHVlID0gdGhpcy5yYW5nZSA/ICEhKHRoaXMudmFsdWUuc3RhcnREYXRlICYmIHRoaXMudmFsdWUuZW5kRGF0ZSkgOiAhIXRoaXMudmFsdWU7XG4gICAgICAgIHRoaXMudmlzaWJsZSA9ICFoYXNWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IGFueSA9IHt9O1xuXG4gIC8qKlxuICAgKiBTZXQgbGVuZ3RoIG9yIGZvcm1hdCBvZiBkYXkgbmFtZS5cbiAgICogQHR5cGUgV2Vla2RheUZvcm1hdFR5cGVcbiAgICogQGRlZmF1bHQgJ3Nob3J0J1xuICAgKi9cbiAgQElucHV0KCkgd2Vla2RheUZvcm1hdDogV2Vla2RheUZvcm1hdFR5cGUgPSAnc2hvcnQnO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBwb3BwZXIgT3B0aW9ucyBvYmplY3RcbiAgICogQHR5cGUgUGFydGlhbDxPcHRpb25zPlxuICAgKi9cbiAgQElucHV0KCdwb3BwZXJPcHRpb25zJykgcG9wcGVyanNPcHRpb25zOiBQYXJ0aWFsPE9wdGlvbnM+ID0ge1xuICAgIHN0cmF0ZWd5OiAnYWJzb2x1dGUnXG4gIH07XG5cbiAgLyoqXG4gICAqIFNldCB3aGV0aGVyIGRheXMgaW4gYWRqYWNlbnQgbW9udGhzIHNob3duIGJlZm9yZSBvciBhZnRlciB0aGUgY3VycmVudCBtb250aCBhcmUgc2VsZWN0YWJsZS4gVGhpcyBvbmx5IGFwcGxpZXMgaWYgdGhlIGBzaG93QWRqYWNlbnREYXlzYCBvcHRpb24gaXMgc2V0IHRvIHRydWUuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHNpbmNlIDQuNC4xMFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNlbGVjdEFkamFjZW50RGF5czogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTZXQgd2hldGhlciB0byBkaXNwbGF5IGRhdGVzIGluIGFkamFjZW50IG1vbnRocyAobm9uLXNlbGVjdGFibGUpIGF0IHRoZSBzdGFydCBhbmQgZW5kIG9mIHRoZSBjdXJyZW50IG1vbnRoLlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQHNpbmNlIDQuNC4xMFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dBZGphY2VudERheXM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHRoZSB0eXBlIG9mIGRhdGUgc2VsZWN0aW9uIGFzIGRheSwgd2VlaywgbW9udGgsIG9yIHllYXIuXG4gICAqIEB0eXBlICdkYXknIHwgJ3dlZWsnIHwgJ21vbnRoJyB8ICd5ZWFyJ1xuICAgKiBAZGVmYXVsdCAnZGF5J1xuICAgKiBAc2luY2UgNS4wLjBcbiAgICovXG4gIEBJbnB1dCgpIHNlbGVjdGlvblR5cGU6ICdkYXknIHwgJ3dlZWsnIHwgJ21vbnRoJyB8ICd5ZWFyJyA9ICdkYXknO1xuXG4gIC8qKlxuICAgKiBTZXQgd2hldGhlciB0byBkaXNwbGF5IHdlZWsgbnVtYmVycyBpbiB0aGUgY2FsZW5kYXIuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHNpbmNlIDUuMC4wXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd1dlZWtOdW1iZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogTGFiZWwgZGlzcGxheWVkIG92ZXIgd2VlayBudW1iZXJzIGluIHRoZSBjYWxlbmRhci5cbiAgICogQHR5cGUgc3RyaW5nXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKiBAc2luY2UgNS4wLjBcbiAgICovXG4gIEBJbnB1dCgpIHdlZWtOdW1iZXJzTGFiZWw/OiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgRGF0ZVtdIHwgdW5kZWZpbmVkPigpO1xuXG4gIEBPdXRwdXQoKSBjYWxlbmRhckNlbGxIb3ZlcjogRXZlbnRFbWl0dGVyPERhdGUgfCBudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+KCk7XG4gIEBPdXRwdXQoKSBjYWxlbmRhckRhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcbiAgQE91dHB1dCgpIGVuZERhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGUgfCBudWxsPigpO1xuICBAT3V0cHV0KCkgc3RhcnREYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4oKTtcblxuICAvLyBAVmlld0NoaWxkKENhbGVuZGFyQ29tcG9uZW50KSBjYWxlbmRhckNvbXBvbmVudCE6IENhbGVuZGFyQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdzdGFydERhdGVFbGVtZW50UmVmJykgc3RhcnREYXRlRWxlbWVudFJlZiE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2VuZERhdGVFbGVtZW50UmVmJykgZW5kRGF0ZUVsZW1lbnRSZWYhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIHRlbXBsYXRlczogYW55ID0ge307XG4gIEBDb250ZW50Q2hpbGRyZW4oVGVtcGxhdGVJZERpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBjb250ZW50VGVtcGxhdGVzITogUXVlcnlMaXN0PFRlbXBsYXRlSWREaXJlY3RpdmU+O1xuXG4gIHByb3RlY3RlZCBkYXRlQ2hhbmdlU3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBwcm90ZWN0ZWQgc3Vic2NyaWJlRGF0ZUNoYW5nZShzdWJzY3JpYmU6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgaWYgKHN1YnNjcmliZSkge1xuICAgICAgLy8gdG9kb1xuICAgICAgLy8gdGhpcy5kYXRlQ2hhbmdlU3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuc3RhcnREYXRlQ2hhbmdlLnN1YnNjcmliZShuZXh0ID0+IHtcbiAgICAgIC8vICAgdGhpcy5zdGFydERhdGUgPSBuZXh0O1xuICAgICAgLy8gICB0aGlzLm9uQ2hhbmdlKG5leHQpO1xuICAgICAgLy8gfSkpO1xuICAgICAgLy8gdGhpcy5kYXRlQ2hhbmdlU3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuc3RhcnREYXRlQ2hhbmdlLnN1YnNjcmliZShuZXh0ID0+IHtcbiAgICAgIC8vICAgdGhpcy5lbmREYXRlID0gbmV4dDtcbiAgICAgIC8vICAgdGhpcy5vbkNoYW5nZShuZXh0KTtcbiAgICAgIC8vIH0pKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kYXRlQ2hhbmdlU3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiB7XG4gICAgICBzdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcpIG9uQmx1cigpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgcHVibGljIGlzTW9iaWxlID0gdHJ1ZTtcbiAgcHVibGljIGN1c3RvbVJhbmdlcyE6IFRDdXN0b21SYW5nZVtdO1xuICBwdWJsaWMgc2hvd1JhbmdlczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHNldCBzdGFydERhdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zdGFydERhdGVJbnB1dC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5fc3RhcnREYXRlVmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBzdGFydERhdGVWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zdGFydERhdGVWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX3N0YXJ0RGF0ZVZhbHVlOiBzdHJpbmcgPSB0aGlzLmZvcm1hdERhdGUodGhpcy5zdGFydERhdGUpO1xuXG4gIHNldCBlbmREYXRlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZW5kRGF0ZUlucHV0LnNldFZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLl9lbmREYXRlVmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBlbmREYXRlVmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZW5kRGF0ZVZhbHVlO1xuICB9XG5cbiAgcHVibGljIF9lbmREYXRlVmFsdWU6IHN0cmluZyA9IHRoaXMuZm9ybWF0RGF0ZSh0aGlzLmVuZERhdGUpO1xuXG4gIHB1YmxpYyBnZXQgc3RhcnREYXRlUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLnBsYWNlaG9sZGVyKSA/IHRoaXMucGxhY2Vob2xkZXJbMF0gOiB0aGlzLnBsYWNlaG9sZGVyO1xuICB9O1xuXG4gIHB1YmxpYyBnZXQgZW5kRGF0ZVBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy5wbGFjZWhvbGRlcikgPyB0aGlzLnBsYWNlaG9sZGVyWzFdIDogdGhpcy5wbGFjZWhvbGRlcjtcbiAgfTtcblxuICBwcml2YXRlIGxheW91dENoYW5nZXMhOiBTdWJzY3JpcHRpb247XG5cbiAgLy8gdG9kbzogdmFsaWRhdGlvblxuICBzdGFydERhdGVJbnB1dCA9IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLnN0YXJ0RGF0ZVZhbHVlLCBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCB9LCBbXG4gICAgVmFsaWRhdG9ycy5yZXF1aXJlZFxuICAgIC8vIFZhbGlkYXRvcnMubWluTGVuZ3RoKDgpLFxuICAgIC8vIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEwKSxcbiAgICAvLyBpbnZhbGlkRGF0ZVN0cmluZ1ZhbGlkYXRvcih0aGlzLmxvY2FsZSlcbiAgXSk7XG4gIGVuZERhdGVJbnB1dCA9IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLmVuZERhdGVWYWx1ZSwgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQgfSwgW1xuICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAvLyBWYWxpZGF0b3JzLm1pbkxlbmd0aCg4KSxcbiAgICAvLyBWYWxpZGF0b3JzLm1heExlbmd0aCgxMCksXG4gICAgLy8gaW52YWxpZERhdGVTdHJpbmdWYWxpZGF0b3IodGhpcy5sb2NhbGUpXG4gIF0pO1xuICBkYXRlUmFuZ2VHcm91cCE6IEZvcm1Hcm91cDtcblxuICBzZXQgaW5wdXRTdGFydEhvdmVyVmFsdWUodmFsdWUpIHtcbiAgICB0aGlzLl9pbnB1dFN0YXJ0SG92ZXJWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGlucHV0U3RhcnRIb3ZlclZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dFN0YXJ0SG92ZXJWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2lucHV0U3RhcnRIb3ZlclZhbHVlITogRGF0ZSB8IG51bGw7XG5cbiAgc2V0IGlucHV0RW5kSG92ZXJWYWx1ZSh2YWx1ZSkge1xuICAgIHRoaXMuX2lucHV0RW5kSG92ZXJWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGlucHV0RW5kSG92ZXJWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRFbmRIb3ZlclZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5wdXRFbmRIb3ZlclZhbHVlITogRGF0ZSB8IG51bGw7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBkYXRlUGlja2VyQ2xhc3NlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2RhdGUtcGlja2VyJzogdHJ1ZSxcbiAgICAgIFtgZGF0ZS1waWNrZXItJHt0aGlzLnNpemV9YF06IHRoaXMuc2l6ZSxcbiAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkLFxuICAgICAgJ2lzLXZhbGlkJzogdGhpcy52YWxpZCA9PT0gdHJ1ZSxcbiAgICAgICdpcy1pbnZhbGlkJzogdGhpcy52YWxpZCA9PT0gZmFsc2VcbiAgICB9O1xuICB9XG5cbiAgZm9ybWF0RGF0ZShkYXRlOiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiAhZGF0ZSB8fCAhaXNWYWxpZERhdGUoZGF0ZSkgPyAnJyA6XG4gICAgICAgICAgIHR5cGVvZiB0aGlzLmlucHV0RGF0ZUZvcm1hdCA9PT0gJ2Z1bmN0aW9uJyA/IHRoaXMuaW5wdXREYXRlRm9ybWF0KGRhdGUpIDpcbiAgICAgICAgICAgKCEhdGhpcy5mb3JtYXQgJiYgISF0aGlzLmxvY2FsZSAmJiB0aGlzLmxvY2FsZSAhPT0gJ2RlZmF1bHQnKSA/IGZvcm1hdERhdGUoZGF0ZSwgdGhpcy5mb3JtYXQsIHRoaXMubG9jYWxlKSA6XG4gICAgICAgICAgIHRoaXMudGltZXBpY2tlciA/IGRhdGUudG9Mb2NhbGVTdHJpbmcodGhpcy5sb2NhbGUpIDpcbiAgICAgICAgICAgZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcodGhpcy5sb2NhbGUpO1xuICB9XG5cbiAgcmVhZG9ubHkgI2JyZWFrcG9pbnRzID0ge1xuICAgIE9uZUNhbGVuZGFyUmFuZ2VzOiAnKG1pbi13aWR0aDogNDgwcHgpJyxcbiAgICBUd29DYWxlbmRhcnM6ICcobWF4LXdpZHRoOiA2NTBweCknLFxuICAgIFR3b0NhbGVuZGFyc1JhbmdlczogJyhtYXgtd2lkdGg6IDgxMHB4KSdcbiAgfTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmN1c3RvbVJhbmdlcyA9IHRoaXMucmFuZ2VzID8gT2JqZWN0LmVudHJpZXModGhpcy5yYW5nZXMpIDogW107XG5cbiAgICBjb25zdCBicmVha3BvaW50cyA9IHRoaXMuI2JyZWFrcG9pbnRzO1xuXG4gICAgdGhpcy5sYXlvdXRDaGFuZ2VzID0gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShbXG4gICAgICBicmVha3BvaW50cy5PbmVDYWxlbmRhclJhbmdlcyxcbiAgICAgIGJyZWFrcG9pbnRzLlR3b0NhbGVuZGFycyxcbiAgICAgIGJyZWFrcG9pbnRzLlR3b0NhbGVuZGFyc1Jhbmdlc1xuICAgIF0pLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgaWYgKHJlc3VsdC5tYXRjaGVzKSB7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSAodGhpcy5jdXN0b21SYW5nZXM/Lmxlbmd0aCA+IDAgJiYgcmVzdWx0LmJyZWFrcG9pbnRzW2JyZWFrcG9pbnRzLlR3b0NhbGVuZGFyc1Jhbmdlc10pIHx8IHJlc3VsdC5icmVha3BvaW50c1ticmVha3BvaW50cy5Ud29DYWxlbmRhcnNdO1xuICAgICAgICBpZiAodGhpcy5jdXN0b21SYW5nZXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLnNob3dSYW5nZXMgPSAhcmVzdWx0LmJyZWFrcG9pbnRzW2JyZWFrcG9pbnRzLk9uZUNhbGVuZGFyUmFuZ2VzXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5zdGFydERhdGVWYWx1ZSA9IHRoaXMuZm9ybWF0RGF0ZSh0aGlzLnN0YXJ0RGF0ZSk7XG4gICAgdGhpcy5lbmREYXRlVmFsdWUgPSB0aGlzLmZvcm1hdERhdGUodGhpcy5lbmREYXRlKTtcbiAgICB0aGlzLnN1YnNjcmliZURhdGVDaGFuZ2UoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMubGF5b3V0Q2hhbmdlcz8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN1YnNjcmliZURhdGVDaGFuZ2UoZmFsc2UpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jb250ZW50VGVtcGxhdGVzLmZvckVhY2goKGNoaWxkOiBUZW1wbGF0ZUlkRGlyZWN0aXZlKSA9PiB7XG4gICAgICAgIHRoaXMudGVtcGxhdGVzW2NoaWxkLmlkXSA9IGNoaWxkLnRlbXBsYXRlUmVmO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2RhdGUnXSkge1xuICAgICAgLy8gZm9yIGRhdGUtcGlja2VyIGNvbXBvbmVudFxuICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuY29udmVydFZhbHVlVG9EYXRlKGNoYW5nZXNbJ2RhdGUnXT8uY3VycmVudFZhbHVlKSA/PyBudWxsO1xuICAgICAgdGhpcy5oYW5kbGVTdGFydERhdGVDaGFuZ2UoZGF0ZSk7XG4gICAgICB0aGlzLmNhbGVuZGFyRGF0ZSA9IGRhdGUgPz8gdGhpcy5jYWxlbmRhckRhdGU7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydzdGFydERhdGUnXSkge1xuICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuY29udmVydFZhbHVlVG9EYXRlKGNoYW5nZXNbJ3N0YXJ0RGF0ZSddPy5jdXJyZW50VmFsdWUpID8/IG51bGw7XG4gICAgICB0aGlzLmhhbmRsZVN0YXJ0RGF0ZUNoYW5nZShkYXRlKTtcbiAgICAgIHRoaXMuY2FsZW5kYXJEYXRlID0gZGF0ZSA/PyB0aGlzLmNhbGVuZGFyRGF0ZTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2VuZERhdGUnXSkge1xuICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuY29udmVydFZhbHVlVG9EYXRlKGNoYW5nZXNbJ2VuZERhdGUnXT8uY3VycmVudFZhbHVlKSA/PyBudWxsO1xuICAgICAgdGhpcy5oYW5kbGVFbmREYXRlQ2hhbmdlKGRhdGUpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snbG9jYWxlJ10pIHtcbiAgICAgIHRoaXMuc3RhcnREYXRlVmFsdWUgPSB0aGlzLmZvcm1hdERhdGUodGhpcy5zdGFydERhdGUpO1xuICAgICAgdGhpcy5lbmREYXRlVmFsdWUgPSB0aGlzLmZvcm1hdERhdGUodGhpcy5lbmREYXRlKTtcbiAgICB9XG4gIH1cblxuICBjb252ZXJ0VmFsdWVUb0RhdGUodmFsdWU6IERhdGUgfCBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsKSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdGhpcy5pbnB1dFBhcnNlKHZhbHVlKSA/PyBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpID8/IG51bGw7XG4gIH1cblxuICBpbnB1dFBhcnNlKGRhdGU6IHN0cmluZykge1xuICAgIGlmICh0eXBlb2YgdGhpcy5pbnB1dERhdGVQYXJzZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29uc3QgcGFyc2VkRGF0ZSA9IHRoaXMuaW5wdXREYXRlUGFyc2UoZGF0ZSk7XG4gICAgICBpZiAoaXNWYWxpZERhdGUocGFyc2VkRGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlZERhdGU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBnZXRMb2NhbERhdGVGcm9tU3RyaW5nKGRhdGUsIHRoaXMubG9jYWxlLCB0aGlzLnRpbWVwaWNrZXIpO1xuICB9XG5cbiAgZ2V0Q3VzdG9tUmFuZ2VLZXkoY3VzdG9tUmFuZ2U6IGFueSkge1xuICAgIHJldHVybiBjdXN0b21SYW5nZVswXTtcbiAgfVxuXG4gIHNldEN1c3RvbVJhbmdlKGN1c3RvbVJhbmdlOiBhbnkpIHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLmdldEN1c3RvbVJhbmdlS2V5KGN1c3RvbVJhbmdlKTtcbiAgICB0aGlzLmhhbmRsZVN0YXJ0RGF0ZUNoYW5nZShjdXN0b21SYW5nZVsxXVswXSk7XG4gICAgdGhpcy5oYW5kbGVFbmREYXRlQ2hhbmdlKGN1c3RvbVJhbmdlWzFdWzFdKTtcbiAgfVxuXG4gIGhhbmRsZUNhbGVuZGFyQ2VsbEhvdmVyKCRldmVudDogRGF0ZSB8IG51bGwpIHtcbiAgICB0aGlzLmNhbGVuZGFyQ2VsbEhvdmVyLmVtaXQoJGV2ZW50KTtcbiAgICBpZiAoIXRoaXMuc3RhcnREYXRlKSB7XG4gICAgICB0aGlzLnNldElucHV0VmFsdWUodGhpcy5zdGFydERhdGVFbGVtZW50UmVmLCAkZXZlbnQpO1xuICAgICAgdGhpcy5pbnB1dFN0YXJ0SG92ZXJWYWx1ZSA9ICRldmVudDtcbiAgICAgIHRoaXMuc2V0SW5wdXRWYWx1ZSh0aGlzLmVuZERhdGVFbGVtZW50UmVmLCBudWxsKTtcbiAgICAgIHRoaXMuaW5wdXRFbmRIb3ZlclZhbHVlID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmVuZERhdGUpIHtcbiAgICAgIHRoaXMuc2V0SW5wdXRWYWx1ZSh0aGlzLmVuZERhdGVFbGVtZW50UmVmLCAkZXZlbnQpO1xuICAgICAgdGhpcy5pbnB1dEVuZEhvdmVyVmFsdWUgPSAkZXZlbnQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQ2FsZW5kYXJEYXRlQ2hhbmdlKCRldmVudDogRGF0ZSkge1xuICAgIGlmICh0aGlzLmNhbGVuZGFyRGF0ZS5nZXRUaW1lKCkgIT09ICRldmVudC5nZXRUaW1lKCkpIHtcbiAgICAgIHRoaXMuY2FsZW5kYXJEYXRlQ2hhbmdlLmVtaXQoJGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVTdGFydERhdGVDaGFuZ2UoZGF0ZTogRGF0ZSB8IG51bGwpIHtcbiAgICBpZiAoZGF0ZT8uZ2V0VGltZSgpICE9PSB0aGlzLnN0YXJ0RGF0ZT8uZ2V0VGltZSgpKSB7XG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IGRhdGUgPz8gbnVsbDtcbiAgICAgIHRoaXMuc3RhcnREYXRlVmFsdWUgPSB0aGlzLmZvcm1hdERhdGUodGhpcy5zdGFydERhdGUpO1xuICAgICAgdGhpcy5pbnB1dFN0YXJ0SG92ZXJWYWx1ZSA9IG51bGw7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5yYW5nZSA/IHsgc3RhcnREYXRlOiB0aGlzLnN0YXJ0RGF0ZSwgZW5kRGF0ZTogdGhpcy5lbmREYXRlIH0gOiB0aGlzLnN0YXJ0RGF0ZTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVFbmREYXRlQ2hhbmdlKGRhdGU6IERhdGUgfCBudWxsKSB7XG4gICAgaWYgKGRhdGU/LmdldFRpbWUoKSAhPT0gdGhpcy5lbmREYXRlPy5nZXRUaW1lKCkpIHtcbiAgICAgIGlmICghdGhpcy5yYW5nZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmVuZERhdGUgPSBkYXRlID8/IG51bGw7XG4gICAgICB0aGlzLmVuZERhdGVWYWx1ZSA9IHRoaXMuZm9ybWF0RGF0ZSh0aGlzLmVuZERhdGUpO1xuICAgICAgdGhpcy5pbnB1dEVuZEhvdmVyVmFsdWUgPSBudWxsO1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMucmFuZ2UgPyB7IHN0YXJ0RGF0ZTogdGhpcy5zdGFydERhdGUsIGVuZERhdGU6IHRoaXMuZW5kRGF0ZSB9IDogdGhpcy5zdGFydERhdGU7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQ2xlYXIoJGV2ZW50PzogTW91c2VFdmVudCkge1xuICAgIC8vIHRoaXMuY2FsZW5kYXJDb21wb25lbnQuY2xlYXJEYXRlcygpO1xuICAgIHRoaXMuaGFuZGxlU3RhcnREYXRlQ2hhbmdlKG51bGwpO1xuICAgIHRoaXMuaGFuZGxlRW5kRGF0ZUNoYW5nZShudWxsKTtcbiAgfVxuXG4gIGhhbmRsZVN0YXJ0RGF0ZUlucHV0Q2hhbmdlKCRldmVudDogYW55KSB7XG4gICAgY29uc3QgaW5wdXRWYWx1ZSA9ICgkZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgIGNvbnN0IGRhdGUgPSB0aGlzLmlucHV0UGFyc2UoaW5wdXRWYWx1ZSk7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICAvLyB0aGlzLmNhbGVuZGFyQ29tcG9uZW50LmNsZWFyRGF0ZXMoKTtcbiAgICAgIHRoaXMuaGFuZGxlU3RhcnREYXRlQ2hhbmdlKG51bGwpO1xuICAgICAgdGhpcy5oYW5kbGVFbmREYXRlQ2hhbmdlKG51bGwpO1xuICAgIH1cbiAgICBpZiAoZGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgZGF0ZS5nZXRUaW1lKCkpIHtcbiAgICAgIGlmICghKHRoaXMuZm9yYmlkZGVuRGF0ZShkYXRlKSB8fCAodGhpcy5lbmREYXRlICYmIHRoaXMuZW5kRGF0ZSA8IGRhdGUpKSkge1xuICAgICAgICB0aGlzLmNhbGVuZGFyRGF0ZSA9IGRhdGU7XG4gICAgICAgIHRoaXMuc3RhcnREYXRlID0gZGF0ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5oYW5kbGVTdGFydERhdGVDaGFuZ2UodGhpcy5zdGFydERhdGUgPz8gbnVsbCk7XG4gIH1cblxuICBoYW5kbGVFbmREYXRlSW5wdXRDaGFuZ2UoJGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBpbnB1dFZhbHVlID0gKCRldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgY29uc3QgZGF0ZSA9IHRoaXMuaW5wdXRQYXJzZShpbnB1dFZhbHVlKTtcbiAgICBpZiAoIWRhdGUpIHtcbiAgICAgIHRoaXMuZW5kRGF0ZSA9IG51bGw7XG4gICAgfVxuICAgIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSAmJiBkYXRlLmdldFRpbWUoKSkge1xuICAgICAgaWYgKCEodGhpcy5mb3JiaWRkZW5EYXRlKGRhdGUpIHx8ICh0aGlzLnN0YXJ0RGF0ZSAmJiB0aGlzLnN0YXJ0RGF0ZSA+IGRhdGUpKSkge1xuICAgICAgICB0aGlzLmNhbGVuZGFyRGF0ZSA9IGRhdGU7XG4gICAgICAgIHRoaXMuZW5kRGF0ZSA9IGRhdGU7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuaGFuZGxlRW5kRGF0ZUNoYW5nZSh0aGlzLmVuZERhdGUgPz8gbnVsbCk7XG4gIH1cblxuICBmb3JiaWRkZW5EYXRlKGRhdGU6IERhdGUpIHtcbiAgICByZXR1cm4gaXNEYXRlRGlzYWJsZWQoZGF0ZSwgdGhpcy5taW5EYXRlLCB0aGlzLm1heERhdGUsIHRoaXMuZGlzYWJsZWREYXRlcykgfHwgKHRoaXMuZGF0ZUZpbHRlciA/ICF0aGlzLmRhdGVGaWx0ZXIoZGF0ZSkgOiBmYWxzZSk7XG4gIH1cblxuICBzZXRJbnB1dFZhbHVlID0gKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIGRhdGU6IERhdGUgfCBudWxsKSA9PiB7XG4gICAgaWYgKCFlbGVtZW50UmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuZm9ybWF0RGF0ZShkYXRlKTtcbiAgICAvLyBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWVBc0RhdGUgPSBkYXRlO1xuICAgIHJldHVybjtcbiAgfTtcblxuICBvbkNoYW5nZTogYW55ID0gKHZhbHVlOiBhbnkpID0+IHt9O1xuICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUgIT09IG51bGwpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnJhbmdlID8geyAuLi52YWx1ZSB9IDogdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlU3RhcnRUaW1lQ2hhbmdlKHRpbWU6IERhdGUgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnN0YXJ0RGF0ZSA9IHRpbWUgPz8gdGhpcy5zdGFydERhdGU7XG4gIH1cblxuICBoYW5kbGVFbmRUaW1lQ2hhbmdlKHRpbWU6IERhdGUgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoIXRoaXMucmFuZ2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5lbmREYXRlID0gdGltZSA/PyB0aGlzLmVuZERhdGU7XG4gIH1cbn1cbiIsIjxjLWRyb3Bkb3duICNkcm9wZG93bj1cImNEcm9wZG93blwiIFthdXRvQ2xvc2VdPVwiJ291dHNpZGUnXCIgY2xhc3M9XCJkYXRlLXBpY2tlciBwaWNrZXJcIiBbbmdDbGFzc109XCJkYXRlUGlja2VyQ2xhc3Nlc1wiXG4gICAgICAgICAgICBbKHZpc2libGUpXT1cInZpc2libGVcIiBbcG9wcGVyT3B0aW9uc109XCJwb3BwZXJqc09wdGlvbnNcIj5cbiAgPGRpdiBbY2FyZXRdPVwiZmFsc2VcIlxuICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCA/PyBkcm9wZG93bi52aXNpYmxlXCJcbiAgICAgICBjRHJvcGRvd25Ub2dnbGVcbiAgICAgICBjbGFzcz1cImRhdGUtcGlja2VyLWlucHV0LWdyb3VwXCJcbiAgPlxuICAgIDxpbnB1dCAjc3RhcnREYXRlRWxlbWVudFJlZlxuICAgICAgICAgICAoY2hhbmdlKT1cImhhbmRsZVN0YXJ0RGF0ZUlucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJkaXNhYmxlZCA/IC0xIDogMFwiXG4gICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzdGFydERhdGVJbnB1dFwiXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cIntob3ZlcjogISFpbnB1dFN0YXJ0SG92ZXJWYWx1ZX1cIlxuICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwic3RhcnREYXRlUGxhY2Vob2xkZXJcIlxuICAgICAgICAgICBbcmVhZG9ubHldPVwiaW5wdXRSZWFkT25seSA/PyBudWxsXCJcbiAgICAgICAgICAgW3ZhbGlkXT1cInJhbmdlID8gdW5kZWZpbmVkIDogdmFsaWRcIlxuICAgICAgICAgICBjRm9ybUNvbnRyb2xcbiAgICAgICAgICAgY2xhc3M9XCJkYXRlLXBpY2tlci1pbnB1dFwiXG4gICAgICAgICAgIHBhdHRlcm49XCJbMS05XSpcIlxuICAgID5cbiAgICBAaWYgKHJhbmdlICYmIHNlcGFyYXRvciAhPT0gZmFsc2UpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRlLXBpY2tlci1zZXBhcmF0b3JcIj48L2Rpdj5cbiAgICB9XG4gICAgQGlmIChyYW5nZSkge1xuICAgICAgPGlucHV0ICNlbmREYXRlRWxlbWVudFJlZlxuICAgICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlRW5kRGF0ZUlucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cImRpc2FibGVkID8gLTEgOiAwXCJcbiAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZW5kRGF0ZUlucHV0XCJcbiAgICAgICAgICAgICBbbmdDbGFzc109XCJ7aG92ZXI6ICEhaW5wdXRFbmRIb3ZlclZhbHVlfVwiXG4gICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImVuZERhdGVQbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgW3JlYWRvbmx5XT1cImlucHV0UmVhZE9ubHkgPz8gbnVsbFwiXG4gICAgICAgICAgICAgW3ZhbGlkXT1cInZhbGlkID8/IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgY0Zvcm1Db250cm9sXG4gICAgICAgICAgICAgY2xhc3M9XCJkYXRlLXBpY2tlci1pbnB1dFwiXG4gICAgICAgICAgICAgcGF0dGVybj1cIlsxLTldKlwiXG4gICAgICA+XG4gICAgfVxuICAgIEBpZiAoaW5kaWNhdG9yKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1waWNrZXItaW5kaWNhdG9yXCI+PC9kaXY+XG4gICAgfVxuICAgIEBpZiAoY2xlYW5lciAmJiBzdGFydERhdGVFbGVtZW50UmVmLnZhbHVlICYmICFkaXNhYmxlZCkge1xuICAgICAgPGRpdiAoY2xpY2spPVwiIWRpc2FibGVkICYmIGhhbmRsZUNsZWFyKCRldmVudClcIiBjbGFzcz1cImRhdGUtcGlja2VyLWNsZWFuZXJcIiByb2xlPVwiYnV0dG9uXCI+PC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbiAgPGRpdiBjRHJvcGRvd25NZW51IGNsYXNzPVwiZGF0ZS1waWNrZXItZHJvcGRvd24gcHktMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJkYXRlLXBpY2tlci1ib2R5XCI+XG4gICAgICBAaWYgKCFzaG93UmFuZ2VzKSB7XG4gICAgICAgIEBpZiAocmFuZ2VzICYmIGN1c3RvbVJhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtcGlja2VyLXJhbmdlc1wiPlxuICAgICAgICAgICAgQGZvciAoY3VzdG9tUmFuZ2Ugb2YgY3VzdG9tUmFuZ2VzOyB0cmFjayBjdXN0b21SYW5nZSkge1xuICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzZXRDdXN0b21SYW5nZShjdXN0b21SYW5nZSlcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJyYW5nZXNCdXR0b25zQ29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgIFtzaXplXT1cInJhbmdlc0J1dHRvbnNTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFyaWFudF09XCJyYW5nZXNCdXR0b25zVmFyaWFudFwiXG4gICAgICAgICAgICAgICAgICAgICAgY0J1dHRvbj5cbiAgICAgICAgICAgICAgICB7eyBjdXN0b21SYW5nZSB8IGN1c3RvbVJhbmdlS2V5IH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9XG4gICAgICA8Yy1jYWxlbmRhclxuICAgICAgICAoY2FsZW5kYXJDZWxsSG92ZXIpPVwiaGFuZGxlQ2FsZW5kYXJDZWxsSG92ZXIoJGV2ZW50KVwiXG4gICAgICAgIChjYWxlbmRhckRhdGVDaGFuZ2UpPVwiaGFuZGxlQ2FsZW5kYXJEYXRlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAoZW5kRGF0ZUNoYW5nZSk9XCJoYW5kbGVFbmREYXRlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAoc3RhcnREYXRlQ2hhbmdlKT1cImhhbmRsZVN0YXJ0RGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW2NhbGVuZGFyRGF0ZV09XCJjYWxlbmRhckRhdGVcIlxuICAgICAgICBbY2FsZW5kYXJzXT1cImlzTW9iaWxlID8gMSA6IGNhbGVuZGFyc1wiXG4gICAgICAgIFtkYXRlRmlsdGVyXT1cImRhdGVGaWx0ZXJcIlxuICAgICAgICBbZGlzYWJsZWREYXRlc109XCJkaXNhYmxlZERhdGVzXCJcbiAgICAgICAgW2VuZERhdGVdPVwiZW5kRGF0ZVwiXG4gICAgICAgIFtmaXJzdERheU9mV2Vla109XCJmaXJzdERheU9mV2Vla1wiXG4gICAgICAgIFtsb2NhbGVdPVwibG9jYWxlXCJcbiAgICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgICAgICBbbmF2aWdhdGlvbl09XCJuYXZpZ2F0aW9uXCJcbiAgICAgICAgW3JhbmdlXT1cInJhbmdlXCJcbiAgICAgICAgW3N0YXJ0RGF0ZV09XCJzdGFydERhdGVcIlxuICAgICAgICBbbmF2WWVhckZpcnN0XT1cIm5hdlllYXJGaXJzdFwiXG4gICAgICAgIFtkYXlGb3JtYXRdPVwiZGF5Rm9ybWF0XCJcbiAgICAgICAgW3dlZWtkYXlGb3JtYXRdPVwid2Vla2RheUZvcm1hdFwiXG4gICAgICAgIFtzZWxlY3RBZGphY2VudERheXNdPVwic2VsZWN0QWRqYWNlbnREYXlzXCJcbiAgICAgICAgW3Nob3dBZGphY2VudERheXNdPVwic2hvd0FkamFjZW50RGF5c1wiXG4gICAgICAgIFtzaG93V2Vla051bWJlcl09XCJzaG93V2Vla051bWJlclwiXG4gICAgICAgIFtzZWxlY3Rpb25UeXBlXT1cInNlbGVjdGlvblR5cGVcIlxuICAgICAgICBbd2Vla051bWJlcnNMYWJlbF09XCJ3ZWVrTnVtYmVyc0xhYmVsXCJcbiAgICAgICAgY2xhc3M9XCJkYXRlLXBpY2tlci1jYWxlbmRhcnNcIlxuICAgICAgLz5cbiAgICAgIEBpZiAoZmFsc2UgJiYgdGltZXBpY2tlcikge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1waWNrZXItdGltZXBpY2tlcnNcIj5cbiAgICAgICAgICA8IS0tIHRvZG8tLT5cbiAgICAgICAgICA8Yy10aW1lLXBpY2tlclxuICAgICAgICAgICAgdmFyaWFudD1cInNlbGVjdFwiXG4gICAgICAgICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXJ0RGF0ZVwiXG4gICAgICAgICAgICBbdGltZV09XCJzdGFydERhdGUgPz8gdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICh0aW1lQ2hhbmdlKT1cImhhbmRsZVN0YXJ0VGltZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIEBpZiAocmFuZ2UpIHtcbiAgICAgICAgICAgIDxjLXRpbWUtcGlja2VyXG4gICAgICAgICAgICAgIHZhcmlhbnQ9XCJzZWxlY3RcIlxuICAgICAgICAgICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZW5kRGF0ZVwiXG4gICAgICAgICAgICAgIFt0aW1lXT1cImVuZERhdGUgPz8gdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgKHRpbWVDaGFuZ2UpPVwiaGFuZGxlRW5kVGltZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICBAaWYgKHRlbXBsYXRlcz8uZGF0ZVBpY2tlckZvb3Rlcikge1xuICAgICAgPGRpdiBjbGFzcz1cImRhdGUtcGlja2VyLWZvb3RlclwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVzPy5kYXRlUGlja2VyRm9vdGVyOyBjb250ZXh0OiB7JGltcGxpY2l0OiBkcm9wZG93bn1cIiAvPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbiAgPG5nLWNvbnRlbnQgLz5cbjwvYy1kcm9wZG93bj5cbiJdfQ==
@@ -2,15 +2,15 @@ import { NgModule } from '@angular/core';
2
2
  import { DateRangePickerComponent } from './date-range-picker/date-range-picker.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export class DateRangePickerModule {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DateRangePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: DateRangePickerModule, imports: [DateRangePickerComponent], exports: [DateRangePickerComponent] }); }
7
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DateRangePickerModule, imports: [DateRangePickerComponent] }); }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: DateRangePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.10", ngImport: i0, type: DateRangePickerModule, imports: [DateRangePickerComponent], exports: [DateRangePickerComponent] }); }
7
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: DateRangePickerModule, imports: [DateRangePickerComponent] }); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: DateRangePickerModule, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: DateRangePickerModule, decorators: [{
10
10
  type: NgModule,
11
11
  args: [{
12
12
  imports: [DateRangePickerComponent],
13
13
  exports: [DateRangePickerComponent]
14
14
  }]
15
15
  }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9kYXRlLXJhbmdlLXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7QUFNM0YsTUFBTSxPQUFPLHFCQUFxQjs4R0FBckIscUJBQXFCOytHQUFyQixxQkFBcUIsWUFIdEIsd0JBQXdCLGFBQ3hCLHdCQUF3QjsrR0FFdkIscUJBQXFCLFlBSHRCLHdCQUF3Qjs7MkZBR3ZCLHFCQUFxQjtrQkFKakMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztvQkFDbkMsT0FBTyxFQUFFLENBQUMsd0JBQXdCLENBQUM7aUJBQ3BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlLXJhbmdlLXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0RhdGVSYW5nZVBpY2tlckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVJhbmdlUGlja2VyTW9kdWxlIHtcbn1cbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9kYXRlLXJhbmdlLXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7QUFNM0YsTUFBTSxPQUFPLHFCQUFxQjsrR0FBckIscUJBQXFCO2dIQUFyQixxQkFBcUIsWUFIdEIsd0JBQXdCLGFBQ3hCLHdCQUF3QjtnSEFFdkIscUJBQXFCLFlBSHRCLHdCQUF3Qjs7NEZBR3ZCLHFCQUFxQjtrQkFKakMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztvQkFDbkMsT0FBTyxFQUFFLENBQUMsd0JBQXdCLENBQUM7aUJBQ3BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlLXJhbmdlLXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0RhdGVSYW5nZVBpY2tlckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVJhbmdlUGlja2VyTW9kdWxlIHtcbn1cbiJdfQ==