@rivet-health/design-system 40.44.0 → 40.44.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 (321) hide show
  1. package/{esm2020 → esm2022}/lib/accessibility/sr-only/sr-only.component.mjs +4 -4
  2. package/esm2022/lib/download/download.service.mjs +47 -0
  3. package/{esm2020 → esm2022}/lib/format/pipes/common.mjs +5 -5
  4. package/{esm2020 → esm2022}/lib/format/pipes/date.pipe.mjs +4 -4
  5. package/{esm2020 → esm2022}/lib/format/pipes/days.pipe.mjs +4 -4
  6. package/{esm2020 → esm2022}/lib/format/pipes/dollars.pipe.mjs +4 -4
  7. package/{esm2020 → esm2022}/lib/format/pipes/number.pipe.mjs +4 -4
  8. package/{esm2020 → esm2022}/lib/format/pipes/percentage.pipe.mjs +4 -4
  9. package/esm2022/lib/format/pipes/sentence-case.pipe.mjs +61 -0
  10. package/esm2022/lib/format/pipes/small-currency.pipe.mjs +24 -0
  11. package/esm2022/lib/format/pipes/small-number.pipe.mjs +29 -0
  12. package/esm2022/lib/format/svg-text-truncate/svg-text-truncate.directive.mjs +62 -0
  13. package/esm2022/lib/format/truncate/truncate.component.mjs +51 -0
  14. package/esm2022/lib/icon/dom-cache.mjs +32 -0
  15. package/esm2022/lib/icon/icon.component.mjs +86 -0
  16. package/{esm2020 → esm2022}/lib/icon/icons.mjs +1 -1
  17. package/{esm2020 → esm2022}/lib/input/alphabetic-field/alphabetic-field.component.mjs +4 -4
  18. package/esm2022/lib/input/auto-focus/auto-focus.directive.mjs +48 -0
  19. package/esm2022/lib/input/button/button.component.mjs +139 -0
  20. package/esm2022/lib/input/button-group/button-group.component.mjs +39 -0
  21. package/{esm2020 → esm2022}/lib/input/calendar/calendar.component.mjs +4 -4
  22. package/{esm2020 → esm2022}/lib/input/card-checkbox/card-checkbox.component.mjs +4 -4
  23. package/{esm2020 → esm2022}/lib/input/checkbox/checkbox.component.mjs +4 -4
  24. package/{esm2020 → esm2022}/lib/input/currency-field/currency-field.component.mjs +4 -4
  25. package/esm2022/lib/input/date/date.component.mjs +279 -0
  26. package/esm2022/lib/input/date-range/date-range.component.mjs +477 -0
  27. package/esm2022/lib/input/filter-chip/filter-chip.component.mjs +47 -0
  28. package/{esm2020 → esm2022}/lib/input/filter-dropdown/filter-dropdown.component.mjs +5 -5
  29. package/{esm2020 → esm2022}/lib/input/input-label/input-label.component.mjs +4 -4
  30. package/esm2022/lib/input/mentions-input/mentions-input.component.mjs +745 -0
  31. package/esm2022/lib/input/number-field/number-field.component.mjs +125 -0
  32. package/{esm2020 → esm2022}/lib/input/percentage-field/percentage-field.component.mjs +4 -4
  33. package/esm2022/lib/input/phone-field/phone-field.component.mjs +74 -0
  34. package/{esm2020 → esm2022}/lib/input/radio/radio.component.mjs +4 -4
  35. package/{esm2020 → esm2022}/lib/input/search/search.component.mjs +4 -4
  36. package/esm2022/lib/input/search-select/search-select.component.mjs +189 -0
  37. package/esm2022/lib/input/select/select/select.component.mjs +178 -0
  38. package/{esm2020 → esm2022}/lib/input/select/select-node/select-node.component.mjs +4 -4
  39. package/esm2022/lib/input/select/state.mjs +882 -0
  40. package/{esm2020 → esm2022}/lib/input/simple-select/option-group.pipe.mjs +4 -4
  41. package/esm2022/lib/input/simple-select/simple-select.component.mjs +178 -0
  42. package/esm2022/lib/input/switch-checkbox/switch-checkbox.component.mjs +33 -0
  43. package/esm2022/lib/input/text-field/text-field.component.mjs +115 -0
  44. package/{esm2020 → esm2022}/lib/input/textarea-field/textarea-field.component.mjs +4 -4
  45. package/{esm2020 → esm2022}/lib/input/validation-message/validation-message.component.mjs +4 -4
  46. package/{esm2020 → esm2022}/lib/layout/card/card-actions.component.mjs +4 -4
  47. package/esm2022/lib/layout/card/card-content.component.mjs +64 -0
  48. package/esm2022/lib/layout/card/card-header.component.mjs +201 -0
  49. package/{esm2020 → esm2022}/lib/layout/card/card-link.component.mjs +5 -5
  50. package/{esm2020 → esm2022}/lib/layout/card/card-media.component.mjs +4 -4
  51. package/esm2022/lib/layout/card/card.component.mjs +291 -0
  52. package/{esm2020 → esm2022}/lib/layout/setting-row/setting-row.component.mjs +4 -4
  53. package/esm2022/lib/load/loading/loading.component.mjs +43 -0
  54. package/{esm2020 → esm2022}/lib/load/loading-cover/loading-cover.component.mjs +4 -4
  55. package/esm2022/lib/navigation/editable-heading/editable-heading.component.mjs +243 -0
  56. package/{esm2020 → esm2022}/lib/navigation/link/link.component.mjs +6 -6
  57. package/{esm2020 → esm2022}/lib/navigation/page-header/page-header.component.mjs +4 -4
  58. package/{esm2020 → esm2022}/lib/navigation/simple-tabs/simple-tab/simple-tab.component.mjs +4 -4
  59. package/{esm2020 → esm2022}/lib/navigation/simple-tabs/simple-tabs/simple-tabs.component.mjs +4 -4
  60. package/{esm2020 → esm2022}/lib/navigation/tabs/tab/tab.component.mjs +4 -4
  61. package/{esm2020 → esm2022}/lib/navigation/tabs/tabs/tabs.component.mjs +4 -4
  62. package/{esm2020 → esm2022}/lib/navigation/views/all-views-modal/all-views-modal.component.mjs +4 -4
  63. package/{esm2020 → esm2022}/lib/navigation/views/edit-view/edit-view.component.mjs +9 -9
  64. package/esm2022/lib/navigation/views/permission-picker/permission-picker.component.mjs +151 -0
  65. package/esm2022/lib/navigation/views/state.mjs +456 -0
  66. package/{esm2020 → esm2022}/lib/navigation/views/view-menu/view-menu.component.mjs +5 -5
  67. package/esm2022/lib/navigation/views/views/views.component.mjs +90 -0
  68. package/{esm2020 → esm2022}/lib/notification/badge/badge.component.mjs +4 -4
  69. package/esm2022/lib/notification/banner/banner-action.component.mjs +48 -0
  70. package/esm2022/lib/notification/banner/banner.component.mjs +61 -0
  71. package/esm2022/lib/notification/map-indicator/map-indicator.component.mjs +50 -0
  72. package/esm2022/lib/notification/map-indicator/map-indicators.mjs +15 -0
  73. package/{esm2020 → esm2022}/lib/notification/notification-badge/notification-badge.component.mjs +4 -4
  74. package/esm2022/lib/overlay/callout/callout.component.mjs +130 -0
  75. package/esm2022/lib/overlay/callout/callout.helpers.mjs +113 -0
  76. package/{esm2020 → esm2022}/lib/overlay/callout/help/help.component.mjs +4 -4
  77. package/esm2022/lib/overlay/callout/lock-scroll.directive.mjs +69 -0
  78. package/{esm2020 → esm2022}/lib/overlay/callout/menu/menu-item/menu-item.component.mjs +5 -5
  79. package/{esm2020 → esm2022}/lib/overlay/callout/menu/menu.component.mjs +4 -4
  80. package/esm2022/lib/overlay/callout/tooltip/locked-tooltip.directive.mjs +30 -0
  81. package/{esm2020 → esm2022}/lib/overlay/callout/tooltip/tooltip.component.mjs +4 -4
  82. package/esm2022/lib/overlay/callout/tooltip/tooltip.directive.mjs +138 -0
  83. package/esm2022/lib/overlay/modal/dialog/dialog.component.mjs +47 -0
  84. package/{esm2020 → esm2022}/lib/overlay/modal/dialog-stack.service.mjs +4 -4
  85. package/esm2022/lib/overlay/modal/form-dialog/form-dialog.component.mjs +146 -0
  86. package/esm2022/lib/overlay/modal/modal.component.mjs +31 -0
  87. package/{esm2020 → esm2022}/lib/overlay/modal/side-sheet/side-sheet.component.mjs +4 -4
  88. package/esm2022/lib/overlay/overlay-outlet.component.mjs +98 -0
  89. package/{esm2020 → esm2022}/lib/overlay/overlay.directive.mjs +5 -5
  90. package/{esm2020 → esm2022}/lib/overlay/overlay.service.mjs +5 -5
  91. package/{esm2020 → esm2022}/lib/overlay/toast/toast-action.component.mjs +4 -4
  92. package/esm2022/lib/overlay/toast/toast.component.mjs +41 -0
  93. package/{esm2020 → esm2022}/lib/riv.module.mjs +227 -227
  94. package/esm2022/lib/size/size.directive.mjs +33 -0
  95. package/esm2022/lib/table/simple-table/coordinate-helper.mjs +61 -0
  96. package/esm2022/lib/table/simple-table/simple-table-cell.component.mjs +36 -0
  97. package/esm2022/lib/table/simple-table/simple-table-header-cell.component.mjs +37 -0
  98. package/{esm2020 → esm2022}/lib/table/simple-table/simple-table-row.component.mjs +4 -4
  99. package/esm2022/lib/table/simple-table/simple-table.component.mjs +104 -0
  100. package/esm2022/lib/table/table/clipboard.mjs +182 -0
  101. package/esm2022/lib/table/table/state-helpers/collapse-helpers.mjs +116 -0
  102. package/esm2022/lib/table/table/state-helpers/column-helpers.mjs +383 -0
  103. package/{esm2020 → esm2022}/lib/table/table/state-helpers/display-helpers.mjs +1 -1
  104. package/esm2022/lib/table/table/state-helpers/nesting-helpers.mjs +123 -0
  105. package/esm2022/lib/table/table/state-helpers/order-helpers.mjs +164 -0
  106. package/esm2022/lib/table/table/state-helpers/pagination-helpers.mjs +139 -0
  107. package/esm2022/lib/table/table/state-helpers/result-helpers.mjs +70 -0
  108. package/esm2022/lib/table/table/state-helpers/search-helpers.mjs +72 -0
  109. package/esm2022/lib/table/table/state-helpers/selection-helpers.mjs +180 -0
  110. package/esm2022/lib/table/table/state.mjs +1035 -0
  111. package/esm2022/lib/table/table/table/table.component.mjs +367 -0
  112. package/{esm2020 → esm2022}/lib/table/table/table-collapse-all/table-collapse-all.component.mjs +5 -5
  113. package/esm2022/lib/table/table/table-column-settings/table-column-settings-side-sheet.component.mjs +227 -0
  114. package/esm2022/lib/table/table/table-column-settings/table-column-settings.component.mjs +134 -0
  115. package/esm2022/lib/table/table/table-csv-export/table-csv-export.component.mjs +35 -0
  116. package/{esm2020 → esm2022}/lib/table/table/table-header-resize-handle/table-header-resize-handle.component.mjs +6 -6
  117. package/esm2022/lib/table/table/table-search/table-search.component.mjs +71 -0
  118. package/{esm2020 → esm2022}/lib/table/table/table-search-columns/table-search-columns.component.mjs +4 -4
  119. package/esm2022/lib/visibility/visibility.directive.mjs +34 -0
  120. package/esm2022/lib/visualization/chart/chart-scaling.mjs +380 -0
  121. package/esm2022/lib/visualization/chart/chart.component.mjs +626 -0
  122. package/esm2022/lib/visualization/chart/chart.mjs +3768 -0
  123. package/{esm2020 → esm2022}/lib/visualization/data-table/data-table-cell.component.mjs +5 -5
  124. package/{esm2020 → esm2022}/lib/visualization/data-table/data-table-header-cell.component.mjs +4 -4
  125. package/{esm2020 → esm2022}/lib/visualization/data-table/data-table-row.component.mjs +4 -4
  126. package/{esm2020 → esm2022}/lib/visualization/data-table/data-table.component.mjs +4 -4
  127. package/{esm2020 → esm2022}/lib/visualization/donut/donut.component.mjs +4 -4
  128. package/{esm2020 → esm2022}/lib/visualization/funnel-chart/funnel-chart.component.mjs +5 -5
  129. package/esm2022/lib/visualization/funnel-chart/funnel-chart.helpers.mjs +33 -0
  130. package/{esm2020 → esm2022}/lib/visualization/highlight/highlight.component.mjs +4 -4
  131. package/esm2022/lib/visualization/highlight/highlight.helpers.mjs +20 -0
  132. package/esm2022/lib/visualization/intervals.mjs +63 -0
  133. package/{esm2020 → esm2022}/lib/visualization/issue/issue.component.mjs +4 -4
  134. package/{esm2020 → esm2022}/lib/visualization/legend-item/legend-item.component.mjs +4 -4
  135. package/{esm2020 → esm2022}/lib/visualization/metric/metric.component.mjs +4 -4
  136. package/{esm2020 → esm2022}/lib/visualization/mini-pie/mini-pie.component.mjs +4 -4
  137. package/{esm2020 → esm2022}/lib/visualization/progress/progress.component.mjs +5 -5
  138. package/esm2022/lib/visualization/stacked-column/stacked-column.component.mjs +377 -0
  139. package/esm2022/lib/visualization/stacked-column/stacked-column.helpers.mjs +18 -0
  140. package/esm2022/lib/visualization/stacked-row/stacked-row.component.mjs +270 -0
  141. package/esm2022/lib/visualization/stacked-row/stacked-row.helpers.mjs +74 -0
  142. package/esm2022/lib/visualization/time-series/time-series.component.mjs +374 -0
  143. package/esm2022/lib/visualization/time-series/time-series.helpers.mjs +15 -0
  144. package/esm2022/lib/visualization/trend/trend.component.mjs +51 -0
  145. package/{esm2020 → esm2022}/lib/visualization/zero-state/zero-state.component.mjs +4 -4
  146. package/{fesm2020 → fesm2022}/rivet-health-design-system.mjs +670 -670
  147. package/{fesm2020 → fesm2022}/rivet-health-design-system.mjs.map +1 -1
  148. package/lib/format/svg-text-truncate/svg-text-truncate.directive.d.ts +1 -1
  149. package/lib/format/truncate/truncate.component.d.ts +1 -1
  150. package/lib/icon/icon.component.d.ts +1 -1
  151. package/lib/input/auto-focus/auto-focus.directive.d.ts +1 -1
  152. package/lib/input/button/button.component.d.ts +1 -1
  153. package/lib/input/calendar/calendar.component.d.ts +1 -1
  154. package/lib/input/checkbox/checkbox.component.d.ts +1 -1
  155. package/lib/input/currency-field/currency-field.component.d.ts +1 -1
  156. package/lib/input/date/date.component.d.ts +1 -1
  157. package/lib/input/date-range/date-range.component.d.ts +1 -1
  158. package/lib/input/filter-chip/filter-chip.component.d.ts +1 -1
  159. package/lib/input/filter-dropdown/filter-dropdown.component.d.ts +1 -1
  160. package/lib/input/input-label/input-label.component.d.ts +1 -1
  161. package/lib/input/mentions-input/mentions-input.component.d.ts +1 -1
  162. package/lib/input/number-field/number-field.component.d.ts +1 -1
  163. package/lib/input/percentage-field/percentage-field.component.d.ts +1 -1
  164. package/lib/input/phone-field/phone-field.component.d.ts +1 -1
  165. package/lib/input/radio/radio.component.d.ts +1 -1
  166. package/lib/input/search/search.component.d.ts +1 -1
  167. package/lib/input/search-select/search-select.component.d.ts +1 -1
  168. package/lib/input/select/select/select.component.d.ts +1 -1
  169. package/lib/input/select/select-node/select-node.component.d.ts +1 -1
  170. package/lib/input/simple-select/simple-select.component.d.ts +1 -1
  171. package/lib/input/switch-checkbox/switch-checkbox.component.d.ts +1 -1
  172. package/lib/input/text-field/text-field.component.d.ts +1 -1
  173. package/lib/input/textarea-field/textarea-field.component.d.ts +1 -1
  174. package/lib/input/validation-message/validation-message.component.d.ts +1 -1
  175. package/lib/layout/card/card-actions.component.d.ts +1 -1
  176. package/lib/layout/card/card-content.component.d.ts +1 -1
  177. package/lib/layout/card/card-header.component.d.ts +1 -1
  178. package/lib/layout/card/card-link.component.d.ts +1 -1
  179. package/lib/layout/card/card-media.component.d.ts +1 -1
  180. package/lib/layout/card/card.component.d.ts +1 -1
  181. package/lib/layout/setting-row/setting-row.component.d.ts +1 -1
  182. package/lib/load/loading/loading.component.d.ts +1 -1
  183. package/lib/load/loading-cover/loading-cover.component.d.ts +1 -1
  184. package/lib/navigation/editable-heading/editable-heading.component.d.ts +1 -1
  185. package/lib/navigation/link/link.component.d.ts +1 -1
  186. package/lib/navigation/page-header/page-header.component.d.ts +1 -1
  187. package/lib/navigation/simple-tabs/simple-tab/simple-tab.component.d.ts +1 -1
  188. package/lib/navigation/tabs/tab/tab.component.d.ts +1 -1
  189. package/lib/navigation/views/all-views-modal/all-views-modal.component.d.ts +1 -1
  190. package/lib/navigation/views/edit-view/edit-view.component.d.ts +1 -1
  191. package/lib/navigation/views/permission-picker/permission-picker.component.d.ts +3 -3
  192. package/lib/navigation/views/view-menu/view-menu.component.d.ts +1 -1
  193. package/lib/navigation/views/views/views.component.d.ts +1 -1
  194. package/lib/notification/badge/badge.component.d.ts +1 -1
  195. package/lib/notification/banner/banner-action.component.d.ts +1 -1
  196. package/lib/notification/banner/banner.component.d.ts +1 -1
  197. package/lib/notification/map-indicator/map-indicator.component.d.ts +1 -1
  198. package/lib/notification/notification-badge/notification-badge.component.d.ts +1 -1
  199. package/lib/overlay/callout/callout.component.d.ts +1 -1
  200. package/lib/overlay/callout/help/help.component.d.ts +1 -1
  201. package/lib/overlay/callout/lock-scroll.directive.d.ts +1 -1
  202. package/lib/overlay/callout/menu/menu-item/menu-item.component.d.ts +1 -1
  203. package/lib/overlay/callout/menu/menu.component.d.ts +1 -1
  204. package/lib/overlay/callout/tooltip/locked-tooltip.directive.d.ts +1 -1
  205. package/lib/overlay/callout/tooltip/tooltip.component.d.ts +1 -1
  206. package/lib/overlay/callout/tooltip/tooltip.directive.d.ts +1 -1
  207. package/lib/overlay/modal/dialog/dialog.component.d.ts +1 -1
  208. package/lib/overlay/modal/form-dialog/form-dialog.component.d.ts +1 -1
  209. package/lib/overlay/modal/modal.component.d.ts +1 -1
  210. package/lib/overlay/modal/side-sheet/side-sheet.component.d.ts +1 -1
  211. package/lib/overlay/toast/toast.component.d.ts +1 -1
  212. package/lib/table/simple-table/simple-table-header-cell.component.d.ts +1 -1
  213. package/lib/table/simple-table/simple-table-row.component.d.ts +1 -1
  214. package/lib/table/table/table/table.component.d.ts +1 -1
  215. package/lib/table/table/table-collapse-all/table-collapse-all.component.d.ts +1 -1
  216. package/lib/table/table/table-column-settings/table-column-settings-side-sheet.component.d.ts +1 -1
  217. package/lib/table/table/table-column-settings/table-column-settings.component.d.ts +1 -1
  218. package/lib/table/table/table-csv-export/table-csv-export.component.d.ts +1 -1
  219. package/lib/table/table/table-search/table-search.component.d.ts +1 -1
  220. package/lib/table/table/table-search-columns/table-search-columns.component.d.ts +1 -1
  221. package/lib/visualization/chart/chart.component.d.ts +1 -1
  222. package/lib/visualization/data-table/data-table-row.component.d.ts +1 -1
  223. package/lib/visualization/donut/donut.component.d.ts +1 -1
  224. package/lib/visualization/funnel-chart/funnel-chart.component.d.ts +1 -1
  225. package/lib/visualization/highlight/highlight.component.d.ts +1 -1
  226. package/lib/visualization/issue/issue.component.d.ts +1 -1
  227. package/lib/visualization/legend-item/legend-item.component.d.ts +1 -1
  228. package/lib/visualization/metric/metric.component.d.ts +1 -1
  229. package/lib/visualization/mini-pie/mini-pie.component.d.ts +1 -1
  230. package/lib/visualization/progress/progress.component.d.ts +1 -1
  231. package/lib/visualization/stacked-column/stacked-column.component.d.ts +3 -3
  232. package/lib/visualization/stacked-row/stacked-row.component.d.ts +1 -1
  233. package/lib/visualization/time-series/time-series.component.d.ts +3 -3
  234. package/lib/visualization/trend/trend.component.d.ts +1 -1
  235. package/lib/visualization/zero-state/zero-state.component.d.ts +1 -1
  236. package/package.json +5 -11
  237. package/esm2020/lib/download/download.service.mjs +0 -47
  238. package/esm2020/lib/format/pipes/sentence-case.pipe.mjs +0 -61
  239. package/esm2020/lib/format/pipes/small-currency.pipe.mjs +0 -24
  240. package/esm2020/lib/format/pipes/small-number.pipe.mjs +0 -29
  241. package/esm2020/lib/format/svg-text-truncate/svg-text-truncate.directive.mjs +0 -62
  242. package/esm2020/lib/format/truncate/truncate.component.mjs +0 -51
  243. package/esm2020/lib/icon/dom-cache.mjs +0 -32
  244. package/esm2020/lib/icon/icon.component.mjs +0 -86
  245. package/esm2020/lib/input/auto-focus/auto-focus.directive.mjs +0 -48
  246. package/esm2020/lib/input/button/button.component.mjs +0 -139
  247. package/esm2020/lib/input/button-group/button-group.component.mjs +0 -39
  248. package/esm2020/lib/input/date/date.component.mjs +0 -279
  249. package/esm2020/lib/input/date-range/date-range.component.mjs +0 -477
  250. package/esm2020/lib/input/filter-chip/filter-chip.component.mjs +0 -47
  251. package/esm2020/lib/input/mentions-input/mentions-input.component.mjs +0 -745
  252. package/esm2020/lib/input/number-field/number-field.component.mjs +0 -125
  253. package/esm2020/lib/input/phone-field/phone-field.component.mjs +0 -74
  254. package/esm2020/lib/input/search-select/search-select.component.mjs +0 -189
  255. package/esm2020/lib/input/select/select/select.component.mjs +0 -178
  256. package/esm2020/lib/input/select/state.mjs +0 -882
  257. package/esm2020/lib/input/simple-select/simple-select.component.mjs +0 -178
  258. package/esm2020/lib/input/switch-checkbox/switch-checkbox.component.mjs +0 -33
  259. package/esm2020/lib/input/text-field/text-field.component.mjs +0 -115
  260. package/esm2020/lib/layout/card/card-content.component.mjs +0 -64
  261. package/esm2020/lib/layout/card/card-header.component.mjs +0 -201
  262. package/esm2020/lib/layout/card/card.component.mjs +0 -291
  263. package/esm2020/lib/load/loading/loading.component.mjs +0 -43
  264. package/esm2020/lib/navigation/editable-heading/editable-heading.component.mjs +0 -243
  265. package/esm2020/lib/navigation/views/permission-picker/permission-picker.component.mjs +0 -151
  266. package/esm2020/lib/navigation/views/state.mjs +0 -456
  267. package/esm2020/lib/navigation/views/views/views.component.mjs +0 -90
  268. package/esm2020/lib/notification/banner/banner-action.component.mjs +0 -48
  269. package/esm2020/lib/notification/banner/banner.component.mjs +0 -61
  270. package/esm2020/lib/notification/map-indicator/map-indicator.component.mjs +0 -50
  271. package/esm2020/lib/notification/map-indicator/map-indicators.mjs +0 -15
  272. package/esm2020/lib/overlay/callout/callout.component.mjs +0 -130
  273. package/esm2020/lib/overlay/callout/callout.helpers.mjs +0 -113
  274. package/esm2020/lib/overlay/callout/lock-scroll.directive.mjs +0 -69
  275. package/esm2020/lib/overlay/callout/tooltip/locked-tooltip.directive.mjs +0 -30
  276. package/esm2020/lib/overlay/callout/tooltip/tooltip.directive.mjs +0 -138
  277. package/esm2020/lib/overlay/modal/dialog/dialog.component.mjs +0 -47
  278. package/esm2020/lib/overlay/modal/form-dialog/form-dialog.component.mjs +0 -146
  279. package/esm2020/lib/overlay/modal/modal.component.mjs +0 -31
  280. package/esm2020/lib/overlay/overlay-outlet.component.mjs +0 -98
  281. package/esm2020/lib/overlay/toast/toast.component.mjs +0 -41
  282. package/esm2020/lib/size/size.directive.mjs +0 -33
  283. package/esm2020/lib/table/simple-table/coordinate-helper.mjs +0 -61
  284. package/esm2020/lib/table/simple-table/simple-table-cell.component.mjs +0 -36
  285. package/esm2020/lib/table/simple-table/simple-table-header-cell.component.mjs +0 -37
  286. package/esm2020/lib/table/simple-table/simple-table.component.mjs +0 -104
  287. package/esm2020/lib/table/table/clipboard.mjs +0 -182
  288. package/esm2020/lib/table/table/state-helpers/collapse-helpers.mjs +0 -116
  289. package/esm2020/lib/table/table/state-helpers/column-helpers.mjs +0 -383
  290. package/esm2020/lib/table/table/state-helpers/nesting-helpers.mjs +0 -123
  291. package/esm2020/lib/table/table/state-helpers/order-helpers.mjs +0 -164
  292. package/esm2020/lib/table/table/state-helpers/pagination-helpers.mjs +0 -139
  293. package/esm2020/lib/table/table/state-helpers/result-helpers.mjs +0 -70
  294. package/esm2020/lib/table/table/state-helpers/search-helpers.mjs +0 -72
  295. package/esm2020/lib/table/table/state-helpers/selection-helpers.mjs +0 -180
  296. package/esm2020/lib/table/table/state.mjs +0 -1035
  297. package/esm2020/lib/table/table/table/table.component.mjs +0 -367
  298. package/esm2020/lib/table/table/table-column-settings/table-column-settings-side-sheet.component.mjs +0 -227
  299. package/esm2020/lib/table/table/table-column-settings/table-column-settings.component.mjs +0 -134
  300. package/esm2020/lib/table/table/table-csv-export/table-csv-export.component.mjs +0 -35
  301. package/esm2020/lib/table/table/table-search/table-search.component.mjs +0 -71
  302. package/esm2020/lib/visibility/visibility.directive.mjs +0 -34
  303. package/esm2020/lib/visualization/chart/chart-scaling.mjs +0 -380
  304. package/esm2020/lib/visualization/chart/chart.component.mjs +0 -626
  305. package/esm2020/lib/visualization/chart/chart.mjs +0 -3768
  306. package/esm2020/lib/visualization/funnel-chart/funnel-chart.helpers.mjs +0 -33
  307. package/esm2020/lib/visualization/highlight/highlight.helpers.mjs +0 -20
  308. package/esm2020/lib/visualization/intervals.mjs +0 -63
  309. package/esm2020/lib/visualization/stacked-column/stacked-column.component.mjs +0 -377
  310. package/esm2020/lib/visualization/stacked-column/stacked-column.helpers.mjs +0 -18
  311. package/esm2020/lib/visualization/stacked-row/stacked-row.component.mjs +0 -270
  312. package/esm2020/lib/visualization/stacked-row/stacked-row.helpers.mjs +0 -74
  313. package/esm2020/lib/visualization/time-series/time-series.component.mjs +0 -374
  314. package/esm2020/lib/visualization/time-series/time-series.helpers.mjs +0 -15
  315. package/esm2020/lib/visualization/trend/trend.component.mjs +0 -51
  316. package/fesm2015/rivet-health-design-system.mjs +0 -18370
  317. package/fesm2015/rivet-health-design-system.mjs.map +0 -1
  318. /package/{esm2020 → esm2022}/lib/overlay/callout/select-callout-defaults.mjs +0 -0
  319. /package/{esm2020 → esm2022}/lib/util/local-storage.mjs +0 -0
  320. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  321. /package/{esm2020 → esm2022}/rivet-health-design-system.mjs +0 -0
@@ -0,0 +1,380 @@
1
+ import { Chart } from './chart';
2
+ export const emptyChartScaleValues = {
3
+ barSize: 0,
4
+ barClusterGap: 0,
5
+ bucketGap: 0,
6
+ outerGap: 0,
7
+ leftPadding: 0,
8
+ rightPadding: 0,
9
+ topPadding: 0,
10
+ bottomPadding: 0,
11
+ leftBucketLabel: 0,
12
+ dataLabelPadding: 0,
13
+ fontSize: 0,
14
+ totalWidth: 0,
15
+ totalHeight: 0,
16
+ sizeForData: 0,
17
+ totalLeftOffset: 0,
18
+ totalRightOffset: 0,
19
+ totalTopOffset: 0,
20
+ totalBottomOffset: 0,
21
+ dataLabelTextSize: 0,
22
+ horizontalAxisLabelTextSize: 0,
23
+ verticalAxisLabelTextSize: 0,
24
+ targetTickCount: 0,
25
+ chartDataDirection: 'vertical',
26
+ horizontalContainerScale: 'no-scale',
27
+ verticalContainerScale: 'no-scale',
28
+ };
29
+ export const DefaultBarElementScalingConfig = {
30
+ barSize: {
31
+ min: 1,
32
+ max: 80,
33
+ target: 30,
34
+ },
35
+ barClusterGap: {
36
+ min: 1,
37
+ max: 8,
38
+ target: 8,
39
+ },
40
+ bucketGap: {
41
+ min: 1,
42
+ target: 40,
43
+ },
44
+ outerGap: {
45
+ min: 0,
46
+ target: 16,
47
+ },
48
+ leftPadding: {
49
+ min: 48,
50
+ max: 48,
51
+ target: 48,
52
+ },
53
+ rightPadding: {
54
+ min: 8,
55
+ max: 48,
56
+ target: 48,
57
+ },
58
+ topPadding: {
59
+ min: 16,
60
+ max: 16,
61
+ target: 16,
62
+ },
63
+ bottomPadding: {
64
+ min: 20,
65
+ max: 20,
66
+ target: 20,
67
+ },
68
+ dataLabelPadding: {
69
+ min: 8,
70
+ max: 8,
71
+ target: 8,
72
+ },
73
+ fontSize: {
74
+ min: 12,
75
+ max: 12,
76
+ target: 12,
77
+ },
78
+ leftBucketLabel: {
79
+ target: 0, //Not applicable
80
+ },
81
+ };
82
+ export const DefaultBarWithSecondaryElementScalingConfig = {
83
+ ...DefaultBarElementScalingConfig,
84
+ rightPadding: {
85
+ min: 48,
86
+ max: 48,
87
+ target: 48,
88
+ },
89
+ };
90
+ export const DefaultHorizontalBarElementScalingConfig = {
91
+ barSize: {
92
+ min: 1,
93
+ max: 8,
94
+ target: 8,
95
+ },
96
+ barClusterGap: {
97
+ min: 1,
98
+ max: 8,
99
+ target: 8,
100
+ },
101
+ bucketGap: {
102
+ min: 1,
103
+ target: 16,
104
+ },
105
+ outerGap: {
106
+ min: 0,
107
+ target: 8,
108
+ },
109
+ leftPadding: {
110
+ min: 8,
111
+ max: 8,
112
+ target: 8,
113
+ },
114
+ rightPadding: {
115
+ min: 8,
116
+ max: 48,
117
+ target: 48,
118
+ },
119
+ topPadding: {
120
+ min: 16,
121
+ max: 16,
122
+ target: 16,
123
+ },
124
+ bottomPadding: {
125
+ min: 0,
126
+ max: 20,
127
+ target: 0,
128
+ },
129
+ leftBucketLabel: {
130
+ min: 8,
131
+ max: 192,
132
+ target: 68, //Size used for timeseries buckets
133
+ },
134
+ dataLabelPadding: {
135
+ min: 8,
136
+ max: 8,
137
+ target: 8,
138
+ },
139
+ fontSize: {
140
+ min: 12,
141
+ max: 12,
142
+ target: 12,
143
+ },
144
+ };
145
+ export const DefaultHorizontalBarWithSecondaryElementScalingConfig = {
146
+ ...DefaultHorizontalBarElementScalingConfig,
147
+ bottomPadding: {
148
+ min: 20,
149
+ max: 20,
150
+ target: 20,
151
+ },
152
+ };
153
+ export const DefaultLineElementScalingConfig = {
154
+ bucketGap: {
155
+ min: 1,
156
+ target: 32,
157
+ },
158
+ outerGap: {
159
+ target: 1,
160
+ },
161
+ leftPadding: {
162
+ min: 48,
163
+ max: 48,
164
+ target: 48,
165
+ },
166
+ rightPadding: {
167
+ min: 8,
168
+ max: 48,
169
+ target: 48,
170
+ },
171
+ topPadding: {
172
+ min: 16,
173
+ max: 16,
174
+ target: 16,
175
+ },
176
+ bottomPadding: {
177
+ min: 20,
178
+ max: 20,
179
+ target: 20,
180
+ },
181
+ dataLabelPadding: {
182
+ min: 8,
183
+ max: 8,
184
+ target: 8,
185
+ },
186
+ fontSize: {
187
+ min: 12,
188
+ max: 12,
189
+ target: 12,
190
+ },
191
+ barSize: {
192
+ target: 0, //Not applicable
193
+ },
194
+ barClusterGap: {
195
+ target: 0, //Not applicable
196
+ },
197
+ leftBucketLabel: {
198
+ target: 0, //Not applicable
199
+ },
200
+ };
201
+ export const DefaultFlowElementScalingConfig = {
202
+ barSize: {
203
+ min: 1,
204
+ max: 40,
205
+ target: 40,
206
+ },
207
+ bucketGap: {
208
+ min: 1,
209
+ target: 180,
210
+ },
211
+ leftPadding: {
212
+ min: 24,
213
+ max: 108,
214
+ target: 108,
215
+ },
216
+ rightPadding: {
217
+ min: 24,
218
+ max: 108,
219
+ target: 108,
220
+ },
221
+ dataLabelPadding: {
222
+ min: 36,
223
+ max: 36,
224
+ target: 36,
225
+ },
226
+ fontSize: {
227
+ min: 12,
228
+ max: 12,
229
+ target: 12,
230
+ },
231
+ topPadding: {
232
+ target: 0, //Not applicable
233
+ },
234
+ bottomPadding: {
235
+ target: 0, //Not applicable
236
+ },
237
+ outerGap: {
238
+ target: 0, //Not applicable
239
+ },
240
+ barClusterGap: {
241
+ target: 0, //Not applicable
242
+ },
243
+ leftBucketLabel: {
244
+ target: 0, //Not applicable
245
+ },
246
+ };
247
+ export const DefaultLineWithSecondaryElementScalingConfig = {
248
+ ...DefaultLineElementScalingConfig,
249
+ rightPadding: {
250
+ min: 48,
251
+ max: 48,
252
+ target: 48,
253
+ },
254
+ };
255
+ //For bar, line, area, waterfall and funnel charts
256
+ export const DefaultVerticalNonElementScalingConfig = {
257
+ dataScale: { type: 'fit' },
258
+ horizontalAxisScale: 'grow',
259
+ verticalAxisScale: 'scale-to-fit',
260
+ horizontalContainerScale: 'shrink',
261
+ verticalContainerScale: 'shrink',
262
+ targetTickCount: 5,
263
+ };
264
+ //Flow charts can have many sub-buckets, so they'll scroll vertically rather than become too small to display
265
+ export const DefaultFlowNonElementScalingConfig = {
266
+ ...DefaultVerticalNonElementScalingConfig,
267
+ verticalAxisScale: 'grow',
268
+ };
269
+ //For horizontal bar charts
270
+ export const DefaultHorizontalNonElementScalingConfig = {
271
+ dataScale: { type: 'fit' },
272
+ horizontalAxisScale: 'scale-to-fit',
273
+ verticalAxisScale: 'grow',
274
+ horizontalContainerScale: 'shrink',
275
+ verticalContainerScale: 'shrink',
276
+ targetTickCount: 5,
277
+ };
278
+ export function getDefaultScalingConfigByChartType(type, hasSecondary) {
279
+ if (type === 'horizontal-bar') {
280
+ if (hasSecondary) {
281
+ return {
282
+ elementScales: DefaultHorizontalBarWithSecondaryElementScalingConfig,
283
+ nonElementScales: DefaultHorizontalNonElementScalingConfig,
284
+ };
285
+ }
286
+ return {
287
+ elementScales: DefaultHorizontalBarElementScalingConfig,
288
+ nonElementScales: DefaultHorizontalNonElementScalingConfig,
289
+ };
290
+ }
291
+ if (Chart.isBarType(type)) {
292
+ if (hasSecondary) {
293
+ return {
294
+ elementScales: DefaultBarWithSecondaryElementScalingConfig,
295
+ nonElementScales: DefaultVerticalNonElementScalingConfig,
296
+ };
297
+ }
298
+ return {
299
+ elementScales: DefaultBarElementScalingConfig,
300
+ nonElementScales: DefaultVerticalNonElementScalingConfig,
301
+ };
302
+ }
303
+ if (type === 'line' || type === 'area') {
304
+ if (hasSecondary) {
305
+ return {
306
+ elementScales: DefaultLineWithSecondaryElementScalingConfig,
307
+ nonElementScales: DefaultVerticalNonElementScalingConfig,
308
+ };
309
+ }
310
+ return {
311
+ elementScales: DefaultLineElementScalingConfig,
312
+ nonElementScales: DefaultVerticalNonElementScalingConfig,
313
+ };
314
+ }
315
+ if (type === 'flow') {
316
+ return {
317
+ elementScales: DefaultFlowElementScalingConfig,
318
+ nonElementScales: DefaultFlowNonElementScalingConfig,
319
+ };
320
+ }
321
+ return {
322
+ elementScales: DefaultBarElementScalingConfig,
323
+ nonElementScales: DefaultVerticalNonElementScalingConfig,
324
+ };
325
+ }
326
+ export const DefaultDonutElementScalingConfig = {
327
+ dataLabelPadding: {
328
+ min: 16,
329
+ max: 16,
330
+ target: 16,
331
+ },
332
+ fontSize: {
333
+ min: 12,
334
+ max: 12,
335
+ target: 12,
336
+ },
337
+ bucketGap: {
338
+ target: 0, //Not applicable
339
+ },
340
+ outerGap: {
341
+ target: 0, //Not applicable
342
+ },
343
+ leftPadding: {
344
+ target: 0, //Not applicable
345
+ },
346
+ rightPadding: {
347
+ target: 0, //Not applicable
348
+ },
349
+ topPadding: {
350
+ target: 0, //Not applicable
351
+ },
352
+ bottomPadding: {
353
+ target: 0, //Not applicable
354
+ },
355
+ barSize: {
356
+ target: 0, //Not applicable
357
+ },
358
+ barClusterGap: {
359
+ target: 0, //Not applicable
360
+ },
361
+ leftBucketLabel: {
362
+ target: 0, //Not applicable
363
+ },
364
+ };
365
+ export const DEFAULT_OUTER_RADIUS_CONFIG = {
366
+ type: 'proportion',
367
+ value: 0.75,
368
+ };
369
+ export const DEFAULT_DRAW_RADIUS_CONFIG = {
370
+ type: 'absolute',
371
+ value: 12,
372
+ };
373
+ export const DefaultDonutSizingConfig = {
374
+ outerRadius: DEFAULT_OUTER_RADIUS_CONFIG,
375
+ drawRadius: DEFAULT_DRAW_RADIUS_CONFIG,
376
+ elementScales: DefaultDonutElementScalingConfig,
377
+ horizontalContainerScale: 'no-scale',
378
+ verticalContainerScale: 'no-scale',
379
+ };
380
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtc2NhbGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3Zpc3VhbGl6YXRpb24vY2hhcnQvY2hhcnQtc2NhbGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBeUNoQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBeUI7SUFDekQsT0FBTyxFQUFFLENBQUM7SUFDVixhQUFhLEVBQUUsQ0FBQztJQUNoQixTQUFTLEVBQUUsQ0FBQztJQUNaLFFBQVEsRUFBRSxDQUFDO0lBQ1gsV0FBVyxFQUFFLENBQUM7SUFDZCxZQUFZLEVBQUUsQ0FBQztJQUNmLFVBQVUsRUFBRSxDQUFDO0lBQ2IsYUFBYSxFQUFFLENBQUM7SUFDaEIsZUFBZSxFQUFFLENBQUM7SUFDbEIsZ0JBQWdCLEVBQUUsQ0FBQztJQUNuQixRQUFRLEVBQUUsQ0FBQztJQUNYLFVBQVUsRUFBRSxDQUFDO0lBQ2IsV0FBVyxFQUFFLENBQUM7SUFDZCxXQUFXLEVBQUUsQ0FBQztJQUNkLGVBQWUsRUFBRSxDQUFDO0lBQ2xCLGdCQUFnQixFQUFFLENBQUM7SUFDbkIsY0FBYyxFQUFFLENBQUM7SUFDakIsaUJBQWlCLEVBQUUsQ0FBQztJQUNwQixpQkFBaUIsRUFBRSxDQUFDO0lBQ3BCLDJCQUEyQixFQUFFLENBQUM7SUFDOUIseUJBQXlCLEVBQUUsQ0FBQztJQUM1QixlQUFlLEVBQUUsQ0FBQztJQUNsQixrQkFBa0IsRUFBRSxVQUFVO0lBQzlCLHdCQUF3QixFQUFFLFVBQVU7SUFDcEMsc0JBQXNCLEVBQUUsVUFBVTtDQUNuQyxDQUFDO0FBdUVGLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUE2QjtJQUN0RSxPQUFPLEVBQUU7UUFDUCxHQUFHLEVBQUUsQ0FBQztRQUNOLEdBQUcsRUFBRSxFQUFFO1FBQ1AsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELGFBQWEsRUFBRTtRQUNiLEdBQUcsRUFBRSxDQUFDO1FBQ04sR0FBRyxFQUFFLENBQUM7UUFDTixNQUFNLEVBQUUsQ0FBQztLQUNWO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsR0FBRyxFQUFFLENBQUM7UUFDTixNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsR0FBRyxFQUFFLENBQUM7UUFDTixNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsR0FBRyxFQUFFLEVBQUU7UUFDUCxHQUFHLEVBQUUsRUFBRTtRQUNQLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxZQUFZLEVBQUU7UUFDWixHQUFHLEVBQUUsQ0FBQztRQUNOLEdBQUcsRUFBRSxFQUFFO1FBQ1AsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELFVBQVUsRUFBRTtRQUNWLEdBQUcsRUFBRSxFQUFFO1FBQ1AsR0FBRyxFQUFFLEVBQUU7UUFDUCxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsYUFBYSxFQUFFO1FBQ2IsR0FBRyxFQUFFLEVBQUU7UUFDUCxHQUFHLEVBQUUsRUFBRTtRQUNQLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixHQUFHLEVBQUUsQ0FBQztRQUNOLEdBQUcsRUFBRSxDQUFDO1FBQ04sTUFBTSxFQUFFLENBQUM7S0FDVjtJQUNELFFBQVEsRUFBRTtRQUNSLEdBQUcsRUFBRSxFQUFFO1FBQ1AsR0FBRyxFQUFFLEVBQUU7UUFDUCxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsZUFBZSxFQUFFO1FBQ2YsTUFBTSxFQUFFLENBQUMsRUFBRSxnQkFBZ0I7S0FDNUI7Q0FDRixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sMkNBQTJDLEdBQ3REO0lBQ0UsR0FBRyw4QkFBOEI7SUFDakMsWUFBWSxFQUFFO1FBQ1osR0FBRyxFQUFFLEVBQUU7UUFDUCxHQUFHLEVBQUUsRUFBRTtRQUNQLE1BQU0sRUFBRSxFQUFFO0tBQ1g7Q0FDRixDQUFDO0FBRUosTUFBTSxDQUFDLE1BQU0sd0NBQXdDLEdBQ25EO0lBQ0UsT0FBTyxFQUFFO1FBQ1AsR0FBRyxFQUFFLENBQUM7UUFDTixHQUFHLEVBQUUsQ0FBQztRQUNOLE1BQU0sRUFBRSxDQUFDO0tBQ1Y7SUFDRCxhQUFhLEVBQUU7UUFDYixHQUFHLEVBQUUsQ0FBQztRQUNOLEdBQUcsRUFBRSxDQUFDO1FBQ04sTUFBTSxFQUFFLENBQUM7S0FDVjtJQUNELFNBQVMsRUFBRTtRQUNULEdBQUcsRUFBRSxDQUFDO1FBQ04sTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELFFBQVEsRUFBRTtRQUNSLEdBQUcsRUFBRSxDQUFDO1FBQ04sTUFBTSxFQUFFLENBQUM7S0FDVjtJQUNELFdBQVcsRUFBRTtRQUNYLEdBQUcsRUFBRSxDQUFDO1FBQ04sR0FBRyxFQUFFLENBQUM7UUFDTixNQUFNLEVBQUUsQ0FBQztLQUNWO0lBQ0QsWUFBWSxFQUFFO1FBQ1osR0FBRyxFQUFFLENBQUM7UUFDTixHQUFHLEVBQUUsRUFBRTtRQUNQLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxVQUFVLEVBQUU7UUFDVixHQUFHLEVBQUUsRUFBRTtRQUNQLEdBQUcsRUFBRSxFQUFFO1FBQ1AsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELGFBQWEsRUFBRTtRQUNiLEdBQUcsRUFBRSxDQUFDO1FBQ04sR0FBRyxFQUFFLEVBQUU7UUFDUCxNQUFNLEVBQUUsQ0FBQztLQUNWO0lBQ0QsZUFBZSxFQUFFO1FBQ2YsR0FBRyxFQUFFLENBQUM7UUFDTixHQUFHLEVBQUUsR0FBRztRQUNSLE1BQU0sRUFBRSxFQUFFLEVBQUUsa0NBQWtDO0tBQy9DO0lBQ0QsZ0JBQWdCLEVBQUU7UUFDaEIsR0FBRyxFQUFFLENBQUM7UUFDTixHQUFHLEVBQUUsQ0FBQztRQUNOLE1BQU0sRUFBRSxDQUFDO0tBQ1Y7SUFDRCxRQUFRLEVBQUU7UUFDUixHQUFHLEVBQUUsRUFBRTtRQUNQLEdBQUcsRUFBRSxFQUFFO1FBQ1AsTUFBTSxFQUFFLEVBQUU7S0FDWDtDQUNGLENBQUM7QUFDSixNQUFNLENBQUMsTUFBTSxxREFBcUQsR0FDaEU7SUFDRSxHQUFHLHdDQUF3QztJQUMzQyxhQUFhLEVBQUU7UUFDYixHQUFHLEVBQUUsRUFBRTtRQUNQLEdBQUcsRUFBRSxFQUFFO1FBQ1AsTUFBTSxFQUFFLEVBQUU7S0FDWDtDQUNGLENBQUM7QUFFSixNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBNkI7SUFDdkUsU0FBUyxFQUFFO1FBQ1QsR0FBRyxFQUFFLENBQUM7UUFDTixNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFLENBQUM7S0FDVjtJQUNELFdBQVcsRUFBRTtRQUNYLEdBQUcsRUFBRSxFQUFFO1FBQ1AsR0FBRyxFQUFFLEVBQUU7UUFDUCxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsWUFBWSxFQUFFO1FBQ1osR0FBRyxFQUFFLENBQUM7UUFDTixHQUFHLEVBQUUsRUFBRTtRQUNQLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxVQUFVLEVBQUU7UUFDVixHQUFHLEVBQUUsRUFBRTtRQUNQLEdBQUcsRUFBRSxFQUFFO1FBQ1AsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELGFBQWEsRUFBRTtRQUNiLEdBQUcsRUFBRSxFQUFFO1FBQ1AsR0FBRyxFQUFFLEVBQUU7UUFDUCxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsZ0JBQWdCLEVBQUU7UUFDaEIsR0FBRyxFQUFFLENBQUM7UUFDTixHQUFHLEVBQUUsQ0FBQztRQUNOLE1BQU0sRUFBRSxDQUFDO0tBQ1Y7SUFDRCxRQUFRLEVBQUU7UUFDUixHQUFHLEVBQUUsRUFBRTtRQUNQLEdBQUcsRUFBRSxFQUFFO1FBQ1AsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRSxDQUFDLEVBQUUsZ0JBQWdCO0tBQzVCO0lBQ0QsYUFBYSxFQUFFO1FBQ2IsTUFBTSxFQUFFLENBQUMsRUFBRSxnQkFBZ0I7S0FDNUI7SUFDRCxlQUFlLEVBQUU7UUFDZixNQUFNLEVBQUUsQ0FBQyxFQUFFLGdCQUFnQjtLQUM1QjtDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBNkI7SUFDdkUsT0FBTyxFQUFFO1FBQ1AsR0FBRyxFQUFFLENBQUM7UUFDTixHQUFHLEVBQUUsRUFBRTtRQUNQLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxTQUFTLEVBQUU7UUFDVCxHQUFHLEVBQUUsQ0FBQztRQUNOLE1BQU0sRUFBRSxHQUFHO0tBQ1o7SUFDRCxXQUFXLEVBQUU7UUFDWCxHQUFHLEVBQUUsRUFBRTtRQUNQLEdBQUcsRUFBRSxHQUFHO1FBQ1IsTUFBTSxFQUFFLEdBQUc7S0FDWjtJQUNELFlBQVksRUFBRTtRQUNaLEdBQUcsRUFBRSxFQUFFO1FBQ1AsR0FBRyxFQUFFLEdBQUc7UUFDUixNQUFNLEVBQUUsR0FBRztLQUNaO0lBQ0QsZ0JBQWdCLEVBQUU7UUFDaEIsR0FBRyxFQUFFLEVBQUU7UUFDUCxHQUFHLEVBQUUsRUFBRTtRQUNQLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxRQUFRLEVBQUU7UUFDUixHQUFHLEVBQUUsRUFBRTtRQUNQLEdBQUcsRUFBRSxFQUFFO1FBQ1AsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELFVBQVUsRUFBRTtRQUNWLE1BQU0sRUFBRSxDQUFDLEVBQUUsZ0JBQWdCO0tBQzVCO0lBQ0QsYUFBYSxFQUFFO1FBQ2IsTUFBTSxFQUFFLENBQUMsRUFBRSxnQkFBZ0I7S0FDNUI7SUFDRCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUUsQ0FBQyxFQUFFLGdCQUFnQjtLQUM1QjtJQUNELGFBQWEsRUFBRTtRQUNiLE1BQU0sRUFBRSxDQUFDLEVBQUUsZ0JBQWdCO0tBQzVCO0lBQ0QsZUFBZSxFQUFFO1FBQ2YsTUFBTSxFQUFFLENBQUMsRUFBRSxnQkFBZ0I7S0FDNUI7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sNENBQTRDLEdBQ3ZEO0lBQ0UsR0FBRywrQkFBK0I7SUFDbEMsWUFBWSxFQUFFO1FBQ1osR0FBRyxFQUFFLEVBQUU7UUFDUCxHQUFHLEVBQUUsRUFBRTtRQUNQLE1BQU0sRUFBRSxFQUFFO0tBQ1g7Q0FDRixDQUFDO0FBRUosa0RBQWtEO0FBQ2xELE1BQU0sQ0FBQyxNQUFNLHNDQUFzQyxHQUE0QjtJQUM3RSxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFO0lBQzFCLG1CQUFtQixFQUFFLE1BQU07SUFDM0IsaUJBQWlCLEVBQUUsY0FBYztJQUNqQyx3QkFBd0IsRUFBRSxRQUFRO0lBQ2xDLHNCQUFzQixFQUFFLFFBQVE7SUFDaEMsZUFBZSxFQUFFLENBQUM7Q0FDbkIsQ0FBQztBQUNGLDZHQUE2RztBQUM3RyxNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBNEI7SUFDekUsR0FBRyxzQ0FBc0M7SUFDekMsaUJBQWlCLEVBQUUsTUFBTTtDQUMxQixDQUFDO0FBQ0YsMkJBQTJCO0FBQzNCLE1BQU0sQ0FBQyxNQUFNLHdDQUF3QyxHQUNuRDtJQUNFLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7SUFDMUIsbUJBQW1CLEVBQUUsY0FBYztJQUNuQyxpQkFBaUIsRUFBRSxNQUFNO0lBQ3pCLHdCQUF3QixFQUFFLFFBQVE7SUFDbEMsc0JBQXNCLEVBQUUsUUFBUTtJQUNoQyxlQUFlLEVBQUUsQ0FBQztDQUNuQixDQUFDO0FBT0osTUFBTSxVQUFVLGtDQUFrQyxDQUNoRCxJQUF1QyxFQUN2QyxZQUFxQjtJQUVyQixJQUFJLElBQUksS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzlCLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsT0FBTztnQkFDTCxhQUFhLEVBQUUscURBQXFEO2dCQUNwRSxnQkFBZ0IsRUFBRSx3Q0FBd0M7YUFDM0QsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPO1lBQ0wsYUFBYSxFQUFFLHdDQUF3QztZQUN2RCxnQkFBZ0IsRUFBRSx3Q0FBd0M7U0FDM0QsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMxQixJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLE9BQU87Z0JBQ0wsYUFBYSxFQUFFLDJDQUEyQztnQkFDMUQsZ0JBQWdCLEVBQUUsc0NBQXNDO2FBQ3pELENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTztZQUNMLGFBQWEsRUFBRSw4QkFBOEI7WUFDN0MsZ0JBQWdCLEVBQUUsc0NBQXNDO1NBQ3pELENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBSSxJQUFJLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUN2QyxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLE9BQU87Z0JBQ0wsYUFBYSxFQUFFLDRDQUE0QztnQkFDM0QsZ0JBQWdCLEVBQUUsc0NBQXNDO2FBQ3pELENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTztZQUNMLGFBQWEsRUFBRSwrQkFBK0I7WUFDOUMsZ0JBQWdCLEVBQUUsc0NBQXNDO1NBQ3pELENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7UUFDcEIsT0FBTztZQUNMLGFBQWEsRUFBRSwrQkFBK0I7WUFDOUMsZ0JBQWdCLEVBQUUsa0NBQWtDO1NBQ3JELENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTztRQUNMLGFBQWEsRUFBRSw4QkFBOEI7UUFDN0MsZ0JBQWdCLEVBQUUsc0NBQXNDO0tBQ3pELENBQUM7QUFDSixDQUFDO0FBZUQsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQTZCO0lBQ3hFLGdCQUFnQixFQUFFO1FBQ2hCLEdBQUcsRUFBRSxFQUFFO1FBQ1AsR0FBRyxFQUFFLEVBQUU7UUFDUCxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsR0FBRyxFQUFFLEVBQUU7UUFDUCxHQUFHLEVBQUUsRUFBRTtRQUNQLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxTQUFTLEVBQUU7UUFDVCxNQUFNLEVBQUUsQ0FBQyxFQUFFLGdCQUFnQjtLQUM1QjtJQUNELFFBQVEsRUFBRTtRQUNSLE1BQU0sRUFBRSxDQUFDLEVBQUUsZ0JBQWdCO0tBQzVCO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsTUFBTSxFQUFFLENBQUMsRUFBRSxnQkFBZ0I7S0FDNUI7SUFDRCxZQUFZLEVBQUU7UUFDWixNQUFNLEVBQUUsQ0FBQyxFQUFFLGdCQUFnQjtLQUM1QjtJQUNELFVBQVUsRUFBRTtRQUNWLE1BQU0sRUFBRSxDQUFDLEVBQUUsZ0JBQWdCO0tBQzVCO0lBQ0QsYUFBYSxFQUFFO1FBQ2IsTUFBTSxFQUFFLENBQUMsRUFBRSxnQkFBZ0I7S0FDNUI7SUFDRCxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsQ0FBQyxFQUFFLGdCQUFnQjtLQUM1QjtJQUNELGFBQWEsRUFBRTtRQUNiLE1BQU0sRUFBRSxDQUFDLEVBQUUsZ0JBQWdCO0tBQzVCO0lBQ0QsZUFBZSxFQUFFO1FBQ2YsTUFBTSxFQUFFLENBQUMsRUFBRSxnQkFBZ0I7S0FDNUI7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQWlCO0lBQ3ZELElBQUksRUFBRSxZQUFZO0lBQ2xCLEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFpQjtJQUN0RCxJQUFJLEVBQUUsVUFBVTtJQUNoQixLQUFLLEVBQUUsRUFBRTtDQUNWLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUN0QyxXQUFXLEVBQUUsMkJBQTJCO0lBQ3hDLFVBQVUsRUFBRSwwQkFBMEI7SUFDdEMsYUFBYSxFQUFFLGdDQUFnQztJQUMvQyx3QkFBd0IsRUFBRSxVQUFrQztJQUM1RCxzQkFBc0IsRUFBRSxVQUFrQztDQUMzRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhcnQgfSBmcm9tICcuL2NoYXJ0JztcblxuZXhwb3J0IHR5cGUgQ2hhcnRTY2FsZUVsZW1lbnQgPVxuICB8ICdiYXJTaXplJ1xuICB8ICdiYXJDbHVzdGVyR2FwJ1xuICB8ICdidWNrZXRHYXAnXG4gIHwgJ291dGVyR2FwJ1xuICB8ICdsZWZ0UGFkZGluZydcbiAgfCAncmlnaHRQYWRkaW5nJ1xuICB8ICd0b3BQYWRkaW5nJ1xuICB8ICdib3R0b21QYWRkaW5nJ1xuICB8ICdsZWZ0QnVja2V0TGFiZWwnXG4gIHwgJ2RhdGFMYWJlbFBhZGRpbmcnXG4gIHwgJ2ZvbnRTaXplJztcblxuZXhwb3J0IHR5cGUgQ2hhcnRTY2FsZVZhbHVlcyA9IHtcbiAgW0sgaW4gQ2hhcnRTY2FsZUVsZW1lbnRdOiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBDaGFydERhdGFEaXJlY3Rpb24gPVxuICB8ICd2ZXJ0aWNhbCcgLy9BbGwgY2hhcnRzIGJ1dCBob3Jpem9udGFsLWJhclxuICB8ICdob3Jpem9udGFsJzsgLy9DdXJyZW50bHkganVzdCBob3Jpem9udGFsLWJhclxuXG5leHBvcnQgdHlwZSBGdWxsQ2hhcnRTY2FsZVZhbHVlcyA9IENoYXJ0U2NhbGVWYWx1ZXMgJiB7XG4gIC8vVmFyaW91cyBoZWxwZnVsIHByZS1jYWxjZWQgdmFsdWVzXG4gIHRvdGFsV2lkdGg6IG51bWJlcjtcbiAgdG90YWxIZWlnaHQ6IG51bWJlcjtcbiAgc2l6ZUZvckRhdGE6IG51bWJlcjtcbiAgdG90YWxMZWZ0T2Zmc2V0OiBudW1iZXI7IC8vVG90YWwgZGlzdGFuY2UgYmV0d2VlbiB0aGUgbGVmdCBlZGdlIG9mIHRoZSBjaGFydCwgYW5kIHdoZW4gd2Ugc3RhcnQgZHJhd2luZyBkYXRhXG4gIHRvdGFsUmlnaHRPZmZzZXQ6IG51bWJlcjsgLy9Ub3RhbCBkaXN0YW5jZSBiZXR3ZWVuIHRoZSBlbmQgb2YgZHJhd24gZGF0YSwgYW5kIHRoZSByaWdodCBlZGdlIG9mIHRoZSBjaGFydFxuICB0b3RhbFRvcE9mZnNldDogbnVtYmVyOyAvL1RvdGFsIGRpc3RhbmNlIGJldHdlZW4gdGhlIHRvcCBlZGdlIG9mIHRoZSBjaGFydCwgYW5kIHRoZSBzdGFydCBvZiBkcmF3biBkYXRhXG4gIHRvdGFsQm90dG9tT2Zmc2V0OiBudW1iZXI7IC8vVG90YWwgZGlzdGFuY2UgYmV0d2VlbiB0aGUgZW5kIG9mIGRyYXduIGRhdGEsIGFuZCB0aGUgYm90dG9tIGVkZ2Ugb2YgdGhlIGNoYXJ0XG4gIGRhdGFMYWJlbFRleHRTaXplOiBudW1iZXI7XG4gIGhvcml6b250YWxBeGlzTGFiZWxUZXh0U2l6ZTogbnVtYmVyO1xuICB2ZXJ0aWNhbEF4aXNMYWJlbFRleHRTaXplOiBudW1iZXI7XG4gIHRhcmdldFRpY2tDb3VudDogbnVtYmVyO1xuICBjaGFydERhdGFEaXJlY3Rpb246IENoYXJ0RGF0YURpcmVjdGlvbjtcbiAgaG9yaXpvbnRhbENvbnRhaW5lclNjYWxlOiBDb250YWluZXJTY2FsaW5nVHlwZTtcbiAgdmVydGljYWxDb250YWluZXJTY2FsZTogQ29udGFpbmVyU2NhbGluZ1R5cGU7XG59O1xuXG5leHBvcnQgY29uc3QgZW1wdHlDaGFydFNjYWxlVmFsdWVzOiBGdWxsQ2hhcnRTY2FsZVZhbHVlcyA9IHtcbiAgYmFyU2l6ZTogMCxcbiAgYmFyQ2x1c3RlckdhcDogMCxcbiAgYnVja2V0R2FwOiAwLFxuICBvdXRlckdhcDogMCxcbiAgbGVmdFBhZGRpbmc6IDAsXG4gIHJpZ2h0UGFkZGluZzogMCxcbiAgdG9wUGFkZGluZzogMCxcbiAgYm90dG9tUGFkZGluZzogMCxcbiAgbGVmdEJ1Y2tldExhYmVsOiAwLFxuICBkYXRhTGFiZWxQYWRkaW5nOiAwLFxuICBmb250U2l6ZTogMCxcbiAgdG90YWxXaWR0aDogMCxcbiAgdG90YWxIZWlnaHQ6IDAsXG4gIHNpemVGb3JEYXRhOiAwLFxuICB0b3RhbExlZnRPZmZzZXQ6IDAsXG4gIHRvdGFsUmlnaHRPZmZzZXQ6IDAsXG4gIHRvdGFsVG9wT2Zmc2V0OiAwLFxuICB0b3RhbEJvdHRvbU9mZnNldDogMCxcbiAgZGF0YUxhYmVsVGV4dFNpemU6IDAsXG4gIGhvcml6b250YWxBeGlzTGFiZWxUZXh0U2l6ZTogMCxcbiAgdmVydGljYWxBeGlzTGFiZWxUZXh0U2l6ZTogMCxcbiAgdGFyZ2V0VGlja0NvdW50OiAwLFxuICBjaGFydERhdGFEaXJlY3Rpb246ICd2ZXJ0aWNhbCcsXG4gIGhvcml6b250YWxDb250YWluZXJTY2FsZTogJ25vLXNjYWxlJyxcbiAgdmVydGljYWxDb250YWluZXJTY2FsZTogJ25vLXNjYWxlJyxcbn07XG5cbmV4cG9ydCB0eXBlIEVsZW1lbnRTY2FsaW5nQ29uZmlndXJhdGlvbiA9IHtcbiAgbWluPzogbnVtYmVyO1xuICBtYXg/OiBudW1iZXI7XG4gIHRhcmdldDogbnVtYmVyOyAvL09uIHRoZSBkYXRhIGF4aXMsIHRoaXMgaXMgZ2VuZXJhbGx5IHRyZWF0ZWQgYXMgYSBmaXhlZCB2YWx1ZVxufTtcblxuZXhwb3J0IHR5cGUgRGF0YVNjYWxpbmdUeXBlID1cbiAgfCAnZml0JyAvL0RhdGEgd2lsbCBzY2FsZSB0byBmaXQgZGltZW5zaW9uc1xuICB8ICdtYXgnIC8vVGhlIHRhbGxlc3Qgc3RhY2svYmFyL3ZhbHVlIG9mIGRhdGEgd2lsbCBzY2FsZSB0byB0aGUgZ2l2ZW4gcHggdmFsdWVcbiAgfCAnY3VzdG9tJzsgLy9UaGUgZGF0YSB3aWxsIHNjYWxlIGJhc2VkIG9uIHRoZSBwcm92aWRlZCByYXRpb1xuXG5leHBvcnQgdHlwZSBEYXRhU2NhbGluZ0NvbmZpZ3VyYXRpb24gPSAoXG4gIHwge1xuICAgICAgdHlwZTogRXh0cmFjdDxEYXRhU2NhbGluZ1R5cGUsICdmaXQnPjsgLy9UaGlzJ2xsIGZ1bmN0aW9uYWxseSByZXZlcnQgdGhlIHNjYWxpbmcgdHlwZSBvZiB0aGUgY29ycmVzcG9uZGluZyBheGlzIHRvIFwic2NhbGUtdG8tZml0XCJcbiAgICB9XG4gIHwge1xuICAgICAgdHlwZTogRXh0cmFjdDxEYXRhU2NhbGluZ1R5cGUsICdtYXgnPjtcbiAgICAgIHZhbHVlOiBudW1iZXI7XG4gICAgfVxuICB8IHtcbiAgICAgIHR5cGU6IEV4dHJhY3Q8RGF0YVNjYWxpbmdUeXBlLCAnY3VzdG9tJz47XG4gICAgICByYXRpbzoge1xuICAgICAgICBweDogbnVtYmVyO1xuICAgICAgICB2YWx1ZTogbnVtYmVyO1xuICAgICAgfTtcbiAgICB9XG4pICYge1xuICAvL0FueSBkYXRhIGVsZW1lbnQgd2l0aCBhIG5vbi16ZXJvIHZhbHVlIGJlbG93IHRoaXMgc2l6ZSB3aWxsIGlnbm9yZSBzY2FsaW5nLCBhbmQgYmVjb21lIHRoaXMgc2l6ZVxuICBtaW5pbXVtRGF0YUVsZW1lbnRTaXplPzogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgQXhpc1NjYWxpbmdUeXBlID1cbiAgfCAnc2NhbGUtdG8tZml0JyAvL1RoZSBjaGFydCB3aWxsIHNjYWxlIHRvIGZpdCB0aGUgcHJvdmlkZWQgZGltZW5zaW9uc1xuICB8ICdncm93JyAvL1RoZSBjaGFydCB3aWxsIGdyb3cgaWYgc21hbGxlciB0aGFuIHRoZSBwcm92aWRlZCBkaW1lbnNpb25zLCBhbmQgc2Nyb2xsIGlmIGJpZ2dlci4gT24gdGhlIGRhdGEgYXhpcywgdGhlIGRhdGEgd2lsbCBzY2FsZSB0byBmaXQsIGJ1dCB0aGUgY2hhcnQgd2lsbCBncm93IGFuZCBzY3JvbGwgcmF0aGVyIHRoYW4gZ2l2ZSB0aGUgZGF0YSBsZXNzIHRoYW4gaGFsZiBvZiB0aGUgcHJvdmlkZWQgZGltZW5zaW9uXG4gIHwgJ3NocmluaycgLy9UaGUgY2hhcnQgd2lsbCBzaHJpbmsgaWYgbGFyZ2VyIHRoYW4gdGhlIHByb3ZpZGVkIGRpbWVuc2lvbnMsIGFuZCBub3Qgc2NhbGUgb3RoZXJ3aXNlLiBUcmVhdGVkIGFzICdzY2FsZS10by1maXQnIG9uIHRoZSBkYXRhIGF4aXNcbiAgfCAnbm8tc2NhbGUnOyAvL1RoZSBjaGFydCB3aWxsIG5vdCBzY2FsZSwgYW5kIGlmIGJpZ2dlciB0aGFuIHRoZSBwcm92aWRlZCBkaW1lbnNpb25zLCB3aWxsIHNjcm9sbFxuXG5leHBvcnQgdHlwZSBDb250YWluZXJTY2FsaW5nVHlwZSA9XG4gIHwgJ3NocmluaycgLy9JZiB0aGUgY2hhcnQgZW5kcyB1cCBzbWFsbGVyIHRoYW4gdGhlIGNvbnRhaW5lciwgdGhlIGNvbnRhaW5lciB3aWxsIHNocmluayB0byBmaXRcbiAgfCAnbm8tc2NhbGUnOyAvL1RoZSBjb250YWluZXIgd2lsbCBub3QgY2hhbmdlIHNpemUsIHJlZ2FyZGxlc3Mgb2YgdGhlIHNpemUgb2YgdGhlIGNoYXJ0XG5cbmV4cG9ydCB0eXBlIEZ1bGxTY2FsaW5nQ29uZmlnID0ge1xuICBkYXRhU2NhbGU/OiBEYXRhU2NhbGluZ0NvbmZpZ3VyYXRpb247IC8vT25seSB1c2VkIGlmIHRoZSBjb3JyZXNwb25kaW5nIGF4aXMgaXMgc2V0IHRvICduby1zY2FsZScgb3IgaXMgbm90IGRlZmluZWQgYnkgaW5wdXRcbiAgZWxlbWVudFNjYWxlcz86IFBhcnRpYWxFbGVtZW50U2NhbGluZ0NvbmZpZztcbiAgaG9yaXpvbnRhbEF4aXNTY2FsZT86IEF4aXNTY2FsaW5nVHlwZTtcbiAgdmVydGljYWxBeGlzU2NhbGU/OiBBeGlzU2NhbGluZ1R5cGU7XG4gIGhvcml6b250YWxDb250YWluZXJTY2FsZT86IENvbnRhaW5lclNjYWxpbmdUeXBlO1xuICB2ZXJ0aWNhbENvbnRhaW5lclNjYWxlPzogQ29udGFpbmVyU2NhbGluZ1R5cGU7XG4gIHRhcmdldFRpY2tDb3VudD86IG51bWJlcjsgLy9UYXJnZXQgbnVtYmVyIGZvciB0aGUgbnVtYmVyIG9mIHRpY2tzIG9uIHRoZSBkYXRhIGF4aXMuIERlZmF1bHRzIHRvICc1J1xufTtcblxuLy9Gb3IgdXNlIGluIGNoYXJ0LXR5cGUgZGVmYXVsdHNcbmV4cG9ydCB0eXBlIE5vbkVsZW1lbnRTY2FsaW5nQ29uZmlnID0gT21pdDxcbiAgLy9UaGlzIHBhcnQgY29waWVzIEZ1bGxTY2FsaW5nQ29uZmlnLCBidXQgcmVtb3ZlcyB0aGUgYWJpbGl0eSBmb3IgYXR0cmlidXRlcyB0byBiZSBvcHRpb25hbFxuICB7XG4gICAgW0sgaW4ga2V5b2YgRnVsbFNjYWxpbmdDb25maWddLT86IEZ1bGxTY2FsaW5nQ29uZmlnW0tdO1xuICB9LFxuICAvL1RoaXMgcGFydCBleGNsdWRlcyBlbGVtZW50U2NhbGVzLCBzaW5jZSB3ZSBoYW5kbGUgdGhvc2UgZGVmYXVsdHMgc2VwYXJhdGVseVxuICAnZWxlbWVudFNjYWxlcydcbj47XG5cbmV4cG9ydCB0eXBlIFBhcnRpYWxFbGVtZW50U2NhbGluZ0NvbmZpZyA9IHtcbiAgW0sgaW4gQ2hhcnRTY2FsZUVsZW1lbnRdPzogRWxlbWVudFNjYWxpbmdDb25maWd1cmF0aW9uO1xufTtcblxuZXhwb3J0IHR5cGUgRnVsbEVsZW1lbnRTY2FsaW5nQ29uZmlnID0ge1xuICBbSyBpbiBDaGFydFNjYWxlRWxlbWVudF06IEVsZW1lbnRTY2FsaW5nQ29uZmlndXJhdGlvbjtcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0QmFyRWxlbWVudFNjYWxpbmdDb25maWc6IEZ1bGxFbGVtZW50U2NhbGluZ0NvbmZpZyA9IHtcbiAgYmFyU2l6ZToge1xuICAgIG1pbjogMSxcbiAgICBtYXg6IDgwLFxuICAgIHRhcmdldDogMzAsXG4gIH0sXG4gIGJhckNsdXN0ZXJHYXA6IHtcbiAgICBtaW46IDEsXG4gICAgbWF4OiA4LFxuICAgIHRhcmdldDogOCxcbiAgfSxcbiAgYnVja2V0R2FwOiB7XG4gICAgbWluOiAxLFxuICAgIHRhcmdldDogNDAsXG4gIH0sXG4gIG91dGVyR2FwOiB7XG4gICAgbWluOiAwLFxuICAgIHRhcmdldDogMTYsXG4gIH0sXG4gIGxlZnRQYWRkaW5nOiB7XG4gICAgbWluOiA0OCxcbiAgICBtYXg6IDQ4LFxuICAgIHRhcmdldDogNDgsXG4gIH0sXG4gIHJpZ2h0UGFkZGluZzoge1xuICAgIG1pbjogOCxcbiAgICBtYXg6IDQ4LFxuICAgIHRhcmdldDogNDgsXG4gIH0sXG4gIHRvcFBhZGRpbmc6IHtcbiAgICBtaW46IDE2LFxuICAgIG1heDogMTYsXG4gICAgdGFyZ2V0OiAxNixcbiAgfSxcbiAgYm90dG9tUGFkZGluZzoge1xuICAgIG1pbjogMjAsXG4gICAgbWF4OiAyMCxcbiAgICB0YXJnZXQ6IDIwLFxuICB9LFxuICBkYXRhTGFiZWxQYWRkaW5nOiB7XG4gICAgbWluOiA4LFxuICAgIG1heDogOCxcbiAgICB0YXJnZXQ6IDgsXG4gIH0sXG4gIGZvbnRTaXplOiB7XG4gICAgbWluOiAxMixcbiAgICBtYXg6IDEyLFxuICAgIHRhcmdldDogMTIsXG4gIH0sXG4gIGxlZnRCdWNrZXRMYWJlbDoge1xuICAgIHRhcmdldDogMCwgLy9Ob3QgYXBwbGljYWJsZVxuICB9LFxufTtcbmV4cG9ydCBjb25zdCBEZWZhdWx0QmFyV2l0aFNlY29uZGFyeUVsZW1lbnRTY2FsaW5nQ29uZmlnOiBGdWxsRWxlbWVudFNjYWxpbmdDb25maWcgPVxuICB7XG4gICAgLi4uRGVmYXVsdEJhckVsZW1lbnRTY2FsaW5nQ29uZmlnLFxuICAgIHJpZ2h0UGFkZGluZzoge1xuICAgICAgbWluOiA0OCxcbiAgICAgIG1heDogNDgsXG4gICAgICB0YXJnZXQ6IDQ4LFxuICAgIH0sXG4gIH07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0SG9yaXpvbnRhbEJhckVsZW1lbnRTY2FsaW5nQ29uZmlnOiBGdWxsRWxlbWVudFNjYWxpbmdDb25maWcgPVxuICB7XG4gICAgYmFyU2l6ZToge1xuICAgICAgbWluOiAxLFxuICAgICAgbWF4OiA4LFxuICAgICAgdGFyZ2V0OiA4LFxuICAgIH0sXG4gICAgYmFyQ2x1c3RlckdhcDoge1xuICAgICAgbWluOiAxLFxuICAgICAgbWF4OiA4LFxuICAgICAgdGFyZ2V0OiA4LFxuICAgIH0sXG4gICAgYnVja2V0R2FwOiB7XG4gICAgICBtaW46IDEsXG4gICAgICB0YXJnZXQ6IDE2LFxuICAgIH0sXG4gICAgb3V0ZXJHYXA6IHtcbiAgICAgIG1pbjogMCxcbiAgICAgIHRhcmdldDogOCxcbiAgICB9LFxuICAgIGxlZnRQYWRkaW5nOiB7XG4gICAgICBtaW46IDgsXG4gICAgICBtYXg6IDgsXG4gICAgICB0YXJnZXQ6IDgsXG4gICAgfSxcbiAgICByaWdodFBhZGRpbmc6IHtcbiAgICAgIG1pbjogOCxcbiAgICAgIG1heDogNDgsXG4gICAgICB0YXJnZXQ6IDQ4LFxuICAgIH0sXG4gICAgdG9wUGFkZGluZzoge1xuICAgICAgbWluOiAxNixcbiAgICAgIG1heDogMTYsXG4gICAgICB0YXJnZXQ6IDE2LFxuICAgIH0sXG4gICAgYm90dG9tUGFkZGluZzoge1xuICAgICAgbWluOiAwLFxuICAgICAgbWF4OiAyMCxcbiAgICAgIHRhcmdldDogMCxcbiAgICB9LFxuICAgIGxlZnRCdWNrZXRMYWJlbDoge1xuICAgICAgbWluOiA4LFxuICAgICAgbWF4OiAxOTIsXG4gICAgICB0YXJnZXQ6IDY4LCAvL1NpemUgdXNlZCBmb3IgdGltZXNlcmllcyBidWNrZXRzXG4gICAgfSxcbiAgICBkYXRhTGFiZWxQYWRkaW5nOiB7XG4gICAgICBtaW46IDgsXG4gICAgICBtYXg6IDgsXG4gICAgICB0YXJnZXQ6IDgsXG4gICAgfSxcbiAgICBmb250U2l6ZToge1xuICAgICAgbWluOiAxMixcbiAgICAgIG1heDogMTIsXG4gICAgICB0YXJnZXQ6IDEyLFxuICAgIH0sXG4gIH07XG5leHBvcnQgY29uc3QgRGVmYXVsdEhvcml6b250YWxCYXJXaXRoU2Vjb25kYXJ5RWxlbWVudFNjYWxpbmdDb25maWc6IEZ1bGxFbGVtZW50U2NhbGluZ0NvbmZpZyA9XG4gIHtcbiAgICAuLi5EZWZhdWx0SG9yaXpvbnRhbEJhckVsZW1lbnRTY2FsaW5nQ29uZmlnLFxuICAgIGJvdHRvbVBhZGRpbmc6IHtcbiAgICAgIG1pbjogMjAsXG4gICAgICBtYXg6IDIwLFxuICAgICAgdGFyZ2V0OiAyMCxcbiAgICB9LFxuICB9O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdExpbmVFbGVtZW50U2NhbGluZ0NvbmZpZzogRnVsbEVsZW1lbnRTY2FsaW5nQ29uZmlnID0ge1xuICBidWNrZXRHYXA6IHtcbiAgICBtaW46IDEsXG4gICAgdGFyZ2V0OiAzMixcbiAgfSxcbiAgb3V0ZXJHYXA6IHtcbiAgICB0YXJnZXQ6IDEsXG4gIH0sXG4gIGxlZnRQYWRkaW5nOiB7XG4gICAgbWluOiA0OCxcbiAgICBtYXg6IDQ4LFxuICAgIHRhcmdldDogNDgsXG4gIH0sXG4gIHJpZ2h0UGFkZGluZzoge1xuICAgIG1pbjogOCxcbiAgICBtYXg6IDQ4LFxuICAgIHRhcmdldDogNDgsXG4gIH0sXG4gIHRvcFBhZGRpbmc6IHtcbiAgICBtaW46IDE2LFxuICAgIG1heDogMTYsXG4gICAgdGFyZ2V0OiAxNixcbiAgfSxcbiAgYm90dG9tUGFkZGluZzoge1xuICAgIG1pbjogMjAsXG4gICAgbWF4OiAyMCxcbiAgICB0YXJnZXQ6IDIwLFxuICB9LFxuICBkYXRhTGFiZWxQYWRkaW5nOiB7XG4gICAgbWluOiA4LFxuICAgIG1heDogOCxcbiAgICB0YXJnZXQ6IDgsXG4gIH0sXG4gIGZvbnRTaXplOiB7XG4gICAgbWluOiAxMixcbiAgICBtYXg6IDEyLFxuICAgIHRhcmdldDogMTIsXG4gIH0sXG4gIGJhclNpemU6IHtcbiAgICB0YXJnZXQ6IDAsIC8vTm90IGFwcGxpY2FibGVcbiAgfSxcbiAgYmFyQ2x1c3RlckdhcDoge1xuICAgIHRhcmdldDogMCwgLy9Ob3QgYXBwbGljYWJsZVxuICB9LFxuICBsZWZ0QnVja2V0TGFiZWw6IHtcbiAgICB0YXJnZXQ6IDAsIC8vTm90IGFwcGxpY2FibGVcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0Rmxvd0VsZW1lbnRTY2FsaW5nQ29uZmlnOiBGdWxsRWxlbWVudFNjYWxpbmdDb25maWcgPSB7XG4gIGJhclNpemU6IHtcbiAgICBtaW46IDEsXG4gICAgbWF4OiA0MCxcbiAgICB0YXJnZXQ6IDQwLFxuICB9LFxuICBidWNrZXRHYXA6IHtcbiAgICBtaW46IDEsXG4gICAgdGFyZ2V0OiAxODAsXG4gIH0sXG4gIGxlZnRQYWRkaW5nOiB7XG4gICAgbWluOiAyNCxcbiAgICBtYXg6IDEwOCxcbiAgICB0YXJnZXQ6IDEwOCxcbiAgfSxcbiAgcmlnaHRQYWRkaW5nOiB7XG4gICAgbWluOiAyNCxcbiAgICBtYXg6IDEwOCxcbiAgICB0YXJnZXQ6IDEwOCxcbiAgfSxcbiAgZGF0YUxhYmVsUGFkZGluZzoge1xuICAgIG1pbjogMzYsXG4gICAgbWF4OiAzNixcbiAgICB0YXJnZXQ6IDM2LFxuICB9LFxuICBmb250U2l6ZToge1xuICAgIG1pbjogMTIsXG4gICAgbWF4OiAxMixcbiAgICB0YXJnZXQ6IDEyLFxuICB9LFxuICB0b3BQYWRkaW5nOiB7XG4gICAgdGFyZ2V0OiAwLCAvL05vdCBhcHBsaWNhYmxlXG4gIH0sXG4gIGJvdHRvbVBhZGRpbmc6IHtcbiAgICB0YXJnZXQ6IDAsIC8vTm90IGFwcGxpY2FibGVcbiAgfSxcbiAgb3V0ZXJHYXA6IHtcbiAgICB0YXJnZXQ6IDAsIC8vTm90IGFwcGxpY2FibGVcbiAgfSxcbiAgYmFyQ2x1c3RlckdhcDoge1xuICAgIHRhcmdldDogMCwgLy9Ob3QgYXBwbGljYWJsZVxuICB9LFxuICBsZWZ0QnVja2V0TGFiZWw6IHtcbiAgICB0YXJnZXQ6IDAsIC8vTm90IGFwcGxpY2FibGVcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0TGluZVdpdGhTZWNvbmRhcnlFbGVtZW50U2NhbGluZ0NvbmZpZzogRnVsbEVsZW1lbnRTY2FsaW5nQ29uZmlnID1cbiAge1xuICAgIC4uLkRlZmF1bHRMaW5lRWxlbWVudFNjYWxpbmdDb25maWcsXG4gICAgcmlnaHRQYWRkaW5nOiB7XG4gICAgICBtaW46IDQ4LFxuICAgICAgbWF4OiA0OCxcbiAgICAgIHRhcmdldDogNDgsXG4gICAgfSxcbiAgfTtcblxuLy9Gb3IgYmFyLCBsaW5lLCBhcmVhLCB3YXRlcmZhbGwgYW5kIGZ1bm5lbCBjaGFydHNcbmV4cG9ydCBjb25zdCBEZWZhdWx0VmVydGljYWxOb25FbGVtZW50U2NhbGluZ0NvbmZpZzogTm9uRWxlbWVudFNjYWxpbmdDb25maWcgPSB7XG4gIGRhdGFTY2FsZTogeyB0eXBlOiAnZml0JyB9LFxuICBob3Jpem9udGFsQXhpc1NjYWxlOiAnZ3JvdycsXG4gIHZlcnRpY2FsQXhpc1NjYWxlOiAnc2NhbGUtdG8tZml0JyxcbiAgaG9yaXpvbnRhbENvbnRhaW5lclNjYWxlOiAnc2hyaW5rJyxcbiAgdmVydGljYWxDb250YWluZXJTY2FsZTogJ3NocmluaycsXG4gIHRhcmdldFRpY2tDb3VudDogNSxcbn07XG4vL0Zsb3cgY2hhcnRzIGNhbiBoYXZlIG1hbnkgc3ViLWJ1Y2tldHMsIHNvIHRoZXknbGwgc2Nyb2xsIHZlcnRpY2FsbHkgcmF0aGVyIHRoYW4gYmVjb21lIHRvbyBzbWFsbCB0byBkaXNwbGF5XG5leHBvcnQgY29uc3QgRGVmYXVsdEZsb3dOb25FbGVtZW50U2NhbGluZ0NvbmZpZzogTm9uRWxlbWVudFNjYWxpbmdDb25maWcgPSB7XG4gIC4uLkRlZmF1bHRWZXJ0aWNhbE5vbkVsZW1lbnRTY2FsaW5nQ29uZmlnLFxuICB2ZXJ0aWNhbEF4aXNTY2FsZTogJ2dyb3cnLFxufTtcbi8vRm9yIGhvcml6b250YWwgYmFyIGNoYXJ0c1xuZXhwb3J0IGNvbnN0IERlZmF1bHRIb3Jpem9udGFsTm9uRWxlbWVudFNjYWxpbmdDb25maWc6IE5vbkVsZW1lbnRTY2FsaW5nQ29uZmlnID1cbiAge1xuICAgIGRhdGFTY2FsZTogeyB0eXBlOiAnZml0JyB9LFxuICAgIGhvcml6b250YWxBeGlzU2NhbGU6ICdzY2FsZS10by1maXQnLFxuICAgIHZlcnRpY2FsQXhpc1NjYWxlOiAnZ3JvdycsXG4gICAgaG9yaXpvbnRhbENvbnRhaW5lclNjYWxlOiAnc2hyaW5rJyxcbiAgICB2ZXJ0aWNhbENvbnRhaW5lclNjYWxlOiAnc2hyaW5rJyxcbiAgICB0YXJnZXRUaWNrQ291bnQ6IDUsXG4gIH07XG5cbmV4cG9ydCB0eXBlIERlZmF1bHRTY2FsaW5nQ29uZmlnID0ge1xuICBlbGVtZW50U2NhbGVzOiBGdWxsRWxlbWVudFNjYWxpbmdDb25maWc7XG4gIG5vbkVsZW1lbnRTY2FsZXM6IE5vbkVsZW1lbnRTY2FsaW5nQ29uZmlnO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRTY2FsaW5nQ29uZmlnQnlDaGFydFR5cGUoXG4gIHR5cGU6IEV4Y2x1ZGU8Q2hhcnQuQ2hhcnRUeXBlLCAnZG9udXQnPixcbiAgaGFzU2Vjb25kYXJ5OiBib29sZWFuLFxuKTogRGVmYXVsdFNjYWxpbmdDb25maWcge1xuICBpZiAodHlwZSA9PT0gJ2hvcml6b250YWwtYmFyJykge1xuICAgIGlmIChoYXNTZWNvbmRhcnkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVsZW1lbnRTY2FsZXM6IERlZmF1bHRIb3Jpem9udGFsQmFyV2l0aFNlY29uZGFyeUVsZW1lbnRTY2FsaW5nQ29uZmlnLFxuICAgICAgICBub25FbGVtZW50U2NhbGVzOiBEZWZhdWx0SG9yaXpvbnRhbE5vbkVsZW1lbnRTY2FsaW5nQ29uZmlnLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGVsZW1lbnRTY2FsZXM6IERlZmF1bHRIb3Jpem9udGFsQmFyRWxlbWVudFNjYWxpbmdDb25maWcsXG4gICAgICBub25FbGVtZW50U2NhbGVzOiBEZWZhdWx0SG9yaXpvbnRhbE5vbkVsZW1lbnRTY2FsaW5nQ29uZmlnLFxuICAgIH07XG4gIH1cbiAgaWYgKENoYXJ0LmlzQmFyVHlwZSh0eXBlKSkge1xuICAgIGlmIChoYXNTZWNvbmRhcnkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVsZW1lbnRTY2FsZXM6IERlZmF1bHRCYXJXaXRoU2Vjb25kYXJ5RWxlbWVudFNjYWxpbmdDb25maWcsXG4gICAgICAgIG5vbkVsZW1lbnRTY2FsZXM6IERlZmF1bHRWZXJ0aWNhbE5vbkVsZW1lbnRTY2FsaW5nQ29uZmlnLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGVsZW1lbnRTY2FsZXM6IERlZmF1bHRCYXJFbGVtZW50U2NhbGluZ0NvbmZpZyxcbiAgICAgIG5vbkVsZW1lbnRTY2FsZXM6IERlZmF1bHRWZXJ0aWNhbE5vbkVsZW1lbnRTY2FsaW5nQ29uZmlnLFxuICAgIH07XG4gIH1cbiAgaWYgKHR5cGUgPT09ICdsaW5lJyB8fCB0eXBlID09PSAnYXJlYScpIHtcbiAgICBpZiAoaGFzU2Vjb25kYXJ5KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBlbGVtZW50U2NhbGVzOiBEZWZhdWx0TGluZVdpdGhTZWNvbmRhcnlFbGVtZW50U2NhbGluZ0NvbmZpZyxcbiAgICAgICAgbm9uRWxlbWVudFNjYWxlczogRGVmYXVsdFZlcnRpY2FsTm9uRWxlbWVudFNjYWxpbmdDb25maWcsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgZWxlbWVudFNjYWxlczogRGVmYXVsdExpbmVFbGVtZW50U2NhbGluZ0NvbmZpZyxcbiAgICAgIG5vbkVsZW1lbnRTY2FsZXM6IERlZmF1bHRWZXJ0aWNhbE5vbkVsZW1lbnRTY2FsaW5nQ29uZmlnLFxuICAgIH07XG4gIH1cbiAgaWYgKHR5cGUgPT09ICdmbG93Jykge1xuICAgIHJldHVybiB7XG4gICAgICBlbGVtZW50U2NhbGVzOiBEZWZhdWx0Rmxvd0VsZW1lbnRTY2FsaW5nQ29uZmlnLFxuICAgICAgbm9uRWxlbWVudFNjYWxlczogRGVmYXVsdEZsb3dOb25FbGVtZW50U2NhbGluZ0NvbmZpZyxcbiAgICB9O1xuICB9XG4gIHJldHVybiB7XG4gICAgZWxlbWVudFNjYWxlczogRGVmYXVsdEJhckVsZW1lbnRTY2FsaW5nQ29uZmlnLFxuICAgIG5vbkVsZW1lbnRTY2FsZXM6IERlZmF1bHRWZXJ0aWNhbE5vbkVsZW1lbnRTY2FsaW5nQ29uZmlnLFxuICB9O1xufVxuXG50eXBlIFJhZGl1c0NvbmZpZyA9IHtcbiAgdHlwZTogJ3Byb3BvcnRpb24nIHwgJ2Fic29sdXRlJztcbiAgdmFsdWU6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIERvbnV0U2l6aW5nQ29uZmlnID0ge1xuICBvdXRlclJhZGl1cz86IFJhZGl1c0NvbmZpZzsgLy9JZiBwcm9wb3J0aW9uLCBpdCdzIHJlbGF0aXZlIHRvIHRoZSBjb250YWluZXJcbiAgZHJhd1JhZGl1cz86IFJhZGl1c0NvbmZpZzsgLy9JZiBwcm9wb3J0aW9uLCBpdCdzIHJlbGF0aXZlIHRvIHRoZSBvdXRlciByYWRpdXNcbiAgZWxlbWVudFNjYWxlcz86IFBhcnRpYWxFbGVtZW50U2NhbGluZ0NvbmZpZztcbiAgaG9yaXpvbnRhbENvbnRhaW5lclNjYWxlPzogQ29udGFpbmVyU2NhbGluZ1R5cGU7XG4gIHZlcnRpY2FsQ29udGFpbmVyU2NhbGU/OiBDb250YWluZXJTY2FsaW5nVHlwZTtcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0RG9udXRFbGVtZW50U2NhbGluZ0NvbmZpZzogRnVsbEVsZW1lbnRTY2FsaW5nQ29uZmlnID0ge1xuICBkYXRhTGFiZWxQYWRkaW5nOiB7XG4gICAgbWluOiAxNixcbiAgICBtYXg6IDE2LFxuICAgIHRhcmdldDogMTYsXG4gIH0sXG4gIGZvbnRTaXplOiB7XG4gICAgbWluOiAxMixcbiAgICBtYXg6IDEyLFxuICAgIHRhcmdldDogMTIsXG4gIH0sXG4gIGJ1Y2tldEdhcDoge1xuICAgIHRhcmdldDogMCwgLy9Ob3QgYXBwbGljYWJsZVxuICB9LFxuICBvdXRlckdhcDoge1xuICAgIHRhcmdldDogMCwgLy9Ob3QgYXBwbGljYWJsZVxuICB9LFxuICBsZWZ0UGFkZGluZzoge1xuICAgIHRhcmdldDogMCwgLy9Ob3QgYXBwbGljYWJsZVxuICB9LFxuICByaWdodFBhZGRpbmc6IHtcbiAgICB0YXJnZXQ6IDAsIC8vTm90IGFwcGxpY2FibGVcbiAgfSxcbiAgdG9wUGFkZGluZzoge1xuICAgIHRhcmdldDogMCwgLy9Ob3QgYXBwbGljYWJsZVxuICB9LFxuICBib3R0b21QYWRkaW5nOiB7XG4gICAgdGFyZ2V0OiAwLCAvL05vdCBhcHBsaWNhYmxlXG4gIH0sXG4gIGJhclNpemU6IHtcbiAgICB0YXJnZXQ6IDAsIC8vTm90IGFwcGxpY2FibGVcbiAgfSxcbiAgYmFyQ2x1c3RlckdhcDoge1xuICAgIHRhcmdldDogMCwgLy9Ob3QgYXBwbGljYWJsZVxuICB9LFxuICBsZWZ0QnVja2V0TGFiZWw6IHtcbiAgICB0YXJnZXQ6IDAsIC8vTm90IGFwcGxpY2FibGVcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX09VVEVSX1JBRElVU19DT05GSUc6IFJhZGl1c0NvbmZpZyA9IHtcbiAgdHlwZTogJ3Byb3BvcnRpb24nLFxuICB2YWx1ZTogMC43NSxcbn07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0RSQVdfUkFESVVTX0NPTkZJRzogUmFkaXVzQ29uZmlnID0ge1xuICB0eXBlOiAnYWJzb2x1dGUnLFxuICB2YWx1ZTogMTIsXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdERvbnV0U2l6aW5nQ29uZmlnID0ge1xuICBvdXRlclJhZGl1czogREVGQVVMVF9PVVRFUl9SQURJVVNfQ09ORklHLFxuICBkcmF3UmFkaXVzOiBERUZBVUxUX0RSQVdfUkFESVVTX0NPTkZJRyxcbiAgZWxlbWVudFNjYWxlczogRGVmYXVsdERvbnV0RWxlbWVudFNjYWxpbmdDb25maWcsXG4gIGhvcml6b250YWxDb250YWluZXJTY2FsZTogJ25vLXNjYWxlJyBhcyBDb250YWluZXJTY2FsaW5nVHlwZSxcbiAgdmVydGljYWxDb250YWluZXJTY2FsZTogJ25vLXNjYWxlJyBhcyBDb250YWluZXJTY2FsaW5nVHlwZSxcbn07XG4iXX0=